Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

199 lines
9.1 KiB

;/*
; * Microsoft Confidential
; * Copyright (C) Microsoft Corporation 1991
; * All Rights Reserved.
; */
data segment public 'DATA'
;
;***************************************************************************
; Equates
;***************************************************************************
;
;Match Flags
Numeric_Value equ 8000h ; ;AN000;
Signed_Numeric_Value equ 4000h ; ;AN000;
Simple_String equ 2000h ; ;AN000;
Date_String equ 1000h ; ;AN000;
Time_String equ 0800h ; ;AN000;
Complex_List equ 0400h ; ;AN000;
Filespec equ 0200h ; ;AN000;
Drive_Only equ 0100h ; ;AN000;
Quoted_String equ 0080h ; ;AN000;
Ignore_Colon equ 0010h ; ;AN000;
Repeats_Allowed equ 0002h ; ;AN000;
Optional equ 0001h ; ;AN000;
;Function_Flags
File_Table_Capitalize equ 1 ; ;AN000;
;Result buffer type returned
rb_Number equ 1
rb_List_Index equ 2
rb_String equ 3
rb_Complex equ 4
rb_Filespec equ 5
rb_Drive equ 6
rb_Date equ 7
rb_Time equ 8
rb_Quoted_String equ 9
;Extra delimeters and EOL
Delimiters_Only equ 1 ; ;AN000;
EOL_Or_Delimiters equ 2 ; ;AN000;
Semi_Colon equ ";" ; ;AN000;
Tab equ 09h ; ;AN000;
Colon1 equ ":" ; ;AN000;
NUL equ "0"
;Parse Errors
No_Error equ 0 ; ;AN000;
Too_Many_Operands equ 1 ; ;AN000;
Operand_Missing equ 2 ; ;AN000;
Not_In_Switch_List equ 3 ; ;AN000;
Not_In_Keyword_List equ 4 ; ;AN000;
Out_Of_Range equ 6 ; ;AN000;
Not_In_Value_List equ 7 ; ;AN000;
Not_In_String_List equ 8 ; ;AN000;
Syntax_Error equ 9 ; ;AN000;
End_Of_Parse equ -1 ; ;AN000;
;Other
None equ 0 ; ;AN000;
No_Error equ 0 ; ;AN000;
Switch_Found equ 0FFFFh ; ;AN000;
Range_Ok equ 1 ; ;AN000;
Command_Line_Parms equ 81h ; ;AN000;
;
;*****************************************************************************
; Parse Structures
;*****************************************************************************
;
Control struc
Match_Flags dw ?
Function_Flags dw ?
Result dw ?
Values dw ?
Num_Keywords db ?
Keyword db ?
Control ends
File_Name_Return struc ; ;AN000;
Drive_Type db 0 ; ;AN000;
Drive_Item_Tag db 0 ; ;AN000;
Synonym dw 0 ; ;AN000;
String_Value_ptr db 0 ;File Name ;AN000;
File_Name_Return ends ; ;AN000;
;
;**************************************************************************
; Parse tables
;**************************************************************************
;
Command_Line_Table label byte ; ;AN000;
dw Command_Control ;Point to next level ;AN000;
db Delimiters_Only ; ;AN000;
db 1 ; ;AN000;
db Semi_Colon ; ;AN000;
;
;**************************************************************************
; Define Positionals, Switches and Keywords
;**************************************************************************
;
Command_Control label byte ; ;AN000;
db 1,2 ;File names Positional (1 required) ;AN000;
dw Positional_Control1 ;Pointer to control table ;AN000;
dw Positional_Control2 ;Pointer to control table ;AN000;
db 1 ; 1 switch
dw Switch_Control1 ; Pointer to control table
db None ;No Keywords (maxk) ;AN000;
;
;**************************************************************************
;Control Tables
;**************************************************************************
;
Positional_Control1 label byte ; ;AN000;
dw Filespec ;Match_Flag ;AN000;
dw File_Table_Capitalize ;No function flags ;AN000;
dw File_Name_Buffer1 ;Where it will be returned ;AN000;
dw No_Value ;No value ranges defined ;AN000;
db None ;No defined switches/keywords ;AN000;
Positional_Control2 label byte ; ;AN000;
dw Filespec+Optional ;Match_Flag ;AN000;
dw File_Table_Capitalize ;No function flags ;AN000;
dw File_Name_Buffer2 ;Where it will be returned ;AN000;
dw No_Value ;No value ranges defined ;AN000;
db None ;No defined switches/keywords ;AN000;
Switch_Control1 label byte ; used by /?
dw 0 ; Match Mask
dw 0 ; Func Mask
dw Switch_Buffer1 ; ptr to Results
dw No_Value ; ptr to Value
db 1 ; # of synonyms
sw1_s1 db "/?",0 ; 1st synonym
No_Value label byte ; ;AN000;
db 0 ; ;AN000;
;
;************************************************************************
; PARSE Return Buffers
;************************************************************************
;
File_name_Buffer1 label byte ; ;AN000;
rb_type1 db 0 ;type returned ;AN000;
rb_item_tag1 db 0 ;matched item tag ;AN000;
rb_synonym1 dw 0 ;found synonyms ;AN000;
rb_string1_off dw 0 ;Offset of string ;AN000;
rb_string1_seg dw 0 ;Offset of string ;AN000;
File_name_Buffer2 label byte ; ;AN000;
rb_type2 db 0 ;type returned ;AN000;
rb_item_tag2 db 0 ;matched item tag ;AN000;
rb_synonym2 dw 0 ;found synonyms ;AN000;
rb_string2_off dw 0 ;Offset of string ;AN000;
rb_string2_seg dw 0 ;Offset of string ;AN000;
Switch_Buffer1 label byte ; used by /?
sw_type1 db 0 ; type returned
sw_tag1 db 0 ; matched item tag
sw_synonym1 dw 0 ; found synonym
sw_padding1 dd 0 ; pad it out
data ends