Spoiler:
Code: Select all
format binary as ""
use32
; standard header
db 'MENUET01' ; signature
dd 1 ; header version
dd start ; entry point
dd i_end ; initialized size
dd mem+0x1000 ; required memory
dd mem+0x1000 ; stack pointer
dd buf_cmd ; parameters
dd path ; path
include 'macros.inc'
purge mov,add,sub
start:
; initialize heap for using dynamic blocks
mcall 68,11
test eax,eax
je exit
int3
mcall 30, 2, filename_buf, 128
exit:
mcall -1
; data
i_end:
filename_buf rb 128
buf_cmd rb 1024 ; buffer for holding command string
path rb 1024
mem: