FILE: DDP_MANAG:TOS HEWLETT-PACKARD: DDP_MANAGER (c) Coleco 1983 Confidential Tue, 15 May 1984, 20:29 Page 1 1 ;^Z80^ 3 ;NAME ^Rev 01 - DTT^ 4 5 De_DDP_MANAGER MACRO ;Header Rev. 5 6 .GOTO Ede_DDP_MANAGER 7 8 Project: H132, VS 9 10 ****************************** 11 * * 12 * DDP_MANAGER DTT * 13 * * 14 ****************************** 15 16 Rev History 17 Rev. Date Name Change 18 1 DTT DEVICE_ID --> DEV_ID 19 0 9/9/83 DTT Initial Pseudo Code 20 21 Function: 22 23 CONTROLS THE DIGITAL DATA PACK FOR READS AND WRITES SETUP BY TAPE_INTERFACE 24 25 Ede_DDP_MANAGER MEND 26 Pseudo_code_DDP_MANAGER MACRO ;Pseudocode macro area 27 .GOTO Ep_DDP_MANAGER 28 29 30 31 Ep_DDP_MANAGER MEND 32 33 34 ;Inputs/Outputs passed in registers 35 ; CALLED EVERY 60th SECOND BY THE NMI 36 37 38 0008 TAPE1 EQU 08H 39 0081 READ_TAPE EQU 81H 40 0082 WRITE_TAPE EQU 82H 41 0087 KILL_TAPE EQU 87H 42 INCLUDE P_DCB_EQ.ASM ;INCLUDE P_DCB_EQU:EOS 43 A ;THESE OUR EQUATES THAT ARE USED BY THE EOS PROGRAMS TO REFEFERNCE 44 A ;PCB AND DCB INFORMATION 45 A 46 A 47 A ;PCB EQUATES 48 A 49 0000 A P_COM_STAT EQU 0 ; THIS IS THE COMMAND/STATUS BYTE 50 A 51 0001 A P_REL_ADDR EQU 1 ; THIS IS THE RELOCATION ADDRESS 52 0001 A P_REL_ADDR_LO EQU P_REL_ADDR+0 53 0002 A P_REL_ADDR_HI EQU P_REL_ADDR+1 54 A 55 0003 A P_NUM_DCBS EQU 3 ; THIS IS THE NUMBER OF DCBS DEFINED 56 A FILE: DDP_MANAG:TOS HEWLETT-PACKARD: DDP_MANAGER (c) Coleco 1983 Confidential Tue, 15 May 1984, 20:29 Page 2 57 A 58 0004 A P_SIZE EQU 4 ; THE NUMBER OF BYTES IN THE PCB 59 A 60 A 61 A 62 A ;DCB EQUATES 63 A 64 0000 A D_COM_STAT EQU 0 ; THE COMMAND STATUS BYTE 65 A 66 0001 A D_BUF_ADR EQU 1 ; ADDRESS OF THE DATA BUFFER 67 0001 A D_BUF_ADR_LO EQU D_BUF_ADR+0 68 0002 A D_BUF_ADR_HI EQU D_BUF_ADR+1 69 A 70 0003 A D_BUF_LEN EQU 3 ; THE LENGTH OF THE DATA BUFFER 71 0003 A D_BUF_LEN_LO EQU D_BUF_LEN+0 72 0004 A D_BUF_LEN_HI EQU D_BUF_LEN+1 73 A 74 0005 A D_SECT_NUM EQU 5 ; THE BLOCK DEVICE SECTOR NUMBER 75 A 76 0009 A D_SEC_DEV_ID EQU 9 ; SECONDARY DEVICE ID 77 A 78 000E A D_RET_COUNT EQU 14 ; THE NUMBER OF TIMES A COMMAND WILL 79 A ; BE RETRIED. 80 000E A D_RET_COUNT_LO EQU D_RET_COUNT+0 81 000F A D_RET_COUNT_HI EQU D_RET_COUNT+1 82 A 83 0010 A D_DEV_ADDR EQU 16 ; THE DEVICE ADDRESS (ID) 84 A 85 0011 A D_MAX_MSG_LEN EQU 17 ; THE MAX LENGTH OF A DATA STRING 86 A ; FOR THE DEVICE 87 0011 A D_MAX_MSG_LEN_LO EQU D_MAX_MSG_LEN+0 88 0012 A D_MAX_MSG_LEN_HI EQU D_MAX_MSG_LEN+1 89 A 90 0013 A D_DEV_TYPE EQU 19 ; THE DEVICE TYPE, BLOCKED OR CHARACTGER 91 A 92 0014 A D_STATUS_FLAGS EQU 20 ; DEVICE DEPENDENT STATUS FLAGS 93 A 94 A 95 A 96 0015 A D_SIZE EQU 21 ; THE NUMBER OF BYTES IN THE DCB 97 A 98 A 99 A 100 A ;DEVICE ID'S FOR THE KEYBOARD, PRINTER, AND TAPE DRIVE 101 A 102 0001 A KEYBOARD_ID EQU 1 ; KYBD ID 103 0002 A PRINTER_ID EQU 2 ; PRINTER ID 104 0008 A TAPE_ID EQU 8 ; TAPE DRIVE ID 105 A 106 0002 A ERROR_RETRY EQU 2 ; MAX RETRYS ON ERRORS, READ_BLOCK AND WRITE_BLOCK 107 A 108 000F A MAX_DEV_ADDR EQU 15 ; HIGHEST POSSIBLE DEVICE ADDRESS 109 A ; ON NETWORK 110 A 111 A 112 A ;PCB COMMAND EQUATES 113 A FILE: DDP_MANAG:TOS HEWLETT-PACKARD: DDP_MANAGER (c) Coleco 1983 Confidential Tue, 15 May 1984, 20:29 Page 3 114 0000 A PCB_IDLE EQU 0 ; THIS IS AN IDLE STATE 115 A 116 0001 A PCB_SYNC1 EQU 1 ; SYNC BYTE 1 117 0081 A PCB_SYNC1_ACK EQU PCB_SYNC1+80H 118 A 119 0002 A PCB_SYNC2 EQU 2 ; SYNC BYTE 2 120 0082 A PCB_SYNC2_ACK EQU PCB_SYNC2+80H 121 A 122 0003 A PCB_SNA EQU 3 ; SET NEW PCB ADDRESS 123 0083 A PCB_SNA_ACK EQU PCB_SNA+80H 124 A 125 0004 A PCB_RESET EQU 4 ; RESET ALL NODES 126 0084 A PCB_RESET_ACK EQU PCB_RESET+80H 127 A 128 0005 A PCB_WAIT EQU 5 ; 129 0085 A PCB_WAIT_ACK EQU PCB_WAIT+80H 130 A 131 A 132 A 133 A ;DCB COMMAND EQUATES 134 A 135 0000 A DCB_IDLE EQU 00 ; 136 0001 A DCB_STATUS EQU 01 ; REQUEST STATUS 137 0002 A DCB_RESET EQU 02 ; RESET NODE 138 0003 A DCB_WR EQU 03 ; WRITE DATA TO DEVICE 139 0004 A DCB_RD EQU 04 ; READ DATA FROM DEVICE 140 A 141 A 142 A 143 FEC0 A INIT_PCB_ADDR EQU 0FEC0H ; INITIAL ADDRESS OF THE PCB 144 A 145 A 146 A 147 A ;GENERAL USAGE EQUATES FOR USE WITH DCB INFO 148 A 149 0007 A CMND_COMPLETE_BIT EQU 7 ; THIS IS THE BIT THAT INDICATES THE 150 A ; COMMAND HAS BEEN PROCESSED. 151 0080 A CMND_FIN_STATUS EQU 80H ; THIS IS THE STATUS OF A COMMAND 152 A ; THAT COMPLETED WITH NO ERRORS 153 008C A KBD_NAK EQU 8CH ; INDICATES NO KEY READY 154 A 155 0086 A PR_NAK EQU 86H ; INDICATES THE PRINTER IS BUSY 156 A 157 0003 A ETX EQU 03H ; END OF DATA STRING INDICATOR 158 A 159 009B A TIMEOUT EQU 9BH ; DEVICE TIMED OUT 160 INCLUDE EOS_ERRS.ASM ;INCLUDE EOS_ERRS:EOS 161 A 162 0001 A DCB_NOT_FOUND EQU 1 ; THERE WAS NO DCB FOR THE DEVICE REQUESTED. 163 0002 A DCB_BUSY EQU 2 ; DCB IS BUSY 164 0003 A DCB_IDLE_ERR EQU 3 ; DCB IS IDLE 165 A 166 0004 A NO_DATE_ERR EQU 4 167 0005 A NO_FILE_ERR EQU 5 168 0006 A FILE_EXISTS_ERR EQU 6 169 0007 A NO_FCB_ERR EQU 7 170 0008 A MATCH_ERR EQU 8 FILE: DDP_MANAG:TOS HEWLETT-PACKARD: DDP_MANAGER (c) Coleco 1983 Confidential Tue, 15 May 1984, 20:29 Page 4 171 0009 A BAD_FNUM_ERR EQU 9 172 000A A EOF_ERR EQU 10 173 000B A TOO_BIG_ERR EQU 11 174 000C A FULL_DIR_ERR EQU 12 175 000D A FULL_TAPE_ERR EQU 13 176 000E A FILE_NM_ERR EQU 14 ;DLS(8/28/83) 177 000F A RENAME_ERR EQU 15 ;DLS(8/30/83) 178 0010 A DELETE_ERR EQU 16 ;DLS(8/30/83) 179 0011 A RANGE_ERR EQU 17 ;DLS(8/31/83) 180 A 181 0012 A CANT_SYNC1 EQU 18 182 0013 A CANT_SYNC2 EQU 19 183 0014 A PRT_ERR EQU 20 184 A 185 0015 A RQ_TP_STAT_ERR EQU 21 186 0016 A DEV_DEPD_ERR EQU 22 187 188 ;*EXTERNAL DATA AREAS USED: 189 190 EXT _START_RD_1_BLOCK 191 EXT _FIND_DCB 192 EXT _START_WR_1_BLOCK 193 EXT _END_RD_1_BLOCK 194 195 NEXT_STATE MACRO LP1 196 LD A,LP1 ;SOMETHING IN THE COMMAND BUFFER! 197 LD [D_TAPE_STATE],A 198 LD HL,[STATE_VECTORS+LP1+LP1] 199 LD [NEXT_STATE_ADDRESS],HL 200 JP END_OF_STATE_MACHINE 201 MEND 202 203 204 205 GLOBAL DEV_ID 206 GLOBAL INITIALIZE_DDP,INITIALIZE_TAPE,INIT_TAPE,INIT_DDP 207 0000' INITIALIZE_DDP: 208 0000' INITIALIZE_TAPE: 209 0000' INIT_TAPE: 210 0000' INIT_DDP: 211 0000' INIT_CODE: 212 0000' AF XOR A 213 0001' 32 0200" LD (D_CSA),A 214 0004' 32 0100" LD (D_TAPE_STATE),A 215 0007' 3D DEC A 216 0008' 32 0000" LD (D_OVERLAY_NUMBER),A 217 000B' 2A 1200' LD HL,(STATE_VECTORS+0000) ;IDLE STATE 218 000E' 22 D200' LD (NEXT_STATE_ADDRESS),HL 219 0011' C9 RET 220 0012' STATE_VECTORS: 221 0012' 1F00' DEFW STATE_IDLE ;STATE 0 222 0014' 2600' DEFW STATE_1 ; 1 REQUEST FOR I/O FOR 1 BLOCK 223 0016' 5800' DEFW STATE_2 ; 2 TEST FOR COMPLETE AND REQUEST STATUS 224 0018' 7B00' DEFW STATE_3 ; 3 TEST STATUS 225 001A LEN_INIT EQU $-INIT_CODE 226 ;* 227 ;* FILE: DDP_MANAG:TOS HEWLETT-PACKARD: DDP_MANAGER (c) Coleco 1983 Confidential Tue, 15 May 1984, 20:29 Page 5 228 229 001A' 0001 DEFS 1BH-LEN_INIT ;MAKE SURE THE MANAGER VECTOR IS AT THE SAME LOC AS THE S/IO_MANAGER 230 231 232 GLOBAL DDP_MANAGER 233 GLOBAL TAPE_MANAGER 234 001B' TAPE_MANAGER: 235 001B' DDP_MANAGER: 236 ;* BEGIN (Ordinarily registers are restored; retain only the pushes and pops you need.) 237 ;* 238 ;* 239 ;* 240 ;* FALL THRU TO CASE STATEMENT ;IF STATE = 6,7 241 ;* ;FILE IS TRYING TO CLOSE 242 ;* 243 ;* 244 ;* CASE D_TAPE_STATE,(IDLE,STATE_1,STATE_2,STATE_3,INIT_DDP) 245 ;* 246 001B' CASE_STATE: 247 ;* 248 ;* 249 001B' 2A D200' LD HL,[NEXT_STATE_ADDRESS] 250 001E' E9 JP [HL] 251 ;* 252 ;* IF THE MACHINE IS IDLE IT'S OK TO TEST FOR ANOTHER I/O REQUEST 253 ;* 254 001F' STATE_IDLE: ;STATE 0 255 001F' 3A 0200" LD A,[D_CSA] ;TEST THE COMMAND STATUS AREA 256 0022' B7 OR A 257 0023' F2 CF00' JP P,END_OF_STATE_MACHINE ;IF THE CSA CONTAINS AN ERROR CODE DON't PROCESS IT 258 ;* 259 ;* FALL THROUGH TO STATE 1 260 ;* 261 0026' STATE_1: 262 0026' 3A 0200" AB_REQ: LD A,(D_CSA) ;IF COMMAND IS TO KILL DDP COMMAND 263 0029' FE 87 CP KILL_TAPE 264 002B' CA 0000' JP Z,INIT_DDP 265 ;* 266 ;* REQUEST TO WRITE/READ A RECORD 267 ;* 268 269 002E' 2A 0300" LD HL,(XFER_ADDR) 270 0031' ED 5B 0500" LD DE,(BLOCK_NUM) 271 0035' 01 0000 LD BC,0000H 272 0038' 3A 0200" LD A,(D_CSA) 273 003B' FE 81 CP READ_TAPE 274 003D' 3A D100' LD A,(DEV_ID) 275 0040' 20 05 JR NZ,EOS_TAPE_WRITE 276 0042' EOS_TAPE_READ: 277 0042' CD 0000# CALL _START_RD_1_BLOCK 278 0045' 18 03 JR RET_ADDR 279 0047' EOS_TAPE_WRITE: 280 0047' CD 0000# CALL _START_WR_1_BLOCK 281 282 283 004A' RET_ADDR: 284 004A' NEXT_STATE 2 FILE: DDP_MANAG:TOS HEWLETT-PACKARD: DDP_MANAGER (c) Coleco 1983 Confidential Tue, 15 May 1984, 20:29 Page 6 285 004A' 3E 02 A LD A,2 ;SOMETHING IN THE COMMAND BUFFER! 286 004C' 32 0100" A LD [D_TAPE_STATE],A 287 004F' 2A 1600' A LD HL,[STATE_VECTORS+2+2] 288 0052' 22 D200' A LD [NEXT_STATE_ADDRESS],HL 289 0055' C3 CF00' A JP END_OF_STATE_MACHINE 290 291 ;* 292 ;* TEST FOR ACCEPTANCE/COMPLETION OF I/O REQUEST 293 ;* 294 0058' STATE_2: 295 0058' 3A D100' LD A,(DEV_ID) ;TEST THE STATUS OF THE FILE 296 005B' CD 0000# CALL _END_RD_1_BLOCK 297 005E' D2 CF00' JP NC,END_OF_STATE_MACHINE ;BETTER RETRY STATE 2 298 ;* 299 ;* AT THIS POINT THE COMMAND HAS BEEN ACCEPTED BY THE NETWORK 300 ;* IF THE ZERO FLAG IS NOT SET THERE HAVE BEEN ERRORS (09BH=TIMEOUT) 301 ;* 302 303 0061' 20 C3 JR NZ,STATE_1 ;BETTER RETRY STATE 1 304 ;* 305 ;* IF NO ERRORS THEN SET UP REQUEST STATUS OF THE TAPE DRIVE 306 ;* THIS TESTS THE CHECK SUM (CRC) OF THE DATA XMITTED BY THE TAPE 307 ;* 308 0063' STATE_2_OK: 309 ;* 310 0063' 3A D100' LD A,(DEV_ID) ;STATUS COMMAND 311 0066' CD 0000# CALL _FIND_DCB 312 0069' FD 36 00 01 LD (IY+D_COM_STAT),DCB_STATUS 313 006D' NEXT_STATE 3 314 006D' 3E 03 A LD A,3 ;SOMETHING IN THE COMMAND BUFFER! 315 006F' 32 0100" A LD [D_TAPE_STATE],A 316 0072' 2A 1800' A LD HL,[STATE_VECTORS+3+3] 317 0075' 22 D200' A LD [NEXT_STATE_ADDRESS],HL 318 0078' C3 CF00' A JP END_OF_STATE_MACHINE 319 ;* 320 ;* IN STATE 3 TEST FOR ACCEPTANCE OF THE REQUEST FOR STATUS COMMAND 321 ;* 322 007B' STATE_3: 323 007B' 3A D100' LD A,(DEV_ID) 324 007E' CD 0000# CALL _FIND_DCB ;WAS THE STATUS REQUEST ACKNOWLEDGED???? 325 0081' FD CB 00 7E BIT CMND_COMPLETE_BIT,(IY+D_COM_STAT) 326 0085' CA CF00' JP Z,END_OF_STATE_MACHINE 327 ;* 328 ;* IF THE COMMAND IS NOT YET ACCEPTED, COME BACK TO STATE 3 NEXT PASS 329 ;* 330 0088' FD 7E 00 LD A,(IY+D_COM_STAT) ;STATUS COMMAND ACCEPTED 331 008B' FE 80 CP 080H 332 008D' 20 D4 JR NZ,STATE_2_OK ;COULD NOT GET STATUS? 333 ;* 334 ;* 335 ;* 336 ;SAVE THE STATUS IN REGISTER B 337 008F' 3A D100' LD A,(DEV_ID) ;CHECK FOR SECONDARY DEVICE ID 338 0092' E6 F0 AND 0F0H 339 0094' FD 7E 14 LD A,(IY+D_STATUS_FLAGS) 340 0097' 28 08 JR Z,DEV_0_CHECK ;SECONDARY_DEV_ID=0 341 0099' CB 1F RR A ;GET STATUS INTO THE LOW NIBBLE FILE: DDP_MANAG:TOS HEWLETT-PACKARD: DDP_MANAGER (c) Coleco 1983 Confidential Tue, 15 May 1984, 20:29 Page 7 342 009B' CB 1F RR A 343 009D' CB 1F RR A 344 009F' CB 1F RR A 345 00A1' DEV_0_CHECK: 346 00A1' E6 0F AND 0FH 347 00A3' C2 C600' JP NZ,ERROR ;A BAD STATUS 348 ;* 349 ;* IF THE COMMAND IS ACCEPTED AND THERE ARE NO ERRORS INCREMENT THE CSA DATA 350 ;* 351 00A6' 2A 0300" LD HL,(XFER_ADDR) ; A BLOCK HAS BEEN WRITTEN OR READ 352 00A9' ED 5B 0500" LD DE,(BLOCK_NUM) ;UPDATE THE D_CSA AREA! 353 00AD' 01 0004 LD BC,0400H 354 00B0' 3A 0700" LD A,(RANGE) 355 00B3' 3D DEC A 356 00B4' CA 0000' JP Z,INIT_DDP ;DONE WITH OVERLAY? 357 ;* 358 ;* IF THE RANGE WAS DECREMENTED TO ZERO WE ARE DONE ELSE (WE ARE NOT?) 359 ;* 360 00B7' 32 0700" LD (RANGE),A 361 00BA' 13 INC DE 362 00BB' ED 53 0500" LD (BLOCK_NUM),DE 363 00BF' 09 ADD HL,BC 364 00C0' 22 0300" LD (XFER_ADDR),HL 365 366 00C3' C3 2600' JP STATE_1 367 368 ;* 369 ;* ERROR PROCESSING FROM REQUEST STATUS 370 ;* 371 00C6' ERROR: 372 ;* Errors occur after request status 373 ;* Possible errors are 1=CRC error (bad data on tape) 374 ;* 2=block not found 3=no tape in drive 4=no drive 375 ;* The user program is expected to test for errors via 376 ;* TEST_TAPE in the TAPE_INTERFACE module. 377 ;* 378 ;* 379 00C6' 32 0200" LD (D_CSA),A ;SAVE THE ERROR CODE IN THE CSA 380 00C9' 2A 1200' LD HL,(STATE_VECTORS+0) ;NEXT STATE = IDLE 381 00CC' 22 D200' LD (NEXT_STATE_ADDRESS),HL 382 383 384 ;* END (DDP_MANAGER) 385 386 00CF' END_OF_STATE_MACHINE: 387 00CF' AF XOR A 388 00D0' C9 RET 389 ;************************************************************************ 390 ;***** DEV_ID IS DEFAULT 08 FOR TAPE DRIVE 0 ***** 391 ;************************************************************************ 392 393 394 00D1' 08 DEV_ID DEFB TAPE1 395 396 397 ;************************************************************************ 398 ;************************************************************************ FILE: DDP_MANAG:TOS HEWLETT-PACKARD: DDP_MANAGER (c) Coleco 1983 Confidential Tue, 15 May 1984, 20:29 Page 8 399 ;************************************************************************ 400 GLOBAL D_OVERLAY_NUMBER 401 GLOBAL D_TAPE_STATE 402 GLOBAL D_CSA 403 ;*-------------------------------------------------------------- 404 ;*THE NEXT_STATE_ADDRESS MAY BE PUT IN DATA,PROG,OR COMN (IT'S ALL RAM TO ADAM) 405 ;* 406 00D2' 0002 NEXT_STATE_ADDRESS DEFS 2 407 00D4' ;*-------------------------------------------------------------- 408 ;* BY MAKING THE CSA COMMON IT IS EASILY LINKED 409 ;* INTO EXISTING CODE 410 DATA 411 0000" 0001 D_OVERLAY_NUMBER DEFS 1 412 0001" 0001 D_TAPE_STATE DEFS 1 413 0002" 0006 D_CSA DEFS 6 414 0003" XFER_ADDR EQU D_CSA+1 415 0005" BLOCK_NUM EQU XFER_ADDR+2 416 0007" RANGE EQU BLOCK_NUM+2 0 Error(s) Detected. 212 Program Bytes. 8 Data Bytes. 113 Symbols Detected. FILE: DDP_MANAG:TOS HEWLETT-PACKARD: DDP_MANAGER (c) Coleco 1983 Confidential Tue, 15 May 1984, 20:29 Page 9 Value Symbol Defined Referenced: 0026' AB_REQ 262 0009 BAD_FNUM_ERR 171 0005" BLOCK_NUM 415 270 352 362 416 0012 CANT_SYNC1 181 0013 CANT_SYNC2 182 001B' CASE_STATE 246 0007 CMND_COMPLETE_BIT 149 325 0080 CMND_FIN_STATUS 151 0002 DCB_BUSY 163 0000 DCB_IDLE 135 0003 DCB_IDLE_ERR 164 0001 DCB_NOT_FOUND 162 0004 DCB_RD 139 0002 DCB_RESET 137 0001 DCB_STATUS 136 312 0003 DCB_WR 138 001B' DDP_MANAGER 235 232 0010 DELETE_ERR 178 00A1' DEV_0_CHECK 345 340 0016 DEV_DEPD_ERR 186 00D1' DEV_ID 394 205 274 295 310 323 337 0001 D_BUF_ADR 66 67 68 0002 D_BUF_ADR_HI 68 0001 D_BUF_ADR_LO 67 0003 D_BUF_LEN 70 71 72 0004 D_BUF_LEN_HI 72 0003 D_BUF_LEN_LO 71 0000 D_COM_STAT 64 312 325 330 0002" D_CSA 413 213 255 262 272 379 402 414 0010 D_DEV_ADDR 83 0013 D_DEV_TYPE 90 0011 D_MAX_MSG_LEN 85 87 88 0012 D_MAX_MSG_LEN_HI 88 0011 D_MAX_MSG_LEN_LO 87 0000" D_OVERLAY_NUMBER 411 216 400 000E D_RET_COUNT 78 80 81 000F D_RET_COUNT_HI 81 000E D_RET_COUNT_LO 80 0005 D_SECT_NUM 74 0009 D_SEC_DEV_ID 76 0015 D_SIZE 96 0014 D_STATUS_FLAGS 92 339 0001" D_TAPE_STATE 412 214 286 315 401 00CF' END_OF_STATE_MACHINE 386 257 289 297 318 326 000A EOF_ERR 172 0042' EOS_TAPE_READ 276 0047' EOS_TAPE_WRITE 279 275 00C6' ERROR 371 347 0002 ERROR_RETRY 106 0003 ETX 157 0006 FILE_EXISTS_ERR 168 000E FILE_NM_ERR 176 000C FULL_DIR_ERR 174 000D FULL_TAPE_ERR 175 0000' INITIALIZE_DDP 207 206 0000' INITIALIZE_TAPE 208 206 FILE: DDP_MANAG:TOS HEWLETT-PACKARD: DDP_MANAGER (c) Coleco 1983 Confidential Tue, 15 May 1984, 20:29 Page 10 Value Symbol Defined Referenced: 0000' INIT_CODE 211 225 0000' INIT_DDP 210 206 264 356 FEC0 INIT_PCB_ADDR 143 0000' INIT_TAPE 209 206 008C KBD_NAK 153 0001 KEYBOARD_ID 102 0087 KILL_TAPE 41 263 001A LEN_INIT 225 229 0008 MATCH_ERR 170 000F MAX_DEV_ADDR 108 00D2' NEXT_STATE_ADDRESS 406 218 249 288 317 381 0004 NO_DATE_ERR 166 0007 NO_FCB_ERR 169 0005 NO_FILE_ERR 167 0000 PCB_IDLE 114 0004 PCB_RESET 125 126 0084 PCB_RESET_ACK 126 0003 PCB_SNA 122 123 0083 PCB_SNA_ACK 123 0001 PCB_SYNC1 116 117 0081 PCB_SYNC1_ACK 117 0002 PCB_SYNC2 119 120 0082 PCB_SYNC2_ACK 120 0005 PCB_WAIT 128 129 0085 PCB_WAIT_ACK 129 0002 PRINTER_ID 103 0014 PRT_ERR 183 0086 PR_NAK 155 0000 P_COM_STAT 49 0003 P_NUM_DCBS 55 0001 P_REL_ADDR 51 52 53 0002 P_REL_ADDR_HI 53 0001 P_REL_ADDR_LO 52 0004 P_SIZE 58 0007" RANGE 416 354 360 0011 RANGE_ERR 179 0081 READ_TAPE 39 273 000F RENAME_ERR 177 004A' RET_ADDR 283 278 0015 RQ_TP_STAT_ERR 185 0026' STATE_1 261 222 303 366 0058' STATE_2 294 223 0063' STATE_2_OK 308 332 007B' STATE_3 322 224 001F' STATE_IDLE 254 221 0012' STATE_VECTORS 220 217 287 316 380 0008 TAPE1 38 394 0008 TAPE_ID 104 001B' TAPE_MANAGER 234 233 009B TIMEOUT 159 000B TOO_BIG_ERR 173 0082 WRITE_TAPE 40 0003" XFER_ADDR 414 269 351 364 415 0000# _END_RD_1_BLOCK 193 296 0000# _FIND_DCB 191 311 324 0000# _START_RD_1_BLOCK 190 277 FILE: DDP_MANAG:TOS HEWLETT-PACKARD: DDP_MANAGER (c) Coleco 1983 Confidential Tue, 15 May 1984, 20:29 Page 11 Value Symbol Defined Referenced: 0000# _START_WR_1_BLOCK 192 280