summaryrefslogtreecommitdiff
path: root/v4.0/src/CMD/FASTOPEN/FASTP.ASM
diff options
context:
space:
mode:
Diffstat (limited to 'v4.0/src/CMD/FASTOPEN/FASTP.ASM')
-rw-r--r--v4.0/src/CMD/FASTOPEN/FASTP.ASM131
1 files changed, 131 insertions, 0 deletions
diff --git a/v4.0/src/CMD/FASTOPEN/FASTP.ASM b/v4.0/src/CMD/FASTOPEN/FASTP.ASM
new file mode 100644
index 0000000..561417c
--- /dev/null
+++ b/v4.0/src/CMD/FASTOPEN/FASTP.ASM
@@ -0,0 +1,131 @@
1 PAGE 90,132 ;A2
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
93HEADER 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;
102CSEG_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
108INCSW EQU 1 ;INCLUDE PSDATA.INC ;AN000;
109FARSW EQU 0 ;CALL THE PARSER BY NEAR CALL
110DATESW EQU 0 ;SUPPRESS DATE CHECKING ;AN000;
111TIMESW EQU 0 ;SUPPRESS TIME CHECKING ;AN000;
112FILESW EQU 0 ;SUPPRESS CHECKING FILE SPECIFICATION ;AN000;
113CAPSW EQU 0 ;SUPPRESS FILE TABLE CAPS ;AN000;
114CMPXSW EQU 1 ;SUPPRESS CHECKING COMPLEX LIST
115DRVSW EQU 1 ;SUPPRESS SUPPORT OF DRIVE ONLY FORMAT
116QUSSW EQU 0 ;SUPPRESS SUPPORT OF QUOTED STRING FORMAT ;AN000;
117NUMSW EQU 1 ;SUPPRESS CHECKING NUMERIC VALUE
118KEYSW EQU 0 ;SUPPRESS KEYWORD SUPPORT ;AN000;
119SWSW EQU 1 ;DO SUPPORT SWITCHES ;AN000;
120VAL1SW EQU 0 ;SUPPRESS SUPPORT OF VALUE DEFINITION 1 ;AN000;
121VAL2SW EQU 0 ;SUPPRESS SUPPORT OF VALUE DEFINITION 2 ;AN000;
122VAL3SW 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;
130CSEG_INIT ENDS ;
131 END ; ;AN000;