summaryrefslogtreecommitdiff
path: root/v4.0/src/CMD/ASSIGN/ASSGPARM.ASM
diff options
context:
space:
mode:
Diffstat (limited to 'v4.0/src/CMD/ASSIGN/ASSGPARM.ASM')
-rw-r--r--v4.0/src/CMD/ASSIGN/ASSGPARM.ASM141
1 files changed, 141 insertions, 0 deletions
diff --git a/v4.0/src/CMD/ASSIGN/ASSGPARM.ASM b/v4.0/src/CMD/ASSIGN/ASSGPARM.ASM
new file mode 100644
index 0000000..74067bf
--- /dev/null
+++ b/v4.0/src/CMD/ASSIGN/ASSGPARM.ASM
@@ -0,0 +1,141 @@
1
2 PAGE ,132 ;
3 TITLE ASSPARM.SAL - ASSIGN SYSTEM COMMAND LINE PARSER
4;****************** START OF SPECIFICATIONS *****************************
5; MODULE NAME: ASSGPARM.SAL
6;
7; DESCRIPTIVE NAME: Include the DOS system PARSER in the SEGMENT
8; configuration expected by the modules of ASSIGN.
9;
10;FUNCTION: The common code of the DOS command line PARSER is optimized by
11; the setting of certain switches that cause the conditional
12; assembly of only the required portions of the common PARSER.
13; The segment registers are ASSUMED according to the type .EXE.
14;
15; ENTRY POINT: SYSPARSE, near
16;
17; INPUT:
18; ES - has seg id of the SEGMENT
19; that contains the input control blocks,
20; defined below.
21;
22; DI - offset into ES of the PARMS INPUT BLOCK
23;
24; DS - has seg id of the SEGMENT
25; that contains the DOS input COMMAND
26; string, which is originally presented at 81h
27; in the PSP.
28;
29; SI - offset into DS of the text of the DOS input COMMAND string
30; as originally presented at 81H in the PSP.
31;
32; DX - zero
33;
34; CX - ordinal value, intially zero, updated on each subsequent call
35; to the value returned in CX on the previous call.
36;
37; CS - points to the segment containing the
38; INCLUDE PARSE.SAL statement
39;
40; DS - also points to the segment containing the INCLUDE
41; PARSE.SAL statement.
42;
43; EXIT-NORMAL: Output registers:
44; AX - return code:
45; RC_No_Error equ 0 ; No error
46; RC_EOL equ -1 ; End of command line
47;
48; DX - Offset into ES of the selected RESULT BLOCK.
49; BL - terminated delimiter code
50; CX - new operand ordinal
51; SI - set past scanned operand
52;
53; EXIT-ERROR: Output registers:
54; AX - return code:
55; RC_Too_Many equ 1 ; Too many operands
56; RC_Op_Missing equ 2 ; Required operand missing
57; RC_Not_In_SW equ 3 ; Not in switch list provided
58; RC_Not_In_Key equ 4 ; Not in keyword list provided
59; RC_Out_Of_Range equ 6 ; Out of range specified
60; RC_Not_In_Val equ 7 ; Not in value list provided
61; RC_Not_In_Str equ 8 ; Not in string list provided
62; RC_Syntax equ 9 ; Syntax error
63;
64; INTERNAL REFERENCES:
65; ROUTINES: SYSPARSE:near (INCLUDEd in PARSE.SAL)
66;
67; DATA AREAS: none
68;
69; EXTERNAL REFERENCES:
70; ROUTINES: none
71;
72; DATA AREAS: control blocks pointed to by input registers.
73;
74; NOTES:
75; This module should be processed with the ASMUT preprocessor
76; with the re-alignment not requested, as:
77;
78; SALUT ASSPARM,NUL;
79;
80; To assemble these modules, the sequential
81; ordering of segments may be used.
82;
83; For LINK instructions, refer to the PROLOG of the main module,
84; ASSIGN.SAL
85;
86; REVISION HISTORY: A000 Version 4.00: add PARSER, System Message Handler,
87;
88; COPYRIGHT: "Microsoft DOS ASSIGN Utility"
89; "Version 4.00 (C)Copyright 1988 Microsoft Corp"
90; "Licensed Material - Program Property of Microsoft "
91;
92;****************** END OF SPECIFICATIONS *****************************
93 IF1
94 %OUT COMPONENT=ASSIGN, MODULE=ASSPARM.SAL...
95 ENDIF
96; = = = = = = = = = = = =
97 HEADER <MACRO DEFINITION>
98; = = = = = = = = = = = =
99
100HEADER MACRO TEXT
101.XLIST
102 SUBTTL TEXT
103.LIST
104 PAGE
105 ENDM
106
107; = = = = = = = = = = = =
108 HEADER <SYSPARSE - SYSTEM COMMAND LINE PARSER> ; ;AN000;
109CODE SEGMENT PARA PUBLIC ; ;AN000;
110 ASSUME CS:CODE,DS:CODE,ES:CODE,SS:CODE ; ;AN000;
111
112 PUBLIC SYSPARSE ;SUBROUTINE ENTRY POINT ;AN000;
113
114CAPSW EQU 1 ;SUPPORT FILENAME TBL CAPS
115FARSW EQU 0 ;PARSER CALL NEAR
116FILESW EQU 0 ;CHECK FOR FILESPEC
117DATESW EQU 0 ;SUPPRESS DATE CHECKING
118TIMESW EQU 0 ;SUPPRESS TIME CHECKING
119CMPXSW EQU 0 ;SUPPRESS CHECKING COMPLEX LIST
120NUMSW EQU 0 ;SUPPRESS CHECKING NUMERIC VALUE
121KEYSW EQU 0 ;SUPPRESS KEYWORD SUPPORT
122VAL1SW EQU 0 ;SUPPRESS SUPPORT OF VALUE DEFINITION 1
123VAL2SW EQU 0 ;SUPPRESS SUPPORT OF VALUE DEFINITION 2
124VAL3SW EQU 1 ;SUPPORT OF VALUE DEFINITION 3
125DRVSW EQU 0 ;SUPPORT OF DRIVE ONLY FORMAT
126QUSSW EQU 0 ;SUPPRESS SUPPORT OF QUOTED STRING FORMAT
127
128 IF1 ; ;AN000;
129 %OUT COMPONENT=ASSIGN, SUBCOMPONENT=PARSE, MODULE=PARSE.ASM...
130 %OUT COMPONENT=ASSIGN, SUBCOMPONENT=PARSE, MODULE=PSDATA.INC...
131 ENDIF ; ;AN000;
132
133 ;PARSE WORK AREA & EQUATES
134
135.xlist
136 INCLUDE PARSE.ASM
137.list
138
139CODE ENDS
140 END
141 \ No newline at end of file