summaryrefslogtreecommitdiff
path: root/v4.0/src/CMD/COMP/COMPEQ.INC
blob: 52729273647efd405f513e75c8ed0ba6ec687ff2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
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;