]> wirehaze git hosting - MS-DOS.git/blob - v4.0/src/CMD/FASTOPEN/FASTP.ASM

wirehaze git hosting

MZ is back!
[MS-DOS.git] / v4.0 / src / CMD / FASTOPEN / FASTP.ASM
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
5 ;
6 ; DESCRIPTIVE NAME: Include the DOS system PARSER in the SEGMENT
7 ; configuration expected by the modules of fastopen.
8 ;
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.
12 ;
13 ; ENTRY POINT: SYSPARSE, near
14 ;
15 ; INPUT:
16 ; ES - has seg id of the SEGMENT
17 ; that contains the input control blocks,
18 ; defined below.
19 ;
20 ; DI - offset into ES of the PARMS INPUT BLOCK
21 ;
22 ; DS - has seg id of the SEGMENT
23 ; that contains the DOS input COMMAND
24 ; string, which is originally presented at 81h
25 ; in the PSP.
26 ;
27 ; SI - offset into DS of the text of the DOS input COMMAND string
28 ; as originally presented at 81H in the PSP.
29 ;
30 ; DX - zero
31 ;
32 ; CX - ordinal value, intially zero, updated on each subsequent call
33 ; to the value returned in CX on the previous call.
34 ;
35 ; CS - points to the segment containing the
36 ; INCLUDE PARSE.ASM statement
37 ;
38 ; DS - also points to the segment containing the INCLUDE
39 ; PARSE.ASM statement.
40 ;
41 ; EXIT-NORMAL: Output registers:
42 ; AX - return code:
43 ; RC_No_Error equ 0 ; No error
44 ; RC_EOL equ -1 ; End of command line
45 ;
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
50 ;
51 ; EXIT-ERROR: Output registers:
52 ; AX - return code:
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
61 ;
62 ; INTERNAL REFERENCES:
63 ; ROUTINES: SYSPARSE:near (INCLUDEd in PARSE.ASM)
64 ;
65 ; DATA AREAS: none
66 ;
67 ; EXTERNAL REFERENCES:
68 ; ROUTINES: none
69 ;
70 ; DATA AREAS: control blocks pointed to by input registers.
71 ;
72 ; NOTES:
73 ;
74 ; For LINK instructions, refer to the PROLOG of the main module,
75 ; fastopen.asm.
76 ;
77 ; REVISION HISTORY: A000 Version 4.00: add PARSER, System Message Handler,
78 ;
79 ; COPYRIGHT: "MS DOS FASTOPEN Utility"
80 ; "Version 4.00 (C)Copyright 1988 Microsoft "
81 ; "Licensed Material - Property of Microsoft "
82 ;
83 ;PROGRAM AUTHOR: DOS 4.00 P L
84 ;
85 ;****************** END OF SPECIFICATIONS *****************************
86 IF1 ; ;AN000;
87 %OUT COMPONENT=fastopen, MODULE=fastp.asm...
88 ENDIF ; ;AN000;
89 ; = = = = = = = = = = = =
90 HEADER <MACRO DEFINITION> ; ;AN000;
91 ; = = = = = = = = = = = =
92
93 HEADER MACRO TEXT ;; ;AN000;
94 .XLIST
95 SUBTTL TEXT
96 .LIST
97 PAGE ;; ;AN000;
98 ENDM ;; ;AN000;
99
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
104
105 PUBLIC SYSPARSE ;SUBROUTINE ENTRY POINT ;AN000;
106
107
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
123
124
125 IF1 ; ;AN000;
126 %OUT COMPONENT=fastopen, SUBCOMPONENT=PARSE, MODULE=PARSE.ASM...
127 %OUT COMPONENT=fastopen, SUBCOMPONENT=PARSE, MODULE=PSDATA.INC...
128 ENDIF ; ;AN000;
129 INCLUDE PARSE.ASM ; ;AN000;
130 CSEG_INIT ENDS ;
131 END ; ;AN000;