1 /RX5A.PA NON-SYSTEM HANDLER FOR RX50 DRIVE PAIR A 2 / 3 / 4 / 5 / 6 / 7 / 8 / 9 / 10 /COPYRIGHT (C) 1982, 1984 BY DIGITAL EQUIPMENT CORPORATION 11 / 12 / 13 / 14 / 15 / 16 / 17 / 18 / 19 / 20 / 21 /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE 22 /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT 23 /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY 24 /FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT. 25 / 26 /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER 27 /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED 28 /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH 29 /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. 30 / 31 /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE 32 /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY 33 /DIGITAL. 34 / 35 / 36 / 37 / 38 / 39 / 40 / 41 / 42 / 43 / 44 /DEFINITIONS OF RX8/E IOT'S 45 46 RXVER= 0262 /VERSION = B2 47 48 NOCHK= 0 / 0 = NO CTRL C CHECK, 1 = CTRL C CHECK 49 50 DEVCOD= 750 /DEVICECODE 51 52 SEL= 6000+DEVCOD /SELECT DRIVE PAIR A OR B WITH AC<11> 53 LCD= 6001+DEVCOD /LOAD COMMAND REGISTER 54 XDR= 6002+DEVCOD /TRANSFER DATA REGISTER 55 STR= 6003+DEVCOD /SKIP ON TRANSFER REQUEST FLAG, CLEAR FLAG 56 SER= 6004+DEVCOD /SKIP ON ERROR FLAG, CLEAR FLAG 57 SDN= 6005+DEVCOD /SKIP ON DONE FLAG, CLEAR FLAG 58 INTR= 6006+DEVCOD /INTERRUPT ENABLE/DISABLE 59 INIT= 6007+DEVCOD /INITIALIZE CONTROLLER AND RECALIBRATE DRIVES 60 61 62 /NOTES ON THIS HANDLER: 63 64 /THIS HANDLER READS AND WRITES THE DISK IN "12-BIT" MODE, IN WHICH 65 / ONE RX50 SECTOR CONTAINS 256 WORDS. THIS INVOLVES SOME COMPLICATION 66 /TO SUPPORT THE ABILITY OF OS/8 TO READ AND WRITE AN ODD NUMBER OF PAGES 67 /( 256*N + 128 WORDS ). IN THE CASE OF AN ODD PAGE COUNT, THE HANDLER 68 /FILLS THE SECOND HALF OF THE LAST SECTOR WITH THE LAST DATA WORD ON WRITE 69 /AND DISCARDS THE SECOND HALF OF THE LAST SECTOR ON READING. 70 71 /THE ENTIRE DISK CONTAINS 800 OS/8 BLOCKS. 72 /ONLY 770 OF THE BLOCKS ARE USED. THE REMAINING 30 BLOCKS HAVE BEEN ALOCATED 73 /TO DECMATE II FIRMWARE. 74 75 /TO MAXIMIZE SPEED ON THE DEVICE, THE HANDLER READS AND WRITES 76 /ON A TRACK WITH A TWO-WAY INTERLEAVE. 77 78 /TRACK-SECTOR COMPUTATION IS DONE DURING I/O TO/FROM THE SILO 79 80 AC4000=CLL CLA CML RAR /SET AC TO 4000 81 AC7776=CLL CLA CMA RAL /SET AC TO 7776 82 AC0002=CLL CLA CML RTL /SET AC TO 0002 83 AC7775=CLL CLA CMA RTL /SET AC TO 7775 84 /BUILD DATA 85 86 *0 87 88 000000 7776 -2 /TWO ENTRY POINTS 89 000001 2230 DEVICE RX5A /DEVICE GROUP NAME 000002 6501 90 000003 2230 DEVICE RX50 /ENTRY POINT NAME 000004 6560 91 000005 4300 4300 /CODE FOR MULTI-RX 92 000006 4030 RX50&177+4000 /ENTRY POINT OFFSET 93 000007 0000 0 94 000010 0000 0 95 000011 2230 DEVICE RX5A /DEVICE GROUP NAME 000012 6501 96 000013 2230 DEVICE RX51 /ENTRY POINT NAME 000014 6561 97 000015 4300 4300 98 000016 4034 RX51&177+4000 /ENTRY POINT OFFSET 99 000017 0000 0 100 000020 0000 0 101 *200 102 / 103 / 104 / INIT CODE 105 / 106 000200 7402 POINT, HLT /ADDR OF SECOND PAGE AT INIT TIME 107 000201 4600 UNIT, JMS I POINT /GO TO SECOND PAGE TO INIT 108 / 109 / LIST OF VECTORS TO SECOND PAGE 110 / 111 000202 0201 LQUO, QUO-. /LQUO MUST LEAD OFF LIST 112 000203 0176 LRETRY, RETRY-. 113 000204 0200 LREC, REC-. 114 000205 0260 LREMD, REMD-. 115 000206 0200 LFN, FN-. 116 000207 0200 LDENSW, DENSW-. 117 000210 0200 LENTRY, ENTRY-. 118 000211 0325 LWAIT, WAIT-. 119 000212 0336 LERROR, ERRSET-. 120 VCOUNT=LQUO-. 121 122 000213 5240 JMP WHICH 123 124 000214 0006 L6, 6 125 000215 7772 LM6, -6 126 DECIMAL 127 000216 0117 L79, 79 128 000217 0117 SEEK, 79 129 OCTAL 130 131 / ENTRY POINTS ARE AT 30, 34 132 / 133 *.&7600+30 134 135 000230 0262 RX50, RXVER 136 000231 4367 JMS ZOO /COMMON ENTRY ROUTINE 137 000232 0000 0 /UNIT 0 138 000233 7777 -1 /MINUS SAYS STILL HAVE TO INIT IT; 139 140 000234 0000 RX51, 0 141 000235 4367 JMS ZOO 142 000236 0020 20 /DRIVE 1 143 000237 5240 DOOR, JMP WHICH /INIT TIME LITERAL (MUST BE MINUS) 144 /GETS SAME TYPE CODE AS OTHER ENTRY POINT 145 146 / 147 / COME HERE FROM ZOO 148 / 149 / PROCESS ENTRY POINT, DEVICE TYPE 150 / 151 000240 7300 WHICH, CLL CLA 152 000241 1215 TAD LM6 /INIT RETRY COUNT 153 000242 3603 DCA I LRETRY 154 000243 1767 TAD I ZOO /GET DRIVE # (0 OR 1) 155 000244 3201 DCA UNIT /HOLD FOR LATER 156 000245 2367 ISZ ZOO /MOVE TO TYPE CODE 157 000246 1767 TAD I ZOO /HAS THIS DRIVE BEED INIT'ED 158 000247 7700 SMA CLA /SKIP IF NO 159 000250 5256 JMP NORMAL /GO TO NORMAL PATH 160 000251 7610 RSTART, SKP CLA 161 000252 0020 20 162 000253 1252 TAD .-1 163 000254 3767 DCA I ZOO /PLACE TYPE CODE, THREE LOC.'S AFTER ENTRY POINT 164 000255 0012 L12, 12 /MAY SKIP 165 000256 1351 NORMAL, TAD L7400 / 256 WORDS PER SECTOR 166 000257 3607 DCA I LDENSW /PLACE FOR LOOP CONTROL 167 000260 1201 TAD UNIT /RX50 168 000261 3606 DCA I LFN /PLACE INTO FUNCTION CONTROL WORD 169 000262 7346 AC7775 /BACK UP ZOO TO FETCH CALLING ADDR 170 000263 1367 TAD ZOO 171 000264 3376 DCA T1 /HOLD TEMPORARY 172 000265 1776 TAD I T1 /HERE IS CALLING ADDR 173 000266 7402 CLLFLD, HLT /PUT CDF TO CALLING FIELD HERE 174 000267 4610 JMS I LENTRY /GO TO SECOND PAGE, LEAVING POINTER TO DIVSUB 175 176 / 177 / DIVSUB SUBROUTINE !!MUST!! FOLLOW IMMEDIATELY 178 / 179 / DIVSUB 180 / 181 / CALL TO SET UP TRACK, SECTOR, FROM OVERALL SECTOR # 182 / ALSO, SET UNIT WITH HEAD COMMAND IF WE ARE ON TO SECOND SIDE 183 / 184 / CALL WITH AC <0 IF IT IS REALLY AN ERROR RETRY 185 / CALL WITH AC >=0 IF CALL TO DIVSUB 186 187 000270 0000 DIVSUB, 0 188 000271 6201 CDF 0 /AND DATA FIELD MUST BE TO HERE 189 000272 7710 SPA CLA /SKIP IF REALLY A DIVIDE REQUEST 190 000273 5324 JMP RECOVR /NO, IT WAS AN ERROR RETRY!! 191 000274 3602 DCA I LQUO /CLEAR DIVIDE QUOTIENT 192 000275 7010 RAR 193 000276 3323 DCA SAVL /SAVE THE CONTENTS OF THE LINK 194 000277 1604 TAD I LREC /THIS FOR TRACK-SECTOR 195 000300 2602 DIVLOO, ISZ I LQUO /MAIN DIIVIDIE LOOP 196 000301 1350 TAD LM12 /DIVIDE BY 10 TO GET TRACK 197 000302 7500 SMA /SKIP IF DONE 198 000303 5300 JMP DIVLOO 199 000304 1255 TAD L12 /REMAINDER 0-9 200 000305 3376 DCA T1 /HOLD IT IN TEMPORARY 201 000306 1376 TAD T1 /CALCULATE BLOCK NUMBER FOR AN 202 000307 1376 TAD T1 /INTERLEAVE OF 2 203 000310 7101 CLL IAC /LINK CLEAR FOR FINAL TEST; +1 TO START AT 1 NOT 0 204 000311 1350 TAD LM12 /DIVIDE BY 10 TO GET SECTOR 205 000312 7540 SMA SZA /SKIP IF DONE 206 000313 5311 JMP .-2 207 000314 1255 TAD L12 /RESTORE POSITIVE VALUE TO BE SECTOR 208 000315 3605 DCA I LREMD 209 000316 7620 SNL CLA 210 000317 2605 ISZ I LREMD /COMPENSATE FOR ODD SECTOR 211 000320 1323 TAD SAVL 212 000321 7104 CLL RAL /RESTORE LINK 213 000322 5670 JMP I DIVSUB /OUT 214 000323 0000 SAVL, 0 /TEMPORARY SO WE CAN SAVE LINK THROUGH ALL THE 215 /EVIL ARITHMETIC 216 000324 1217 RECOVR, TAD SEEK /ERROR RETRY ROUTINE 217 000325 7650 SNA CLA /THIS WILL ALTERNATE BETWEEN TRACKS 1 AND 79 218 000326 1216 TAD L79 219 000327 3217 DCA SEEK 220 000330 1201 TAD UNIT /GET UNIT NUMBER 221 000331 1214 TAD L6 222 000332 6751 LCD /AND LOAD IT 223 000333 4611 JMS I LWAIT /WAIT FOR OPERATION TO COMPLETE 224 000334 7410 SKP /STR NORMAL RETURN 225 000335 5612 JMP I LERROR /DONE ERROR RETURN 226 000336 7001 IAC /SELECT SECTOR 1 227 000337 6752 XDR 228 000340 4611 JMS I LWAIT /WAIT FOR OPERATION TO FINISH 229 000341 7410 SKP 230 000342 5612 JMP I LERROR 231 000343 1217 TAD SEEK /SEEK TO TRACK 1 OR 79 232 000344 6752 XDR 233 000345 4611 JMS I LWAIT /WAIT FOR OPERATION TO COMPLETE 234 000346 5612 JMP I LERROR 235 000347 5251 JMP RSTART 236 000350 7766 LM12, -12 237 000351 7400 L7400, 7400 238 / 239 / 240 / 241 *.&7600+167 /FORCE TO END OF PAGE 242 / ZOO SUBROUTINE 243 / 244 / TO SET UP ENTRY POINT PROCESSING, AND INIT CODE 245 / 246 000367 0000 ZOO, 0 /ADDR OF 'HIT' ENTRY POINT +2 COMES HERE 247 000370 7200 CLA /FOR SAFETY 248 000371 6214 RDF /SAVE CALLERS FIELD SETTING 249 000372 1374 TAD LCDF0 /ADD IN CDF 0 250 000373 3266 DCA CLLFLD /RESET WHEN GOING TO I/O SUB 251 000374 6201 LCDF0, CDF 0 /DATA FIELD HERE FOR INDIRECTS 252 000375 1237 CLOSE, TAD DOOR /CLOSE DOOR TO ONCE ONLY CODE (JMP WHICH 253 000376 3375 T1, DCA CLOSE /USE ONCE-ONLY FOR TEMPORARY LOCATION 254 000377 4200 JMS POINT /LEAVE ADDR OF SECOND PAGE 255 / 256 / 257 / VARIABLES, ALSO INIT CODE LIVES HERE 258 / 259 / 260 000400 0000 BUF, 0 /POINTER TO CALLER'S BUFFER 261 000401 0000 RETRY, 0 /RETRY COUNT 262 000402 0000 SYS, 0 /POINTER TO CALL 263 000403 0000 QUO, 0 /DIVIDE QUOTIENT, WHICH IS TRACK NUMBER 264 000404 0000 REC, 0 /SECTOR NUMBER OF FLOPPY 265 000405 0000 BC, 0 /CONTROL COUNT, WORDS TO TRANSFER 266 000406 0000 FN, 0 /0 FOR WRITE; 2 FOR READ; HEAD, DENSITY, UNIT 267 000407 0000 DENSW, 0 /GETS SET TO 7400 FOR SILO COUNT 268 000410 0000 ENTRY, 0 /ENTRY POINT, LEAVE ADDR OF DIVSUB HERE 269 / 270 IFNZRO .&177-10&4000 <_ERROR> /ENOUGH ROOM FOR INIT? 271 / 272 *.&7600 273 / 274 / INIT TIME: FILL VECTOR TABLE 275 / 276 000400 0000 THERE, 0 /FILLED BY JMS, POINTS TO VECTOR 277 000401 1200 ILOOP, TAD THERE /POINTER IS ALSO OFFSET! 278 000402 1600 TAD I THERE /MAKING VECTOR 279 000403 3600 DCA I THERE 280 000404 2200 ISZ THERE /MOVE TO NEXT VECTOR 281 000405 2372 ISZ FLPWC /CONTROL COUNT ON THIS PAGE 282 000406 5201 JMP ILOOP 283 000407 5600 JMP I THERE /BACK TO FIRST PAGE 284 / 285 / IO SUBROUTINE 286 / 287 / ENTRY POINT AT END OF LAST LISTING PAGE 288 / 289 / 290 *ENTRY+1 /RESUME RUNTIME CODE 291 / 292 000411 3202 DCA SYS /POINTER TO ARG'S, EXIT 293 000412 6214 RDF /DATA FIELD OF USER CALL 294 000413 1377 TAD (CDF CIF 0 /MAKE CDF CIF TO CALLER'S FIELD 295 000414 3333 DCA EXFLD /SET UP FOR CALL 296 000415 7330 AC4000 /SET LINK=0, AC=4000 297 000416 1602 TAD I SYS /CARRY READ-WRITE BIT TO LINK 298 000417 0373 AND L70 /KEEP FIELD FOR BUFFER 299 000420 1364 TAD LLCDF0 /MAKE CDF TO BUFFER FIELD 300 000421 3253 DCA BUFCDF /PLACE INTO I/O LOOP 301 000422 7026 CML RTL /MAKE FUNCTION CODE, 0=WRITE, 2=READ 302 000423 1206 TAD FN /START-UP CODE HAS SET HEAD, DENSITY, UNIT ETC. 303 000424 3206 DCA FN 304 000425 1602 TAD I SYS /MAKE LOOP CONTROL COUNT 305 000426 7004 RAL 306 000427 0316 AND L7600 307 000430 7041 CIA /0 FOR WHOLE FIELD 308 000431 3205 DCA BC /MINUS TOTAL NUMBER OF WORDS 309 000432 2202 ISZ SYS 310 000433 1602 TAD I SYS /BUFFER ADDRESS 311 000434 3200 DCA BUF 312 000435 2202 ISZ SYS 313 000436 1602 TAD I SYS /STARTING BLOCK NUMBER 314 000437 3204 DCA REC 315 000440 2202 ISZ SYS /MOVE POINTER TO ERROR EXIT 316 000441 4610 JMS I ENTRY /CALL DIVISION SUBROUTINE OTHER PAGE 317 000442 7326 AC0002 /MASK OUT READ WRITE BIT 318 000443 0206 AND FN /SPLIT READ AND WRITE 319 000444 7640 SZA CLA /SKIP IF WRITE 320 000445 5306 JMP STREAD /READ GOES TO START IN MIDDLE OF LOOP 321 /WRITE FALLS THRU TO NEXT LISTING PAGE 322 /WRITE FALLS THRU TO THIS LOOP 323 / 324 / TOP OF MAIN LOOP 325 / 326 000446 1206 TOP, TAD FN /SET SILO TO LOAD-UNLOAD 327 000447 6751 LCD /COMMAND TO CONTROLLER 328 000450 1207 TAD DENSW /MAKE SILO LOOP COUNT, 7400 FOR RX50 329 000451 3372 DCA FLPWC /LDCMD ENTRY SAFE TEMPORARY 330 000452 7100 CLL /FLAG FOR BC OVERFLOW 331 000453 7402 BUFCDF, HLT /CDF TO BUFFER FIELD PLACED HERE 332 000454 4336 TRLOOP, JMS WAIT /WAIT FOR STR 333 000455 7410 SKP 334 000456 5350 JMP ERRSET 335 000457 1600 TAD I BUF /IN CASE WRITE, FETCH A WORD 336 000460 6752 XDR /TO OR FROM AC 337 000461 7430 SZL /LINK SET IF BLOCK COUNT EXPIRED, ODD PAGE THING 338 000462 5271 JMP INCWC /THROUGH AWAY DATA, JUST COUNT TRANSFERS 339 000463 3600 DCA I BUF /STILL WORDS TO GET 340 000464 2200 ISZ BUF 341 000465 0000 REMD, 0 /HOME FOR SECTOR NUMBER, ALWAYS 00XY, HENCE NOP 342 000466 2205 ISZ BC /TEST FOR END OF TRANSFER 343 000467 7410 SKP /NO, GO ON 344 000470 7120 STL /YES 345 000471 7200 INCWC, CLA 346 000472 2372 ISZ FLPWC /256 WORD COUNTER 347 000473 5254 JMP TRLOOP 348 000474 4336 JMS WAIT /WAIT FOR SDN 349 000475 5350 JMP ERRSET 350 000476 1205 TAD BC /WENT TO ZERO IF TRANSFER COMPLETE 351 000477 7640 SZA CLA 352 000500 5306 JMP STREAD 353 000501 7326 AC0002 /SET AC = 2 354 000502 0206 AND FN /IF BC=0 AND DOING A READ THEN WERE DONE 355 000503 7640 SZA CLA 356 000504 5332 JMP EXIT 357 000505 7120 STL /INDICATES THAT BLOCK COUNT HAS EXPIRED 358 359 / 360 / MIDDLE OF MAIN LOOP 361 / 362 000506 1335 STREAD, TAD K4 /LEAVE THE LINK ALONE 363 000507 1206 TAD FN /TURNING SILO COMMAND INTO READ-WRITE COMMAND 364 000510 6751 LCD /I/O COMMAND TO CONTROLLER 365 000511 4336 JMS WAIT /WAIT FOR STR 366 000512 7410 SKP 367 000513 5350 JMP ERRSET 368 000514 1265 TAD REMD /PRECOMPUTED SECTOR # 369 000515 6752 XDR 370 000516 7600 L7600, 7600 /CLEAR AC, AND IS LITERAL 371 000517 4336 JMS WAIT /WAIT FOR STR 372 000520 7410 SKP 373 000521 5350 JMP ERRSET 374 000522 1203 TAD QUO /TRACK # 375 000523 6752 XDR /TRACK # IS ALWAYS NON0 !! 376 000524 2204 ISZ REC /MOVE TO NEXT RECORD NUMBER 377 000525 4610 JMS I ENTRY /DO TRACK SECTOR FOR NEXT OPERATION 378 000526 4336 JMS WAIT /WAIT FOR SDN 379 000527 5350 JMP ERRSET 380 000530 7620 SNL CLA /EXIT IF LINK SET, DIVIDE ROUTINE MUST PRESERVE !! 381 000531 5246 JMP TOP /STILL MORE 382 000532 2202 EXIT, ISZ SYS /KICK TO OK EXIT 383 000533 7402 EXFLD, HLT /CDF CIF TO CALLER 384 000534 5602 JMP I SYS /OUT 385 000535 0004 K4, 4 /MAKES 0 GO TO 4 AND 2 GO TO 6 386 387 000536 0000 WAIT, 0 388 000537 7200 CLA 389 000540 6753 STR /TEST FOR XFER FLAG 390 000541 7410 SKP 391 000542 5736 JMP I WAIT /IF XFER FLAG SET RETURN TO CALLER +1 392 000543 6755 SDN /TEST DONE FLAG 393 000544 5340 JMP WAIT+2 /LOOP UNTIL STR OR SDN HAS SET 394 000545 2336 ISZ WAIT /DONE SET, SET UP RETURN TO CALLER +2 395 000546 6754 SER /IS THERE AN ERROR 396 000547 5354 JMP MONCHK /NO, CHECK KEYBOARD 397 000550 7330 ERRSET, AC4000 /ERROR CODE FOR HARD ERROR 398 000551 2201 ISZ RETRY 399 000552 4610 JMS I ENTRY /NO, -AC SAYS TO RETRY NOT DIVIDE!!! 400 000553 5333 JMP EXFLD /ERROR RETURN OUT 401 402 MONCHK, 403 000554 7010 RAR /SAVE THE LINK 404 000555 3371 DCA SAVLNK 405 406 IFNZRO NOCHK < KSF /IS K.B. FLAG SET > / Test for ctrl c 407 000556 7000 IFZERO NOCHK < NOP > / Don't test for ctrl c 408 409 000557 5366 JMP MONLEV /NO 410 000560 6036 KRB /YES 411 000561 1374 TAD M3 /LOOK FOR CTRL C 412 000562 7640 SZA CLA 413 000563 5366 JMP MONLEV /NOT CTRL C 414 000564 6201 LLCDF0, CDF 0 /CTRL C FOUND 415 000565 5716 JMP I L7600 /RETURN TO SYSTEM 416 417 000566 1371 MONLEV, TAD SAVLNK /RESTORE LINK 418 000567 7004 RAL 419 000570 5736 JMP I WAIT /RETURN TO CALLER 420 421 000571 0000 SAVLNK, 0 422 000572 7767 FLPWC, VCOUNT 423 000573 0070 L70, 70 424 000574 7775 M3, -3 425 426 000577 6203 PAGE 427 $ AC0002 7326 AC4000 7330 AC7775 7346 AC7776 7344 unreferenced BC 0405 BUF 0400 BUFCDF 0453 CLLFLD 0266 CLOSE 0375 DENSW 0407 DEVCOD 0750 DIVLOO 0300 DIVSUB 0270 DOOR 0237 ENTRY 0410 ERRSET 0550 EXFLD 0533 EXIT 0532 FLPWC 0572 FN 0406 ILOOP 0401 INCWC 0471 INIT 6757 unreferenced INTR 6756 unreferenced K4 0535 L12 0255 L6 0214 L70 0573 L7400 0351 L7600 0516 L79 0216 LCD 6751 LCDF0 0374 LDENSW 0207 LENTRY 0210 LERROR 0212 LFN 0206 LLCDF0 0564 LM12 0350 LM6 0215 LQUO 0202 LREC 0204 LREMD 0205 LRETRY 0203 LWAIT 0211 M3 0574 MONCHK 0554 MONLEV 0566 NOCHK 0000 NORMAL 0256 POINT 0200 QUO 0403 REC 0404 RECOVR 0324 REMD 0465 RETRY 0401 RSTART 0251 RX50 0230 RX51 0234 RXVER 0262 SAVL 0323 SAVLNK 0571 SDN 6755 SEEK 0217 SEL 6750 unreferenced SER 6754 STR 6753 STREAD 0506 SYS 0402 T1 0376 THERE 0400 TOP 0446 TRLOOP 0454 UNIT 0201 VCOUNT 7767 WAIT 0536 WHICH 0240 XDR 6752 ZOO 0367