1 /RX8 RX01 DIAGNOSTINC DIRXA-D 2 FIELD 1 3 / CONSOL PACKAGE 4 5 6 7 8 /PROGRAM SHOULD CHECK FOR A CONTROL CHARACTER FROM THE CONSOL 9 /EVERY FIVE SECONDS OR LESS 10 11 12 13 /SETUP CNTVAL FOR A RANGE OF 1 TO 4(8/E) MINUTES FOR C8PASS TO PRINT PASS 14 /SETUP OF CNTVAL WILL BE FOUND IN C8PASS 15 /THIS VALUE SHOULD BE A POSITIVE NUMBER. 16 17 /CHANGE 1-7 APRIL ,1975 18 19 /VT78 MODIFICATIONS JUNE ,1977 20 / 1. NEW CONSOLE PACKAGE 21 / 2. CAPABILITY OF TESTING 2 FLOPPY UNITS(4 DRIVES) 22 / 3. MODIFIED INTERLEAVING 23 24 25 PSKF= 6661 26 PCLF= 6662 27 PSKE= 6663 28 PSTB= 6664 29 PSIE= 6665 30 GTF= 6004 31 ACL= 7701 32 CAF= 6007 33 MQL= 7421 34 HLT= HALT 35 /#6 36 MQA= 7501 37 /#6 38 /XLIST 39 /IFDEF CONSOL < 40 /XLIST 41 *24 42 C8PASS= JMS I . 43 010024 0600 XC8PASS /C8 PASS COMPLETION ROUTINE 44 C8CKSW= JMS I . 45 010025 0673 XC8SW /CHECK SW SETTING 46 C8PRNT= JMS I . 47 010026 1000 XC8PNT /C8 PRINT A BUFFER 48 C8OCTA= JMS I . 49 010027 1035 XC8OCT /CONVERT TO ASCII AND PRINT 50 51 /*20 /PSEUDO SWITCH REGISTER 52 /4000=DO NOT INHIBIT ERROR HALT 53 /2000=LOOP ON ERROR 54 /1000=LOOP ON TEST IN SR 4-11 55 /400=HALT AT END OF PASS 56 57 /*21 /HARDWARE INDICATORS 58 /4000=USE HARDWARE SWITCH REGISTER 59 /*22 /SYSTEM CONFIGURATION 60 /400=CONSOL PACKAGE SET ACTIVE 61 /*23 /RESERVED FOR FUTURE USE 62 /XLIST> 63 / C O N S O L E P A C K A G E 64 / 65 / 66 /IF ENTERED WITH C8CHAR=0000 THE SWITCH REGISTER 67 /MODIFICATION ROUTINE IS ENTERED AUTOMATICALLY. 68 /IF ENTERED WITH C8CHAR NOT EQUAL TO 0000, THE 69 /KEYBOARD INPUT DECODER IS ENTERED AND IT IS ASSUMED 70 /THAT THE AC CONTAINS THE ASCII CODE TO BE 71 /CHECKED FOR A VALID CONTROL CHARACTER. 72 / 73 / 74 / 75 / 76 / 77 BSW=7002 78 / 79 010030 0000 C8TEMP, 0 / TEMPRARY WORK AREA 80 010031 0000 C8CHAR, 0 81 010032 6203 C8CDI, CIF CDF /USED TO CREATE CDI TO PROGRAM FIELD 82 010033 6201 C8CDF, CDF /USED TO CREATE CDF TO CONSOLE FIELD 83 010034 0000 C8SWR, 0 /SWITCH REGISTER SAVE AREA 84 010035 0000 C8MODE, 0 /PRINT MODE SWITCH 85 010036 0000 C8CNTR, 0 /USED AS A COUNTER 86 010037 7775 C8M3, -3 /CONSTANT 87 010040 7774 C8M4, -4 /CONSTANT 88 010041 7773 C8M5, -5 /CONSTANT 89 010042 7770 C8M10, -10 /CONSTANT 90 010043 7520 C8M260, -260 /CONSTANT 91 010044 0007 C8K7, 0007 /CONSTANT 92 010045 0240 C8K240, 0240 /CONSTANT 93 010046 0260 C8K260, 0260 /CONSTANT 94 010047 0275 C8K275, 0275 /CONSTANT 95 010050 0277 C8K277, 0277 /CONSTANT 96 010051 0322 C8K322, 0322 /CONSTANT 97 010052 0323 C8K323, 0323 /CONSTANT 98 / 99 / 100 *200 101 010200 0000 C8ENTR, 0 102 010201 1777 TAD I (21 /GET MCW1 FROM PROGRAM FIELD 103 010202 7710 SPA CLA /SKIP IF USING PSEUDO SWR 104 010203 7614 CLA OSR SKP /GET HARDWARE SWR AND SKIP 105 010204 1776 TAD I (20 /GET PSEUDO SWR 106 010205 3034 DCA C8SWR /SAVE SWITCH REGISTER 107 010206 1775 TAD I (INMODE /GET MESSAGE ACTIVE FLAG 108 010207 3035 DCA C8MODE /SAVE IT 109 010210 6211 CDF 10 /CHANGE DATA FIELD TO CONSOLE PACKAGE 110 010211 1200 TAD C8ENTR /GET RETURN ADDRESS 111 010212 3774 DCA C8RTN /SAVE FOR EXIT 112 010213 1031 TAD C8CHAR /GET CHARACTER SAVED IN MAIN PROGRAM 113 010214 7440 SZA /SKIP IF IT WAS ZERO 114 010215 5773 JMP C8CNTL /AC NOT ZERO, GO CHECK CONTROL CHAR 115 / 116 /PRINT OUT SR=XXXX WHERE XXXX IS THE CURRENT CONTENTS 117 /OF THE SWITCH REGISTER BEING USED (EITHER PSEUDO OR HARDWARE) 118 / 119 010216 4772 C8PSW, JMS C8CRLF /DO A AND 120 010217 1052 TAD C8K323 /GET ASCII CODE FOR "S" 121 010220 4771 JMS C8TYP /PRINT "S" 122 010221 1051 TAD C8K322 /GET ASCII CODE FOR "R" 123 010222 4771 JMS C8TYP /PRINT "R" 124 010223 1047 TAD C8K275 /GET ASCII CODE FOR "=" 125 010224 4771 JMS C8TYP /PRINT "=" 126 010225 1040 TAD C8M4 /AC=-4 127 010226 3036 DCA C8CNTR /SET UP OCTAL DIGIT COUNTER 128 010227 1034 TAD C8SWR /GET SWITCH REGISTER 129 010230 7004 RAL /EXTRA ROTATE FOR LINK 130 010231 7004 C8LOPA, RAL 131 010232 7006 RTL /ROTATE OCTAL DIGITS FOR PRINTING 132 010233 3034 DCA C8SWR /SAVE ROTATED SWR 133 010234 1034 TAD C8SWR /GET ROTATED SWR 134 010235 0044 AND C8K7 /MASK OFF DIGIT TO PRINT 135 010236 1046 TAD C8K260 /ADD ASCII BASE CODE 136 010237 4771 JMS C8TYP /PRINT AN OCTAL DIGIT 137 010240 1034 TAD C8SWR /GET SWR 138 010241 2036 ISZ C8CNTR /INCREMENT LOOP COUNTER 139 010242 5231 JMP C8LOPA /GO PRINT NEXT DIGIT 140 / 141 /ACCEPT KEYBOARD INPUT OF OCTAL DIGITS, , 142 /CTRL/C OR CTRL/G. ALL OTHER CHARACTERS ARE INVALID 143 /AND WILL BE ECHOED, FOLLOWED BY A "?", 144 /A CARRIAGE RETURN, LINE FEED, AND A RESTART OF 145 /THE SR=XXXX ROUTINE 146 / 147 010243 7300 CLA CLL 148 010244 1041 TAD C8M5 /AC=-5 149 010245 3036 DCA C8CNTR /SET UP TO ACCEPT 5 CHARACTERS 150 010246 3770 DCA C8BLD /CLEAR SWITCH REG. BUILD AREA 151 010247 3767 DCA C8FLG /CLEAR SWR CHANGE SWITCH 152 010250 1045 TAD C8K240 /GET ASCII CODE FOR SPACE 153 010251 4771 JMS C8TYP /SPACE OVER ONE POSITION 154 010252 4766 C8SRLP, JMS C8TTY /GO WAIT FOR KEYBOARD INPUT 155 010253 3030 DCA C8TEMP /SAVE INPUT CHARACTER 156 010254 1030 TAD C8TEMP /GET CHARACTER 157 010255 1365 TAD (-203 158 010256 7450 SNA /SKIP IF NOT CTRL/C 159 010257 5764 JMP C8CTLC /GO TO CTRL/C ROUTINE 160 010260 1040 TAD C8M4 /AC-=4 161 010261 7450 SNA /SKIP IF NOT CTRL/G 162 010262 5763 JMP C8CTLG /GO TO CTRL/G ROUTINE 163 010263 1037 TAD C8M3 /SUBTRACT 3 164 010264 7450 SNA /SKIP IF NOT LINE FEED 165 010265 5762 JMP C8EXT1 /GO TO LINE FEED EXIT 166 010266 1037 TAD C8M3 /SUBTRACT 3 167 010267 7650 SNA CLA /SKIP IF NOT CARRIAGE RETURN 168 010270 5761 JMP C8EXT2 /GO TO CARRIAGE RETURN EXIT 169 010271 1030 TAD C8TEMP /GET CHARACTER 170 010272 4771 JMS C8TYP /ECHO IT 171 010273 1030 TAD C8TEMP /GET CHARACTER 172 010274 1043 TAD C8M260 173 010275 7510 SPA /SKIP IF >= TO ASCII CODE FOR ZERO 174 010276 5316 JMP C8ERR /INVALID CHARACTER NOT OCTAL DIGIT 175 010277 1042 TAD C8M10 176 010300 7700 SMA CLA /SKIP IF <= ASCII CODE FOR SEVEN 177 010301 5316 JMP C8ERR /INVALID CHARACTER NOT OCTAL DIGIT 178 010302 7240 STA /AC=7777 179 010303 3767 DCA C8FLG /SET SWR CHANGE FLAG 180 010304 1030 TAD C8TEMP /GET CHARACTER 181 010305 0044 AND C8K7 /MASK TO 3 BITS 182 010306 3030 DCA C8TEMP /SAVE OCTAL DIGIT 183 010307 1770 TAD C8BLD /GET SWR BUILD AREA CONTENTS 184 010310 7106 CLL RTL 185 010311 7004 RAL /ROTATE TO BUILD SWR 186 010312 1030 TAD C8TEMP /ADD NEXT OCTAL DIGIT 187 010313 3770 DCA C8BLD /SAVE NEW SWR 188 010314 2036 ISZ C8CNTR /INCREMENT OCTAL DIGIT COUNTER 189 010315 5252 JMP C8SRLP /CONTINUE ACCEPTING OCTAL DIGITS 190 / 191 010316 7300 C8ERR, CLA CLL 192 010317 1050 TAD C8K277 /GET ASCII CODE FOR "?" 193 010320 4771 JMS C8TYP /PRINT "?" 194 010321 4772 JMS C8CRLF /DO A AND 195 010322 5216 JMP C8PSW /GO START OVER 196 / 197 / 198 010361 0541 PAGE 010362 0531 010363 0457 010364 0465 010365 7575 010366 0514 010367 0403 010370 0400 010371 0502 010372 0523 010373 0420 010374 0402 010375 0351 010376 0020 010377 0021 199 010400 0000 C8BLD, 0 /SWITCH REGISTER BUILD AREA 200 010401 0200 C8STRT, RSTART /ADDRESS OF START OF PROGRAM 201 010402 0000 C8RTN, 0 /STORAGE FOR RETURN ADDRESS 202 010403 0000 C8FLG, 0 /SWR CHANGE SWITCH 203 010404 0000 C8SFLG, 0 /CTRL/S ACTIVE FLAG 204 010405 0177 C8K177, 0177 /CONSTANT 205 010406 0200 C8K200, 0200 /CONSTANT 206 010407 0077 C8K77, 0077 /CONSTANT 207 010410 7740 C8M40, -40 /CONSTANT 208 010411 0100 C8K100, 0100 /CONSTANT 209 010412 0215 C8K215, 0215 /CONSTANT 210 010413 0212 C8K212, 0212 /CONSTANT 211 010414 0303 C8K303, 0303 /CONSTANT 212 010415 0307 C8K307, 0307 /CONSTANT 213 010416 0336 C8K336, 0336 /CONSTANT 214 010417 7600 C87600, 7600 /CONSTANT 215 / 216 / C O N T R O L C H A R A C T E R 217 / 218 / D E C O D E R O U T I N E 219 / 220 010420 1377 C8CNTL, TAD (-203 221 010421 7450 SNA /SKIP IF NOT CTRL/C 222 010422 5265 JMP C8CTLC /CTRL/C TYPED EXIT TO MONITOR 223 010423 1376 TAD (-4 224 010424 7450 SNA /SKIP IF NOT CTRL/G 225 010425 5257 JMP C8CTLG /CTRL/G TYPED GO PRINT "^G" 226 010426 1375 TAD (-12 227 010427 7450 SNA /SKIP IF NOT CTRL/Q 228 010430 5255 JMP C8CTLQ /CTRL/Q TYPED 229 010431 1374 TAD (-2 230 010432 7450 SNA /SKIP IF NOT CTRL/S 231 010433 5237 JMP C8CTLS /CTRL/S TYPED 232 010434 3035 DCA C8MODE /SET MESSAGE ACTIVE FLAG 233 010435 2204 ISZ C8SFLG /TEST CTRL/S ACTIVE FLAG 234 010436 5275 JMP C8ECHO /GO ECHO CHARACTER AND RETURN TO PROGRAM 235 / 236 /CTRL/S HANDLER 237 / 238 010437 7240 C8CTLS, STA /AC=7777 239 010440 3204 DCA C8SFLG /SET CTRL/S ACTIVE FLAG 240 010441 1035 TAD C8MODE /GET MESSAGE ACTIVE FLAG 241 010442 7650 SNA CLA /SKIP IF CTRL/S TYPED WHILE MESSAGE ACTIVE 242 010443 5342 JMP C8PFLD-1 /RETURN TO PROGRAM 243 / 244 010444 7240 C8WAIT, STA /AC=7777 245 010445 3204 DCA C8SFLG /SET CTRL/S ACTIVE FLAG 246 010446 4314 JMS C8TTY /WAIT FOR KEYBOARD INPUT 247 010447 1377 TAD (-203 248 010450 7450 SNA /SKIP IF NOT CTRL/C 249 010451 5265 JMP C8CTLC /CTRL/C TYPED EXIT TO MONITOR 250 010452 1373 TAD (-16 251 010453 7640 SZA CLA /SKIP IF CTRL/Q 252 010454 5244 JMP C8WAIT /NOT CTRL/C OR CTRL/Q CONTINUE WAITING 253 010455 3204 C8CTLQ, DCA C8SFLG /CLEAR CTRL/S ACTIVE FLAG 254 010456 5342 JMP C8PFLD-1 /RETURN TO MAIN PROGRAM 255 / 256 /CONTROL G HANDLER 257 / 258 010457 4323 C8CTLG, JMS C8CRLF /DO A AND 259 010460 1216 TAD C8K336 /GET ASCII CODE FOR UP ARROW 260 010461 4302 JMS C8TYP /PRINT UP ARROW 261 010462 1215 TAD C8K307 /GET ASCII CODE FOR "G" 262 010463 4302 JMS C8TYP /PRINT "G" 263 010464 5772 JMP C8PSW /GO TO "SR=XXXX" ROUTINE 264 / 265 /CONTROL C HANDLER 266 / 267 010465 3204 C8CTLC, DCA C8SFLG /CLEAR CTRL/S ACTIVE FLAG 268 010466 1216 TAD C8K336 /GET ASCII CODE FOR UP ARROW 269 010467 4302 JMS C8TYP /PRINT UP ARROW 270 010470 1214 TAD C8K303 /GET ASCII CODE FOR "C" 271 010471 4302 JMS C8TYP /PRINT "C" 272 010472 6203 CDF CIF /CHANGE TO IF AND DF ZERO 273 010473 6007 CAF 274 010474 5617 JMP I C87600 /RETURN TO MONITOR 275 / 276 010475 1031 C8ECHO, TAD C8CHAR /GET CHARACTER 277 010476 4302 JMS C8TYP /ECHO IT 278 010477 1050 TAD C8K277 /CODE FOR ? 279 010500 4302 JMS C8TYP /TYPE QUESTION MARK 280 010501 5342 JMP C8PFLD-1 /RETURN TO PROGRAM 281 / 282 / 283 / 284 / 285 /PRINT ONE CHARACTER 286 / 287 010502 0000 C8TYP, 0 288 010503 2204 ISZ C8SFLG /TEST CTRL/S ACTIVE FLAG 289 010504 7410 SKP /SKIP IF CTRL/S NOT ACTIVE 290 010505 5244 JMP C8WAIT /GO WAIT FOR CTRL/Q OR CTRL/C 291 010506 6046 TLS /TRANSMIT CHARACTER 292 010507 6041 TSF /TEST TTY FLAG 293 010510 5307 JMP .-1 /WAIT FOR TTY FLAG 294 010511 6042 TCF /CLEAR TTY FLAG 295 010512 7200 CLA /CLEAR AC DO NOT CLEAR LINK 296 010513 5702 JMP I C8TYP /RETURN 297 / 298 /WAIT FOR KEYBOARD INPUT THEN EXIT WITH ASCII CODE IN AC 299 / 300 010514 0000 C8TTY, 0 301 010515 6031 KSF /SKIP IF KEYBOARD FLAG SET 302 010516 5315 JMP .-1 /WAIT FOR KEYBOARD INPUT 303 010517 6036 KRB /READ KEYBOARD BUFFER CLEAR FLAG 304 010520 0205 AND C8K177 /MASK TO 7 BITS 305 010521 1206 TAD C8K200 /SET BIT 4 306 010522 5714 JMP I C8TTY /RETURN 307 / 308 /EXECUTE A CARRIAGE RETURN AND LINE FEED 309 / 310 010523 0000 C8CRLF, 0 311 010524 1212 TAD C8K215 /GET ASCII CODE FOR CARRIAGE RETURN 312 010525 4302 JMS C8TYP /GO EXECUTE THE CARRIAGE RETURN 313 010526 1213 C8RET2, TAD C8K212 /GET ASCII CODE FOR LINE FEED 314 010527 4302 JMS C8TYP /GO EXECUTE THE LINE FEED 315 010530 5723 JMP I C8CRLF /RETURN 316 / 317 /CONSOLE PACKAGE EXIT IF TERMINATED WITH LINE FEED 318 / 319 010531 4323 C8EXT1, JMS C8CRLF /DO A AND 320 010532 3031 DCA C8CHAR /CLEAR IT 321 010533 6203 CDF CIF 0 /MODIFIED TO PROGRAM FIELD 322 010534 2203 ISZ C8FLG /TEST SWR CHANGE FLAG 323 010535 5601 JMP I C8STRT /RESTART PROGRAM WITHOUT CHANGE OF SWR 324 010536 1200 TAD C8BLD /GET NEW SWITCH REGISTER 325 010537 3771 DCA I (20 /SAVE IT IN PROGRAM FIELD 326 010540 5601 JMP I C8STRT /RESTART PROGRAM WITH NEW PSEUDO SWR 327 / 328 /EXIT FROM CONSOLE PACKAGE IF TERMINATED WITH CARRIAGE RETURN 329 / 330 010541 4323 C8EXT2, JMS C8CRLF /DO A AND 331 010542 3031 DCA C8CHAR /CLEAR IT 332 010543 6203 C8PFLD, CDF CIF 0 /MODIFIED TO PROGRAM FIELD 333 010544 7300 CLA CLL /CLEAR AC AND LINK FOR RETURN 334 010545 2203 ISZ C8FLG /TEST SWR CHANGE FLAG 335 010546 5602 JMP I C8RTN /RETURN TO PROGRAM WITHOUT CHANGE OF SWR 336 010547 1200 TAD C8BLD /GET NEW SWITCH REGISTER 337 010550 3771 DCA I (20 /SAVE IT IN PROGRAM FIELD 338 010551 5602 JMP I C8RTN /RETURN TO PROGRAM 339 / 340 / 341 / 342 010571 0020 PAGE 010572 0216 010573 7762 010574 7776 010575 7766 010576 7774 010577 7575 343 /********************************************************************* 344 /C8PASS 345 /THIS IS CALLED AT THE END OF EACH PROGRAM COMPLETION 346 /THE VALUE OF **CNTVAL** WILL BE DETERMINED BY THE TIME IT TAKES 347 /THE PROGRAM TO COMPLEATE THIS MANY C8PASS TO BE IN THE 1 TO 4 MINUTE 348 /RANGE 349 / C8PASS=JMS XC8PAS 350 /EX. C8PASS 351 / HLT /HALT IF NON CONSOL PACKAGE 352 / JMP START1 /CONTINUE RUNNING THIS PROGRAM 353 /RETURN TO LOCATION CALL PLUS ONE WITH THE AC=0 IF NON CONSOL PACKAGE AND HLT 354 /IF CONTINUE TO RUN THEN RETURN TO CALL PLUS 2 AC=0 355 356 010600 0000 XC8PAS, 0 357 010601 6211 CDF 10 /CHANGE DATA FIELD TO CONSOLE PACKAGE 358 010602 4777 JMS C8CK22 /CHECK IF CONSOL IS ACTIVE 359 010603 5211 JMP DOPACK /IS CLASSIC 360 010604 4273 JMS XC8SW /CHECK SR SETTING 361 010605 0376 AND (400 /FOR HALT ON END OF C8PASS 362 010606 7640 SZA CLA /1= HALT 0 CONTINUE 363 010607 4461 HLT 364 010610 5240 JMP C8BY1 /CONTINUE ON RUNNING PROGRAM 365 010611 4242 DOPACK, JMS CKCOUT /CLASS CHECK C8PASS COUNT 366 010612 5240 JMP C8BY1 /C8PASS COUNT NOT DONE REDO PROGRAM 367 010613 2261 ISZ PASCNT /C8PASS COUNT DONE SET C8PASS COUNT 368 /#2 369 010614 4775 JMS C8CRLF 370 /#2 371 010615 4774 JMS XC8PNT /C8PRNT BUFFER 372 010616 0664 MESPAS / 373 010617 1261 TAD PASCNT /GET NUMBER 374 010620 4773 JMS XC8OCT /CONVERT IT TO ASCII 375 010621 6201 CDF 0 376 010622 1657 TAD I XMX /GET THE CHAR TO PRINT 377 010623 6211 CDF 10 378 010624 3242 DCA CKCOUT /STORE FOR PRINTING 379 010625 4774 JMS XC8PNT /PRINT IT 380 010626 0642 CKCOUT 381 010627 4775 JMS C8CRLF /DO A CARRIAGE RETURN 382 010630 4273 JMS XC8SW /CHECK A HALT AT THE END OF C8PASS 383 010631 0376 AND (400 /MASK BIT 384 010632 7650 SNA CLA /HALT =1 NO SKIOP CONTINUE =0 385 010633 5240 JMP C8BY1 /NO HALT 386 010634 1200 TAD XC8PAS /GET RETURN ADDRESS 387 010635 3772 DCA C8ENTR /PLACE IT AT THE START OF CONSOLE PACKAGE 388 010636 6201 CDF 0 389 010637 5771 JMP C8ENTR+1 /GO TO CONSOLE PACKAGE TO PRINT PSR 390 010640 6203 C8BY1, CDF CIF 0 391 010641 5600 JMP I XC8PAS 392 010642 0000 CKCOUT, 0 393 010643 1262 TAD DOSET /CHECK IF SET UP NEEDED 394 010644 7640 SZA CLA /0=SET UP C8PASS COUNT VALUE 395 010645 5252 JMP NOSET /1=C8PASS VALUE OK 396 010646 1263 TAD CNTVAL /GET COUNT VALUE FOR THIS PROG 397 010647 7040 CMA /SET TO NEGATIVE 398 010650 3260 DCA DOCNT /STORE IN HERE 399 010651 2262 ISZ DOSET /INDICATE VALUE SET UP 400 /#2 401 010652 2260 NOSET, ISZ DOCNT /COUNT THE NUMBER OF PASSES 402 /#2 403 010653 5240 JMP C8BY1 /EXIT FOR ANOTHER PASS 404 010654 3262 DCA DOSET /SET TO C8PRNT C8PASS 405 010655 2242 ISZ CKCOUT /BUMP RETURN FOR 406 010656 5642 JMP I CKCOUT /C8PASS C8TYPE OUT 407 010657 0522 XMX, MX /LOCATION OF CHAR TO PRINT AT PASS FROM FLD 0 408 010660 0000 DOCNT, 0 409 010661 0000 PASCNT, 0 / 410 010662 0000 DOSET, 0 411 010663 0000 CNTVAL, 0 412 010664 0411 MESPAS, TEXT "DIRXA-D PASS " 010665 2230 010666 0155 010667 0440 010670 2001 010671 2323 010672 4000 413 414 415 /********************************************************************* 416 /C8CKSW 417 /ROUTINE THAT WILL CHECK WHERE TO READ THE 418 /C8 SWITCHES FROM IE. FROM PANEL OR PSEUDO C8SWIT REGISTER 419 / 420 /RETURN WITH AC = TO CONTENTS OF SWITCH REGISTER 421 422 423 010673 0000 XC8SW, 0 424 010674 7200 CLA /CLEA AC 425 010675 6201 CDF 00 426 010676 1770 TAD I (21 /GET WD FOR INDICATOR 427 010677 6211 CDF 10 428 010700 7710 SPA CLA /CHECK IF FROM PANEL 4000 429 010701 7614 SKP CLA OSR /DO LAS AND SKIP GET FROM PANEL WITH LAB 430 010702 5304 JMP C8GET1 /GET CONTENTS OF LOC 20 FLD 00 431 010703 5307 JMP C8EXTB /EXIT COMMON 432 010704 6201 C8GET1, CDF 0 433 010705 1767 TAD I (20 /PSEUDO SW 434 010706 6211 CDF 10 435 010707 5673 C8EXTB, JMP I XC8SW /EXIT WITH STATUS BIT IN AC. 436 437 438 010767 0020 PAGE 010770 0021 010771 0201 010772 0200 010773 1035 010774 1000 010775 0523 010776 0400 010777 1060 439 440 /********************************************************************* 441 442 /C8PRNT 443 444 /THIS ROUTINE WILL TYPE THE CONTENTS OF THE C8 PRINT BUFFER. THE LOCATION 445 /OF THE BUFFER WILL BE IN THE ADDRESS FOLLOWING THE COALL. C8 PRINTING OF THE BUFFER 446 /WILL STOP WHEN A 00 CHAR IS DETECTED. CHARACTERS ARE PACKED 2 PER WORD. 447 448 / C8PRNT=JMS XC8PNT 449 450 /EX. C8PRNT /C8PRNT THE CONTENTS OF THE FOLLOWING BUFFER 451 / MESS77 /LOCATION OF C8PRNT BUFFER 452 /C8PRNT WILL USE THE LOCATION FOLLOWING THE CALL AS THE POINTER FOR THE 453 /C8PRNT ROUTINE. RETURN TO CALL PLUS TWO WITH AC=0 454 /********************************************************************* 455 011000 0000 XC8PNT, 0 456 011001 7300 CLA CLL 457 011002 1600 TAD I XC8PNT /GET C8PRNT BUFFERS STARTING LOCATION 458 011003 3233 DCA PTSTOR /STORE IN STSTOR 459 011004 2200 ISZ XC8PNT /BUMP RETURN 460 011005 1633 C8DO1, TAD I PTSTOR /GET DATA WORD 461 011006 0377 AND (7700 /MASK FOR LEFT BYTE 462 011007 7450 SNA /CHECK IF 00 TERMINATE 463 011010 5600 JMP I XC8PNT /EXIT 464 011011 7500 SMA /IS AC MINUS 465 011012 7020 CML /MAKE CHAR A 300 AFTER ROTATE 466 011013 7001 IAC /MAKE CHAR A 200 AFTER ROTATE 467 011014 7012 RTR 468 011015 7012 RTR 469 011016 7012 RTR /PUT CHAR IN BITS 4-11 MAKE IT 8 BIT ASCII 470 011017 4776 JMS C8TYP /C8PRNT IT ON CONSOLE 471 011020 1633 TAD I PTSTOR /GET DATA WORD 472 011021 0375 AND (0077 /MASK FOR RIGHT BYTE 473 011022 7450 SNA /CHECK IF 00 TERMINATOR 474 011023 5600 JMP I XC8PNT //EXIT 475 011024 1374 TAD (3740 /ADD FUDGE FACTOR TO DETERMINE IF 200 476 011025 7500 SMA /OR 300 IS TO BE ADD TO CHAR 477 011026 1373 TAD (100 /ADD 100 478 011027 1372 TAD (240 /ADD 200 479 011030 4776 JMS C8TYP /C8TYPE ONLY BITS 4-11 480 011031 2233 ISZ PTSTOR /BUMP POINTER FOR NEXT WORD 481 011032 5205 JMP C8DO1 /DO AGAIN 482 011033 0000 PTSTOR, 0 /STOR FOR C8PRNT BUFFER 483 011034 0000 STOPNT, 0 /0000 C8PRNT 7777=DO NOT C8PRNT 484 485 486 487 488 /********************************************************************* 489 490 /********************************************************************* 491 /C8OCTA 492 /OCTAL TO ASCII CONVERSION 493 /THIS ROUTINE WILL TAKE THE OCTAL NUMBER IN THE AC AND CONVERT IT TO ASCII 494 /THE RESULT WILL BE PRINTED ON THE CONSOL DISPLAY 495 / C8OCTA=JMS XC8OCT 496 / 497 /EX. C8OCTA /AC CONTAINS NUMBER TO BE CHANGE 498 / 499 011035 0000 XC8OCT, 0 500 011036 7106 CLL RTL 501 011037 7006 RTL /POSITON THE FIRST CHAR FOR PRINTING 502 011040 3256 DCA C8TMP1 /SAVE CORREC POSITIONED WORD HERE 503 011041 1371 TAD (-4 504 011042 3257 DCA C8CKP /STORE COUNTER IN HERE 505 011043 1256 C8DO4, TAD C8TMP1 /GET FIRST NUMBER 506 011044 0370 AND (0007 /MASK 507 011045 1367 TAD (260 /ADD THE PRINT CONSTANT 508 011046 4776 JMS C8TYP /TYPE THE NUMBER 509 011047 1256 TAD C8TMP1 / 510 011050 7006 RTL 511 011051 7004 RAL /PUT THE NEXT NUMBER IN POSITION 512 011052 3256 DCA C8TMP1 /STORE IT 513 011053 2257 ISZ C8CKP /DONE YET WITH FOUR NUMBERS 514 011054 5243 JMP C8DO4 /NOT YET DO MORE 515 011055 5635 JMP I XC8OCT /DONE WITH FOUR 516 011056 0000 C8TMP1, 0 517 011057 0000 C8CKP, 0 518 519 /********************************************************************* 520 521 /********************************************************************* 522 /CHECK LOCATION 22 FIELD 0 523 524 525 011060 0000 C8CK22, 0 526 011061 7200 CLA 527 011062 6201 CDF 0 528 011063 1766 TAD I (22 /GET LOC 22 FIELD 0 529 011064 6211 CDF 10 530 011065 0365 AND (400 531 011066 7650 SNA CLA 532 011067 2260 ISZ C8CK22 533 011070 5660 JMP I C8CK22 /EXIT 534 535 536 537 538 539 / 540 011165 0400 FIELD 0 011166 0022 011167 0260 011170 0007 011171 7774 011172 0240 011173 0100 011174 3740 011175 0077 011176 0502 011177 7700 541 542 543 544 545 / RX8/RX01 DIAGNOSTIC - MAINDEC-08-DIRXA-D 546 / 547 /STARTING ADDRESS 200 - (AC) = STARTUP SWITCHES 548 / 549 /STARTING ADDRESS 201 - RESTART (PARAMETERS ALREADY SELECTED AT START 200) 550 / 551 /STARTING ADDRESS 202 - CHANGE DEVICE CODES. 552 / 553 /START-UP AC SWITCH DEFINITIONS (WHEN THE STARTING ADDRESS IS 200) 554 / 555 / AC 0 1 2 3 4 5 6 7 8 9 10 11 556 / U U U/C X X X U T T T T T 557 / 558 / X=DEVICE CODE (0 DEFAULTS TO 75) 559 / T=TESTS (0 FOR ALL TESTS) 560 / C=RX01 MICROCONTROL CABLED TO RX8 INTERFACE 561 / U=UNIT/DRIVES SELECTED FOR TEST 562 / WHERE: UNIT DRIVE(S) 563 / 0000 = A 0,1 564 / 1000 = B 0,1 565 / 2000 = A 0 566 / 3000 = B 0 567 / 4000 = A 1 568 / 5000 = B 1 569 / 6000 = TEST CONTROL AND INTERFACE ONLY (NO DRIVES) 570 / 7000 = TEST INTERFACE ONLY (NO CONTROL OR DRIVES) 571 / VT78 0040 = TEST UNITS A & B (ALL DRIVES) 572 / 4040 = DRIVES 1 BOTH UNITS 573 / 2040 = DRIVES 0 BOTH UNITS 574 / 575 /THE PRETEST IS NOT SWITCH SELECTABLE - THIS PRETEST IS ALWAYS 576 /EXECUTED PRIOR TO THE FIRST TTTTT SELECTION 577 / 578 /PRETEST = VERIFICATION OF INI (KEY) 579 / 580 / (PRETEST) IB = INIT PART I (KEY) / FLAG DETECTION PART I 581 / 582 /INTERFACE / CONTROL TESTS 583 / 584 /NOTE: * THE KEYBOARD IS " ALIVE " DURING TESTS 6, 7, 10, AND 11, AND 12 585 /IF A CHARACTER IS STRUCK AN ERROR MAY OCCUR 586 / 587 / TTTTT 588 / 589 / 0 I - FLAG DETECTION PART II / " C " LINES PART I 590 / 1 IB - DIRECTION OF IOT XDR PART I / IOT DECODING PART I 591 / - " C " LINES PART II 592 / 2 IB - FLAG DETECTION PART II / " C " LINES PART III 593 / 3 IB - IOT DEVICE CODE VERIFICATION 594 / 4 IB - DIRECTION OF IOT XDR PART II / " C " LINES PART IV 595 / 5 I - IOT DECODING PART II 596 / * 6 IB/I - INTERRUPT TESTING PART I / IOT DECODING PART III 597 / * 7 IB - INTERRUPT TESTING PART II 598 / * 10 IB - INTERRUPT TESTING PART III 599 / * 11 I - INTERRUPT TESTING PART IV 600 / * 12 IB/I - IOT DECODING PART II 601 /RX01 CONTROL TESTS 602 / 603 / 13 C - FILL BUFFER 12-BIT MODE 604 / 14 C - EMPTY BUFFER 12-BIT MODE 605 / 15 C - VERIFICATION OF PREVIOUS TEST 606 / 16 C - FILL BUFFER 8-BIT MODE 607 / 17 C - EMPTY BUFFER 8-BIT MODE 608 / 20 C - VERIFICATION OF PREVIOUS TEST 609 / 21 C - FILL BUFFER 8-BIT MODE (ALL 0'S) 610 / 22 C - FILL BUFFER 8-BIT MODE (ALL 1'S) 611 / 612 /DISKETTE DRIVE TESTS 613 / 614 / 23 D - STATUS BIT "DRIVE READY" 615 / 24 D - B-CODE VERIFICATION (70) PART I 616 / 25 D - B-CODE VERIFICATION (70) PART II 617 / 26 D - B-CODE VERIFICATION (70) PART III 618 / 27 D - B-CODE VERIFICATION (70) PART IV 619 / 30 D - SEEK AND CRC VERIFICATION 620 / 31 D - WRITE TEST 621 / 32 D - INIT PART III [PROGRAMMED] IMPLIED READ TRACK 1 SECTOR 1 622 / 33 D - READ TEST 623 / 34 D - WRITE-READ-PROGRAM VERIFY 12 BIT MODE 624 / 35 D - WRITE-READ-PROGRAM VERIFY 8 BIT MODE 625 / 36 D - WRITE-READ-PROGRAM VERIFY 12 BIT MODE WITH DELETED DATA 626 / 37 D - WRITE-READ-PROGRAM VERIFY 8 BIT MODE WITH DELETED DATA 627 / 628 / I - MEANS RX8 INTERFACE TEST 629 / B - MEANS RX01 MAY BE CABLED TO RX8 630 / C - MEANS AN RX01 MUST BE CABLED TO THE RX8 631 / D - MEANS A DRIVE MUST BE READY 632 / 633 /OPERATIONAL AC SWITCH DEFINITIONS 634 / 635 / AC 0 - (1) CONTINUE ON DETECTION OF ERROR 636 / AC 1 - (1) LOCK SCOPE LOOP ON ERROR 637 / AC 2 - (1) LOCK SCOPE LOOP ON TEST 638 / AC 3 - (1) HALT AT END OF PASS 639 / AC 4 - (1) DON'T PRINT AN ERROR MESSAGE 640 / AC 5 - (1) LONG DATA COMPARISON ERROR PRINTOUT 641 / AC 6 - (1) DISABLE THE ISSUING OF (INIT) 642 / AC 7 - (1) HALT AT END OF A TEST 643 / AC 8 - 644 / AC 9 - 645 / AC 10- 646 / AC 11- (1) DISABLE RINGING OF BELL AT ARROR 647 /THE FOLLOWING MAP IS A SUMMARY OF ALL ERRORS. 648 / 649 / 650 / ERA TEST BLANK EAC GOOD COMMENT: 651 / 652 / 653 000200 0412 E0PRE / PRETEST - - - UNEXPECTED TRANSFER REQUEST FLAG 654 000201 0415 E2PRE / - - - UNEXPECTED ERROR FLAG 655 000202 0425 E3PRE / - - - MISSING DONE FLAG 656 000203 0445 E1PRE / STATUS STATUS 657 / FROM MINUS 4, STATUS NOT = INIT DONE, OR 658 / TR DEL 204 DRIVE READY + INIT DONE 659 / DATA 660 000204 0450 E4PRE / - - - UNEXPECTED DONE FLAG 661 / 662 / 663 000205 0607 E0 / T0 - X 0 IOT 67X1 DIDN'T CLEAR AC 664 000206 0613 E1 / - - - UNEXPECTED TRANSFER REQUEST FLAG 665 000207 0617 E2 / - - - UNEXPECTED ERROR FLAG 666 000210 0623 E3 / - - - UNEXPECTED DONE FLAG 667 / 668 / 669 000211 0632 E11 / T1 - X 0 IOT 67X1 FAILED TO CLEAR AC 670 000212 0647 E10 / - X 200 TR NOT = 200 (DRIVE READY) 671 / 672 / 673 000213 0655 E20 / T2 - - - MISSING DONE FLAG 674 000214 0660 E21 / - - - MISSING TR FLAG 675 000215 0663 E22 / - - - MISSING ERROR FLAG 676 000216 0666 E23 / - - - MISSING DONE FLAG 677 000217 0671 E24 / - - - MISSING TR FLAG 678 000220 0674 E25 / - - - MISSING ERROR FLAG 679 000221 0704 E26 / - X 7777 IOT 67X6 CLEARED AC 680 000222 0712 E27 / - X 7777 IOT 67X3 CLEARED AC 681 000223 0720 E28 / - X 7777 IOT 67X4 CLEARED AC 682 / 683 / 684 / 685 000224 0744 E30 / T3 - X 67X5 (EAC) = ILLEGAL DEVICE CODE 686 / 687 / 688 / 689 000225 1021 E42 / T4 7776 X 200 IOT 67X1 CLEARED AC 690 / 691 / 692 000226 1102 E56 / T5 - X 0 (TR) NOT = 0 693 000227 1105 E50 / - - - MISSING DONE FLAG 694 000230 1111 E53 / - - - UNEXPECTED DONE FLAG 695 000231 1114 E51 / - - - MISSING TR FLAG 696 000232 1120 E54 / - - - UNEXPECTED TR FLAG 697 000233 1123 E52 / - - - MISSING ERROR FLAG 698 000234 1127 E55 / - - - UNEXPECTED ERROR FLAG 699 / 700 / 701 / 702 000235 1142 E60 / T6 - - - UNEXPECTED RX01 FLAG 703 000236 1154 E61 / - - - MISSING DONE FLAG 704 000237 1157 E62 / - - - MISSING TR FLAG 705 000240 1162 E63 / - - - MISSING ERROR FLAG 706 / 707 / 708 / 709 000241 1212 E70 / T7 - - - MISSING RX01 IRQ 710 / 711 / 712 / 713 000242 1226 E100 / T10 - - - UNEXPECTED RX01 IRQ 714 / 715 / 716 / 717 000243 1252 E110 / T11 - - - UNEXPECTED RX01 IRQ 718 / 719 / 720 / 721 000244 1276 E124 / T12 - - - UNEXPECTED RX01 IRQ 722 000245 1311 E120 / - - - UNEXPECTED DONE FLAG 723 000246 1315 E121 / - - - UNEXPECTED TR FLAG 724 000247 1321 E122 / - - - UNEXPECTED ERROR FLAG 725 000250 1326 E123 / - X 0 (TR) NOT = 0 726 000251 1412 EA120 / ALT 12 - - - UNEXPECTED TR FLAG 727 000252 1416 EA121 / - - - UNEXPECTED DONE FLAG 728 000253 1440 EA122 / ACTUAL ACTUAL 4 OR 729 / STATUS MINUS 204 STATUS NOT = 4, OR 204 730 / DEL DAT 731 000254 1451 EA123 / - X 0 THE B-CODE NOT = 0 732 /THE " XRSTB " SUBROUTINE WHICH READS THE B-CODE STATUS BY ISSUING 733 /COMMAND # 7 IS ENTERED FROM TESTS: *** ALT12, (T24, T25, T26), AND T27 734 / 735 /THE CONTENTS OF " BLANK " = THE COTENTS OF GOOD FROM TEST: ALT12 736 / 737 000255 2405 E7000 / 4/204 - - UNEXPECTED TR FLAG 738 000256 2416 E7001 / 4/204 STATUS - UNEXPECTED ERROR FLAG 739 000257 2432 E7002 / 4/204 X 7000 SHIFT REGISTER NOT SHIFTING 740 / 741 / 742 / 743 /THE " XRST " SUBROUTINE TO READ THE STATU REGISTER BY ISSUING COMMAND # 5 744 /IS ENTERED FROM TESTS: *** ALT12, AND T23 745 / 746 000260 2446 E7003 / 4/204 - - UNEXPECTED TR FLAG 747 000261 2457 E7004 / 4/204 STATUS - UNEXPECTED ERROR FLAG 748 000262 2473 E7006 / 4/204 X 5000 SHIFT REGISTER NOT SHIFTING 749 000263 2511 E7005 / 4/204 X 0/200 750 / 751 / 752 / 753 /SUBROUTINE " FBEB " TO FILL AND EMPTY THE BUFFER IS ENTERED FROM TESTS: 754 / T13, T16 (FILL THE BUFFER) / T14, T17 (EMPTY THE BUFFER) 755 / 756 000264 1513 E130 / COMMAND - - UNEXPECTED ERROR FLAG 757 000265 1526 E131 / COMMAND ACTUAL EXPECT # OF TR FLAGS NOT ON 758 / (EAC) = # OF FLAGS 759 / NEG. # MEANS NOT ENOUGH 760 / > 0 MEANS TOO MANY 761 / 762 / 763 / 764 /ERROR # 140 MAY OCCUR WITHIN TESTS T14, T17, T15, AND T20 765 / 766 /THE CONTENTS OF " BLANK " IS EQUIVALENT TO THE WORD/BYTE COUNT AT THE ERROR 767 / 768 /THE CONTENTS OF THE " EAC " IS EQUIVALENT TO THE ACTUAL DATA FROM THE SECTOR 769 /BUFFER (8 OR 12-BIT MODE) 770 / 771 000266 1661 E140 / * # ACTUAL EXPECT DATA COMPARISON ERROR 772 / " FB128BYTES " IS A SUBROUTINE WHICH FILLS THE SECTOR BUFFER WITH 128 BYTES 773 /OF DATA (ALL 1'S OR ALL 0'S) AND IS ENTERED FROM TESTS T21, AND T22 774 / 775 000267 4557 E210 / * - - - UNEXPECTED ERROR FLAG 776 / 777 / 778 /SUBROUTINE " TX " EMPTIES THE SECTOR BUFFER AND COMPARES THE DATA TO AN 779 /EXPECTED PATTERN 780 / 781 /THIS SUBROUTINE IS ENTERED FROM TESTS: *** T21, T22, (T24, T25, T26), AND T27 782 / 783 000270 2320 E211 / # ACTUAL EXPECT DATA COMPARISON ERROR 784 000271 2332 E212 / - - - UNEXPECTED ERROR FLAG 785 / 786 / 787 / 788 /ERRORS E240, E245, E241, AND E242 MAY OCCUR WITHIN TESTS: T24, T25, T26 789 / 790 / 791 / 792 000272 2030 E240 / * CMND X 2 # OF TR FLAGS NOT OK 793 000273 2033 E245 / CMND - - MISSING ERROR FLAG 794 000274 2070 E241 / ACTUAL X T24/200,300 795 / T25/200 796 / T26/300 797 000275 2101 E242 / - X 70 B-CODE NOT = 70 798 / 799 / 800 / 801 000276 2135 E270 / T27 115 # OF 2 # OF TR FLAGS NOT OK 802 / XFERS 803 000277 2140 E271 / - - - MISSING ERROR FLAG 804 000300 2151 E272 / - X 40 B-CODE NOT = 40 805 *0 806 000000 0303 303 / C IS THE REVISION 807 *1 808 000001 5402 JMP I IPI 809 / 810 /PROGRAM LOCATION 2 CONTAINTS THE INTERRUPT RETURN ADDRESS 811 / 812 /PROGRAM LOCATION 2 IS MODIFIED WITHIN CERTAIN TESTS 813 / 814 000002 5417 IPI, PI 815 / 816 / 817 /AUTO INDEX REGISTER DEFINITION. 818 / 819 *10 820 000010 0000 A10, 0 821 000011 0000 A11, 0 822 000012 0000 A12, 0 823 000013 0000 A13, 0 /TEST Q 824 *20 825 / 826 /THE FOLLOWING PROGRAM LOCATIONS (20, 21, AND 22, 23) ARE RESERVED FOR ACT8/A 827 / 828 000020 0000 0000 /SET FOR DRIVES 0 AND 1 DEVICE CODE 75 829 000021 0000 0000 /0000=PSEUDO SWITCH REGISTER IF ON ACTIVE CONSOLE 830 /0000=VT78 831 /4000=USE HARDWARE SWITCH REGISTER 832 833 834 000022 0400 0400 /0000=NOT ACTIVE CONSOLE PACKAGE 835 /0400= ACTIVE CONSOLE PACKAGE 836 /1400= VT78 837 *24 838 839 /******************************************************************* 840 841 /THE FOLLOWING CALLS ARE USED FOR THE CONSOLE PACKAGE 842 843 CHECKC8= JMS I . 844 000024 4516 XCHECK /USED TO CHECK IF THE CONSOLE IS ACTIVE 845 XC8ENTR= JMS I . 846 000025 0200 C8ENTR 847 C8PASS= JMS I . 848 000026 0600 XC8PASS /END OF PASS FOR CONSOL 849 850 RSTART=200 /RESTART ADDRESS FOR CONSOLE PACKAGE 851 /********************************************************************* 852 853 / 854 /THE FOLLOWING PROGRAM LOCATIONS "OD", "ID", "FIRST", AND "LAST" MAY BE 855 /CHANGED BY THE OPERATOR MANUALLY HOWEVER FOLLOWING THESE RESTRICTIONS. 856 / 857 / 1. THE CONTENTS OF " OD " (MIN VAL 0) MUST BE <= THE 858 / CONTENTS OF " ID " (MAX VALUE 114). 859 / 860 / 2. THE CONTENTS OF " FIRST " (MIN VAL 1) MUST BE <= THE 861 / CONTENTS OF " LAST " (MAX VALUE 32) 862 / 863 /THE PROGRAM INITIALLY SETS THESE VALUES AT PROGRAM LOAD TIME 864 / 865 / (OD) = 52, AND (ID) = 53 866 / 867 /BECAUSE TRACK 53 IS THE TRACK AT WHICH THE RX01 MICROCONTROLLER WILL 868 /DECREASE THE WRITE CURRENT IN HALF 869 / 870 000027 0001 OD, 1 /OUTSIDE DIAMETER (MIN VALUE 0) 871 000030 0114 ID, 114 /INSIDE DIAMETER (MAX VALUE 114) 872 000031 0001 FIRST, 1 /FIRST SECTOR TO ACCESS (MIN VAL 1) 873 000032 0032 LAST, 32 /LAST SECTOR TO ACCESS (MAX VAL 32) 874 / 875 /PDP-8/E AUGMENTED INSTRUCTIONS 876 / 877 BSW= JMS I . 878 000033 2600 XBSW /BYTE SWAP 879 ION=6001 880 IOF=6002 881 LAS=CKSWIT 882 MQA=7501 / "OR" (MQ) WITH (AC) 883 MQL=7421 / MQ=AC (THEN CLEAR AC) 884 / 885 /DISKETTE IOT SUBROUTINES 886 / 887 TY8OCT=JMS I . 888 000034 5200 XTY8OCT /TYPE EIGHT OCTAL DIGITS 889 SEL=JMS I . 890 000035 6200 XSEL 891 LCD=JMS I . 892 000036 6203 XLCD 893 LCDA=JMS I . 894 000037 6210 XLCDA 895 LCDB=JMS I . 896 000040 6235 XLCDB 897 XDRIN=JMS I . 898 000041 6400 XXDRIN 899 XDROUT=JMS I . 900 000042 6403 XXDROUT 901 STR=JMS I . 902 000043 6407 XSTR 903 SER=JMS I . 904 000044 6414 XSER 905 SDN=JMS I . 906 000045 6421 XSDN 907 INTR=JMS I . 908 000046 6426 XINTR 909 INIT=JMS I . 910 000047 6434 XINIT 911 INITB=JMS I . 912 000050 6450 XINITB 913 CKUNIT=JMS I . 914 000051 2335 XCKUNT 915 /OPERATING SYSTEM SUBROUTINES 916 / 917 ERROR=JMS I . 918 000052 2625 XERROR 919 EXIT=JMP I . 920 000053 0452 MORETESTS /EXIT FROM A TEST (IF RX8 ONLY) 921 DONE=JMS I . 922 000054 4243 XDONE /FORM: "DONE; NO; YES" 923 GETAPATTERN=JMS I . 924 000055 3035 XGETAPATTERN 925 GETASECTOR=JMS I . 926 000056 4607 XGETASECTOR 927 GETATRACK=JMS I . 928 000057 4261 XGETATRACK /GET A TRACK FOR IOT LCD=8 (TRACK #) 929 GETUNIT=JMS I . 930 000060 4200 XGETUNIT /SELECT A DISKETTE DRIVE 931 HLT=HALT 932 HALT=JMS I . 933 000061 4121 XHALT 934 INITSECTORS=JMS I . 935 000062 4600 XINITSECTORS 936 INITTRACKS=JMS I . 937 000063 4250 XINITTRACKS 938 LOCKUP=JMS I . 939 000064 2545 XLOCKUP 940 NOTEST=EXIT 941 OK=JMS I . 942 000065 6123 XOK /SKIP IF NOT ON APT. 943 TICK=JMS I . 944 000066 4133 XTICK 945 AERROR=JMS I . 946 000067 4346 XAERRO 947 APT8=JMS I . 948 000070 1545 XAPT8 949 WAIT=JMS I . 950 000071 1722 XWAIT 951 CHEK22=JMS I . 952 000072 5144 XCHK22 /CHECK FOR APT SYSTEM. 953 PRINT=JMS I . 954 000073 5244 XPRINT /PRINT A MESSAGE; FORM: "PRINT; MESSAGE" 955 READ=JMS I . 956 000074 3416 XREAD 957 READCOMPARE=JMS I . 958 000075 3412 XREADCOMPARE 959 RST=JMS I . 960 000076 2441 XRST /STATUS AFTER "RST" COMMAND (12) / 5 TIMES 2 961 RSTB=JMS I . 962 000077 2400 XRSTB /STATUS AFTER READ B-CODES COMMAND (16) 7 X 2 963 SETUP=JMS I . 964 000100 4103 XSETUP 965 SPECIALTYPEIT=JMS I . 966 000101 5352 XSPECIALTYPE 967 SCOPE=JMS I . 968 000102 1333 XSCOPE 969 SUBSCOPE=JMS I . 970 000103 1344 XSSCOP 971 TAB=JMS I . 972 000104 5215 XTAB /FORM: " TAB; N " 973 TY4OCT=JMS I . 974 000105 5000 XTY4OCT /TYPE (4) OCTAL; FORM: " TY4OCT; OCTAL " 975 TYPEIT=JMS I . 976 000106 5305 XTYPEIT /TYPE 1 8 BIT ASCII, AC =ASCII. 977 WAITTY=JMS I . 978 000107 5412 XWAITTY 979 WRITE=JMS I . 980 000110 3200 XWRITE 981 / 982 /ACCUMULATOR SWITCH REGISTER DEFINITIONS 983 / 984 SW0=4000 985 SW1=2000 986 SW2=1000 987 SW3=400 988 SW4=200 989 SW5=100 990 SW6=40 991 SW7=20 992 SW8=10 993 SW9=4 994 SW10=2 995 SW11=1 996 /OPERATING SYSTEM ALLOCATED STORAGE REFERENCES 997 / 998 000111 0000 BUSY, 0 / = 1 - PROCESSING AN RX01 PROGRAM INTERRUPT 999 000112 0000 COMMAND, 0 /DISKETTE COMMAND; (AC) AT LCD 1000 000113 0000 COMPRERROR, 0 /PROGRAM DATA COMPARE ERRORS 1001 000114 0000 DTESTP, 0 /DIAGNOSTIC TEST PARAMETERS (SELECTED AT D/S) 1002 000115 7777 FIRSTERROR, 7777 / (7777) IF 1ST ERROR; (0) IF NOT 1003 000116 0000 HANGER, 0 /COUNTER TO DETECT DEVICE TEST HUNG 1004 000117 7777 K7777, -1 / 1005 000120 0000 RDC, 0 / = 0 IF A RDC TEST, = 7777 IF NOT 1006 000121 7765 KRETRY, -13 / 1 ORIGINAL TRY + 10 RETRIES 1007 000122 7746 SECTORS, -32 /NEGATIVE # OF SECTORS PER TRACK (1-32 OCTAL) 1008 000123 0000 SSTART, 0 /SECTOR LAS ACCESSED ( 0 = "NONE" ) 1009 000124 0000 STARGET, 0 /TARGET SECTOR OF (UNITX) 1010 000125 0000 START, 0 /TRACK LAST ACCESSED 1011 000126 0000 ASTATUS, 0 /DISKETTE STATUS AT ERROR OR DONE 1012 000127 0000 BSTATUS, 0 /RX01 DEFINITIVE ERROR CODE REGISTER 1013 000130 0000 CSTATUS, 0 /STATUS FROM THE "READ STATUS" COMMAND 1014 000131 0000 TARGET, 0 /TARGET TRACK OF (UNITX) 1015 000132 0000 TESTP, 0 /TEST PARAMETERS (DYNAMIC BY PROGRAM) 1016 000133 0000 XA10, 0 1017 000134 0000 XA11, 0 1018 000135 0000 UNITCK, 0 /VT78/AC11 (0)=RXA (1)=RXB 1019 000136 7677 MASK, 7677 /VT78/ 7677 FOR STANDARD 8 =277 FOR VT78 1020 / 1021 /PROGRAM LOCATION XXX IS A TEMPORARY STORAGE REGISTER FOR DATA 1022 /OR ADDRESSES OF DATA WHICH ARE CALLED WITHIN SUBROUTINES WHICH 1023 /DO NOT CALL SUBROUTINES WHICH CALL THESE STORAGE REGISTERS 1024 / 1025 /XXX IS CALLED WITHIN THE FOLLOWING SUBROUTINES 1026 / 1027 /D,D/RX-ERROR (2) 1028 /COMPARE (2) 1029 /XGETPATTERN (6) 1030 /RDORWR (2) 1031 / 1032 000137 0000 XXX, 0 1033 / 1034 000140 7765 R1RETRY, -13 /WERRORS /PARITY ERROR RECOVERY 1035 000141 7765 R2RETRY, -13 /RERRORS /PARITY ERROR RECOVERY 1036 000142 0000 DWSLOG, 0 /DATAERRORS /DATA ERROR WITH CRC STATUS ERROR 1037 000143 0000 DNSLOG, 0 /DNSERRORS /DATA ERROR BUT NO CRC STATUS ERROR 1038 000144 0000 SNDLOG, 0 /SNDERRORS /CRC STATUS ERROR BUT NO DATA ERROR 1039 000145 7765 SRETRY, -13 /SERRORS /SEEK ERROR RECOVERY 1040 000146 7765 PRETRY, -13 /PERRORS /PARITY ERROR RECOVERY 1041 / (TRACKS) ARE SET TO THE NEGATICE DIFFERENCE BETWEEN (OD) AND (ID) 1042 / IN THE SUBROUTINE " INITTRACKS " 1043 000147 7663 TRACKS, -115 / -# OF TRACKS PER DISKETTE (-115 TO -1 DYNAMIC DECREMENT) 1044 000150 0115 TTRACKS, 115 / # OF TRACKS PER DISKETTE (115 TO 1 STATIC) 1045 000151 0000 XTARGET, 0 / ; (AC) = TRACK+SECTOR AT IOT LCD=8; DESTINATION 1046 000152 0000 ECOMMAND, 0 1047 000153 0000 H1, 0 1048 000154 0000 GOBIT, 0 / > 0 MEANS EXPECTING AN RX01 PI <= 0 MEANS NOT EXPECTING 1049 1050 / 1051 / (PAT-SUMCHECK) IS A NUMBER GENERATED WITHIN SUBROUTINE " XGETAPATTERN " 1052 /EQUIVALENT TO SUMCHECK OF 60/124 [ 12/8 BIT MODE ] DATA WORDS 1053 / 1054 000155 0000 PATSUMCHECK, 0 1055 / 1056 / (WORDX) IS AN ADDRESS WHOSE CONTENTS = : (PAT-SUMCHECK) + (WBUFFER) + (WBUFFER+1) 1057 / 1058 / (WORDY) IS AN ADDRESS FOR WHICH THE CONTENTS REPRESENT THE NEATIVE-1 1059 /OF 2 TIMES THE CONTENTS OF THE ADDRESS WITHIN PROGRAM LOCATION " WORDX " 1060 / 1061 /THE CONTENTS OF BOTH WORDX AND WORDY ARE GENERATED WITHIN SUBROUTINE " XGETASECTOR " 1062 / 1063 000156 0000 WORDX, 0 1064 000157 0000 WORDY, 0 1065 000160 0000 LSB, 0 1066 000161 0000 MSB, 0 1067 000162 0000 TTYBUSY, 0 1068 000163 0000 PASS, 0 1069 000164 0000 0 /PASS COUNT TO A MAGNITUDE OF 16777215(10) 1070 000165 0000 RXHERE, 0 / = 7000 IF AN RX01 IS NOT CABLED TO THE RX8 1071 000166 0000 GOOD, 0 /EXPECTED RESULT 1072 000167 0000 EAC, 0 / (AC) AT ERROR "BAD" (ACTUAL RESULT) 1073 000170 0000 BLANK, 0 1074 000171 0600 TEST, T0 /ADDRESS OF STARTING ADDRESS OF TEST 1075 /******************************************************************* 1076 /ADDITIONAL CALL FOR CONSOLE PACKAGE 1077 1078 1079 CKSWIT= JMS I . 1080 000172 3400 XCKSWIT /CHECK IF LAS TO USE LOC 22 OR HARDWARE 1081 000173 7000 K7000, 7000 1082 000174 0007 K0007, 0007 1083 000175 7777 XCNT, -1 1084 FORCE=JMS I . 1085 000176 5525 XXFORCE 1086 /STARTING ADDRESS 200 - (AC) = STARTUP SWITCHES 1087 / 1088 /STARTING ADDRESS 201 - (AC) = RESTART (PARAMETERS ALREADY SELECTED AT START 200) 1089 / 1090 / 1091 *200 1092 / 1093 /************* 1094 /CONSOLE 1095 /************* 1096 000200 5202 C8START, JMP .+2 /NORMAL PROGRAM ACTIVITY. 1097 000201 5203 JMP .+2 /RESTART WITH SAME PARAMETERS. 1098 /THIS SECTION IS NORMAL PROGRAM ACTIVITY. 1099 /DEVICE CODE 75 IS ASSUMED. ANY OTHER WILL CAUSE ERRORS. 1100 000202 7240 STA 1101 000203 3010 DCA A10 1102 000204 3162 DCA TTYBUSY 1103 000205 3111 DCA BUSY 1104 000206 3154 DCA GOBIT 1105 000207 3163 BELL, DCA PASS 1106 000210 3164 DCA PASS+1 1107 000211 6211 CDF 10 /CHANGE TO DATA FIELD OF CONSOLE PACKAGE 1108 000212 3777 DCA PASCNT /CLEAR CONSOLE PASS COUNTER 1109 000213 6201 CDF 0 /CHANGE BACK TO PROGRAM DATA FIELD 1110 000214 1376 TAD (-40) 1111 000215 3116 DCA HANGER 1112 000216 3123 DCA SSTART 1113 000217 3131 DCA TARGET 1114 000220 1010 TAD A10 1115 000221 7650 SNA CLA 1116 000222 5233 JMP AROUND /USE EXISTING PARAMETERS. 1117 /*********************** 1118 000223 4775 JMS PNTID /PRINT ID AND REMOVE DIAGNOSTIC 1119 /*********************** 1120 000224 4424 CHECKC8 /CONSOLE ACTIVE 1121 000225 4425 XC8ENTR /ASK SR QUESTION. 1122 000226 5230 JMP .+2 1123 000227 4461 HALT 1124 000230 4572 LAS /GET PARAMETERS. 1125 000231 3114 DCA DTESTP 1126 000232 4774 JMS CHNDEV /CHANGE DEVICE CODES. 1127 000233 1114 AROUND, TAD DTESTP /GET PARAMETERS 1128 000234 7040 CMA 1129 000235 0373 AND (7000 /MASK BITS 0-2 1130 000236 7650 SNA CLA 1131 000237 1373 TAD (7000 1132 000240 3165 DCA RXHERE / = 0 IF RX01 CABLED TO RX8 1133 000241 1114 TAD DTESTP 1134 000242 7040 CMA 1135 000243 0372 AND (SW0+SW1) 1136 000244 3771 DCA UNITS / = UNITS(DRIVES) TO TEST 1137 000245 4770 JMS SELUNT /VT78/SELECT WHICH FLOPPY TO USE 1138 000246 4473 PRINT 1139 000247 6533 MDTESTP /TEST PARAMETER CONFIRMATION MESSAGE 1140 000250 4505 TY4OCT 1141 000251 0114 DTESTP 1142 /THE PROGRAM WILL VERIFY THAT THE CONTENTS OF PROGRAM LOCATIONS: 1143 / 1144 / OD, ID, FIRST, AND LAST 1145 / 1146 /WHICH ARE VARIABLE BY THE USER ARE WITHIN SELECTABLE LIMITS 1147 / 1148 / 0 <= OD <= 114 1149 / 1150 000252 1027 TAD OD 1151 000253 7700 SMA CLA 1152 000254 5257 JMP .+3 1153 000255 1367 TAD (52) 1154 000256 3027 DCA OD 1155 000257 1366 TAD (-114) 1156 000260 1027 TAD OD 1157 000261 7740 SMA SZA CLA 1158 000262 5255 JMP .-5 1159 000263 4473 PRINT 1160 000264 6674 MOD 1161 000265 4505 TY4OCT 1162 000266 0027 OD 1163 / 0 <= ID <= OD 1164 / 1165 000267 1030 TAD ID 1166 000270 7700 SMA CLA 1167 000271 5274 JMP .+3 1168 000272 1365 TAD (53) 1169 000273 3030 DCA ID 1170 000274 1030 TAD ID 1171 000275 7041 CIA 1172 000276 1027 TAD OD 1173 000277 7740 SZA SMA CLA 1174 000300 5272 JMP .-6 1175 000301 4473 PRINT 1176 000302 6700 MID 1177 000303 4505 TY4OCT 1178 000304 0030 ID 1179 / 0 < (FIRST) <= 32 1180 / 1181 000305 1031 TAD FIRST 1182 000306 7740 SZA SMA CLA 1183 000307 5312 JMP .+3 1184 000310 7301 CLA CLL IAC 1185 000311 3031 DCA FIRST 1186 000312 1031 TAD FIRST 1187 000313 1364 TAD (-32) 1188 000314 7740 SZA SMA CLA 1189 000315 5310 JMP .-5 1190 000316 4473 PRINT 1191 000317 6704 MFIRST 1192 000320 4505 TY4OCT 1193 000321 0031 FIRST 1194 000322 5763 JMP TADLAST 1195 /IF THE TELEPRINTER IS BUSY (TTYBUSY = X), AND 1196 / 1197 /IF A KEYBOARD FLAG HAS OCURRED, 1198 / 1199 /THEN STOP TELEPRINTER OUTPUTS (IF A KRB = S), OR 1200 / 1201 /THEN RESUME TELEPRINTER OUTPUTS (IF A KRB = Q 1202 /AND A PREVIOUS Q HAD OCURRED) 1203 / 1204 000323 6036 XKCC, KRB /READ THE KEYBOARD BUFFER STATIC 1205 000324 0362 AND (177 1206 000325 1361 TAD (200 /MAKE IT 8 BIT CODE 1207 000326 6211 CDF 10 1208 000327 3750 DCA I XC8CHAR /STORE IN FIELD ONE CHAR 1209 000330 6201 CDF 0 1210 000331 1162 TAD TTYBUSY /=1 IF BUSY 1211 000332 7012 RTR 1212 000333 7710 SPA CLA /WAS TELEPRINTER BUSY? 1213 000334 7040 CMA /YES 1214 000335 3351 DCA INMODE /==NOT BUSY 7777=BUSY 1215 000336 3162 DCA TTYBUSY /CLEAR FLAG 1216 /******** 1217 /CONSOLE 1218 /******** 1219 1220 000337 4424 C8TEST, CHECKC8 /CONSOLE ACTIVE. 1221 000340 4425 XC8ENTR /CHECK CONSOLE CONTROL CHARACTERS 1222 000341 7000 NOP 1223 000342 7200 CLA 1224 000343 1351 TAD INMODE 1225 000344 7650 SNA CLA /SKIP TO RESUME TYPEOUT 1226 000345 5760 JMP PIEXIT /EXIT 1227 000346 3351 DCA INMODE /CLEAR ACTIVE MESSAGE FLAG 1228 000347 5757 JMP XTCF /RESUME TYPEOUT 1229 000350 0031 XC8CHAR, C8CHAR /LOC IN FIELD 1 1230 000351 0000 INMODE, 0 /MESSAGE ACTIVE FLAG 1231 1232 /******** 1233 /CONSOLE 1234 /******** 1235 000357 5344 PAGE 000360 5510 000361 0200 000362 0177 000363 3273 000364 7746 000365 0053 000366 7664 000367 0052 000370 6127 000371 4235 000372 6000 000373 7000 000374 5067 000375 1531 000376 7740 000377 0661 1236 /PRETEST - INITIALIZE [KEY] PART I / FLAG DETECTION PART I 1237 / 1238 / (A) IF AN RX01 MICROCONTROLLER IS [NOT] CABLED TO THE RX8 INTERFACE, 1239 / THEN ALL FLAGS (DONE, TRANSFER REQUEST, AND ERROR), AND THE RX8 1240 / INTERFACE TRANSFER REGISTER SHOULD HAVE BEEN CLEARED BY "KEY" 1241 / INITIALIZE (IF THEY WERE EVER SET). 1242 / 1243 / (B) IF AN RX01 MICROCONTROLLER [IS] CABLED TO THE RX8 INTERFACE, 1244 / THEN "KEY" INITIALIZE SHOULD HAVE [SET] THE DONE FLAG BECAUSE 1245 / ANY [INIT] OF THE RX01 MICROCONTROLLER IS AN IMPLIED [READ SECTOR] 1246 / OF TRACK 0 SECTOR 1 (FOR SYSTEM PROGRAMMING BOOTSTRAP APPLICATIONS). 1247 / 1248 / THEREFORE, ANY ERROR (EXCEPT PARITY) THAT MAY OCCUR FROM A NORMAL 1249 / "READ SECTOR" COMMAND MAY OCCUR HERE CAUSING THE ERROR FLAG TO SET, AND 1250 / DISPLAYING THE ERROR STATUS WITHIN THE TRANSFER REGISTER AT "DONE". 1251 / 1252 / THE TRANSFER REQUEST FLAG SHOULD BE CLEARED. 1253 / 1254 /NOTE: 1255 / 1256 /SCOPE LOOPING IS NOT OFFERED BECAUSE THE "INIT" FUNCTION 1257 / 1258 000400 7240 PRETEST, STA 1259 000401 3115 DCA FIRSTERROR /FOR FIRST ERROR EVER THIS PASS 1260 000402 3777 DCA ERRORS /CLEAR "ERRORS" FOR FIRST "SCOPE" EVER 1261 000403 4502 SCOPE /THIS "SCOPE" TO REFRESH "FAT" IF ERROR 1262 000404 1776 TAD PCSCOPE 1263 000405 3171 DCA TEST /TO REFRESH "FAT" FOR "ERROR" 1264 000406 6007 CAF /VT78/ 1265 000407 4451 CKUNIT /VT78/SETUP FOR UNIT A OR B 1266 000410 4443 STR 1267 000411 4465 OK 1268 000412 4452 E0PRE, ERROR /UNEXPECTED TRANSFER REQUEST FLAG 1269 000413 4444 SER 1270 000414 4465 OK 1271 000415 4452 E2PRE, ERROR /UNEXPECTED ERROR FLAG 1272 / 1273 /************************************************************************ 1274 1275 /************************************************************************ 1276 / 1277 /IF AN RX01 MICROCONTROLLER [IS] CABLED TO THE RX8 INTERFACE 1278 /THEN THE DONE FLAG SHOULD BE SET 1279 / 1280 000416 1165 TAD RXHERE 1281 000417 7640 SZA CLA 1282 000420 5231 JMP NORX01 1283 000421 4471 WAIT 1284 000422 4445 SDN 1285 000423 5221 JMP .-2 /WAIT FOR DONE FLAG 1286 000424 7410 SKP 1287 000425 4452 E3PRE, ERROR /MISSING DONE FLAG 1288 / 1289 /************************************************************************ 1290 /************************************************************************ 1291 /THE ENTIRE STATUS WORD IS DISPLAYED IN THE TRANSFER REGISTER AT ERROR/DONE TIME. 1292 / 1293 /IF AN RX01 CONTROLLER IS CABLED TO THE RX8 INTERFACE 1294 / (AND DRIVE 0 IS READY THEN THE STATUS SHOULD INDICATE " SEL DRV RDY "), ALSO 1295 /DELETED DATA [MAX] = 1 IF TRACK 0/SECTOR 1 WAS WRITTEN WITH DELETED DATA 1296 /AND "INIT DONE" SHOULD BE SET. 1297 / 1298 000426 5775 JMP TSTUNT /OFF PAGE BECAUSE OF ROOM. 1299 / 1300 / 1301 000427 1374 TAD (40 /PROGRAM EXPECTS DRIVE 0 TO BE READY 1302 / 1303 / 1304 ///////////////////////////////////////////////////////////////////////// 1305 / 1306 / 4 5 - - 8 9 10 11 / 1307 / 1308 / SEL WRITE INIT PAR / 1309 / DRIVE DD PROTECT [DONE] CRC / 1310 / RDY (N/A) / 1311 / 1312 ///////////////////////////////////////////////////////////////////////// 1313 / 1314 / 1315 000430 7107 CLL IAC RTL / 4 [INIT] DONE OR 204 1316 000431 3166 NORX01, DCA GOOD 1317 000432 4441 XDRIN 1318 000433 3170 DCA BLANK /ACTUAL STATUS FROM [INIT] 1319 000434 1170 TAD BLANK 1320 000435 0773 AND COMP 1321 000436 3167 DCA EAC /STATUS MINUS DELETED DATA (BIT 5) 1322 000437 1167 TAD EAC 1323 000440 7041 CIA 1324 000441 1166 TAD GOOD /EXPECTED 1325 000442 7650 SNA CLA 1326 000443 5246 JMP .+3 /OK 1327 000444 1167 TAD EAC 1328 000445 4452 E1PRE, ERROR / [INIT] STATUS NOT = EXPECTED 1329 / 1330 /IF AN RX01 MICROCONTROLLER [IS] CABLED TO THE RX8 INTERFACE 1331 /THEN THE PREVIOUS "SDN" SHOULD HAVE CLEARED THE DONE FLAG, BUT 1332 / 1333 /IF AN RX01 MICROCONTROLLER IS [NOT] CABLED TO THE RX8 INTERFACE 1334 /THEN "KEY" INITIALIZE SHOULD HAVE CLEARED THE DONE FLAG 1335 / 1336 /TECHNICAL NOTE: 1337 / 1338 /IF THE DONE FLAG IS SET, AND IF THE INTERRUPT ENABLE FLIP-FLOP IS SET ILLEGALLY, 1339 /THEN AN "UNEXPECTED RX01 INTERRUPT" WILL OCCUR IN T0 (IF AN RX01 CONTROLLER 1340 / [IS] CABLED TO THE RX8 INTERFACE) OR IN T1 WHEN THE MAINTENANCE FLIP- 1341 /FLOP "SETS ALL FLAGS" 1342 / 1343 000446 4445 SDN 1344 000447 4465 OK 1345 000450 4452 E4PRE, ERROR /UNEXPECTED DONE FLAG 1346 / 1347 /END OF PRE-TEST 1348 / 1349 000451 5311 JMP REBEGIN 1350 / 1351 000452 4464 MORETESTS, LOCKUP 1352 000453 3777 FIRSTTEST, DCA ERRORS 1353 000454 1413 TAD I A13 1354 000455 3171 DCA TEST / FAT (FIRST ADDRESS OF TEST) 1355 000456 1171 TAD TEST 1356 000457 3776 DCA PCSCOPE / EQUIVALENT TO " SCOPE " 1357 000460 3772 DCA WUNITS /FOR FIRST ENTRY INTO XGETUNIT THIS TEST 1358 000461 5571 JMP I TEST 1359 / 1360 /THERE ARE NO MORE TESTS 1361 / 1362 /PRINT AN END OF PASS INDICATOR 1363 / 1364 / A - INTERFACE TEST OK (ONLY RX8 TO TEST) 1365 / C - RX8 AND RX01 TEST OK 1366 / D - RX8 AND RX01 AND DRIVE TESTING OK 1367 / 1368 / - - AN ERROR OCURRED (DURING A, B, OR D) 1369 / 1370 XD=400 1371 000462 2771 ISZ CHECKU /VT78/ARE WE DONE ALL SELECTED UNITS? 1372 000463 5323 JMP NXTUNT /VT78/NO - DO NEXT UNIT 1373 000464 1370 TAD (XD) 1374 000465 3322 NOMORETESTS, DCA MX / (XI), (XC), (XD), OR 0 1375 000466 4767 JMS SELUNT /RESET UNIT COUNTER(CHECKU) 1376 / 1377 /NOTE:IF THE CONTENTS OF PROGRAM LOCATION FIRSTERROR = 0 1378 /THEN AN ERROR HAS OCCURRED FOR THIS PASS 1379 / 1380 000467 1115 TAD FIRSTERROR 1381 000470 7640 SZA CLA 1382 000471 5274 JMP .+3 1383 000472 1366 TAD (5500) 1384 000473 3322 DCA MX / - 1385 /************* 1386 /CONSOLE 1387 /******** 1388 000474 4424 CHECKC8 1389 000475 4426 C8PASS 1390 000476 5326 JMP C8RET2 / 1391 /************* 1392 000477 4473 PRINT 1393 000500 0522 MX 1394 000501 2163 ISZ PASS 1395 000502 5305 JMP .+3 1396 000503 2164 ISZ PASS+1 1397 000504 7000 NOP 1398 000505 4572 LAS 1399 000506 0370 AND (SW3) 1400 000507 7640 SZA CLA 1401 000510 4461 HALT 1402 000511 1114 REBEGIN, TAD DTESTP 1403 000512 0365 AND (37) 1404 000513 1364 TAD (TESTS-1) 1405 000514 3013 DCA A13 1406 000515 7240 STA 1407 000516 3115 DCA FIRSTERROR /FIRST ERROR SWITCH FOR EACH PASS 1408 000517 7340 CLA CLL CMA 1409 000520 3763 DCA CLKCNT /FOR APT TIMING 1410 000521 5253 JMP FIRSTTEST 1411 / 1412 000522 1100 MX, TEXT "I" / I, C, OR D 1413 1414 000523 7201 NXTUNT, CLA IAC 1415 000524 3135 DCA UNITCK /SET UP TO TEST UNIT B 1416 000525 5200 JMP PRETEST /START OVER 1417 1418 /****************************************** 1419 /ROUTINTE FOR CONSOLE PASS 1420 1421 000526 6001 C8RET2, ION /CONSOLE PASS 1422 000527 2163 ISZ PASS 1423 000530 5333 JMP .+3 1424 000531 2164 ISZ PASS+1 1425 000532 7000 NOP 1426 000533 5311 JMP REBEGIN /CONTINUE WITH PROGRAM RETURN 1427 /:***************************************** 1428 000563 4151 PAGE 000564 4727 000565 0037 000566 5500 000567 6127 000570 0400 000571 6151 000572 4236 000573 2746 000574 0040 000575 2732 000576 1366 000577 1365 1429 /TEST 0 - FLAG DETECTION PART II / " C " LINES VERIFICATION PART I 1430 / 1431 /********************************************************************* 1432 /********************************************************************* 1433 / 1434 /IF AN RX01 MICROCONTROLLER IS CABLED TO THE RX8 INTERFACE 1435 /THEN DON'T EXECUTE THIS TEST 1436 /BECAUSE ISSUING THE IOT LCD WITH THE AC = 177 1437 /RESEMBLED A COMMAND TO THE RX01 1438 / 1439 000600 1165 T0, TAD RXHERE 1440 000601 7650 SNA CLA 1441 000602 5453 NOTEST 1442 000603 3166 DCA GOOD 1443 /*************************************************************************** 1444 /*************************************************************************** 1445 / 1446 /THE PURPOSE OF THIS TEST IS TO VERIFY THAT THE LCD (LOAD COMMAND REGISTER) 1447 /IOT 67X1 DOES [NOT] SET THE MAINTENANCE FLIP-FLOP WHEN THE CONTENTS 1448 /OF THE AC = 177 AT THE TIME THE IOT IS ISSUED. 1449 / 1450 / 1451 /TECHNICAL NOTE: 1452 / 1453 /IF AN ERROR OCCURS, THEN IT IS ASSUMED [KEY] INIT FAILED TO CLEAR THE 1454 /MAINTENANCE FLIP-FLOP, OR, THAT THE ISSUING OF THE LCD IOT REALLY 1455 / [SET] THE MAINTENANCE FLIP-FLOP INSTEAD OF [CLEARING]. 1456 / 1457 / " C " LINES VERIFICATION PART I 1458 / 1459 000604 1377 TAD (177) 1460 000605 4436 LCD /MAINTENANCE MODE 1461 /THE (AC) SHOULD = 0 BECAUSE IOT LCD 67X1 SHOULD CLEAR THE AC 1462 / 1463 000606 7440 SZA 1464 000607 4452 E0, ERROR / IOT 67X1 DID NOT CLEAR THE AC 1465 000610 4503 SUBSCOPE 1466 / 1467 /FLAG DETECTION PART II 1468 / 1469 /THE PURPOSE OF THIS TEST IS TO VERIFY THAT ISSUING IOT LCD 67X1 WITH 1470 /THE AC = 1777 DOES NOT SET THE MAINTENANCE FLIP-FLOP 1471 /WHICH IN TURN WOULD SET ALL FLAGS 1472 / 1473 /THEREFOR ALL FLAGS SHOULD BE CLEARED 1474 / 1475 000611 4443 STR 1476 000612 4465 OK 1477 000613 4452 E1, ERROR /UNEXPECTED TRANSFER REQUEST FLAG 1478 000614 4503 SUBSCOPE 1479 000615 4444 SER 1480 000616 4465 OK 1481 000617 4452 E2, ERROR /UNEXPECTED ERROR FLAG 1482 000620 4503 SUBSCOPE 1483 000621 4445 SDN 1484 000622 4465 OK 1485 000623 4452 E3, ERROR /UNEXPECTED DONE FLAG 1486 000624 4502 SCOPE 1487 000625 5453 EXIT /END OF TEST 0 1488 / 1489 /TEST 1 - DIRECTION OF IOT XDR (67X2) PART I / IOT DECODING PART I 1490 / 1491 / - " C " LINES VERIFICATION PART II 1492 / 1493 /THE PURPOSE OF THIS TEST IS TO VERIFY THAT 1494 /ISSUING IOT XDR (TRANSFER DATA REGISTER) 67X2 DOES [NOT] CLEAR 1495 /THE MAINTENANCE FLIP-FLOP 1496 / 1497 /TECHNICAL NOTE: 1498 / 1499 /IF THE CONTENTS OF THE TRANSFER REGISTER IS NOT = 200, THEN IT MUST 1500 /BE ASSUMED THAT THE SECOND LCD IOT CLEARED THE MAINTENANCE FLIP-FLOP 1501 /OR THAT IOT XDR CLEARED THE MAINTENANCE FLIP_FLOP 1502 / 1503 000626 3166 T1, DCA GOOD 1504 000627 1376 TAD (200) 1505 000630 4436 LCD /MAINTENANCE MODE 1506 /THE (AC) SHOULD = 0 AFTER ISSUING IOT LCD 67X1 1507 000631 7440 SZA 1508 000632 4452 E11, ERROR /IOT LCT 67X1 FAILED TO CLEAR AC 1509 000633 4503 SUBSCOPE 1510 / 1511 000634 1376 TAD (200) 1512 000635 4436 LCD /MAINTENANCE MODE , AGAIN 1513 000636 4441 XDRIN /CONTENTS OF TRANSFER REGISTER 1514 000637 3167 DCA EAC /SAVE 1515 000640 1167 TAD EAC 1516 000641 1375 TAD (-200) /COMPARE WITH "EXPECTED" 1517 000642 7650 SNA CLA 1518 000643 5250 JMP .+5 / OK 1519 000644 1376 TAD (200) 1520 000645 3166 DCA GOOD / "EXPECTED" RESULT 1521 000646 1167 TAD EAC / "ACTUAL" RESULT 1522 000647 4452 E10, ERROR /TRANSFER REGISTER NOT =200 1523 000650 4502 SCOPE 1524 000651 5453 EXIT /END OF TEST 1 1525 /TEST 2 - FLAG DETECTION PART III / " C " LINES VERIFICATION PART III 1526 / 1527 / (A) THE SETTING OF THE MAINTENANCE FLIP-FLOP SHOULD "DIRECT SET" ALL 1528 / FLAGS (DONE, TRANSFER REQUEST, AND ERROR). 1529 / 1530 / (B) IF AN RX01 MICROCONTROLLER [IS] CABLED TO THE RX8 INTERFACE, 1531 / THEN THE SETTING OF THE MAINTENANCE FLIP-FLOP WILL ASSERT THE "RUN" 1532 / LINE (RESEMBLING A FILL BUFFER COMMAND) THUS CAUSING THE RX01 1533 / CONTROLLER TO SETUP FOR A "FILL BUFFER", BUT, HOWEVER, BECAUSE THE 1534 / MAINTENANCE FLIP-FLOP [IS] SET, THE RX8 INTERFACE RECEIVERS 1535 / SHOULD BE DISABLED AND NOT REACTIVE TO THE RX01 MICROCONTROLLER. 1536 / 1537 /WITH ALL FLAGS SET, THE RX8 INTERFACE IOT'S: 1538 / 1539 / SDN - "SKIP ON DONE" (67X5), AND 1540 / SER - "SKIP ON ERROR" (67X4), AND, 1541 / STR - "SKIP ON TRANSFER REQUEST" (67X3) SHOULD SKIP 1542 / 1543 /TECHNICAL NOTE: 1544 / 1545 /IF FLAGS ARE "MISSING", IS THE MAINTENANCE MODE FLIP-FLOP REALLY SET ? 1546 / 1547 000652 1376 T2, TAD (200) 1548 000653 4436 LCD /MAINTENANCE MODE 1549 000654 4445 SDN 1550 000655 4452 E20, ERROR /MISSING DONE FLAG 1551 000656 4503 SUBSCOPE 1552 000657 4443 STR 1553 000660 4452 E21, ERROR /MISSING TRANSFER REQUEST FLAG 1554 000661 4503 SUBSCOPE 1555 000662 4444 SER 1556 000663 4452 E22, ERROR /MISSING ERROR FLAG 1557 000664 4503 SUBSCOPE 1558 / 1559 /ALL FLAGS SHOULD REMAIN " DIRECT SET " 1560 /BECAUSE THE MAINTENANCE FLIP-FLOP SHOULD STILL BE SET 1561 / 1562 /TECHNICAL NOTE: 1563 / 1564 /IF THE FLAGS ARE "MISSING" THEN IT IS ASSUMED THAT THE PREVIOUS 1565 /FLAG TESTING ACTUALLY [CLEARED] THE FLAGS. 1566 / 1567 000665 4445 SDN 1568 000666 4452 E23, ERROR /MISSING DONE FLAG 1569 000667 4503 SUBSCOPE 1570 000670 4443 STR 1571 000671 4452 E24, ERROR /MISSING TRANSFER REQUEST FLAG 1572 000672 4503 SUBSCOPE 1573 000673 4444 SER 1574 000674 4452 E25, ERROR /MISSING ERROR FLAG 1575 000675 4503 SUBSCOPE 1576 / " C " LINES VERIFICATION PART III 1577 / 1578 /THE FOLLOWING RX8 INTERFACE IOT'S SHOULD NOT CLEAR THE AC: 1579 / 1580 /IOT'S: SDN(67X5), SER(67X4), OR STR(67X3) 1581 / 1582 000676 7240 STA 1583 000677 3166 DCA GOOD 1584 000700 1166 TAD GOOD 1585 000701 6755 K67X5B, 6755 1586 000702 7000 NOP 1587 000703 7650 SNA CLA 1588 000704 4452 E26, ERROR / IOT SDN (67X5) CLEARED THE AC 1589 000705 4503 SUBSCOPE 1590 000706 1166 TAD GOOD 1591 000707 6753 K67X3B, 6753 1592 000710 7000 NOP 1593 000711 7650 SNA CLA 1594 000712 4452 E27, ERROR / IOT STR (67X3) CLEARED THE AC 1595 000713 4503 SUBSCOPE 1596 000714 1166 TAD GOOD 1597 000715 6754 K67X4B, 6754 1598 000716 7000 NOP 1599 000717 7650 SNA CLA 1600 000720 4452 E28, ERROR / IOT SER (67X4) CLEARED THE AC 1601 000721 4502 SCOPE 1602 000722 5453 EXIT / END OF TEST 2 1603 /TEST 3 1604 / 1605 /RX8 IOT DEVICE CODE VERIFICATION 1606 / 1607 /THE PURPOSE OF THIS TEST IS TO VERIFY THAT ONLY THE DEVICE CODE SELECTED 1608 /BY THE OPERATOR (AC SWITCHES 3-4-5 AT THE START OF THE PROGRAM) IS ACTIVE. 1609 / 1610 /FIRST SET THE MAINTENANCE FLIP-FLOP, WHICH HAS PREVIOUSLY BEEN VERIFIED TO 1611 /DIRECT SET ALL FLAGS, THEN SEQUENCE THROUGH ALL DEVICE CODES (EXPECT THE 1612 /DEVICE CODE SELECTED AT THE START OF THIS PROGRAM) BY ISSUING IOT SDN 67X5 1613 / (SKIP ON DONE FLAG), WHICH HAS ALSO PREVIOUSLY BEEN VERIFIED TO "SKIP AND 1614 /CLEAR" SUCESSFULLY. 1615 / 1616 /NOTE: 1617 / 1618 /THE PROGRAM DOES NOT ISSUE THE DEVICE CODE 67X5 WHERE X = POSITION OF AC 1619 /SWITCHES 3-4-5 AT THE START 200 OF THIS PROGRAM. 1620 /**************************************************************** 1621 /****************************************************************** 1622 /THIS TEST HAS BEEN REMOVED 1623 /THIS TEST IS NOT NEEDED IN A SYSTEM ENVIRONMENT. 1624 /TO REPLACE TEST T3 CHANGE LOCATIONS: 1625 / LOCATION FROM TO 1626 / -------- ---- -- 1627 / 734 5464 1367 1628 1629 / 767 XXXX 0200 1630 /REMOVED MAY 16,1975 1631 /// 1632 / 1633 000723 5453 T3, EXIT 1634 000724 4436 LCD / MAINTENANCE 1635 000725 1774 TAD K67X5A 1636 000726 3166 DCA GOOD 1637 000727 1373 TAD (-7) 1638 000730 3010 DCA A10 1639 000731 1372 TAD (6705) 1640 000732 3341 DCACTIVE, DCA ACTIVE 1641 000733 4502 SCOPE /REFRESH PROGRAM LOCATION PCSCOPE 1642 000734 1166 TAD GOOD 1643 000735 7041 CIA 1644 000736 1341 TAD ACTIVE 1645 000737 7650 SNA CLA 1646 000740 5346 JMP NEXTACTIVE 1647 000741 6775 ACTIVE, 6775 1648 000742 5346 JMP NEXTACTIVE 1649 000743 1341 TAD ACTIVE 1650 000744 4452 E30, ERROR 1651 000745 4502 SCOPE / (AC) = ILLEGAL DEVICE CODE 1652 000746 1371 NEXTACTIVE, TAD (10) 1653 000747 1341 TAD ACTIVE 1654 000750 2010 ISZ A10 1655 000751 5332 JMP DCACTI 1656 000752 5453 EXIT /END OF TEST 3 1657 1658 000771 0010 PAGE 000772 6705 000773 7771 000774 6422 000775 7600 000776 0200 000777 0177 1659 /TEST 4 - TRANSFER REGISTER DIRECTION TESTING (PART II) 1660 / 1661 / - " C " LINES VERIFICATION PART IV 1662 / 1663 /WITH THE MAINTENANCE FLIP-FLOP SET THE PROGRAM WILL VERIFY THE DIRECTION 1664 /AND TRANSFER MODE (8-BIT MODE INCLUSIVE "OR", AND 12-BIT MODE "JAM") 1665 /TRANSFERS INTO THE ACCUMULATOR FROM THE RX8 TRANSFER REGISTER BY ISSUING 1666 /IOT "XDR" (TRANSFER DATA REGISTER) 67X2 AFTER PREVIOUSLY [LOADING] THE 1667 /TRANSFER REGISTER WITH THE CONTENTS OF THE ACCUMULATOR REPRESENTATIVE 1668 /OF THE FOLLOWING PATTERNS WHEN THE "LCD" IOT 67X1 IS ISSUED. 1669 / 1670 / (1) 200 - MAINTENANCE MODE 1671 / (2) 376 - 1672 / (3) 375 - 1673 / (4) 373 - (BYTES 2 THRU 7) 1674 / (5) 367 - (INCLUSIVE "OR") 1675 / (6) 357 - 1676 / (7) 337 - 1677 / (8) 7677 - (WORD - 8 "JAM") 1678 / 1679 /THE 1ST LCD IOT WILL BE ISSUED WITH THE AC = 200 WHICH INITIALLY SETS THE 1680 /MAINTENANCE FLIP-FLOP THEREBY GUARANTEEING THE CONTENTS OF THE TRANSFER 1681 /REGISTER [AFTER] EACH SUCCEEDING LCD IOT. 1682 / 1683 /LCD IOT'S 2 THRU 8 ARE ISSUED WITH THE ACCUMULATOR CONTAINING THE PATTERNS 1684 /DESCRIBED ABOVE. 1685 / 1686 /ALL PATTERNS EXCEPT WORD 8 (7677) TEST THE INCLUSIVE "OR" TRANSFER OF 1687 /THE RX8 INTERFACE TRANSFER REGISTER. WORD 8 TESTS THE 12-BIT "JAM" TRANSFER. 1688 / 1689 001000 1377 T4, TAD (200) 1690 001001 4436 LCD /MAINTENANCE MODE 1691 001002 7350 CLL STA RAR / 3777 1692 001003 3170 DCA BLANK 1693 001004 1170 T4B, TAD BLANK 1694 001005 7120 STL 1695 001006 7500 SMA 1696 001007 7100 CLL 1697 001010 7004 RAL 1698 001011 3170 DCA BLANK 1699 001012 4502 SCOPE / REFRESH PROGRAM LOCATION PCSCOPE 1700 001013 1170 TAD BLANK / (BLANK) = (AC) BEFORE LCD IOT 67X1 1701 001014 4436 LCD / T0 1702 / 1703 / " C " LINES VERIFICATION PART IV 1704 / 1705 /THE PURPOSE OF THIS TEST IS TO VERIFY THAT SUCCEEDING LCD IOT'S(67X1) 1706 /TRANSFER THE (AC) INTO THE DATA REGISTER CLEARING THE ACUMULATOR 1707 / 1708 001015 3167 DCA EAC / (AC) AFTER ISSUING IOT LCD (67X1) 1709 001016 3166 DCA GOOD / PROGRAM EXPECTS AC = 0 1710 001017 1167 TAD EAC 1711 001020 7440 SZA 1712 001021 4452 E42, ERROR / IOT LCD (67X1) DIDN'T CLEAR THE AC 1713 001022 4503 SUBSCOPE 1714 / 1715 /TRANSFER DIRECTION PART II 1716 / 1717 001023 4441 XDRIN / FROM 1718 001024 3167 DCA EAC 1719 001025 1376 TAD (100) 1720 001026 0170 AND BLANK 1721 001027 7106 CLL RTL 1722 001030 7006 RTL / LINK = 1 FOR 8 BIT MODE 1723 001031 7006 RTL 1724 001032 1170 TAD BLANK 1725 001033 7430 SZL 1726 001034 0375 AND (377) / 8-BIT BYTE "GOOD" MASK 1727 001035 3166 DCA GOOD 1728 001036 1166 TAD GOOD /EXPECTED RESULT 1729 001037 7041 CIA 1730 001040 1167 TAD EAC /ACTUAL RESULT 1731 001041 7650 SNA CLA 1732 001042 5245 JMP .+3 /COMPARED OK 1733 001043 1167 TAD EAC 1734 001044 4452 E40, ERROR / TRANSFER REGISTER NOT = "GOOD" 1735 /CHECK TO SEE IF RUNNING ON A VT78 SYSTEM 1736 001045 4365 JMS VT78CK /VT78/ RETURN +1 IF NOT VT78 1737 001046 5261 JMP E41+1 /VT78 - SKIP FOLLOWING SUBTESTS 1738 1739 001047 4503 SUBSCOPE 1740 / 1741 /THE TRANSFER REGISTER SHOULD REMAIN UNCHANGED 1742 /FROM THE PREVIOUS XDR IOT (NOT SO ON VT78) 1743 / 1744 001050 4441 XDRIN / FROM 1745 001051 3167 DCA EAC 1746 001052 1167 TAD EAC /ACTUAL 1747 001053 7041 CIA 1748 001054 1166 TAD GOOD /EXPECTED 1749 001055 7650 SNA CLA 1750 001056 5261 JMP .+3 /COMPARED OK 1751 001057 1167 TAD EAC 1752 001060 4452 E41, ERROR / TRANSFER REGISTER NOT = "GOOD" 1753 001061 4502 SCOPE 1754 001062 1170 TAD BLANK 1755 001063 0376 AND (100) 1756 001064 7640 SZA CLA 1757 001065 5204 JMP T4B /UNTIL (BLANK) = 7677 1758 001066 5453 EXIT / END OF TEST 4 1759 /TEST 5 1760 / 1761 /RX8 IOT DECODING VERIFICATION PART II 1762 / 1763 /************************************************************************ 1764 /************************************************************************ 1765 / 1766 /IF AN RX01 CONTROL IS CABLED TO THE RX8 INTERFACE 1767 /THEN DON'T EXECUTE THIS TEST 1768 /BECAUSE THE CLEARING OF THE MAINTENANCE F/F 1769 /RESEMBLES A FILL BUFFER COMMAN D (NOT SO ON VT78) 1770 / 1771 /CHECK TO SEE IF RUNNING ON A VT78 SYSTEM 1772 001067 4365 JMS VT78CK /VT78/ RETURN +1 IF NOT VT78 1773 001070 5274 JMP .+4 /VT78 -ALWAYS EXECUTE TEST 1774 1775 001071 1165 T5, TAD RXHERE 1776 001072 7650 SNA CLA 1777 001073 5453 NOTEST 1778 001074 3166 DCA GOOD 1779 /************************************************************************ 1780 /************************************************************************ 1781 / 1782 /THE MAINTENANCE FLIP-FLOP HAS PREVIOUSLY BEEN VERIFIED TO SET AND CLEAR, 1783 /THE IOT UNDER TEST SHOULD "SKIP AND CLEAR" [ONLY] ITS RESPECTIVE FLAG, 1784 /ALL OTHER FLAGS SHOULD REMAIN UNCHANGED 1785 / 1786 / (I.E. THE SDN IOT 67X5 SHOULD SKIP AND CLEAR ONLY THE DONE FLAG, ALL 1787 /OTHER FLAGS SHOULD REMAIN SET) 1788 / 1789 001075 1377 TAD (200) 1790 001076 4436 LCD 1791 001077 4436 LCD /MAINTENANCE MODE / 1792 001100 4441 XI, XDRIN 1793 001101 7440 SZA 1794 001102 4452 E56, ERROR /TRANSFER REGISTER NOT = 0 1795 001103 4503 SUBSCOPE 1796 001104 4445 SDN 1797 001105 4452 E50, ERROR /DONE FLAG WASN'T SET, OR 1798 001106 4503 SUBSCOPE /IOT LCD OR XDR CLEARED THE DONE FLAG 1799 001107 4445 SDN 1800 001110 4465 OK 1801 001111 4452 E53, ERROR 1802 001112 4503 SUBSCOPE /IOT SDN DIDN'T "SKIP AND CLEAR" 1803 001113 4443 STR 1804 001114 4452 E51, ERROR /TRANSFER FLAG WASN'T EVER SET, OR 1805 001115 4503 SUBSCOPE /IOTS LCD, OR SDN OR XDR CLEARED THE TR FLAG 1806 001116 4443 STR 1807 001117 4465 OK 1808 001120 4452 E54, ERROR 1809 001121 4503 SUBSCOPE /IOT STR DIDN'T "SKIP AND CLEAR" 1810 001122 4444 SER 1811 001123 4452 E52, ERROR /ERROR FLAG WASN'T EVER SET, OR 1812 001124 4503 SUBSCOPE /IOTS LCD OR SDN OR XDR OR STR CLEARED THE ERROR FLAG 1813 001125 4444 SER 1814 001126 4465 OK 1815 001127 4452 E55, ERROR 1816 001130 4502 SCOPE /IOT SER DIDN'T "SKIP AND CLEAR" 1817 001131 5453 EXIT / END OF TEST 5 1818 /TEST 6 - INTERRUPT TEST PART I / IOT DECODING VERIFICATION PART III 1819 / 1820 /INTERRUPT TEST PART I 1821 / 1822 /THEN MAINTENANCE FLIP-FLOP HAS PREVIOUSLY BEEN VERIFIED TO DIRECT 1823 / [SET] ALL FLAGS AND THE INTERFACE IOT -SKIP ON DONE- "SDN" 67X5 WAS 1824 /FOUNT TO "SKIP AND CLEAR" SUCESSFULLY, 1825 / 1826 /FIRST SET THE MAINTENANCE FLIP-FLOP WHICH IN TURN SETS ALL FLAGS. 1827 / 1828 /THEN ISSUE IOT INTR 67X6 WITH THE AC = 0 [CLEARING] THE RX8 INTERRUPT ENABLE 1829 /NO INTERRUPT SHOULD OCCUR 1830 / 1831 001132 4507 T6, WAITTY 1832 001133 1374 TAD (E60) 1833 001134 3002 DCA IPI 1834 001135 1377 TAD (200) 1835 001136 4436 LCD 1836 001137 4446 INTR /INTERRUPT ENABLE FLIP-FLOP 1837 001140 7000 NOP /...WAIT 1838 / NOP /...PLENTY 1839 001141 7410 SKP /...OF TIME 1840 001142 4452 E60, ERROR /UNEXPECTED INTERRUPT 1841 001143 4503 SUBSCOPE 1842 / 1843 /************************************************************************ 1844 /************************************************************************ 1845 / 1846 /IF AN RX01 MICRO-CONTROLLER IS CABLED TO THE RX8 INTERFACE 1847 /THEN DON'T EXECUTE THE REMAINING PORTION OF THIS TEST 1848 /BECAUSE THE CLEARING OF THE MAINTENANCE FLIP-FLOP RESEMBLES A FILL BUFFER COMMAND 1849 /TO THE RX01 MICROCONTROLLER (NOT SO ON VT78) 1850 / 1851 /CHECK TO SEE IF RUNNING ON A VT78 SYSTEM 1852 001144 4365 JMS VT78CK /VT78/ RETURN +1 IF NOT VT78 1853 001145 5351 JMP .+4 /VT78 -ALWAYS EXECUTE TEST 1854 1855 001146 1165 TAD RXHERE 1856 001147 7650 SNA CLA 1857 001150 5453 NOTEST 1858 / 1859 /************************************************************************ 1860 /************************************************************************ 1861 / 1862 /IOT DECODING VERIFICATION PART III- IOT INTR 67X6 DECODING VERIFICATION 1863 / 1864 /TECHNICAL NOTE: 1865 / 1866 /ALL FLAGS SHOULD REMAIN SET 1867 /IF ANY FLAG IS MISSING, 1868 /THEN IT IS ASSUMED THAT IOT INTR 67X6 CLEARED THE FLAG(S) 1869 / 1870 001151 4436 LCD /MAINTENANCE MODE 1871 001152 4446 INTR /DISABLE THE INTERRUPT ENABLE F/F 1872 001153 4445 SDN 1873 001154 4452 E61, ERROR /MISSING DONE FLAG 1874 001155 4503 SUBSCOPE 1875 001156 4443 STR 1876 001157 4452 E62, ERROR /MISSING TRANSFER REQUEST FLAG 1877 001160 4503 SUBSCOPE 1878 001161 4444 SER 1879 001162 4452 E63, ERROR /MISSING ERROR FLAG 1880 001163 4502 SCOPE 1881 001164 5453 EXIT /END OF TEST 6 1882 /ROUTINE TO CHECK IF RUNNING ON A VT78 SYSTEM 1883 / 1884 001165 0000 VT78CK, 0 1885 001166 1022 TAD 22 /GET LOC 22 (HCW2) 1886 001167 0373 AND (1000 /TEST BIT 2 1887 001170 7650 SNA CLA /IS THIS A VT78 SYSTEM? 1888 001171 2365 ISZ VT78CK /NO - BUMP RETURN 1889 001172 5765 JMP I VT78CK /RETURN 1890 1891 001173 1000 PAGE 001174 1142 001175 0377 001176 0100 001177 0200 1892 / 1893 /TEST 7 - INTERRUPT TEST PART II 1894 / 1895 /INTERUPT TEST PART II 1896 / 1897 /THE MAINTENANCE FLIP-FLOP HAS PREVIOUSLY BEEN VERIFIED TO DIRECT 1898 / [SET] ALL FLAGS AND THE INTERFACE IOT -SKIP ON DONE- "SDN" 67X5 WAS 1899 /FOUND TO "SKIP AND CLEAR" SUCCESSFULLY. 1900 / 1901 /FIRST SET THE MAINTENANCE FLIP-FLOP 1902 /WHICH SHOULD DIRECT SET THE DONE FLAG, 1903 /THEN BY SETTING THE RX01 INTERRUPT ENABLE 1904 /BY ISSUING THE IOT "INTR" 67X6 WITH THE AC = 1, 1905 / 1906 /AN INTERRUPT REQUEST SHOULD BE ASSERTED. 1907 / 1908 /THE PROGRAM IS EXPECTING AN INTERRUPT. 1909 / 1910 /TECHNICAL NOTE: 1911 / 1912 /IF AN INTERRUPT DOES NOT OCCUR, THEN IT IS ASSUMED THAT ISSUING THE IOT 1913 / "INTR" 67X6 DID NOT SET THE RX8 INTERRUPT ENABLE, OR INTERRUPT REQUEST 1914 / 1915 001200 4507 T7, WAITTY 1916 001201 1377 TAD (200) 1917 001202 4436 LCD /MAINTENANCE 1918 001203 1376 TAD (T7OK) 1919 001204 3002 DCA IPI 1920 001205 6001 ION /*SEE FOOTNOTE NEXT PAGE 1921 001206 7201 CLA IAC 1922 001207 4446 INTR /RX01 INTERRUPT ENABLE 1923 001210 7000 NOP 1924 / NOP 1925 /PROGRAM NOTE: 1926 / 1927 /CLEAR PROGRAM LOCATION "GOBIT" BECAUSE THE TIME FOR THE INTERRUPT 1928 /TO OCCUR HAS EXPIRED (IF IT WAS EVER GOING TO OCCUR THAT IS) 1929 / 1930 001211 3154 DCA GOBIT 1931 001212 4452 E70, ERROR /MISSING INTERRUPT 1932 001213 4502 T7OK, SCOPE 1933 001214 5453 EXIT /END OF TEST 7 1934 /TEST 10 1935 / 1936 /INTERUPT TEST (PART III) 1937 / 1938 /IOT INTR 67X6 SHOULD CLEAR THE INTERRUPT ENABLE FLIP-FLOP, THEN 1939 / 1940 /WITH ALL FLAGS SET, NO INTERRUPTS SHOULD OCCUR 1941 / 1942 /TECHNICAL NOTE: 1943 / 1944 /IF AN UNEXPECTED PROGRAM INTERRUPT OCCURS FROM APPROXIMATELY THIS PC 1945 /THEN THE RX PROGRAM INTERRUPT REQUEST TOOK TOO LONG TO SET 1946 /FROM THE PREVIOUS TEST. 1947 / 1948 / * FOOTNOTE: 1949 / 1950 /THIS IOT "ION" IS ISSUED HERE BECAUSE - IF AN UNEXPECTED PROGRAM 1951 /INTERRUPT HAD OCCURRED IN THE PREVIOUS TEST AND AC SW3 = 1 DIRECTING 1952 /THE PROGRAM NOT TO PRINT AN ERROR - THEN THE PDP'S INTERRUPT FACILITY 1953 /WOULD BE - THEREFORE NEVER EXECUTING THIS TEST PROPERLY 1954 / 1955 001215 4507 T10, WAITTY 1956 001216 4446 INTR /DISABLE RX8 INTERRUPT ENABLE 1957 001217 1375 TAD (E100) 1958 001220 3002 DCA IPI 1959 001221 6001 ION / *SEE FOOTNOTE ABOVE 1960 001222 1377 TAD (200) 1961 001223 4436 LCD 1962 001224 7000 NOP 1963 001225 7410 SKP 1964 001226 4452 E100, ERROR /UNEXPECTED INTERRUPT 1965 001227 4502 SCOPE 1966 001230 5453 EXIT / END OF TEST 10 1967 /TEST 11 1968 / 1969 /INTERRUPT TEST (PART IV) 1970 / 1971 /************************************************************************ 1972 /************************************************************************ 1973 / 1974 /IF AN RX01 CONTROL IS CABLED TO THE RX8 INTERFACE 1975 /THEN DON'T EXECUTE THIS TEST 1976 /BECAUSE THE CLEARING OF THE MAINTENANCE F/F 1977 /RESEMBLES A FILL BUFFER COMMAND 1978 / 1979 /CHECK TO SEE IF RUNNING ON A VT78 SYSTEM 1980 001231 4774 JMS VT78CK /VT78/ RETURN +1 IF NOT VT78 1981 001232 5236 JMP .+4 /VT78 -ALWAYS EXECUTE TEST 1982 1983 001233 1165 T11, TAD RXHERE 1984 001234 7650 SNA CLA 1985 001235 5453 NOTEST 1986 /************************************************************************ 1987 /************************************************************************ 1988 / 1989 /TOGGLING THE MAINTENANCE MODE / SETS ALL FLAGS AND 1990 / 1991 /PERMITS IOT SDN TO CLEAR THE DONE FLAG 1992 / 1993 /THEREFOR NO INTERRUPTS SHOULD OCCUR (ONLY DONE FLAG RAISES AN INTERRUPT REQUEST) 1994 / 1995 / (EVEN THOUGH THE RX01 INTERRUPT ENABLE IS 1) 1996 / 1997 001236 4507 WAITTY 1998 / 1999 001237 1377 TAD (200) 2000 001240 4436 LCD 2001 001241 4436 LCD /MAINTENANCE MODE / 2002 001242 4445 SDN 2003 001243 7000 NOP 2004 / NOP /CLEAR THE DONE FLAG 2005 001244 1373 TAD (E110) 2006 001245 3002 DCA IPI 2007 001246 7201 CLA IAC 2008 001247 4446 INTR /RX01 INTERRUPT ENABLE 2009 001250 7000 NOP 2010 / NOP 2011 001251 7330 STL CLA RAR 2012 001252 4446 E110, INTR /RX01 INTERRUPT ENABLE 2013 001253 1154 TAD GOBIT 2014 001254 7700 SMA CLA 2015 001255 4452 ERROR /UNEXPECTED INTERRUPT 2016 001256 4502 SCOPE 2017 001257 5453 EXIT /END OF TEST 11 2018 /TEST 12 - INITIALIZE TEST PART II [PROGRAMMED] / INTERRUPT TEST PART V 2019 / 2020 /************************************************************************ 2021 /************************************************************************ 2022 / 2023 /IF AN RX01 IS CABLED TO THE RX8 THEN DON'T EXECUTE T12 2024 / 2025 /BUT EXECUTE ALT12 (THE ALTERNATIVE TEST) 2026 / 2027 001260 1165 T12, TAD RXHERE 2028 001261 7650 SNA CLA 2029 001262 5772 JMP ALT12 2030 /************************************************************************ 2031 /************************************************************************ 2032 / 2033 /INTERRUPT TEST PART V / INITIALIZE TEST PART II [PROGRAMMED] 2034 / 2035 /THE PURPOSE OF THIS TEST IS TO VERIFY THAT IOT INIT CLEARS THE INTERRUPT 2036 /ENABLE FLIP-FLOP WHEN SET 2037 / 2038 001263 1371 TAD (E124) 2039 001264 3002 DCA IPI 2040 001265 7201 CLA IAC 2041 001266 4446 INTR / SET THE RX8 INTERRUPT ENABLE F/F 2042 001267 4450 INITB 2043 001270 4451 CKUNIT /VT78/SETUP FOR UNIT A OR B 2044 001271 3154 DCA GOBIT / ISSUE INIT IOT 67X7 2045 /...BUT AN INTERRUPT SHOULD NOT OCCUR 2046 / 2047 /IF AN INTERRUPT OCCURS THEN IOT INIT FAILED TO CLEAR 2048 / 2049 /THE RX8 INTERRUPT ENABLE FLIP-FLOP 2050 / 2051 001272 1377 TAD (200) 2052 001273 4436 LCD 2053 001274 4436 LCD /MAINTENANCE MODE / 2054 / 2055 /THE DONE FLAG SHOULD BE SET, BUT NO INTERRUPTS SHOULD OCCUR 2056 / 2057 001275 7330 STL CLA RAR 2058 001276 4446 E124, INTR / RX8 INTERRUPT ENABLE 2059 001277 1154 TAD GOBIT 2060 001300 7700 SMA CLA 2061 001301 4452 ERROR / IOT INIT 67X7 DID NOT CLEAR THE IE F/F 2062 001302 4503 SUBSCOPE 2063 / 2064 /IOT "INIT" 67X7 SHOULD CLEAR THE RX8 INTERFACE TRANSFER REGISTER, THE 2065 /MAINTENANCE FLIP-FLOP, AND ALL FLAGS (DONE, TRANSFER REQUEST, AND ERROR). 2066 / 2067 001303 7240 STA 2068 001304 4436 LCD /ALL 1'S TO TRANSFER REGISTER 2069 001305 4450 INITB / IOT 67X7 2070 001306 4451 CKUNIT /VT78/SETUP FOR UNIT A OR B 2071 001307 4445 SDN 2072 001310 4465 OK 2073 001311 4452 E120, ERROR /UNEXPECTED DONE FLAG 2074 001312 4503 SUBSCOPE 2075 001313 4443 STR 2076 001314 4465 OK 2077 001315 4452 E121, ERROR /UNEXPECTED TRANSFER REQUEST FLAG 2078 001316 4503 SUBSCOPE 2079 001317 4444 SER 2080 001320 4465 OK 2081 001321 4452 E122, ERROR /UNEXPECTED ERROR FLAG 2082 001322 4503 SUBSCOPE 2083 001323 3166 DCA GOOD / PROGRAM EXPECTS TRANSFER REGISTER = 0 2084 001324 4441 XDRIN 2085 001325 7440 SZA 2086 001326 4452 E123, ERROR /TRANSFER REGISTER NOT = 0 2087 001327 4502 SCOPE 2088 / 2089 /************************************************************************ 2090 /************************************************************************ 2091 / 2092 /NO MORE RX8 INTERFACE TESTS EXIST 2093 / 2094 /IF AN RX01 CONTROL IS CABLED TO THE RX8 INTERFACE 2095 / 2096 /THEN CONTINUE WITH THE NORMAL FLOW OF TESTING 2097 / 2098 X1=1100 2099 / 2100 / END OF PASS " 1 " 2101 / 2102 001330 4464 LOCKUP 2103 001331 1370 TAD (XI) 2104 001332 5767 JMP NOMORETESTS 2105 /************************************************************************ 2106 /************************************************************************ 2107 001333 1333 XSCOPE, . 2108 001334 7300 CLA CLL 2109 001335 1365 TAD ERRORS 2110 001336 7640 SZA CLA 2111 001337 5357 JMP SCOPING 2112 /NO ERROR HAS BEEN DETECTED HERE 2113 2114 / 2115 /JUST SET (PCSCOPE)=THE FIRST ADDRESS OF THE SCOPE LOOP 2116 / 2117 / (IN CASE ANY ERRORS ARE EVER DETECTED LATER) 2118 / 2119 001340 3365 NOSCOPE, DCA ERRORS 2120 001341 1333 TAD XSCOPE 2121 001342 3366 DCA PCSCOPE 2122 001343 5733 JMP I XSCOPE 2123 / " SUBSCOPE " 2124 / 2125 001344 1344 XSSCOPE, . 2126 001345 1344 TAD XSSCOPE 2127 001346 3333 DCA XSCOPE 2128 001347 1365 TAD ERRORS 2129 001350 7650 SNA CLA 2130 001351 5733 JMP I XSCOPE 2131 /ERRORS DO EXIST 2132 / 2133 /IF THIS ERROR IS THE SAME AS THE ADDRESS WITHIN THE PROGRAM LOCATION 2134 /PCSSCOPE, THEN THIS IS A SCOPE LOOP 2135 / 2136 /IF NOT, THEN EXIT 2137 / 2138 001352 1333 TAD XSCOPE 2139 001353 7041 CIA 2140 001354 1364 TAD EPCSCOPE 2141 001355 7640 SZA CLA 2142 001356 5733 JMP I XSCOPE 2143 /THIS IS A SCOPING LOOP 2144 / 2145 001357 4572 SCOPING, LAS /TEST BIT 1 2146 001360 7004 RAL 2147 001361 7700 SMA CLA 2148 001362 5340 JMP NOSCOPE 2149 001363 5766 JMP I PCSCOPE 2150 001364 0000 EPCSCOPE, 0 /ADDRESS +1 OF "SCOPE" OR "SUBSCOPE" 2151 001365 0000 ERRORS, 0 / > 0 IF AN ERROR HAS BEEN DETECTED (FOR THIS TEST) 2152 001366 0000 PCSCOPE, 0 / FIRST ADDRESS OF SCOPE LOOP 2153 001367 0465 PAGE 001370 1100 001371 1276 001372 1400 001373 1252 001374 1165 001375 1226 001376 1213 001377 0200 2154 /ALTERNATE TEST 12 - VERIFICATION OF [INIT] 2155 / 2156 /INITIALIZE TEST PART II 2157 / 2158 /THIS TEST IS EXECUTED IN PLACE OF T12 2159 / 2160 /BECAUSE AN RX01 CONTROLLER IS CABLED TO THE RX8 INTERFACE 2161 / 2162 /IOT "INIT" 67X7 WILL PERFORM AN IMPLIED READ OF TRACK 0 SECTOR 1 2163 / 2164 / (IF DRIVE 0 IS READY) 2165 / 2166 /THEREFORE THE DONE FLAG SHOULD SET AT THE END OF THAT IMPLIED READ. 2167 / 2168 /TECHNICAL NOTE: 2169 / 2170 /IF AN ERROR FLAG IS SET (AND DRIVE 0 IS READY) THEN THE ERROR MAY HAVE 2171 /BEEN THE RESULT FROM THE (IMPLIED READ SECTOR 0) 2172 / 2173 001400 4502 ALT12, SCOPE 2174 001401 4450 INITB 2175 001402 4451 CKUNIT /VT78/SETUP FOR UNIT A OR B 2176 001403 4443 ALT12LOOP, STR 2177 001404 7410 SKP 2178 001405 5212 JMP EA120 /UNEXPECTED TRANSFER REQUEST FLAG 2179 001406 4445 SDN 2180 001407 5203 JMP ALT12LOOP /WAIT FOR THE DONE FLAG 2181 001410 4443 STR 2182 001411 4465 OK 2183 001412 4452 EA120, ERROR /UNEXPECTED TRANSFER REQUEST 2184 001413 4503 SUBSCOPE 2185 001414 4444 SER 2186 001415 4465 OK 2187 001416 4452 EA121, ERROR /UNEXPECTED ERROR FLAG 2188 001417 4503 SUBSCOPE 2189 001420 1777 TAD UNITS /UNITS SELECTED BY OPERATOR 2190 001421 7710 SPA CLA 2191 001422 1376 TAD (40 /PROGRAM EXPECTS DRIVE 0 TO BE READY 2192 / 2193 / 2194 ///////////////////////////////////////////////////////////////////////// 2195 / 2196 / 4 5 - - 8 9 10 11 / 2197 / 2198 / SEL WRITE INIT PAR / 2199 / DRIVE DD PROTECT [DONE] CRC / 2200 / RDY (N/A) / 2201 / 2202 ///////////////////////////////////////////////////////////////////////// 2203 / 2204 / 2205 001423 7107 CLL IAC RTL / 4 [INIT] DONE, OR 204 2206 001424 3166 DCA GOOD 2207 001425 4441 XDRIN / "ACTUAL" STATUS AT DONE 2208 001426 3170 DCA BLANK 2209 001427 1170 TAD BLANK 2210 001430 0136 AND MASK /7677 FOR STANDARD 8 - 277 FOR VT78 2211 001431 3167 DCA EAC / "ACTUAL" STATUS MINUS DELETED DATA (IF ANY) 2212 001432 1167 TAD EAC 2213 001433 7041 CIA 2214 001434 1166 TAD GOOD /EXPECTED STATUS 2215 001435 7650 SNA CLA 2216 001436 5241 JMP .+3 /COMPARED OK 2217 001437 1167 TAD EAC 2218 001440 4452 EA122, ERROR /TRANSFER REGISTER NOT = "GOOD" 2219 001441 4503 SUBSCOPE /NOTE:DRIVES UNDER TEST MUST HAVE DOORS OPEN 2220 / 2221 /READ THE B-CODE STATUS AND EXPECT = 0 2222 / 2223 /PROGRAMMING NOTE: 2224 / 2225 /THE PROGRAM SAVES THE CONTENTS OF "GOOD" FOR REFERENCES WITHIN SUBROUTINE "XRST" 2226 / 2227 /BECAUSE "GOOD" IS REFRESHED WITHING PROGRAM SUBROUTINE "XRSTB" 2228 / 2229 001442 1166 TAD GOOD 2230 001443 3170 DCA BLANK 2231 001444 4477 RSTB 2232 001445 7650 SNA CLA 2233 001446 5252 JMP .+4 2234 001447 3166 DCA GOOD /PROGRAM EXPECTS 0 2235 001450 1167 TAD EAC 2236 001451 4452 EA123, ERROR /B-CODE NOT = 0 2237 001452 4503 SUBSCOPE 2238 / 2239 /READ THE CONTENTS OF THE RX01 STATUS REGISTER USING THE COMMAND # 5 2240 / 2241 /THIS STATUS SHOULD = THE STATUS IN THE TRANSFER REGISTER AT ERROR/DONE 2242 / 2243 001453 4476 RST / "READ STATUS" (COMMAND #5) 2244 / 2245 001454 5453 EXIT / END OF TEST ALT12 (TEST 12) 2246 /THE PURPOSE OF THESE TESTS IS TO VERIFY THE TRANSFER LENGTH OF THE FUNCTION 2247 / "FILL BUFFER" AND "EMPTY BUFFER" OF THE RX01 MICROCONTROLLER 2248 / 2249 /64 TRANSFERS SHOULD OCCUR FOR 12-BIT MODE, AND 2250 /128 TRANSFERS SHOULD OCCUR FOR 8-BIT MODE 2251 / 2252 /THE SECTOR BUFFER IS FILLED WITH A COUNT PATTERN 2253 / 2254 / WORD/BYTE 0 = 0 2255 / 2256 / WORD 2 = 0202 2257 / BYTE 2 = 2 2258 / 2259 / WORD 77 = 7777 2260 / BYTE 177 = 177 2261 / 2262 /FILL BUFFER 8-BIT MODE 2263 / 2264 001455 1375 T16, TAD (100) 2265 / 2266 /FILL BUFFER 12-BIT MODE 2267 / 2268 001456 4436 T13, LCD /ISSUE THE COMMAND 2269 001457 1375 TAD (100) 2270 001460 0112 AND COMMAND 2271 001461 7640 SZA CLA 2272 001462 7307 CLL CLA IAC RTL / 4 2273 001463 1374 TAD (6000) 2274 001464 3132 DCA TESTP 2275 001465 4455 GETAPATTERN 2276 001466 1373 TAD (WBUFFER-1) 2277 001467 3010 DCA A10 /PROGRAMS "WRITE" BUFFER 2278 001470 1372 TAD (-WBUFFER+1) 2279 001471 3133 DCA XA10 / -STARTING ADDRESS OF WRITE BUFFER 2280 001472 4277 FB, JMS FBEB 2281 001473 5453 EXIT / ** END OF TESTS 13, OR 16 2282 001474 1410 TAD I A10 2283 001475 4442 XDROUT 2284 001476 5272 JMP FB / AND "FILL THE BUFFER" 2285 / FILL / EMPTY BUFFER SUBROUTING FOR TESTS: *** 13, 16, / 14, 17 *** 2286 / 2287 001477 1477 FBEB, . 2288 001500 4443 STR 2289 001501 5304 JMP .+3 /WAIT FOR TRANSFER REQUEST FLAG 2290 001502 2277 ISZ FBEB 2291 001503 5677 JMP I FBEB 2292 001504 4445 SDN 2293 001505 5300 JMP FBEB+1 /WAIT FOR THE DONE FLAG 2294 001506 3006 DCA 6 /FIRST TIME FOR WAIT. 2295 001507 1112 TAD COMMAND 2296 001510 3170 DCA BLANK 2297 001511 4444 SER 2298 001512 4465 OK 2299 001513 4452 E130, ERROR /UNEXPECTED ERROR FLAG 2300 001514 4503 SUBSCOPE 2301 / 2302 / 64 OR 128 BYTES SHOULD HAVE BEEN TRANSFERRED IN OR OUT 2303 / 2304 001515 1375 TAD (100) 2305 001516 0112 AND COMMAND / 200 FOR 8-BIT MODE 2306 001517 1375 TAD (100) 2307 001520 3166 DCA GOOD 2308 001521 1166 TAD GOOD 2309 001522 7041 CIA / 100 FOR 12-BIT MODE 2310 001523 1010 TAD A10 2311 001524 1133 TAD XA10 2312 001525 7440 SZA /SKIP IF TRANSFERS OK 2313 001526 4452 E131, ERROR / (AC) = - # MEAN NOT ENOUGH TRANSFERS 2314 001527 4502 SCOPE / (AC) > 0 MEANS TOO MANY TRANSFERS 2315 001530 5677 JMP I FBEB /RETURN IS TO EXIT 2316 2317 2318 /****************** 2319 /CONSOLE PACKAGE 2320 /****************** 2321 /************ 2322 /CONSOL 2323 /************ 2324 2325 2326 2327 001531 0000 PNTID, 0 /PRINT BEGIN MESSAGES 2328 001532 6007 CAF /TO REPLACE A CLEAR SWITCH 2329 001533 4470 APT8 /TEST FOR APT SYSTEM. 2330 001534 4473 PRINT 2331 001535 6472 MIDENTIFICATION /ID MESSAGE 2332 001536 4473 PRINT 2333 001537 6453 REMOVE /REMOVE DIAGNOSTIC DISKETTE 2334 001540 4473 PRINT 2335 001541 6505 MSELECT /SELECT PARAMETERS 2336 001542 7200 CLA 2337 001543 3135 DCA UNITCK /CLEAR IT 2338 001544 5731 JMP I PNTID /EXIT PNTID 2339 / 2340 / 2341 / 2342 / 2343 / 2344 /ROUTINE TO DETERMINE IF ON APT-8. IF APT-8 IS SELECTED 2345 /THEN CONSOLE AND TEST PARAMETER SELECTION FUNCTIONS ARE NOP, 2346 /IF NOT ROUTINE IS NOP. 2347 / 2348 001545 0000 XAPT8, 0 2349 001546 7300 CLA CLL 2350 001547 4472 CHEK22 2351 001550 7410 SKP /ON APT-8 2352 001551 5745 JMP I XAPT8 2353 001552 1022 TAD 22 2354 001553 0361 AND K7377 /NOP CONSOLE PACKAGE 2355 001554 3022 DCA 22 /RESTORE 22 2356 001555 1173 TAD K7000 2357 001556 3762 DCA I HLTNOP 2358 001557 1020 TAD 20 /GET TEST PARAMETERS, 2359 001560 5771 JMP AROUND-2 /MAIN FLOW OF PROGRAM. 2360 001561 7377 K7377, 7377 2361 001562 3316 HLTNOP, C8RET4-1 2362 001571 0231 PAGE 001572 0665 001573 7113 001574 6000 001575 0100 001576 0040 001577 4235 2363 /SECTOR BUFFER ADDRESSING VERIFICATION TESTS 2364 / 2365 /OPERATIONAL NOTE: 2366 / 2367 / (1). FOR TEST 14 TO EMPTY THE BUFFER IN 12-BIT MODE SUCESSFULLY, TEST 13 2368 / MUST HAVE FILLED THE BUFFER IN 12-BIT MODE SUCESSFULLY. 2369 / 2370 / (2). FOR TEST 17 TO EMPTY THE BUFFER IN 8-BIT MODE SUCESSFULLY, TEST 16 2371 / MUST HAVE FILLED THE BUFFER IN 8-BIT MODE SUCESSFULLY 2372 / 2373 /THE PURPOSE OF THESE TESTS IS TO VERIFY THAT THE CONTENTS OF THE SECTOR 2374 /BUFFER REMAIN UNCHANGED AFTER THE PREVIOUS EMPTY BUFFER 8-BIT MODE TEST, AND 2375 /AFTER THE PREVIOUS EMPTY BUFFER 12-BIT MODE TEST 2376 / 2377 001600 7410 T20, SKP /VERIFY EMPTY BUFFER 8-BIT MODE 2378 / 2379 001601 7410 T15, SKP /VERIFY EMPTY BUFFER 12-BIT MODE 2380 / 2381 /THE PURPOSE OF THESE TESTS IS TO VERIFY THE CONTENTS OF THE SECTOR BUFFER AFTER 2382 /THE PREVIOUS FILL BUFFER 8-BIT MODE TEST, AND THE PREVIOUS FILL BUFFER 2383 /12-BIT MODE TEST. 2384 / 2385 /EMPTY BUFFER 8-B IT MODE 2386 / 2387 001602 1377 T17, TAD (40 2388 / 2389 /EMPTY BUFFER 12-B IT MODE 2390 / 2391 001603 7105 T14, CLL IAC RAL 2392 001604 4436 LCD /ISSUE THE COMMAND 2 OR 102 2393 001605 1376 TAD (100) 2394 001606 0112 AND COMMAND 2395 001607 7640 SZA CLA 2396 001610 7307 CLL CLA IAC RTL 2397 001611 1375 TAD (6000) 2398 001612 3132 DCA TESTP 2399 001613 4455 GETAPATTERN /COUNT PATTERN (PATTERN #6) 2400 001614 1374 TAD (RBUFFER-1) 2401 001615 3010 DCA A10 /PROGRAMS "READ" BUFFER 2402 001616 1373 TAD (-RBUFFER+1) 2403 001617 3133 DCA XA10 / -STARTING ADDRESS OF READ BUFFER 2404 001620 1010 TAD A10 2405 001621 3011 DCA A11 / 2406 001622 4772 EB, JMS FBEB 2407 001623 5230 JMP EBCOMPARE 2408 001624 3410 DCA I A10 2409 001625 4441 XDRIN 2410 001626 3411 DCA I A11 / AND "EMPTY THE BUFFER" 2411 001627 5222 JMP EB 2412 /COMPARE THE CONTENTS OF THE SECTOR BUFFER 2413 / 2414 /WITH THE GOOD DATA IN "WBUFFER" 2415 / 2416 001630 1371 EBCOMPARE, TAD (WBUFFER-1) 2417 001631 3133 DCA XA10 /EXPECTED 2418 001632 1374 TAD (RBUFFER-1) 2419 001633 3134 DCA XA11 /ACTUAL 2420 001634 3113 DCA COMPRERROR / = 1 IF COMPARE ERROR 2421 001635 2133 EBLOOP, ISZ XA10 2422 001636 2134 ISZ XA11 2423 001637 7100 CLL 2424 001640 1376 TAD (100) 2425 001641 0112 AND COMMAND 2426 001642 7640 SZA CLA 2427 001643 7120 STL /SET LINK IF 8-BIT MODE 2428 001644 1533 TAD I XA10 2429 001645 7430 SZL 2430 001646 0370 AND (377) 2431 001647 3166 DCA GOOD 2432 001650 1166 TAD GOOD 2433 001651 7041 CIA 2434 001652 1534 TAD I XA11 2435 001653 7650 SNA CLA 2436 001654 5263 JMP EBOK 2437 /A COMPARE ERROR HAS OCCURRED 2438 / 2439 /INCORRECT DATA WAS TRANSFERRED FROM THE RX01 CONSTROL SECTOR BUFFER 2440 /TO THE RX8 INTERFACE AND SAVED WITHIN PROGRAM LOCATIONS BEGINNING WITH "RBUFFER" 2441 / 2442 /THAT DATA, HOWEVER, MAY HAVE BEEN TRANSFERRED INCORRECTLY, *TO* 2443 /THE RX01 CONTROL FROM THE RX8 INTERFACE PREVIOUSLY WITHING T12, OR T13 2444 / 2445 001655 1367 TAD (-WBUFFER) 2446 001656 1133 TAD XA10 2447 001657 3170 DCA BLANK 2448 001660 1534 TAD I XA11 /ACTUAL WORD/BYTE FROM SECTOR BUFFER 2449 001661 4452 E140, ERROR /IS NOT = EXPECTED 2450 001662 4502 SCOPE 2451 001663 1376 EBOK, TAD (100) 2452 001664 0112 AND COMMAND 2453 001665 1376 TAD (100) 2454 001666 7041 CIA 2455 001667 1133 TAD XA10 2456 001670 1366 TAD (-WBUFFER+1) 2457 001671 7640 SZA CLA 2458 001672 5235 JMP EBLOOP 2459 /END OF TESTS 14, 15, 17, OR 20 2460 / 2461 /...ALSO 2462 / 2463 /END OF TESTS 31, 32, OR 33 2464 / 2465 001673 5453 EXIT 2466 / 2467 /SECTOR BUFFER DATA TESTING 2468 / 2469 /THE PURPOSE OF THESE TESTS IS TO VERIFY THAT ALL 1'S AND ALL 0'S CAN BE 2470 /SET INTO THE SECTOR BUFFER 2471 / 2472 /SECTOR BUFFER DATA TESTING 2473 / 2474 /FILL THE SECTOR BUFFER WITH ALL 1'S 2475 / 2476 001674 1370 T22, TAD (377) / " GOOD " - ALL 1'S 2477 / 2478 /FILL THE SECTOR BUFFER WITH ALL 0'S 2479 / 2480 /FILL THE SECTOR BUFFER WITH 128 BYTES OF "GOOD" 2481 / 2482 001675 4765 T21, JMS FB128BYTES 2483 001676 4764 JMS TX / "GOOD" = ALL 0'S 2484 /************************************************************************ 2485 /************************************************************************ 2486 / 2487 /IF THIS IS TEST #22 2488 / 2489 /THEN TEST FOR A DRIVE SELECTION 2490 / 2491 /IF NO DRIVES ARE ENABLED WITHIN PROGRAM LOCATION " DTESTP " 2492 / 2493 /THEN THERE ARE NO MORE RX01 CONTROL TESTS TO EXECUTE 2494 / 2495 001677 1171 TAD TEST 2496 001700 1363 TAD (-T22) 2497 001701 7640 SZA CLA 2498 001702 5453 EXIT / END OF TEST 21 2499 001703 1762 TAD UNITS 2500 001704 7640 SZA CLA 2501 001705 5453 EXIT / END OF TEST 22 2502 XC=300 2503 / 2504 / END OF PASS " C " 2505 / 2506 001706 7340 CLL CLA CMA 2507 001707 3761 DCA COUNT /INIT TIMING FOR APT IF ONLY 2508 /INTERFACE IS TO BE TESTED. 2509 001710 4760 JMS XTICK 2510 001711 4464 LOCKUP 2511 001712 1357 TAD (XC) 2512 001713 5773 JMP NOMORETESTS 2513 /************************************************************************ 2514 /************************************************************************ 2515 001714 7327 T24, CLA STL IAC RTL 2516 001715 5756 JMP IRDWR / 6 (READ) 2517 001716 7307 T25, CLL CLA IAC RTL 2518 001717 5756 JMP IRDWR / 4 (WRITE) 2519 001720 1355 T26, TAD (14) 2520 001721 5756 JMP IRDWR / 14 (WRITE DELETED DATA) 2521 / 2522 /THE PURPOSE OF THESE TESTS IS TO VERIFY 2523 /THE RX01 CONTROL CLOCK SET OF THE ERROR FLAG 2524 / 2525 /BY FORCING A SEE ERROR TO OCCUR 2526 / (ATTEMPTING TO PERFORM A FUNCTION ON AN NON-EXISTANT SECTOR 0) 2527 / 2528 /NOTE:THE CONTENTS OF THE SECTOR BUFFER SHOULD REMAIN UNCHANGED AND CONTAIN 2529 / THE PATTERN OF ALL 1'S AS FILLED WITHIN TEST 22 BECAUSE THE READ SHOULD 2530 / HAVE NEVER OCCURRED. 2531 / 2532 / 1. THE STATUS WITHIN THE TRANSFER REGISTER AT ERROR SHOULD = 0 2533 / 2. THE B-CODE STATUS SHOULD = 70 (UNABLE TO FIND SECTOR) 2534 / 3. THE STATUS FROM THE RST COMMAND (12) SHOULD = DRIVE READY (200) 2535 / 2536 /THE LENGTH (# OF TRANSFERS TO THE RX01 CONTROL) SHOULD BE TWO 2537 / (ONE EACH FOR THE SECTOR AND FOR THE TRACK) 2538 / 2539 /GET THE ONE UNIT ONLE (UNIT 1 IF UNIT 0 IS NOT READY) 2540 / 2541 /ROUTINE TO WAIT FOR SKIP ON AN IOT. IF SKIP DOES NOT OCCUR 2542 /THE ROUTINE WILL PRINT PC POINT IN ERROR AND GO BACK ABOUT ITS 2543 /BUSINESS. 2544 / 2545 001722 0000 XWAIT, 0 2546 001723 1006 TAD 6 2547 001724 7650 SNA CLA 2548 001725 5330 JMP .+3 2549 001726 7240 STA 2550 001727 3006 DCA 6 2551 001730 2153 ISZ H1 2552 001731 5722 JMP I XWAIT 2553 001732 2116 ISZ HANGER 2554 001733 5722 JMP I XWAIT 2555 001734 1322 TAD XWAIT /GET ERROR PC 2556 001735 1354 TAD (-E3PRE 2557 001736 7710 SPA CLA /DID CALL COME FROM PRETEST. 2558 001737 5753 JMP E3PRE /YES. REPORT ERROR. 2559 001740 1322 TAD XWAIT /GET BACK ERROR 2560 001741 5752 JMP HUNGUP 2561 / 2562 001752 3341 PAGE 001753 0425 001754 7353 001755 0014 001756 2000 001757 0300 001760 4133 001761 4152 001762 4235 001763 6104 001764 2303 001765 4541 001766 0665 001767 0664 001770 0377 001771 7113 001772 1477 001773 0465 001774 7313 001775 6000 001776 0100 001777 0040 2563 002000 3112 IRDWR, DCA COMMAND 2564 002001 3777 DCA WUNITS 2565 002002 4460 GETUNIT 2566 002003 1112 TAD COMMAND 2567 002004 1776 TAD UNIT 2568 002005 3170 DCA BLANK 2569 002006 1170 TAD BLANK 2570 002007 4436 LCD / 6, 4, OR 14 2571 002010 3167 DCA EAC 2572 002011 5214 JMP .+3 2573 002012 2167 ISZ EAC 2574 002013 4442 XDROUT 2575 002014 4443 STR 2576 002015 7410 SKP 2577 002016 5212 JMP .-4 /SECTOR 0 - TRACK 0 2578 002017 4445 SDN 2579 002020 5214 JMP .-4 /WAIT FOR DONE FLAG 2580 002021 7344 CLL STA RAL 2581 002022 1167 TAD EAC 2582 002023 7650 SNA CLA 2583 002024 5231 JMP .+5 2584 002025 7305 CLL CLA IAC RAL 2585 002026 3166 DCA GOOD / 2 TRANSFERS WERE EXPECTED 2586 002027 1167 TAD EAC 2587 002030 4452 E240, ERROR / # OF TRANSFER REQUEST FLAGS NOT OK 2588 002031 4503 SUBSCOPE / (AC) = # OF TRANSFERS OCCURRED 2589 / 2590 /THE ERROR FLAG SHOULD = 1 2591 / 2592 002032 4444 SER 2593 002033 4452 E245, ERROR /MISSING ERROR FLAG 2594 002034 4503 SUBSCOPE 2595 /IF THIS IS T24, THEN DELETED DATA [MAY] BE SET (BUT THAT'S OK FOR NOW), 2596 /THE STATUS AT ERROR SHOULD = X (100 MAYBE DELETED DATA)+200 DRIVE READY 2597 / 2598 /IF THIS IS T25, THEN DELETED DATA [SHOULD NOT] BE SET, THEREFORE 2599 /THE CONTENTS OF THE TRANSFER REGISTER (THE STATUS AT THE ERROR) SHOULD = 200 2600 / 2601 /IF THIS IS T26, THEN DELETED DATA [MUST] BE SET, THEREFORE 2602 /THE STATUS SHOULD = 300 (200 DRIVE READY)+(100 DELETED DATA) 2603 / 2604 002035 1171 TAD TEST /FOR T # 2605 002036 1375 TAD (-T25 2606 002037 7650 SNA CLA 2607 002040 5245 JMP .+5 / T25 THEN " JUMP .+5 " 2608 002041 1171 TAD TEST 2609 002042 1374 TAD (-T26 2610 002043 7650 SNA CLA 2611 002044 1373 TAD (100) / T26 MEANS EXPECT DELETED DATA 2612 002045 3166 DCA GOOD / T24 2613 002046 4441 XDRIN /ACTUAL STATUS 2614 002047 3170 DCA BLANK 2615 002050 1170 TAD BLANK 2616 002051 0372 AND (377 /VT78/ 2617 002052 3167 DCA EAC 2618 / 2619 /IF THIS IS T24, THEN DELETED DATA [MAY] BE SET (BUT THAT'S OK FOR NOW) 2620 / 2621 002053 1171 TAD TEST / FOR T # 2622 002054 1371 TAD (-T24 2623 002055 7640 SZA CLA / T24 ? 2624 002056 5262 JMP .+4 2625 002057 1136 TAD MASK / YES 2626 002060 0170 AND BLANK /ACTUAL STATUS MINUS DELETED DATA 2627 002061 3167 DCA EAC 2628 002062 1167 TAD EAC 2629 002063 7041 CIA 2630 002064 1166 TAD GOOD /EXPECTED 2631 002065 7650 SNA CLA 2632 002066 5271 JMP .+3 2633 002067 1167 TAD EAC 2634 002070 4452 E241, ERROR /STATUS NOT = "GOOD" 2635 002071 4503 SUBSCOPE 2636 / 2637 /THE B-CODE SHOULD = 70 (UNABLE TO FIND SECTOR) 2638 / 2639 002072 4477 RSTB /RETURN WITH AC = CODE 2640 002073 1370 TAD (-70) 2641 002074 7650 SNA CLA 2642 002075 5302 JMP .+5 2643 002076 1367 TAD (70) 2644 002077 3166 DCA GOOD 2645 002100 1167 TAD EAC 2646 002101 4452 E242, ERROR /B-CODE STATUS NOT = CODE # 70 2647 002102 4502 SCOPE 2648 /THE CONTENTS TO THE SECTOR BUFFER SHOULD REMAIN UNCHANGED 2649 / 2650 /THE CONTENTS OF THE SECTOR BUFFER SHOULD = ALL BYTES OF 1'S 2651 / 2652 002103 1372 TAD (377) 2653 002104 3166 DCA GOOD /EXPECT ALL 1'S 2654 002105 4766 JMS TX /VERIFY SECTOR BUFFER SUBROUTINE 2655 002106 5453 EXIT / END OF TEST 24, 25, 26 2656 / 2657 / TEST 27 - SEEK AND CRC VERIFICATION (FIRST PROGRAMMED HEAD MOVEMENT) 2658 / 2659 /THE PURPOSE OF THIS TEST IS TO VERIFY THAT SUPPLYING THE RX01 WITH A TRACK 2660 /WHOSE VALUE IS GREATER THAN 114 (OCTAL) EXPECTS A B-CODE ERROR OF 40 2661 / 2662 002107 1365 T27, TAD (115) 2663 002110 3170 DCA BLANK 2664 002111 7327 STL CLA IAC RTL 2665 002112 4436 LCD /ISSUE READ COMMAND 2666 002113 3167 DCA EAC 2667 002114 7410 SKP 2668 002115 2167 ISZ EAC / + TO TRANSFER COUNT 2669 002116 1170 TAD BLANK / SECTOR TRACK 2670 002117 4442 XDROUT /TO RX01 CONTROL 2671 002120 4443 STR / WAIT FOR TRANSFER REQUEST FLAG 2672 002121 7410 SKP 2673 002122 5315 JMP .-5 2674 002123 4445 SDN / WAIT FOR DONE FLAG 2675 002124 5320 JMP .-4 2676 002125 3006 DCA 6 /WAIT POINTER 2677 002126 7344 CLL STA RAL / ONLY 2 TRANSFER REQUESTS WERE EXPECTED 2678 002127 1167 TAD EAC / ACTUAL # OF TRANSFER REQUEST OCCURRED 2679 002130 7650 SNA CLA 2680 002131 5336 JMP .+5 2681 002132 7305 CLL CLA IAC RAL 2682 002133 3166 DCA GOOD 2683 002134 1167 TAD EAC 2684 002135 4452 E270, ERROR / # OF TRANSFER REQUEST FLAGS NOT OK 2685 002136 4503 SUBSCOPE / (AC) CONTAINS THE # OF REQUEST OCCURRED 2686 / 2687 /THE ERROR FLAG SHOULD = 1 2688 / 2689 002137 4444 SER 2690 002140 4452 E271, ERROR / MISSING ERROR FLAG 2691 002141 4503 SUBSCOPE 2692 /THE B-CODE SHOUD = 40 2693 / 2694 002142 4477 RSTB 2695 002143 1364 TAD (-40) 2696 002144 7650 SNA CLA 2697 002145 5352 JMP .+5 2698 002146 1363 TAD (40 2699 002147 3166 DCA GOOD 2700 002150 1167 TAD EAC 2701 002151 4452 E272, ERROR / B-CODE NOT = 40 2702 002152 4502 SCOPE 2703 / 2704 /THE CONTENTS OF THE SECTOR BUFFER SHOULD REMAIN UNCHANGED 2705 / 2706 002153 1372 TAD (377) 2707 002154 3166 DCA GOOD / EXPECT ALL 1'S 2708 002155 4766 JMS TX 2709 / 2710 002156 5453 EXIT /END OF TEST 27 2711 002163 0040 PAGE 002164 7740 002165 0115 002166 2303 002167 0070 002170 7710 002171 6064 002172 0377 002173 0100 002174 6060 002175 6062 002176 4242 002177 4236 2712 /TEST 30 - SEEK AND CRC VERIFICATION 2713 / 2714 /READ ALL SECTORS OF ALL TRACKS 2715 / 2716 /IF THE DATA IS OF KNOWN QUALITY THEN MONITOR FOR CRC ERRORS 2717 / 2718 002200 3132 T30, DCA TESTP 2719 002201 5777 JMP TEST4 2720 /TEST 31 - FIRST WRITE EVER 2721 / 2722 /WRITING TO THE DISK SHOULD NOT DESTROY THE CONTENTS OF THE SECTOR BUFFER 2723 / 2724 /TECHNICAL NOTE: 2725 / 2726 /THIS TEST WRITES ON ONE UNIT ONLY - UNIT 0, BUT IF UNIT 0 WAS 2727 /NOT SELECTED B?Y THE OPERATOR AT THE START OF THIS PROGRAM 2728 /THEN THIS TEST WRITES ON UNIT 1 2729 / 2730 /PROGRAMMING NOTE: 2731 / 2732 /THIS "DCA WUNITS" IS NECESSARY IF THIS TEST IS LOCKED WITH SWS 2733 / 2734 002202 3776 T31, DCA WUNITS 2735 / 2736 002203 7307 CLL CLA IAC RTL / 4 (WRITE 8-BIT MODE) 2737 002204 1375 TAD (6000) 2738 002205 3132 DCA TESTP /COUNT PATTERN 6 2739 002206 7240 STA 2740 002207 3120 DCA RDC 2741 / "GETATRACK" 2742 / 2743 002210 1027 TAD OD 2744 002211 3131 DCA TARGET / TRACK = (OD) 2745 / "GETASECTOR" 2746 / 2747 002212 1031 TAD FIRST 2748 002213 3124 DCA STARGET / SECTOR = (FIRST) 2749 /GET UNIT 0 (OR UNIT 1 IF UNIT 0 NOT SELECTED) 2750 / 2751 002214 4460 GETUNIT 2752 / 2753 / "INITSECTOR" 2754 / 2755 002215 7240 STA 2756 002216 3122 DCA SECTORS / 1 SECTOR (FIRST) TO WRITE 2757 002217 1374 TAD (.+3) 2758 002220 3773 DCA XWRITE / RETURN ADDRESS FROM WRITE SUBROUTINE 2759 002221 5772 JMP REWRITE+1 / JMP TO WRITE SUBROUTINE 2760 / 2761 /RETURN HERE FROM SUBROUTINE " XWRITE " 2762 / 2763 / JMP TO T17 TO VERIFY THE CONTENTS OF THE SECTOR BUFFER 2764 / 2765 002222 5771 JMP T17 2766 /TEST 32 - INIT [PROGRAMMED] PART III / IMPLIED READ OF TRACK 1 SECTOR 1 2767 / 2768 /************************************************************************ 2769 /************************************************************************ 2770 / 2771 /IF THE CONTENTS OF PROGRAM LOCATIONS: 2772 / 2773 / " OD " = 1, AND 2774 / " FIRST " = 1, 2775 / 2776 /AND IF UNIT 0 WAS SELECTED BY THE OPERATOR AT THE START OF THIS PROGRAM 2777 / 2778 /THEN EXECUTE THIS TEST 2779 / 2780 002223 1031 T32, TAD FIRST 2781 002224 7110 CLL RAR 2782 002225 7640 SZA CLA 2783 002226 5453 NOTEST 2784 002227 1027 TAD OD 2785 002230 7110 CLL RAR 2786 002231 7640 SZA CLA 2787 002232 5453 NOTEST 2788 002233 1770 TAD UNITS 2789 002234 7700 SMA CLA 2790 002235 5453 NOTEST 2791 /************************************************************************ 2792 /************************************************************************ 2793 / 2794 / 2795 /THE PURPOSE OF THIS TEST IS TO VERIFY THE "IMPLIED READ" OF TRACK 1 SECTOR 1 2796 /AS PART OF THE INITIALIZE FUNCTION 2797 / 2798 /FIRST FILL THE SECTOR BUFFER WITH ALL 0'S, THEN ISSUE IOT INIT 67X7 2799 / 2800 /INIT SHOULD READ THE CONTENTS OF TRACK 1 SECTOR 1 OF UNIT 0 2801 / 2802 /INTO THE SECTOR BUFFER 2803 / 2804 002236 4767 JMS FB128BYTES / FILL THE SECTOR BUFFER 2805 002237 4447 INIT /OF UNIT 0 2806 / 2807 /JMP TO TEST 17 TO VERIFY THE CONTENTS OF THE SECTOR BUFFER 2808 / 2809 002240 5771 JMP T17 2810 /TEST 33 - FIRST READ [PROGRAMMED] EVER 2811 / 2812 /FIRST FILL THE SECTOR BUFFER WITH ALL 0'S 2813 / 2814 /THEN READ FROM THE DISK TRACK # (OD), SECTOR (FIRST) 2815 / 2816 /THE CONTENTS OF THE SECTOR BUFFER SHOULD BE THAT OF THE PREVIOUS TEST 2817 / 2818 /PROGRAMMING NOTE: 2819 / 2820 /THIS "DCA WUNITS" IMPERATIVE IF T27 WAS EXECUTED PREVIOUSLY THIS PASS 2821 / 2822 002241 3776 T33, DCA WUNITS 2823 002242 4767 JMS FB128BYTES / FILL THE SECTOR BUFFER 2824 002243 7307 CLL CLA IAC RTL 2825 002244 3132 DCA TESTP / 4 (READ 8-BIT MODE) 2826 /PROGRAMMING NOTE: 2827 / 2828 /THE FOLLOWING CODE TO " JMP T17 " IS IMPERATIVE HOUSKEEPING PRIMING THE 2829 / " READ " SUBROUTINE 2830 / 2831 002245 7240 STA 2832 002246 3120 DCA RDC 2833 2834 / "GETATRACK" 2835 / 2836 002247 1027 TAD OD 2837 002250 3131 DCA TARGET 2838 / "GETASECTOR" 2839 / 2840 002251 1031 TAD FIRST 2841 002252 3124 DCA STARGET 2842 /GET ONE UNIT ONLY (UNIT 1 IF UNIT 0 IS NOT READY) 2843 / 2844 002253 4460 GETUNIT / SELECT A UNIT 2845 002254 7240 STA 2846 002255 3140 DCA R1RETRY /SO NO "REWRITES" OCCUR 2847 / "INITSECTOR" 2848 / 2849 002256 7240 STA 2850 002257 3122 DCA SECTORS / 1 SECTOR TO READ (#FIRST) 2851 002260 1366 TAD (.+4) 2852 002261 3765 DCA XREAD /RETURN ADDRESS FROM " READ " SUBROUTINE 2853 002262 5764 JMP READRETRY / JMP TO READ SUBROUTINE 2854 /THIS "WRITE" IS IMPERATIVE FOR REFERENCES WITHIN "XREAD" 2855 / 2856 002263 4510 WRITE / "WRITE" FOR PROGRAM REFERENCES ONLY 2857 / 2858 /RETURN HERE FROM SUBROUTINE " XREAD " 2859 / 2860 002264 5771 JMP T17 / TO TEST 17 2861 /TEST 23 - DRIVE READY SELECTION (ALL UNITS SELECTED BY OPERATOR) 2862 / 2863 /THE PURPOSE OF THIS TEST IS TO VERIGY THE "SEL DRV RDY" STATUS BIT 4 2864 / 2865 002265 1363 T23, TAD (200) 2866 002266 3170 DCA BLANK 2867 002267 4460 GETUNIT 2868 002270 1762 TAD UNIT 2869 002271 4476 RST 2870 002272 4454 DONE 2871 002273 5265 JMP T23 2872 002274 5453 EXIT / END OF TEST 27 2873 / 2874 /THE PURPOSE OF THESE TESTS IS TO WRITE-READ AND PROGRAM VERIFY THE DATA 2875 /ON ALL TRACKS FROM (OD) TO (ID), AND ALL SECTORS FROM (FIRST) TO (LAST), 2876 /EXERCISING 8-BIT MODE, 12-BIT MODE, AND DELETED DATA 2877 / 2878 /A PATTERN OF ALL 1'S ARE WRITTEN TO THE DISK 2879 / 2880 / WORD/BYTE 1 IS THE TRACK ID (BITS 5-11) 2881 / WORD/BYTE 2 IS THE SECTOR ID (BITS 7-11) 2882 / 2883 / WORDS 3 THRU 62 IS THE ALL 1'S DATA 2884 / 2885 / BYTES 3 THRU 126 IS THE ALL 1'S DATA 2886 / 2887 / WORDS 63, AND 64 ARE SPECIAL SUMCHECK WORDS 2888 / 2889 / BYTES 127, AND 128 ARE SPECIAL SUMCHECK WORDS 2890 / 2891 /TEST 37 - 8 BIT MODE WITH DELETED DATA 2892 / 2893 002275 7305 T37, CLL CLA IAC RAL / 6 (DELETED DATA - 8/BIT MODE) 2894 / 2895 /TEST 35 - 8 BIT MODE 2896 / 2897 002276 1361 T35, TAD (2) / 4 (8/BIT MODE) 2898 / 2899 /TEST 36 - 12 BIT MODE WITH DELETED DATA 2900 / 2901 002277 1361 T36, TAD (2) / 2 (DELETED DATA - 12/BIT MODE) 2902 / 2903 /TEST 34 - 12 BIT MODE 2904 / 2905 002300 1360 T34, TAD (1000) /ALL 1'S PATTERN 2906 002301 3132 DCA TESTP / (12/BIT MODE) 2907 002302 5757 JMP THETEST 2908 /THIS SUBROUTINE IS ENTERED FROM TESTS: *** T21, T22, (T24, T25, T26), T27 2909 / 2910 /EMPTY THE BUFFER TO VERIFY THE CONTENTS = ALL 1'S OR ALL 0'S 2911 / 2912 002303 2303 TX, . 2913 002304 3170 DCA BLANK / BYTE # 1 TO 128 2914 002305 1356 TAD (102) 2915 002306 4436 LCD /EMPTY BUFFER 8-BIT MODE 2916 002307 5322 JMP T20STR-1 2917 002310 4441 T20XDRIN, XDRIN 2918 002311 3167 DCA EAC /DATA FROM SECTOR BUFFER 2919 002312 1167 TAD EAC 2920 002313 7041 CIA 2921 002314 1166 TAD GOOD /COMPARED WITH EXPECTED DATA 2922 002315 7650 SNA CLA 2923 002316 5321 JMP .+3 2924 002317 1167 TAD EAC 2925 002320 4452 E211, ERROR /DATA "TO" NOT = DATA "FROM" 2926 002321 4503 SUBSCOPE 2927 002322 2170 ISZ BLANK / 1 TO 128 2928 002323 4443 T20STR, STR 2929 002324 7410 SKP 2930 002325 5310 JMP T20XDRIN 2931 002326 4445 SDN 2932 002327 5323 JMP T20STR 2933 002330 4444 SER 2934 002331 4465 OK 2935 002332 4452 E212, ERROR /UNEXPECTED ERROR FLAG 2936 002333 4502 SCOPE 2937 002334 5703 JMP I TX 2938 /VT78/ ROUTINE TO RESELECT UNIT UNDER TEST. 2939 /ON VT78 A CAF OR INIT INSTRUCTION AUTOMATICALLY 2940 /RESELECTS UNIT A(RXA). 2941 2942 /THE FLAGS ARE CLEARED AT THIS TIME DUE TO POSSIBLE 2943 /GLITCHES IN THE RX8 INTERFACE. 2944 002335 0000 XCKUNT, 0 2945 002336 7300 CLA CLL 2946 002337 1135 TAD UNITCK /0=UNIT A 1=UNIT B 2947 002340 4435 SEL /RESETS UNIT SELECT TO UNIT UNDER TEST 2948 002341 4445 SDN /CLEAR FLAGS 2949 002342 7000 NOP 2950 002343 4444 SER 2951 002344 7000 NOP 2952 002345 4443 STR 2953 002346 7300 CLA CLL 2954 002347 5735 JMP I XCKUNT 2955 002356 0102 PAGE 002357 3000 002360 1000 002361 0002 002362 4242 002363 0200 002364 3425 002365 3416 002366 2264 002367 4541 002370 4235 002371 1602 002372 3207 002373 3200 002374 2222 002375 6000 002376 4236 002377 2514 2956 /READ THE B-CODE STATUS 2957 / 2958 /THIS SUBROUTINE IS ENTERED FROM TESTS: *** ALT12, (T24, T25, T26), T27 2959 / 2960 002400 2400 XRSTB, XRSTB 2961 002401 1377 TAD (16) 2962 002402 4436 LCD /ISSUE COMMAND # 7 2963 002403 4443 STR 2964 002404 4465 OK 2965 002405 4452 E7000, ERROR /UNEXPECTED TRANSFER REQUEST FLAG 2966 002406 4503 SUBSCOPE 2967 002407 4445 SDN 2968 002410 5203 JMP .-5 2969 002411 4441 XDRIN 2970 002412 3167 DCA EAC /ACTUAL STATUS 2971 002413 4444 SER 2972 002414 5217 JMP .+3 2973 002415 1167 TAD EAC 2974 002416 4452 E7001, ERROR /UNEXPECTED ERROR FLAG 2975 002417 4776 JMS VT78CK /GO CHECK IF ON VT78 SYSTEM 2976 002420 5233 JMP E7002+1 /VT78 - SKIP THIS SUBTEST 2977 002421 4503 SUBSCOPE 2978 002422 1167 TAD EAC 2979 002423 0375 AND (7000) /BITS 0,1,2 ARE RESIDUAL FROM COMMAND SHIFT 2980 002424 1374 TAD (1000) 2981 002425 7650 SNA CLA 2982 002426 5233 JMP .+5 2983 002427 1375 TAD (7000) 2984 002430 3166 DCA GOOD 2985 002431 1167 TAD EAC 2986 002432 4452 E7002, ERROR / SHIFT REGISTER NOT SHIFTING OK 2987 002433 4503 SUBSCOPE 2988 002434 1167 TAD EAC 2989 002435 0373 AND (377) 2990 002436 3167 DCA EAC 2991 002437 1167 TAD EAC 2992 002440 5600 JMP I XRSTB 2993 / 2994 /READ STATUS SUBROUTINE 2995 / 2996 /THE CONTENTS OF THE AC AT ENTRY = BIT 7 (UNIT SELECT) 2997 / 2998 /READ THE STATUS AT DONE BY ISSUING COMMAND # 5 2999 / 3000 /THIS SUBROUTINE IS ENTERED FROM TESTS: *** ALT12, AND T27 3001 / 3002 002441 2441 XRST, . 3003 002442 1372 TAD (12) 3004 002443 4436 LCD / ISSUE COMMAND # 5 (AC AT ENTRY = UNIT) 3005 002444 4443 STR 3006 002445 4465 OK 3007 002446 4452 E7003, ERROR /UNEXPECTED TRANSFER REQUEST FLAG 3008 002447 4503 SUBSCOPE 3009 002450 4445 SDN 3010 002451 5244 JMP .-5 /WAIT FOR DONE FLAG 3011 002452 4441 XDRIN 3012 002453 3167 DCA EAC /ACTUAL STATUS 3013 002454 4444 SER 3014 002455 5260 JMP .+3 3015 002456 1167 TAD EAC 3016 002457 4452 E7004, ERROR /UNEXPECTED ERROR FLAG 3017 002460 4776 JMS VT78CK /GO CHECK IF ON VT78 SYSTEM 3018 002461 5274 JMP E7006+1 /VT78 = SKIP THIS SUBTEST 3019 002462 4503 SUBSCOPE 3020 / 3021 /THE PURPOSE OF THIS SUBTEST IS TO VERIFY THE SHIFTING OF THE RX8 INTERFACE 3022 / 3023 /TRANSFER REGISTER BY THE RX01 MICROCONTROLLER 3024 / 3025 /BITS 0, 1, AND 2 OF THE RX8 INTERFACE TRANSFER REGISTER SHOULD BE REMNANTS 3026 / 3027 /OF THE PREVIOUS COMMAND (COMMAND # 5), THEREFORE BITS 0, 1, AND 2 SHOULD = 101 (BINARY) 3028 /(NOT TRUE ON VT78) 3029 002463 1167 TAD EAC 3030 002464 0375 AND (7000) 3031 002465 1371 TAD (3000) 3032 002466 7650 SNA CLA 3033 002467 5274 JMP .+5 3034 002470 1370 TAD (5000) 3035 002471 3166 DCA GOOD 3036 002472 1167 TAD EAC 3037 002473 4452 E7006, ERROR 3038 002474 4503 SUBSCOPE 3039 / 3040 /THE CONTENTS OF RST STATUS SHOULD = DRIVE READY (200) 3041 / 3042 / (IF UNIT-S WERE SELECTED AT L/S 200 OTHERWISE THE STATUS SHOULD = 0) 3043 / 3044 002475 1170 TAD BLANK / (GOOD) SAVED PRIOR TO ENTRY INTO " XRST " 3045 002476 0367 AND (-4-1) / MINUS " INIT DONE " BIT 3046 002477 3166 DCA GOOD 3047 002500 1167 TAD EAC / ACTUAL STATUS MINUS " DELETED DATA " 3048 002501 0366 AND (277) 3049 002502 3170 DCA BLANK 3050 002503 1166 TAD GOOD /EXPECTED 3051 002504 7041 CIA 3052 002505 1170 TAD BLANK /ACTUAL (MASSAGED) 3053 002506 7650 SNA CLA 3054 002507 5312 JMP .+3 3055 002510 1167 TAD EAC /ACTUAL ERROR STATUS 3056 002511 4452 E7005, ERROR /EXPECTED STATUS NOT = (GOOD) 3057 002512 4502 SCOPE 3058 002513 5641 JMP I XRST 3059 /SUB-TEST SELECTIONS 3060 / 3061 / 3062 / TEST 0 - " THE TEST " 3063 / TEST 001 - WRITE - READ (PARITY CHECK) 3064 / TEST 010 - WRITE - READ - READ CHECK (PROGRAM VERIFY) 3065 / TEST 011 - READ - READ CHECK (COMPATIBILITY) 3066 / TEST 100 - READ (PARITY CHECK) 3067 / TEST 5 - WRITE ONLY 3068 / TEST 110 - EMPTY BUFFER 3069 / TEST 111 - 3070 / 3071 / 3072 002514 1365 TEST4, TAD (READ) 3073 002515 7410 SKP 3074 002516 1364 TEST3, TAD (READCOMPARE) 3075 002517 3337 DCA DOB 3076 002520 1375 TAD (NOP) 3077 002521 5331 JMP DCADOA 3078 002522 1364 TEST2, TAD (READCOMPARE) 3079 002523 7410 SKP 3080 002524 1365 TEST1, TAD (READ) 3081 002525 7410 SKP 3082 002526 1375 TEST5, TAD (NOP) 3083 002527 3337 DCA DOB 3084 002530 1363 TAD (WRITE) 3085 002531 3336 DCADOA, DCA DOA 3086 / 3087 002532 4455 TESTX, GETAPATTERN 3088 002533 4463 INITTRACKS 3089 002534 4460 GETUNIT 3090 002535 4457 TESTXL, GETATRACK 3091 002536 4510 DOA, WRITE 3092 002537 4474 DOB, READ 3093 002540 2147 ISZ TRACKS 3094 002541 5335 JMP TESTXL 3095 002542 4454 DONE 3096 002543 5332 JMP TESTX 3097 002544 5453 EXIT 3098 /AC SW 7 = 1 TO HALT AT END OF TEST 3099 / 3100 002545 2545 XLOCKUP, . 3101 002546 4572 LAS 3102 002547 0362 AND (SW7) 3103 002550 7640 SZA CLA 3104 002551 4461 HLT 3105 /AC SW 2 = 1 TO LOCK SCOPE LOOP ON TEST 3106 / 3107 002552 4572 LAS 3108 002553 0374 AND (SW2) 3109 002554 7640 SZA CLA 3110 002555 5571 JMP I TEST 3111 002556 5745 JMP I XLOCKUP 3112 002562 0020 PAGE 002563 4510 002564 4475 002565 4474 002566 0277 002567 7773 002570 5000 002571 3000 002572 0012 002573 0377 002574 1000 002575 7000 002576 1165 002577 0016 3113 / 3114 /BYTE SWAP SUBROUTINE 3115 / 3116 /THE CONTENTS OF THE AC AT ENTRY WILL BE SWAPPED 3117 / 3118 002600 2600 XBSW, . 3119 002601 3223 DCA BSWAC 3120 002602 7010 RAR 3121 002603 3224 DCA BSWLINK 3122 002604 1377 TAD (-6) 3123 002605 3222 DCA BSWRAL 3124 002606 1223 TAD BSWAC 3125 002607 7100 CLL 3126 002610 7510 SPA 3127 002611 7120 CLL CML 3128 002612 7004 RAL 3129 002613 2222 ISZ BSWRAL 3130 002614 5207 JMP .-5 3131 002615 3223 DCA BSWAC 3132 002616 1224 TAD BSWLINK 3133 002617 7104 CLL RAL 3134 002620 1223 TAD BSWAC 3135 002621 5600 JMP I XBSW 3136 002622 7772 BSWRAL, -6 3137 002623 0000 BSWAC, 0 3138 002624 0000 BSWLINK, 0 3139 002625 2625 XERROR, . 3140 002626 3167 DCA EAC 3141 002627 1167 TAD EAC /GET ERROR PC 3142 002630 4467 AERROR 3143 002631 2111 ISZ BUSY 3144 002632 1225 TAD XERROR 3145 002633 7001 IAC 3146 002634 3776 DCA EPCSCOPE / ERROR RETURN ADDRESS + 1 3147 002635 7301 CLL CLA IAC 3148 002636 3775 DCA ERRORS 3149 /IF AC SW 4 = 0 THEN PRINT AN ERROR MESSAGE 3150 / 3151 002637 4572 LAS 3152 002640 0374 AND (SW4) 3153 002641 7640 SZA CLA 3154 002642 5315 JMP XNOPRINT 3155 /IF THIS IS THE FIRST ERROR FOR THIS PASS THEN PRINT THE HEADER LINE 3156 / 3157 002643 2115 ISZ FIRSTERROR 3158 002644 5247 JMP .+3 3159 002645 4473 PRINT 3160 002646 6545 MXEHEADER 3161 002647 4473 PRINT 3162 002650 6602 MCRLF 3163 / ERR FAT FAST EAC GOOD PASS 3164 / 3165 / ERR = ERROR ADDRESS ( E # ) 3166 / FAT = FIRST ADDRESS OF TEST 3167 / FAST = FIRST ADDRESS OF SUB-TEST 3168 / =*SEE MAP 3169 / EAC = CONTENTS OF THE ACCUMULATOR AT THE ERROR 3170 / PASS = PASS IN WHICH ERROR OCCURRED 3171 / 3172 002651 7240 STA 3173 002652 1225 TAD XERROR 3174 002653 3160 DCA LSB 3175 002654 4505 TY4OCT 3176 002655 0160 LSB 3177 002656 4504 TAB 3178 002657 0005 5 3179 002660 1171 TAD TEST 3180 002661 3160 DCA LSB 3181 002662 4505 TY4OCT 3182 002663 0160 LSB 3183 002664 4504 TAB 3184 002665 0012 12 3185 002666 4505 TY4OCT 3186 002667 1366 PCSCOPE 3187 002670 4504 TAB 3188 002671 0017 17 3189 002672 4505 TY4OCT 3190 002673 0170 BLANK 3191 002674 4504 TAB 3192 002675 0024 24 3193 002676 4505 TY4OCT 3194 002677 0167 EAC 3195 002700 4504 TAB 3196 002701 0031 31 3197 002702 4505 TY4OCT 3198 002703 0166 GOOD 3199 002704 4504 TAB 3200 002705 0036 36 3201 002706 4434 TY8OCT 3202 002707 0163 PASS 3203 002710 4572 LAS 3204 002711 7700 SMA CLA 3205 002712 5315 JMP .+3 3206 002713 4504 TAB 3207 002714 0043 43 3208 BELL=207 3209 / 3210 002715 4572 XNOPRINT, LAS 3211 002716 0373 AND (SW11) 3212 002717 7640 SZA CLA 3213 002720 5323 JMP .+3 3214 002721 4501 SPECIALTYPEIT 3215 002722 0207 BELL 3216 002723 3115 DCA FIRSTERROR 3217 002724 4572 LAS 3218 002725 7700 SMA CLA 3219 002726 4461 HLT 3220 / 3221 002727 3111 DCA BUSY 3222 002730 6001 ION 3223 002731 5625 JMP I XERROR 3224 / 3225 / 3226 /ROUTINE TO DETERMINE WHETHER TO TEST DRIVE ZERO 3227 /OR IF NO DRIVES ARE TO BE TESTED. 3228 / 3229 002732 4772 TSTUNT, JMS VT78CK /GO CHECK IF ON VT78 SYSTEM 3230 002733 4350 JMS CHGMSG /VT78/ GO CHANGE MASKING CONSTANT 3231 002734 1771 TAD UNITS /UNITS SELECTED BY OPERATOR 3232 002735 0370 AND (4000 /ISOLATE DRIVE ZERO. 3233 002736 7640 SZA CLA /IS DRIVE ZERO THERE? 3234 002737 5343 JMP DRVZRO /YES. 3235 002740 1347 TAD MASK1 /DON'T TEST DRIVE ZERO. 3236 002741 3346 DCA COMP /IT IS NOT AN ERROR IF DRIVE 3237 /ZERO IF OPERATIONAL. 3238 002742 5767 JMP NORX01-1 3239 002743 1136 DRVZRO, TAD MASK 3240 002744 3346 DCA COMP 3241 002745 5766 JMP NORX01-2 /DRIVE ZERO IS THERE, SO INDICATE IT. 3242 002746 0000 COMP, 0 3243 002747 7477 MASK1, 7477 3244 / 3245 /ROUTINE TO CHANGE MASKING CONSTANT FOR USE ON VT78 3246 /BITS 0-2 ARE NOT RESIDUAL ON VT78 3247 / 3248 002750 0000 CHGMSG, 0 3249 002751 1365 TAD (277 3250 002752 3136 DCA MASK 3251 002753 1364 TAD (77 3252 002754 3347 DCA MASK1 3253 002755 5750 JMP I CHGMSG 3254 / 3255 002764 0077 PAGE 002765 0277 002766 0427 002767 0430 002770 4000 002771 4235 002772 1165 002773 0001 002774 0200 002775 1365 002776 1364 002777 7772 3256 / 3257 003000 4455 THETEST, GETAPATTERN 3258 003001 4463 INITTRACKS 3259 003002 4460 GETUNIT 3260 / 3261 /FORCE THE ACTUATOR SEQUENCE = 0 (INCREMENTAL 0-114) 3262 / 3263 003003 1377 THEL, TAD (XTHEL) 3264 003004 3776 DCA XGETATRACK 3265 003005 1131 TAD TARGET 3266 003006 3125 DCA START 3267 003007 1150 TAD TTRACKS 3268 003010 1147 TAD TRACKS 3269 003011 7640 SZA CLA 3270 003012 5775 JMP SEQ000 3271 003013 1027 TAD OD 3272 003014 3131 DCA TARGET 3273 003015 5775 JMP SEQ000 3274 003016 4510 XTHEL, WRITE 3275 003017 4475 READCOMPARE 3276 003020 2147 ISZ TRACKS 3277 003021 5203 JMP THEL 3278 003022 4454 DONE 3279 003023 5201 JMP THETEST+1 3280 /ACTUATOR MOVEMENT IS THAT SELECTED OF BITS 6,7,8 OF (TESTP) 3281 / 3282 003024 4463 XXTHEL, INITTRACKS 3283 003025 4460 GETUNIT 3284 003026 4457 XYTHEL, GETATRACK 3285 003027 4475 READCOMPARE 3286 003030 2147 ISZ TRACKS 3287 003031 5226 JMP XYTHEL 3288 003032 4454 DONE 3289 003033 5224 JMP XXTHEL 3290 003034 5453 EXIT 3291 /GET A PATTERN 3292 / 3293 003035 3035 XGETAPATTERN, . 3294 / 3295 /ONLY GENERATE A PATTERN, HOWEVER, IF THE CONTENTS OF PROGRAM LOCATIONS 3296 / 3297 /ERRORS = 0 (MEANS NO ERRORS), 3298 / 3299 /AND AC SW2 = 0 (NOT TO LOCK ON TEST OK) 3300 / 3301 /AND TEST = T13, T16, T34, T35, T36, T37 3302 / 3303 003036 4572 LAS 3304 003037 0374 AND (SW2) 3305 003040 1773 TAD ERRORS 3306 003041 7640 SZA CLA 3307 003042 5635 JMP I XGETAPATTERN 3308 003043 1372 TAD (GENTESTS-1) 3309 003044 3012 DCA A12 3310 003045 1412 TAD I A12 3311 003046 7450 SNA 3312 003047 5635 JMP I XGETAPATTERN 3313 003050 1171 TAD TEST 3314 003051 7640 SZA CLA 3315 003052 5245 JMP .-5 3316 003053 1371 TAD (WBUFFER+1) 3317 003054 3010 DCA A10 3318 003055 3155 DCA PATSUMCHECK 3319 003056 7307 CLL CLA IAC RTL 3320 003057 0132 AND TESTP / 8/12 MODE MASK 3321 003060 7640 SZA CLA 3322 003061 1370 TAD (-100) /124 DATA WORDS 3323 003062 1367 TAD (-74) 3324 003063 3011 DCA A11 /60 DATA WORDS 3325 /WORD X AND WORD Y CONTAIN THE ADDRESSES OF THE LAST 2 SUMCHECK WORDS 3326 / 3327 003064 1011 TAD A11 3328 003065 7041 CIA 3329 003066 1366 TAD (WBUFFER+2) 3330 003067 3156 DCA WORDX 3331 003070 7301 CLL CLA IAC 3332 003071 1156 TAD WORDX 3333 003072 3157 DCA WORDY 3334 003073 1365 TAD (7000) 3335 003074 0132 AND TESTP 3336 003075 7106 CLL RTL 3337 003076 7006 RTL 3338 003077 1364 TAD (TAD PATTERNS) 3339 003100 3301 DCA .+1 3340 003101 1315 TAD PATTERNS 3341 003102 3303 DCA XPATTERNS 3342 003103 4763 XPATTERNS, JMS RANGEN 3343 003104 3137 DCA XXX 3344 /DEVELOP A 12 BIT SUMCHECK FOR THE 60/124 DATA WORDS 3345 / 3346 /NOTE: 3347 / 3348 /THE SUMCHECK WRITTEN IS THIS DEVELOPED SUMCHECK WITH THE FIRST 2 ID WORDS, AND 3349 /THE LAST 2 OVERALL SUMCHECK WORDS APPENDED WITHIN SUBROUTINE XGETASECTOR 3350 / 3351 003105 1155 TAD PATSUMCHECK 3352 003106 1137 TAD XXX 3353 003107 3155 DCA PATSUMCHECK 3354 003110 1137 TAD XXX 3355 003111 3410 DCA I A10 3356 003112 2011 ISZ A11 3357 003113 5303 JMP XPATTERNS 3358 003114 5635 JMP I XGETAPATTERN 3359 /THE FOLLOWING ARE THE ALLOCATED PATTERN POINTERS 3360 / 3361 003115 4763 PATTERNS, JMS RANGEN 3362 003116 7240 STA / 1 3363 003117 1325 TAD PAT2 3364 003120 1326 TAD PAT3 3365 003121 1327 TAD PAT4 3366 003122 1330 TAD PAT5 3367 003123 5340 JMP PAT6 3368 003124 7200 CLA 3369 / 3370 / 12 BIT MODE 8 BIT MODE 3371 003125 1463 PAT2, 1463 / 63 / 0011 00110011 3372 003126 6314 PAT3, 6314 / 314 / 1100 11001100 3373 003127 5252 PAT4, 5252 / 252 / 1010 10101010 3374 003130 2525 PAT5, 2525 / 125 / 0101 01010101 3375 / 3376 003131 6322 GENTESTS, -T13 3377 003132 6323 -T16 3378 003133 5500 -T34 3379 003134 5502 -T35 3380 003135 5501 -T36 3381 003136 5503 -T37; 0 003137 0000 3382 /PROGRAMMING NOTE: 3383 / 3384 /PATTERN 6 IS A COUNT PATTERN FROM 0 TO 7777, OR FROM 0 TO 177 3385 / 3386 /THIS COUNT PATTERN IS A " PURE " PATTERN 3387 / 3388 /A CHECKSUM IS NOT GENERATED FOR THIS PATTERN AS FOR ALL OTHER PATTERNS 3389 / 3390 / WORD/BYTE 0 = 1 3391 / WORD/BYTE 1 = 1 3392 / 3393 / WORD 2 = 0202 3394 / BYTE 2 = 2 3395 / 3396 / WORD 77 = 7777 3397 / BYTE 177 = 177 3398 / 3399 003140 7307 PAT6, CLL CLA IAC RTL / 4 3400 003141 0132 AND TESTP 3401 003142 7440 SZA 3402 003143 7120 STL / LINK = 1 FOR 8-BIT MODE (128 BYTES) 3403 003144 5351 JMP .+5 3404 003145 7001 XPAT6, IAC 3405 003146 7420 SNL 3406 003147 1362 TAD (100) 3407 003150 1137 TAD XXX 3408 003151 3137 DCA XXX 3409 003152 1137 TAD XXX 3410 003153 3410 DCA I A10 3411 003154 2011 ISZ A11 3412 003155 5345 JMP XPAT6 3413 003156 5635 JMP I XGETAPATTERN 3414 003162 0100 PAGE 003163 4712 003164 1315 003165 7000 003166 7116 003167 7704 003170 7700 003171 7115 003172 3130 003173 1365 003174 1000 003175 4306 003176 4261 003177 3016 3415 /WRITE ONLY 3416 / 3417 /WRITE ALL SELECTED SECTORS OF THAT TRACK 3418 / 3419 003200 3200 XWRITE, . 3420 003201 7330 STL CLA RAR 3421 003202 3120 DCA RDC / THIS IS A WRITE (RDC = 4000) 3422 / 3423 003203 4462 INITSECTORS 3424 003204 4456 WRITEL, GETASEECTOR 3425 003205 7410 SKP 3426 003206 1377 REWRITE, TAD (JMP WHICHREAD) 3427 003207 3263 DCA JMPWHICHREAD 3428 /THE PROGRAM WILL ISSUE AN INIT FOR ALL SEEK ERRORS 3429 / 3430 /NOTE: 3431 / 3432 /THE FUNCTION OF THE INIT IS TO SEEK TRACK 0/SECTOR 1, AND 3433 /TRANSFER INTO THE SECTOR BUFFER THE CONTENTS OF SECTOR 1. THEREFORE 3434 /TO RECOVER FROM A SEEK ERROR, THE PROGRAM MUST RE-FILL THE SECTOR BUFFER 3435 /THEN RE-SEEK 3436 / 3437 003210 1121 TAD KRETRY 3438 003211 3145 DCA SRETRY 3439 003212 1121 WRESEEK, TAD KRETRY 3440 003213 3146 DCA PRETRY /PARITY RETRY COUNTER 3441 /FILL RX01 SECTOR BUFFER 3442 / 3443 003214 1376 REFILL, TAD (WBUFFER-1) 3444 003215 3010 DCA A10 3445 003216 4437 LCDA 3446 003217 5237 JMP FILLOK 3447 003220 5226 JMP FILLERRROR 3448 /RETURN TO HERE IS FROM SUBROUTINE XLCDA 3449 / 3450 003221 4443 FILL, STR 3451 003222 5221 JMP FILL 3452 003223 1410 TAD I A10 3453 003224 4442 XDROUT 3454 003225 5221 JMP FILL 3455 /AC SW (4) = 0 ; INHIBIT INTERFACE PARITY RECOVERY 3456 / 3457 003226 2146 FILLERROR, ISZ PRETRY 3458 003227 7410 SKP 3459 003230 5600 JMP I XWRITE 3460 003231 4572 LAS 3461 003232 0375 AND (SW1) 3462 003233 7640 SZA CLA 3463 003234 5214 JMP REFILL 3464 003235 3146 DCA PRETRY 3465 003236 5600 JMP I XWRITE 3466 /THE SECTOR BUFFER HAS SUCESSFULLY BEEN FILLED AND CONTAINS THE 3467 /PATTERN SELECTED - ALL SOFT PARITY ERRORS HAVE BEEN LOGGED 3468 / 3469 003237 1121 FILLOK, TAD KRETRY 3470 003240 3146 DCA PRETRY 3471 003241 7305 CLL CLA IAC RAL / 2 3472 003242 0132 AND TESTP /TESTP FOR DELETED DATA SELECTION 3473 003243 7007 IAC RTL / 4 IF WRITE OR 14 IF WRITE DELETED DATA 3474 003244 4440 LCDB 3475 003245 5257 JMP WRITEOK 3476 /RETURN TO HERE IS FROM A PI (IF AN RX01 ERROR FLAG) 3477 / 3478 /AC SW (1) = 0 ; INHIBIT WRITE RETRY 3479 / 3480 003246 2145 WRITERROR, ISZ SRETRY 3481 003247 7410 SKP 3482 003250 5264 JMP WNOTOK 3483 003251 4572 LAS 3484 003252 0375 AND (SW1) 3485 003253 7640 SZA CLA 3486 003254 5212 JMP WRESEEK 3487 003255 3145 DCA SRETRY 3488 003256 5264 JMP WNOTOK 3489 /NOTE: THE ONLY ERROR EXPECTED HERE EVER IS A "SEEK" ERROR 3490 / 3491 /RETURN TO HERE IS FROM A PI (IF ONLY AN RX01 DONE FLAG) 3492 / 3493 003257 1131 WRITEOK, TAD TARGET 3494 003260 3125 DCA START 3495 003261 1124 TAD STARGET 3496 003262 3123 DCA SSTART 3497 003263 5267 JMPWHICHREAD, JMP WHICHREAD /CONTAINS 0 OR MODIFIED TO JMP WHICHREAD 3498 / 3499 003264 2122 WNOTOK, ISZ SECTORS 3500 003265 5204 JMP WRITEL 3501 003266 5600 JMP I XWRITE 3502 /IF THIS IS A WRITE AFTER READ, "JMP READRETRY", BUT 3503 / 3504 /IF A HARD SEEK ERROR, "JMP NOREAD" 3505 / 3506 003267 1145 WHICHREAD, TAD SRETRY 3507 003270 7650 SNA CLA 3508 003271 5774 JMP NOREAD /HARD SEEK ERROR 3509 003272 5773 JMP READRETRY /SOFT 3510 / 3511 / 0 < (LAST) => (FIRST) 3512 / 3513 003273 1032 TADLAST, TAD LAST 3514 003274 7740 SMA SZA CLA 3515 003275 5300 JMP .+3 3516 003276 1372 TAD (32) 3517 003277 3032 DCA LAST 3518 003300 1032 TAD LAST 3519 003301 7041 CIA 3520 003302 1031 TAD FIRST 3521 003303 7740 SMA SZA CLA 3522 003304 5276 JMP .-6 3523 003305 4473 PRINT 3524 003306 6711 MLAST 3525 003307 4505 TY4OCT 3526 003310 0032 LAST 3527 003311 4504 TAB 3528 003312 0005 5 3529 /************ 3530 /CONSOLE 3531 /************ 3532 3533 3534 003313 4424 CHECKC8 /IS CONSOLE ACTIVE 3535 003314 4425 XC8ENTR /YES PRINT SWITCH REGISTER QUESTION 3536 /FOR RUNNING SWITCHES 3537 003315 5317 JMP C8RET4 3538 003316 4461 HALT 3539 003317 5771 C8RET4, JMP PRETEST 3540 /ENTRY TO HERE IS FROM RX01 PI ERROR SERVICE ROUTINE 3541 / 3542 /CONTROLLER FAILURES 3543 / 3544 003320 1370 SDNUNEXPECTED, TAD (MSDNUNEXPECTED) 3545 003321 7410 SKP 3546 003322 1367 NOSER, TAD (MNOSER) 3547 003323 3334 DCA XMESSAGE 3548 003324 4572 LAS 3549 003325 0366 AND (SW4) 3550 003326 7640 SZA CLA 3551 003327 5335 JMP QUIET 3552 003330 4576 FORCE 3553 003331 1334 TAD XMESSAGE /POINTS TO ERROR MESSAGE THAT WOULD HAVE BEEN PRINTED 3554 003332 4467 AERROR /REPORT ERROR TO APT IF REQUIRED 3555 003333 4473 PRINT 3556 003334 0000 XMESSAGE, 0 3557 003335 4572 QUIET, LAS 3558 003336 7710 SPA CLA 3559 003337 4461 HLT 3560 003340 5765 JMP ERETURN 3561 / 3562 /ENTRY TO HERE FROM SUBROUTINES XSER, OR XSDN 3563 / 3564 003341 2111 HUNGUP, ISZ BUSY 3565 003342 3353 DCA HUNGPC 3566 003343 4576 FORCE 3567 / 3568 /THE LABEL "XHUNG" MUST RESIDE HERE BECAUSE OF REFERENCES MADE WITHIN "FORCE" 3569 / 3570 003344 4473 XHUNG, PRINT 3571 003345 6612 MHUNGPC 3572 003346 4505 TY4OCT 3573 003347 3353 HUNGPC 3574 003350 1364 TAD (-40) 3575 003351 3116 DCA HANGER 3576 003352 5453 NOTEST 3577 003353 0000 HUNGPC, 0 3578 / 3579 003364 7740 PAGE 003365 5520 003366 0200 003367 7056 003370 7043 003371 0400 003372 0032 003373 3425 003374 3521 003375 2000 003376 7113 003377 5267 3580 / 3581 /ROUTINE IS USE IN PLACE OF THE LAS INSTRUCTION WILL READ CORRECT SWITCHES 3582 / 3583 / 3584 003400 0000 XCKSWIT, 0 3585 003401 7200 CLA 3586 003402 1022 TAD 22 /CHECK BIT 0 FOR APT 3587 003403 7710 SPA CLA /ON APT? 3588 003404 5600 JMP I XCKSWIT /YES RETURN WITH CLEARED AC 3589 003405 1021 TAD 21 /CHECK STATUS WORD 3590 003406 7710 SPA CLA /0=ACTIVE CONSOLE 3591 003407 7614 SKP CLA OSR /LAS AND SKIP 3592 003410 1020 TAD 20 /GET PSEUDO SW REG 3593 003411 5600 JMP I XCKSWIT /EXIT XCKSWIT 3594 /READ VERIFY 3595 / 3596 003412 3412 XREADCOMPARE, . 3597 003413 1212 TAD XREADCOMPARE 3598 003414 3216 DCA XREAD 3599 003415 5220 JMP XRDC 3600 /READ AND READ AFTER WRITE SUBROUTINE 3601 / 3602 /************************************************************************ 3603 / 3604 /IF THIS IS A READ AFTER WRITE, THEN 1 PROGRAM LOCATION PRECEEDING 3605 /THE PROGRAM LOCATION CONTAINING THE "READ" WILL CONTAIN "WRITE" 3606 / 3607 /************************************************************************ 3608 / 3609 /IF THIS IS A READ ONLY, THEN THE CONTENTS OF " RDC " WILL = 1 3610 / 3611 /IF THIS IS A READ VERIFY, THEN THE CONTENTS OF " RDC " WILL = 0 3612 / 3613 /READ ALL SELECTED SECTORS OF THAT TRACK 3614 / 3615 003416 3416 XREAD, . 3616 003417 7301 CLL CLA IAC 3617 003420 3120 XRDC, DCA RDC 3618 003421 4462 INITSECTORS 3619 003422 1121 READL, TAD KRETRY 3620 003423 3140 DCA R1RETRY 3621 003424 4456 GETASECTOR 3622 003425 1121 READRETRY, TAD KRETRY 3623 003426 3141 DCA R2RETRY 3624 /REFRESH PROGRAM LOCATION SNDLOG BECAUSE THE CONTENTS MIGHT BE RESIDUAL 3625 /IF A PREVIOUS SND (STATUS NO DATA) ERROR EVER OCCURRED 3626 / 3627 003427 3144 DCA SNDLOG 3628 003430 3142 DCA DWSLOG 3629 003431 3143 DCA DNSLOG 3630 / 3631 003432 1121 REREAD, TAD KRETRY 3632 003433 3145 DCA SRETRY 3633 003434 1121 RESEEK, TAD KRETRY 3634 003435 3146 DCA PRETRY 3635 003436 7327 CLA STL IAC RTL 3636 003437 4440 LCDB 3637 003440 5331 JMP READOK 3638 /RETURN TO HERE IS FROM A PI (IF AN RX01 ERROR FLAG) 3639 / 3640 /AN ERROR HAS BEEN DETECTED 3641 / 3642 /IF NOT A CRC ERROR THEN ASSUME A SEEK ERROR 3643 / 3644 003441 7301 READERROR, CLL CLA IAC 3645 003442 0126 AND ASTATUS /CRC MASK 3646 003443 7640 SZA CLA 3647 003444 5256 JMP CRCERR 3648 003445 2145 ISZ SRETRY 3649 003446 7410 SKP 3650 003447 5347 JMP RLOGGED 3651 003450 4572 LAS 3652 003451 0377 AND (SW1) 3653 003452 7640 SZA CLA 3654 003453 5234 JMP RESEEK 3655 003454 3145 DCA SRETRY 3656 003455 5347 JMP RLOGGED 3657 / 3658 /PROGRAMMING NOTE: 3659 / 3660 /ANY RECOVERABLE SEEK ERRORS ARE NOTED AT PROGRAM LOCATION " DNS " 3661 / 3662 /AN ERROR HAS OCCURRED 3663 / 3664 SND=DNS 3665 DWS=SND 3666 / 3667 /THE SECTOR BUFFER CONTAINS THE DATA READ 3668 / 3669 /ANY PARITY ERRORS WOULD HAVE PREVIOUSLY BEEN DETECTED AND LOGGED 3670 / 3671 /THIS ERROR IS NOT A SEEK ERROR, THEREFORE IT IS ASSUMED TO BE A 3672 / 3673 / CRC ERROR 3674 / 3675 /COMPARE THE DATA WITHIN THE SECTOR BUFFER TO DETECT CRC STATUS 3676 /WITHOUT DATA ERRORS (SND) 3677 / 3678 /IF AT THE END OF THE COMPARE, STATUS NO DATA ERRORS HAVE BEEN DETECTED 3679 /THEN PRINT AN APPROPRIATE MESSAGE 3680 / 3681 003456 1120 CRCERR, TAD RDC 3682 003457 7640 SZA CLA 3683 003460 5305 JMP XCRCERROR 3684 003461 4776 JMS COMPARE 3685 003462 1113 TAD COMPRERROR 3686 003463 7450 SNA 3687 003464 1775 TAD INSUMCHECK 3688 003465 7640 SZA CLA 3689 003466 5310 JMP DWS 3690 003467 2144 ISZ SNDLOG 3691 / 3692 /IF AC SW (4) = 1 THEN DO NOT PRINT THE ERROR INFORMATION 3693 / 3694 003470 4572 LAS 3695 003471 0374 AND (SW4) 3696 003472 7640 SZA CLA 3697 003473 5305 JMP XCRCERROR 3698 003474 4352 JMS RDORWR 3699 003475 5301 JMP .+4 3700 003476 4473 PRINT 3701 003477 6716 MWRITE 3702 003500 5303 JMP .+3 3703 003501 4473 PRINT 3704 003502 6722 MREAD 3705 003503 4473 PRINT 3706 003504 6740 MSNDERROR 3707 003505 4572 XCRCERROR, LAS 3708 003506 7700 SMA CLA 3709 003507 4461 HLT7, HLT 3710 / 3711 003510 1121 DNS, TAD KRETRY 3712 003511 3145 DCA SRETRY 3713 003512 2141 ISZ R2RETRY 3714 003513 7410 SKP 3715 003514 5324 JMP UREAD 3716 /AC SW (1) = 0 ; INHIBIT READ RETRY 3717 / 3718 003515 4572 LAS 3719 003516 0377 AND (SW1) 3720 003517 7640 SZA CLA 3721 003520 5232 JMP REREAD 3722 /A HARD FILL BUFFER PARITY ERROR OR A HARD PARITY ERROR ON THE COMMAND/ 3723 /SECTOR/TRACK WORDS, OR 3724 /A HARD SEEK ERROR WHICH HAS BEEN LOGGED WITHIN THE WRITE SUBROUTINE, OR 3725 /A HARD CRC ERROR WHICH OCCURRED WHILE WITHIN THE READ SUBROUTINE 3726 / 3727 003521 3140 NOREAD, DCA R1RETRY 3728 003522 3141 DCA R2RETRY 3729 003523 5347 JMP RLOGGED 3730 /IF THIS IS A READ AFTER WRITE THE RE-WRITE THE SECTOR IN ERROR 3731 / 3732 /BECAUSE THIS IS A HARD PROGRAM COMPARE DATA ERROR 3733 / 3734 003524 4352 UREAD, JMS RDORWR 3735 003525 5321 JMP NOREAD 3736 003526 2140 ISZ R1RETRY 3737 003527 5773 JMP REWRITE 3738 003530 5347 JMP RLOGGED 3739 /IF THIS IS A READ COMPARE TEST 3740 / 3741 /THEN " JMS COMPARE ", BUT ... 3742 / 3743 /IF A STATUS ERROR WITH NO DATA ERROR HAS PREVIOUSLY BEEN DETECTED 3744 / 3745 /THEN DO NOT RE- " JMS COMPARE ", AND 3746 / 3747 /DO NOT RESET PROGRAM LOCATION " START " WITH " TARGET " 3748 / 3749 /PROGRAMMING NOTE: 3750 / 3751 /ANY RECOVERABLE SEEK ERRORS WHICH OCCURRED PRIOR TO CRC OR DATA ERRORS 3752 / 3753 /ARE LOGGED AT PROGRAM LOCATION " DNS " 3754 / 3755 003531 1144 READOK, TAD SNDLOG 3756 003532 1120 TAD RDC 3757 003533 7640 SZA CLA 3758 003534 5343 JMP ROK 3759 003535 4776 JMS COMPARE 3760 003536 1113 TAD COMPRERROR 3761 003537 7450 SNA 3762 003540 1775 TAD INSUMCHECK 3763 003541 7640 SZA CLA 3764 003542 5310 JMP DNS 3765 003543 1131 ROK, TAD TARGET 3766 003544 3125 DCA START 3767 003545 1124 TAD STARGET 3768 003546 3123 DCA SSTART 3769 003547 2122 RLOGGED, ISZ SECTORS 3770 003550 5222 JMP READL 3771 003551 5616 JMP I XREAD 3772 /IF THE PROGRAMMED INSTRUCTION IMMEDIATELY BEFORE " READ " 3773 /IS A " WRITE ", THEN THIS IS A WRITE DATA ERROR. IF NOT, 3774 /THEN THIS IS A READ DATA ERROR 3775 / 3776 /FORM: JMS RDORWR; (READ RETURN); (WRITE RETURN) 3777 / 3778 003552 3552 RDORWR, . 3779 003553 7344 CLL STA RAL 3780 003554 1216 TAD XREAD 3781 003555 3137 DCA XXX 3782 003556 1537 TAD I XXX 3783 003557 1372 TAD (-WRITE) 3784 003560 7650 SNA CLA 3785 003561 2352 ISZ RDORWR 3786 003562 5752 JMP I RDORWR 3787 003572 3270 PAGE 003573 3206 003574 0200 003575 3762 003576 3601 003577 2000 3788 003600 5601 JMPICOMPARE, JMP I COMPARE 3789 / 3790 /THE FOLLOWING INFORMATION IS ALWAYS PRINTED IF A PROGRAM COMPARE DATA ERROR 3791 / 3792 / DATA ERROR 3793 / WORD GOOD BAD 3794 / 3795 /WHERE " WORD " IS THE WORD NUMBER (0-127), 3796 /AND " GOOD " IS THE DATA WORD WRITTEN, 3797 /AND " BAD " IS THE DATA WORD READ (IN ERROR) 3798 / 3799 /WORDS 0 AND 1 ARE HEADER WORDS (8 BIT BYTES) 3800 / 3801 / WORD 0 - TRACK # (BITS 5-11) 3802 / WORD 1 - SECTOR (BITS 7-11) 3803 / 3804 / 3805 /AC SW (4) = 1 ; INHIBIT READ DATA ERROR TYPEOUT 3806 / 3807 / 3808 003601 3601 COMPARE, . 3809 / 3810 /EMPTY BUFFER 3811 / 3812 /SAVE THE PREVIOUS READ'S A-STATUS REGISTER 3813 / 3814 003602 7301 CLL CLA IAC 3815 003603 0126 AND ASTATUS 3816 003604 3361 DCA XASTATUS 3817 003605 1121 TAD KRETRY 3818 003606 3146 DCA PRETRY 3819 003607 3362 DCA INSUMCHECK 3820 003610 4777 JMS EMPTYL 3821 003611 1132 TAD TESTP 3822 003612 0376 AND (4 3823 003613 7640 SZA CLA /IS IT 12 BIT MODE? 3824 003614 1375 TAD (7400 /NO (-377) 3825 003615 7040 CMA /YES 3826 003616 3363 DCA BITMODE /SAVE MASK 3827 /AC SW (4) = 1 ; INHIBIT FURTHER READ DATA ERROR TYPEOUTS 3828 / 3829 /...BUT STAY IN THIS LOOP UNTIL THE RX01 SECTOR BUFFER IS EMPTIED 3830 / 3831 003617 4443 EMPTY, STR 3832 003620 5217 JMP EMPTY 3833 / 3834 /DISABLE THE RX01 INTERRUPT 3835 / 3836 003621 7300 CLA CLL 3837 003622 6756 K67X6B, 6756 3838 / 3839 /TRANSFER DATA FROM THE SECTOR BUFFER INTO THE ACCUMULATOR 3840 / 3841 003623 6752 K67X2C, 6752 / "ACTUAL" (BAD) DATA 3842 003624 3133 DCA XA10 3843 / 3844 /ASSUME A 12 BIT SUMCHECK EVEN IF 8 BIT MODE FOR NOW 3845 / 3846 /NOTE: THE CONTENTS OF PROGRAM LOCATION " INSUMCHECK " SHOULD = 0 3847 / (AFTER ALL WORDS HAVE COME IN) 3848 / 3849 003625 1133 TAD XA10 3850 003626 1362 TAD INSUMCHECK 3851 003627 3362 DCA INSUMCHECK 3852 003630 1534 TAD I XA11 3853 003631 0363 AND BITMODE /377 FOR 8 BIT MODE 7777 FOR 12 BIT 3854 003632 7041 CIA 3855 003633 1133 TAD XA10 3856 003634 7640 SZA CLA 3857 003635 5243 JMP DATAER 3858 003636 7301 ENDCOMPARE, CLA CLL IAC 3859 003637 6756 K67X6C, 6756 3860 003640 2134 ISZ XA11 3861 003641 6001 ION 3862 003642 5217 JMP EMPTY 3863 / 3864 /A PROGRAM COMPARE DATA ERROR HAS BEEN DETECTED 3865 / 3866 /NOTATION: 3867 / 3868 /THE CONTENTS OF PROGRAM LOCATION XASTATUS REFLECTS THE STATUS OF THE 3869 /RX01 AT THE COMPLETION OF THE PREVIOUS " READ SECTOR " 3870 / 3871 /IF A CRC ERROR EXISTS THEN THIS IS A DATA ERROR WITH STATUS ERROR 3872 / 3873 /IF A CRC ERROR DOESN'T EXIST THEN THIS IS A DATA ERROR WITH NO ERROR STATUS 3874 / 3875 003643 1361 DATAERR, TAD XASTATUS / A-STATUS OF PREVIOUS READ 3876 003644 7450 SNA 3877 003645 2143 ISZ DNSLOG /NO CRC STATUS 3878 003646 7640 SZA CLA 3879 003647 2142 ISZ DWSLOG /CRC STATUS 3880 / 3881 /AC SW (4) TO INHIBIT ERROR PRINTOUT 3882 / 3883 /IF THIS IS A READ ONLY TEST (NOT READ COMPARE) OR IF AC SW 4 = 1 3884 /THEN DO NOT PRINT ERROR INFORMATION 3885 / 3886 /BUT, 3887 / 3888 /IF THIS IS A READ COMPARE TEST AND AC SW 4 = 0 3889 /THEN PRINT ERROR INFORMATION 3890 / 3891 003650 4572 LAS 3892 003651 0374 AND (SW4) 3893 003652 1120 TAD RDC 3894 003653 7640 SZA CLA 3895 003654 5357 JMP ISZCOMPRERROR 3896 /IF THIS IS THE FIRST COMPARE ERROR THEN PRINT HEADER INFORMATION 3897 / 3898 003655 1113 TAD COMPRERROR 3899 003656 7640 SZA CLA 3900 003657 5320 JMP CNOTFIRST 3901 / 3902 /IF A DATA NO CRC STATUS ERROR (DNS) THEN PRINT ENTIRE ERROR INFORMATION 3903 / 3904 003660 1143 TAD DNSLOG 3905 003661 7640 SZA CLA 3906 003662 4576 FORCE 3907 /IF THE PROGRAMMED INSTRUCTION IMMEDIATELY BEFORE " READ " 3908 /IS A " WRITE ", THEN THIS IS A WRITE DATA ERROR. IF NOT, 3909 /THEN THIS IS A READ DATA ERROR 3910 / 3911 003663 4773 XCOMPARE, JMS RDORWR 3912 003664 5270 JMP .+4 3913 003665 4473 PRINT 3914 003666 6716 MWRITE 3915 003667 5272 JMP .+3 3916 003670 4473 PRINT 3917 003671 6722 MREAD 3918 /NOTATION: 3919 / 3920 /THE CONTENTS OF PROGRAM LOCATION XASTATUS REFLECTS THE STATUS OF THE 3921 /RX01 AT THE COMPLETION OF THE PREVIOUS " READ SECTOR " 3922 / 3923 /IF A CRC ERROR EXISTS THEN THIS IS A DATA ERROR WITH STATUS ERROR 3924 / 3925 /IF A CRC ERROR DOESN'T EXIST THEN THIS IS A DATA ERROR WITH NO ERROR STATUS 3926 / 3927 003672 1361 TAD XASTATUS 3928 003673 7640 SZA CLA 3929 003674 5300 JMP DWESERROR 3930 003675 4473 PRINT 3931 003676 6726 MDNSERROR 3932 003677 5302 JMP .+3 3933 003700 4473 DWESERROR, PRINT 3934 003701 6734 MDWESERROR 3935 003702 4473 PRINT 3936 003703 6753 MDATAERROR 3937 /PRINT " WORD " IF 12-BIT MODE, OR PRINT " BYTE " IF 8-BIT MODE 3938 / 3939 003704 1372 TAD (MWORD) 3940 003705 3315 DCA XFLENGTH 3941 003706 7307 CLL CLA IAC RTL 3942 003707 0132 AND TESTP 3943 003710 7650 SNA CLA 3944 003711 5314 JMP .+3 3945 003712 1371 TAD (MBYTE) 3946 003713 3315 DCA XFLENGTH 3947 003714 4473 PRINT 3948 003715 6762 XFLENGTH, MWORD 3949 003716 4473 PRINT 3950 003717 6770 MGB 3951 / AC 5 = 0 - PRINT ONLY FIRST 3 COMPARE ERRORS 3952 / AC 5 = 1 - PRINT ALL COMPARE ERRORS 3953 / 3954 003720 4572 CNOTFIRST, LAS 3955 003721 0370 AND (SW5) 3956 003722 7640 SZA CLA 3957 003723 5330 JMP .+5 3958 003724 7346 CLL STA RTL 3959 003725 1113 TAD COMPRERROR 3960 003726 7700 SMA CLA 3961 003727 5357 JMP ISZCOMPRERROR 3962 003730 4473 PRINT 3963 003731 6602 MCRLF 3964 003732 1367 TAD (-WBUFFER) 3965 003733 1134 TAD XA11 3966 003734 3160 DCA LSB 3967 003735 4505 TY4OCT 3968 003736 0160 LSB 3969 003737 4504 TAB 3970 003740 0005 5 3971 003741 7307 CLL CLA IAC RTL 3972 003742 0132 AND TESTP 3973 003743 7112 CLL RTR 3974 003744 7010 RAR 3975 003745 1534 TAD I XA11 3976 003746 7430 SZL 3977 003747 0366 AND (377) 3978 003750 3160 DCA LSB 3979 003751 4505 TY4OCT 3980 003752 0160 LSB 3981 003753 4504 TAB 3982 003754 0012 12 3983 003755 4505 TY4OCT 3984 003756 0133 XA10 3985 003757 2113 ISZCOMPRERROR, ISZ COMPRERROR 3986 003760 5236 JMP ENDCOMPARE 3987 /THE CONTENTS OF THE XASTATUS PROGRAM LOCATION REFLECTS THE STATUS AT THE 3988 /COMPLETION OF THE PREVIOUS READ FUNCTION 3989 / 3990 /THE PREVIOUS STATUS IS SAVED BECAUSE A SUCCEEDING ERROR 3991 / (PARITY ERROR ON THE COMMAND WORD) MAY OCCUR 3992 / 3993 003761 0000 XASTATUS, 0 3994 / 3995 /THE CONTENTS OF " INSUMCHECK " IS THE SUMCHECK DERIVED FROM THE SUM OF ALL 3996 /DATA WORDS COMING IN (THE SUM OF ALL " BAD "), AND 3997 /SHOULD BE EQUIVALENT TO 0 AT THE END OF THE EMPTY BUFFER 3998 / 3999 003762 0000 INSUMCHECK, 0 4000 003763 0000 BITMODE, 0 4001 003766 0377 PAGE 003767 0664 003770 0100 003771 6765 003772 6762 003773 3552 003774 0200 003775 7400 003776 0004 003777 4000 4002 / 4003 004000 0000 EMPTYL, 0 4004 004001 1377 TAD (WBUFFER) 4005 004002 3134 DCA XA11 4006 004003 7305 CLL CLA IAC RAL 4007 004004 4437 LCDA 4008 004005 5222 JMP EMPTYOK 4009 004006 5211 JMP EMPTYERROR 4010 /RETURN TO HERE FROM SUBROUTINE XLCDA 4011 / 4012 004007 3113 DCA COMPRERROR 4013 004010 5600 JMP I EMPTYL /RETURN 4014 / 4015 /THIS INTERFACE PARITY ERROR MUST BE ON THE COMMAND WORD TO "EMPTY BUFFER" 4016 / 4017 /NOTE: IT CAN'T BE ANY OTHER ERROR 4018 / 4019 004011 2146 EMPTYERROR, ISZ PRETRY 4020 004012 7410 SKP 4021 004013 5272 JMP XEMPTYOKNOTOK 4022 004014 4572 LAS 4023 004015 0376 AND (SW1) 4024 004016 7640 SZA CLA 4025 004017 5200 JMP EMPTYL 4026 004020 3146 DCA PRETRY 4027 004021 5272 JMP XEMPTYOKNOTOK 4028 /IF AC SW (4) = 0 4029 / 4030 /PRINT A VALUE SYMBOLIC OF THE TOTAL # OF COMPARE ERRORS DETECTED 4031 / 4032 /IF 8-BIT MODE THEN THE "SUMCHECK" WILL OVERFLOW INTO BITS 0 TO 3 4033 / 4034 /THEREFORE MASK THE CONTENTS OF " INSUMCHECK " 4035 / 4036 /THE RESULT OF THE SUBTRACTION SHOULD = 0 4037 / 4038 /NO MASK IS NEEDED FOR 12-BIT MODE 4039 / 4040 004022 7307 EMPTYOK, CLL CLA IAC RTL 4041 004023 0132 AND TESTP 4042 004024 7112 CLL RTR 4043 004025 7010 RAR 4044 004026 1775 TAD INSUMCHECK 4045 004027 7430 SZL 4046 004030 0374 AND (377) 4047 004031 3775 DCA INSUMCHECK 4048 004032 4572 LAS 4049 004033 0373 AND (SW4) 4050 004034 7640 SZA CLA 4051 004035 5272 JMP XEMPTYOK 4052 /IF A SUMCHECK ERROR EXISTS WITHOUT A "COMPRERROR" THEN "FORCE" A TYPEOUT 4053 / 4054 004036 1113 TAD COMPRERROR 4055 004037 7640 SZA CLA 4056 004040 5245 JMP .+5 4057 004041 1775 TAD INSUMCHECK 4058 004042 7650 SNA CLA 4059 004043 5272 JMP XEMPTYOK 4060 004044 4576 FORCE 4061 004045 4473 PRINT 4062 004046 6775 MSUMCHECK 4063 004047 1775 TAD INSUMCHECK 4064 004050 7640 SZA CLA 4065 004051 5255 JMP .+4 4066 004052 4473 PRINT 4067 004053 7005 MOK 4068 004054 5260 JMP .+4 4069 004055 4505 TY4OCT 4070 004056 3762 INSUMCHECK 4071 004057 5263 JMP .+4 4072 004060 1113 TAD COMPRERROR 4073 004061 7650 SNA CLA 4074 004062 5272 JMP XEMPTYOK 4075 004063 4473 PRINT 4076 004064 7007 MDESUMMARY 4077 004065 4505 TY4OCT 4078 004066 0113 COMPRERROR 4079 004067 4504 TAB 4080 004070 0005 5 4081 004071 5272 JMP XEMPTYOK 4082 / 4083 /AC SW 0 = 1 ; HALT ON ERROR 4084 / 4085 004072 1113 XEMPTYOK, TAD COMPRERROR 4086 004073 7450 SNA 4087 004074 1775 TAD INSUMCHECK 4088 004075 7650 SNA CLA 4089 004076 5772 JMP JMPICOMPARE 4090 004077 4572 LAS 4091 004100 7710 SPA CLA 4092 004101 4461 HLT6, HALT 4093 004102 5772 JMP JMPICOMPARE 4094 004103 4103 XSETUP, . 4095 004104 4507 WAITTY 4096 004105 1371 TAD (ANDRETURN) 4097 004106 3770 DCA XPRINT 4098 004107 1703 TAD I XSETUP 4099 004110 3320 DCA XANDRETURN 4100 004111 2303 ISZ XSETUP 4101 004112 5703 JMP I XSETUP 4102 / 4103 /AND RETURN TO HERE WAITING FOR ENTIRE NUMERICAL OUTPUT 4104 / 4105 004113 4507 ANDRETURN, WAITTY 4106 / 4107 /THEN EXIT FROM HERE FOR MAIN LINE CODE 4108 / 4109 004114 1720 THENEXIT, TAD I XANDRETURN 4110 004115 3320 DCA XANDRETURN 4111 004116 3162 DCA TTYBUSY 4112 004117 5720 JMP I XANDRETURN 4113 004120 4120 XANDRETURN, . 4114 / 4115 004121 4121 XHALT, . 4116 004122 4507 WAITTY 4117 /************ 4118 /CONSOLE 4119 /************ 4120 004123 4424 CHECKC8 4121 004124 4425 XC8ENTR 4122 004125 5331 JMP C8RET3 / 4123 /************ 4124 004126 7240 STA 4125 004127 1321 TAD XHALT 4126 004130 7402 7402 4127 004131 7200 C8RET3, CLA 4128 004132 5721 JMP I XHALT 4129 / 4130 /ROUTINE TO NOTIFY OF OF RUNNING IF NEED BE DONE 4131 / 4132 004133 0000 XTICK, 0 4133 004134 4472 CHEK22 4134 004135 7410 SKP /ON APT. 4135 004136 5733 JMP I XTICK 4136 004137 2351 ISZ CLKCNT 4137 004140 5733 JMP I XTICK 4138 004141 1352 TAD COUNT 4139 004142 3351 DCA CLKCNT /INIT CLOCK COUNTER 4140 004143 6002 IOF 4141 004144 6201 CDF 00 4142 004145 6272 CIF 70 4143 004146 4750 JMS I K6500 /NOTIFY APT-8 4144 004147 5733 JMP I XTICK /EXIT. 4145 / 4146 004150 6500 K6500, 6500 4147 004151 7777 CLKCNT, -1 4148 004152 7763 COUNT, -15 4149 004170 5244 PAGE 004171 4113 004172 3600 004173 0200 004174 0377 004175 3762 004176 2000 004177 7114 4150 /SEQUENCE TO THE NEXT AVAILABLE DISKETTE 4151 / 4152 004200 4200 XGETUNIT, . 4153 004201 3240 DCA UNITZ /CLEAR FOR A NEW DISKETTE 4154 004202 1236 TAD WUNITS /WORKING UNIT COUNTER 4155 004203 7450 SNA 4156 004204 1235 TAD UNITS /EXHAUSTED ALL DISKETTES ; RESET 4157 004205 3236 DCA WUNITS 4158 004206 3237 DCA POLL /CLEAR POLLER 4159 004207 7120 STL /START 4160 004210 1237 NEXT, TAD POLL 4161 004211 7010 RAR /NEXT 4162 004212 3237 DCA POLL 4163 004213 1237 TAD POLL 4164 004214 7430 SZL /DISKETTE 4165 004215 4461 HLT /NO UNITS AVAILABLE ; CATASTROPHIC 4166 004216 0236 AND WUNITS 4167 004217 7450 SNA 4168 004220 2240 ISZ UNITZ /ACTIVE DISKETTE 4169 004221 7450 SNA 4170 004222 5210 JMP NEXT /TRY AGAIN 4171 /A DISKETTE IS AVAILABLE AND SELECTED FOR OPERATIONS 4172 004223 3241 DCA UNITX /A CODED VERSION OF UNIT 4173 004224 1241 TAD UNITX 4174 004225 7040 CMA /...DELETE FROM 4175 004226 0236 AND WUNITS /...AVAILABLE UNIT LIST (WUNITS) 4176 004227 3236 DCA WUNITS /...AND CREATE NEW LIST 4177 004230 1240 TAD UNITZ 4178 004231 7106 CLL RTL 4179 004232 7006 RTL /BIT 7 OF COMMAND REGISTER 4180 004233 3242 DCA UNIT /FOR COMMAND REGISTER LOAD LATER 4181 004234 5600 JMP I XGETUNIT 4182 004235 6000 UNITS, 6000 /AVAILABLE UNIT LIST (MAX SYS CONFIGURATION) 4183 004236 0000 WUNITS, 0 /CODED WORKING UNIT LIST (UNITS YET TO BE EXERCISED) 4184 004237 0000 POLL, 0 /DISKETTE POLL 4185 / 4186 /UNITZ ; UNIT 1 LOOKS LIKE 0001 4187 /UNITX ; UNIT 1 LOOKS LIKE 2000 4188 /UNIT ; UNIT 1 LOOKS LIKE 0020 (RX01 COMMAND WORD BIT 7) 4189 / 4190 004240 0000 UNITZ, 0 /ACTIVE DISKETTE 4191 004241 0000 UNITX, 0 /ACTIVE DISKETTE IN CODED FORM 4192 004242 0000 UNIT, 0 /A CODED VERSION OF UNIT Z (FOR COMMAND REGISTER LOAD) 4193 / 4194 /IF (WUNITS) = 0 ; ALL SELECTED DISKETTE DRIVES HAVE SEQUENCED 4195 / 4196 004243 4243 XDONE, . 4197 004244 1236 TAD WUNITS 4198 004245 7650 SNA CLA 4199 004246 2243 ISZ XDONE / DONE ; (WUNITS) = 0 4200 004247 5643 JMP I XDONE 4201 /INITIALIZE THE NUMBER OF TRACKS ACCESSED VIA THE DIFFERENCE BETWEEN 4202 /THE CONTENTS OF PROGRAM LOCATIONS " OD " AND " ID ". 4203 / 4204 004250 4250 XINITTRACKS, . 4205 004251 1030 TAD ID 4206 004252 7040 CMA 4207 004253 1027 TAD OD 4208 004254 3147 DCA TRACKS 4209 004255 1147 TAD TRACKS 4210 004256 7041 CIA 4211 004257 3150 DCA TTRACKS 4212 004260 5650 JMP I XINITTRACKS 4213 / OD (OUTSIDE DIAMETER) ACTUATOR POSITION INITIALIZED TO (0) 4214 / 4215 / ID (INTSIDE DIAMETER) ACTUATOR POSITION INITIALIZED TO 114 (76 DECIMAL) 4216 / 4217 / " XGETATRACK " WILL GET A TRACK VALUE BETWEEN THE LIMITS OF THE CONTENTS OF 4218 /PROGRAM LOCATION OD (MIN 0), AND THE CONTENTS OF ID (MAX 114). 4219 / 4220 /GET A DISKETTE TRACK TO BE (AC) WITHIN IOT LCD-B 4221 / 4222 / IF THIS IS THE " FIRSTMOVE ", (START) IS NOT APPLICABLE HERE, BUT 4223 / WILL BECOME APPLICABLE WITHIN SUBROUTINE " XGETASECTOR ". 4224 / 4225 004261 4261 XGETATRACK, . 4226 004262 1131 TAD TARGET /present actuator position (from previous lcd-b) 4227 004263 3125 OUTPUT, DCA START /bacomes starting actuator position 4228 004264 1377 TAD (70) 4229 004265 0132 AND TESTP 4230 004266 7110 CLL RAR 4231 004267 7012 RTR 4232 004270 1376 TAD (TAD SEQ) 4233 004271 3272 DCA .+1 4234 004272 1276 TAD SEQ 4235 004273 3275 DCA .+2 4236 004274 5675 RESEQUENCE, JMP I .+1 4237 004275 4306 SEQ000 4238 /TRACK ACCESS SEQUENCE IS SELECTED VIA AC SWITCHES 6,7,8 AT L/S 200 4239 / 4240 / 0 - INCREMENTAL (1-114-0) 4241 / 1 - DECREMENTAL (114-0) 4242 / 2 - 1-114, 1130-0 4243 / 3 - BOUNCE ID TO OD ONLY 4244 / 4 - BOUNCE: (114, 0; 113, 1 ; 112, 2 ; ...ETC TO 47, 45) 4245 / 5 - 4246 / 6 - STROBE: (77, 0 ; 76, 0 ; 75, 0 ; ...ETC TO 1, 0) 4247 / 7 - RANDOM 4248 / 4249 004276 4306 SEQ, SEQ000 4250 004277 4317 SEQ001 4251 004300 4400 SEQ010 4252 004301 4422 SEQ3 4253 004302 4444 SEQ100 4254 004303 5453 NOTEST 4255 004304 4465 SEQ6 4256 004305 4330 SEQ111 4257 / 4258 /INCREMENTAL ACTUATOR ACCESS (OD INCREMENTALLY TO ID) 4259 / 4260 004306 1150 SEQ000, TAD TTRACKS 4261 004307 1147 TAD TRACKS 4262 004310 7640 SZA CLA 4263 004311 5314 JMP .+3 4264 004312 1027 TAD OD 4265 004313 5332 JMP DCATARGET 4266 004314 1131 TAD TARGET 4267 004315 7001 IAC 4268 004316 5332 JMP DCATARGET 4269 /DECREMENTAL ACTUATOR ACCESS (ID TO OD) 4270 / 4271 004317 1150 SEQ001, TAD TTRACKS 4272 004320 1147 TAD TRACKS 4273 004321 7640 SZA CLA 4274 004322 5325 JMP .+3 4275 004323 1030 TAD ID 4276 004324 5332 JMP DCATARGET 4277 004325 1131 TAD TARGET 4278 004326 1117 TAD K7777 4279 004327 5332 JMP DCATARGET 4280 /RANDOM ACTUATOR ACCESS 4281 / 4282 004330 4775 SEQ111, JMS RANGEN 4283 004331 0374 AND (177) 4284 004332 3131 DCATARGET, DCA TARGET 4285 /PREVIOUSLY AT L/S THE FOLLOWING CONDITION WAS TRUE 4286 / 4287 / 0 <= (OD) <= (ID) <= 32 4288 / 4289 /THEREFORE TEST FOR THE CONDITION 4290 / 4291 / (TARGET) <= (ID) 4292 / 4293 004333 1030 XSEQ, TAD ID 4294 004334 7041 CIA 4295 004335 1131 TAD TARGET 4296 004336 7740 SMA SZA CLA 4297 004337 5274 JMP RESEQUENCE 4298 /AND TEST FOR THE CONDITION 4299 / 4300 / (OD) <= (TARGET) 4301 / 4302 004340 1131 TAD TARGET 4303 004341 7041 CIA 4304 004342 1027 TAD OD 4305 004343 7740 SMA SZA CLA 4306 004344 5274 JMP RESEQUENCE 4307 004345 5661 JMP I XGETATRACK 4308 / 4309 /ERROR REPORTER FOR APT. INDICATES TEST PC IN ERROR, THE ONLY EXCEPTIONS 4310 /ARE FOR AN UNEXPECTED RX01 INTERRUPT, 4311 /AND A MISSING ERROR FLAG. 4312 / 4313 004346 0000 XAERRO, 0 4314 004347 3137 DCA XXX /STORE ERROR PC. 4315 004350 4472 CHEK22 4316 004351 7410 SKP 4317 004352 5746 JMP I XAERRO 4318 004353 6002 IOF 4319 004354 1137 TAD XXX /GET BACK ERROR PC. 4320 004355 6201 CDF 00 4321 004356 6272 CIF 70 4322 004357 5761 JMP I K6520 4323 004360 4461 HLT /SOMETHING WENT WRONG 4324 /ON REPORTING ERROR TO APT 4325 004361 6520 K6520, 6520 4326 004374 0177 PAGE 004375 4712 004376 1276 004377 0070 4327 / OD+1 INCREMENTALLY TO ID; ID-1 DECREMENTALLY TO OD 4328 / 4329 004400 1150 SEQ010, TAD TTRACKS 4330 004401 1147 TAD TRACKS 4331 004402 7640 SZA CLA 4332 004403 5213 JMP XSEQ2 4333 004404 1147 TAD TRACKS 4334 004405 7104 CLL RAL 4335 004406 1377 TAD (2) 4336 004407 3147 DCA TRACKS / (TRACKS X 2)-2 = 152(MAX VAL) 4337 004410 1147 TAD TRACKS 4338 004411 7041 CIA 4339 004412 3150 DCA TTRACKS 4340 /INCREMENT IF (TRACKS) < [ (ID)-(OD) ] 4341 /DECREMENT IF (TRACKS) >= [ (ID)-(OD) ] 4342 004413 1027 XSEQ2, TAD OD 4343 004414 7041 CIA 4344 004415 1030 TAD ID 4345 004416 1147 TAD TRACKS 4346 004417 7700 SMA CLA 4347 004420 5776 JMP SEQ001 / ID-1 TO OD 4348 004421 5775 JMP SEQ000 / OD+1 TO ID 4349 / 4350 /BOUNCE: ID,OD ONLY 4351 / 4352 004422 1150 SEQ3, TAD TTRACKS 4353 004423 1147 TAD TRACKS 4354 004424 7640 SZA CLA 4355 004425 5233 JMP XSEQ3 4356 004426 7344 CLL STA RAL 4357 004427 3147 DCA TRACKS 4358 004430 1147 TAD TRACKS 4359 004431 7041 CIA 4360 004432 3150 DCA TTRACKS 4361 004433 1131 XSEQ3, TAD TARGET 4362 004434 7041 CIA 4363 004435 1027 TAD OD 4364 004436 7650 SNA CLA 4365 004437 1030 TAD ID 4366 004440 7450 SNA 4367 004441 1027 TAD OD 4368 004442 3131 DCA TARGET 4369 004443 5774 JMP XSEQ 4370 /BOUNCE: ID TO OD 4371 / 4372 /THEREFORE 76 (NOT 77) TRACKS ARE TESTED 4373 / 4374 004444 1150 SEQ100, TAD TTRACKS 4375 004445 1147 TAD TRACKS 4376 004446 7640 SZA CLA 4377 004447 5254 JMP Q40D 4378 /FIRST ENTRY ONTO SEQUENCE # 4 4379 / 4380 /IF (TRACKS) = [ (ID)-(OD) ] IS A NEGATIVE ODD THEN INCREMENT TRACK 4381 / 4382 004450 7201 CLA IAC 4383 004451 0147 AND TRACKS 4384 004452 7640 SZA CLA 4385 004453 2147 ISZ TRACKS 4386 /IF (TRACKS) = -ODD ; BOUNCE TO OUTSIDE DIAMETER, BUT 4387 / 4388 /IF (TRACKS) = -EVEN ; BOUNCE TO INSIDE DIAMETER 4389 / 4390 004454 7201 Q40D, CLA IAC 4391 004455 0147 AND TRACKS 4392 004456 7650 SNA CLA 4393 004457 5305 JMP Q46ID 4394 004460 7240 STA 4395 004461 1150 TAD TTRACKS 4396 004462 1147 TAD TRACKS 4397 004463 7110 CLL RAR 4398 004464 5313 JMP Q46OD 4399 // (TRACKS) = -EVEN ; THEREFORE THE BOUNCE IS TO THE INSIDE DIAMETER 4400 // 4401 /Q4ID, TAD TTRACKS; TAD TRACKS; CLL RAR; CIA; TAD ID; DCA TARGET; JMP XSEQ 4402 /STROBE ID, OD ; ID-1, OD ; ID-2, OD ; ...ETC... 4403 / 4404 004465 1150 SEQ6, TAD TTRACKS 4405 004466 1147 TAD TRACKS 4406 004467 7640 SZA CLA 4407 004470 5300 JMP Q60D 4408 /FIRST ENTRY INTO SEQUENCE #6 4409 / 4410 004471 1147 TAD TRACKS 4411 004472 7105 CLL IAC RAL 4412 004473 3147 DCA TRACKS 4413 004474 1147 TAD TRACKS 4414 004475 7041 CIA 4415 004476 3150 DCA TTRACKS 4416 004477 5305 JMP Q46ID 4417 / 4418 / IF (TARGET) = (OD), THEN STROBE TO INSIDE DIAMETER 4419 / 4420 004500 1131 Q60D, TAD TARGET 4421 004501 7041 CIA 4422 004502 1027 TAD OD 4423 004503 7640 SZA CLA 4424 004504 5313 JMP Q46OD 4425 / 4426 / 4427 / 4428 004505 1150 Q46ID, TAD TTRACKS 4429 004506 1147 TAD TRACKS 4430 004507 7110 CLL RAR 4431 004510 7041 CIA 4432 004511 1030 TAD ID 4433 004512 7410 SKP 4434 004513 1027 Q46OD, TAD OD 4435 004514 3131 DCA TARGET 4436 004515 5774 JMP XSEQ 4437 /************ 4438 /CONSOLE 4439 /************ 4440 4441 4442 004516 0000 XCHECKC8, 0 4443 004517 7200 CLA /CHECK IF CONSOL IS ACTIVE 4444 004520 1022 TAD 22 4445 004521 0373 AND (400 4446 004522 7650 SNA CLA 4447 004523 5337 JMP NOTCL8 /NOT ON ACTIVE CONSOLE 4448 004524 1716 TAD I XCHECKC8 /GET CONSOLE CALL 4449 004525 3331 DCA PACKDO /STORE IT IN THIS LOC 4450 004526 4507 WAITTY /WAIT FOR PRINTING TO FINISH 4451 004527 6002 IOF /KILL INTERRUPT 4452 004530 6212 CIF 10 /CHANGE INST FIELD TO FIELD ONE 4453 004531 0000 PACKDO, 0000 /DO CONSOLE CALL 4454 004532 7000 NOP 4455 004533 6001 ION /RETURN FROM CONSOLE CALL 4456 004534 2316 EXITCK, ISZ XCHECKC8 /BUMP RETURN 4457 004535 7200 CLA 4458 004536 5716 JMP I XCHECKC8 /EXIT XCHECK 4459 004537 2316 NOTCL8, ISZ XCHECKC8 /BUMP FOR NOT CONSOL CALL +2 4460 004540 5334 JMP EXITCK /LEAVE IT BY THIS MEANS 4461 4462 4463 /************ 4464 /CONSOLE 4465 /************ 4466 /THIS SUBROUTINE IS ENTERED FROM TESTS: T21, T22, T32, T33 4467 / 4468 /THE CONTENTS OF THE AC AT ENTRY IS THE PATTERN TO FILL THE BUFFER WITH 4469 / 4470 004541 4541 FB128BYTES, . 4471 004542 3166 DCA GOOD /THE CONTENTS OF GOOD IS THE PURE PATTERN 4472 004543 1372 TAD (100) 4473 004544 4436 LCD /FILL BUFFER (8-BIT MODE) 4474 004545 5350 JMP .+3 /START BY WAITING FOR TRANSFER REQUEST 4475 004546 1166 TAD GOOD 4476 004547 4442 XDROUT /TRANSFER OUT TO SECTOR BUFFER 4477 004550 4443 STR 4478 004551 7410 SKP 4479 004552 5346 JMP .-4 /WAIT FOR TRANSFER REQUEST FLAG 4480 004553 4445 SDN 4481 004554 5350 JMP .-4 /WAIT FOR DONE FLAG 4482 004555 4444 SER 4483 004556 4465 OK 4484 004557 4452 E210, ERROR /UNEXPECTED ERROR FLAG 4485 004560 4502 SCOPE 4486 004561 5741 JMP I FB128BYTES 4487 004572 0100 PAGE 004573 0400 004574 4333 004575 4306 004576 4317 004577 0002 4488 /INITIALIZE THE NUMBER OF SECTORS AVAILABLE TO ACCESS (PER TRACK) VIA THE 4489 /DIFFERENCE BETWEEN THE CONTENTS OF PROGRAM LOCATIONS " FIRST " AND " LAST ". 4490 / 4491 004600 4600 XINITSECTORS, . 4492 004601 1032 TAD LAST 4493 004602 7040 CMA 4494 004603 1031 TAD FIRST 4495 004604 3122 DCA SECTORS 4496 004605 3311 DCA XSTARGET 4497 004606 5600 JMP I XINITSECTORS 4498 / 4499 /GET A SECTOR 4500 / 4501 /SECTOR ACCESS 1-32 (OCTAL) 4502 / 4503 004607 4607 XGETASECTOR, . 4504 / 4505 /SET (SSTART) 4506 / 4507 004610 7301 XXGETASECTOR, CLL CLA IAC / 1 4508 004611 3310 DCA IF 4509 004612 1120 TAD RDC 4510 004613 7450 SNA 4511 004614 2310 ISZ IF / + 1 RDC 4512 004615 7710 SPA CLA 4513 004616 5222 JMP .+4 / + 1 WRITE 4514 004617 7307 CLL CLA IAC RTL 4515 004620 0132 AND TESTP 4516 004621 7640 SZA CLA 4517 004622 2310 ISZ IF / + 1 8-BIT MODE 4518 004623 4777 JMS VT78CK /GO CHECK IF ON VT78 SYSTEM 4519 004624 2310 ISZ IF /INCREASE (IF) FOR VT78 4520 004625 1311 NEXTSECTOR, TAD XSTARGET 4521 004626 7440 SZA 4522 004627 1310 TAD IF /INTERLEAVE FACTOR 1, 2, 3 4523 004630 7001 IAC /NOW INTERLEAVE FACTOR IS 2, 3, 4 4524 004631 3311 DCA XSTARGET 4525 004632 1311 TAD XSTARGET 4526 004633 1376 TAD (-33) 4527 004634 7510 SPA 4528 004635 5243 JMP OKSTARGET / < 33 4529 004636 7640 SZA CLA / SKIP OF = 33 4530 004637 7240 STA 4531 004640 1375 TAD (-31) 4532 004641 1311 TAD XSTARGET 4533 004642 3311 DCA XSTARGET 4534 004643 7200 OKSTARGET, CLA 4535 004644 1311 TAD XSTARGET 4536 004645 3124 DCA STARGET 4537 / 4538 /PREVIOUSLY AL L/S THE FOLLOWING CONDITION WAS TRUE 4539 / 4540 / 0 < (FIRST) <= (LAST) 4541 / 4542 /THEREFORE TEST FOR THE CONDITION 4543 / 4544 / (STARGET) <= (LAST) 4545 / 4546 004646 1032 TAD LAST 4547 004647 7041 CIA 4548 004650 1124 TAD STARGET 4549 004651 7740 SMA SZA CLA 4550 004652 5225 JMP NEXTSECTOR 4551 / 4552 /AND FOR THE CONDITION 4553 / 4554 / (FIRST) <= (STARGET) 4555 / 4556 004653 1124 TAD STARGET 4557 004654 7041 CIA 4558 004655 1031 TAD FIRST 4559 004656 7740 SMA SZA CLA 4560 004657 5225 JMP NEXTSECTOR 4561 /FORMAT (XTARGET) BITS 0-6 TRACK ; AND BITS 7-11 SECTOR 4562 / 4563 004660 1131 TAD TARGET 4564 004661 7104 CLL RAL 4565 004662 7006 RTL 4566 004663 7006 RTL 4567 004664 1124 TAD STARGET 4568 004665 3151 DCA XTARGET 4569 /AND SET THE HEADER WORDS 0, AND 1 OF THE WRITE BUFFER FOR RDC I.D. 4570 / 4571 /WORD 0 IS THE TRACK 4572 /WORD 1 IS THE UNIT (BIT 4) AND THE SECTOR (BITS 7-11) 4573 / 4574 004666 1131 TAD TARGET 4575 004667 3774 DCA WBUFFER 4576 004670 1773 TAD UNITZ 4577 004671 7106 CLL RTL 4578 004672 7006 RTL 4579 004673 7006 RTL 4580 004674 7004 RAL 4581 004675 1124 TAD STARGET 4582 004676 3772 DCA WBUFFER+1 4583 /WORDS 63 AND 64 OR 127 AND 128 ARE OUT-SUMCHECK WORDS 4584 / 4585 004677 1155 TAD PATSUMCHECK 4586 004700 1774 TAD WBUFFER 4587 004701 1772 TAD WBUFFER+1 4588 004702 3556 DCA I WORDX 4589 004703 1556 TAD I WORDX 4590 004704 1556 TAD I WORDX 4591 004705 7041 CIA 4592 004706 3557 DCA I WORDY 4593 004707 5607 JMP I XGETASECTOR 4594 / 4595 004710 0000 IF, 0 4596 004711 0000 XSTARGET, 0 / 1 TO 32 4597 / 4598 /RANDOM NUMBER GENERATOR 4599 / (EXIT IS WITH THE RANDOM # IN THE ACCUMULATOR) 4600 004712 4712 RANGEN, . 4601 004713 7301 CLL CLA IAC 4602 004714 1326 TAD R1 4603 004715 1327 TAD R2 4604 004716 7106 CLL RTL 4605 004717 3326 DCA R1 4606 004720 1327 TAD R2 4607 004721 7012 RTR 4608 004722 1326 TAD R1 4609 004723 3327 DCA R2 4610 004724 1327 TAD R2 4611 004725 5712 JMP I RANGEN 4612 004726 1234 R1, 1234 4613 004727 0765 R2, 0765 4614 / 4615 /TESTS 4616 / 4617 004730 0600 TESTS, T0 4618 004731 0626 T1 4619 004732 0652 T2 4620 004733 0723 T3 4621 004734 1000 T4 4622 004735 1071 T5 4623 004736 1132 T6 4624 004737 1200 T7 4625 004740 1215 T10 4626 004741 1233 T11 4627 004742 1260 T12 4628 004743 1456 T13 4629 004744 1603 T14 4630 004745 1601 T15 4631 004746 1455 T16 4632 004747 1602 T17 4633 004750 1600 T20 4634 004751 1675 T21 4635 004752 1674 T22 4636 004753 2265 T23 4637 004754 1714 T24 4638 004755 1716 T25 4639 004756 1720 T26 4640 004757 2107 T27 4641 004760 2200 T30 4642 004761 2202 T31 4643 004762 2223 T32 4644 004763 2241 T33 4645 004764 2300 T34 4646 004765 2276 T35 4647 004766 2277 T36 4648 004767 2275 T37 4649 004770 0462 NOMORE-3 4650 004772 7115 PAGE 004773 4240 004774 7114 004775 7747 004776 7745 004777 1165 4651 / 4652 /TYPE 4 OCTAL 4653 / 4654 005000 5000 XTY4OCT, . 4655 005001 7410 SKP 4656 005002 3162 DCA TTYBUSY /INITIALIZE TTYBUSY INDICATOR. 4657 005003 4500 SETUP 4658 005004 5000 XTY4OCT 4659 005005 1600 TAD I XTY4OCT 4660 005006 2200 ISZ XTY4OCT 4661 005007 3262 DCA XOCTAL /FOR " OCTAL " ADDRESS 4662 005010 1662 TAD I XOCTAL 4663 005011 3262 DCA XOCTAL /OCTAL 4664 005012 7346 CLL STA RTL / -3 4665 005013 1117 TAD K7777 / -1 4666 005014 3263 DCA DIGITS 4667 005015 7346 SHIFT, CLL STA RTL / -3 4668 005016 3265 DCA SHIFTS 4669 005017 1262 TAD XOCTAL 4670 005020 7100 XSHIFT, CLL 4671 005021 7510 SPA 4672 005022 7020 CML 4673 005023 7004 RAL 4674 005024 2265 ISZ SHIFTS 4675 005025 5220 JMP XSHIFT 4676 005026 3262 DCA XOCTAL /NEW 4677 005027 1262 TAD XOCTAL 4678 005030 0174 AND K0007 /OCTAL MASK 4679 005031 7450 SNA 4680 005032 5242 JMPDIG, JMP ISZDIG /DO NOT PRINT LEADING ZEROS. 4681 005033 3264 DCA XXDMP /STORE NUMBER TO BE PRINTED 4682 005034 1173 TAD K7000 4683 005035 3232 DCA .-3 /NOP JMP ISZDIG, LEADING ZEROS WILL NOT BE PRINTED 4684 005036 1264 TAD XXDMP /RETURN VALUE TO BE PRINTED. 4685 005037 1377 TAD (260) /FOR ASCII COMPONENT 4686 005040 4506 TYPEIT 4687 005041 2266 ISZ CCNT /INDICATES A CHARACTER HAS BEEN PRINTED 4688 005042 2263 ISZDIG, ISZ DIGITS /INDEX DIGIT COUNT 4689 005043 5215 JMP SHIFT 4690 005044 2175 ISZ XCNT /TY8OCT? 4691 005045 5202 JMP XTY4OCT+2 /YES 4692 005046 1266 TAD CCNT 4693 005047 7650 SNA CLA /PRINT ONLY A ZERO?? 4694 005050 5257 JMP ZERO /YES 4695 005051 7340 CLL CLA CMA 4696 005052 3175 DCA XCNT /INIT COUNTER 4697 005053 3266 DCA CCNT 4698 005054 1376 TAD (JMP ISZDIG) /ESTABLISH FIRST TIME SWITCH. 4699 005055 3232 DCA JMPDIG 4700 005056 5775 JMP THENEXIT 4701 005057 1377 ZERO, TAD (260) 4702 005060 4506 TYPEIT 4703 005061 5251 JMP .-10 4704 005062 0000 XOCTAL, 0 / " OCTAL " FOR TYPEOUT 4705 005063 7775 DIGITS, -3 4706 005064 0000 XXDMP, 0 4707 005065 7775 SHIFTS, -3 4708 005066 0000 CCNT, 0 4709 /THIS ROUTINE WILL DETERMINE DEVICE CODE TO USE IN PLACE 4710 /OF THE STANDARD 75 CODE. 4711 / 4712 /************************************************************* 4713 005067 0000 CHNDEV, 0 4714 005070 1114 TAD DTESTP /GET TESTING PARAMETERS. 4715 005071 0374 AND (700 /ISOLATE DEVICE CODE TO USE 4716 005072 7450 SNA /USE 75? 4717 005073 5667 JMP I CHNDEV /YES. 4718 005074 7112 CLL RTR 4719 005075 7010 RAR /MOVE TO BIT POSITION 6-8. 4720 005076 1373 TAD (6700) 4721 /PROPER DEVICE CODE SHOULD NOW BE ESTABLISHED. 4722 /IF THE OPERATOR HAS MADE AN ERROR THE PROGRAM HAS NO WAY 4723 /OF KNOWING IT. 4724 / 4725 005077 3010 DCA A10 /SET DEVICE CODE = 67X- 4726 005100 1372 TAD (XDEVICE-1) 4727 005101 3011 DCA A11 /INTO APPLICABLE PROGRAM 4728 005102 1411 TAD I A11 4729 005103 7450 SNA 4730 005104 5312 JMP .+6 /DEVICE CODE LOCATIONS 4731 005105 3166 DCA GOOD 4732 005106 1010 TAD A10 4733 005107 3566 DCA I GOOD /SPECIFIED AT 4734 005110 2010 ISZ A10 4735 005111 5302 JMP .-7 /PROGRAM LOCATION "DEVICE" 4736 005112 1735 TAD I XK67X2A 4737 005113 3771 DCA K67X2B /DUPLICATE IOT CODE 67X2 4738 005114 1735 TAD I XK67X2A 4739 005115 3770 DCA K67X2C /DUPLICATE IOT CODE 67X2 4740 005116 1736 TAD I XK67X3A 4741 005117 3767 DCA K67X3B /DUPLICATE IOT CODE 67X3 4742 005120 1737 TAD I XK67X4A 4743 005121 3766 DCA K67X4B /DUPLICATE IOT CODE 67X4 4744 005122 1740 TAD I XK67X5A 4745 005123 3765 DCA K67X5B /DUPLICATE IOT CODE 67X5 4746 005124 1741 TAD I XK67X6A 4747 005125 3764 DCA K67X6B /DUPLICATE IOT CODE 67X6 4748 005126 1741 TAD I XK67X6A 4749 005127 3763 DCA K67X6C /DUPLICATE IOT CODE 67X6 4750 005130 1742 TAD I XK67X7A 4751 005131 3762 DCA K67X7B /DUPLICATE IOT CODE 67X7 4752 005132 5667 JMP I CHNDEV /EXIT AND RUN PROGRAM. 4753 /PROGRAM DEVICE CODE TABLE 4754 / 4755 005133 6201 XDEVICE, K67X0 /VT78/SEL - SELECT UNIT A OR UNIT B 4756 005134 6206 K67X1 4757 005135 6401 XK67X2A, K67X2A /XDR TRANSFER DATA REGISTER 4758 005136 6410 XK67X3A, K67X3A / STR (SKIP ON TRANSFER REQUEST FLAG) 4759 005137 6415 XK67X4A, K67X4A / SER (SKIP ON ERROR FLAG) 4760 005140 6422 XK67X5A, K67X5A / SDN (SKIP ON DONE FLAG) 4761 005141 6431 XK67X6A, K67X6 / CLEAR (AC = 0) / SET (AC = 1) INTERRUPT ENABLE 4762 005142 6435 XK67X7A, K67X7A / INIT (INITIALIZE / IMPLIED READ TRACK 0 SECTOR 1) 4763 005143 0000 0 / 4764 / 4765 / 4766 / 4767 / 4768 / 4769 / 4770 /ROUTINE TO DETERMINE IF ON APT. 4771 / 4772 005144 0000 XCHK22, 0 4773 005145 1022 TAD 22 4774 005146 0361 AND (4000 4775 005147 7640 SZA CLA 4776 005150 5744 JMP I XCHK22 4777 005151 2344 ISZ XCHK22 4778 005152 5744 JMP I XCHK22 4779 4780 005161 4000 PAGE 005162 6451 005163 3637 005164 3622 005165 0701 005166 0715 005167 0707 005170 3623 005171 6404 005172 5132 005173 6700 005174 0700 005175 4114 005176 5242 005177 0260 4781 / 4782 /ROUTINE TO TYPE 8 OCTAL DIGITS. 4783 /FORMAT TY8OCT; MSB(STARTING ADDRESS OF DOUBLE LOG TO BE PRINTED). 4784 / 4785 005200 0000 XTY8OCT, 0 4786 005201 1600 TAD I XTY8OCT /GET STARTING ADDRESS 4787 005202 3212 DCA .+10 4788 005203 1600 TAD I XTY8OCT 4789 005204 7001 IAC /SECOND ADDRESS 4790 005205 3211 DCA .+4 4791 005206 7344 CLL CLA CMA RAL /-2 4792 005207 3175 DCA XCNT 4793 005210 4505 TY4OCT 4794 005211 7000 NOP /REPLACED WITH POINTER TO BE 4795 005212 7000 NOP /PRINTED 4796 005213 2200 ISZ XTY8OCT /UPDATE RETURN 4797 005214 5600 JMP I XTY8OCT /EXIT 4798 /SUBROUTINE ; TAB 4799 /ENTRY ; TAB ; +N 4800 /COMMENT ; PRINT " N " SPACES WHERE N IS VIA INDEXED XTAB 4801 / 4802 005215 5215 XTAB, . 4803 005216 4500 SETUP 4804 005217 5215 JMP XTAB 4805 005220 3243 DCA XXTAB /FOR COUNT 4806 005221 7200 XTABD, CLA 4807 005222 1243 TAD XXTAB 4808 005223 1615 TAD I XTAB /FOR " N " 4809 005224 3243 DCA XXTAB 4810 005225 1320 TAD CHARLINE / # OF CHARACTERS ALREADY TYPED ON THIS LINE 4811 005226 1377 TAD (110) / 72 CHARACTER LINE STANDARD 4812 005227 7041 CIA 4813 005230 1243 TAD XXTAB 4814 005231 7550 SPA SNA 4815 005232 5221 JMP XTABD 4816 005233 7041 CIA 4817 005234 3243 DCA XXTAB 4818 005235 2215 ISZ XTAB 4819 005236 1376 TAD (240) 4820 005237 4506 TYPEIT 4821 005240 2243 ISZ XXTAB 4822 005241 5236 JMP .-3 4823 005242 5775 JMP THENEXIT 4824 005243 0000 XXTAB, 0 4825 / 4826 /SUBROUTINE ; PRINT 4827 /ENTRY ; 4828 /COMMENT ; PRINT A " MESSAGE ", AND A AT EACH _ 4829 / 4830 / CALL SYNTAX FOR PRINT 4831 / 4832 / 1. PRINT; MTEXT 4833 / 4834 005244 5244 XPRINT, . 4835 005245 4472 CHEK22 4836 005246 5341 JMP PNTEXT 4837 005247 4507 WAITTY 4838 005250 1644 TAD I XPRINT / " TEXT " 4839 005251 2244 ISZ XPRINT 4840 005252 3262 DCA MESSAGE /ADDRESS 4841 005253 1662 NOWORD, TAD I MESSAGE 4842 005254 4263 OUTPUT /LEFT BYTE 4843 005255 1662 TAD I MESSAGE 4844 005256 2262 ISZ MESSAGE 4845 005257 4433 BSW 4846 005260 4263 OUTPUT /RIGHT BYTE 4847 005261 5253 JMP NOWORD 4848 005262 0000 MESSAGE, 0 4849 OUTPUT=JMS . 4850 005263 5263 XOUTPUT, . 4851 005264 0374 AND (-100) /MASK MS BITS 0-5 4852 005265 7440 SZA 4853 005266 5271 JMP .+3 4854 005267 3162 DCA TTYBUSY 4855 005270 5773 JMP PIEXIT 4856 005271 1372 TAD (4100) 4857 005272 7450 SNA 4858 005273 5302 JMP NULINE / 4859 005274 1371 TAD (-4100+2) /CODE 200 4860 005275 7500 SMA 4861 005276 7001 IAC /CODE 300 4862 005277 4433 BSW 4863 005300 4506 TYPEIT 4864 005301 5663 JMP I XOUTPUT 4865 005302 1263 NULINE, TAD XOUTPUT 4866 005303 3305 DCA XTYPEIT 4867 005304 5311 JMP XNULINE 4868 005305 5305 XTYPEIT, . 4869 005306 4321 JMS TY1ASC 4870 005307 2320 ISZ CHARLINE 4871 005310 5705 JMP I XTYPEIT 4872 005311 1370 XNULINE, TAD (15) / 4873 005312 4321 JMS TY1ASC 4874 005313 1367 TAD (12) / 4875 005314 4321 JMS TY1ASC 4876 005315 1366 TAD (-110) / 72 CHARACTER LINE (NEGATIVE NOTATION) 4877 005316 3320 DCA CHARLINE 4878 005317 5705 JMP I XTYPEIT 4879 005320 7670 CHARLINE, -110 / # CHARACTERS PER LINE ARE COUNTED HERE 4880 / 4881 A14=14 4882 / 4883 005321 5321 TY1ASC, . 4884 005322 6002 IOF 4885 005323 3014 DCA A14 4886 005324 4472 CHEK22 4887 005325 5341 JMP PNTEXT 4888 005326 4765 JMS CKSFLG /GO CHECK IF ^S IS ACTIVE 4889 005327 1014 TAD A14 4890 005330 6046 TLS 4891 005331 7200 CLA 4892 005332 1162 TAD TTYBUSY 4893 005333 7640 SZA CLA 4894 005334 5773 JMP PIEXIT 4895 005335 2162 ISZ TTYBUSY 4896 005336 1364 TAD (PI) 4897 005337 3002 DCA IPI 4898 005340 7410 SKP 4899 005341 2244 PNTEXT, ISZ XPRINT /UPDATE RETURN. 4900 005342 6001 ION 4901 005343 5644 JMP I XPRINT 4902 / 4903 / 4904 005344 6042 XTCF, TCF 4905 005345 1014 TAD A14 4906 005346 1363 TAD (-207) 4907 005347 7650 SNA CLA 4908 005350 5705 JMP I XTYPEIT 4909 005351 5721 JMP I TY1ASC 4910 / 4911 / 4912 / 4913 005352 5352 XSPECIALTYPEIT, . 4914 005353 4500 SETUP 4915 005354 5352 XSPECIALTYPEIT 4916 005355 1752 TAD I XSPECIALTYPEIT 4917 005356 2352 ISZ XSPECIALTYPEIT 4918 005357 4506 TYPEIT 4919 005360 5775 JMP THENEXIT 4920 005363 7571 PAGE 005364 5417 005365 5400 005366 7670 005367 0012 005370 0015 005371 3702 005372 4100 005373 5510 005374 7700 005375 4114 005376 0240 005377 0110 4921 /ROUTINE TO CHECK IF ^S IS ACTIVE 4922 / 4923 005400 0000 CKSFLG, 0 4924 005401 7001 IAC /AC=1 4925 005402 6211 CDF 10 4926 005403 1777 TAD C8SFLG /GO GET FLAG (7777 IF SET) 4927 005404 6201 CDF 0 4928 005405 7640 SZA CLA /IS FLAG SET? 4929 005406 5600 JMP I CKSFLG /NO - RETURN 4930 005407 6212 CIF 10 /CHANGE INSTR FIELD TO CONSOLE PACKAGE 4931 005410 4776 JMS C8ENTR /GO TO CONSOLE PACKAGE 4932 005411 5600 JMP I CKSFLG /RETURN 4933 / 4934 / 4935 / 4936 / 4937 005412 5412 XWAITTY, . 4938 005413 1162 TAD TTYBUSY 4939 005414 7640 SZA CLA 4940 005415 5213 JMP .-2 4941 005416 5612 JMP I XWAITTY 4942 /ENTRY TO THIS POINT WAS CAUSED BY A PROGRAM INTERRUPT REQUEST 4943 / 4944 005417 3315 PI, DCA XAC 4945 005420 7010 RAR 4946 005421 3316 DCA XLINK /SAVE (AC) AND (LINK) 4947 005422 6031 KSF 4948 005423 7410 SKP 4949 005424 5775 JMP XKCC /IGNORE KEYBOARD IRQ 4950 005425 6041 TSF 4951 005426 5234 JMP PISDN 4952 /IF THIS TELEPRINTER FLAG IS EXPECTED (TTYBUSY) = 1 4953 /THEN "JMP XTCF" 4954 /IF NOT THEN "JMP PIEXIT" 4955 / 4956 005427 1162 TAD TTYBUSY 4957 005430 7740 SMA SZA CLA 4958 005431 5774 JMP XTCF 4959 005432 6042 TCF 4960 005433 5310 JMP PIEXIT 4961 /IF (BUSY) = 1, THEN AN RX01 PI IS ALREADY BEING PROCESSED 4962 / 4963 /IF (GOBIT) = 0, THEN THIS DISKETTE IRQ IS UNEXPECTED 4964 / 4965 /DISABLE RX01 INTERRUPT 4966 / 4967 /READ RX01 STATUS REGISTER 4968 / 4969 005434 1162 PISDN, TAD TTYBUSY 4970 005435 1111 TAD BUSY 4971 005436 7640 SZA CLA 4972 005437 5310 JMP PIEXIT 4973 005440 2111 ISZ BUSY 4974 /REFRESH PROGRAM LOCATION " FORCE " 4975 / 4976 005441 3325 DCA XXFORCE 4977 / 4978 005442 4445 SDN 4979 005443 5305 JMP UNKNOWN 4980 005444 1154 TAD GOBIT 4981 005445 7750 SPA SNA CLA 4982 005446 5773 JMP SDNUNEXPECTED 4983 005447 4446 INTR 4984 005450 4441 XDRIN 4985 005451 0372 AND (377) 4986 005452 3126 DCA ASTATUS 4987 /IF THIS IS TEST # 30 THEN IGNORE DELETED DATA MARKS (IF ANY) 4988 / 4989 005453 1171 TAD TEST 4990 005454 1371 TAD (-T30) 4991 005455 7650 SNA CLA 4992 005456 5275 JMP DDIGNORE 4993 /TECHNICAL NOTE: 4994 / 4995 /THE COMMANDS "FILL BUFFER" (0), AND "EMPTY BUFFER" (2) 4996 /NEVER SHOULD ATTRACT THE "DELETED DATA" STATUS (100) 4997 / 4998 005457 1370 TAD (16) /COMMAND MASK 4999 005460 0112 AND COMMAND /FB(0), OR EB(2) 5000 005461 7440 SZA /SKIP IF FILL BUFFER COMMAND (0) 5001 005462 7112 CLL RTR 5002 005463 7640 SZA CLA /SKIP IF EMPTY BUFFER COMMAND (2) 5003 005464 7305 CLL CLA IAC RAL / 2 5004 005465 0132 AND TESTP 5005 005466 7112 CLL RTR /PUT TO LINK 5006 005467 1367 TAD (100) / 100 5007 005470 0126 AND ASTATUS / A STATUS D.D. MASK 5008 / 5009 /IF (L) = 0 AND (AC) = 0, o.k. - NO D.D. MARK 5010 / 5011 /IF (L) = 0 AND (AC) > 0, (=100), UNEXPECTD D.D. 5012 / 5013 /IF (L) = 1 AND (AC) = 0, D.D. MARK EXPECTED DIDN'T OCCUR 5014 / 5015 /IF (L) = 1 AND (AC) > 0, o.k. - D.D. MARK OCURRED 5016 / 5017 005471 7430 SZL 5018 005472 7640 SZA CLA / (L) = 1 5019 005473 7440 SZA / (L) = 0, OR (L) = 1 AND (AC) > 0 5020 005474 5337 JMP DDERROR / (L) = 0 AND (AC) > 0 (=100), OR (L) = 1 AND (AC) = 0 5021 005475 4444 DDIGNORE, SER 5022 005476 5300 JMP VERIFY /RK01 OK - RETURN TO INLINE CODE 5023 005477 5771 JMP RXERROR 5024 / 5025 /VERIFY THAT THE CONTENTS OF THE A-STATUS REGISTER = 0 5026 / 5027 /WHEN NO RX01 ERROR FLAG EXISTS 5028 / 5029 /MASK BITS 4 (DRIVE READY); AND 5 (DELETED DATA) 5030 / 5031 005500 1126 VERIFY, TAD ASTATUS 5032 005501 0366 AND (73) 5033 005502 7640 SZA CLA 5034 005503 5765 JMP NOSER 5035 005504 5321 JMP XRETURN 5036 / 5037 /AN UNKNOWN PROGRAM INTERRUPT OCCURED 5038 / 5039 005505 4473 UNKNOWN, PRINT 5040 005506 7070 MUNKNOWN 5041 005507 3111 DCA BUSY 5042 / 5043 005510 1316 PIEXIT, TAD XLINK 5044 005511 7104 CLL RAL 5045 005512 1315 TAD XAC 5046 005513 6001 ION 5047 005514 5400 JMP I 0 5048 005515 0000 XAC, 0 5049 005516 0000 XLINK, 0 5050 /THE CONTENTS OF RETURN ARE SETUP WITHIN THE SUBROUTINES "LCD-A" AND "LCD-B" 5051 /TO REPRESENT THE RETURN ADDRESS OF THE INLINE TESTING 5052 / 5053 005517 0000 RETURN, 0 5054 / 5055 005520 2317 ERETURN, ISZ RETURN /INCREMENT FOR ERROR RETURN ADDRESS 5056 / 5057 /ENTRY TO HERE FOR PI SERVICE 5058 / 5059 /NO RX01 ERROR FLAG EXISTS 5060 / 5061 005521 3111 XRETURN, DCA BUSY 5062 005522 4466 TICK /TIMING FOR APT IF NEEDED. 5063 005523 6001 ION 5064 005524 5717 JMP I RETURN 5065 /...ENTRY TO THIS POINT MAY HAVE BEEN FROM WITHIN THE SUBROUTINE "COMPARE" 5066 /WHICH DETECTED A DATA NO STATUS ERROR (DNS), OR 5067 /...ENTRY TO THIS POINT MAY HAVE BEEN FROM ROUTINES "XHUNGUP" OR "HUNGUP" 5068 /THEREBY FORCING AN ERROR INFORMATION PRINTOUT 5069 / 5070 005525 0000 XXFORCE, 0 5071 005526 2111 ISZ BUSY 5072 005527 5771 JMP RXERROR 5073 005530 7240 XFORCE, STA 5074 005531 1111 TAD BUSY 5075 005532 3111 DCA BUSY 5076 005533 6001 ION 5077 005534 5725 JMP I XXFORCE 5078 005535 7020 DTYPE, MEDDDIDNOT 5079 005536 7031 MUDDDID 5080 /A DISKETTE DELETED DATA MALFUNCTION HAS BEEN DETECTED 5081 / 5082 / IF (AC) = 0 - EXPECTED D.D. DIDN'T OCCUR 5083 / IF (AC) = 100 - UNEXPECTED D.D. OCCURRED 5084 / 5085 005537 7640 DDERROR, SZA CLA / 0 OR 1 5086 005540 7001 IAC 5087 005541 1364 TAD (DTYPE) 5088 005542 3137 DCA XXX 5089 /PROGRAMMING NOTE: "SER" TO CLEAR ACCOMPANYING ERROR FLAG (IF ANY) 5090 / 5091 005543 4444 SER 5092 005544 7000 NOP 5093 005545 1537 TAD I XXX 5094 005546 5771 JMP RXERROR 5095 005564 5535 PAGE 005565 3322 005566 0073 005567 0100 005570 0016 005571 5600 005572 0377 005573 3320 005574 5344 005575 0323 005576 0200 005577 0404 5096 /A DISKETTE ERROR HAS BEEN DETECTED 5097 / 5098 / (DMTYPE) NOT = 0 IF A D.D ERROR EXISTS 5099 / (DMTYPE) = 0 IF NO D.D ERROR EXISTS 5100 / 5101 005600 3777 RXERROR, DCA DMTYPE 5102 / 5103 005601 1112 TAD COMMAND 5104 005602 3152 DCA ECOMMAND 5105 005603 1776 TAD XXFORCE 5106 005604 1375 TAD (-XHUNG) 5107 005605 7650 SNA CLA 5108 005606 5246 JMP EERROR 5109 005607 1776 TAD XXFORCE 5110 005610 1374 TAD (-XCOMPARE 5111 005611 7650 SNA CLA 5112 005612 5246 JMP EERROR 5113 005613 1373 SAVEBSTATUS, TAD (16) 5114 005614 4436 LCD 5115 005615 4471 WAIT 5116 005616 4445 SDN 5117 005617 5215 JMP .-2 5118 005620 3006 DCA 6 /WAIT POINTER 5119 005621 4444 SER 5120 005622 7000 NOP 5121 005623 4441 XDRIN 5122 005624 0372 AND (377) 5123 005625 3127 DCA BSTATUS 5124 005626 1771 SAVECSSTATUS, TAD UNIT 5125 005627 1370 TAD (12) 5126 005630 4436 LCD 5127 005631 4471 WAIT 5128 005632 4445 SDN 5129 005633 5231 JMP .-2 5130 005634 3006 DCA 6 /WAIT POINTER 5131 005635 4444 SER 5132 005636 7000 NOP 5133 005637 4441 XDRIN 5134 005640 0372 AND (377) 5135 005641 3130 DCA CSTATUS 5136 /PRINT AN ERROR MESSAGE IF AC SW 4 = 0 5137 / 5138 005642 4572 LASSW4, LAS 5139 005643 0367 AND (SW4) 5140 005644 7640 SZA CLA 5141 005645 5766 JMP NOPRINT 5142 /THE FOLLOWING INFORMATION IS PRINTED FOR ALL ERRORS DETECTED 5143 / 5144 /THE ERROR HEADER TEXT IS INHIBITED IF THE ERROR IS NOT THE FIRST ERROR EVER 5145 / 5146 / 5147 / 5148 / FAT CMND XDR CODE RST START TARGET XXXX PASS 5149 / 5150 / 5151 / 5152 005646 1171 EERROR, TAD TEST /GET TEST IN ERROR 5153 005647 4467 AERROR /REPORT ERROR TO APT. 5154 005650 2115 ISZ FIRSTERROR 5155 005651 5255 JMP NOHEADER 5156 005652 4473 PRINT 5157 005653 6627 MEHEADER 5158 005654 5271 JMP ONECRLF 5159 /IF THIS IS "NOT" A FORCED TYPEOUT, AND IF THERE ARE NO DATA COMPARE 5160 /ERRORS (COMPRERROR=0), THEN PRINT ONLY 1-CRLF 5161 /BECAUSE 5162 / 5163 /THIS ERROR MUST BE AN ERROR AT THE END OF THE EMPTY BUFFER DONE FLAG 5164 /WHICH WOULD BE ASSOCIATED TO ANY PREVIOUS FORCED TYPEOUT OF DATA ERRORS 5165 / 5166 005655 1776 NOHEADER, TAD XXFORCE 5167 005656 7650 SNA CLA 5168 005657 5267 JMP TWOCRLF 5169 005660 1113 TAD COMPRERROR 5170 005661 7640 SZA CLA 5171 005662 5271 JMP ONECRLF 5172 /IF THIS IS A FORCED TYPEOUT FROM " XINIT " THEN PRINT 1 CRLF 5173 / 5174 005663 1776 TAD XXFORCE 5175 005664 1365 TAD (-XXINIT) 5176 005665 7650 SNA CLA 5177 005666 5271 JMP ONECRLF 5178 005667 4473 TWOCRLF, PRINT 5179 005670 6602 MCRLF 5180 005671 4473 ONECRLF, PRINT 5181 005672 6602 MCRLF 5182 005673 4505 TY4OCT 5183 005674 0171 TEST 5184 005675 4504 TAB 5185 005676 0005 5 5186 005677 4764 JMS INITSWITCH 5187 005700 5305 JMP .+5 5188 /IF AN ERROR FROM THE RECAL THEN PRINT (INIT) FOR THE COMMAND 5189 / 5190 005701 1776 TAD XXFORCE 5191 005702 1365 TAD (-XXINIT) 5192 005703 7640 SZA CLA 5193 005704 5310 JMP .+4 5194 005705 4473 PRINT 5195 005706 6671 MINIT 5196 005707 5312 JMP TAB12 5197 005710 4505 TY4OCT 5198 005711 0152 ECOMMAND 5199 005712 4504 TAB12, TAB 5200 005713 0012 12 5201 / 5202 /IF THE DEVICE TEST IS HUNG, THEN THE A-, B-, AND C- STATUS IS NOT APPLICABLE 5203 / 5204 005714 1776 TAD XXFORCE 5205 005715 1375 TAD (-XHUNG) 5206 005716 7650 SNA CLA 5207 005717 5325 JMP DASHALL 5208 /IF THIS IS A " FORCED " TYPEOUT THEN THE B- AND C-STATUS REGISTERS 5209 /ARE NOT APPLICABLE TO THIS TYPEOUT BECAUSE THEY ARE RESIDUAL FROM THE 5210 /PREVIOUS COMMAND WHICH WOULD HAVE HAD A PREVIOUS ERROR TYPE OUT 5211 /RELATING TO THE B- AND C-STATUS REGISTERS IF AN ERROR HAD OCCURRED 5212 / 5213 /A DATA NO ERROR STATUS HAS BEEN DETECTED PRIOR TO THE COMPLETION OF 5214 /THE EMPTY BUFFER FUNCTION 5215 / 5216 005720 1776 TAD XXFORCE 5217 005721 1374 TAD (-XCOMPARE) 5218 005722 7640 SZA CLA 5219 005723 5340 JMP TYASTATUS 5220 005724 5331 JMP DASHBC 5221 005725 4473 DASHALL, PRINT 5222 005726 7017 MDASH 5223 005727 4504 TAB 5224 005730 0017 17 5225 005731 4473 DASHBC, PRINT 5226 005732 7017 MDASH 5227 005733 4504 TAB 5228 005734 0024 24 5229 005735 4473 PRINT 5230 005736 7017 MDASH; JMP TAB31 005737 5763 5231 005740 4505 TYASTATUS, TY4OCT 5232 005741 0126 ASTATUS 5233 005742 4504 TAB 5234 005743 0017 17 5235 005744 4505 TY4OCT 5236 005745 0127 BSTATUS 5237 005746 4504 TAB 5238 005747 0024 24 5239 005750 5762 JMP TYCSTATUS 5240 005762 6000 PAGE 005763 6002 005764 6115 005765 1332 005766 6061 005767 0200 005770 0012 005771 4242 005772 0377 005773 0016 005774 4115 005775 4434 005776 5525 005777 6060 5241 006000 4505 TYCSTATUS, TY4OCT 5242 006001 0130 CSTATUS 5243 006002 4504 TAB31, TAB 5244 006003 0031 31 5245 006004 4315 JMS INITSWITCH 5246 006005 5211 JMP .+4 5247 /IF (SSTART) = 0 THEN PRINT "HOME" BECAUSE A RECAL HAS TAKEN PLACE 5248 /THEREFORE THE ACTUATOR IS AT TRACK 0 (HOME) 5249 / 5250 006006 1123 TAD SSTART 5251 006007 7640 SZA CLA 5252 006010 5214 JMP .+4 5253 006011 4473 PRINT 5254 006012 6665 MHOME 5255 006013 5222 JMP TAB43 5256 006014 4505 TY4OCT 5257 006015 0125 START 5258 006016 4504 TAB 5259 006017 0036 36 5260 006020 4505 TY4OCT 5261 006021 0123 SSTART 5262 006022 4504 TAB43, TAB 5263 006023 0043 43 5264 006024 4315 JMS INITSWITCH 5265 006025 5232 JMP PHOME 5266 /IF (FORCE) = THE ADDRESS OF "XXINIT" THEN ALSO PRINT [HOME] FOR THE TARGET 5267 / 5268 006026 1777 TAD XXFORCE 5269 006027 1376 TAD (-XXINIT) 5270 006030 7640 SZA CLA 5271 006031 5235 JMP .+4 5272 006032 4473 PHOME, PRINT 5273 006033 6665 MHOME 5274 006034 5243 JMP .+7 5275 006035 4505 TY4OCT 5276 006036 0131 TARGET 5277 006037 4504 TAB 5278 006040 0050 50 5279 006041 4505 TY4OCT 5280 006042 0124 STARGET 5281 006043 4504 TAB 5282 006044 0055 55 5283 006045 4505 TY4OCT 5284 006046 0132 TESTP 5285 006047 4504 TAB 5286 006050 0002 2 5287 006051 4434 TY8OCT 5288 006052 0163 PASS 5289 006053 0164 PASS+1 5290 006054 1260 TAD DMTYPE 5291 006055 7650 SNA CLA 5292 006056 5261 JMP .+3 5293 006057 4473 PRINT 5294 006060 0000 DMTYPE, 0 5295 / 5296 /AC SW 11 TO INHIBIT RINGING OF BELL AT ERROR 5297 / 5298 006061 3115 NOPRINT, DCA FIRSTERROR 5299 006062 4572 LAS 5300 006063 0375 AND (SW11) 5301 006064 7640 SZA CLA 5302 006065 5270 JMP .+3 5303 006066 4501 SPECIALTYPEIT 5304 006067 0207 BELL 5305 /IF ENTRY WAS FROM A "JMS FORCE" THEN EXIT BY A "JMP I FORCE" 5306 / 5307 006070 1777 TAD XXFORCE 5308 006071 7640 SZA CLA 5309 006072 5774 JMP XFORCE 5310 / 5311 /definitive error codes and meanings 5312 / 5313 / 0 /NO ERROR 5314 / 10 /DRIVE 0 FAILED TO SEE HOME ON INITIALIZE 5315 / 20 /DRIVE 1 FAILED TO SEE HOME ON INITIALIZE 5316 / 30 /FOUND HOME WHEN STEPPING OUT 10 TRACKS FOR INIT 5317 / 40 /TRIED TO ACCESS A TRACK GREATER THAN 77 5318 / 50 /HOME WAS FOUND BEFORE DESIRED TRACK WAS REACHED 5319 / 60 /SELF DIAGNOSTIC ERROR 5320 / 70 /DESIRED SECTOR COULD NOT BE FOUND AFTER LOOKING AT 52 HEADERS 5321 / 100 /WRITE PROTECT ERROR 5322 / 110 /MORE THAN 40US AND NO SEP CLOCK SEEN 5323 / 120 /A PREAMBLE COULD NOT BE FOUND 5324 / 130 /PREAMBLE FOUND BUT NO ID MARK FOUND WITHIN ALLOWABLE TIME 5325 / 140 /HEADER CRC ERROR 5326 / 150 /THE HEADER TRACK ADDRESS OF A GOOD HEADER DOES NOT COMPARE 5327 / /WITH THE DESIRED TRACK 5328 / 160 /TOO MANY TRIES FOR A IDAM 5329 / 170 /DATA AM NOT FOUND WITHIN ALLOTTED TIME 5330 / 200 /DATA CRC ERROR 5331 / 210 /ALL PARITY ERRORS 5332 / 5333 /RECAL IF DEFINITIVE ERROR CODE IS A SEEK ERROR 5334 / 5335 / (NOT CODES 140, 200, OR 210) 5336 / 5337 006073 4572 RECALIF, LAS 5338 006074 0373 AND (SW6) 5339 006075 7640 SZA CLA 5340 006076 5311 JMP LASSW0 5341 006077 1127 TAD BSTATUS 5342 006100 1372 TAD (-140) 5343 006101 7450 SNA 5344 006102 5311 JMP LASSW0 5345 006103 1371 TAD (-40) 5346 006104 7450 SNA 5347 006105 5311 JMP LASSW0 5348 006106 1370 TAD (-10) 5349 006107 7640 SZA CLA 5350 006110 4447 INIT 5351 006111 4572 LASSW0, LAS 5352 006112 7700 SMA CLA 5353 006113 4461 HLT16, HLT /AC SW 0 = 1 (HALT ON ERROR) 5354 006114 5767 JMP ERETURN 5355 / 5356 006115 6115 INITSWITCH, . 5357 006116 1766 TAD XWAIT 5358 006117 1365 TAD (-SDNSECOND) 5359 006120 7640 SZA CLA 5360 006121 2315 ISZ INITSWITCH 5361 006122 5715 JMP I INITSWITCH 5362 / 5363 /GENERATES TIMING FOR APT IF NEEDED. 5364 / 5365 006123 0000 XOK, 0 5366 006124 7000 NOP 5367 006125 2323 ISZ XOK /SKIP. 5368 006126 5723 JMP I XOK 5369 / 5370 /VT78/ROUTINE TO SELECT WHICH FLOPPY UNITS TO TEST 5371 / 5372 006127 0000 SELUNT, 0 5373 006130 1114 TAD DTESTP /GET TEST PARAMETERS 5374 006131 0373 AND (40 /TEST BIT 6 5375 006132 7640 SZA CLA /DO ONE OR BOTH UNITS? 5376 006133 7001 IAC /BOTH 5377 006134 7040 CMA /EITHER A OR B 5378 006135 3351 DCA CHECKU /7777=EITHER, 7776=BOTH 5379 006136 1351 TAD CHECKU 5380 006137 7001 IAC 5381 006140 7640 SZA CLA 5382 006141 5346 JMP SETUNT /BOTH UNITS SELECTED- DO A THEN B 5383 006142 1114 TAD DTESTP 5384 006143 0364 AND (1000 /TEST BIT 2 5385 006144 7640 SZA CLA /A OR B? 5386 006145 7001 IAC /B ONLY 5387 006146 3135 SETUNT, DCA UNITCK /UNIT A=0 UNIT B=1 5388 006147 4451 CKUNIT /SET UP FOR UNIT A OR UNIT B 5389 006150 5727 JMP I SELUNT /RETURN 5390 006151 0000 CHECKU, 0 5391 006164 1000 PAGE 006165 1340 006166 1722 006167 5520 006170 7770 006171 7740 006172 7640 006173 0040 006174 5530 006175 0001 006176 1332 006177 5525 5392 /VT78/ SELECTY IOT TO SELECT EITHER UNIT A OR UN IT B 5393 /IF AC11 (0) SELECT UNITA, IF AC11 (1) SELECT UNIT B 5394 / 5395 006200 0000 XSEL, 0 5396 006201 6750 K67X0, 6750 5397 006202 5600 JMP I XSEL 5398 /THE CONTENTS OF THE AC AT ENTRY ARE THE CONTENTS OF PROGRAM LOCATION "TCOMMAND" 5399 / 5400 006203 6203 XLCD, . 5401 006204 3112 DCA COMMAND 5402 006205 1112 TAD COMMAND 5403 006206 6751 K67X1, 6751 5404 006207 5603 JMP I XLCD 5405 /LOAD THE COMMAND FOR: FILL BUFFER, AND EMPTY BUFFER 5406 /WITH THE RX01 INTERRUPT ENABLED 5407 / 5408 /FORM: (AC) IS COMMAND; LCDA; NORMAL RETURN; ERROR RETURN 5409 / 5410 006210 6210 XLCDA, . 5411 006211 1777 TAD UNIT 5412 006212 3112 DCA COMMAND 5413 /THE CONTENTS OF THE AC WILL = 100 IF 8 BIT MODE 5414 / 5415 006213 7307 CLL CLA IAC RTL 5416 006214 0132 AND TESTP 5417 006215 7640 SZA CLA 5418 006216 1376 TAD (100) 5419 006217 1112 TAD COMMAND 5420 006220 3112 DCA COMMAND 5421 006221 1112 TAD COMMAND 5422 006222 4436 LCD 5423 006223 1210 TAD XLCDA 5424 006224 3775 DCA RETURN 5425 006225 2210 ISZ XLCDA 5426 006226 2210 ISZ XLCDA 5427 006227 1374 TAD (PI) 5428 006230 3002 DCA IPI 5429 006231 7201 CLA IAC 5430 006232 4446 INTR 5431 006233 6001 ION 5432 006234 5610 JMP I XLCDA 5433 / 5434 /LOAD THE COMMAND AND THE TRACK AND SECTOR ADDRESSES AND GO WITH INTERRUPT ENABLE 1 5435 / 5436 /FORM: (AC) IS COMMAND; LCDB; NORMAL RETURN; ERROR 5437 / 5438 006235 6235 XLCDB, . 5439 006236 1777 TAD UNIT / 0 OR 20 5440 006237 3112 DCA COMMAND /TEMPORARY STORAGE 5441 / 5442 /WHEN CONTENTS OF " GOBIT " ARE = 0 ; NO PROGRAM IRQ IS EXPECTED FROM THE DISK 5443 / 5444 006240 7307 CLL CLA IAC RTL / 4 5445 006241 0132 AND TESTP /TESTP FOR 8/12 BIT MODE SELECTION 5446 006242 7640 SZA CLA 5447 006243 1376 TAD (100) / 100 FOR 8 BIT MODE SELECTION 5448 006244 1112 TAD COMMAND / 4, 14, OR 6 5449 006245 3112 DCA COMMAND 5450 006246 1112 LCDBL, TAD COMMAND 5451 006247 4436 LCD 5452 / 5453 /LOAD THE TRACK AND SECTOR ADDRESSES FOR THE COMMANDS: 5454 / 5455 /WRITE, OR WRITE DELETED DATA, OR READ SECTOR 5456 / 5457 006250 1373 TAD (LCDBRETURN) 5458 006251 3775 DCA RETURN 5459 006252 1372 TAD (NOP) 5460 006253 3315 DCA XLCDBRETURN 5461 006254 7201 CLA IAC 5462 006255 4446 INTR /ENABLE RX01 INTERRUPT 5463 006256 4443 STR 5464 006257 5256 JMP .-1 /SKIP ON TRANSFER REQUEST FLAG 5465 006260 1124 TAD STARGET 5466 006261 4442 XDROUT /SECTOR 5467 006262 4443 STR 5468 006263 5262 JMP .-1 /SKIP ON TRANSFER REQUEST FLAG 5469 006264 1131 TAD TARGET 5470 006265 4442 XDROUT /TRACK 5471 006266 1374 TAD (PI) 5472 006267 3002 DCA IPI 5473 / 5474 /WAIT FOR A PROGRAM INTERRUPT REQUEST 5475 / 5476 / ; BUT WHILE WAITING, DISPLAY IN THE MQ THE CODED INFORMATION 5477 /AS INDICATED BY ACCUMULATOR SWITCHES 9, 10, AND 11 AT RUN-TIME 5478 / 5479 / 0 = TARGET TRACK AND SECTOR 5480 / 1 = TEST PARAMETERS (SELECTED FROM SA 200) 5481 / 2 = " A " STATUS 5482 / 3 = " COMMAND " WORD TO RX01 5483 / 5484 006270 6001 XPI, ION 5485 006271 1371 TAD (-40) 5486 006272 3116 DCA HANGER 5487 006273 4572 LAS 5488 006274 0370 AND (SW10+SW11) 5489 006275 1367 TAD (TAD I DISPLAY) 5490 006276 3277 DCA .+1 5491 006277 1710 TAD I DISPLAY 5492 006300 7421 MQL 5493 006301 2153 ISZ H1 5494 006302 5273 JMP XPI+3 5495 006303 2116 ISZ HANGER 5496 006304 5273 JMP XPI+3 5497 006305 7200 CLA 5498 006306 1366 TAD (XPI) 5499 006307 5765 JMP HUNGUP 5500 006310 0151 DISPLAY, XTARGET 5501 006311 0132 TESTP 5502 006312 0126 ASTATUS 5503 006313 0112 COMMAND 5504 /RETURN TO HERE IF ANY ERROR OCCURS (OR IF "DONE" FLAG OCCURS) 5505 / 5506 /IF A PARITY ERROR OCCURS THEN RETRY TO LOAD THE COMMAND 5507 / 5508 /IF NOT A PARITY ERROR THEN THIS MUST BE THAT "DONE" FLAG I MENTIONED 5509 / 5510 006314 5326 LCDBRETURN, JMP OTHERRORS / "JMP OTHERRORS" IF RETURN IS OK 5511 006315 7000 XLCDBRETURN, NOP 5512 006316 7305 CLL CLA IAC RAL 5513 006317 0126 AND ASTATUS 5514 006320 7650 SNA CLA 5515 006321 5326 JMP OTHERRORS 5516 /PARITY ERROR - RETRY 5517 / 5518 006322 2146 ISZ PRETRY 5519 006323 5246 JMP LCDBL 5520 006324 4502 SCOPE 5521 006325 5453 EXIT 5522 / 5523 /THESE ARE ALL OTHER ERRORS WHICH MAY OCCUR 5524 / 5525 006326 1364 OTHERRORS, TAD (JMP OTHERRORS) 5526 006327 3315 DCA XLCDBRETURN 5527 / 5528 006330 1373 TAD (LCDBRETURN) 5529 006331 7041 CIA 5530 006332 1775 TAD RETURN 5531 006333 1235 TAD XLCDB 5532 006334 3235 DCA XLCDB 5533 006335 5635 JMP I XLCDB 5534 /TRANSFER DATA REGISTER (FROM) THE RX01 CONTROL 5535 / 5536 006364 5326 PAGE 006365 3341 006366 6270 006367 1710 006370 0003 006371 7740 006372 7000 006373 6314 006374 5417 006375 5517 006376 0100 006377 4242 5537 006400 6400 XXDRIN, . 5538 006401 6752 K67X2A, 6752 5539 006402 5600 JMP I XXDRIN 5540 /TRANSFER DATA REGISTER (TO) THE RX01 CONTROL 5541 / 5542 006403 6403 XXDROUT, . 5543 006404 6752 K67X2B, 6752 5544 006405 7200 CLA 5545 006406 5603 JMP I XXDROUT 5546 /SKIP ON TRANSFER REQUEST 5547 / 5548 006407 6407 XSTR, . 5549 006410 6753 K67X3A, 6753 5550 006411 5607 JMP I XSTR 5551 006412 2207 ISZ XSTR 5552 006413 5607 JMP I XSTR 5553 / 5554 006414 6414 XSER, . 5555 006415 6754 K67X4A, 6754 5556 006416 5614 JMP I XSER 5557 006417 2214 ISZ XSER 5558 006420 5614 JMP I XSER 5559 /SKIP ON RX01 DONE FLAG 5560 / 5561 006421 6421 XSDN, . 5562 006422 6755 K67X5A, 6755 5563 006423 5621 JMP I XSDN 5564 006424 2221 ISZ XSDN 5565 006425 5621 JMP I XSDN 5566 /ENABLE / DISABLE RX01 INTERRUPT ENABLE 5567 / 5568 / AC = 1 AT ENTRY TO ENABLE INTERRUPT 5569 / 5570 /FORM: (AC = 0, OR 1); INTR 5571 / 5572 / (GOBIT) = 0, NO RX01 PI IS EXPECTED 5573 / 5574 / (GOBIT) = 1, AN RX01 PI IS EXPECTED 5575 / 5576 006426 6426 XINTR, . 5577 006427 3154 DCA GOBIT 5578 006430 1154 TAD GOBIT 5579 006431 6756 K67X6, 6756 5580 006432 7200 CLA 5581 006433 5626 JMP I XINTR 5582 /INITIALIZE (POWER CLEAR) THE RX01 SUBSYSTEM 5583 / 5584 006434 6434 XINIT, . 5585 006435 6757 K67X7A, 6757 5586 /THE LABEL " SDNSECOND " MUST RESIDE HERE BECAUSE OF REFERENCES WITIN " ERROR " 5587 / 5588 006436 4451 CKUNIT /GO CHECK IF ON UNIT A(RXA) OR UNIT B 5589 006437 4471 WAIT 5590 006440 4445 SDNSECOND, SDN 5591 006441 5237 JMP .-2 5592 006442 3006 DCA 6 /WAIT POINTER 5593 006443 4444 SER 5594 006444 5246 JMP XXINIT 5595 /AN ERROR HAS OCCURRED FROM THE "INIT" 5596 / 5597 / [HOME] WAS THE TARGET 5598 / 5599 006445 4576 FORCE 5600 006446 3123 XXINIT, DCA SSTART 5601 006447 5634 JMP I XINIT 5602 / 5603 / 5604 / 5605 006450 6450 XINITB, . 5606 006451 6757 K67X7B, 6757 5607 006452 5650 JMP I XINITB 5608 006453 3737 REMOVE, TEXT "__REMOVE DIAGNOSTIC DISKETTE" 006454 2205 006455 1517 006456 2605 006457 4004 006460 1101 006461 0716 006462 1723 006463 2411 006464 0340 006465 0411 006466 2313 006467 0524 006470 2405 006471 0000 5609 006472 3737 MIDENTIFICATION, TEXT "__MAINDEC-08-DIRXA-D" 006473 1501 006474 1116 006475 0405 006476 0355 006477 6070 006500 5504 006501 1122 006502 3001 006503 5504 006504 0000 5610 006505 3737 MSELECT, TEXT "__SELECT PARAMETERS (INCLUDING DEVICE CODE)" 006506 2305 006507 1405 006510 0324 006511 4020 006512 0122 006513 0115 006514 0524 006515 0522 006516 2340 006517 5011 006520 1603 006521 1425 006522 0411 006523 1607 006524 4004 006525 0526 006526 1103 006527 0540 006530 0317 006531 0405 006532 5100 5611 006533 3737 MDTESTP, TEXT "__TEST PARAMETERS: " 006534 2405 006535 2324 006536 4020 006537 0122 006540 0115 006541 0524 006542 0522 006543 2372 006544 4000 5612 006545 3737 MXEHEADER, TEXT "__ERR FAT FAST EAC GOOD PASS" 006546 0522 006547 2240 006550 4006 006551 0124 006552 4040 006553 0601 006554 2324 006555 4040 006556 4040 006557 4040 006560 0501 006561 0340 006562 4007 006563 1717 006564 0440 006565 2001 006566 2323 006567 0000 5613 006570 3727 MX2HEADER, TEXT "_WORD GOOD BAD" 006571 1722 006572 0440 006573 0717 006574 1704 006575 4002 006576 0104 006577 0000 5614 006600 5440 MCOMMA, TEXT ", " 006601 0000 5615 006602 3700 MCRLF, TEXT "_" 5616 006603 3705 MEOT, TEXT "_END OF TEST " 006604 1604 006605 4017 006606 0640 006607 2405 006610 2324 006611 4000 5617 006612 3704 MHUNGPC, TEXT "_DEVICE TEST HUNG AT PC " 006613 0526 006614 1103 006615 0540 006616 2405 006617 2324 006620 4010 006621 2516 006622 0740 006623 0124 006624 4020 006625 0340 006626 0000 5618 006627 3737 MEHEADER, TEXT "__FAT CMND XDR CODE RSTA START TARGET TEST PASS" 006630 0601 006631 2440 006632 4003 006633 1516 006634 0440 006635 3004 006636 2240 006637 4003 006640 1704 006641 0540 006642 4022 006643 2324 006644 0140 006645 4023 006646 2401 006647 2224 006650 4040 006651 4040 006652 4024 006653 0122 006654 0705 006655 2440 006656 4040 006657 4024 006660 0523 006661 2440 006662 2001 006663 2323 006664 0000 5619 006665 3310 MHOME, TEXT "[HOME]" 006666 1715 006667 0535 006670 0000 5620 006671 1116 MINIT, TEXT "INIT" 006672 1124 006673 0000 5621 006674 3737 MOD, TEXT "__OD = " 006675 1704 006676 4075 006677 4000 5622 006700 4011 MID, TEXT " ID = " 006701 0440 006702 7540 006703 0000 5623 006704 4006 MFIRST, TEXT " FIRST = " 006705 1122 006706 2324 006707 4075 006710 4000 5624 006711 4014 MLAST, TEXT " LAST = " 006712 0123 006713 2440 006714 7540 006715 0000 5625 006716 3727 MWRITE, TEXT "_WRITE-" 006717 2211 006720 2405 006721 5500 5626 006722 3722 MREAD, TEXT "_READ-" 006723 0501 006724 0455 006725 0000 5627 006726 1617 MDNSERROR, TEXT "NO CRC BUT" 006727 4003 006730 2203 006731 4002 006732 2524 006733 0000 5628 006734 0322 MDWESERROR, TEXT "CRC AND" 006735 0340 006736 0116 006737 0400 5629 006740 0322 MSNDERROR, TEXT "CRC BUT NO DATA ERROR" 006741 0340 006742 0225 006743 2440 006744 1617 006745 4004 006746 0124 006747 0140 006750 0522 006751 2217 006752 2200 5630 006753 4004 MDATAERROR, TEXT " DATA ERROR_" 006754 0124 006755 0140 006756 0522 006757 2217 006760 2237 006761 0000 5631 006762 2717 MWORD, TEXT "WORD" 006763 2204 006764 0000 5632 006765 0231 MBYTE, TEXT "BYTE" 006766 2405 006767 0000 5633 006770 4007 MGB, TEXT " GOOD BAD" 006771 1717 006772 0440 006773 0201 006774 0400 5634 006775 3723 MSUMCHECK, TEXT "_SUM-CHECK IS " 006776 2515 006777 5503 007000 1005 007001 0313 007002 4011 007003 2340 007004 0000 5635 007005 1713 MOK, TEXT "OK" 007006 0000 5636 007007 3724 MDESUMMARY, TEXT "_TOTAL BAD = " 007010 1724 007011 0114 007012 4002 007013 0104 007014 4075 007015 4000 5637 007016 7200 MCOLON, TEXT ":" 5638 007017 5500 MDASH, TEXT "-" 5639 007020 3715 MEDDDIDNOT, TEXT "_MISSING DD MARK" 007021 1123 007022 2311 007023 1607 007024 4004 007025 0440 007026 1501 007027 2213 007030 0000 5640 007031 3725 MUDDDID, TEXT "_UNEXPECTED DD MARK" 007032 1605 007033 3020 007034 0503 007035 2405 007036 0440 007037 0404 007040 4015 007041 0122 007042 1300 5641 007043 3725 MSDNUNEXPECTED, TEXT "_UNEXPECTED RX01 IRQ" 007044 1605 007045 3020 007046 0503 007047 2405 007050 0440 007051 2230 007052 6061 007053 4011 007054 2221 007055 0000 5642 007056 3715 MNOSER, TEXT "_MISSING ERROR FLAG" 007057 1123 007060 2311 007061 1607 007062 4005 007063 2222 007064 1722 007065 4006 007066 1401 007067 0700 5643 007070 3737 MUNKNOWN, TEXT "__UNKNOWN IRQ" 007071 2516 007072 1316 007073 1727 007074 1640 007075 1122 007076 2100 5644 007077 3704 MDEV, TEXT "_DEVICE CODE TO BE USED " 007100 0526 007101 1103 007102 0540 007103 0317 007104 0405 007105 4024 007106 1740 007107 0205 007110 4025 007111 2305 007112 0440 007113 4000 5645 /THE FOLLOWING IS THE WRITE BUFFER ALLOCATED STORAGE 5646 / 5647 WBUFFER=. 5648 RBUFFER=.+200 5649 *RBUFFER+200 5650 *200 /AUTO START BINARY 5651 $$$ A10 0010 A11 0011 A12 0012 A13 0013 A14 0014 ACL 7701 unreferenced ACTIVE 0741 AERROR 4467 ALT12 1400 ALT12L 1403 ANDRET 4113 APT8 4470 AROUND 0233 ASTATU 0126 BELL 0207 BITMOD 3763 BLANK 0170 BSTATU 0127 BSWAC 2623 BSWLIN 2624 BSWRAL 2622 BUSY 0111 C87600 0417 C8BLD 0400 C8BY1 0640 C8CDF 0033 unreferenced C8CDI 0032 unreferenced C8CHAR 0031 C8CK22 1060 C8CKP 1057 C8CKSW 4425 unreferenced C8CNTL 0420 C8CNTR 0036 C8CRLF 0523 C8CTLC 0465 C8CTLG 0457 C8CTLQ 0455 C8CTLS 0437 C8DO1 1005 C8DO4 1043 C8ECHO 0475 C8ENTR 0200 C8ERR 0316 C8EXT1 0531 C8EXT2 0541 C8EXTB 0707 C8FLG 0403 C8GET1 0704 C8K100 0411 unreferenced C8K177 0405 C8K200 0406 C8K212 0413 C8K215 0412 C8K240 0045 C8K260 0046 C8K275 0047 C8K277 0050 C8K303 0414 C8K307 0415 C8K322 0051 C8K323 0052 C8K336 0416 C8K7 0044 C8K77 0407 unreferenced C8LOPA 0231 C8M10 0042 C8M260 0043 C8M3 0037 C8M4 0040 C8M40 0410 unreferenced C8M5 0041 C8MODE 0035 C8OCTA 4427 unreferenced C8PASS 4426 C8PFLD 0543 C8PRNT 4426 unreferenced C8PSW 0216 C8RET2 0526 C8RET3 4131 C8RET4 3317 C8RTN 0402 C8SFLG 0404 C8SRLP 0252 C8STAR 0200 unreferenced C8STRT 0401 C8SWR 0034 C8TEMP 0030 C8TEST 0337 unreferenced C8TMP1 1056 C8TTY 0514 C8TYP 0502 C8WAIT 0444 CAF 6007 CCNT 5066 CHARLI 5320 CHECKC 4424 CHECKU 6151 CHEK22 4472 CHGMSG 2750 CHNDEV 5067 CKCOUT 0642 CKSFLG 5400 CKSWIT 4572 CKUNIT 4451 CLKCNT 4151 CNOTFI 3720 CNTVAL 0663 COMMAN 0112 COMP 2746 COMPAR 3601 COMPRE 0113 COUNT 4152 CRCERR 3456 CSTATU 0130 DASHAL 5725 DASHBC 5731 DATAER 3643 DCACTI 0732 DCADOA 2531 DCATAR 4332 DDERRO 5537 DDIGNO 5475 DIGITS 5063 DISPLA 6310 DMTYPE 6060 DNS 3510 DNSLOG 0143 DOA 2536 DOB 2537 DOCNT 0660 DONE 4454 DOPACK 0611 DOSET 0662 DRVZRO 2743 DTESTP 0114 DTYPE 5535 DWESER 3700 DWS 3510 DWSLOG 0142 E0 0607 E0PRE 0412 E1 0613 E10 0647 E100 1226 E11 0632 E110 1252 E120 1311 E121 1315 E122 1321 E123 1326 E124 1276 E130 1513 E131 1526 E140 1661 E1PRE 0445 E2 0617 E20 0655 E21 0660 E210 4557 E211 2320 E212 2332 E22 0663 E23 0666 E24 0671 E240 2030 E241 2070 E242 2101 E245 2033 E25 0674 E26 0704 E27 0712 E270 2135 E271 2140 E272 2151 E28 0720 E2PRE 0415 E3 0623 E30 0744 E3PRE 0425 E40 1044 unreferenced E41 1060 E42 1021 E4PRE 0450 E50 1105 E51 1114 E52 1123 E53 1111 E54 1120 E55 1127 E56 1102 E60 1142 E61 1154 E62 1157 E63 1162 E70 1212 E7000 2405 E7001 2416 E7002 2432 E7003 2446 E7004 2457 E7005 2511 E7006 2473 EA120 1412 EA121 1416 EA122 1440 EA123 1451 EAC 0167 EB 1622 EBCOMP 1630 EBLOOP 1635 EBOK 1663 ECOMMA 0152 EERROR 5646 EMPTY 3617 EMPTYE 4011 EMPTYL 4000 EMPTYO 4022 ENDCOM 3636 EPCSCO 1364 ERETUR 5520 ERROR 4452 ERRORS 1365 EXIT 5453 EXITCK 4534 FB 1472 FB128B 4541 FBEB 1477 FILL 3221 FILLER 3226 FILLOK 3237 FIRST 0031 FIRSTE 0115 FIRSTT 0453 FORCE 4576 GENTES 3131 GETAPA 4455 GETASE 4456 GETATR 4457 GETUNI 4460 GOBIT 0154 GOOD 0166 GTF 6004 unreferenced H1 0153 HALT 4461 HANGER 0116 HLT16 6113 unreferenced HLT6 4101 unreferenced HLT7 3507 unreferenced HLTNOP 1562 HUNGPC 3353 HUNGUP 3341 ID 0030 IF 4710 INIT 4447 INITB 4450 INITSE 4462 INITSW 6115 INITTR 4463 INMODE 0351 INSUMC 3762 INTR 4446 IPI 0002 IRDWR 2000 ISZCOM 3757 ISZDIG 5042 JMPDIG 5032 JMPICO 3600 JMPWHI 3263 K0007 0174 K6500 4150 K6520 4361 K67X0 6201 K67X1 6206 K67X2A 6401 K67X2B 6404 K67X2C 3623 K67X3A 6410 K67X3B 0707 K67X4A 6415 K67X4B 0715 K67X5A 6422 K67X5B 0701 K67X6 6431 K67X6B 3622 K67X6C 3637 K67X7A 6435 K67X7B 6451 K7000 0173 K7377 1561 K7777 0117 KRETRY 0121 LASSW0 6111 LASSW4 5642 unreferenced LAST 0032 LCD 4436 LCDA 4437 LCDB 4440 LCDBL 6246 LCDBRE 6314 LOCKUP 4464 LSB 0160 MASK 0136 MASK1 2747 MBYTE 6765 MCOLON 7016 unreferenced MCOMMA 6600 unreferenced MCRLF 6602 MDASH 7017 MDATAE 6753 MDESUM 7007 MDEV 7077 unreferenced MDNSER 6726 MDTEST 6533 MDWESE 6734 MEDDDI 7020 MEHEAD 6627 MEOT 6603 unreferenced MESPAS 0664 MESSAG 5262 MFIRST 6704 MGB 6770 MHOME 6665 MHUNGP 6612 MID 6700 MIDENT 6472 MINIT 6671 MLAST 6711 MNOSER 7056 MOD 6674 MOK 7005 MORETE 0452 MQA 7501 unreferenced MQL 7421 MREAD 6722 MSB 0161 unreferenced MSDNUN 7043 MSELEC 6505 MSNDER 6740 MSUMCH 6775 MUDDDI 7031 MUNKNO 7070 MWORD 6762 MWRITE 6716 MX 0522 MX2HEA 6570 unreferenced MXEHEA 6545 NEXT 4210 NEXTAC 0746 NEXTSE 4625 NOHEAD 5655 NOMORE 0465 NOPRIN 6061 NOREAD 3521 NORX01 0431 NOSCOP 1340 NOSER 3322 NOSET 0652 NOTCL8 4537 NOTEST 5453 NOWORD 5253 NULINE 5302 NXTUNT 0523 OD 0027 OK 4465 OKSTAR 4643 ONECRL 5671 OTHERR 6326 OUTPUT 4263 PACKDO 4531 PASCNT 0661 PASS 0163 PAT2 3125 PAT3 3126 PAT4 3127 PAT5 3130 PAT6 3140 PATSUM 0155 PATTER 3115 PCLF 6662 unreferenced PCSCOP 1366 PHOME 6032 PI 5417 PIEXIT 5510 PISDN 5434 PNTEXT 5341 PNTID 1531 POLL 4237 PRETES 0400 PRETRY 0146 PRINT 4473 PSIE 6665 unreferenced PSKE 6663 unreferenced PSKF 6661 unreferenced PSTB 6664 unreferenced PTSTOR 1033 Q40D 4454 Q46ID 4505 Q46OD 4513 Q60D 4500 QUIET 3335 R1 4726 R1RETR 0140 R2 4727 R2RETR 0141 RANGEN 4712 RBUFFE 7314 RDC 0120 RDORWR 3552 READ 4474 READCO 4475 READER 3441 unreferenced READL 3422 READOK 3531 READRE 3425 REBEGI 0511 RECALI 6073 unreferenced REFILL 3214 REMOVE 6453 REREAD 3432 RESEEK 3434 RESEQU 4274 RETURN 5517 REWRIT 3206 RLOGGE 3547 ROK 3543 RST 4476 RSTART 0200 RSTB 4477 RXERRO 5600 RXHERE 0165 SAVEBS 5613 unreferenced SAVECS 5626 unreferenced SCOPE 4502 SCOPIN 1357 SDN 4445 SDNSEC 6440 SDNUNE 3320 SECTOR 0122 SEL 4435 SELUNT 6127 SEQ 4276 SEQ000 4306 SEQ001 4317 SEQ010 4400 SEQ100 4444 SEQ111 4330 SEQ3 4422 SEQ6 4465 SER 4444 SETUNT 6146 SETUP 4500 SHIFT 5015 SHIFTS 5065 SND 3510 SNDLOG 0144 SPECIA 4501 SRETRY 0145 SSTART 0123 STARGE 0124 START 0125 STOPNT 1034 unreferenced STR 4443 SUBSCO 4503 SW0 4000 SW1 2000 SW10 0002 SW11 0001 SW2 1000 SW3 0400 SW4 0200 SW5 0100 SW6 0040 SW7 0020 SW8 0010 unreferenced SW9 0004 unreferenced T0 0600 T1 0626 T10 1215 T11 1233 T12 1260 T13 1456 T14 1603 T15 1601 T16 1455 T17 1602 T2 0652 T20 1600 T20STR 2323 T20XDR 2310 T21 1675 T22 1674 T23 2265 T24 1714 T25 1716 T26 1720 T27 2107 T3 0723 T30 2200 T31 2202 T32 2223 T33 2241 T34 2300 T35 2276 T36 2277 T37 2275 T4 1000 T4B 1004 T5 1071 T6 1132 T7 1200 T7OK 1213 TAB 4504 TAB12 5712 TAB31 6002 TAB43 6022 TADLAS 3273 TARGET 0131 TEST 0171 TEST1 2524 unreferenced TEST2 2522 unreferenced TEST3 2516 unreferenced TEST4 2514 TEST5 2526 unreferenced TESTP 0132 TESTS 4730 TESTX 2532 TESTXL 2535 THEL 3003 THENEX 4114 THETES 3000 TICK 4466 TRACKS 0147 TSTUNT 2732 TTRACK 0150 TTYBUS 0162 TWOCRL 5667 TX 2303 TY1ASC 5321 TY4OCT 4505 TY8OCT 4434 TYASTA 5740 TYCSTA 6000 TYPEIT 4506 UNIT 4242 UNITCK 0135 UNITS 4235 UNITX 4241 UNITZ 4240 UNKNOW 5505 UREAD 3524 VERIFY 5500 VT78CK 1165 WAIT 4471 WAITTY 4507 WBUFFE 7114 WHICHR 3267 WNOTOK 3264 WORDX 0156 WORDY 0157 WRESEE 3212 WRITE 4510 WRITEL 3204 WRITEO 3257 WRITER 3246 unreferenced WUNITS 4236 X1 1100 unreferenced XA10 0133 XA11 0134 XAC 5515 XAERRO 4346 XANDRE 4120 XAPT8 1545 XASTAT 3761 XBSW 2600 XC 0300 XC8CHA 0350 XC8ENT 4425 XC8OCT 1035 XC8PAS 0600 XC8PNT 1000 XC8SW 0673 XCHECK 4516 XCHK22 5144 XCKSWI 3400 XCKUNT 2335 XCNT 0175 XCOMPA 3663 XCRCER 3505 XD 0400 XDEVIC 5133 XDONE 4243 XDRIN 4441 XDROUT 4442 XEMPTY 4072 XERROR 2625 XFLENG 3715 XFORCE 5530 XGETAP 3035 XGETAS 4607 XGETAT 4261 XGETUN 4200 XHALT 4121 XHUNG 3344 XI 1100 XINIT 6434 XINITB 6450 XINITS 4600 XINITT 4250 XINTR 6426 XK67X2 5135 XK67X3 5136 XK67X4 5137 XK67X5 5140 XK67X6 5141 XK67X7 5142 XKCC 0323 XLCD 6203 XLCDA 6210 XLCDB 6235 XLCDBR 6315 XLINK 5516 XLOCKU 2545 XMESSA 3334 XMX 0657 XNOPRI 2715 XNULIN 5311 XOCTAL 5062 XOK 6123 XOUTPU 5263 XPAT6 3145 XPATTE 3103 XPI 6270 XPRINT 5244 XRDC 3420 XREAD 3416 XREADC 3412 XRETUR 5521 XRST 2441 XRSTB 2400 XSCOPE 1333 XSDN 6421 XSEL 6200 XSEQ 4333 XSEQ2 4413 XSEQ3 4433 XSER 6414 XSETUP 4103 XSHIFT 5020 XSPECI 5352 XSSCOP 1344 XSTARG 4711 XSTR 6407 XTAB 5215 XTABD 5221 XTARGE 0151 XTCF 5344 XTHEL 3016 XTICK 4133 XTY4OC 5000 XTY8OC 5200 XTYPEI 5305 XWAIT 1722 XWAITT 5412 XWRITE 3200 XXDMP 5064 XXDRIN 6400 XXDROU 6403 XXFORC 5525 XXGETA 4610 unreferenced XXINIT 6446 XXTAB 5243 XXTHEL 3024 XXX 0137 XYTHEL 3026 ZERO 5057