diff options
| author | 2024-04-25 21:24:10 +0100 | |
|---|---|---|
| committer | 2024-04-25 22:32:27 +0000 | |
| commit | 2d04cacc5322951f187bb17e017c12920ac8ebe2 (patch) | |
| tree | 80ee017efa878dfd5344b44249e6a241f2a7f6e2 /v4.0/src/CMD/DISKCOPY/DISKCOPY.EQU | |
| parent | Merge pull request #430 from jpbaltazar/typoptbr (diff) | |
| download | ms-dos-main.tar.gz ms-dos-main.tar.xz ms-dos-main.zip | |
Diffstat (limited to 'v4.0/src/CMD/DISKCOPY/DISKCOPY.EQU')
| -rw-r--r-- | v4.0/src/CMD/DISKCOPY/DISKCOPY.EQU | 207 |
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 | |||
| 11 | ZERO EQU 0 ; | ||
| 12 | ONE EQU 1 ; | ||
| 13 | TWO EQU 2 ; | ||
| 14 | THREE EQU 3 ; | ||
| 15 | FOUR EQU 4 ; | ||
| 16 | TYPE_4 EQU 4 ; | ||
| 17 | FIVE EQU 5 ; | ||
| 18 | SIX EQU 6 ; | ||
| 19 | SEVEN EQU 7 ; | ||
| 20 | EIGHT EQU 8 ; | ||
| 21 | NINE EQU 9 ; | ||
| 22 | TEN EQU 0AH ; | ||
| 23 | ON EQU 1 ; | ||
| 24 | OFF EQU 0 ; | ||
| 25 | TRUE EQU 01 ; | ||
| 26 | FALSE EQU 00 ; | ||
| 27 | GOOD EQU 0 ; | ||
| 28 | BAD EQU 1 ; | ||
| 29 | FIRST EQU 1 ; | ||
| 30 | SECOND EQU 2 ; | ||
| 31 | NO_ERROR EQU 0 ; | ||
| 32 | SOFT_ERROR EQU 1 ; | ||
| 33 | HARD_ERROR EQU 2 ; | ||
| 34 | |||
| 35 | BLANK EQU 20H ;BLANK IN ASCII (32 DEC) | ||
| 36 | CLEAR_SEGMENT EQU 0E0H ;USED TO CLEAR SEGMENT BITS (ROUND UP | ||
| 37 | ;TO NEXT SECTOR) | ||
| 38 | SECTOR8 EQU 8 ; | ||
| 39 | SECTOR9 EQU 9 ; | ||
| 40 | SECTOR14 EQU 14 ; | ||
| 41 | SECTOR15 EQU 15 ; | ||
| 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 *** | ||
| 60 | |||
| 61 | FATAL EQU 01H ;FATAL COPY ERROR, ABORT | ||
| 62 | OK EQU 00H ;OK, PROCEED | ||
| 63 | ; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = | ||
| 64 | ; *** PROGRAM SEGMENT PREFIX *** | ||
| 65 | |||
| 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 *** | ||
| 74 | |||
| 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; | ||
| 115 | |||
| 116 | ;special Functions | ||
| 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 | ||
| 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 | ||
| 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 | ||
| 159 | |||
| 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 | ;---------------------------------------------------------------------------; | ||
| 168 | |||
| 169 | MSG_DESC STRUC ; | ||
| 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 | ||
| 194 | ; 3 DIGITS. | ||
| 195 | SUBLIST 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 | ||