pcs/xli.equ

70 lines
2.4 KiB
Plaintext
Raw Permalink Normal View History

2023-05-20 05:57:06 -04:00
; 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