1 PAGE
90,132 ;AN000;\ f\eA\b\e2
2 TITLE GRTABP
.SAL - GRAFTABL SYSTEM COMMAND LINE PARSER
;AN000;
3 ;****************** START OF SPECIFICATIONS *****************************
4 ; MODULE NAME: GRTABP.SAL
6 ; DESCRIPTIVE NAME: Include the DOS system PARSER in the SEGMENT
7 ; configuration expected by the modules of GRAFTABL.
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 ; The segment registers are ASSUMED according to the type .COM.
13 ; The Common PARSER is then INCLUDEd.
15 ; ENTRY POINT: SYSPARSE, near
18 ; ES - has seg id of the SEGMENT
19 ; that contains the input control blocks,
22 ; DI - offset into ES of the PARMS INPUT BLOCK
24 ; DS - has seg id of the SEGMENT
25 ; that contains the DOS input COMMAND
26 ; string, which is originally presented at 81h
29 ; SI - offset into DS of the text of the DOS input COMMAND string
30 ; as originally presented at 81H in the PSP.
34 ; CX - ordinal value, intially zero, updated on each subsequent call
35 ; to the value returned in CX on the previous call.
37 ; CS - points to the segment containing the
38 ; INCLUDE PARSE.ASM statement
40 ; DS - also points to the segment containing the INCLUDE
41 ; PARSE.ASM statement.
43 ; EXIT-NORMAL: Output registers:
45 ; RC_No_Error equ 0 ; No error
46 ; RC_EOL equ -1 ; End of command line
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
53 ; EXIT-ERROR: Output registers:
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
64 ; INTERNAL REFERENCES:
65 ; ROUTINES: SYSPARSE:near (INCLUDEd in PARSE.ASM)
69 ; EXTERNAL REFERENCES:
72 ; DATA AREAS: control blocks pointed to by input registers.
75 ; This module should be processed with the SALUT preprocessor
76 ; with the re-alignment not requested, as:
80 ; To assemble these modules, the alphabetical or sequential
81 ; ordering of segments may be used.
83 ; For LINK instructions, refer to the PROLOG of the main module,
86 ;****************** END OF SPECIFICATIONS *****************************
88 %
OUT COMPONENT
=GRAFTABL
, MODULE
=GRTABP
.SAL... ;AN000;
90 ; = = = = = = = = = = = =
91 HEADER
<MACRO DEFINITION
> ;AN000;
92 INCLUDE PATHMAC
.INC ;AN006;
93 ; = = = = = = = = = = = =
95 HEADER
MACRO TEXT
;;AN000;
102 ; = = = = = = = = = = = =
103 HEADER
<SYSPARSE
- SYSTEM COMMAND LINE PARSER
> ;AN000;
104 CSEG
SEGMENT PARA
PUBLIC ;AN000;
105 ASSUME
CS:CSEG
,DS:CSEG
,ES:CSEG
,SS:CSEG
;AN000;
107 FARSW EQU
0 ;AN000;CALL THE PARSER BY NEAR CALL
108 DATESW EQU
0 ;AN000;SUPPRESS DATE CHECKING
109 TIMESW EQU
0 ;AN000;SUPPRESS TIME CHECKING
110 FILESW EQU
0 ;AN000;SUPPRESS CHECKING FILE SPECIFICATION
111 CAPSW EQU
0 ;AN000;SUPPRESS FILE TABLE CAPS
112 CMPXSW EQU
0 ;AN000;SUPPRESS CHECKING COMPLEX LIST
113 DRVSW EQU
0 ;AN000;SUPPRESS SUPPORT OF DRIVE ONLY FORMAT
114 QUSSW EQU
0 ;AN000;SUPPRESS SUPPORT OF QUOTED STRING FORMAT
115 NUMSW EQU
0 ;AN000;SUPPRESS CHECKING NUMERIC VALUE
116 KEYSW EQU
0 ;AN000;SUPPRESS KEYWORD SUPPORT
117 SWSW EQU
1 ;AN000;DO SUPPORT SWITCHES
118 VAL1SW EQU
0 ;AN000;SUPPRESS SUPPORT OF VALUE DEFINITION 1
119 VAL2SW EQU
0 ;AN000;SUPPRESS SUPPORT OF VALUE DEFINITION 2
120 VAL3SW EQU
1 ;AN000;DO SUPPORT VALUE DEFINITION 3
121 BASESW EQU
1 ;AN005;SPECIFY, PSDATA POINTED TO BY "DS"
122 INCSW EQU
0 ;AN006;DO NOT INCLUDE PSDATA.INC
125 ; INCLUDE PSDATA.INC ;AN006; WORK AREA FOR PARSER
128 INCLUDE PSDATA
.INC ;AN006; WORK AREA FOR PARSER
131 PATHLABL GRTABP
;AN006;
133 PUBLIC SYSPARSE
;AN000;SUBROUTINE ENTRY POINT
135 ; INCLUDE PARSE.ASM ;GENERATED CODE SUPPRESSED FROM LISTING ;AN000;
138 INCLUDE PARSE
.ASM
;AN000;
141 PATHLABL GRTABP
;AN006;