FreeDOS/test/ldosboot/kernshim.asm

59 lines
988 B
NASM

%if 0
FreeDOS kernel executable MZ header shim
by C. Masloch, 2022
Usage of the works is permitted provided that this
instrument is retained with the works, so that any entity
that uses the works is notified of this instrument.
DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY.
%endif
%include "lmacros2.mac"
defaulting
strdef FILE, ""
%ifidn _FILE,""
%fatal Has to specify a file!
%endif
org 0
header:
db "MZ" ; exeSignature
dw (payload.end - $$) % 512 ; exeExtraBytes
dw (payload.end - $$ + 511) / 512 ; exePages
dw 0 ; exeRelocItems
dw (payload -$$+0) >> 4 ; exeHeaderSize
dw 0 ; exeMinAlloc
dw -1 ; exeMaxAlloc
dw 0 ; exeInitSS
dw -2 ; exeInitSP
dw 0 ; exeChecksum
dw 0, 0 ; exeInitCSIP
dw 0 ; exeRelocTable
endarea header
align 16, db 38
payload:
jmp strict short entry
db "CONFIG"
dw 1
db -1
times 32 - ($ - payload) db 0
entry: equ $
jmp entry_common
times 0xC0 - ($ - payload) db 0
entry_common: equ $
incbin _FILE
.actual_end:
.end: