diff options
Diffstat (limited to 'v4.0/src/CMD/CHKDSK/CHKPARSE.INC')
| -rw-r--r-- | v4.0/src/CMD/CHKDSK/CHKPARSE.INC | 285 |
1 files changed, 285 insertions, 0 deletions
diff --git a/v4.0/src/CMD/CHKDSK/CHKPARSE.INC b/v4.0/src/CMD/CHKDSK/CHKPARSE.INC new file mode 100644 index 0000000..ce76896 --- /dev/null +++ b/v4.0/src/CMD/CHKDSK/CHKPARSE.INC | |||
| @@ -0,0 +1,285 @@ | |||
| 1 | ;an000;bgb | ||
| 2 | ;an000;bgb | ||
| 3 | ;an000;bgb | ||
| 4 | ;an000;bgb | ||
| 5 | data segment public para 'DATA' ;an000;bgb ;AN000; | ||
| 6 | ;an000;bgb | ||
| 7 | ;an000;bgb | ||
| 8 | ; ;an000;bgb | ||
| 9 | ;***************************************************************************** ;an000;bgb | ||
| 10 | ; Publics ;an000;bgb | ||
| 11 | ;***************************************************************************** ;an000;bgb | ||
| 12 | ; ;an000;bgb | ||
| 13 | ;an000;bgb | ||
| 14 | ; Public Drive_Letter_Buffer ;an000;bgb | ||
| 15 | Public SwBuffer ;an000;bgb | ||
| 16 | Public Switch_F_Buffer ;an000;bgb | ||
| 17 | ; Public FileSpec_Buffer ;an000;bgb | ||
| 18 | public buffer ;an000;bgb | ||
| 19 | public sw_v, sw_f ;an000;bgb;an020;bgb | ||
| 20 | ;an000;bgb | ||
| 21 | ; ;an000;bgb | ||
| 22 | ;*************************************************************************** ;an000;bgb | ||
| 23 | ; Equates ;an000;bgb | ||
| 24 | ;*************************************************************************** ;an000;bgb | ||
| 25 | ; ;an000;bgb | ||
| 26 | ;an000;bgb | ||
| 27 | ;Match Flags ;an000;bgb | ||
| 28 | ;an000;bgb | ||
| 29 | Numeric_Value equ 8000h ; ;an000;bgb;AN000; | ||
| 30 | Signed_Numeric_Value equ 4000h ; ;an000;bgb;AN000; | ||
| 31 | Simple_String equ 2000h ; ;an000;bgb;AN000; | ||
| 32 | Date_String equ 1000h ; ;an000;bgb;AN000; | ||
| 33 | Time_String equ 0800h ; ;an000;bgb;AN000; | ||
| 34 | Complex_List equ 0400h ; ;an000;bgb;AN000; | ||
| 35 | Quoted_String equ 0080h ; ;an000;bgb;AN000; | ||
| 36 | Ignore_Colon equ 0010h ; ;an000;bgb;AN000; | ||
| 37 | Repeats_Allowed equ 0002h ; ;an000;bgb;AN000; | ||
| 38 | Optional equ 0001h ; ;an000;bgb;AN000; | ||
| 39 | Filespec equ 0200h ; ;an000;bgb;AN000; | ||
| 40 | Drive_Only equ 0100h ; ;an000;bgb;AN000; | ||
| 41 | ;an000;bgb | ||
| 42 | ;Function_Flags ;an000;bgb | ||
| 43 | ;an000;bgb | ||
| 44 | File_Table_Capitalize equ 1 ; ;an000;bgb;AN000; | ||
| 45 | Char_Table_Capitalize equ 2 ; ;an000;bgb;AN000; | ||
| 46 | Remove_Colon equ 10h ; ;an000;bgb;AN000; | ||
| 47 | ;an000;bgb | ||
| 48 | ;Extra delimeters and EOL ;an000;bgb | ||
| 49 | ;an000;bgb | ||
| 50 | Delimiters_Only equ 1 ; ;an000;bgb;AN000; | ||
| 51 | EOL_Or_Delimiters equ 2 ; ;an000;bgb;AN000; | ||
| 52 | ;an000;bgb | ||
| 53 | Semi_Colon equ ";" ; ;an000;bgb;AN000; | ||
| 54 | Tab equ 09h ; ;an000;bgb;AN000; | ||
| 55 | Colon equ ":" ; ;an000;bgb;AN000; | ||
| 56 | ;an000;bgb | ||
| 57 | ;an000;bgb | ||
| 58 | ;Parse Errors ;an000;bgb | ||
| 59 | ;an000;bgb | ||
| 60 | No_Error equ 0 ; ;an000;bgb;AN000; | ||
| 61 | Too_Many_Operands equ 1 ; ;an000;bgb;AN000; | ||
| 62 | Operand_Missing equ 2 ; ;an000;bgb;AN000; | ||
| 63 | Not_In_Switch_List equ 3 ; ;an000;bgb;AN000; | ||
| 64 | Not_In_Keyword_List equ 4 ; ;an000;bgb;AN000; | ||
| 65 | Out_Of_Range equ 6 ; ;an000;bgb;AN000; | ||
| 66 | Not_In_Value_List equ 7 ; ;an000;bgb;AN000; | ||
| 67 | Not_In_String_List equ 8 ; ;an000;bgb;AN000; | ||
| 68 | Syntax_Error equ 9 ; ;an000;bgb;AN000; | ||
| 69 | End_Of_Parse equ -1 ; ;an000;bgb;AN000; | ||
| 70 | ;an000;bgb | ||
| 71 | ;Return types ;an000;bgb | ||
| 72 | ;an000;bgb | ||
| 73 | Type_Reserved equ 0 ; ;an000;bgb;AN000; | ||
| 74 | Type_Number equ 1 ; ;an000;bgb;AN000; | ||
| 75 | Type_List_Index equ 2 ; ;an000;bgb;AN000; | ||
| 76 | Type_String equ 3 ; ;an000;bgb;AN000; | ||
| 77 | Type_Complex equ 4 ; ;an000;bgb;AN000; | ||
| 78 | Type_Filespec equ 5 ; ;an000;bgb;AN000; | ||
| 79 | Type_Drive equ 6 ; ;an000;bgb;AN000; | ||
| 80 | Type_Date equ 7 ; ;an000;bgb;AN000; | ||
| 81 | Type_Time equ 8 ; ;an000;bgb;AN000; | ||
| 82 | Type_Quoted_String equ 9 ; ;an000;bgb;AN000; | ||
| 83 | ;an000;bgb | ||
| 84 | ;Other ;an000;bgb | ||
| 85 | ;an000;bgb | ||
| 86 | None equ 0 ; ;an000;bgb;AN000; | ||
| 87 | No_Error equ 0 ; ;an000;bgb;AN000; | ||
| 88 | Switch_Found equ 0FFFFh ; ;an000;bgb;AN000; | ||
| 89 | Range_Ok equ 1 ; ;an000;bgb;AN000; | ||
| 90 | Command_Line_Parms equ 81h ; ;an000;bgb;AN000; | ||
| 91 | ;an000;bgb | ||
| 92 | ; ;an000;bgb | ||
| 93 | ;***************************************************************************** ;an000;bgb | ||
| 94 | ; Parse Structures ;an000;bgb | ||
| 95 | ;***************************************************************************** ;an000;bgb | ||
| 96 | ; ;an000;bgb | ||
| 97 | ;an000;bgb | ||
| 98 | Control struc ;an000;bgb | ||
| 99 | ;an000;bgb | ||
| 100 | Match_Flags dw ? ;an000;bgb | ||
| 101 | Function_Flags dw ? ;an000;bgb | ||
| 102 | Result dw ? ;an000;bgb | ||
| 103 | Values dw ? ;an000;bgb | ||
| 104 | Num_Keywords db ? ;an000;bgb | ||
| 105 | Keyword db ? ;an000;bgb | ||
| 106 | ;an000;bgb | ||
| 107 | Control ends ;an000;bgb | ||
| 108 | ;an000;bgb | ||
| 109 | ;Drive_Letter_Return struc ; ;an000;bgb ;AN000; | ||
| 110 | ;Drive_Type db 0 ; ;an000;bgb ;AN000; | ||
| 111 | ;Drive_Item_Tag db 0 ; ;an000;bgb ;AN000; | ||
| 112 | ;Drive_Pointer dw 0 ; ;an000;bgb ;AN000; | ||
| 113 | ;Drive_Number db 0 ;A=1, B=2, C=3 ;an000;bgb ;AN000; | ||
| 114 | ;Drive_debug db 8 dup(0) ;an000;bgb | ||
| 115 | ;Drive_Letter_Return ends ; ;an000;bgb ;AN000; | ||
| 116 | ; ;an000;bgb | ||
| 117 | ;Filespec_Return struc ;AN000;SM ;an000;bgb | ||
| 118 | ;Filespec_Type db 0 ;AN000;SM ;an000;bgb | ||
| 119 | ;FileSpec_Item db 0 ;AN000;SM ;an000;bgb | ||
| 120 | ;FileSpec_Pointer dw 0 ;AN000;SM ;an000;bgb | ||
| 121 | ;Filespec_String_Off dw 0 ;AN000;SM ;an000;bgb | ||
| 122 | ;FileSpec_String_Seg dw 0 ;an000;bgb | ||
| 123 | ;FileSpec_Return ends ;an000;bgb | ||
| 124 | ;an000;bgb | ||
| 125 | single_Return struc ;AN000;SM ;an000;bgb | ||
| 126 | dftype db 0 ;AN000;SM ;an000;bgb | ||
| 127 | Item db 0 ;AN000;SM ;an000;bgb | ||
| 128 | Pointer dw 0 ;AN000;SM ;an000;bgb | ||
| 129 | drnum_stroff dw 0 ;AN000;SM ;an000;bgb | ||
| 130 | return_strseg dw 0 ;an000;bgb | ||
| 131 | single_return ends ;an000;bgb | ||
| 132 | ;an000;bgb | ||
| 133 | ;an000;bgb | ||
| 134 | Switch_Return struc ; ;an000;bgb;AN000; | ||
| 135 | Switch_Type db 0 ; ;an000;bgb;AN000; | ||
| 136 | Switch_Item_Tag db 0 ; ;an000;bgb;AN000; | ||
| 137 | Switch_Pointer dw 0 ; ;an000;bgb;AN000; | ||
| 138 | Switch_Debug db 4 dup(0) ;an000;bgb | ||
| 139 | Switch_Return ends ; ;an000;bgb;AN000; | ||
| 140 | ;an000;bgb | ||
| 141 | Switch_Num_Return struc ; ;an000;bgb;AN000; | ||
| 142 | Switch_Num_Type db 0 ; ;an000;bgb ;AN000; | ||
| 143 | Switch_Num_Item_Tag db 0 ; ;an000;bgb ;AN000; | ||
| 144 | Switch_Num_Pointer dw 0 ; ;an000;bgb ;AN000; | ||
| 145 | Switch_Number_Low dw 0 ; ;AN0;an000;bgb00; | ||
| 146 | Switch_Number_High dw 0 ; ;AN0;an000;bgb00; | ||
| 147 | Switch_Num_Return ends ; ;an000;bgb;AN000; | ||
| 148 | ;an000;bgb | ||
| 149 | Switch_String_Return struc ; ;an000;bgb;AN000; | ||
| 150 | Switch_String_Type db 0 ; ;an000;bgb ;AN000; | ||
| 151 | Switch_String_Item_Tag db 0 ; ;an000;bgb ;AN000; | ||
| 152 | Switch_String_Pointer dw 0 ; ;an000;bgb ;AN000; | ||
| 153 | Switch_String_Off dw 0 ; ;an000;bgb;AN000; | ||
| 154 | Switch_String_Seg dw 0 ; ;an000;bgb;AN000; | ||
| 155 | Switch_String_Return ends ; ;an000;bgb;AN000; | ||
| 156 | ;an000;bgb | ||
| 157 | ;an000;bgb | ||
| 158 | ; ;an000;bgb | ||
| 159 | ;************************************************************************** ;an000;bgb | ||
| 160 | ; Parse tables ;an000;bgb | ||
| 161 | ;************************************************************************** ;an000;bgb | ||
| 162 | ; ;an000;bgb | ||
| 163 | Public input_Table ;an000;bgb | ||
| 164 | input_Table label byte ; ;AN000;;an000;bgb | ||
| 165 | ;an000;bgb | ||
| 166 | dw offset dg:ext_table ;Point to next level ;A;an000;bgbN000; | ||
| 167 | db Delimiters_Only ; ;an000;bgb;AN000; | ||
| 168 | db 1 ; ;an000;bgb;AN000; | ||
| 169 | db Semi_Colon ; ;an000;bgb;AN000; | ||
| 170 | ;an000;bgb | ||
| 171 | Drive_Table label byte ;an000;bgb;AN000; | ||
| 172 | ; ;an000;bgb | ||
| 173 | dw offset dg:Drive_Control_Definition ;Point to next level ;an000;bgb ;AN000; | ||
| 174 | db Delimiters_Only ; ;an000;bgb;AN000; | ||
| 175 | db 1 ; ;an000;bgb;AN000; | ||
| 176 | db Semi_Colon ; ;an000;bgb;AN000; | ||
| 177 | ;an000;bgb | ||
| 178 | ; ;an000;bgb | ||
| 179 | ;************************************************************************** ;an000;bgb | ||
| 180 | ;Define Positionals, Switches and Keywords ;an000;bgb | ||
| 181 | ;************************************************************************** ;an000;bgb | ||
| 182 | ; ;an000;bgb | ||
| 183 | ;an000;bgb | ||
| 184 | Public ext_table ;an000;bgb | ||
| 185 | ext_table label byte ; ;an000;bgb;AN000; | ||
| 186 | ; ;an000;bgb | ||
| 187 | db 0,1 ;up to one parm, either drive or file ;an000;bgb;an026;bgb | ||
| 188 | dw dg:dfcontrol ;Pointer to control table ;an000;bgb ;AN000; | ||
| 189 | db 1 ;1 switch def ;an000;bgb;AN020;bgb | ||
| 190 | dw dg:SwControl ;switch control block ;an000;bgb;AN020;bgb | ||
| 191 | db None ;No Keywords (maxk) ;an000;bgb;AN000; | ||
| 192 | ; ;an000;bgb | ||
| 193 | Drive_Control_Definition label byte ; ;an000;bgb;AN000; | ||
| 194 | ; ;an000;bgb | ||
| 195 | db 0,1 ;Only drive letter positional ;an000;bgb;AN000; | ||
| 196 | dw dg:dfControl ;Pointer to control table ;AN0;an000;bgb00; | ||
| 197 | db None ;0 switches ;an000;bgb;AN000; | ||
| 198 | db None ;No Keywords (maxk) ;an000;bgb;AN000; | ||
| 199 | ; ;an000;bgb | ||
| 200 | ;an000;bgb | ||
| 201 | ;an000;bgb | ||
| 202 | ; ;an000;bgb | ||
| 203 | ;************************************************************************** ;an000;bgb | ||
| 204 | ; Define Positionals, Switches and Keywords ;an000;bgb | ||
| 205 | ;************************************************************************** ;an000;bgb | ||
| 206 | ; ;an000;bgb | ||
| 207 | ;this is the new control block for both drive letters and filespecs ;an000;bgb | ||
| 208 | Public dfControl ;an000;bgb | ||
| 209 | dfControl label byte ; ;AN000;;an000;bgb | ||
| 210 | dw drive_only+FileSpec+Optional ; ;an000;bgb ;AN000; | ||
| 211 | dw None ; ;an000;bgb;AN000; | ||
| 212 | dw dg:Buffer ; ;AN000; ;an000;bgb | ||
| 213 | dw dg:No_Value ; ;an000;bgb;AN000; | ||
| 214 | db None ; ;an000;bgb;AN000; | ||
| 215 | ;an000;bgb | ||
| 216 | Public SwControl ;an02;an000;bgb0;bgb | ||
| 217 | SwControl label byte ; ;AN020;;an000;bgbbgb | ||
| 218 | dw None ; ;an000;bgb;AN000; | ||
| 219 | dw None ; ;an000;bgb;AN000; | ||
| 220 | dw dg:SwBuffer ; ;AN000;;an000;bgb | ||
| 221 | dw dg:No_Value ;an000;bgb ;AN000; | ||
| 222 | db 2 ; ;an000;bgb;AN020;bgb | ||
| 223 | sw_v db "/V",0 ; ;an000;bgb;AN020;bgb | ||
| 224 | sw_f db "/F",0 ; ;an000;bgb;AN020;bgb | ||
| 225 | ; ;an000;bgb | ||
| 226 | ;an000;bgb | ||
| 227 | ; ;an000;bgb | ||
| 228 | ;***************************************************************************** ;an000;bgb | ||
| 229 | ; Value lists ;an000;bgb | ||
| 230 | ;***************************************************************************** ;an000;bgb | ||
| 231 | ; ;an000;bgb | ||
| 232 | ;an000;bgb | ||
| 233 | No_Value db 0 ; ;an000;bgb;AN000; | ||
| 234 | ;an000;bgb | ||
| 235 | ;an000;bgb | ||
| 236 | ; ;an000;bgb | ||
| 237 | ;************************************************************************ ;an000;bgb | ||
| 238 | ; PARSE Return Buffers ;an000;bgb | ||
| 239 | ;************************************************************************ ;an000;bgb | ||
| 240 | ; ;an000;bgb | ||
| 241 | ; these buffers were replaced by a single buffer due to the parser bug ;an000;bgb | ||
| 242 | ;Drive_Letter_Buffer Drive_Letter_Return <> ;Example of structure ;an000;bgb ;AN000; | ||
| 243 | ;FileSpec_Buffer FileSpec_Return <> ; ;an000;bgb | ||
| 244 | SwBuffer Switch_Return <> ; ;an000;bgb;AN000; | ||
| 245 | Switch_F_Buffer Switch_Return <> ; ;an000;bgb;AN000; | ||
| 246 | buffer single_return <> ; new results buffer ;an000;bgb | ||
| 247 | data ends ; ;an000;bgb;AN000; | ||
| 248 | ;an000;bgb | ||
| 249 | ; ;an000;bgb | ||
| 250 | ;***************************************************************************** ;an000;bgb | ||
| 251 | ; SysParse Routines ;an000;bgb | ||
| 252 | ;***************************************************************************** ;an000;bgb | ||
| 253 | ; ;an000;bgb | ||
| 254 | ;an000;bgb | ||
| 255 | ;an000;bgb | ||
| 256 | code segment public para 'CODE' ;an000;bgb | ||
| 257 | ;an000;bgb | ||
| 258 | FarSW equ Not_Include ; ;an000;bgb;AN000; ;AN000; | ||
| 259 | DateSW equ Not_Include ; ;an000;bgb;AN000; | ||
| 260 | TimeSW equ Not_Include ; ;an000;bgb;AN000; | ||
| 261 | FileSW equ Do_Include ; ;an000;bgb;AN000; | ||
| 262 | CAPSW equ Not_Include ; ;an000;bgb;AN000; | ||
| 263 | CmpxSW equ Not_Include ; ;an000;bgb;AN000; | ||
| 264 | NumSW equ Not_Include ; ;an000;bgb;AN000; | ||
| 265 | KeySW equ Not_Include ; ;an000;bgb;AN000; | ||
| 266 | SwSW equ Do_Include ; ;an000;bgb;AN000; | ||
| 267 | Val1SW equ Not_Include ; ;an000;bgb;AN000; | ||
| 268 | Val2SW equ Not_Include ; ;an000;bgb;AN000; | ||
| 269 | Val3SW equ Not_Include ; ;an000;bgb;AN000; | ||
| 270 | DrvSW equ Do_Include ; ;an000;bgb;AN000; | ||
| 271 | QusSW equ Not_Include ; ;an000;bgb;AN000; | ||
| 272 | basesw equ 1 ;use ds as the default register ;an025;bgb | ||
| 273 | incsw equ 0 ;include psdata myself ;an028;bgb | ||
| 274 | code ends ;an028;bgb | ||
| 275 | |||
| 276 | |||
| 277 | data segment PUBLIC para 'DATA' ;an028;bgb | ||
| 278 | include psdata.inc ;an028;bgb | ||
| 279 | data ends ;an028;bgb | ||
| 280 | |||
| 281 | code segment PUBLIC para 'CODE' ;an028;bgb | ||
| 282 | pathlabl parser ;an028;bgb | ||
| 283 | INCLUDE PARSE.ASM ;AN000; ;an028;bgb | ||
| 284 | pathlabl parser ;an028;bgb | ||
| 285 | code ends ;an000;bgb | ||