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

wirehaze git hosting

MZ is back!
[MS-DOS.git] / v4.0 / src / CMD / DISKCOPY / DCOPYP.ASM
1 PAGE 90,132 ;AN000;\ f\eA\b\e2
2 TITLE DCOPYP.SAL - DISKCOPY SYSTEM COMMAND LINE PARSER
3 ;****************** START OF SPECIFICATIONS *****************************
4 ; MODULE NAME: DCOPYP.SAL
5 ;
6 ; DESCRIPTIVE NAME: Include the DOS system PARSER in the SEGMENT
7 ; configuration expected by the modules of DISKCOPY.
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 ; The segment registers are ASSUMED according to the type .COM.
13 ; The Common PARSER is then INCLUDEd.
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.ASM statement
39 ;
40 ; DS - also points to the segment containing the INCLUDE
41 ; PARSE.ASM 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.ASM)
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 SALUT preprocessor
76 ; with the re-alignment not requested, as:
77 ;
78 ; SALUT DCOPYP,NUL,;
79 ;
80 ; To assemble these modules, the alphabetical or sequential
81 ; ordering of segments may be used.
82 ;
83 ; For LINK instructions, refer to the PROLOG of the main module,
84 ; DISKCOPY.SAL.
85 ;
86 ;PROGRAM AUTHOR: DOS 4.00 EMK
87 ;
88 ;****************** END OF SPECIFICATIONS *****************************
89 IF1 ;AN000;
90 %OUT COMPONENT=DISKCOPY, MODULE=DCOPYP.SAL... ;AN000;
91 ENDIF ;AN000;
92 ; = = = = = = = = = = = =
93 HEADER <MACRO DEFINITION> ;AN000;
94 ; = = = = = = = = = = = =
95 INCLUDE PATHMAC.INC ;AN015;PATHGEN MACRO
96 ; = = = = = = = = = = = =
97 HEADER MACRO TEXT ;;AN000;
98 .XLIST ;AN000;
99 SUBTTL TEXT ;AN000;
100 .LIST ;AN000;
101 PAGE ;;AN000;
102 ENDM ;;AN000;
103
104 ; = = = = = = = = = = = =
105 HEADER <SYSPARSE - SYSTEM COMMAND LINE PARSER> ;AN000;
106 CSEG SEGMENT PARA PUBLIC 'CODE' ;AN000;
107 ASSUME CS:CSEG,DS:CSEG,ES:CSEG,SS:CSEG ;AN000;
108
109 ;DISKCOPY INPUT PARMS EXPECTED:
110 ; [D: [d:]] [/1]
111
112 PUBLIC SYSPARSE ;AN000;SUBROUTINE ENTRY POINT
113
114 FARSW EQU 0 ;AN000;CALL THE PARSER BY NEAR CALL
115 DATESW EQU 0 ;AN000;SUPPRESS DATE CHECKING
116 TIMESW EQU 0 ;AN000;SUPPRESS TIME CHECKING
117 FILESW EQU 0 ;AN000;SUPPRESS CHECK FILE SPECIFICATION
118 CAPSW EQU 1 ;AN000;DO USE FILE TABLE CAPS
119 CMPXSW EQU 0 ;AN000;SUPPRESS CHECKING COMPLEX LIST
120 DRVSW EQU 1 ;AN000;DO SUPPORT DRIVE ONLY FORMAT
121 QUSSW EQU 0 ;AN000;SUPPRESS SUPPORT OF QUOTED STRING FORMAT
122 NUMSW EQU 0 ;AN000;SUPPRESS CHECKING NUMERIC VALUE
123 KEYSW EQU 0 ;AN000;SUPPRESS KEYWORD SUPPORT
124 SWSW EQU 1 ;AN000;DO SUPPORT SWITCHES
125 VAL1SW EQU 0 ;AN000;SUPPRESS SUPPORT OF VALUE DEFINITION 1
126 VAL2SW EQU 0 ;AN000;SUPPRESS SUPPORT OF VALUE DEFINITION 2
127 VAL3SW EQU 0 ;AN000;SUPPRESS SUPPORT OF VALUE DEFINITION 3
128 INCSW EQU 0 ;AN000;DO NOT INCLUDE PSDATA.INC
129 BASESW EQU 1 ;AN014;SPECIFY, PSDATA POINTED TO BY "DS"
130
131 INCLUDE PSDATA.INC ;AN015;
132
133 PATHLABL DCOPYP ;AN015;
134 INCLUDE PARSE.ASM ;AN000;
135 PATHLABL DCOPYP ;AN015;
136
137 CSEG ENDS ;AN000;
138 END ;AN000;
139 \1a