; XLI constants ; note: if N_EXE is ever made larger, examine macro "load_index" also XLI_ID equ 4252h ;XLI version number ;(PCS 3.0, 3.02 XLI id = 4252) N_EXE equ 10 ;no. of .EXE files allowed N_ARGS equ 16 ;no. of xesc args allowed N_RV equ 4 ;no. of return values ;same as for SW-INT: 0-3, with same meaning SWI_TF equ 1 ;SW-INT true/false return value SWI_STR equ 2 ;SW-INT string return value RV_ERR equ 10 ;error return value code PAD_SIZE equ 8 ;max size of 1 elementary data type, ;which is size of 1 elt in work_area ;(flonum/double) ; XLI errors XLI_ERR_UNKNOWN_LENGTH equ 1 ;fatal error XLI_ERR_NAME_BAD_TYPE equ 2 ;XLI_ERR_MISMATCHED_LENGTH equ 3 XLI_ERR_ARGN_BAD_TYPE equ 4 XLI_ERR_VALUE_BAD_TYPE equ 5 XLI_ERR_NO_SUCH_NAME equ 6 XLI_ERR_BIG_TO_32_BITS equ 7 XLI_ERR_SYNC_ERR equ 8 XLI_ERR_RELMEM equ 9 XLI_ERR_NO_MEMORY equ 10 XLI_ERR_BAD_EXEC equ 11 XLI_ERR_NO_AVAILABLE_SLOTS equ 12 XLI_ERR_NO_SUCH_FILE equ 13 XLI_ERR_BIG_TO_16_BITS equ 14 XLI_ERR_BAD_VERSION equ 15 XLI_ERR_EXTERNAL_ERROR equ 16 ; DOS function requests FR_TSR equ 3100h ;TSR (keep process) FR_OPEN equ 3D00h ;open file FR_CLOSE equ 3E00h ;close file FR_READ equ 3F00h ;read from file FR_RELMEM equ 4900h ;release memory block FR_EXEC equ 4B00h ;bid (exec) child process FR_FIND1 equ 4E00h ;find match file ; .EXE states EXE_NONE equ 0 ;this spot is open (haven't EXEC'ed child) EXE_TSR equ 1 ;have EXEC'ed child but not yet TSR'ed it EXE_NORM equ 2 ;child loaded and waiting EXE_TERM equ 3 ;child terminating ; File block flags FB_NEAR equ 01h ;1=copy to child's space (near data) ;0=no copy (far data) FB_INT equ 02h ;1=convert PCS integers to 16-bit int's ;0=convert to 32-bit longint's FB_KEEPENV equ 04h ;1=don't release child's env block ;0=we do it for child automatically FB_PAD equ 08h ;1=space each arg in dest 8 bytes apart ;0=pack args contiguously FB_SYSINT equ 10h ;1=system callable routine ;0=normal xli routine ; Special services SS_SWAP equ 1 ;swap ; PSP offsets env_ptr equ 02Ch ;env block offset fb_ptr equ 05Ch ;file block offset