2 %OUT COMPONENT=DISKCOPY, INCLUDING DISKCOPY.EQU... ;
5 ;---------------------------------------------------------------------------;
7 ;---------------------------------------------------------------------------;
35 BLANK EQU 20H ;BLANK IN ASCII (32 DEC)
36 CLEAR_SEGMENT EQU 0E0H ;USED TO CLEAR SEGMENT BITS (ROUND UP
42 DRV_48TPI EQU 0 ;48 TPI DRIVE
43 DRV_96TPI EQU 1 ;96 TPI DRIVE
44 DRV_720 EQU 2 ;3.5", 720 KB DRIVE (FOR CASHEW OR P14)
45 NRLFUNC EQU 5F02H ;GET NETWORK-REDIRECTION-LIST FUNCTION
46 NRLMAX EQU 1CH ;(MAXIMUM # OF NAMES ON NRL) - 1
47 DOS20 EQU 2 ;DOS VERSION 2.0
48 PUBLIC FINE ;AN000;PARSER NEEDS IT
49 FINE EQU -1 ;"FINE AND DANDY", USED FOR RETURN CODE
50 ;(-1 WAS USED TO AVOID CONFUSION WITH ERROR
51 ;OFFSET WHICH CAN BE ZERO)
52 LOCAL_DRV EQU -1 ;DEVICE NOT DIRECTED
53 REMOTE_DRV EQU 1000H ;REMOTE DRIVE TEST BITS
54 NO_OPTION EQU -1 ;NO OPTION "/1" SPECIFIED
55 OPTION_1 EQU 1 ;OPTION "/1" SPECIFIED
56 REMOVABLE EQU 0000H ;REMOVABLE FILE
57 INVAL_PARM EQU -9 ;INVALID PARAMETER ENTERED
58 ; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
59 ; *** COPY STATUS BYTE ***
61 FATAL EQU 01H ;FATAL COPY ERROR, ABORT
62 OK EQU 00H ;OK, PROCEED
63 ; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
64 ; *** PROGRAM SEGMENT PREFIX ***
66 FCB1_DRV_ID EQU 5CH ;DRIVE NUMBER ADDR IN FILE CONTROL BLOCK 1
67 FCB1_FILENM EQU 5DH ;FILE NAME ADDR IN FILE CONTROL BLOCK 1
68 FCB2_DRV_ID EQU 6CH ;DRIVE NUMBER ADDR IN FILE CONTROL BLOCK 2
69 FCB2_FILENM EQU 6DH ;FILE NAME ADDR IN FILE CONTROL BLOCK 2
70 BEGIN_UNFORM_AREA EQU 80H ;BEGINNING @ OF THE UNFORMATTED AREA
71 END_UNFORM_AREA EQU 100H ;ENDING @ OF THE UNFORMATTED AREA
72 ; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
73 ; *** DOS FUNCTONS ***
75 KB_INPUT_FUNC EQU 01H ;DOS KEYBOARD INPUT FUNCTION
76 PRINT_FUNC EQU 09H ;DOS PRINT STRING FUNCTION
77 REDIRECTED_FUNC EQU 09H ;IOCTL SUB FUNCTION ****** TO BE CHECKED ****
78 CURRENTDRV_FUNC EQU 19H ;GET CURRENT DRIVE FUNCTION CALL
79 DOSVER_FUNC EQU 30H ;DOS VERSION FUNCTION CALL
80 IOCTL_FUNC EQU 44H ;IOCTL FUNCTION CALL
81 GET_DISKBASE_VECTOR EQU 351EH ;
82 SET_DISKBASE_VECTOR EQU 251EH ;
83 GET_CTL_BREAK_VECT EQU 3523H ;AN000;GET VECTOR FOR INT 23H (CTRL-BREAK)
84 SET_CTL_BREAK_VECT EQU 2523H ;AN000;SET VECTOR FOR INT 23H (CTRL-BREAK)
85 DRIVE_CHECK EQU 4408H ;DOS CHECK FOR REMOVABLE DRIVE IOCTL CALL
86 STD_ERROR EQU 0002H ;STANDARD ERROR FILE HANDLE
87 WRITE_FILE EQU 40H ;WRITE TO FILE OR DEVICE FUNCTION CALL
88 GET_ASSIGN_MODE EQU 5F00H ;SET ASSIGN MODE COMMAND
89 SET_ASSIGN_MODE EQU 5F01H ;SET ASSIGN MODE COMMAND
90 SERVER EQU 2AH ;NETWORK SERVER INTERUPT
91 SHARED EQU 03H ;DEVICE SHARED CHECK
92 EXTENDED_ERROR EQU 59H ;EXTENDED ERROR
93 GET_DATE EQU 2AH ;AN000;READ SYSTEM DATE
94 GET_TIME EQU 2CH ;AN000;READ SYSTEM TIME CLOCK
95 RET_CD_EXIT EQU 4CH ;AN000;EXIT TO DOS, PASSING RETURN CODE
96 GET_EXT_CNTRY_INFO EQU 65H ;AN000;GET EXTENDED COUNTRY INFORMATION
97 YESNO_CHECK EQU 23H ;AN000;REQUEST (Y/N) CHECK OF GET_EXT_CNTRY_INFO
98 NO EQU 0 ;AN006;(Y/N) RESPONSE IS "NO"
99 YES EQU 1 ;AN000;(Y/N) RESPONSE IS "YES"
100 BAD_YESNO EQU 2 ;AN000;(Y/N) RESPONSE IS NEITHER "Y" NOR "N"
101 ; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
102 ; *** IOCTL DISKETTE I/O FUNCTONS ***
103 GENERIC_IOCTL_CODE EQU 0DH ;GENERIC IOCTL REQUEST
104 MAJOR_CODE EQU 08H ;GENERIC IOCTL MAJOR CODE
105 READ_FUNC EQU 61H ;IOCTL DISKETTE READ FUNCTION
106 WRITE_FUNC EQU 41H ;IOCTL DISKETTE WRITE FUNCTION
107 VERIFY_FUNC EQU 62H ;IOCTL DISKETTE VERIFY FUNCTION
108 FORMAT_FUNC EQU 42H ;IOCTL DISKETTE FORMAT FUNCTION
109 GETDEVPARM EQU 60H ;IOCTL GET DEVICE PARAMETER
110 SETDEVPARM EQU 40H ;IOCTL SET DEVICE PARAMETER
111 SET_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;
117 GET_SP_FUNC_DEF EQU 00000000B ;GET DEVICE PARM. DEFAULT BPB
118 GET_SP_FUNC_MED EQU 00000001B ;GET DEVICE PARM. BOOT BPB
119 SET_SP_FUNC_DEF EQU 00000100B ;SET DEFAULT DEVICE PARM
120 SET_SP_FUNC_DOS EQU 00000100B ;SET DEVICE PARM BEFORE RETURN TO DOS.
121 SET_SP_BF_FORM EQU 00000101B ;SET DEV PARM BEFORE FORMAT
122 R_W_SP_FUNC EQU 00000000B ;READ, WRITE
123 STATUS_CHK EQU 00000001B ;USED IN FORMAT PACKET AND VALIDATE
124 ;THE "SET DEVICE PARM" REQUEST.
125 FORMAT_SP_FUNC EQU 00000000B ;FORMAT
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
131 ; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
132 ; *** BIOS DISKETTE I/O ERROR CODES ***
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
151 EXT_ERR_CLASS EQU 01H ;AN000;DOS Extended error class
152 PARSE_ERR_CLASS EQU 02H ;AN000;Parse error class
153 UTILITY_MSG_CLASS EQU 0FFH ;AN000;Utility message class
154 CLASS_A EQU UTILITY_MSG_CLASS ;AN000;IN MSG DESCRIPTOR
155 MAX_0 EQU 0 ;AN000;MAXIMUM WIDTH OF STRING FIELD (0=NO LIMIT)
156 PAD_BLK EQU " " ;AN000;CHAR FOR PAD FIELD
157 STDOUT EQU 0001H ;AN000;Standard Output device handle
158 STDERR EQU 0002H ;AN000;Standard Error Output device handle
160 ; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
161 ; SELECT MULTIPLEXOR INTERFACE
162 SELECT_MPX EQU 0ADC1H ;AN006;THE SELECT MULTIPLEXOR ID
163 SELECT_PRESENT EQU 0FFH ;AN006;RESPONSE IN AL, IF SELECT IS PRESENT
164 MULTIPLEXOR EQU 2FH ;AN006;THE MULTIPLEXOR INTERRUPT NUMBER
165 ;---------------------------------------------------------------------------;
166 ; CONTROL BLOCKS (STRUCS) ;
167 ;---------------------------------------------------------------------------;
170 MSG_NUM DW 0 ;AN000;MESSAGE NUMBER (TO AX)
171 MSG_HANDLE DW STDOUT ;AN000;HANDLE OF OUTPUT DEVICE (TO BX)
172 MSG_SUBLIST DW 0 ;AN000;POINTER TO SUBLIST (TO SI)
173 MSG_COUNT DW 0 ;AN000;SUBSTITUTION COUNT (TO CX)
174 MSG_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;
176 MSG_DESC ENDS ;AN000;
177 ; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
178 SUBLIST STRUC ;AN000;
179 SUB_SIZE DB 11 ;AN000;SUBLIST SIZE (POINTER TO NEXT SUBLIST)
180 SUB_RES DB 0 ;AN000;RESERVED
181 ;NEXT FIELD IS TO BE USED AS A DOUBLE WORD
182 SUB_VALUE DW 0 ;AN000;TIME, DATE, OR PTR TO DATA ITEM
183 SUB_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)
186 SUB_ID DB 0 ;AN000;N OF %N
187 SUB_FLAGS DB 0 ;AN000;DATA TYPE FLAGS
188 SUB_MAX_WIDTH DB MAX_0 ;AN000;MAXIMUM FIELD WIDTH (0=UNLIMITED)
189 SUB_MIN_WIDTH DB 0 ;AN000;MINIMUM FIELD WIDTH
190 SUB_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
196 ; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
197 ;BUFFER AREA FOR COMMUNICATION WITH GET/SET MEDIA ID FUNCTION CALL
198 ; (USED BY VOLSER PROC)
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;