summaryrefslogtreecommitdiff
path: root/v4.0/src/CMD/DISKCOPY/DCOPYMS.INC
diff options
context:
space:
mode:
authorGravatar Mark Zbikowski2024-04-25 21:24:10 +0100
committerGravatar Microsoft Open Source2024-04-25 22:32:27 +0000
commit2d04cacc5322951f187bb17e017c12920ac8ebe2 (patch)
tree80ee017efa878dfd5344b44249e6a241f2a7f6e2 /v4.0/src/CMD/DISKCOPY/DCOPYMS.INC
parentMerge pull request #430 from jpbaltazar/typoptbr (diff)
downloadms-dos-main.tar.gz
ms-dos-main.tar.xz
ms-dos-main.zip
MZ is back!HEADmain
Diffstat (limited to 'v4.0/src/CMD/DISKCOPY/DCOPYMS.INC')
-rw-r--r--v4.0/src/CMD/DISKCOPY/DCOPYMS.INC269
1 files changed, 269 insertions, 0 deletions
diff --git a/v4.0/src/CMD/DISKCOPY/DCOPYMS.INC b/v4.0/src/CMD/DISKCOPY/DCOPYMS.INC
new file mode 100644
index 0000000..2cb7622
--- /dev/null
+++ b/v4.0/src/CMD/DISKCOPY/DCOPYMS.INC
@@ -0,0 +1,269 @@
1;:util DISKCOPY ;utility name
2;:class 1 ;DOS extended errors:
3;:class 2 ;parse errors:
4;1 Too many parameters
5;2 Required parameter missing
6;3 Invalid switch
7;4 Invalid keyword
8;5 Parameter value not in allowed range
9;6 Parameter value not allowed [parse ret codes 6 and 7]
10;7 (undefined)
11;8 Parameter format not correct
12;9 (undefined)
13;10 Invalid parameter [no corresponding parse ret code]
14;11 Invalid parameter combination [no corresponding parse ret code]
15;;
16;:class A ;system messages
17;:use 1 COMMON1 ;MSG 1 is always "Incorrect DOS version"
18;;
19;:def 2 CR,LF
20;
21;:use 3 PARSE10 ;CR,LF,"Invalid parameter",CR,LF
22;
23;:def 4 "Do not specify filename(s)",CR,LF
24;"Command Format: DISKCOPY d: d: [/1]",CR,LF
25;;
26;:def 5 CR,LF,"Invalid drive specification",CR,LF
27;"Specified drive does not exist",CR,LF
28;"or is non-removable",CR,LF
29;
30;:def 6 CR,LF,"Cannot DISKCOPY to or from",CR,LF
31;"a network drive",CR,LF
32;
33;:def 7 CR,LF,"Formatting while copying",CR,LF
34;
35;:def 8 CR,LF,"Insert SOURCE diskette in drive %1:",CR,LF
36;
37;:def 9 CR,LF,"Insert TARGET diskette in drive %1:",CR,LF
38;
39;:def 10 "Make sure a diskette is inserted into",CR,LF
40;"the drive and the door is closed",CR,LF
41;
42;:def 11 CR,LF,"Target diskette may be unusable",CR,LF
43;
44;:def 12 CR,LF,"Target diskette unusable",CR,LF
45;
46;:use 13 EXTEND21 ;CR,LF,Drive not ready",CR,LF
47;
48;:use 14 EXTEND19 ;CR,LF,"Attempt to write to write-protected diskette",CR,LF
49;
50;:use 15 COMMON28 ;CR,LF,"Press any key to continue . . .",CR,LF
51;
52;:def 16 CR,LF,"Copy another diskette (Y/N)? "
53;
54;:def 17 CR,LF,"Copying %1 tracks",CR,LF
55;"%2 Sectors/Track, %3 Side(s)",CR,LF
56;
57;:def 18 CR,LF,"Drive types or diskette types",CR,LF
58;"not compatible",CR,LF
59;
60;:def 19 CR,LF,"Unrecoverable read error on drive %1",CR,LF
61;"Side %2, track %3",CR,LF
62;
63;:def 20 CR,LF,"Unrecoverable write error on drive %1",CR,LF
64;"Side %2, track %3",CR,LF
65;
66;:def 21 CR,LF,"Copy process ended",CR,LF
67;
68;:def 22 CR,LF,"SOURCE diskette bad or incompatible"
69;
70;:def 23 CR,LF,"TARGET diskette bad or incompatible"
71;
72;:use 25 EXTEND8 ;CR,LF,"Insufficient memory",CR,LF
73;
74;:use 26 COMMON36 ;"Volume Serial Number is %1-%2",CR,LF
75;
76;:end
77; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
78 IF1 ;AN000;
79 %OUT COMPONENT=DISKCOPY, MODULE=DCOPYMS.INC... ;AN000;
80 ENDIF ;AN000;
81; $SALUT (0,13,18,22) ; ;AN000;
82;THIS MODULE IS INCLUDED IN DCOPYSM.SAL.
83; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
84 HEADER <MESSAGE DESCRIPTORS FOR SPECIFIC MESSAGES> ;AN000;
85
86FOUR_SUBS EQU 4 ;AN000;FOUR VARIABLES IN ONE MSG
87PC_ID_4 EQU 4 ;AN000;IDENTIFIES FOURTH REPLACEMENT PARM
88LETTER_A EQU "A" ;AN000;DEFAULT DRIVE ID
89PAD_0 EQU "0" ;AN001;PAD CHAR FOR NUMERIC FIXED LEN FIELD
90FILL_OFF EQU 0 ;AN000;TO BE FILLED IN WITH OFFSET TO DATA
91FILL_SEG EQU 0 ;AN000;TO BE FILLED IN WITH THE COMMON SEG ID
92 ; SINCE A .COM FILE CANNOT HAVE
93 ; SEGMENT FIXUP RECORDS
94
95; DOS FUNCTIONS REFERENCED:
96CLEAR_BUF EQU 0C0H ;AN007;CLEAR KEYBOARD BUFFER BEFORE INPUT
97KEY_IN EQU 08H ;AN000;WAIT FOR STD INPUT, NO ECHO
98 ;OUTPUT: AL = CHAR FROM KEYBOARD
99 ;CTL-BREAK IS CHECKED FOR
100
101KEY_IN_ECHO EQU 01H ;AN000;WAIT FOR STD INPUT, ECHO RESPONSE
102 ;OUTPUT: AL = CHAR FROM KEYBOARD
103 ;CTL-BREAK IS CHECKED FOR
104
105SUBLIST_PARSE SUBLIST <,,FILL_OFF,FILL_SEG,PC_ID_0,SF_BITS <SF_LEFT,,SF_ASCIIZ,SF_CHAR>,MAX_0,MIN_1,PAD_BLK> ;AN003;
106 PUBLIC SUBLIST_PARSE ;AN003;
107
108; THE NEXT GROUP ARE ADDITIONAL CLASS "A" MESSAGES
109; SPECIFICALLY DEFINED FOR THE DISKCOPY UTILITY
110
111 ;CR,LF
112MSGNUM_CR_LF MSG_DESC <2> ;AN000;
113 PUBLIC MSGNUM_CR_LF ;AN000;
114; = = = = = = = = = = = = = = = =
115 ;CR,LF,"Invalid parameter",CR,LF
116MSGNUM_INVALID_PARM MSG_DESC <3> ;AN000;
117 PUBLIC MSGNUM_INVALID_PARM ;AN000;
118; = = = = = = = = = = = = = = = =
119 ; "Do not specify filename(s)",CR,LF
120 ; "Command Format: DISKCOPY d: d: [/1]",CR,LF
121MSGNUM_INVALID_PARM2 MSG_DESC <4> ;AN000;
122 PUBLIC MSGNUM_INVALID_PARM2 ;AN000;
123; = = = = = = = = = = = = = = = =
124 ;:def 5 CR,LF,"Invalid drive specification",CR,LF
125 ;"Specified drive does not exist",CR,LF
126 ;"or is non-removable",CR,LF
127MSGNUM_INVALID_DRV MSG_DESC <5> ;AN000;
128 PUBLIC MSGNUM_INVALID_DRV ;AN000;
129; = = = = = = = = = = = = = = = =
130 ;CR,LF,"Cannot DISKCOPY to or from",CR,LF
131 ;"a network drive",CR,LF
132MSGNUM_DRV_REDIRECTED MSG_DESC <6> ;AN000;
133 PUBLIC MSGNUM_DRV_REDIRECTED ;AN000;
134; = = = = = = = = = = = = = = = =
135 ;CR,LF,"Formatting while copying",CR,LF
136MSGNUM_FORMATTING MSG_DESC <7> ;AN000;
137 PUBLIC MSGNUM_FORMATTING ;AN000;
138; = = = = = = = = = = = = = = = =
139 ;CR,LF,"Insert SOURCE diskette in drive %1:",CR,LF
140MSGNUM_LOAD_SOURCE MSG_DESC <8,,SUBLIST_8,ONE_SUBS> ;AN000;
141 PUBLIC MSGNUM_LOAD_SOURCE ;AN000;
142
143SUBLIST_8 SUBLIST <,,ASCII_DRV1_ID,FILL_SEG,PC_ID_1,SF_BITS<SF_LEFT,,SF_CH,SF_CHAR>,MAX_0,MIN_1> ;AN000;
144 PUBLIC SUBLIST_8 ;AN000;
145
146ASCII_DRV1_ID DB LETTER_A - BYTE;AN000;
147 PUBLIC ASCII_DRV1_ID ;AN000;
148; = = = = = = = = = = = = = = = =
149 ;CR,LF,"Insert TARGET diskette in drive %1:",CR,LF
150MSGNUM_LOAD_TARGET MSG_DESC <9,,SUBLIST_9,ONE_SUBS> ;AN000;
151 PUBLIC MSGNUM_LOAD_TARGET ;AN000;
152
153SUBLIST_9 SUBLIST <,,ASCII_DRV2_ID,FILL_SEG,PC_ID_1,SF_BITS<SF_LEFT,,SF_CH,SF_CHAR>,MAX_0,MIN_1> ;AN000;
154 PUBLIC SUBLIST_9 ;AN000;
155
156ASCII_DRV2_ID DB LETTER_A - BYTE ;AN000;A:=1, B:=1, ETC
157 PUBLIC ASCII_DRV2_ID ;AN000;
158; = = = = = = = = = = = = = = = =
159 ;:def 10 "Make sure a diskette is inserted into",CR,LF
160 ;"the drive and the door is closed",CR,LF
161MSGNUM_CLOSE_DOOR MSG_DESC <10> ;AN004;
162 PUBLIC MSGNUM_CLOSE_DOOR ;AN004;
163; = = = = = = = = = = = = = = = =
164 ;CR,LF,"Target diskette may be unusable",CR,LF
165MSGNUM_TARGET_MB_UNUSABLE MSG_DESC <11> ;AN000;
166 PUBLIC MSGNUM_TARGET_MB_UNUSABLE ;AN000;
167; = = = = = = = = = = = = = = = =
168 ;CR,LF,"Target diskette unusable",CR,LF
169MSGNUM_TARGET_UNUSABLE MSG_DESC <12> ;AN000;
170 PUBLIC MSGNUM_TARGET_UNUSABLE ;AN000;
171; = = = = = = = = = = = = = = = =
172 ;CR,LF,"Drive not ready - %0",CR,LF
173MSGNUM_GET_READY MSG_DESC <13,,SUBLIST_13,ONE_SUBS> ;AN000;
174 PUBLIC MSGNUM_GET_READY ;AN000;
175
176SUBLIST_13 SUBLIST <,,DRIVE_LETTER,FILL_SEG,PC_ID_0,SF_BITS<SF_LEFT,,SF_ASCIIZ,SF_CHAR>,MAX_0,MIN_1> ;AN000;
177 PUBLIC SUBLIST_13 ;AN000;
178; = = = = = = = = = = = = = = = =
179 ;CR,LF,"Attempt to write to write-protected diskette",CR,LF
180MSGNUM_WRITE_PROTECT MSG_DESC <14> ;AN000;
181 PUBLIC MSGNUM_WRITE_PROTECT ;AN000;
182; = = = = = = = = = = = = = = = =
183 ;"Press any key to continue . . .",CR,LF
184MSGNUM_STRIKE MSG_DESC <15,,,,(CLASS_A SHL 8) OR (CLEAR_BUF + KEY_IN)> ;AN007;
185 PUBLIC MSGNUM_STRIKE ;AN000;
186; = = = = = = = = = = = = = = = =
187 ;CR,LF,"Copy another diskette (Y/N)? "
188 ; AND READ RESPONSE TO AL
189 ; (EVENTUALLY EXPECTED IN "USER_INPUT")
190MSGNUM_COPY_ANOTHER MSG_DESC <16,,,,(CLASS_A SHL 8) OR (CLEAR_BUF + KEY_IN_ECHO)> ;AN007;
191 PUBLIC MSGNUM_COPY_ANOTHER ;AN000;
192; = = = = = = = = = = = = = = = =
193 ;CR,LF,"Copying %1 tracks",CR,LF
194 ;"%2 Sectors/Track, %3 Side(s)",CR,LF
195MSGNUM_COPYING MSG_DESC <17,,SUBLIST_17A,THREE_SUBS> ;AN000;
196 PUBLIC MSGNUM_COPYING ;AN000;
197
198SUBLIST_17A SUBLIST <,,MSG_TRACKS,FILL_SEG,PC_ID_1,SF_BITS<SF_LEFT,,SF_WORD,SF_UN_BD>,MAX_0,MIN_1> ;AN000;
199SUBLIST_17B SUBLIST <,,MSG_SECTRK,FILL_SEG,PC_ID_2,SF_BITS<SF_LEFT,,SF_WORD,SF_UN_BD>,MAX_0,MIN_1> ;AN000;
200SUBLIST_17C SUBLIST <,,MSG_SIDES,FILL_SEG,PC_ID_3,SF_BITS<SF_LEFT,,SF_WORD,SF_UN_BD>,MAX_0,MIN_1> ;AN000;
201 PUBLIC SUBLIST_17A ;AN000;
202 PUBLIC SUBLIST_17B ;AN000;
203 PUBLIC SUBLIST_17C ;AN000;
204
205MSG_TRACKS DW 0 ;AN000;NUMBER OF TRACKS
206MSG_SECTRK DW 0 ;AN000;NUMBER OF SECTORS PER TRACK
207MSG_SIDES DW 0 ;AN000;NUMBER OF SIDES
208 PUBLIC MSG_TRACKS ;AN000;
209 PUBLIC MSG_SECTRK ;AN000;
210 PUBLIC MSG_SIDES ;AN000;
211; = = = = = = = = = = = = = = = =
212 ;CR,LF,"Drive types or diskette types",CR,LF
213 ;"not compatible",CR,LF
214MSGNUM_NOT_COMPATIBLE MSG_DESC <18> ;AN000;
215 PUBLIC MSGNUM_NOT_COMPATIBLE ;AN000;
216; = = = = = = = = = = = = = = = =
217 ;CR,LF,"Unrecoverable read error on drive %1",CR,LF
218 ;"Side %2, track %3",CR,LF
219MSGNUM_HARD_ERROR_READ MSG_DESC <19,,SUBLIST_19C,THREE_SUBS> ;AN000;
220 PUBLIC MSGNUM_HARD_ERROR_READ ;AN000;
221
222 ;CR,LF,"Unrecoverable write error on drive %1",CR,LF
223 ;"Side %2, track %3",CR,LF
224MSGNUM_HARD_ERROR_WRITE MSG_DESC <20,,SUBLIST_19C,THREE_SUBS> ;AN000;
225 PUBLIC MSGNUM_HARD_ERROR_WRITE ;AN000;
226
227SUBLIST_19C SUBLIST <,,DRIVE_LETTER,FILL_SEG,PC_ID_1,SF_BITS<SF_LEFT,,SF_ASCIIZ,SF_CHAR>,MAX_0,MIN_1> ;AN000;
228SUBLIST_19D SUBLIST <,,ERROR_SIDE_NUMBER,FILL_SEG,PC_ID_2,SF_BITS<SF_LEFT,,SF_WORD,SF_UN_BD>,MAX_0,MIN_1> ;AN000;
229SUBLIST_19E SUBLIST <,,ERROR_TRACK_NUMBER,FILL_SEG,PC_ID_3,SF_BITS<SF_LEFT,,SF_WORD,SF_UN_BD>,MAX_0,MIN_1> ;AN000;
230 PUBLIC SUBLIST_19C ;AN000;
231 PUBLIC SUBLIST_19D ;AN000;
232 PUBLIC SUBLIST_19E ;AN000;
233
234DRIVE_LETTER DB LETTER_A,":",NULL ;AN000;
235 PUBLIC DRIVE_LETTER ;AN000;
236
237ERROR_SIDE_NUMBER DW ? ;AN000;
238 PUBLIC ERROR_SIDE_NUMBER ;AN000;
239
240ERROR_TRACK_NUMBER DW ? ;AN000;
241 PUBLIC ERROR_TRACK_NUMBER ;AN000;
242; = = = = = = = = = = = = = = = =
243 ;CR,LF,"Copy process ended",CR,LF
244MSGNUM_FATAL_ERROR MSG_DESC <21> ;AN000;
245 PUBLIC MSGNUM_FATAL_ERROR ;AN000;
246; = = = = = = = = = = = = = = = =
247 ;CR,LF,"SOURCE diskette bad or incompatible"
248MSGNUM_BAD_SOURCE MSG_DESC <22> ;AN000;
249 PUBLIC MSGNUM_BAD_SOURCE ;AN000;
250
251; = = = = = = = = = = = = = = = =
252 ;CR,LF,"TARGET diskette bad or incompatible"
253MSGNUM_BAD_TARGET MSG_DESC <23> ;AN000;
254 PUBLIC MSGNUM_BAD_TARGET ;AN000;
255; = = = = = = = = = = = = = = = =
256 ;CR,LF,"Insufficient memory",CR,LF
257MSGNUM_UNSUF_MEMORY MSG_DESC <25> ;AN000;
258 PUBLIC MSGNUM_UNSUF_MEMORY ;AN000;
259; = = = = = = = = = = = = = = = =
260 ;"Volume Serial Number is %1-%2"
261MSGNUM_SERNO MSG_DESC <26,,SUBLIST_26A,TWO_SUBS> ;AN001;
262 PUBLIC MSGNUM_SERNO ;AN001;
263
264SUBLIST_26A SUBLIST <,,FILL_OFF,FILL_SEG,PC_ID_1,SF_BITS<SF_RIGHT,,SF_WORD,SF_UN_BH>,DWORD,DWORD,PAD_0> ;AN001;
265SUBLIST_26B SUBLIST <,,FILL_OFF,FILL_SEG,PC_ID_2,SF_BITS<SF_RIGHT,,SF_WORD,SF_UN_BH>,DWORD,DWORD,PAD_0> ;AN001;
266 PUBLIC SUBLIST_26A,SUBLIST_26B ;AN001;
267; = = = = = = = = = = = = = = = =
268;end of DCOPYMS.INC
269 \ No newline at end of file