summaryrefslogtreecommitdiff
path: root/v4.0/src/CMD/DISKCOPY/DISKCOPY.EQU
diff options
context:
space:
mode:
Diffstat (limited to 'v4.0/src/CMD/DISKCOPY/DISKCOPY.EQU')
-rw-r--r--v4.0/src/CMD/DISKCOPY/DISKCOPY.EQU207
1 files changed, 207 insertions, 0 deletions
diff --git a/v4.0/src/CMD/DISKCOPY/DISKCOPY.EQU b/v4.0/src/CMD/DISKCOPY/DISKCOPY.EQU
new file mode 100644
index 0000000..914fc43
--- /dev/null
+++ b/v4.0/src/CMD/DISKCOPY/DISKCOPY.EQU
@@ -0,0 +1,207 @@
1 IF1 ;
2 %OUT COMPONENT=DISKCOPY, INCLUDING DISKCOPY.EQU... ;
3 ENDIF ;
4; $SALUT (4,21,26,36)
5;---------------------------------------------------------------------------;
6; EQUATES ;
7;---------------------------------------------------------------------------;
8
9; *** CONSTANTS ***
10
11ZERO EQU 0 ;
12ONE EQU 1 ;
13TWO EQU 2 ;
14THREE EQU 3 ;
15FOUR EQU 4 ;
16TYPE_4 EQU 4 ;
17FIVE EQU 5 ;
18SIX EQU 6 ;
19SEVEN EQU 7 ;
20EIGHT EQU 8 ;
21NINE EQU 9 ;
22TEN EQU 0AH ;
23ON EQU 1 ;
24OFF EQU 0 ;
25TRUE EQU 01 ;
26FALSE EQU 00 ;
27GOOD EQU 0 ;
28BAD EQU 1 ;
29FIRST EQU 1 ;
30SECOND EQU 2 ;
31NO_ERROR EQU 0 ;
32SOFT_ERROR EQU 1 ;
33HARD_ERROR EQU 2 ;
34
35BLANK EQU 20H ;BLANK IN ASCII (32 DEC)
36CLEAR_SEGMENT EQU 0E0H ;USED TO CLEAR SEGMENT BITS (ROUND UP
37 ;TO NEXT SECTOR)
38SECTOR8 EQU 8 ;
39SECTOR9 EQU 9 ;
40SECTOR14 EQU 14 ;
41SECTOR15 EQU 15 ;
42DRV_48TPI EQU 0 ;48 TPI DRIVE
43DRV_96TPI EQU 1 ;96 TPI DRIVE
44DRV_720 EQU 2 ;3.5", 720 KB DRIVE (FOR CASHEW OR P14)
45NRLFUNC EQU 5F02H ;GET NETWORK-REDIRECTION-LIST FUNCTION
46NRLMAX EQU 1CH ;(MAXIMUM # OF NAMES ON NRL) - 1
47DOS20 EQU 2 ;DOS VERSION 2.0
48 PUBLIC FINE ;AN000;PARSER NEEDS IT
49FINE EQU -1 ;"FINE AND DANDY", USED FOR RETURN CODE
50 ;(-1 WAS USED TO AVOID CONFUSION WITH ERROR
51 ;OFFSET WHICH CAN BE ZERO)
52LOCAL_DRV EQU -1 ;DEVICE NOT DIRECTED
53REMOTE_DRV EQU 1000H ;REMOTE DRIVE TEST BITS
54NO_OPTION EQU -1 ;NO OPTION "/1" SPECIFIED
55OPTION_1 EQU 1 ;OPTION "/1" SPECIFIED
56REMOVABLE EQU 0000H ;REMOVABLE FILE
57INVAL_PARM EQU -9 ;INVALID PARAMETER ENTERED
58; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
59; *** COPY STATUS BYTE ***
60
61FATAL EQU 01H ;FATAL COPY ERROR, ABORT
62OK EQU 00H ;OK, PROCEED
63; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
64; *** PROGRAM SEGMENT PREFIX ***
65
66FCB1_DRV_ID EQU 5CH ;DRIVE NUMBER ADDR IN FILE CONTROL BLOCK 1
67FCB1_FILENM EQU 5DH ;FILE NAME ADDR IN FILE CONTROL BLOCK 1
68FCB2_DRV_ID EQU 6CH ;DRIVE NUMBER ADDR IN FILE CONTROL BLOCK 2
69FCB2_FILENM EQU 6DH ;FILE NAME ADDR IN FILE CONTROL BLOCK 2
70BEGIN_UNFORM_AREA EQU 80H ;BEGINNING @ OF THE UNFORMATTED AREA
71END_UNFORM_AREA EQU 100H ;ENDING @ OF THE UNFORMATTED AREA
72; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
73; *** DOS FUNCTONS ***
74
75KB_INPUT_FUNC EQU 01H ;DOS KEYBOARD INPUT FUNCTION
76PRINT_FUNC EQU 09H ;DOS PRINT STRING FUNCTION
77REDIRECTED_FUNC EQU 09H ;IOCTL SUB FUNCTION ****** TO BE CHECKED ****
78CURRENTDRV_FUNC EQU 19H ;GET CURRENT DRIVE FUNCTION CALL
79DOSVER_FUNC EQU 30H ;DOS VERSION FUNCTION CALL
80IOCTL_FUNC EQU 44H ;IOCTL FUNCTION CALL
81GET_DISKBASE_VECTOR EQU 351EH ;
82SET_DISKBASE_VECTOR EQU 251EH ;
83GET_CTL_BREAK_VECT EQU 3523H ;AN000;GET VECTOR FOR INT 23H (CTRL-BREAK)
84SET_CTL_BREAK_VECT EQU 2523H ;AN000;SET VECTOR FOR INT 23H (CTRL-BREAK)
85DRIVE_CHECK EQU 4408H ;DOS CHECK FOR REMOVABLE DRIVE IOCTL CALL
86STD_ERROR EQU 0002H ;STANDARD ERROR FILE HANDLE
87WRITE_FILE EQU 40H ;WRITE TO FILE OR DEVICE FUNCTION CALL
88GET_ASSIGN_MODE EQU 5F00H ;SET ASSIGN MODE COMMAND
89SET_ASSIGN_MODE EQU 5F01H ;SET ASSIGN MODE COMMAND
90SERVER EQU 2AH ;NETWORK SERVER INTERUPT
91SHARED EQU 03H ;DEVICE SHARED CHECK
92EXTENDED_ERROR EQU 59H ;EXTENDED ERROR
93GET_DATE EQU 2AH ;AN000;READ SYSTEM DATE
94GET_TIME EQU 2CH ;AN000;READ SYSTEM TIME CLOCK
95RET_CD_EXIT EQU 4CH ;AN000;EXIT TO DOS, PASSING RETURN CODE
96GET_EXT_CNTRY_INFO EQU 65H ;AN000;GET EXTENDED COUNTRY INFORMATION
97YESNO_CHECK EQU 23H ;AN000;REQUEST (Y/N) CHECK OF GET_EXT_CNTRY_INFO
98NO EQU 0 ;AN006;(Y/N) RESPONSE IS "NO"
99YES EQU 1 ;AN000;(Y/N) RESPONSE IS "YES"
100BAD_YESNO EQU 2 ;AN000;(Y/N) RESPONSE IS NEITHER "Y" NOR "N"
101; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
102; *** IOCTL DISKETTE I/O FUNCTONS ***
103GENERIC_IOCTL_CODE EQU 0DH ;GENERIC IOCTL REQUEST
104MAJOR_CODE EQU 08H ;GENERIC IOCTL MAJOR CODE
105READ_FUNC EQU 61H ;IOCTL DISKETTE READ FUNCTION
106WRITE_FUNC EQU 41H ;IOCTL DISKETTE WRITE FUNCTION
107VERIFY_FUNC EQU 62H ;IOCTL DISKETTE VERIFY FUNCTION
108FORMAT_FUNC EQU 42H ;IOCTL DISKETTE FORMAT FUNCTION
109GETDEVPARM EQU 60H ;IOCTL GET DEVICE PARAMETER
110SETDEVPARM EQU 40H ;IOCTL SET DEVICE PARAMETER
111SET_LOGIC_DRIVE EQU 0FH ;AN000;IOCTL SET LOGICAL DRIVE
112;(deleted ;AN013) GSET_MEDIA_ID EQU 69H ;GET OR SET MEDIA ID ;AN009;
113;(deleted ;AN013) GET_ID EQU 0 ;AL=0;GET MEDIA ID ;AN009;
114;(deleted ;AN013) SET_ID EQU 1 ;AL=1;SET MEDIA ID ;AN009;
115
116;special Functions
117GET_SP_FUNC_DEF EQU 00000000B ;GET DEVICE PARM. DEFAULT BPB
118GET_SP_FUNC_MED EQU 00000001B ;GET DEVICE PARM. BOOT BPB
119SET_SP_FUNC_DEF EQU 00000100B ;SET DEFAULT DEVICE PARM
120SET_SP_FUNC_DOS EQU 00000100B ;SET DEVICE PARM BEFORE RETURN TO DOS.
121SET_SP_BF_FORM EQU 00000101B ;SET DEV PARM BEFORE FORMAT
122R_W_SP_FUNC EQU 00000000B ;READ, WRITE
123STATUS_CHK EQU 00000001B ;USED IN FORMAT PACKET AND VALIDATE
124 ;THE "SET DEVICE PARM" REQUEST.
125FORMAT_SP_FUNC EQU 00000000B ;FORMAT
126.XLIST ;
127;READ_DASD_FUNC EQU 15H ;BIOS READ DASD TYPE (DISKETTE DRIVE TYPE)
128;SET_DASD_FUNC EQU 17H ;BIOS SET DASD TYPE
129;COMPARE_FUNC EQU 03H ;BIOS COMPARE FUNC # FOR ERROR MSG PROC
130.LIST ;
131; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
132; *** BIOS DISKETTE I/O ERROR CODES ***
133
134;NOT_READY EQU 80H ;DISKETTE I/O NOT READY ERROR
135;CHANG_LINE EQU 06H ;CHANGE LINE ERROR
136;BAD_CONTROLLER EQU 20H ;BAD DISKETTE/DISK CONTOROLLER
137;WRITE_PROTECT EQU 03H ;DISKETTE I/O WRITE PROTECT ERROR
138;BAD_ADDR_MARK EQU 02H ;DISKETTE I/O BAD ADDRESS MARK ERROR
139;REC_NOT_FOUND EQU 04H ;DISETTTE I/O RECORD NOT FOUND ERROR
140;BAD_CRC EQU 10H ;DISKETTE I/O BAD CRC ERROR
141;HARD_WR_ERROR EQU 03H ;DISKETTE WRITE HARD ERROR COUNT
142;HARD_FMT_ERROR EQU 02H ;DISKETTE FORMAT HARD ERROR COUNT
143;SINGLE_SIDE_COPY EQU 00H ;WHEN READING TRACK 0 SIDE 1 IF HARD ERROR
144 ;OCCURS, WE WILL ASSUME IT WILL BE SINGLE
145 ;SIDED COPY AND AL WILL BE SET TO 0, SO THAT
146 ;BUFFER_PTR WILL NOT BE ADVANCED AND
147 ;IF THE TRACK HAPPENS TO FALL INTO DMA BOUNDRY
148 ;IT WILL SKIP THE SECOND PART OF READ_TRACK
149; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
150; SYSTEM MESSAGE HANDLER EQUATES
151EXT_ERR_CLASS EQU 01H ;AN000;DOS Extended error class
152PARSE_ERR_CLASS EQU 02H ;AN000;Parse error class
153UTILITY_MSG_CLASS EQU 0FFH ;AN000;Utility message class
154CLASS_A EQU UTILITY_MSG_CLASS ;AN000;IN MSG DESCRIPTOR
155MAX_0 EQU 0 ;AN000;MAXIMUM WIDTH OF STRING FIELD (0=NO LIMIT)
156PAD_BLK EQU " " ;AN000;CHAR FOR PAD FIELD
157STDOUT EQU 0001H ;AN000;Standard Output device handle
158STDERR EQU 0002H ;AN000;Standard Error Output device handle
159
160; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
161; SELECT MULTIPLEXOR INTERFACE
162SELECT_MPX EQU 0ADC1H ;AN006;THE SELECT MULTIPLEXOR ID
163SELECT_PRESENT EQU 0FFH ;AN006;RESPONSE IN AL, IF SELECT IS PRESENT
164MULTIPLEXOR EQU 2FH ;AN006;THE MULTIPLEXOR INTERRUPT NUMBER
165;---------------------------------------------------------------------------;
166; CONTROL BLOCKS (STRUCS) ;
167;---------------------------------------------------------------------------;
168
169MSG_DESC STRUC ;
170MSG_NUM DW 0 ;AN000;MESSAGE NUMBER (TO AX)
171MSG_HANDLE DW STDOUT ;AN000;HANDLE OF OUTPUT DEVICE (TO BX)
172MSG_SUBLIST DW 0 ;AN000;POINTER TO SUBLIST (TO SI)
173MSG_COUNT DW 0 ;AN000;SUBSTITUTION COUNT (TO CX)
174MSG_CLASS DW CLASS_A SHL 8 ;AN000;MESSAGE CLASS (IN HIGH BYTE, TO DH)
175 ; LOW BYTE HAS 0 (FUNCTION "NO INPUT", TO DL);AN000;
176MSG_DESC ENDS ;AN000;
177; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
178SUBLIST STRUC ;AN000;
179SUB_SIZE DB 11 ;AN000;SUBLIST SIZE (POINTER TO NEXT SUBLIST)
180SUB_RES DB 0 ;AN000;RESERVED
181 ;NEXT FIELD IS TO BE USED AS A DOUBLE WORD
182SUB_VALUE DW 0 ;AN000;TIME, DATE, OR PTR TO DATA ITEM
183SUB_VALUE_SEG DW 0 ;AN000;SEG ID OF PTR
184 ;(ABOVE FIELD MUST BE FILLED AT EXECUTION
185 ; TIME, IF THIS IS A .COM FILE)
186SUB_ID DB 0 ;AN000;N OF %N
187SUB_FLAGS DB 0 ;AN000;DATA TYPE FLAGS
188SUB_MAX_WIDTH DB MAX_0 ;AN000;MAXIMUM FIELD WIDTH (0=UNLIMITED)
189SUB_MIN_WIDTH DB 0 ;AN000;MINIMUM FIELD WIDTH
190SUB_PAD_CHAR DB PAD_BLK ;AN000;CHARACTER FOR PAD FIELD
191 ; CAN BE " ", "0" OR ",".
192 ; "," CAUSES INSERTION OF THE ACTIVE
193 ; THOUSANDS SEPARATOR BETWEEN EVERY
194 ; 3 DIGITS.
195SUBLIST ENDS ;AN000;
196; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
197;BUFFER AREA FOR COMMUNICATION WITH GET/SET MEDIA ID FUNCTION CALL
198; (USED BY VOLSER PROC)
199
200;(deleted ;AN013;) A_MEDIA_ID_INFO STRUC ; ;AN000;
201;(deleted ;AN013;) MI_LEVEL DW 0 ;INFO LEVEL ;AN000;
202;(deleted ;AN013;) MI_SERIAL DD 0 ;SERIAL # ;AN000;
203;(deleted ;AN013;) MI_LABEL DB 11 DUP (' ') ;VOLUME LABEL ;AN000;
204;(deleted ;AN013;) MI_SYSTEM DB 8 DUP (' ') ;FILE SYSTEM TYPE ;AN000;
205;(deleted ;AN013;) A_MEDIA_ID_INFO ENDS ; ;AN000;
206
207;END OF DISKCOPY.EQU