BREAK ; ;---------------------------------------------------------------------------- ; ; M00x : 4b04 implementation ; ;---------------------------------------------------------------------------- ; ;** EXE.INC - Definitions for the EXEC command and EXE files ; ; The following get used as arguments to the EXEC system call. They indicate ; whether or not the program is executed or whether or not a program header ; gets created. EXEC_FUNC_NO_EXECUTE EQU 1 ; no execute bit EXEC_FUNC_OVERLAY EQU 2 ; overlay bit EXEC0 STRUC EXEC0_ENVIRON dw ? ; seg addr of environment EXEC0_COM_LINE dd ? ; pointer to asciz command line EXEC0_5C_FCB dd ? ; default fcb at 5C EXEC0_6C_FCB dd ? ; default fcb at 6C EXEC0 ENDS EXEC1 STRUC EXEC1_ENVIRON dw ? ; seg addr of environment EXEC1_COM_LINE dd ? ; pointer to asciz command line EXEC1_5C_FCB dd ? ; default fcb at 5C EXEC1_6C_FCB dd ? ; default fcb at 6C EXEC1_SP dw ? ; stack pointer of program EXEC1_SS dw ? ; stack seg register of program EXEC1_IP dw ? ; entry point IP EXEC1_CS dw ? ; entry point CS EXEC1 ENDS EXEC3 STRUC EXEC3_LOAD_ADDR DW ? ; seg address of load point EXEC3_RELOC_FAC DW ? ; relocation factor EXEC3 ENDS ;** Exit codes (in upper byte) for terminating programs EXIT_TERMINATE EQU 0 EXIT_ABORT EQU 0 EXIT_CTRL_C EQU 1 EXIT_HARD_ERROR EQU 2 EXIT_KEEP_PROCESS EQU 3 ;** EXE File Header Description ; EXE_FILE STRUC EXE_SIGNATURE dw ? ; must contain 4D5A (yay zibo!) EXE_LEN_MOD_512 dw ? ; low 9 bits of length EXE_PAGES dw ? ; number of 512b pages in file EXE_RLE_COUNT dw ? ; count of reloc entries EXE_PAR_DIR dw ? ; number of paragraphs before image EXE_MIN_BSS dw ? ; minimum number of para of BSS EXE_MAX_BSS dw ? ; max number of para of BSS EXE_SS dw ? ; stack of image EXE_SP dw ? ; SP of image EXE_CHKSUM dw ? ; checksum of file (ignored) EXE_IP dw ? ; IP of entry EXE_CS dw ? ; CS of entry EXE_RLE_TABLE dw ? ; byte offset of reloc table EXE_IOV dw ? ; overlay number (0 for root) EXE_SYM_TAB dd ? ; offset of symbol table in file EXE_FILE ENDS EXE_VALID_SIGNATURE EQU 5A4Dh EXE_VALID_OLD_SIGNATURE EQU 4D5Ah ;** EXE file symbol info definitions SYMBOL_ENTRY STRUC SYM_VALUE dd ? SYM_TYPE dw ? SYM_LEN db ? SYM_NAME db 255 dup (?) SYMBOL_ENTRY ENDS ; ; M00x - BEGIN ; ;** Data structure passed for ExecReady call ERStruc STRUC ER_Reserved dw ? ; reserved, should be zero ER_Flags dw ? ER_ProgName dd ? ; ptr to ASCIIZ str of prog name ER_PSP dw ? ; PSP of the program ER_StartAddr dd ? ; Start CS:IP of the program ER_ProgSize dd ? ; Program size including PSP ERStruc ENDS ;** bit fields in ER_Flags ER_EXE equ 0001h ER_OVERLAY equ 0002h ; ; M00x - END ;