1 PAGE
90,132 ;\ f\eA\b\e2
2 TITLE fastp
.asm
- fastopen SYSTEM COMMAND LINE PARSER
3 ;****************** START OF SPECIFICATIONS *****************************
4 ; MODULE NAME: fastp.asm
6 ; DESCRIPTIVE NAME: Include the DOS system PARSER in the SEGMENT
7 ; configuration expected by the modules of fastopen.
9 ;FUNCTION: The common code of the DOS command line PARSER is optimized by
10 ; the setting of certain switches that cause the conditional
11 ; assembly of only the required portions of the common PARSER.
13 ; ENTRY POINT: SYSPARSE, near
16 ; ES - has seg id of the SEGMENT
17 ; that contains the input control blocks,
20 ; DI - offset into ES of the PARMS INPUT BLOCK
22 ; DS - has seg id of the SEGMENT
23 ; that contains the DOS input COMMAND
24 ; string, which is originally presented at 81h
27 ; SI - offset into DS of the text of the DOS input COMMAND string
28 ; as originally presented at 81H in the PSP.
32 ; CX - ordinal value, intially zero, updated on each subsequent call
33 ; to the value returned in CX on the previous call.
35 ; CS - points to the segment containing the
36 ; INCLUDE PARSE.ASM statement
38 ; DS - also points to the segment containing the INCLUDE
39 ; PARSE.ASM statement.
41 ; EXIT-NORMAL: Output registers:
43 ; RC_No_Error equ 0 ; No error
44 ; RC_EOL equ -1 ; End of command line
46 ; DX - Offset into ES of the selected RESULT BLOCK.
47 ; BL - terminated delimiter code
48 ; CX - new operand ordinal
49 ; SI - set past scanned operand
51 ; EXIT-ERROR: Output registers:
53 ; RC_Too_Many equ 1 ; Too many operands
54 ; RC_Op_Missing equ 2 ; Required operand missing
55 ; RC_Not_In_SW equ 3 ; Not in switch list provided
56 ; RC_Not_In_Key equ 4 ; Not in keyword list provided
57 ; RC_Out_Of_Range equ 6 ; Out of range specified
58 ; RC_Not_In_Val equ 7 ; Not in value list provided
59 ; RC_Not_In_Str equ 8 ; Not in string list provided
60 ; RC_Syntax equ 9 ; Syntax error
62 ; INTERNAL REFERENCES:
63 ; ROUTINES: SYSPARSE:near (INCLUDEd in PARSE.ASM)
67 ; EXTERNAL REFERENCES:
70 ; DATA AREAS: control blocks pointed to by input registers.
74 ; For LINK instructions, refer to the PROLOG of the main module,
77 ; REVISION HISTORY: A000 Version 4.00: add PARSER, System Message Handler,
79 ; COPYRIGHT: "MS DOS FASTOPEN Utility"
80 ; "Version 4.00 (C)Copyright 1988 Microsoft "
81 ; "Licensed Material - Property of Microsoft "
83 ;PROGRAM AUTHOR: DOS 4.00 P L
85 ;****************** END OF SPECIFICATIONS *****************************
87 %
OUT COMPONENT
=fastopen
, MODULE
=fastp
.asm
...
89 ; = = = = = = = = = = = =
90 HEADER
<MACRO DEFINITION
> ; ;AN000;
91 ; = = = = = = = = = = = =
93 HEADER
MACRO TEXT
;; ;AN000;
100 ; = = = = = = = = = = = =
101 HEADER
<SYSPARSE
- SYSTEM COMMAND LINE PARSER
> ; ;AN000;
102 CSEG_INIT
SEGMENT PARA
PUBLIC 'CODE' ;
103 ASSUME
CS:CSEG_INIT
,DS:CSEG_INIT
,ES:CSEG_INIT
105 PUBLIC SYSPARSE
;SUBROUTINE ENTRY POINT ;AN000;
108 INCSW EQU
1 ;INCLUDE PSDATA.INC ;AN000;
109 FARSW EQU
0 ;CALL THE PARSER BY NEAR CALL
110 DATESW EQU
0 ;SUPPRESS DATE CHECKING ;AN000;
111 TIMESW EQU
0 ;SUPPRESS TIME CHECKING ;AN000;
112 FILESW EQU
0 ;SUPPRESS CHECKING FILE SPECIFICATION ;AN000;
113 CAPSW EQU
0 ;SUPPRESS FILE TABLE CAPS ;AN000;
114 CMPXSW EQU
1 ;SUPPRESS CHECKING COMPLEX LIST
115 DRVSW EQU
1 ;SUPPRESS SUPPORT OF DRIVE ONLY FORMAT
116 QUSSW EQU
0 ;SUPPRESS SUPPORT OF QUOTED STRING FORMAT ;AN000;
117 NUMSW EQU
1 ;SUPPRESS CHECKING NUMERIC VALUE
118 KEYSW EQU
0 ;SUPPRESS KEYWORD SUPPORT ;AN000;
119 SWSW EQU
1 ;DO SUPPORT SWITCHES ;AN000;
120 VAL1SW EQU
0 ;SUPPRESS SUPPORT OF VALUE DEFINITION 1 ;AN000;
121 VAL2SW EQU
0 ;SUPPRESS SUPPORT OF VALUE DEFINITION 2 ;AN000;
122 VAL3SW EQU
0 ;DO SUPPORT VALUE DEFINITION 3
126 %
OUT COMPONENT
=fastopen
, SUBCOMPONENT
=PARSE
, MODULE
=PARSE
.ASM
...
127 %
OUT COMPONENT
=fastopen
, SUBCOMPONENT
=PARSE
, MODULE
=PSDATA
.INC...
129 INCLUDE PARSE
.ASM
; ;AN000;