From 2d04cacc5322951f187bb17e017c12920ac8ebe2 Mon Sep 17 00:00:00 2001 From: Mark Zbikowski Date: Thu, 25 Apr 2024 21:24:10 +0100 Subject: MZ is back! --- v4.0/src/CMD/COMP/COMPEQ.INC | 184 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 184 insertions(+) create mode 100644 v4.0/src/CMD/COMP/COMPEQ.INC (limited to 'v4.0/src/CMD/COMP/COMPEQ.INC') diff --git a/v4.0/src/CMD/COMP/COMPEQ.INC b/v4.0/src/CMD/COMP/COMPEQ.INC new file mode 100644 index 0000000..5272927 --- /dev/null +++ b/v4.0/src/CMD/COMP/COMPEQ.INC @@ -0,0 +1,184 @@ +;***************************************************************************** +; +; MODULE: compeq.inc +; +; Modification History: +; +; version author date comment +; ------- ------ ---- ------- +; V4.0 Bill L. 9/17/87 moved equates from comp2.sal to here! +; +;***************************************************************************** + if1 ;AN000; + %OUT INCLUDING COMPEQ.INC... ;AN000; + endif ;AN000; + +EAISBINARY equ 02h ;extended attribute is a binary integer ;AN001; +EASYSTEM equ 8000h ;extended attr. is system defined ;AN001; + +VERSION EQU 00H ;DOS VERSION, =00H (NOT USED) ;AN000; +NUL EQU 00H ;END OF STRING (ASCIIZ) MARKER ;AN000; +ONE_PARM EQU 01H ;ONLY PARSE ONE PARAMETER ;AN000; +ZERO_PARM_CT EQU 00H ;ORDINAL # BEFORE PARSING FIRST PARM. ;AN000; +FIRST_PARM_CT EQU 01H ;ORDINAL # AFTER PARSING FIRST PARM. ;AN000; +TRICK_PARM_CT EQU 02H ;TRICK PARSER SO THAT FILENAME GOES TO PATH2 ;AN000; + ;INSTEAD OF PATH1 ;AN000; +YES EQU 01H ;A VALID YES RESPONSE EQUALS 1 ;AN000; +KEYB_INP_CLR EQU 0C1H ; does an INT 21H fuction 0CH, 01H ;AN000; +KEYB_INPUT EQU 0FFH ;DO A READ ON CLEAR KEYBOARD ;AN000; +INPUT_LEN EQU 127 ;LENGTH OF INPUT BUFFER ON BUFFERED INPUT ;AN000; +KEYIN EQU 01H ;WAIT FOR KEYBOARD INPUT TO AL ;AN000; +DISP_OUT EQU 02H ;DL = CHAR TO BE DISPLAYED TO STD OUT ;AN000; +DIRECT_IO EQU 06H ;DUMBY CALL, USED IN CLEARING KEYBOARD ;AN000; +BUFFD_KEYBD EQU 0AH ;BUFFERED KEYBOARD INPUT TO DX ;AN000; +IN_STAT EQU 0BH ;check keyboard status ;AC210; +CLEAR_KEYBD EQU 0CH ;CLEAR KEYB, DO KEYB FUNC IN AL ;AN000; +FCBOpen equ 0FH ;fcb open ;AN000; +FCBCLOSE EQU 10H ;FCB CLOSE FILE ;AN000; +SearchF equ 11H ;FCB Search function call ;AN000; +SEARCHN EQU 12H ;FCB SEARCH NEXT ;AN000; +SetDTA equ 1AH ;Set DTA ;AN000; +DEFDRV equ 19H ;get default drive ;AN000; +YESNO_CHECK EQU 23H ;CHECK (Y/N) RESPONSE ON INPUT (EXTENDED COUNTRY INFO) ;AN000; +SETVECTOR equ 25H ;set interrupt vector in AL to DS:DX ;AN000; +FCBRndBlkRead equ 27H ;Read function call ;AN000; +PARSE_FILENAME EQU 29H ;PARSE FILENAME ;AN000; +GETVER equ 30H ;get dos version ;AN000; +CHDIR equ 3BH ;CHDIR function call ;AN000; +HandleOpen equ 3DH ;Handle open function call ;AN000; +HANDLECLOSE EQU 3EH ;HANDLE CLOSE FUNCTION CALL ;AN000; +Write equ 40H ;Write function call ;AN000; +CURDIR equ 47H ;get current directory for drive in [dl] ;AN000; +RET_FN EQU 4CH ;"RETURN TO DOS" NOT REMAIN RESIDENT ;AN000; +GET_EXT_CNTRY_INFO EQU 65H ;EXTENED COUNTRY INFO DOS CALL ;AN000; + +STDOUT equ 0001H ;Standard output device ;AN000; +STDERR equ 0002H ;Standard error device ;AN000; + +ReadOnlyAccess equ 00H ;Access code for Handle Open function call ;AN000; + +CPSW_CHECK EQU 33H ;CODE PAGE SWITCHING CONTROL ;AN000; +GET_CPSW_STATE EQU 03H ;AL=3, GET STATE TO DL ;AN000; +SET_CPSW_STATE EQU 04H ;AL=4, SET STATE FROM DL ;AN000; +CPSW_OFF EQU 00H ; DL=0, OFF ;AN000; +CPSW_ON EQU 01H ; DL=1, ON ;AN000; +CPSW EQU 40H ;IN CPSW_ORIG: ON, CPSW=ON ;AN000; +ZERO_CP EQU 00H ; A ZERO CODE PAGE ;AN000; + +; EXTENDED OPEN EQUATES ; LOOK ;AN000; +NO_ATTR_LIST EQU 00H ;NO ATTRIBUTE LIST NEEDED || ;AN000; +OPEN_MODE EQU 82H ;OPEN MODE FOR EXTENDED OPEN || ;AN000; +FUNC_CNTRL EQU 0101H ;FUNCTION CONTROL FOR EXTENDED OPEN || ;AN000; +EXT_OPEN_RD EQU 00H ;READ MODE ON EXTENDED OPEN \/ ;AN000; +EXT_OPEN EQU 6CH ;EXTENDED OPEN ;AN000; + ;AL=FUNCTION CONTROL, IN FORMAT=CE ;AN000; + ; C=DOES NOT EXIST ACTION: ;AN000; + ; 0=FAIL, 1=CREATE ;AN000; + ; E=EXISTS ACTION ;AN000; + ; 0=FAIL, 1=OPEN, 2=REPLACE/OPEN ;AN000; + ;BX=OPEN MODE, FORMAT=0WF00000ISSS0AAA ;AN000; + ; AAA=ACCESS CODE: 0=READ, 1=WRITE ;AN000; + ; 2=READ/WRITE, 4=EXECUTE (UNDOC) ;AN000; + ; 7=FCB (UNDOC) ;AN000; + ; SSS=SHARING MODE: 0=COMPATIBILITY ;AN000; + ; 1=DENY READ/WRITE, 2=DENY WRITE ;AN000; + ; 2=DENY READ, 3=DENY NONE ;AN000; + ; I=0, PASS HANDLE TO CHILD, 1=NO INHERIT ;AN000; + ; F=0, INT 24H, 1=RETURN ERROR ;AN000; + ;ON THIS OPEN AND ANY IO TO THIS HANDLE ;AN000; + ; W=0, NO COMMIT, 1=AUTO-COMMIT ON WRITE ;AN000; + ;CX=SCARCH/CREATE ATTRIBUTE ;AN000; + ;DX=FUNCTION CONTROL, 0000000C NNNNEEEE ;AN000; + ; NNNN=DOES NOT EXIST ACTION: ;AN000; + ; 0=FAIL,1=CREATE ;AN000; + ; EEEE=DOES EXIST ACTION: ;AN000; + ; 0=FAIL,1=OPEN,2=REPLACE/OPEN ;AN000; + ; C=CODEPAGE ACTION: ;AN000; + ; 0=VALIDATE, 1=NO CHECK CODE PAGE ;AN000; + ;DS:SI=PARM LIST: ;AN000; + ; DD POINT TO NAME TO OPEN ;AN000; + ; DB NUMBER OF ADDITIONAL PARMS ;AN000; + ; DB 1 IO MODE ;AN000; + ; DB IOMODE ;AN000; + ; ???0H=UNSPECIFIED (DEFAULT) ;AN000; + ; ???1H=MAINLY SEQUENTIAL ;AN000; + ; ???2H=MAINLY RANDOM ;AN000; + ; ???3H=RANDOM WITH LOCALITY ;AN000; + ; ???=RESERVED (SET TO ZERO) ;AN000; + ;ES:DI=EXTENTED ATTR LIST ;AN000; + + ;OUTPUT: CY SET ON ERROR ;AN000; + ; AX=HANDLE ;AN000; + ; CX=ACTION TAKEN: 1=FILE OPENED, ;AN000; + ; 2=FILE CREATED/OPENED, ;AN000; + ; 3=FILE REPLACED/OPENED ;AN000; + +EXT_ATTR_LIST EQU 57H ;FUNCTION # : EXTENDED ATTR LIST ;AN000; +GET_EXT_ATTR_LIST EQU 02H ;SUB-FUNC. # : GET EXTENDED ATTR TO LIST ;AN000; + ;BX=HANDLE ;AN000; + ;ES:DI=LIST ;AN000; + ;CY SET IF ERROR ;AN000; + + +EXTERROR EQU 59H ;EXTENDED ERROR ;AN000; + ;BX = 40 VERSION NUMBER (FOR 3.40) ;AN000; + ;OUTPUT: ;AN000; + ;AX=EXTENDED ERROR ;AN000; + ;BH=ERROR CLASS ;AN000; + ;BL=SUGGESTED ACTION ;AN000; + ;CH=LOCUS ;AN000; + +; ERRORLEVEL RETURN CODES, PASSED IN "EXITFL" ;AN000; +EXOK EQU 0 ;NORMAL RETURN CODE, NO PROBLEM ;AN000; +EXCB EQU 1 ;CONTROL BREAK EXIT ;AN000; +EXVER EQU 1 ;BAD DOS VERSION OR OTHER ;AN000; + ; SYSLOADMSG DIFFICULTY ;AN000; + +; VALUES FOR THE MSG_DESC CONTROL BLOCK ;AN000; +NO_SUBS EQU 0 ;NO VARIABLE FIELDS IN MESSAGE ;AN000; +ONE_SUBS EQU 1 ;ONE VARIABLE FIELD IN MESSAGE ;AN000; +TWO_SUBS EQU 2 ;TWO VARIABLE FIELDS IN MESSAGE ;AN000; +THREE_SUBS EQU 3 ;THREE VARIABLE FIELDS IN MESSAGE ;AN000; +CLASS_1 EQU 1 ;CLASS 1 (DOS EXTENDED ERRORS) ;AN000; +CLASS_2 EQU 2 ;CLASS 2 (PARSE ERRORS) ;AN000; +CLASS_A EQU -1 ;CLASS A TYPE MESSAGE ;AN000; + +;***************************** ;AN000; +; Message Retriever structures ;AN000; +;***************************** ;AN000; + +msg_desc struc ;AN000; +msg_num dw 0 ;MESSAGE NUMBER (TO AX) ;AN000; +msg_handle dw STDOUT ;HANDLE OF OUTPUT DEVICE (TO BX) ;AN000; +msg_sublist dw 0 ;POINTER TO SUBLIST (TO SI) ;AN000; +msg_count dw 0 ;SUBSTITUTION COUNT (TO CX) ;AN000; +msg_class dw CLASS_A shl 8 ;MESSAGE CLASS (IN HIGH BYTE, TO DH) ;AN000; + ;LOW BYTE HAS 0 (FUNCTION "NO INPUT", TO DL) ;AN000; +msg_input dw ? ;######EXTRA WORD - ONLY FOR MESSAGES WITH BUFFERED INPUT ;AN000; + ;######OTHERWISE THIS WORD IS NOT VALID AS PART OF THE STRUCT ;AN000; + ;POINTER TO INPUT BUFFER ;AN000; +msg_desc ends ;AN000; + +MAX_0 equ 0 ;MAXIMUM WIDTH OF STRING FIELD (0=NO LIMIT) ;AN000; +PAD_BLK equ " " ;CHAR FOR PAD FIELD ;AN000; + + +sublist struc ;AN000; +sub_size db 11 ;SUBLIST SIZE (POINTER TO NEXT SUBLIST) ;AN000; +sub_res db 0 ;RESERVED ;AN000; + ;NEXT FIELD IS TO BE USED AS A DOUBLE WORD ;AN000; +sub_value dw 0 ;TIME, DATE, OR PTR TO DATA ITEM ;AN000; +sub_value_seg dw 0 ;SEG ID OF PTR ;AN000; + ;(ABOVE FIELD MUST BE FILLED AT EXECUTION TIME ;AN000; + ; IF THIS IS A .COM FILE) ;AN000; +sub_id db 0 ;N OF %N ;AN000; +sub_flags db 0 ;DATA TYPE FLAGS ;AN000; +sub_max_width db MAX_0 ;MAXIMUM FIELD WIDTH (0=UNLIMITED) ;AN000; +sub_min_width db 0 ;MINIMUM FIELD WIDTH ;AN000; +sub_pad_char db PAD_BLK ;CHARACTER FOR PAD FIELD ;AN000; + ; CAN BE " ", "0" OR ",". ;AN000; + ; "," CAUSES INSERTION OF THE ACTIVE ;AN000; + ; THOUSANDS SEPARATOR BETWEEN EVERY 3 DIGITS. ;AN000; +sublist ends ;AN000; + +;end of COMPEQ.INC ;AN000; -- cgit v1.2.3