Skip to content

Commit b870c8d

Browse files
committed
update clean code
- remove not needed stuff in source files - clean-up
1 parent c151eae commit b870c8d

File tree

11 files changed

+323
-186
lines changed

11 files changed

+323
-186
lines changed

src/_internal/shared/build.bat

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
nasm.exe -fbin -o start.exe start.asm
2+
copy /b start.exe start.bin
3+
upx.exe start.exe

src/_internal/shared/code64.asm

Lines changed: 78 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
; -----------------------------------------------------------------------------
2+
; \file code64.asm
3+
; \note (c) 2025 by Jens Kallup - paule32
4+
; all rights reserved.
5+
;
6+
; \desc Create a dBASE MS-Windows 11 64-bit Pro EXE.
7+
; -----------------------------------------------------------------------------
18
bits 64
29

310
_start:
@@ -36,9 +43,6 @@ _start:
3643
xor eax, eax ; rax = 0
3744
mov ecx, 10 ; 10 qwords
3845
rep stosq
39-
;.fillwc:
40-
; mov [rdi + ((rcx*8) - 8)], rax
41-
; loop .fillwc
4246

4347
mov dword [rdi + 0], 80 ; cbSize
4448
mov dword [rdi + 4], CS_HREDRAW | CS_VREDRAW ; style
@@ -48,10 +52,6 @@ _start:
4852
add rax, RVA_TEXT(WndProc)
4953
mov [rdi + 8], rax
5054

51-
; cbClsExtra/cbWndExtra = 0
52-
;mov dword [rdi + 16], 0
53-
;mov dword [rdi + 20], 0
54-
5555
; hInstance
5656
mov [rdi + 24], r14
5757

@@ -79,8 +79,7 @@ _start:
7979
mov qword [rdi + 56], 0
8080

8181
; lpszClassName = &winclassW (UTF-16)
82-
mov rax, IMAGE_BASE
83-
add rax, RVA_DATA(winclassW)
82+
GETEXT rax, winclassW
8483
mov [rdi + 64], rax
8584

8685
; hIconSm = NULL
@@ -97,20 +96,18 @@ _start:
9796
test eax, eax
9897
jz .reg_fail
9998

100-
.class_ok:
101-
;ShowMessageW ClassOkW,capW
99+
.class_ok:
100+
;ShowMessageW ClassOkW,capW
102101
; ------------------------------------------------------------------------
103102
; CreateWindowExW(
104103
; 0, class, title, WS_OVERLAPPEDWINDOW,
105104
; CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
106105
; NULL, NULL, hInstance, NULL)
107106
; ------------------------------------------------------------------------
108-
;AddShadow 32 + 8*8 ; 32 Shadow + 8 Args
107+
;AddShadow 32 + 8*8 ; 32 Shadow + 8 Args
109108
xor ecx, ecx ; 1. dwExStyle = 0
110-
mov rdx, IMAGE_BASE
111-
add rdx, RVA_DATA(winclassW) ; 2. lpClassName
112-
mov r8, IMAGE_BASE
113-
add r8, RVA_DATA(titleW) ; 3. lpWindowName
109+
GETEXT rdx, winclassW ; 2. lpClassName
110+
GETEXT r8 , titleW ; 3. lpWindowName
114111
mov r9d, WS_OVERLAPPEDWINDOW ; 4. dwStyle
115112

116113
; 5.–12. Parameter auf den Stack (in der Reihenfolge!)
@@ -136,80 +133,81 @@ _start:
136133
137134
mov rsi, rax
138135
139-
; Show / Update
140-
mov rcx, rsi
141-
mov edx, 5 ; SW_SHOW
142-
sub rsp, 32
143-
mov rax, IMAGE_BASE
144-
add rax, RVA_IDATA(IAT_win32_ShowWindow)
145-
call [rax]
146-
add rsp, 32
147-
148-
mov rcx, rsi
149-
sub rsp, 32
150-
mov rax, IMAGE_BASE
151-
add rax, RVA_IDATA(IAT_win32_UpdateWindow)
152-
call [rax]
153-
add rsp, 32
154-
155-
; --- Message loop (MSG=48B) ---
156-
sub rsp, 48
157-
mov rbx, rsp
158-
.msg:
159-
mov rcx, rbx
160-
xor edx, edx
161-
xor r8d, r8d
162-
xor r9d, r9d
163-
sub rsp, 32
164-
mov rax, IMAGE_BASE
165-
add rax, RVA_IDATA(IAT_win32_GetMessageW)
166-
call [rax]
167-
add rsp, 32
168-
test eax, eax
169-
jz .quit
170-
171-
mov rcx, rbx
136+
; Show / Update
137+
mov rcx, rsi
138+
mov edx, 5 ; SW_SHOW
172139
sub rsp, 32
173140
mov rax, IMAGE_BASE
174-
add rax, RVA_IDATA(IAT_win32_TranslateMessage)
141+
add rax, RVA_IDATA(IAT_win32_ShowWindow)
175142
call [rax]
176143
add rsp, 32
177144

178-
mov rcx, rbx
145+
mov rcx, rsi
179146
sub rsp, 32
180147
mov rax, IMAGE_BASE
181-
add rax, RVA_IDATA(IAT_win32_DispatchMessageW)
148+
add rax, RVA_IDATA(IAT_win32_UpdateWindow)
182149
call [rax]
183150
add rsp, 32
184-
jmp .msg
185-
.quit:
186-
add rsp, 48
187151

188-
; Aufräumen WNDCLASSEXW-Reserve
189-
add rsp, 80
190-
jmp .ok
191-
192-
.reg_fail:
193-
; GetLastError + anzeigen (du hast die Routine schon)
194-
sub rsp,32
195-
mov rax, IMAGE_BASE
196-
add rax, RVA_IDATA(IAT_win32_GetLastError)
197-
call [rax]
198-
add rsp,32
199-
; eax -> deine Fehleranzeige
200-
add rsp, 80
201-
jmp .done
202-
203-
.cw_fail:
204-
sub rsp,32
205-
mov rax, IMAGE_BASE
206-
add rax, RVA_IDATA(IAT_win32_GetLastError)
207-
call [rax]
208-
add rsp,32
209-
; eax -> deine Fehleranzeige
152+
; --- Message loop (MSG=48B) ---
153+
sub rsp, 48
154+
mov rbx, rsp
155+
.msg:
156+
mov rcx, rbx
157+
xor edx, edx
158+
xor r8d, r8d
159+
xor r9d, r9d
160+
sub rsp, 32
161+
mov rax, IMAGE_BASE
162+
add rax, RVA_IDATA(IAT_win32_GetMessageW)
163+
call [rax]
164+
add rsp, 32
165+
test eax, eax
166+
jz .quit
167+
168+
mov rcx, rbx
169+
sub rsp, 32
170+
mov rax, IMAGE_BASE
171+
add rax, RVA_IDATA(IAT_win32_TranslateMessage)
172+
call [rax]
173+
add rsp, 32
174+
175+
mov rcx, rbx
176+
sub rsp, 32
177+
mov rax, IMAGE_BASE
178+
add rax, RVA_IDATA(IAT_win32_DispatchMessageW)
179+
call [rax]
180+
add rsp, 32
181+
jmp .msg
182+
.quit:
183+
add rsp, 48
184+
185+
; Aufräumen WNDCLASSEXW-Reserve
210186
add rsp, 80
211-
jmp .done
187+
jmp .ok
188+
189+
.reg_fail:
190+
; GetLastError + anzeigen (du hast die Routine schon)
191+
sub rsp,32
192+
mov rax, IMAGE_BASE
193+
add rax, RVA_IDATA(IAT_win32_GetLastError)
194+
call [rax]
195+
add rsp,32
196+
; eax -> deine Fehleranzeige
197+
add rsp, 80
198+
jmp .done
199+
200+
.cw_fail:
201+
sub rsp,32
202+
mov rax, IMAGE_BASE
203+
add rax, RVA_IDATA(IAT_win32_GetLastError)
204+
call [rax]
205+
add rsp,32
206+
; eax -> deine Fehleranzeige
207+
add rsp, 80
208+
jmp .done
209+
210+
.ok:
211+
.done:
212212
213-
.ok:
214-
.done:
215213
call_ExitProcess 2

src/_internal/shared/data64.asm

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,22 @@ data_start:
1010

1111
%include 'data.inc'
1212

13-
cap2A: db "ein Text",13,10,0
14-
cap2A_length equ ($ - cap2A)
13+
ASTR cap2A , "ein Text", 13,10,0
1514

16-
fmtW: WSTR "Win32-Fehler: 0x%08X (%u)", 0 ; Format-String (UTF-16)
17-
ErrTitleW: WSTR "Fehler", 0
15+
WSTR fmtW , "Win32-Fehler: 0x%08X (%u)", 0 ; Format-String (UTF-16)
16+
WSTR ErrTitleW , "Fehler"
1817

19-
errmsgW: WSTR 'RegisterClassExW failed'
20-
titleW: WSTR 'NASM PE64 GUI without Linker'
21-
winclassW: WSTR 'NasmWndClass'
22-
prompt: db "Eingabe: ",0
18+
WSTR errmsgW , 'RegisterClassExW failed'
19+
WSTR titleW , 'NASM PE64 GUI without Linker'
20+
WSTR winclassW , 'NasmWndClass'
21+
22+
ASTR prompt , "Eingabe: ",0
2323

2424
; SMALL_RECT {Left,Top,Right,Bottom} = {0,0,79,24}
2525
Rect80x25: dw 0, 0, 79, 24
2626
pMsg: dq 0 ; LPWSTR, wird von FormatMessageW allokiert
2727

28-
wbuf: times 256 dw 0 ; Ausgabepuffer (128 WCHAR)
28+
_cW_wbuf: times 256 dw 0 ; Ausgabepuffer (128 WCHAR)
2929
src: times 256 db 0
3030
dst: times 512 db 0
3131

0 commit comments

Comments
 (0)