1 / 2 /RK8E DISKLESS CONTROL TEST 3 / 4 /MAINDEC-08-DHRKA-E-D 5 / 6 /COPYRIGHT (C) 1972, 1975 DIGITAL EQUIP. CORP. 7 / 8 /MAYNARD, MASS. 01754. 9 / 10 FIELD 1 11 / 12 13 /CONSOL SRC -V2-R0- CONSOLE PACKAGE 14 15 16 /LAS=CALL C8CKSW OR JMS XC8SW 17 /THIS WILL READ THE SWITCH REGISTER FROM THE PLACE SPECIFIED 18 /BY LOCATION 20 BIT 0. 19 20 21 /THE PROGRAM SHOULD CHECK FOR A CONTROL CHARACTER FROM THE TERMINAL 22 /EVERY FIVE(5) SECONDS OR SOONER. 23 24 /LOCATIONS THAT NEED TO BE SET UP FOR USING THE CONSOLE PACKAGE. 25 26 /CNTVAL IN XC8PASS THIS LOCATION DETERMINDS THE NUMBER OF 27 /PROGRAM COMPLETIONS THAT ARE NEEDED BEFORE THE PASS MESSAGE IS TYPED 28 /THE VALUE SHOULD PUT THE PASS MESSAGE OUT IN THE RANGE OF 1 TO 5 MINUTES. 29 /THIS SHOULD BE A POSITIVE NUMBER. 30 31 /C8STRT THIS IS FOUND IN CNTRL ROUTINE CONTROL R PART 32 /IT IS THE RETURN WHEN CONTROL R IS ENTERED (RESTART PROGRAM) 33 /THE RETURN JUMPS TO SDOSW WHICH CONTAINS C8STRT SO PUT THE LABEL C8STRT 34 /WHERE YOU WANT TO RESTART THE PROGRAM. 35 36 37 /SETUP1 IN XC8ERP THIS IS THE MASK BIT FOR HALT ON ERROR 38 /PLACE THE CORRECT BIT IN THIS LOCATION FOR HALTING ON ERRORS. 39 40 /SETUP2 IN XC8PASS THIS IS THE MASK FOR HALT A END OF PASS. 41 42 /THE CALL TABLE IS A CONDITIONAL ASSEMBLY. 43 /TO ASSEMBLE THE CALL REMOVE THE / BEFORE CONSOL=0. 44 /IN COMBINING THE CONSOL PACKAGE TO A DIAGNOSTIC, 45 /THE CALL TABLE IS TO BE AT THE BEGINNING OF A PROGRAM. 46 47 48 CONSOL=0 49 PSKF= 6661 50 PCLF= 6662 51 PSKE= 6663 52 PSTB= 6664 53 PSTE= 6665 54 GTF= 6004 55 ACL= 7701 56 CAF= 6007 57 MQL= 7421 58 MQA= 7501 59 / 60 *20 61 / 62 10020 0000 F1SWR, 0 /PSEUDO SWITCH REGISTER 63 10021 0000 F1OP1, 0 /CONTROL 1 64 10022 0000 F1OP2, 0 /CONTROL 2 65 / 66 / 67 IFDEF CONSOL < 68 69 70 *24 71 72 C8PASS= JMS I . 73 10024 0200 XC8PAS /C8 PASS COMPLETION ROUTINE 74 C8CKSW= JMS I . 75 10025 0262 XC8SW /CHECK SW REG SETTING 76 C8TTYI= JMS I . 77 10026 0272 XC8TTY /FETCH CONSOL CHAR 78 C8CNTR= JMS I . 79 10027 0400 XC8CNT /CHECK FOR CONTROL CHAR 80 C8PRNT= JMS I . 81 10030 0303 XC8PNT /C8 PRINT A BUFFER 82 C8SWIT= JMS I . 83 10031 0656 XC8PSW /SET UP PSEUDO SW. REG 84 C8OCTA= JMS I . 85 10032 1000 XC8OCT /CONVERT TO ASCII AND PRINT 86 C8CRLF= JMS I . 87 10033 1023 XC8CRL /DO A CARRIAGE RETURN + LINE FEED 88 C8ECHO= JMS I . 89 10034 1063 XC8ECH /CHECK INPUT CHAR 90 C8TYPE= JMS I . 91 10035 1077 XC8TYP /C8 PRINT ONE CHAR 92 C8ERR= JMS I . 93 10036 1207 XC8ERR /C8 ERROR HANDLER 94 C8INQU= JMS I . 95 10037 0635 XC8INQ /LOOK FOR OPERATOR INTERVENTION 96 C8CKPA= JMS I . 97 10040 1041 XC8CKP /CHECK IF CONTROL CHAR 98 C8PAUS= JMS I . 99 10041 0337 XC8PAU /IF CONSOL PACKAGE RETURN CALL PLUS ONE 100 /IF NOT USING CONSOL REPLACE CALL WITH 101 /A HLT AND THEN GO TO THE HALT 102 103 /*************************************************************** 104 /*20 /PSEUDO SWITCH REGISTER 105 106 /*21 /HARDWARE INDICATORS 107 /4000=USE FRONT PANEL SWITCH REGISTER 108 /0000=USE THE PSEUDO SWITCH REGISTER LOC.20 109 110 /*22 /SYSTEM CONFIGURATION 111 /400=CONSOL PACKAGE SET ACTIVE 112 /0000=CONSOLE PACKAGE SET DEACTIVE 113 114 /*23 /RESERVED FOR FUTURE USE 115 > 116 *200 117 /************************************************************* 118 /C8PASS 119 /THIS IS CALLED AT THE END OF EACH PROGRAM COMPLETION 120 /THE VALUE OF** CNTVAL** WILL BE DETERMINED BY THE TIME IT TAKES 121 /THE PROGRAM TO COMPLETE THIS MANY C8PASS TO BE IN THE 1 TO 4 MINUTE 122 /RANGE 123 / C8PASS=JMS XC8PASS 124 /EX. OF CALL C8PASS 125 / HLT /HALT IF NON CONSOL PACKAGE 126 / JMP START1 /CONTINUE RUNNING THIS PROGRAM 127 128 129 /RETURN TO LOCATION CALL PLUS ONE WITH THE AC=0 IF NON CONSOL PACKAGE AND HLT 130 /IF CONTINUE TO RUN THEN RETURN TO CALL PLUS2 AC=0 131 /THE LOCATION SETUP2 IS THE MASK BIT FOR THE HALT AT END OF PASS 132 /CHECK THAT IT IS CORRECT FOR THE CURRENT PROGRAM 133 134 /CALLS USED BY XC8PAS ARE CHKCLA-XC8CRLF-XC8OCTA-XC8SW-XC8PNT-XC8INQ- 135 136 137 10200 0000 XC8PAS, 0 138 10201 7200 CLA 139 10202 4777 JMS I (CHKCLA /IS WORD 22 BIT 3 ACTIVE CONSOLE? 140 10203 5212 JMP DOPACK /IS CLASSIC 141 10204 4776 JMS I (C8GET /GET ALL REGISTERS. 142 10205 4262 JMS XC8SW /DEACTIVE CONSOL CHECK SR SETTING 143 10206 0375 AND (400 /FOR HALT ON END OF C8PASS 144 10207 7640 SZA CLA /1= HALT 0 CONTINUE 145 10210 5600 JMP I XC8PAS /GO TO HALT 146 10211 5230 JMP C8BY1 /CONTINUE ON RUNNING PROGRAM 147 10212 4232 DOPACK, JMS CKCOUT /CLASS CHECK C8PASS COUNT 148 10213 5230 JMP C8BY1 /C8PASS COUNT NOT DONE REDO PROGRAM 149 10214 2250 ISZ PASCNT /C8PASS COUNT DONE SET C8PASS COUNT 150 10215 4774 JMS I (XC8CRLF 151 10216 4303 JMS XC8PNT /C8PRNT BUFFER 152 10217 0253 MESPAS / 153 10220 1250 TAD PASCNT /GET NUMBER 154 10221 4773 JMS I (XC8OCTA /CONVERT IT TO ASCII 155 10222 4774 JMS I (XC8CRLF /DO A CARRIAGE RETURN 156 10223 4776 JMS I (C8GET /GET ALL REGISTERS. 157 10224 4262 JMS XC8SW /CHECK A HALT AT END OF C8PASS 158 10225 0375 SETUP2, AND (400 /MASK BIT 159 10226 7640 SZA CLA /HALT =1 NO SKIP CONTINUE =0 160 161 10227 4772 JMS I (XC8INQ /STOP PROGRAM EXECUTION-LOOK FOR INPUT 162 10230 2200 C8BY1, ISZ XC8PAS /BUMP RETURN 163 10231 5600 JMP I XC8PAS 164 10232 0000 CKCOUT, 0 165 10233 1251 TAD DOSET /CHECK IF SET UP NEEDED 166 10234 7640 SZA CLA /0=SET UP C8PASS COUNT VALUE 167 10235 5242 JMP NOSET /C8PASS COUNT VALUE ON 168 10236 1252 TAD CNTVAL /GET COUNT VALUE FOR THIS PROG 169 10237 7040 CMA /SET TO NEGATIVE 170 10240 3247 DCA DOCNT /STORE IN HERE 171 10241 2251 ISZ DOSET /INDICATE VALUE SET UP 172 10242 2247 NOSET, ISZ DOCNT /COUNT THE NUMBER OF PASSES 173 10243 5230 JMP C8BY1 /EXIT FOR ANOTHER PASS 174 10244 3251 DCA DOSET /SET TO C8PRINT C8PASS 175 10245 2232 ISZ CKCOUT /BUMP RETURN FOR 176 10246 5632 JMP I CKCOUT /C8PASS C8TYPE OUT 177 10247 0000 DOCNT, 0 178 10250 0000 PASCNT, 0 / 179 10251 0000 DOSET, 0 180 10252 0000 CNTVAL, 0 181 10253 0410 MESPAS, TEXT "DHRKAE PASS " 10254 2213 10255 0105 10256 4040 10257 2001 10260 2323 10261 4000 182 183 184 185 /********************************************************************* 186 187 /C8CKSW 188 189 /THIS ROUTINE CAN BE USED INPLACE OF A READ THE SWITCHES LAS. 190 /ROUTINE THAT WILL CHECK WHERE TO READ THE 191 /C8 SWITCHES FROM IE. FROM PANEL OR PSEUDO SWITCH REGISTER 192 /THE SELECTION IS DETERMINED BY THE STATE OF BIT 0 IN LOCATION 21. 193 194 /C8CKSW= JMS XC8SW 195 /EX. JMS XC8SW /READ THE C8SWIT REGISTER 196 /RETURN WITH THE CONTENTS OF SWITCH REGISTER 197 198 /RETURN TO NEXT LOCATION FOLLOWING CALL WITH THE AC= TO VALUE OF C8SWIT SETTING 199 200 /CALLS USED ARE-XC8CKPA- 201 202 203 204 10262 0000 XC8SW, 0 205 10263 4771 JMS I (XC8CKPA /GO CHECK THE IF ANY CONTROL 206 10264 7000 NOP 207 10265 1021 TAD F1OP1 /GET WD FOR INDICATOR 208 10266 7710 SPA CLA /CHECK IF FROM PANEL 4000 209 10267 7614 7614 /DO LAS AND SKIP GET FROM PANEL WITH LAS 210 10270 1020 TAD F1SWR /PSEUDO SWITCH 211 10271 5662 JMP I XC8SW /EXIT WITH STATUS BIT IN AC 212 213 214 /************************************************************** 215 216 /C8TTYI 217 /THIS ROUTINE WILL LOOK FOR A INPUT FROM THE TERMINAL 218 /AND REMOVE ANY PARITY BITS, THEN MAKE IT 8 BIT ASCI. 219 / C8TTYI= JMS XC8TTY 220 /EX. JMS XC8TTYI /READ CHAR FROM THE CONSOL DEVICE 221 / /RETURN TO CALL PLUS ONE AC CONTAINS THE CHAR 222 223 224 /CALLS USED -NONE- BUT C8CHAR IS OFF PAGE AND IN ROUTINE CALLED XC8ECHO 225 226 / 227 / 228 10272 0000 XC8TTY, 0 229 10273 6031 KSF /LOOK FOR KEYBOARD FLAG 230 10274 5273 JMP .-1 231 10275 6036 KRB /GET CHAR 232 10276 0370 AND (177 /MASK FOR 7 BITS 233 10277 1367 TAD (200 /ADD THE EIGHTH BIT 234 10300 3766 DCA I (C8CHAR /STORE IT 235 10301 1766 TAD I (C8CHAR 236 10302 5672 JMP I XC8TTY /EXIT 237 238 239 240 /********************************************************************* 241 242 /C8PRNT 243 244 /THIS ROUTINE WILL TYPE THE CONTENTS OF THE C8 PRINT BUFFER, THE LOCATION 245 /OF THE BUFFER WILL BE IN THE ADDRS FOLLOWING THE CALL. PRINTING OF THE BUFFER 246 /WILL STOP WHEN A 00 CHAR IS DETECTED. CHARACTERS ARE PACKED 2 PER WORD. 247 248 / C8PRNT= JMS XC8PNT 249 250 251 /EX. JMS XC8PNT /C8PRNT THE CONTENTS OF THE FOLLOWING BUFFER 252 / MESS77 /LOCATION OF C8PRNT BUFFER 253 254 /C8PRNT WILL USE THE LOCATION FOLLOWING THE CALL AS THE POINTER FOR THE 255 /C8PRNT ROUTINE.RETURN TO CALL PLUS TWO WITH AC= 0 256 257 /CALLS USED ARE-XC8TYPE-XC8PNT- 258 259 260 261 10303 0000 XC8PNT, 0 262 10304 7300 CLA CLL 263 10305 1703 TAD I XC8PNT /GET C8PRNT BUFFERS STARTING LOCATION 264 10306 3336 DCA PTSTOR /STORE IN PTSTOR 265 10307 2303 ISZ XC8PNT /BUMP RETURN 266 10310 1736 C8D01, TAD I PTSTOR /GET DATA WORD 267 10311 0365 AND (7700 /MASK FOR LEFT BYTE 268 10312 7450 SNA /CHECK IF 00 TERMINATE 269 10313 5703 JMP I XC8PNT /EXIT 270 10314 7500 SMA /IS AC MINUS 271 10315 7020 CML /MAKE CHAR A 300 AFTER ROTATE 272 10316 7001 IAC /MAKE CHAR A 200 AFTER ROTATE 273 10317 7012 RTR 274 10320 7012 RTR 275 10321 7012 RTR /PUT CHART IN BITS 4-11 MAKE IT 8 BIT ASCII 276 10322 4764 JMS I (XC8TYPE /C8PRNT IT ON CONSOLE 277 10323 1736 TAD I PTSTOR /GET DATA WORD 278 10324 0363 AND (0077 /MASK FOR RIGHT BYTE 279 10325 7450 SNA /CHECK IF 00 TERMINATOR 280 10326 5703 JMP I XC8PNT //EXIT 281 10327 1362 TAD (3740 /ADD FUDGE FACTOR TO DETERMINE IF 200 282 10330 7500 SMA /OR 300 IS TO BE ADD TO CHAR 283 10331 1361 TAD (100 /ADD 100 284 10332 1360 TAD (240 /ADD 200 285 10333 4764 JMS I (XC8TYPE /C8TYPE ONLY BITS 4-11 286 10334 2336 ISZ PTSTOR /BUMP POINTER FOR NEXT WORD 287 10335 5310 JMP C8D01 /DO AGAIN 288 10336 0000 PTSTOR, 0 /STOR FOR X8PRNT BUFFER 289 /************************************************************************** 290 291 292 /C8PAUS 293 /THIS ROUTINE WILL CHECK IF THE CONSOL PACKAGE IS ACTIVE.IF ACTIVE 294 /IT WILL RETURN TO CALL PLUS ONE AC= 0, AND DO THAT INSTRUCTION. 295 /IF THE CONSOL PACKAGE IS NOT ACTIVE THE CALL WILL BE REPLACED 296 /WITH A 7402 HALT AND THEN RETURN TO THE HALT. 297 298 / C8PAUS= JMS XC8PAU 299 / 300 / 301 /EX. JMS XC8PAUS /CHECK IF ON ACTIVE CONSOL IF NOT HALT HERE 302 / ANYTHING /RETURN HERE IF ON ACTIVE CONSOL 303 / 304 / 305 306 /CALLS USED ARE -CHKCLA- 307 308 309 310 10337 0000 XC8PAU, 0 311 10340 7300 CLA CLL 312 10341 4777 JMS I (CHKCLA /CHECK LOC 22 BIT 3 CONSOLE BIT 313 10342 5350 JMP C8DO3 /GO DO CONSOL PART RETURN CALL+1 314 10343 7040 CMA /DEACTIVE CONSOLE PACKAGE PUT HLT IN CALL 315 10344 1337 TAD XC8PAU /GET CORRECT RETURN ADDRS 316 10345 3337 DCA XC8PAU /SET UP RETURN 317 10346 1357 TAD (7402 /GET CODE FOR HLT 318 10347 3737 DCA I XC8PAU /PUT HALT IN CALL LOCATION 319 10350 5737 C8DO3, JMP I XC8PAU /GO TO HALT OR RETURN TO NEXT LOCATION 320 321 322 323 324 325 326 327 328 10357 7402 PAGE 10360 0240 10361 0100 10362 3740 10363 0077 10364 1077 10365 7700 10366 1075 10367 0200 10370 0177 10371 1041 10372 0635 10373 1000 10374 1023 10375 0400 10376 0624 10377 1200 329 /************************************************************************** 330 331 332 /C8CNTR 333 /THIS ROUTINE WILL CHECK FOR THE PRESENCE OF CONTROL CHARACTERS 334 /IT WILL CHECK FOR THE FOLLOWING CHAR C-R-Q-L-S 335 / C8CNTR= JMS XC8CNT 336 337 /EX. JMS XC8CNTR /CHECK FOR CONTROL CHARACTER 338 / JMP ANYTHING /LOC FOLLOWING THE CALL IS FOR CONTINUING THE PROGRAM 339 / JMP ANYTHING /LOC. IS FOR RETURN IF INMODE SET AND NOT CNTRL CHAR 340 / 341 342 /RETURN IS TO CALL PLUS ONE IF CONTINUE 343 /RETURN IS TO CALL PLUS TWO IF INMODE SET AND NOT CONTROL CHAR 344 /RETURN IS TO CALL PLUS TWO IF INMODE IS NOT SET AND NO 345 /CONTROL CHAR ..THIS WILL PRINT THE CHARACTER AND A ? 346 /CLEAR THE AC AND RETURN CALL+2. 347 348 /CALLS USED ARE-CHKCLA-XC8TYPE-XC8CRLF-C8GET-UPAROW-XC8TYI-XC8PSW- 349 / 350 / 351 / 352 10400 0000 XC8CNT, 0 353 10401 3777 DCA I (ACSAVE /SAVE THE AC 354 10402 4776 JMS I (CHKCLA /CHECK LOC.22 BIT3 FOR CONSOLE BIT 355 10403 5206 JMP .+3 /ON ACTIVE CONSOLE 356 10404 1777 TAD I (ACSAVE /DEACTIVE CONSOLEGET AC FOR RETURN 357 10405 5600 JMP I XC8CNT /EXIT NOT ON ACTIVE CONSOLE 358 10406 6004 GTF 359 10407 3775 DCA I (FLSAVE 360 10410 7501 MQA 361 10411 3774 DCA I (MQSAVE /SAVE THE MQ 362 10412 3255 DCA INDEXA /SET DISPLACEMENT INTO TABLE B 363 10413 1257 TAD XTABLA /GET ADDRS OF TABLE A 364 10414 3256 DCA GETDAT /CONTAINS POINTER TO CONTROL CHAR 365 10415 1656 REDOA, TAD I GETDAT /GET CONTROL CHAR FROM TABLE 366 10416 7450 SNA /CHEC FOR A 0 END OF TABLE 367 10417 5226 JMP DONEA /END OF TABLE NO CONTROL CHAR 368 10420 1773 TAD I (C8CHAR /COMPARE CHAR TO CONTROL CHAR 369 10421 7650 SNA CLA /0 IF MATCH 370 10422 5243 JMP GOITA /MATCH 371 10423 2255 ISZ INDEXA /NO MATCH NOT END OF TABLE REDO 372 10424 2256 ISZ GETDAT /BUMP INDEX FOR EXIT WHEN CONTROL FOUND 373 10425 5215 JMP REDOA /BUMP GETDAT FOR CONPARE OF NEXT CNTRL CHAR, 374 10426 1772 DONEA, TAD I (INMODE /CHECK IF PROGRAM EXPECTS CHAR 375 10427 7640 SZA CLA /1=CHAR EXPECT 0= NO CHAR EXPECTED 376 10430 5240 JMP EXITA /CHAR EXPECTED 377 10431 1773 TAD I (C8CHAR /GET CHAR - NOT CONTROL + NOT EXPECTED 378 10432 4771 JMS I (XC8TYPE /C8PRNT CHAR 379 10433 1370 TAD (277 /GET CODE FOR "?" 380 10434 4771 JMS I (XC8TYPE 381 10435 4767 JMS I (XC8CRLF 382 10436 2200 ISZ XC8CNT /BUMP RETURN 383 10437 5600 JMP I XC8CNT /EXIT CALL+2 384 10440 2200 EXITA, ISZ XC8CNT /BUMP RETURN FOR MAIN PROGRAM CHECK OF CHAR 385 10441 1773 TAD I (C8CHAR /PUT CHAR IN AC. 386 10442 5600 JMP I XC8CNT /EXIT 387 10443 1773 GOITA, TAD I (C8CHAR /GET THE CONTENTS OF CHAR 388 10444 1366 TAD (100 /ADD 100 TO FORM A GOOD ASCII CHARACTER 389 10445 3773 DCA I (C8CHAR /RESTORE COFFECT CHAR 390 10446 1260 TAD XTABLB /GET START OF TABLE B 391 10447 1255 TAD INDEXA /GET HOW FAR INTO TABLE 392 10450 3254 DCA GOTOA /STORE IT 393 10451 1654 TAD I GOTOA /GET THE ROUTINE STARTING ADDRESS 394 10452 3254 DCA GOTOA /STORE IT IN HERE 395 10453 5654 JMP I GOTOA /GO TO THE CONTROL CHAR ROUTINE 396 10454 0000 GOTOA, 0000 /ADD OF CNTRL ROUTINE TO EXECUTE 397 10455 0000 INDEXA, 0000 /DISPLACEMENT INTO CNTRL TABLE 398 10456 0000 GETDAT, 0000 /LOCATION OF ADDRS OF CONTROL CHAR. 399 10457 0461 XTABLA, TABLA /ADDRS OF TABLEA 400 10460 0471 XTABLB, TABLB /ADDRS OF TABLEB 401 10461 7575 TABLA, 7575 /CNTRL C BACK TO MONITOR 203 402 10462 7564 7564 /CNTRL L SWITCH ERROR PRINTTING DEVICE 214 403 10463 7557 7557 /CNTRL Q START DISPLAYING CHAR, AGAIN 221 404 10464 7556 7556 /CNTRL R BACK TO BEGINNING OF PROGRAM 222 405 10465 7555 7555 /CNTRL S STOP SENDING CHAR TO DISPLAY WAIT FOR CNTRL Q 223 406 10466 7573 7573 /CNTRL E CONTINUE WITH PROGRAM 205 407 10467 7574 7574 /CONTROL D CHANGE SWITCH REGISTER ON FLY 408 10470 0000 0000 409 410 10471 0551 TABLB, CNTRLC 411 10472 0537 CNTRLL 412 10473 0500 CNTRLQ 413 10474 0511 CNTRLR 414 10475 0521 CNTRLS 415 10476 0545 CNTRLE 416 10477 0600 CNTRLD 417 / 418 /CONTROL Q 419 /START SENDING CHAR. TO THE DISPLAY 420 /THIS WILL RETURN CONTROL TO THE CALL THAT WAS SET BY 421 /THE CALL FOR CONTROL S. 422 / 423 10500 3772 CNTRLQ, DCA I (INMODE /SET SOFT FLAG FOR UNEXPECTED CHAR 424 10501 1335 TAD C8SETS /CHECK IF CONTROL S TYPED IN 425 10502 7640 SZA CLA 426 10503 5306 JMP BYRETR /CONTROL S TYPED IN 427 10504 4765 JMS I (C8GET /NO CONTROL S TYPED PREVIOUSLY 428 10505 5600 JMP I XC8CNT /LEAVE BIA CNTR ENTRY ADDRESS 429 10506 3335 BYRETR, DCA C8SETS /CLEAR THE SOFT FLAG 430 10507 4765 JMS I (C8GET /RESTORE REGISTERS 431 10510 5736 JMP I C8RETR /EXIT TO ADDRESS SET BY CONTROL S 432 / 433 / 434 /CONTROL R 435 /GO TO THE QUESTION C8SWIT 436 10511 3764 CNTRLR, DCA I (TTYLPT /CLEAR THE TYPE FLAG SET TO TTY 437 10512 3335 DCA C8SETS /CLEAR SOFT FLAG FOR CNTRL S 438 10513 3772 DCA I (INMODE 439 10514 4763 JMS I (UPAROW /PRINT THE ^ AND C8CHAR 440 10515 3762 C8BY4, DCA I (C8SWST /CLEAR FLAG FOR CNTRL D OR R 441 10516 6203 CDF CIF 00 442 10517 5720 JMP I XDOSW /GO TO ADDRS OF C8SWIT 443 10520 0200 XDOSW, BGN /DOSW IS LABEL FOR C8SWIT QUESTION 444 / 445 / 446 /CONTROL S 447 /STOP SENDING CHAR. TO DISPLAY UNTIL A ^Q IS RECEIVED 448 / 449 / 450 10521 1335 CNTRLS, TAD C8SETS /IF1 DO NOT STORE IN C8RETR 451 10522 7640 SZA CLA 452 10523 5327 JMP C8DO7 /DONT SET UP C8RETR 453 10524 7001 IAC /MAKE RETURN CALL PLUS 2 454 10525 1200 TAD XC8CNT /GET RETURN FOR THIS CALL 455 10526 3336 DCA C8RETR /STORE IT HERE FOR USE BE CONTROL Q 456 10527 2335 C8DO7, ISZ C8SETS /SET FLAG TO SAVE CALL 457 10530 4761 JMS I (XC8TTYI /LOOK FOR THE INPUT 458 10531 4765 JMS I (C8GET /GET REGISTERS 459 10532 4200 JMS XC8CNT /CHECK FOR THE CONTROL CHAR 460 10533 7200 CLA 461 10534 5321 JMP CNTRLS /IF NOT A CNTRL Q R C REASK 462 10535 0000 C8SETS, 0 463 10536 0000 C8RETR, 0 464 / 465 /SWITCH OUTPUT FROM ONE OUTPUT DEVICE TO ANOTHER - THE TWO OUTPUTS ARE THE 466 /CONSOLE AND THE PRINTER WITH DEVICE CODE 66. 467 / 468 / 469 10537 1764 CNTRLL, TAD I (TTYLPT /GET PRESENT C8SWIT INDICATOR 470 10540 7040 CMA /COMPLEMENT IT 471 10541 3764 DCA I (TTYLPT /STOR NEW C8SWIT 472 10542 4763 JMS I (UPAROW /C8PRNT ^ AND CHAR ON NEW DEVICE 473 10543 4765 JMS I (C8GET /RESTORE THE REGISTERS 474 10544 5600 JMP I XC8CNT /EXIT 475 / 476 /CONTROL E 477 /CONTINUE RUNNING FROM A INQUIRE OR ERROR 478 / 479 / 480 10545 4763 CNTRLE, JMS I (UPAROW /PRINT THE CONTROL CHAR 481 10546 3762 DCA I (C8SWST /CLEAR FLAG. 482 10547 4765 JMS I (C8GET /GET THE REGISTERS 483 10550 5600 JMP I XC8CNT /RETURN TO CALL PLUS ONE 484 / 485 486 /CONTROL C 487 /RETURN TO MONITOR CONTROL C 488 10551 3764 CNTRLC, DCA I (TTYLPT /CLEAR THE LPT FLAG TO PRINT ON DISPLAY 489 10552 3762 DCA I (C8SWST /CLEAR FLAG. 490 10553 4763 JMS I (UPAROW /C8PRINT A^ AND LETTER IN CHAR 491 10554 6203 CDF CIF 00 /GO TO 0 FLD 492 10555 6007 CAF /CLEAR THE WORLD 493 10556 5760 JMP I (7600 /GO TO DIAGNOSTIC MONITOR 494 /********************************************************************** 495 / 496 / 497 / 498 499 500 501 502 503 10560 7600 PAGE 10561 0272 10562 0745 10563 0615 10564 1121 10565 0624 10566 0100 10567 1023 10570 0277 10571 1077 10572 1076 10573 1075 10574 1346 10575 1347 10576 1200 10577 1345 504 505 / 506 /CONTROL D 507 /CHANGE THE SWITCH REGISTER ANYTIME CNTRL D AND RETURN TO 508 /THE PROGRAM RUNNING. 509 510 511 10600 4215 CNTRLD, JMS UPAROW 512 10601 1213 TAD C8SETD /CHECK IF THE RETURN ADDRS IS SAFE 513 10602 7640 SZA CLA 514 10603 5207 JMP C8DO11 /DO NOT CHANGE THE RETURN ADDRS 515 10604 1777 TAD I (XC8CNT /GET THE RETURN ADDRS AND SAVE IT 516 10605 3214 DCA C8RETD /SAVE THE RETURN HERE 517 10606 2213 ISZ C8SETD /INDICATE RETURN SAVED DONT DESTROY 518 10607 4256 C8DO11, JMS XC8PSW /GO CHANGE THE SWITCH REGISTER 519 10610 3213 DCA C8SETD /CLEAR THE FLAG 520 10611 4224 JMS C8GET /RESTORE THE AC MQ LINK ETC 521 10612 5614 JMP I C8RETD /RETURN TO THE PROGRAM 522 / 523 10613 0000 C8SETD, 0 524 10614 0000 C8RETD, 0 525 526 527 528 /THIS WILL TYPE A UP ARROW AND THE CHAR IN C8CHAR. 529 530 10615 0000 UPAROW, 0 /C8RNT THE "^" AND THE CHAR TYPED IN 531 10616 1376 TAD (336 /CODE FOR ^ 532 10617 4775 JMS I (XC8TYPE 533 10620 1774 TAD I (C8CHAR /C8TYPE THE CHAR 534 10621 4775 JMS I (XC8TYPE 535 10622 4773 JMS I (XC8CRLF 536 10623 5615 JMP I UPAROW /EXIT 537 538 539 540 /******************************************************************** 541 542 10624 0000 C8GET, 0 543 10625 7200 CLA 544 10626 1772 TAD I (MQSAVE 545 10627 7421 MQL /RESTORE QM 546 10630 1771 TAD I (FLSAVE 547 10631 7004 RAL /RESTORE THE LINK 548 10632 7200 CLA 549 10633 1770 TAD I (ACSAVE /RESTORE THE AC 550 10634 5624 JMP I C8GET /GET THE REGISTERS 551 552 553 554 /******************************************************************** 555 556 /C8INQU 557 /C8INQU ROUTINE WILL PRINT A WAITING 558 /AND THE PROGRAM IS EXPECTING A CONTROL CHAR INPUT 559 /IF CONTINUE FROM CONTROL CHAR RETURN IS CALL PLUS ONE 560 /IF NO CONTROL CHAR ENTERED THEN WAITING IS REPRINTED 561 /AND PROGRAM WAITS FOR A CONTROL CHAR AGAIN. 562 563 / C8INQU = JMS XC8INQ 564 565 /EX. JMS XC8INQ /C8 WILL PRINT A WAITINGAND WAIT FOR INPUT 566 / DO ANYTHING /RETURN IS CALL PLUS ONE AC =0 CONTINUE 567 568 /CALLS USED ARE -CHKCLA-XC8PNT-XC8TYI-C8GET-XC8CNTR- 569 570 571 10635 0000 XC8INQ, 0 572 10636 7300 CLA CLL 573 10637 4767 JMS I (CHKCLA /CHECK LOC 22 BIT 3 CONSOLE BIT 574 10640 7410 SKP /ACTIVE CONSOLE PACKAGE 575 10641 5635 JMP I XC8INQ /NOT CONSOLE LEAVE 576 10642 4766 JMS I (XC8PNT 577 10643 0651 WATMES /INQUIR WAITING 578 10644 4765 JMS I (XC8TTYI /GET CHARACTER 579 10645 4224 JMS C8GET 580 10646 4777 JMS I (XC8CNTR /CHECK IF CONTROL CHARACTER 581 10647 5635 JMP I XC8INQ /EXIT AND CONTINUE 582 10650 5236 JMP XC8INQ+1 /REASK 583 10651 2701 WATMES, TEXT "WAITING " 10652 1124 10653 1116 10654 0740 10655 0000 584 585 586 /******************************************************************** 587 588 /C8SWIT 589 590 /ROUTINE WILL CHECK IF CONSOL IS ACTIVE IF IT IS ACTIVE DISPLAY 591 /SW QUESTION. IF NOT ACTIVE IT WILL NOT PRINT THE SW QUESTION BUT 592 /RETURN TO CALL PLUS ONE AC=0. 593 /C8SWIT WILL SET UP THE PSEUDO SWITCH 594 /REGISTER WITH THE NEW DATA ENTERED 595 / 596 / C8SWIT = JMS XC8PSW 597 598 /EX. JMS XC8PSW /SET UP PSEUDO C8SWIT REGISTER IF 599 /ON THE CONSOL PACKAGE. RETURN IS CALL PLUS ONE AC = 0 600 601 /CALLS USED ARE -CHKCLA-XC8PSW-XC8PNT-XC8OCTA-XC8TYPE- 602 603 604 10656 0000 XC8PSW, 0 605 10657 4767 JMS I (CHKCLA /CHECK LOC 22 BIT 3 CONSOLE BIT 606 10660 7410 SKP /ACTIVE CONSOLE 607 10661 5656 JMP I XC8PSW /DEACTIVE CONSOLE PACKAGE 608 /RETURN WITHOUT ASKING PSEUDO SWITCH 609 10662 1345 TAD C8SWST /IS THE SOFT FLAG SET FOR SWITCH? 610 10663 7640 SZA CLA /SKIP IF ONE ENTRY AT ATIME OK 611 10664 5764 JMP I (C8BY4 /SECOND ENTRY WITHOUT A EXIT GO TO SW QUESTION 612 10665 2345 ISZ C8SWST /FIRST ENTRY SET FLAG 613 10666 4766 C8RDPS, JMS I (XC8PNT /C8PRINT SR= 614 10667 0747 MESA 615 10670 1020 TAD F1SWR /GET CONTENTS OF SW 616 10671 4763 JMS I (XC8OCTA /CONVERT IT TO ASCII 617 10672 1362 TAD (40 /GET SPACE 618 10673 4775 JMS I (XC8TYPE 619 10674 2761 ISZ I (INMODE /SET FLAG FOR CHAR EXPECTED 620 10675 4760 JMS I (XC8ECHO /LOOK FOR INPUT 621 10676 4315 JMS TSTCHA /NOT CONTROL TEST IT IS LEGAL 622 10677 1774 TAD I (C8CHAR /STORE NEW CHAR IN SW REG 623 10700 3020 DCA F1SWR 624 10701 1357 TAD (-3 /GET A MINUS 3 625 10702 3346 DCA TMPCNT /STORE IN TEMP COUNT 626 10703 4760 GETCH1, JMS I (XC8ECHO /GET NEXT CHAR 627 10704 4315 JMS TSTCHA /CHECK IF CR + GOOD CHAR 628 10705 1020 TAD F1SWR /GET C8SWIT REGISTER 629 10706 7106 CLL RTL /ROTATE IT LEFT 3 PLACES 630 10707 7004 RAL 631 10710 1774 TAD I (C8CHAR /GET CHAR + ADD IT TO PREVIOUS CONTENTS 632 10711 3020 DCA F1SWR /SAVE NEW CONTENTS 633 10712 2346 ISZ TMPCNT /BUMP COUNT 634 10713 5303 JMP GETCH1 /JMP BACK + GET NEXT CHAR 635 10714 5342 JMP ENDIT /END 4 CHAR C8TYPED IN 636 10715 0000 TSTCHA, 0 637 10716 7041 CIA /CMPL CHAR IN AC 638 10717 1356 TAD (215 /TEST IF IT IS A CARRIAGE RETURN 639 10720 7650 SNA CLA /SKIP IF NOT CR. 640 10721 5342 JMP ENDIT /WAS CARRIAGE RETURN 641 10722 1774 TAD I (C8CHAR /NOT CR, GET CHAR 642 10723 1355 TAD (-260 /CHECK IF IT IS IN RANGE 643 10724 7710 SPA CLA /IF NOT POSITIVE C8ERR CHAR SMALLER THAN 260 644 10725 5336 JMP ERR1 /C8ERR - CHAR TOO SMALL 645 10726 1774 TAD I (C8CHAR /GET CHAR 646 10727 1354 TAD (-270 /GET A -270 + CHECK IF IT IS LARGER THAN 7 647 10730 7700 SMA CLA /SKIP IF LESS THAN 7 648 10731 5336 JMP ERR1 /C8ERR ON CHAR NOT IN RANGE 649 10732 1774 TAD I (C8CHAR /GET CHAR 650 10733 0353 AND (7 /MASK FOR RIGHT BYTE 651 10734 3774 DCA I (C8CHAR /STORE IN CHAR 652 /GET CHAR IN AC 653 10735 5715 JMP I TSTCHA /EXIT 654 10736 1352 ERR1, TAD (277 /C8PRNT 655 10737 4775 JMS I (XC8TYPE /? 656 10740 4773 JMS I (XC8CRLF / 657 10741 5266 JMP C8RDPS /EXIT + ASK AGAIN 658 10742 4773 ENDIT, JMS I (XC8CRLF /DO A CR LF 659 10743 3345 DCA C8SWST /CLEAR THE PSW ENTRY FLAG 660 10744 5656 JMP I XC8PSW /EXIT ROUTINE 661 10745 0000 C8SWST, 0 662 663 10746 0000 TMPCNT, 0 664 10747 2322 MESA, TEXT "SR= " 10750 7540 10751 0000 665 666 667 668 669 10752 0277 PAGE 10753 0007 10754 7510 10755 7520 10756 0215 10757 7775 10760 1063 10761 1076 10762 0040 10763 1000 10764 0515 10765 0272 10766 0303 10767 1200 10770 1345 10771 1347 10772 1346 10773 1023 10774 1075 10775 1077 10776 0336 10777 0400 670 671 /C8OCTA 672 673 /OCTAL TO ASCII CONVERSION 674 /THIS ROUTINE WILL TAKE THE OCTAL NUMBER IN THE AC AND CONVERT IT TO ASCII 675 /THE RESULT WILL BE PRINTED ON THE CONSOL TERMINAL 676 / C8OCTA= JMS XC8OCT 677 / 678 /EX. JMS XC8OCTA /AC CONTAINS THE NUMBER TO BE CHANGE 679 / RETURN IS TO CALL PLUS ONE AC=0 680 / 681 /CALLS USED ARE -XC8TYPE- 682 683 684 11000 0000 XC8OCT, 0 685 11001 7106 CLL RTL 686 11002 7006 RTL /POSITION THE FIRST CHAR FOR PRINTING 687 11003 3221 DCA C8TMP1 /SAVE CORRECT POSITIONED WORD HERE 688 11004 1377 TAD (-4 689 11005 3222 DCA C8CKP /STORE COUNTER IN HERE 690 11006 1221 C8DO4, TAD C8TMP1 /GET FIRST NUMBER 691 11007 0376 AND (0007 /MASK 692 11010 1375 TAD (260 /ADD THE PRINT CONSTANT 693 11011 4277 JMS XC8TYP /TYPE THE NUMBER 694 11012 1221 TAD C8TMP1 / 695 11013 7006 RTL 696 11014 7004 RAL /PUT NEXT NUMBER IN POSITION 697 11015 3221 DCA C8TMP1 /STORE IT 698 11016 2222 ISZ C8CKP /DONE YET WITH FOUR NUMBERS 699 11017 5206 JMP C8DO4 /NOT YET DO MORE 700 11020 5600 JMP I XC8OCT /DONE WITH FOUR 701 11021 0000 C8TMP1, 0 702 11022 0000 C8CKP, 0 703 704 705 /********************************************************************* 706 707 /C8CRLF 708 /C8TYPE CR AND LF WITH FILLERS FOLLOWING EACH LF AND CR 709 / 710 / C8CRLF= JMS XC8CRL 711 / 712 /EX. JMS XC8CRLF /C8PRNT A CR AND LF WITH FILL 713 / /RETURN TO CALL PLUS ONE AC =0 714 /CALLS USED ARE -XC8TYPE- 715 716 717 11023 0000 XC8CRL, 0 718 11024 7300 CLA CLL 719 11025 1374 TAD (215 /GET CODE FOR CR 720 11026 4277 JMS XC8TYP 721 11027 1237 TAD FILLER 722 11030 7040 CMA 723 11031 3240 DCA FILCNT /STORE FILLER IN HERE 724 11032 1373 TAD (212 /GET CODE FOR LF 725 11033 4277 C8DO2, JMS XC8TYP 726 11034 2240 ISZ FILCNT /CHECK ON FILLER CHAR 727 11035 5233 JMP C8DO2 /TYPE A NON PRINTING CHAR 728 11036 5623 JMP I XC8CRL /EXIT 729 11037 0004 FILLER, 0004 /FILLER SET FOR 4 CHAR 730 11040 0000 FILCNT, 0 /COUNTER FOR FILL 731 732 733 734 //************************************************************* 735 /C8CKPA 736 /THIS ROUTINE WILL CHECK IF A CHARACTER WAS ENTERED FROM THE 737 /TERMINAL. IF THE FLAG IS SET AND THE CONSOLE PACKAGE IS 738 /ACTIVE A CHECK IS MADE TO DETERMINE IF IT IS A CONTROL CHAR. 739 /IF IT WAS A CONTROL CHAR THEN ITS CONTROL FUNCTION IS PERFORMED. 740 /IF NOT A CONTROL CHARACTER OR A CONTROL E-D-L-O- IT WILL DO 741 /THE CONTROL FUNCTION AND RETURN TO CALL PLUS 2. 742 /A NON CONTROL CHARACTER WILL BE PRINTED AND A "?" IT WILL RETURN TO 743 /CALL PLUS 2. 744 /IF NO FLAG IS SET OR THE CONSOL IS NOT ACTIVE THE RETURN IS TO 745 /CALL PLUS 1. 746 747 748 / C8CKPA= JMS XC8CKP 749 750 751 /EX. JMS XC8CKPA /CALL TO CHECK IF CONTROL CHAR SET 752 / ANYTHING(SKIP) /RETURN IF NOT FLAG OR NOT CONSOLE ACTIVE 753 / ANYTHING(JMP EXIT SKIP CHAIN) /RETURN IF NOT CONTROL OR CONTINUE CONTROL 754 755 756 /CALLS USE ARE -XC8TTYI-XC8CNTR-C8GET- 757 758 759 11041 0000 XC8CKP, 0 760 11042 3772 DCA I (ACSAVE /SAVE THE AC 761 11043 6004 GTF /SAVE THE FLAGS 762 11044 3771 DCA I (FLSAVE /SAVE THE FLAGS 763 11045 7501 MQA /PUT MQ IN AC 764 11046 3770 DCA I (MQSAVE /SAVE THE MQ 765 11047 6031 KSF /CHECK THE KEYBOARD FLAG 766 11050 5261 JMP C8BY3 /EXIT TO CALL PLUS 1 767 11051 4767 JMS I (CHKCLA /CHECK LOC 22 BIT 3 CONSOLE BIT 768 11052 7410 SKP /ACTIVE CONSOLE PACKAGE 769 11053 5261 JMP C8BY3 /EXIT TO CALL PLUS 1 770 11054 4766 JMS I (XC8TTYI /GET THE CHAR 771 11055 4765 JMS I (C8GET /GET THE FLAGS 772 11056 4764 JMS I (XC8CNTR /CHECK IF CONTROL CHAR. 773 11057 7000 NOP /RETURN IF A CONTINUE CHAR. 774 11060 2241 ISZ XC8CKP /BUMP RETURN FOR CALL PLUS 2 775 11061 4765 C8BY3, JMS I (C8GET /GET REGISTERS 776 11062 5641 JMP I XC8CKP /SAY GOOD BYE 777 778 //********************************************************************* 779 780 /C8ECHO 781 /THIS ROUTINE WILL LOOK FOR A CHAR FROM THE KEYBOARD. STORE IT IN LOCATION CHAR 782 /CHECK IF IT WAS A CONTROL CHARACTER - SET INMODE - PRINT CHARACTER 783 784 / C8ECHO = JMS XC8ECH 785 /EX. JMS XC8ECHO /LOOK FOR CONSOL CHAR C8PRNT IT 786 /RETURN CALL PLUS ONE AC = CHAR C8TYPED IN 787 788 /CALLS USE ARE -XC8TTYI-XC8CNTR-C8GET-XC8ECH-XC8TTYPE 789 790 / 791 11063 0000 XC8ECH, 0 792 11064 4766 JMS I (XC8TTYI /WAIT FOR CHAR FROM KEYBOARD 793 11065 4765 JMS I (C8GET /RESTORE THE REGISTERS 794 11066 2276 ISZ INMODE /SET INMODE IDENTIFING THIS AS A EXPECTED CHAR 795 11067 4764 JMS I (XC8CNTR /GO CHECK IF IT IS A CONTROL CHAR 796 11070 5663 JMP I XC8ECH /WAS A CONTROL CHAR - CONTINUE RUNNING 797 11071 4277 JMS XC8TYP /NOT A CONTROL CHAR C8PRINT IT 798 11072 3276 DCA INMODE /CLEAR FLAG THAT CHAR EXPECTED 799 11073 1275 TAD C8CHAR /GET CHAR IN AC 800 11074 5663 JMP I XC8ECH /EXIT 801 11075 0000 C8CHAR, 0 802 11076 0000 INMODE, 0 803 804 /********************************************************************** 805 806 /C8TYPE 807 /THIS ROUTINE WILL C8PRINT ON THE CONSOLE OR THE LPT WITH DEVICE CODE 66. 808 / 809 / C8TYPE= JMS XC8TYP 810 811 /EX. JMS XC8TYPE /C8PRNT THE CHAR IN THE AC. 812 / /RETURN CALL PLUS ONE AC =0000 813 /DO NOT CLEAR THE LINK IN THIS ROUTINE NEEDED BYC8OCT 814 815 /CALLS USED ARE -C8CHANG-XC8CNTR-XC8PNT-XC8CRLF-XC8INQU- 816 817 818 11077 0000 XC8TYP, 0 819 11100 3320 DCA PNTBUF /STORE CHAR 820 11101 1321 TAD TTYLPT /CHECK 0=TTY 7777=LPT 821 11102 7640 SZA CLA 822 11103 5312 JMP XDOLPT /DO OUT PUT ON LPT 823 11104 1320 TAD PNTBUF 824 11105 6046 TLS 825 11106 6041 TSF 826 11107 5306 JMP .-1 827 11110 6042 TCF 828 11111 5316 JMP C8BY5 829 11112 1320 XDOLPT, TAD PNTBUF /GET CHAR 830 11113 6666 PSTB PCLF /C8PRNT IT 831 11114 4322 JMS C8HANG /CHECK KEYBOARD FLAG IF HUNG 832 11115 6662 PCLF /CLEAR THE FLAG 833 11116 7600 C8BY5, 7600 CLA /CLEAR THE AC 834 11117 5677 JMP I XC8TYP /EXIT 835 11120 0000 PNTBUF, 0 836 11121 0000 TTYLPT, 0 837 838 839 11122 0000 C8HANG, 0 840 11123 7200 CLA / 841 11124 1316 TAD C8BY5 /GET CONSTANT 7600 842 11125 3320 DCA PNTBUF /PNTBUF IS NOW A COUNTER 843 11126 6661 PSKF /SKIP ON PRINTER DONE 844 11127 7410 SKP /NOT DONE YET 845 11130 5722 JMP I C8HANG /SAW FLAG DONE 846 11131 2345 ISZ C8CONT /FIRST COUNTER FAST ONE 847 11132 5326 JMP .-4 /CHECK IF FLAG SET YET 848 11133 2320 ISZ PNTBUF /MADE 4096 COUNTS ON FAST COUNTER 849 11134 5331 JMP .-3 /KEEP IT UP FOR 5 SEC 850 11135 1764 TAD I (XC8CNTR /GET THE RETURN ADDRESS IN CONTROL 851 11136 3322 DCA C8HANG /SAVE IT IN HANG 852 11137 3321 DCA TTYLPT /ALLOW PRINTING ON TTY 853 11140 4763 JMS I (XC8PNT 854 11141 1146 MESHAN /LPT ERROR 855 11142 4223 JMS XC8CRL 856 11143 4762 JMS I (XC8INQU /PRINT WAITING 857 11144 5722 JMP I C8HANG /CONTINUE TO SAVE ADDRESS 858 11145 0000 C8CONT, 0 /COUNTER FOR TIMER 859 11146 1420 MESHAN, TEXT "LPT ERROR" 11147 2440 11150 0522 11151 2217 11152 2200 860 861 862 863 864 11162 0635 PAGE 11163 0303 11164 0400 11165 0624 11166 0272 11167 1200 11170 1346 11171 1347 11172 1345 11173 0212 11174 0215 11175 0260 11176 0007 11177 7774 865 /******************************************************************* 866 /******************************************************************* 867 868 /THIS ROUTINE WILL CHECK LOCATION 22 THE HARD WARE CONFIG WORD, 869 /TO SEE IF THE CONSOLE BIT 3 (400) IS SET IF SET THEN RETURN 870 /TO CALL PLUS TWO FO A ACTIVE CONSOLE PACKAGE AC=0 871 /IF NOT SET THEN TO CALL PLUS ONE FOR A DEACTIVE CONSOLE PACKAGE. 872 873 874 11200 0000 CHKCLA, 0 875 11201 7200 CLA 876 11202 1022 TAD F1OP2 /GET THE CONTENTS OF LOCATION 22 877 11203 0377 AND (400 /MASK FOR BIT 3 (400 878 11204 7650 SNA CLA / 879 11205 2200 ISZ CHKCLA /ACTIVE CONSOLE PACKAGE RETURN 880 /CALL PLUS ONE (1) FOR ACTIVE 881 11206 5600 JMP I CHKCLA /DEACTIVE CONSOLE PACKAGE RETURN 882 /CALL PLUS TWO (2) 883 884 /C8ERR 885 /THIS ROUTINE WILL DETERMINE WHAT TO DO WHEN A C8ERR IS ENCOUNTERED 886 /WILL CHECK IF CLASSIC SYSTEM, WILL CHECK X8SWIT REGISTERS. 887 / C8ERR= JMS XC8ERR 888 /EX. JMS XC8ERR /GO TO C8ERR CALL IF NOT CONSOL 889 / /RETURN IS CALL PLUS ONE AC =0000 890 891 /CALLS USE ARE -CHKCLA-XC8CRLF-XC8SW-XC8INQU-XC8PNT-XC8OCTA- 892 893 894 11207 0000 XC8ERR, 0 895 11210 6002 IOF 896 11211 3345 DCA ACSAVE /SAVE AC 897 11212 6004 GTF 898 11213 3347 DCA FLSAVE /SAVE THE FLAGS 899 11214 7501 MQA 900 11215 3346 DCA MQSAVE /SAVE THE MQ 901 11216 7340 CLA CLL CMA /SUBTRACT A 1 FOR TRUE LOCATION 902 11217 1207 TAD XC8ERR /GET RETURN LOCATION 903 11220 3344 DCA PCSAVE /SAVE ADD OF C8ERR CALL 904 11221 6201 CDF 0 905 11222 7340 CLA CLL CMA 906 11223 1776 TAD I (CLASIK 907 11224 3316 DCA REALPC /SAVE REAL PC. 908 11225 6211 CDF 10 909 11226 4200 JMS CHKCLA /CHECK LOC.22 BIT 3 CONSOL BIT 910 11227 7410 SKP /ACTIVE CONSOLE PACKAGE 911 11230 5270 JMP NTCLAS /NOT CLASSIC SYSTEM 912 11231 4775 JMS I (C8GET /GET ALL REGISTERS. 913 11232 4774 JMS I (XC8SW /CHECK SWITCH REG FOR BIT THAT INDICATES 914 /NO ERROR MESSAGE 915 11233 0373 SETUP1, AND (0000 /MASK FOR BIT FOR NO ERROR PRINTING 916 /IF THIS ERROR MESSAGE IS TO ALWAYS 917 /BE PRINTED LEAVE AND VALUE AT 0000 918 11234 7640 SZA CLA /SKIP IF BIT IS 0 PRINT ERROR MESSAGE 919 11235 5262 JMP C8DO10 /DO NOT PRINT 920 11236 4772 JMS I (XC8CRLF 921 11237 4771 JMS I (XC8PNT 922 11240 1320 ERRMES /PRINT THE ERROR MESSAGE 923 11241 4771 JMS I (XC8PNT 924 11242 1330 MESPC /PRINT THE PC STATEMENT 925 11243 1316 TAD REALPC 926 11244 4770 JMS I (XC8OCTA /CONVERT 4 DIGIT PC TO ASCII 927 11245 4771 JMS I (XC8PNT 928 11246 1333 MESAC /PRINT THE AC MESS 929 11247 1345 TAD ACSAVE 930 11250 4770 JMS I (XC8OCTA 931 11251 4771 JMS I (XC8PNT 932 11252 1336 MESMQ /PRINT MQ 933 11253 1346 TAD MQSAVE 934 11254 4770 JMS I (XC8OCTA 935 11255 4771 JMS I (XC8PNT 936 11256 1341 MESFL 937 11257 1347 TAD FLSAVE 938 11260 4770 JMS I (XC8OCTA 939 11261 4772 JMS I (XC8CRLF 940 11262 4775 C8DO10, JMS I (C8GET /GET ALL REGISTERS. 941 11263 4774 JMS I (XC8SW /CHECK THE SWITCH REGISTER 942 11264 7610 SKP CLA /SKIP IF BIT 0 SET 943 11265 5300 JMP C8BY2 /LEAVE 944 11266 4767 JMS I (XC8INQ /GO TO THE INQUIRE ROUTINE 945 11267 5300 JMP C8BY2 /LEAVE 946 11270 4775 NTCLAS, JMS I (C8GET /GET ALL REGISTERS. 947 11271 4774 JMS I (XC8SW /CHECK PSEUDO SWITCH REGISTER 948 /CHECK THE C8SWIT REGISTER 949 11272 7610 SKP CLA /SKIP IF HALT 950 11273 5607 JMP I XC8ERR /NO HALT CONTINUE 951 11274 1366 TAD (7402 /CODE FOR HLT 952 11275 3744 DCA I PCSAVE /PUT IT IN CALL LOC. 953 11276 4775 JMS I (C8GET 954 11277 5744 JMP I PCSAVE /EXIT TO CALL AND HALT 955 11300 4775 C8BY2, JMS I (C8GET /GET THE REGISTERS 956 11301 5607 JMP I XC8ERR 957 11302 7402 ROUINS, HLT /PUT INSTRUCTIONS TO EXECUTE HERE!!!! 958 11303 7000 NOP 959 11304 3317 DCA MYAC /SAVE AC. 960 11305 6201 CDF 0 961 11306 1020 TAD F1SWR 962 11307 3765 DCA I (SWR /MOVE SWITCHES DOWN. 963 11310 1776 TAD I (CLASIK 964 11311 3315 DCA CLRTRN 965 11312 1317 TAD MYAC 966 11313 6202 CIF 00 967 11314 5715 JMP I CLRTRN 968 11315 0000 CLRTRN, 0 969 11316 0000 REALPC, 0 970 11317 0000 MYAC, 0 971 11320 0410 ERRMES, TEXT "DHRKAE FAILED " 11321 2213 11322 0105 11323 4040 11324 0601 11325 1114 11326 0504 11327 4000 972 11330 4040 MESPC, TEXT " PC:" 11331 2003 11332 7200 973 11333 4040 MESAC, TEXT " AC:" 11334 0103 11335 7200 974 11336 4040 MESMQ, TEXT " MQ:" 11337 1521 11340 7200 975 11341 4040 MESFL, TEXT " FL:" 11342 0614 11343 7200 976 11344 7777 PCSAVE, 7777 977 11345 7777 ACSAVE, 7777 978 11346 7777 MQSAVE, 7777 979 11347 7777 FLSAVE, 7777 980 / 981 982 983 984 11365 0020 FIELD 0 11366 7402 11367 0635 11370 1000 11371 0303 11372 1023 11373 0000 11374 0262 11375 0624 11376 5732 11377 0400 985 / 986 /ALL KNOWN HLTS. 987 / 988 / 989 00200 6031 ERHLT1 /UNDEFINED INTERRUPT 990 00201 6142 ERHLT2 /SKIP TRAP FOR DCLR 991 00202 6115 ERHLT3 /SKIP TRAP FOR DLAG 992 00203 6104 ERHLT4 /SKIP TRAP FOR DLCA 993 00204 6070 ERHLT5 /SKIP TRAP FOR DRST 994 00205 6126 ERHLT6 /SKIP TRAP FOR DLDC 995 00206 6151 ERHLT7 /SKIP TRAP FOR DMAN 996 00207 6726 ERHLT9 /RECOVERABLE ERROR HALT 997 00210 5716 ENDHLT /END OF TEST HALT 998 00211 7014 STPHLT /HALT FROM SWR4=1 999 00212 7126 CHNHLT /IOT CHANGE HALT 1000 / 1001 DSKP=6741 /SKIP ON TRANSFER DONE OR ERROR 1002 DCLR=6742 /CLEAR DISK CONTROL LOGIC 1003 DLAG=6743 /LOAD ADDRESS AND GO 1004 DLCA=6744 /LOAD CURRENT ADDRESS 1005 DRST=6745 /READ STATUS REGISTER 1006 DLDC=6746 /LOAD COMMAND REGISTER 1007 DMAN=6747 /LOAD MAINTENANCE 1008 / 1009 SET=JMS I XSET 1010 TICK=JMS I XTICK 1011 AERRO=JMS I XAERRO 1012 APT8A=JMS I XAPT8A 1013 LAS=JMS I XLAS 1014 CLASIC=JMS I XCLAS 1015 IOTCHN=JMP I XCHANG 1016 MANUAL=JMP I MANTST 1017 ENMAN1=JMS I XMAIN1 1018 ENMAN2=JMS I XMAIN2 1019 NERROR=JMS I XNERRO 1020 ERROR=JMS I XERRO 1021 IONWAT=JMS I XIONWT 1022 ACCMP1=JMS I XCOMP1 1023 ACCMP2=JMS I XCOMP2 1024 RDSTAT=JMS I XRDST 1025 RDCMD=JMS I XRDCM 1026 RDADD=JMS I XRDAD 1027 LDBUF=JMS I XUPPER 1028 LDADD=JMS I XLDAD 1029 DSKSKP=JMS I XSDKP 1030 LDCMD=JMS I XLDCM 1031 LDCUR=JMS I XLDCA 1032 CLRALL=JMS I XCLDR 1033 RDCRC=JMS I XRDCR 1034 LDMAN=JMS I XLDMN 1035 RDBUF=JMS I XRDBF 1036 PRNTER=JMS I XPRN 1037 OCTEL=JMS I XFROCT 1038 TWOCT=JMS I XTOCT 1039 TYPE=JMS I XPRINT 1040 CRLF=JMS I XCRLF 1041 / 1042 *0 1043 / 1044 00000 0305 305 /REV E 1045 00001 5001 5001 1046 00002 0002 0002 1047 00003 0003 0003 1048 / 1049 00004 5764 XLAS, MYLAS 1050 00005 7040 XSET, SETUP 1051 00006 5732 XCLAS, CLASIK 1052 00007 0000 SAVEND, 0 1053 / 1054 *10 1055 / 1056 00010 0000 AUTO10, 0 1057 / 1058 *20 1059 / 1060 00020 0000 SWR, 0 1061 00021 4000 OP1, 4000 1062 00022 0000 OP2, 0 1063 / 1064 00023 7200 XAPT8A, APT8 1065 00024 7220 XTICK, KTICK 1066 00025 7241 XAERRO, WAERRO 1067 00026 7101 XCHANG, CHANG 1068 00027 7055 XUPPER, UPPER 1069 00030 5723 MANTST, MANUL 1070 00031 6011 INTRQ, INTADD 1071 00032 5670 XEND, ENDTST 1072 00033 0210 THSFLD, PRSFLD 1073 00034 6463 XPRINT, PRINT 1074 00035 7000 XNERRO, NERRO 1075 00036 6600 XERRO, ERRO 1076 00037 6000 XIONWT, IONWT 1077 00040 6033 XCOMP1, COMP1 1078 00041 6044 XCOMP2, COMP2 1079 00042 6063 XRDST, RDST 1080 00043 6240 XRDCM, RDCM 1081 00044 6256 XMAIN1, MAIN1 1082 00045 6760 XMAIN2, MAIN2 1083 00046 6200 XRDAD, RDAD 1084 00047 6130 XSDKP, SDKP 1085 00050 6117 XLDCM, LDCM 1086 00051 6075 XLDCA, LDCA 1087 00052 6106 XLDAD, LDAD 1088 00053 6135 XCLDR, CLDR 1089 00054 6263 XRDCR, RDCR 1090 00055 6144 XLDMN, LDMN 1091 00056 6226 XRDBF, RDBF 1092 00057 6423 XPRN, PRN 1093 00060 6400 XFROCT, FROCT 1094 00061 6314 XTOCT, TOCT 1095 00062 6331 XCRLF, UPONE 1096 00063 0260 K0260, 0260 1097 00064 0000 K0000, 0000 1098 00065 0001 K0001, 0001 1099 00066 0002 K0002, 0002 1100 00067 0003 K0003, 0003 1101 00070 0004 K0004, 0004 1102 00071 0006 K0006, 0006 1103 00072 0007 K0007, 0007 1104 00073 0010 K0010, 0010 1105 00074 0020 K0020, 0020 1106 00075 0037 K0037, 0037 1107 00076 0040 K0040, 0040 1108 00077 0100 K0100, 0100 1109 00100 0200 K0200, 0200 1110 00101 0207 K0207, 0207 1111 00102 0400 K0400, 0400 1112 00103 1000 K1000, 1000 1113 00104 2000 K2000, 2000 1114 00105 3777 K3777, 3777 1115 00106 4000 K4000, 4000 1116 00107 7000 K7000, 7000 1117 00110 7776 K7776, 7776 1118 00111 7775 K7775, 7775 1119 00112 7700 K7700, 7700 1120 00113 7740 K7740, 7740 1121 00114 0070 K0070, 0070 1122 00115 0077 K0077, 0077 1123 00116 0377 K0377, 0377 1124 00117 0177 K0177, 0177 1125 00120 2525 K2525, 2525 1126 00121 5252 K5252, 5252 1127 00122 3737 K3737, 3737 1128 00123 7717 K7717, 7717 1129 00124 4100 K4100, 4100 1130 00125 7600 K7600, 7600 1131 00126 5000 K5000, 5000 1132 00127 5777 K5777, 5777 1133 00130 7774 K7774, 7774 1134 00131 7771 K7771, 7771 1135 00132 7777 K7777, 7777 1136 / 1137 DECIMAL 1138 / 1139 00133 7774 M4, -4 1140 00134 7773 M5, -5 1141 00135 7771 M7, -7 1142 00136 7764 M12, -12 1143 00137 7760 M16, -16 1144 00140 7720 M48, -48 1145 00141 7600 M128, -128 1146 00142 7501 M191, -191 1147 00143 7401 M255, -255 1148 00144 7324 M300, -300 1149 / 1150 OCTAL 1151 / 1152 00145 0017 K0017, 0017 1153 00146 0215 K0215, 0215 1154 00147 0212 K0212, 0212 1155 00150 6201 KCDF, CDF 1156 00151 6244 KRMF, RMF 1157 00152 3741 MTS85, -TST85-1 1158 00153 0000 REG1, 0 1159 00154 0000 REG2, 0 1160 00155 0000 SBCNT1, 0 1161 00156 0000 TCNTR1, 0 1162 00157 0000 TCNTR2, 0 1163 00160 0000 TCNTR3, 0 1164 00161 0000 TCNTR4, 0 1165 / 1166 00162 0000 GDREG1, 0 1167 00163 0000 GDREG2, 0 1168 00164 0000 CRREG1, 0 1169 00165 0000 CRREG2, 0 1170 00166 0000 STREG, 0 1171 00167 0000 DBREG, 0 1172 00170 0000 CMREG, 0 1173 00171 0000 DAREG, 0 1174 00172 0000 ADREG, 0 1175 00173 0000 DTREG, 0 1176 00174 0000 ACREG, 0 1177 00175 0000 HOMEMA, 0 1178 00176 0000 FLDMAX, 0 1179 00177 2200 STCON, 2200 1180 / 1181 *0200 1182 / 1183 /SETUP POINTERS FOR AMOUNT OF EXTENDED 1184 /BANKS OF MEMORY, INTERRUPT SERVICE, CURRENT 1185 /FIELD , AND TESTS FOR CLASSIC PACKAGE OR APT SYSTEM. 1186 /IF CONSOLE IS ACTIVE APT FUNCTIONS OR NOP. 1187 1188 / 1189 00200 5203 BGN, JMP .+3 /RUN DISKLESS 1190 00201 5430 MANUAL /TO MANUAL SCOPE TEST 1191 00202 5426 IOTCHN /TO IOT CHANGE ROUTINE 1192 00203 6224 RIF 1193 00204 3175 DCA HOMEMA 1194 00205 1175 TAD HOMEMA 1195 00206 1150 TAD KCDF /MAKE HOMEDF 1196 00207 3210 DCA PRSFLD 1197 00210 7402 PRSFLD, HLT /MAKE DF=IF 1198 00211 4405 SET /SETUP FIELD 0 1199 00212 1176 TAD FLDMAX /GET FIRST PASS POINTER 1200 00213 7640 SZA CLA /IS IT FIRST PASS 1201 00214 5217 JMP .+3 /NO, MUST BE A RESTART 1202 00215 1532 TAD I K7777 /GET LAST LOCATION 1203 00216 3007 DCA SAVEND /SAVE IT FOR A RESTORE 1204 00217 4423 APT8A /NOP CONSOLE IF ON APT8A 1205 00220 4406 CLASIC /CHECK FOR CONSOLE CLASSIC 1206 00221 4431 C8SWIT /CHECK FOR SWITCH SR=. 1207 00222 7000 NOP 1208 00223 4404 LAS 1209 00224 0072 AND K0007 /MASK 9-11 1210 00225 7040 CMA 1211 00226 3176 DCA FLDMAX /SAVE AMOUNT OF EXTENDED MEMORY 1212 00227 1022 TAD OP2 1213 00230 0102 AND K0400 1214 00231 7640 SZA CLA /ON CLASSIC. 1215 00232 6007 CAF /YES, THEN CLEAR ALL FLAGS. 1216 / 1217 /VERIFY THAT THE DISK MOTOR IS OFF. THE 1218 /STATUS REGISTER SHOULD ONLY CONTAIN NOT READY TO 1219 /SEEK, READ, OR WRITE AND NOT DISK FILE READY. 1220 /INITIALIZE SHOULD HAVE CLEARED ALL OTHER BITS 1221 / 1222 1223 00233 3153 DCA REG1 1224 00234 1177 TAD STCON /GET EXPECTED STATUS 1225 00235 3163 DCA GDREG2 /SETUP TEST HANDLER 1226 / 1227 00236 1153 TST0, TAD REG1 /GET AC VALUE 1228 00237 4442 RDSTAT /READ STATUS REGISTER 1229 00240 4440 ACCMP1 /CHECK RESULTS 1230 00241 4435 NERROR /AC O.K. 4096 LOOPS 1231 00242 4436 ERROR /ERROR "INITIALIZE" CLEAR STATUS 1232 /REGISTER FAILED 1233 00243 0236 TST0 /SCOPE LOOP POINTER 1234 00244 5000 5000 /TEXT POINTER 1235 / 1236 /VERIFY THAT SKIP CONDITIONS WERE CLEARED 1237 /BY "INITIALIZE" ON START OF TEST. 1238 / 1239 00245 4447 TST1, DSKSKP /ISSUE "DSKP" IOT 1240 00246 4435 NERROR /DSKP O.K. 4096 LOOPS 1241 00247 4436 ERROR /ERROR, "INITIALIZE" CLEAR 1242 /SKIP CONDITIONS 1243 00250 0245 TST1 /SCOPE LOOP POINTER 1244 00251 0006 0006 /TEXT POINTER 1245 / 1246 /VERIFY THAT INTERRUPT REQUESTS WERE 1247 /CLEARED BY "INITIALIZE" AT START OF TEST 1248 / 1249 00252 4437 TST2, IONWAT /GO WAIT FOR INT. 1250 00253 4435 NERROR /INT. O.K. 4096 LOOPS 1251 00254 4436 ERROR /ERROR "INITIALIZE" CLEAR 1252 /INT. CONDITION 1253 00255 0252 TST2 /SCOPE LOOP POINTER 1254 00256 0007 0007 /TEXT POINTER 1255 / 1256 /VERIFY THAT COMMAND REGISTER WAS CLEARED 1257 /BY "INITIALIZE" AT START OF TEST. READ COMMAND 1258 /REGISTER WITH "DMAN" (MAINTENANCE IOT) 1259 / 1260 00257 3163 DCA GDREG2 /SETUP COMPARE REGISTER 1261 00260 4443 TST3, RDCMD /READ COMMAND REGISTER 1262 00261 7650 SNA CLA /AC SHOULD BE 0 1263 00262 4435 NERROR /AC O.K. 4096 LOOPS 1264 00263 4436 ERROR /ERROR, "INITIALIZE" CLEAR 1265 /COMMAND REGISTER 1266 00264 0260 TST3 /SCOPE LOOK POINTER 1267 00265 4201 4201 /TEXT POINTER 1268 / 1269 /VERIFY THAT ALL DRIVES ON CONTROL ARE OFF. 1270 /THE STATUS SHOULD BE 2200 WHEN DRIVES ARE SELECTED. 1271 / 1272 00266 1177 TST4, TAD STCON /EXPECTED STATUS 1273 00267 3163 DCA GDREG2 /SETUP COMPARE REGISTER 1274 00270 7301 CLA CLL IAC /ENABLE CLEAR CONTROL 1275 00271 4453 CLRALL /DCLR "CLR ALL" 1276 00272 1153 TAD REG1 /GET AC VALUE 1277 00273 4450 LDCMD /LOAD COMMAND 1278 00274 4442 RDSTAT /READ STATUS 1279 00275 4440 ACCMP1 /CHECK RESULTS 1280 00276 4435 NERROR /O.K. 4096 LOOPS 1281 00277 4436 ERROR /ERROR, STATUS 1282 00300 0266 TST4 /SCOPE LOOP POINTER 1283 00301 5000 5000 /TEXT POINTER 1284 / 1285 /VERIFY THAT IOT "DSKP" DOES NOT AFFECT 1286 /AC REGISTER. TRY ALL COMBINATIONS IN AC. 1287 / 1288 00302 1153 TST5, TAD REG1 /GET AC VALUE 1289 00303 3163 DCA GDREG2 /SETUP COMPARE REGISTER 1290 00304 1153 TAD REG1 1291 00305 4447 DSKSKP /ISSUE "DSKP" IOT 1292 00306 7000 NOP 1293 00307 4440 ACCMP1 /CHECK AC, COMPARE TO GDREG2 1294 00310 4435 NERROR /AC O.K. 4096 LOOPS 1295 00311 4436 ERROR /ERROR, "DSKP" CHANGED AC. 1296 00312 0302 TST5 /SCOPE LOOP POINTER 1297 00313 4010 4010 /TEXT POINTER 1298 / 1299 /VERIFY THAT "DLCA" LOAD CURRENT ADDRESS 1300 /REGISTER CLEARS THE AC. TRY ALL COMBINATIONS IN AC 1301 / 1302 00314 3163 DCA GDREG2 /SETUP COMPARE REGISTER 1303 00315 1153 TST6, TAD REG1 /GET AC VALUE 1304 00316 4451 LDCUR /LOAD CURRENT ADDRESS "DLCA" 1305 00317 4440 ACCMP1 /CHECK AC. COMPARE TO GDREG2 1306 00320 4435 NERROR /AC O.K. 4096 LOOPS 1307 00321 4436 ERROR /ERROR, DLCA CLEAR AC 1308 00322 0315 TST6 /SCOPE LOOP POINTER 1309 00323 4010 4010 /TEXT POINTER 1310 / 1311 /VERIFY THAT "DLDC" LOAD COMMAND REGISTER 1312 /CLEARS THE AC. TRY ALL COMBINATIONS IN AC. 1313 / 1314 00324 1153 TST7, TAD REG1 /GET AC VALUE 1315 00325 4450 LDCMD /"DLDC" LOAD COMMAND REGISTER 1316 00326 4440 ACCMP1 /CHECK AC. COMPARE TO GDREG2 1317 00327 4435 NERROR /AC O.K. 4096 LOOPS 1318 00330 4436 ERROR /ERROR, DLDC CLEAR AC 1319 00331 0324 TST7 /SCOPE LOOP POINTER 1320 00332 4010 4010 /TEXT POINTER 1321 / 1322 /VERIFY THAT "DLAG" CLEARS THE AC REGISTER. 1323 /TRY ALL COMBINATIONS IN AC. 1324 / 1325 00333 7301 TST8, CLA CLL IAC 1326 00334 4453 CLRALL /CLEAR CONTROL 1327 00335 1154 TAD REG2 /GET DATA 1328 00336 4452 LDADD /LOAD DISK ADDRESS 1329 00337 4440 ACCMP1 /CHECK RESULTS 1330 00340 4435 NERROR /O.K. 4096 LOOPS 1331 00341 4436 ERROR /ERROR, DLAG, CLEAR AC 1332 00342 0333 TST8 /SCOPE LOOP POINTER 1333 00343 4010 4010 /TEXT POINTER 1334 / 1335 /VERIFY THAT IOT "DCLR" CLEARS THE AC. 1336 /TRY ALL COMBINATIONS IN AC. 1337 / 1338 00344 1153 TST9, TAD REG1 1339 00345 4453 CLRALL /DCLR "CLR ALL" 1340 00346 4440 ACCMP1 /CHECK AC, COMPARE TO GDREG2 1341 00347 4435 NERROR /AC O.K. 4096 LOOPS 1342 00350 4436 ERROR /ERROR, DCLR CLEAR AC 1343 00351 0344 TST9 /SCOPE LOOP POINTER 1344 00352 4010 4010 /TEXT POINTER 1345 / 1346 /VERIFY THAT THE COMMAND REGISTER CAN BE LOADED 1347 /AND SHIFTED INTO THE LOWER DATA BUFFER WITH 1348 /THE MAINTENANCE IOT. USE DATA PATTERN 0000 + 7777. 1349 / 1350 00353 7301 TST10, CLA CLL IAC 1351 00354 4453 CLRALL /CDLR "CLR ALL" 1352 00355 1153 TAD REG1 1353 00356 7110 CLL RAR 1354 00357 7630 SZL CLA /DATA 7777 IF LINK IS SET 1355 00360 7240 CLA CMA 1356 00361 3163 DCA GDREG2 /SET UP COMPARE REGISTER 1357 00362 1163 TAD GDREG2 1358 00363 7040 CMA 1359 00364 4450 LDCMD /SET COMMAND TO OPPOSITE 1360 00365 1163 TAD GDREG2 1361 00366 4450 LDCMD /SET COMMAND TO VALUE EXPECTED 1362 00367 4443 RDCMD /READ COMMAND REGISTER 1363 00370 4440 ACCMP1 /CHECK RESULTS 1364 00371 4435 NERROR /O.K. 4096 LOOPS 1365 00372 4436 ERROR /ERROR, COMMAND REGISTER 1366 00373 0353 TST10 /SCOPE LOOP POINTER 1367 00374 4201 4201 /TEXT POINTER 1368 / 1369 /VERIFY THAT THE COMMAND REGISTER CAN BE LOADED 1370 /AND SHIFTED INTO THE LOWER DATA BUFFER WITH 1371 /THE MAINTENANCE IOT. USE DATA PATTERN 2525 + 5252 1372 / 1373 00375 7301 TST11, CLA CLL IAC 1374 00376 4453 CLRALL /DCLR "CLR ALL" 1375 00377 1153 TAD REG1 1376 00400 7110 CLL RAR 1377 00401 7630 SZL CLA /DATA 5252 IF LINK IS SET 1378 00402 1120 TAD K2525 1379 00403 1120 TAD K2525 1380 00404 3163 DCA GDREG2 /SETUP COMPARE REGISTER 1381 00405 1163 TAD GDREG2 1382 00406 7040 CMA 1383 00407 4450 LDCMD /SET COMMAND TO OPPOSITE 1384 00410 1163 TAD GDREG2 1385 00411 4450 LDCMD /SET COMMAND TO VALUE EXPECTED 1386 00412 4443 RDCMD /READ COMMAND REGISTER 1387 00413 4440 ACCMP1 /CHECK RESULTS 1388 00414 4435 NERROR /O.K. 4096 LOOPS 1389 00415 4436 ERROR /ERROR, COMMAND REGISTER 1390 00416 0375 TST11 /SCOPE LOOP POINTER 1391 00417 4201 4201 /TEXT POINTER 1392 / 1393 /VERIFY THAT THE COMMAND REGISTER 1394 /BE LOADED AND THEN SHIFTED INTO THE LOWER 1395 /DATA BUFFER. TRY ALL COMBINATIONS. 1396 / 1397 00420 1154 TST12, TAD REG2 /GET AC VALUE 1398 00421 4450 LDCMD /LOAD COMMAND REGISTER 1399 00422 1153 TAD REG1 1400 00423 3163 DCA GDREG2 /SETUP COMPARE REGISTER 1401 00424 1153 TAD REG1 1402 00425 4450 LDCMD /LOAD COMMAND REGISTER 1403 00426 4443 RDCMD /READ COMMAND REGISTER 1404 00427 4440 ACCMP1 /CHECK AC, COMPARE TO DGREG2 1405 00430 4435 NERROR /AC O.K. 4096 LOOPS 1406 00431 4436 ERROR /ERROR, LOAD OR READ 1407 /COMMAND REGISTER 1408 00432 0420 TST12 /SCOPE LOOP POINTER 1409 00433 4201 4201 /TEXT POINTER 1410 / 1411 /VERIFY THAT DCLR DOES NOT CLEAR COMMAND 1412 /REGISTER WHEN AC10=0 AND AC11=0 1413 / 1414 00434 1153 TST13, TAD REG1 1415 00435 4450 LDCMD /LOAD COMMAND REGISTER 1416 00436 1154 TAD REG2 1417 00437 3163 DCA GDREG2 /SETUP COMPARE REGISTER 1418 00440 1154 TAD REG2 1419 00441 4450 LDCMD /LOAD COMMAND REGISTER 1420 00442 4453 CLRALL /DCLR "CLR ALL" 1421 00443 4443 RDCMD /READ COMMAND REGISTER 1422 00444 4440 ACCMP1 /CHECK AC, COMPARE TO GDREG2 1423 00445 4435 NERROR /AC O.K. 4096 LOOPS 1424 00446 4436 ERROR /ERROR, DCLR CLEAR COMMAND 1425 /REGISTER WHEN AC10=0 + AC11=0 1426 00447 0434 TST13 /SCOPE LOOP POINTER 1427 00450 4201 4201 1428 / 1429 /VERIFY THAT DCLR DOES CLEAR COMMAND 1430 /REGISTER WHEN AC10=0 AND AC11=1 1431 / 1432 00451 3163 DCA GDREG2 /SETUP COMARE REGISTER 1433 00452 1153 TST14, TAD REG1 1434 00453 4450 LDCMD /LOAD COMMAND REGISTER 1435 00454 7301 CLA CLL IAC /ENABLE CLEAR CONTROL 1436 00455 4453 CLRALL /DCLR "CLR ALL" 1437 00456 4443 RDCMD /READ COMMAND REGISTER 1438 00457 7650 SNA CLA /CHECK AC, SHOULD EQUAL 0 1439 00460 4435 NERROR /AC O.K. LOOP 4096 1440 00461 4436 ERROR /ERROR, DCLR CLEAR COMMAND 1441 /REGISTER WHEN AC10=0+AC11=1 1442 00462 0452 TST14 /SCOPE LOOP POINTER 1443 00463 4201 4201 /TEXT POINTER 1444 / 1445 /VERIFY THAT DLAG DOES LOAD THE SURFACE AND SECTOR 1446 /REGISTER. USE DATA PATTERN 00 + 37. 1447 / 1448 00464 7301 TST15, CLA CLL IAC /ENABLE CLEAR CONTROL 1449 00465 4453 CLRALL /CLEAR CONTROL 1450 00466 1136 TAD M12 1451 00467 3156 DCA TCNTR1 /SETUP 12 BIT SHIFT COUNTER 1452 00470 1153 TAD REG1 1453 00471 7110 CLL RAR 1454 00472 7630 SZL CLA /DATA 00 + 37? 1455 00473 7340 CLA CLL CMA /37! 1456 00474 4452 LDADD /LOAD DISK ADDRESS "DLAG" 1457 00475 1171 TAD DAREG 1458 00476 0075 AND K0037 /MASK EXPECTED VALUE 1459 00477 3163 DCA GDREG2 /SETUP COMPARE VALUE 1460 00500 4445 ENMAN2 /ENTER MAINTENANCE 1461 00501 1100 TAD K0200 /ENABLE SHIFT LOWER BUFFER 1462 00502 4455 LDMAN /LOAD MAINTENANCE 1463 00503 2156 ISZ TCNTR1 /COUNT 12 SHIFTS 1464 00504 5302 JMP .-2 1465 00505 7300 CLA CLL 1466 00506 1074 TAD K0020 /ENABLE READ LOWER BUFFER 1467 00507 4455 LDMAN /LOAD MAINTENANCE 1468 00510 3171 DCA DAREG /SAVE VALUE FOUND 1469 00511 1171 TAD DAREG 1470 00512 4440 ACCMP1 /CHECK RESULTS 1471 00513 4435 NERROR /O.K. 4096 LOOPS 1472 00514 4436 ERROR /ERROR, SURFACE AND SECTOR SHIFT 1473 00515 0464 TST15 /SCOPE LOOP POINTER 1474 00516 4102 4102 /TEXT POINTER 1475 / 1476 /VERIFY THAT DLAG LOADS THE SURFACE AND 1477 /SECTOR REGISTER. USE DATA PATTERN ALL 1478 /COMBINATIONS. 1479 / 1480 00517 7301 TST16, CLA CLL IAC /ENABLE CLEAR CONTROL 1481 00520 4453 CLRALL /CLEAR CONTROL 1482 00521 1136 TAD M12 1483 00522 3156 DCA TCNTR1 /SETUP 12 BIT SHIFT COUNTER 1484 00523 1153 TAD REG1 1485 00524 0075 AND K0037 /MASK EXPECTED VALUE 1486 00525 3163 DCA GDREG2 /SETUP COMPARE REGISTER 1487 00526 1153 TAD REG1 1488 00527 4452 LDADD /LOAD DISK ADDRESS "DLAG" 1489 00530 4445 ENMAN2 /ENTER MAINTENANCE 1490 00531 1100 TAD K0200 /ENABLE SHIFT LOWER BUFFER 1491 00532 4455 LDMAN /LOAD MAINTENANCE 1492 00533 2156 ISZ TCNTR1 /COUNT 12 SHIFTS 1493 00534 5332 JMP .-2 1494 00535 7300 CLA CLL 1495 00536 1074 TAD K0020 /ENABLE READ LOWER BUFFER 1496 00537 4455 LDMAN /LOAD MAINTENANCE 1497 00540 3171 DCA DAREG /SAVE VALUE FOUND 1498 00541 1171 TAD DAREG 1499 00542 4440 ACCMP1 /CHECK RESULTS 1500 00543 4435 NERROR /O.K. 4096 LOOPS 1501 00544 4436 ERROR /ERROR, SURFACE AND SECTOR SHIFT 1502 00545 0517 TST16 /SCOPE LOOP POINTER 1503 00546 4102 4102 /TEXT POINTER 1504 / 1505 /VERIFY THAT THE DISK ADDRESS REGISTER CAN BE LOADED 1506 /AND SHIFTED TO LOWER DATA BUFFER WITH THE MAINTENANCE 1507 /IOT. USE DATA PATTERN 0000 + 7777 1508 /SHIFT THE SURFACE AND SECTOR FROM THE SURFACE AND SECTOR 1509 /REGISTER. SHIF THE LOWER CYLINDER BITS FROM THE CRC REGISTER. 1510 / 1511 00547 7301 TST17, CLA CLL IAC 1512 00550 4453 CLRALL /DCLR "CLR ALL" 1513 00551 1153 TAD REG1 1514 00552 7110 CLL RAR 1515 00553 7630 SZL CLA /USE DATA 7777 IF LINK IS SET 1516 00554 7240 CLA CMA 1517 00555 3163 DCA GDREG2 /SETUP COMPARE REGISTER 1518 00556 1163 TAD GDREG2 1519 00557 7040 CMA 1520 00560 4452 LDADD /SET DISK ADDRESS TO OPPOSITE 1521 00561 1163 TAD GDREG2 1522 00562 4452 LDADD /SET DISK ADDRESS TO EXPECTED 1523 00563 4446 RDADD /READ DISK ADDRESS 1524 00564 4440 ACCMP1 /CHECK RESULTS 1525 00565 4435 NERROR /O.K. 4096 LOOPS 1526 00566 4436 ERROR /ERROR, DISK ADDRESS REGISTER 1527 00567 0547 TST17 /SCOPE LOOP POINTER 1528 00570 4102 4102 /TEXT POINTER 1529 / 1530 /VERIFY THAT THE DISK ADDRESS REGISTER CAN BE LOADED 1531 /AND SHIFTED TO LOWER DATA BUFFER WITH THE MAINTENANCE 1532 /IOT. USE DATA PATTERN 2525 + 5252. 1533 /SHIFT THE SURFACE AND SECTOR FROM THE SURFACE AND SECTOR 1534 /REGISTER. SHIFT THE LOWER CYLINDER BITS FROM THE CRC REGISTER. 1535 / 1536 00571 7301 TST18, CLA CLL IAC 1537 00572 4453 CLRALL /DCLR "CLR ALL" 1538 00573 1153 TAD REG1 1539 00574 7110 CLL RAR 1540 00575 7630 SZL CLA /USE DATA 5252 IF LINK IS SET 1541 00576 1120 TAD K2525 1542 00577 1120 TAD K2525 1543 00600 3163 DCA GDREG2 /SETUP COMPARE REGISTER 1544 00601 1163 TAD GDREG2 1545 00602 7040 CMA 1546 00603 4452 LDADD /SET DISK ADDRESS TO OPPOSITE 1547 00604 1163 TAD GDREG2 1548 00605 4452 LDADD /SET DISK ADDRESS TO EXPECTED 1549 00606 4446 RDADD /READ DISK ADDRESS 1550 00607 4440 ACCMP1 /CHECK RESULTS 1551 00610 4435 NERROR /O.K. 4096 LOOPS 1552 00611 4436 ERROR /ERROR, DISK ADDRESS REGISTER 1553 00612 0571 TST18 /SCOPE LOOP POINTER 1554 00613 4102 4102 /TEXT POINTER 1555 / 1556 /VERIFY THAT THE DISK ADDRESS REGISTER 1557 /CAN BE LOADED AND SHIFTED INTO THE LOWER 1558 /DATA BUFFER. TRY ALL COMBINATIONS IN AC 1559 /SHIFT THE SURFACE AND SECTOR FROM THE SURFACE AND SECTOR 1560 /REGISTER. SHIFT THE LOWER CYLINDER BITS FROM THE CRC REGISTER. 1561 / 1562 00614 1153 TST19, TAD REG1 /GET AC VALUE 1563 00615 3163 DCA GDREG2 /SET UP COMPARE REGISTER 1564 00616 1153 TAD REG1 1565 00617 4452 LDADD /LOAD DISK ADDRESS REGISTER 1566 00620 4446 RDADD /READ DISK ADDRESS REGISTER 1567 00621 4440 ACCMP1 /CHECK AC, COMPARE TO GDREG2 1568 00622 4435 NERROR /AC O.K. LOOP 4096 TIMES 1569 00623 4436 ERROR /ERROR, LOAD OR READ DISK 1570 /ADDRESS REGISTER 1571 00624 0614 TST19 /SCOPE LOOP POINTER 1572 00625 4102 4102 /TEXT POINTER 1573 / 1574 /VERIFY THAT DCLR DOES NOT AFFECT THE SURFACE 1575 /AND SECTOR WHEN AC10=0 + AC11=0 1576 / 1577 00626 1153 TST20, TAD REG1 /GET AC VALUE 1578 00627 3163 DCA GDREG2 /SETUP COMPARE REGISTER 1579 00630 1154 TAD REG2 /AC VALUE, COMPLEMENT OF REG1 1580 00631 4452 LDADD /LOAD DISK ADDRESS 1581 00632 1153 TAD REG1 1582 00633 4452 LDADD /LOAD DISK ADDRESS 1583 00634 4453 CLRALL /DCLR "CLR ALL" 1584 00635 4446 RDADD /READ DISK ADDRESS 1585 00636 4440 ACCMP1 /CHECK AC, COMPARE TO GDREG2 1586 00637 4435 NERROR /AX O,K, LOOP 4096 TIMES 1587 00640 4436 ERROR /ERROR, LOAD OR READ DISK 1588 /ADDRESS OR DCLR CLEAR 1589 00641 0626 TST20 /SCOPE LOOP POINTER 1590 00642 4102 4102 /TEXT POINTER 1591 / 1592 /VERIFY THAT "DCLR" DOESN'T CLEAR SURFACE AND SECTOR 1593 /REGISTERS WHEN A10=0 + A11=1 1594 / 1595 00643 1153 TST21, TAD REG1 /GET AC VALUE 1596 00644 3163 DCA GDREG2 /SETUP COMPARE REGISTER 1597 00645 1153 TAD REG1 1598 00646 4452 LDADD /LOAD DISK ADDRESS 1599 00647 7301 CLA CLL IAC /ENABLE "CLR ALL" BIT 1600 00650 4453 CLRALL /DCLR "CLR ALL" 1601 00651 4446 RDADD /READ DISK ADDRESS 1602 00652 4440 ACCMP1 /CHECK RESULTS 1603 00653 4435 NERROR /AC O.K. LOOP 4096 1604 00654 4436 ERROR /ERROR, LOAD, READ, OR CLEAR 1605 /DISK ADDRESS 1606 00655 0643 TST21 /SCOPE LOOP POINTER 1607 00656 4102 4102 /TEXT POINTER 1608 / 1609 /VERIFY THAT THE CRC CAN BE LOADED BY "DLAG" 1610 /AND "DLDC". USE DATA PATTERN 0000 + 7777. 1611 /THIS WILL VERIFY THAT THE CRC CAN BE LOADED 1612 /BY THE EXTENDED CYLINDER BIT IN THE COMMAND REGISTER 1613 /BY THE "DLAG" IOT. 1614 / 1615 00657 7301 TST22, CLA CLL IAC 1616 00660 4453 CLRALL /DCLR 1617 00661 1153 TAD REG1 1618 00662 7110 CLL RAR 1619 00663 7630 SZL CLA /USE DATA 7777 IF LINK IS SET 1620 00664 7240 CLA CMA 1621 00665 0113 AND K7740 1622 00666 3163 DCA GDREG2 /SET UP COMPARE # 1 1623 00667 7004 RAL /LINK FOR EXTENDED BIT 1624 00670 3162 DCA GDREG1 /SETUP COMPARE REGISTER 1625 00671 1162 TAD GDREG1 /GET DATA 1626 00672 4450 LDCMD /LOAD CRC 1627 00673 1163 TAD GDREG2 1628 00674 4452 LDADD /LOAD CRC 1629 00675 4454 RDCRC /READ CRC 1630 00676 4441 ACCMP2 /CHECK RESULTS 1631 00677 4435 NERROR /O.K. 4096 LOOPS 1632 00700 4436 ERROR /ERROR, CRC REGISTER 1633 00701 0657 TST22 /SCOPE LOOP POINTER 1634 00702 6004 6004 /TEXT POINTER 1635 / 1636 /VERIFY THAT THE CRC CAN BE LOADED BY "DLAG" 1637 /AND "DLDC". USE DATA PATTERN 2525 + 5252. 1638 /THIS WILL VERIFY THAT THE CRC CAN BE LOADED 1639 /BY THE EXTENDED CYLINDER BIT IN THE COMMAND REGISTER 1640 /BY THE "DLAG" IOT. 1641 / 1642 00703 7301 TST23, CLA CLL IAC 1643 00704 4453 CLRALL /DCLR 1644 00705 1153 TAD REG1 1645 00706 7110 CLL RAR 1646 00707 7630 SZL CLA /USE DATA 5252 IF LINK IS SET 1647 00710 1120 TAD K2525 1648 00711 1120 TAD K2525 1649 00712 0113 AND K7740 1650 00713 3163 DCA GDREG2 /SET UP COMPARE # 1 1651 00714 7004 RAL /LINK FOR EXTENDED BIT 1652 00715 3162 DCA GDREG1 /SETUP COMPARE REGISTER 1653 00716 1162 TAD GDREG1 /GET DATA 1654 00717 4450 LDCMD /LOAD CRC 1655 00720 1163 TAD GDREG2 1656 00721 4452 LDADD /LOAD CRC 1657 00722 4454 RDCRC /READ CRC 1658 00723 4441 ACCMP2 /CHECK RESULTS 1659 00724 4435 NERROR /O.K. 4096 LOOPS 1660 00725 4436 ERROR /ERROR, CRC REGISTER 1661 00726 0703 TST23 /SCOPE LOOP POINTER 1662 00727 6004 6004 /TEXT POINTER 1663 / 1664 /VERIFY THAT THE CRC CAN BE LOADED BY "DLAG" 1665 /AND "DLDC". USE DATA PATTERN ALL COMBINATIONS. 1666 /THIS WILL VERIFY THAT THE CRC CAN BE LOADED 1667 /BY THE EXTENDED CYLINDER BIT IN THE COMMAND REGISTER 1668 /BY THE "DLAG" IOT. 1669 / 1670 00730 1153 TST24, TAD REG1 /GET AC VALUE 1671 00731 7106 CLL RTL 1672 00732 7006 RTL 1673 00733 7004 RAL 1674 00734 0113 AND K7740 1675 00735 3163 DCA GDREG2 /SETUP COMPARE REGISTER 1676 00736 7004 RAL /LINK FOR EXTENDED BIT 1677 00737 3162 DCA GDREG1 /SETUP COMPARE REGISTER 1678 00740 1162 TAD GDREG1 /GET DATA 1679 00741 4450 LDCMD /LOAD COMMAND REGISTER 1680 00742 1163 TAD GDREG2 1681 00743 4452 LDADD /LOAD DISK ADDRESS 1682 00744 4454 RDCRC /READ CRC REGISTER 1683 00745 4441 ACCMP2 /CHECK AC, COMPARE TO GDREG1 + GDREG2 1684 00746 4435 NERROR /AC O.K. LOOP 4096 1685 00747 4436 ERROR /ERROR, CRC REGISTER LOAD BY 1686 /DLAG OR DLDC. 1687 00750 0730 TST24 /SCOPE LOOP POINTER 1688 00751 6004 6004 /TEXT POINTER 1689 / 1690 / 1691 /VERIFY THAT DCLR DOES NOT AFFECT CRC REGISTER. 1692 /LOAD CRC WITH DLAG + DLDC. 1693 / 1694 00752 1154 TST25, TAD REG2 1695 00753 7106 CLL RTL 1696 00754 7006 RTL 1697 00755 7004 RAL 1698 00756 0113 AND K7740 1699 00757 3163 DCA GDREG2 /SETUP COMPARE REGISTER 1700 00760 7004 RAL /LINK FOR EXTENDED BIT 1701 00761 3162 DCA GDREG1 /SETUP COMPARE REGISTER 1702 00762 1162 TAD GDREG1 1703 00763 4450 LDCMD /LOAD COMMAND REGISTER 1704 00764 1163 TAD GDREG2 1705 00765 4452 LDADD /LOAD DISK ADDRESS 1706 00766 1154 TAD REG2 1707 00767 0111 AND K7775 /DON'T DO RECAL. 1708 00770 4453 CLRALL /DCLR "CLR ALL" 1709 00771 4454 RDCRC /READ CRC REGISTER 1710 00772 4441 ACCMP2 /CHECK RESULTS, COMPARE TO GDREG1 1711 /AND GDREG2 1712 00773 4435 NERROR /O.K. 4096 LOOPS 1713 00774 4436 ERROR /ERROR, LOAD, READ, CLEAR CRC 1714 /REGISTER 1715 00775 0752 TST25 /SCOPE LOOP POINTER 1716 00776 6004 6004 /TEXT POINTER 1717 / 1718 /VERIFY THAT THE CRC REGISTER IS NOT AFFECTED BY 1719 /"DLDC", "DSKP", "DRST", "RDBUF", OR "DLCA". 1720 /USE DATA PATTERN 2525 + 5252. 1721 / 1722 00777 7301 TST26, CLA CLL IAC 1723 01000 4453 CLRALL /DCLR 1724 01001 1153 TAD REG1 1725 01002 7110 CLL RAR 1726 01003 7630 SZL CLA /USE DATA 5252 IF LINK IS SET 1727 01004 1120 TAD K2525 1728 01005 1120 TAD K2525 1729 01006 0113 AND K7740 1730 01007 3163 DCA GDREG2 /SETUP COMPARE REGISTER 1731 01010 7004 RAL /LINK FOR EXTENDED BIT 1732 01011 3162 DCA GDREG1 /SETUP COMPARE REGISTER 1733 01012 1162 TAD GDREG1 /GET UPPDER DATA 1734 01013 4450 LDCMD /LOAD COMMAND 1735 01014 1163 TAD GDREG2 1736 01015 4452 LDADD /LOAD DISK ADDRESS 1737 01016 1154 TAD REG2 1738 01017 4442 RDSTAT /READ STATUS 1739 01020 1154 TAD REG2 1740 01021 4447 DSKSKP /"DSKP" 1741 01022 7000 NOP 1742 01023 4456 RDBUF /READ BUFFER 1743 01024 1154 TAD REG2 1744 01025 4451 LDCUR /LOAD CURRENT ADDRESS 1745 01026 1154 TAD REG2 1746 01027 4450 LDCMD /LOAD COMMAND 1747 01030 1153 TAD REG1 1748 01031 4427 LDBUF /LOAD UPPER BUFFER 1749 01032 4454 RDCRC /READ CRC REGISTER 1750 01033 4441 ACCMP2 /CHECK RESULTS 1751 01034 4435 NERROR /O.K. 4096 LOOPS 1752 01035 4436 ERROR /ERROR, CRC REGISTER 1753 01036 0777 TST26 /SCOPE LOOP POINTER 1754 01037 6004 6004 /TEXT POINTER 1755 / 1756 /VERIFY THAT WRITE LOCK INHIBITS LOAD ADDRESS 1757 /WHEN IT IS SET. 1758 / 1759 01040 7301 TST27, CLA CLL IAC 1760 01041 4453 CLRALL /CLEAR CONTROL 1761 01042 3163 DCA GDREG2 /SETUP COMPARE REGISTER 1762 01043 1153 TAD REG1 /GET AC VALUE 1763 01044 4452 LDADD /LOAD DISK ADDRESS 1764 01045 1104 TAD K2000 1765 01046 4450 LDCMD /SET WRITE LOCK 1766 01047 1154 TAD REG2 /GET AC VALUE 1767 01050 4452 LDADD /TRY TO LOAD DISK ADDRESS 1768 01051 4446 RDADD /READ DISK ADDRESS 1769 01052 4440 ACCMP1 /CHECK RESULTS 1770 01053 4435 NERROR /O.K. 4096 LOOPS 1771 01054 4436 ERROR /ERROR LOAD DISK ADDRESS 1772 01055 1040 TST27 /SCOPE LOOP POINTER 1773 01056 4102 4102 1774 / 1775 /VERIFY THAT THE DISK ADDRESS REGISTER IS NOT 1776 /AFFECTED BY "DCLR", "DLCA", "DRST", "DLDC", "DSKP" 1777 /OR "RDBUF". USE DATA PATTERN ALL COMBINATIONS. 1778 / 1779 01057 1153 TST28, TAD REG1 /GET AC VALUE 1780 01060 3163 DCA GDREG2 /SETUP COMPARE REGISTER 1781 01061 1153 TAD REG1 1782 01062 4452 LDADD /LOAD DISK ADDRESS 1783 01063 1154 TAD REG2 1784 01064 0127 AND K5777 /MASK OUT WRITE LOCK 1785 01065 4450 LDCMD /LOAD COMMAND REGISTER 1786 01066 1154 TAD REG2 1787 01067 4451 LDCUR /LOAD CURRENT ADDRESS 1788 01070 1154 TAD REG2 1789 01071 4447 DSKSKP /DSKP 1790 01072 7000 NOP 1791 01073 4442 RDSTAT /READ STATUS 1792 01074 1154 TAD REG2 1793 01075 4427 LDBUF /LOAD BUFFERS 1794 01076 4456 RDBUF /READ LOWER BUFFER 1795 01077 7300 CLA CLL 1796 01100 4453 CLRALL /CLEAR STATUS 1797 01101 4446 RDADD /READ DISK ADDRESS 1798 01102 4440 ACCMP1 /CHECK AC, COMPARE TO GDREG2 1799 01103 4435 NERROR /AC O.K. 4096 LOOPS 1800 01104 4436 ERROR /ERROR, DISK ADDRESS AFFECTED 1801 01105 1057 TST28 /SCOPE LOOP POINTER 1802 01106 4102 4102 /TEXT POINTER 1803 / 1804 /VERIFY THAT THE COMMAND REGISTER IS NOT AFFECTED BY 1805 /"DCLR", "DLCA", "DRST", "DLAG", "DSKP" OR "RDBUF". 1806 /USE DATA PATTERN ALL COMBINATIONS. 1807 / 1808 01107 7301 TST29, CLA CLL IAC 1809 01110 4453 CLRALL /CLEAR CONTROL 1810 01111 1153 TAD REG1 /GET AC VALUE 1811 01112 3163 DCA GDREG2 /SETUP COMPARE REGISTER 1812 01113 1153 TAD REG1 1813 01114 4450 LDCMD /LOAD COMMAND REGISTER 1814 01115 1154 TAD REG2 1815 01116 4452 LDADD /LOAD DISK ADDRESS 1816 01117 1154 TAD REG2 1817 01120 4451 LDCUR /LOAD CURRENT ADDRESS 1818 01121 1154 TAD REG2 1819 01122 4447 DSKSKP /DSKP 1820 01123 7000 NOP 1821 01124 4442 RDSTAT /READ STATUS 1822 01125 1154 TAD REG2 1823 01126 4427 LDBUF /LOAD UPPER BUFFER 1824 01127 4456 RDBUF /READ LOWER BUFFER 1825 01130 7300 CLA CLL 1826 01131 4453 CLRALL /CLEAR STATUS 1827 01132 7326 CLA CLL CML RTL 1828 01133 4453 CLRALL /RECALIBRATE 1829 01134 4443 RDCMD /READ COMMAND REGISTER 1830 01135 4440 ACCMP1 /CHECK AC. COMPARE TO GDREG2 1831 01136 4435 NERROR /AC O.K. 4096 LOOPS 1832 01137 4436 ERROR /ERROR, COMMAND REGISTER 1833 01140 1107 TST29 /SCOPE LOOP POINTER 1834 01141 4201 4201 /TEXT POINTER 1835 / 1836 /VERIFY THAT RECALIBRATE INHIBITS LOAD COMMAND 1837 / 1838 01142 7301 TST30, CLA CLL IAC /ENABLE CLEAR CONTROL 1839 01143 4453 CLRALL /CLEAR CONTROL 1840 01144 4444 ENMAN1 /ENTER MAINTENANCE 1841 01145 7326 CLA CLL CML RTL /ENABLE RECALIBRATE 1842 01146 4453 CLRALL /RECALIBRATE 1843 01147 7326 CLA CLL CML RTL /ENABLE RECALIBRATE 1844 01150 4453 CLRALL /RECALIGRATE 1845 01151 3163 DCA GDREG2 /SETUP COMPARE REGISTER 1846 01152 1153 TAD REG1 1847 01153 4450 LDCMD /TRY TO LOAD COMMAND 1848 01154 4443 RDCMD /READ COMMAND 1849 01155 4440 ACCMP1 /CHECK RESULTS 1850 01156 4435 NERROR /O.K. 4096 LOOPS 1851 01157 4436 ERROR /ERROR IDLE (1) 1852 01160 1142 TST30 /SCOPE LOOP POINTER 1853 01161 4201 4201 /TEXT POINTER 1854 / 1855 /VERIFY THAT RECALIBRATE INHIBITS 1856 /LOAD DISK ADDRESS DLAG 1857 / 1858 01162 7301 TST31, CLA CLL IAC /ENABLE CLEAR CONTROL 1859 01163 4453 CLRALL /CLEAR CONTROL 1860 01164 4444 ENMAN1 /ENTER MAINTENANCE 1861 01165 1153 TAD REG1 /GET AC VALUE 1862 01166 3163 DCA GDREG2 /SETUP COMPARE 1863 01167 1163 TAD GDREG2 1864 01170 4452 LDADD /LOAD DISK ADDRESS (DLAG) 1865 01171 7326 CLA CLL CML RTL /ENABLE RECAL. 1866 01172 4453 CLRALL /RECALIBRATE 1867 01173 1154 TAD REG2 1868 01174 4452 LDADD /LOAD DISK ADDRESS (DLAG) 1869 01175 4446 RDADD /READ DISK ADDRESS 1870 01176 4440 ACCMP1 /CHECK RESULTS 1871 01177 4435 NERROR /O.K. 4096 LOOPS 1872 01200 4436 ERROR /ERROR, ON INHIBIT 1873 01201 1162 TST31 /SCOPE POINTER 1874 01202 4102 4102 /TEXT POINTER 1875 / 1876 /VERIFY THAT "DMAN" (MAINTENANCE) DOES NOT 1877 /AFFECT AC WHEN AC0=0 AND AC7=1 OR 0 1878 / 1879 01203 7301 TST32, CLA CLL IAC /CLEAR ENABLE BIT 1880 01204 4453 CLRALL /DCLR "CLR ALL" 1881 01205 1153 TAD REG1 1882 01206 0122 AND K3737 /MASK OUT 0 1883 01207 3163 DCA GDREG2 /SETUP COMPARE REGISTER 1884 01210 1163 TAD GDREG2 1885 01211 4455 LDMAN /LOAD MAINTENANCE "DMAN" 1886 01212 4440 ACCMP1 /CHECK AC. COMPARE TO GDREG2 1887 01213 4435 NERROR /AC O.K. 4096 LOOPS 1888 01214 4436 ERROR /ERROR, "DMAN" AFFECTED AC 1889 01215 1203 TST32 /SCOPE LOOP POINTER 1890 01216 4010 4010 /TEXT POINTER 1891 / 1892 /VERIFY THAT "DMAN" DOES NOT AFFECT AC WHEN 1893 /AC7=0 AND AC0=1 OR 0. 1894 / 1895 01217 7301 TST33, CLA CLL IAC /CLEAR ENABLE BIT 1896 01220 4453 CLRALL /DCLR "CLR ALL" 1897 01221 1153 TAD REG1 /GET AC VALUE 1898 01222 0123 AND K7717 /MASK OUT BIT 7 1899 01223 3163 DCA GDREG2 /SETUP COMPARE REGISTER 1900 01224 1163 TAD GDREG2 1901 01225 4455 LDMAN /LOAD MAINTENANCE 1902 01226 4440 ACCMP1 /CHECK AC. COMPARE TO GDREG2 1903 01227 4435 NERROR /AC O.K. 4096 LOOPS 1904 01230 4436 ERROR /ERROR DMAN AFFECT AC 1905 01231 1217 TST33 /SCOPE LOOP POINTER 1906 01232 4010 4010 /TEXT POINTER 1907 / 1908 /VERIFY THAT "DMAN" ONLY GETS CLEARED BY 1909 /DCLR NOT BY ANOTHER DMAN. 1910 / 1911 01233 7301 TST34, CLA CLL IAC /CLEAR ENABLE BIT 1912 01234 4453 CLRALL /DCLR "CLR ALL" 1913 01235 1153 TAD REG1 1914 01236 3163 DCA GDREG2 /SETUP COMPARE REGISTER 1915 01237 1153 TAD REG1 1916 01240 4450 LDCMD /LOAD COMMAND REGISTER 1917 01241 1136 TAD M12 /NO. OF SHIFTS 1918 01242 3156 DCA TCNTR1 /STORE IN COUNTER 1919 01243 4445 ENMAN2 /ENTER MAINTENANCE MODE + DB4=1 1920 01244 1102 TAD K0400 /GET ENABLE COMMAND REG. 1921 01245 4455 LDMAN /LOAD MAINENANCE 1922 01246 2156 ISZ TCNTR1 /COUNT + SHIFT 12 1923 01247 5245 JMP .-2 1924 01250 7300 CLA CLL 1925 01251 4455 LDMAN /"DMAN" TRY TO CLEAR MAIN FLOP 1926 01252 1074 TAD K0020 /ENABLE BIT FOR READ BUFFER 1927 01253 4455 LDMAN /READ BUFFER 1928 01254 3167 DCA DBREG /SAVE FOR PRINTER 1929 01255 1167 TAD DBREG 1930 01256 4440 ACCMP1 /CHECK AC 1931 01257 4435 NERROR /AC O.K. 4096 LOOPS 1932 01260 4436 ERROR /ERROR, MAIN FLIP FLOP 1933 01261 1233 TST34 /SCOPE LOOP POINTER 1934 01262 4405 4405 1935 1936 / 1937 /VERIFY THAT "DMAN" GETS CLEARED BY DCLR 1938 /"CLR ALL" 1939 1940 01263 7301 TST35, CLA CLL IAC 1941 01264 4453 CLRALL /DCLR "CLR ALL" 1942 01265 1074 TAD K0020 1943 01266 3163 DCA GDREG2 /SETUP COMPARE REGISTER 1944 01267 1153 TAD REG1 1945 01270 4450 LDCMD /LOAD COMMAND REGISTER 1946 01271 1136 TAD M12 1947 01272 3156 DCA TCNTR1 /SHIFT 12 COUNTER 1948 01273 4445 ENMAN2 /ENTER MAINTENANCE MODE + DB4=1 1949 01274 1102 TAD K0400 1950 01275 4455 LDMAN /LOAD MAINTENANCE "DMAN" 1951 01276 2156 ISZ TCNTR1 1952 01277 5275 JMP .-2 /12 COUNT 1953 01300 7301 CLA CLL IAC 1954 01301 4453 CLRALL /CLEAR ALL "DCLR" 1955 01302 1074 TAD K0020 1956 01303 4455 LDMAN /LOAD MAINTENANCE 1957 01304 4440 ACCMP1 /CHECK AC. COMPARE TO GDREG2 1958 01305 4435 NERROR /AC O.K. 4096 LOOPS 1959 01306 4436 ERROR /ERROR, DMAN AFFECTED AC 1960 01307 1263 TST35 /SCOPE LOOP POINTER 1961 01310 4010 4010 /TEXT POINTER 1962 / 1963 /VERIFY THAT "AC10 DATA" CAN BE SHIFTED TO 1964 /CRC REGISTER, THEN READ CRC REGISTER. 1965 /TRY ALL 1'S AND ALL 0'S. 1966 / 1967 01311 7301 TST36, CLA CLL IAC 1968 01312 4453 CLRALL /DCLR "CLR ALL" 1969 01313 1153 TAD REG1 1970 01314 7110 CLL RAR 1971 01315 7630 SZL CLA /SKIP IF ALL 0'S DATA 1972 01316 7340 CLA CLL CMA /ALL ONE'S DATA 1973 01317 3163 DCA GDREG2 /SETUP COMPARE REGISTER 1974 01320 1163 TAD GDREG2 1975 01321 0145 AND K0017 1976 01322 3162 DCA GDREG1 /SETUP COMPARE REGISTER 1977 01323 1137 TAD M16 1978 01324 3156 DCA TCNTR1 /SHIFTER FOR CRC 1979 01325 4444 ENMAN1 /ENTER MAINTENANCE MODE 1980 01326 1153 TAD REG1 1981 01327 7104 CLL RAL 1982 01330 0066 AND K0002 1983 01331 1103 TAD K1000 /ENABLE BITS 1984 01332 4455 LDMAN /LOAD MAINTENANCE 1985 01333 2156 ISZ TCNTR1 1986 01334 5332 JMP .-2 /16 COUNT 1987 01335 4454 RDCRC /READ CRC REGISTER 1988 01336 4441 ACCMP2 /COMPARE RESULTS 1989 01337 4435 NERROR /AC O.K. 4096 LOOPS 1990 01340 4436 ERROR /ERROR, CRC REGISTER 1991 01341 1311 TST36 /SCOPE LOOP POINTER 1992 01342 6004 6004 /TEXT POINTER 1993 1994 / 1995 /VERIFY THAT "AC10 DATA" CAN BE SHIFTED TO 1996 /CRC REGISTER, THEN READ CRC REGISTER. 1997 /TRY PATTERN "125252" 1998 / 1999 01343 7301 TST37, CLA CLL IAC 2000 01344 4453 CLRALL /DCLR "CLR ALL" 2001 01345 1121 TAD K5252 2002 01346 3163 DCA GDREG2 /SETUP COMPARE REGISTER 2003 01347 1163 TAD GDREG2 2004 01350 0145 AND K0017 2005 01351 3162 DCA GDREG1 /SETUP COMPARE REGISTER 2006 01352 1137 TAD M16 2007 01353 3156 DCA TCNTR1 /SETUP 16 COUNT 2008 01354 4444 ENMAN1 /ENTER MAINTENANCE MODE 2009 01355 7300 T37R, CLA CLL 2010 01356 1156 TAD TCNTR1 2011 01357 7004 RAL 2012 01360 0066 AND K0002 /SETUP DATA BIT 2013 01361 1103 TAD K1000 /ENABLE BITS 2014 01362 4455 LDMAN /LOAD MAINTENANCE 2015 01363 2156 ISZ TCNTR1 2016 01364 5355 JMP T37R /16 COUNT 2017 01365 4454 RDCRC /READ CRC REGISTER 2018 01366 4441 ACCMP2 /CHECK RESULTS 2019 01367 4435 NERROR /AC O.K. 4096 LOOPS 2020 01370 4436 ERROR /ERROR, CRC REGISTER 2021 01371 1343 TST37 /SCOPE LOOP POINTER 2022 01372 6004 6004 /TEXT POINTER 2023 / 2024 01373 5774 JMP I .+1 /TO NEXT TEST 2025 01374 1400 TST38 2026 / 2027 PAGE 2028 / 2029 /VERIFY THAT "AC10 DATA" CAN BE SHIFTED 2030 /TO CRC REGISTER, THEN READ CRC REGISTER. 2031 2032 2033 2034 2035 2036 /TRY PATTERN "052525" 2037 / 2038 01400 7301 TST38, CLA CLL IAC 2039 01401 4453 CLRALL /CLEAR ALL "DCLR" 2040 01402 1120 TAD K2525 2041 01403 3163 DCA GDREG2 /SETUP COMPARE REGISTER 2042 01404 1163 TAD GDREG2 2043 01405 0145 AND K0017 2044 01406 3162 DCA GDREG1 /SETUP COMPARE REGISTER 2045 01407 1137 TAD M16 2046 01410 3156 DCA TCNTR1 /16 COUNTER SHIFTER 2047 01411 4444 ENMAN1 /ENTER MAINTENANCE MODE 2048 01412 7300 T38R, CLA CLL 2049 01413 1156 TAD TCNTR1 2050 01414 7044 CMA RAL 2051 01415 0066 AND K0002 /SETUP "AC 10 DATA" 2052 01416 1103 TAD K1000 /ENABLE BITS 2053 01417 4455 LDMAN /LOAD MAINTENANCE 2054 01420 2156 ISZ TCNTR1 2055 01421 5212 JMP T38R /16 COUNT 2056 01422 4454 RDCRC /READ CRC REGISTER 2057 01423 4441 ACCMP2 /CHECK RESULTS 2058 01424 4435 NERROR /O.K. 4096 LOOPS 2059 01425 4436 ERROR /ERROR, CRC REGISTER 2060 01426 1400 TST38 /SCOPE LOOP POINTER 2061 01427 6004 6004 /TEXT POINTER 2062 / 2063 2064 / 2065 / 2066 /VERIFY THAT "AC10 DATA" CAN BE SHIFTED TO CRC 2067 /REGISTER. /TRY ALL COMBINATIONS. 2068 / 2069 01430 7301 TST39, CLA CLL IAC 2070 01431 4453 CLRALL /DCLR "CLR ALL" 2071 01432 1153 TAD REG1 2072 01433 3163 DCA GDREG2 /SETUP COMPARE REGISTER 2073 01434 1153 TAD REG1 2074 01435 0145 AND K0017 2075 01436 3162 DCA GDREG1 /SETUP COMPARE REGISTER 2076 01437 7301 CLA CLL IAC 2077 01440 3156 DCA TCNTR1 /SETUP BIT MASKER 2078 01441 1137 TAD M16 2079 01442 3157 DCA TCNTR2 /SETUP FIRST SHIFT COUNTER 2080 01443 4444 ENMAN1 /ENTER MAINTENANCE MODE 2081 01444 1153 T39R, TAD REG1 2082 01445 0156 AND TCNTR1 2083 01446 7640 SZA CLA /SKIP IF 0 2084 01447 1066 TAD K0002 /WAS A 1 2085 01450 1103 TAD K1000 /ENABLE BITS 2086 01451 4455 LDMAN /LOAD MAINTENANCE 2087 01452 7300 CLA CLL 2088 01453 1156 TAD TCNTR1 2089 01454 7004 RAL /ROTATE BIT MASKER 2090 01455 3156 DCA TCNTR1 2091 01456 7630 SZL CLA /WAIT FOR FIRST LINK THEN 2092 01457 5254 JMP .-3 /RESET BIT 11 IN MASKER 2093 01460 2157 ISZ TCNTR2 2094 01461 5244 JMP T39R /LOOP BACK 2095 01462 4454 RDCRC /READ CRC REGISTER 2096 01463 4441 ACCMP2 /CHECK RESULTS 2097 01464 4435 NERROR /O.K. 4096 LOOPS 2098 01465 4436 ERROR /ERROR, CRC REGISTER 2099 01466 1430 TST39 /ERROR, CRC REGISTER 2100 01467 6004 6004 /TEXT POINTER 2101 / 2102 /VERIFY THAT "DLAG" CLEARS ALL OF THE 2103 /CRC REGISTER. TRY ALL COMBINATIONS IN CRC. 2104 / 2105 01470 7301 TST40, CLA CLL IAC 2106 01471 4453 CLRALL /DCLR "CLR ALL" 2107 01472 3163 DCA GDREG2 2108 01473 3162 DCA GDREG1 /SETUP COMPARE REGISTERS 2109 01474 7301 CLA CLL IAC 2110 01475 3156 DCA TCNTR1 /SETUP BIT MASKER 2111 01476 1137 TAD M16 2112 01477 3157 DCA TCNTR2 /SETUP FIRST SHIFT COUNTER 2113 01500 4444 ENMAN1 /ENTER MAINTENANCE MODE 2114 01501 1154 T40R, TAD REG2 2115 01502 0156 AND TCNTR1 2116 01503 7640 SZA CLA /SKIP IF 0 2117 01504 1066 TAD K0002 /WAS A 1 2118 01505 1103 TAD K1000 /ENABLE BITS 2119 01506 4455 LDMAN /LOAD MAINTENANCE 2120 01507 7300 CLA CLL 2121 01510 1156 TAD TCNTR1 2122 01511 7004 RAL /ROTATE BIT MASKER 2123 01512 3156 DCA TCNTR1 2124 01513 7630 SZL CLA /WAIT FOR FIRST LINK THEN 2125 01514 5311 JMP .-3 /RESET BIT 11 IN MASKER 2126 01515 2157 ISZ TCNTR2 2127 01516 5301 JMP T40R /LOOP BACK 2128 01517 4452 LDADD /LOAD DISK ADDRESS 2129 01520 4454 RDCRC /READ CRC REGISTER 2130 01521 4441 ACCMP2 /CHECK RESULTS 2131 01522 4435 NERROR /AC O.K. 4096 LOOPS 2132 01523 4436 ERROR /ERROR, CRC REGISTER 2133 01524 1470 TST40 /ERROR, CRC REGISTER 2134 01525 6004 6004 /TEXT POINTER 2135 / 2136 /VERIFY THAT "AC10 DATA" CAN BE SHIFTED TO 2137 /UPPER DATA BUFFER THEN SINK TO LOWER DATA 2138 /BUFFER. TRY ALL 1'S AND 0'S. 2139 / 2140 01526 7301 TST41, CLA CLL IAC 2141 01527 4453 CLRALL /DCLR "CLR ALL" 2142 2143 01530 1153 TAD REG1 2144 01531 7110 CLL RAR 2145 01532 7630 SZL CLA 2146 01533 7240 CLA CMA 2147 01534 3163 DCA GDREG2 2148 01535 1163 TAD GDREG2 /GET VALUE TO LOAD 2149 01536 4427 LDBUF /LOAD UPPER BUFFER 2150 01537 4456 RDBUF /READ LOWER BUFFER 2151 01540 4440 ACCMP1 /CHECK AC. COMPARE TO GDREG2 2152 01541 4435 NERROR /AC O.K. 4096 LOOPS 2153 01542 4436 ERROR /ERROR, DATA REGISTERS 2154 01543 1526 TST41 /SCOPE LOOP POINTER 2155 01544 4405 4405 /TEXT POINTER 2156 / 2157 /VERIFY THAT "AC10 DATA" CAN BE SHIFTED TO 2158 /UPPER DATA BUFFER THEN SINK TO LOWER DATA 2159 /BUFFER. TRY PATTERN 2525 + 5252 2160 / 2161 01545 7301 TST42, CLA CLL IAC 2162 01546 4453 CLRALL /DCLR "CLR ALL" 2163 01547 1153 TAD REG1 2164 01550 7110 CLL RAR 2165 01551 7630 SZL CLA /WHAT DATA???? 2166 01552 1120 TAD K2525 /DATA 5252 2167 01553 1120 TAD K2525 2168 01554 3163 DCA GDREG2 /SETUP COMPARE REGISTER 2169 01555 1163 TAD GDREG2 /GET VALUE TO LOAD 2170 01556 4427 LDBUF /LOAD UPPER BUFFER 2171 01557 4456 RDBUF /READ LOWER DATA BUFFER 2172 01560 4440 ACCMP1 /CHECK AC. COMPARE TO GDREG2 2173 01561 4435 NERROR /AC O.K. 4096 LOOPS 2174 01562 4436 ERROR /ERROR, DATA BUFFERS 2175 01563 1545 TST42 /SCOPE LOOP POINTER 2176 01564 4405 4405 /TEXT POINTER 2177 2178 / 2179 /VERIFY THAT "AC10 DATA" CAN BE SHIFTED TO 2180 /UPPER DATA BUFFER THEN SINK TO LOWER 2181 /DATA BUFFER. TRY PATTERN ALL COMBINATIONS 2182 / 2183 01565 7301 TST43, CLA CLL IAC 2184 01566 4453 CLRALL /DCLR "CLR ALL" 2185 01567 1154 TAD REG2 /GET VALUE TO LOAD 2186 01570 3163 DCA GDREG2 /SETUP COMPARE REGISTER 2187 01571 1163 TAD GDREG2 /GET IT 2188 01572 4427 LDBUF /LOAD UPPER BUFFER 2189 01573 4456 RDBUF /READ LOWER DATA BUFFER 2190 01574 4440 ACCMP1 /CHECK AC 2191 01575 4435 NERROR /AC O.K. 4096 LOOPS 2192 01576 4436 ERROR /ERROR, DATA REGISTERS 2193 01577 1565 TST43 /SCOPE LOOP POINTER 2194 01600 4405 4405 /TEXT POINTER 2195 / 2196 /VERIFY THAT "AC10 DATA" CAN BE SHIFTED 2197 /TO UPPER DATA BUFFER THEN SINK TO LOWER 2198 /DATA BUFFER. TRY ALL COMBINATIONS 2199 / 2200 01601 7301 TST44, CLA CLL IAC 2201 01602 4453 CLRALL 2202 01603 1153 TAD REG1 2203 01604 3163 DCA GDREG2 /SETUP COMPARE REGISTER 2204 01605 1153 TAD REG1 /GET VALUE TO LOAD 2205 01606 4427 LDBUF /LOAD UPPER BUFFER 2206 01607 4456 RDBUF /READ DATA BUFFER 2207 01610 4440 ACCMP1 /CHECK AC. COMPARE TO GDREG2 2208 01611 4435 NERROR /AC O.K. 4096 LOOPS 2209 01612 4436 ERROR /ERROR, DATA REGISTERS 2210 01613 1601 TST44 /SCOPE LOOP POINTER 2211 01614 4405 4405 /TEXT POINTER 2212 / 2213 /VERIFY THAT ALL DATA BUFFERS CAN BE FULL 2214 /AT ONCE. TRY ALL COMBINATIONS 2215 / 2216 01615 7301 TST45, CLA CLL IAC 2217 01616 4453 CLRALL /DCLR "CLR ALL" 2218 01617 1153 TAD REG1 2219 01620 3161 DCA TCNTR4 2220 01621 1133 TAD M4 2221 01622 3160 DCA TCNTR3 /COUNTER FOR # OF BUFFERS 2222 01623 1161 T45R1, TAD TCNTR4 2223 01624 4427 LDBUF /LOAD UPPER BUFFER 2224 01625 7301 CLA CLL IAC 2225 01626 1161 TAD TCNTR4 2226 01627 3161 DCA TCNTR4 2227 01630 2160 ISZ TCNTR3 2228 01631 5223 JMP T45R1 /4 COUNT, SKIP WHEN BUFFERS FULL 2229 01632 1153 TAD REG1 2230 01633 3163 DCA GDREG2 /SETUP FOR FIRST COMPARE 2231 01634 1133 TAD M4 2232 01635 3160 DCA TCNTR3 2233 01636 4456 T45R3, RDBUF /READ BUFFER 2234 01637 4440 ACCMP1 /CHECK 2235 01640 7610 SKP CLA /OK, CHECK NEXT 2236 01641 5247 JMP T45E /ERROR, DATA BUFFERS 2237 01642 2163 ISZ GDREG2 2238 01643 7000 NOP 2239 01644 2160 ISZ TCNTR3 2240 01645 5236 JMP T45R3 2241 01646 4435 NERROR /AC O.K. 4096 LOOPS 2242 01647 4436 T45E, ERROR /ERROR, DATA BUFFERS 2243 01650 1615 TST45 /SCOPE LOOP POINTER 2244 01651 4405 4405 /TEXT POINTER 2245 / 2246 /VERIFY THAT THE SILO BUFFERS ARE NOT AFFECTED BY 2247 /"DLCR", "DLAG", "DLDC", "DLCA", "DSKP", OR "DRST" IOTS. 2248 /USE DATA PATTERN ALL COMBINATIONS 2249 / 2250 01652 7301 TST46, CLA CLL IAC 2251 01653 4453 CLRALL /DCLR 2252 01654 1154 TAD REG2 2253 01655 3163 DCA GDREG2 /SETUP COMPARE REGISTER 2254 01656 1133 TAD M4 2255 01657 3156 DCA TCNTR1 /COUNTER FOR AMOUNT OF BUFFERS 2256 01660 1163 T46A1, TAD GDREG2 /GET VALUE TO LOAD 2257 01661 4427 LDBUF /LOAD UPPER BUFFER 2258 01662 2156 ISZ TCNTR1 /COUNT AMOUNT 2259 01663 5260 JMP T46A1 /MORE TO LOAD 2260 01664 1153 TAD REG1 2261 01665 4452 LDADD /LOAD DISK ADDRESS 2262 01666 1153 TAD REG1 2263 01667 4451 LDCUR /LOAD CURRENT ADDRESS 2264 01670 1153 TAD REG1 2265 01671 0105 AND K3777 /MASK OFF WRITE 2266 01672 4450 LDCMD /LOAD COMMAND REGISTER 2267 01673 1153 TAD REG1 2268 01674 4447 DSKSKP /DSKP 2269 01675 7000 NOP 2270 01676 4442 RDSTAT /READ STATUS 2271 01677 7300 CLA CLL 2272 01700 4453 CLRALL /CLEAR STATUS 2273 01701 1133 TAD M4 2274 01702 3156 DCA TCNTR1 /SETUP COUNTER 2275 01703 7300 T46A2, CLA CLL 2276 01704 1074 TAD K0020 /ENABLE READ BUFFER 2277 01705 4455 LDMAN /DMAN 2278 01706 3167 DCA DBREG /SAVE RESUTLS 2279 01707 1167 TAD DBREG 2280 01710 4440 ACCMP1 /CHECK RESULTS 2281 01711 7610 SKP CLA /DATA O.K. 2282 01712 5316 JMP T46E /ERROR 2283 01713 2156 ISZ TCNTR1 /READ ALL FOUR 2284 01714 5303 JMP T46A2 /LOOP 2285 01715 4435 NERROR /O.K. 4096 LOOPS 2286 01716 4436 T46E, ERROR /ERROR, BUFFER AFFECTED 2287 01717 1652 TST46 /SCOPE LOOP POINTER 2288 01720 4405 4405 /TEXT POINTER 2289 / 2290 /VERIFY THAT THE UPPER BUFFER CAN BE LOADED 2291 /THEN SINK TO LOWER BUFFER. USE A FLOATING 2292 /1'S PATTERN. 2293 / 2294 01721 3156 DCA TCNTR1 /START AT 0 2295 01722 7301 TST47, CLA CLL IAC /ENABLE CLEAR CONTROL 2296 01723 4453 CLRALL /CLEAR CONTROL 2297 01724 1156 TAD TCNTR1 /GET VALUE TO LOAD 2298 01725 3163 DCA GDREG2 /SETUP COMPARE REGISTER 2299 01726 1156 TAD TCNTR1 /GET VALUE TO LOAD 2300 01727 4427 LDBUF /LOAD UPPER BUFFER 2301 01730 4456 RDBUF /READ LOWER BUFFER 2302 01731 4440 ACCMP1 /CHECK RESULTS 2303 01732 7610 SKP CLA /DATA O.K. 2304 01733 5342 JMP T47E /ERROR 2305 01734 1156 TAD TCNTR1 2306 01735 7104 CLL RAL 2307 01736 7450 SNA 2308 01737 7001 IAC 2309 01740 3156 DCA TCNTR1 /SET ONE TO LEFT 2310 01741 4435 NERROR /LOOP 4096 TIMES 2311 01742 4436 T47E, ERROR /ERROR SILO BUFFERS 2312 01743 1722 TST47 /SCOPE LOOP POINTER 2313 01744 4405 4405 /TEXT POINTER 2314 / 2315 /VERIFY THAT THE UPPER BUFFER CAN BE LOADED 2316 /THEN SINK TO LOWER BUFFER. USE A FLOATING 2317 /0'S PATTERN. 2318 / 2319 01745 3156 DCA TCNTR1 /START AT 7777 2320 01746 7301 TST48, CLA CLL IAC /ENABLE CLEAR CONTROL 2321 01747 4453 CLRALL /CLEAR CONTROL 2322 01750 1156 TAD TCNTR1 /GET VALUE TO LOAD 2323 01751 7040 CMA /INVERT FOR 0'S 2324 01752 3163 DCA GDREG2 /SETUP COMPARE REGISTER 2325 01753 1163 TAD GDREG2 /GET VALUE TO LOAD 2326 01754 4427 LDBUF /LOAD UPPER BUFFER 2327 01755 4456 RDBUF /READ LOWER BUFFER 2328 01756 4440 ACCMP1 /CHECK RESULTS 2329 01757 7610 SKP CLA /DATA O.K. 2330 01760 5367 JMP T48E /ERROR 2331 01761 1156 TAD TCNTR1 2332 01762 7104 CLL RAL 2333 01763 7450 SNA 2334 01764 7001 IAC 2335 01765 3156 DCA TCNTR1 /SET ONE TO LEFT 2336 01766 4435 NERROR /LOOP 4096 TIMES 2337 01767 4436 T48E, ERROR /ERROR SILO BUFFERS 2338 01770 1746 TST48 /SCOPE LOOP POINTER 2339 01771 4405 4405 /TEXT POINTER 2340 / 2341 01772 5773 JMP I .+1 /TO NEXT TEST 2342 01773 2000 TST49 2343 / 2344 PAGE 2345 / 2346 /VERIFY THAT "DRL" OCCURS WHEN BUFFER 2347 /EMPTY. 2348 / 2349 02000 7301 TST49, CLA CLL IAC 2350 02001 4453 CLRALL /"DCLR CLEAR ALL 2351 02002 1177 TAD STCON /GET EXPECTED BITS 2352 02003 3163 DCA GDREG2 /SETUP COMPARE REGISTER 2353 02004 1153 TAD REG1 2354 02005 4442 RDSTAT /READ STATUS REGISTER 2355 02006 4440 ACCMP1 /CHECK RESULTS 2356 02007 7610 SKP CLA /O.K. 2357 02010 5232 JMP T49E /ERROR, STATUS REGISTER 2358 02011 1177 TAD STCON 2359 02012 1070 TAD K0004 /GET EXPECTED BITS 2360 02013 3163 DCA GDREG2 /SETUP COMPARE REGISTER 2361 02014 4444 ENMAN1 /ENTER MAINTENANCE MODE 2362 02015 1103 TAD K1000 2363 02016 4455 LDMAN /LOAD MAINTENANCE 2364 02017 7240 CLA CMA 2365 02020 4442 RDSTAT /READ STATUS REGISTER 2366 02021 4440 ACCMP1 /CHECK RESULTS 2367 02022 7610 SKP CLA /O.K. 2368 02023 5232 JMP T49E /ERROR, STATUS REGISTER 2369 02024 1177 TAD STCON 2370 02025 3163 DCA GDREG2 /SETUP COMPARE REGISTER 2371 02026 4453 CLRALL /DCLR "CLEAR STATUS" 2372 02027 4442 RDSTAT /READ STATUS REGISTER 2373 02030 4440 ACCMP1 /CHECK RESULTS 2374 02031 4435 NERROR /STATUS O.K., 4096 LOOPS 2375 02032 4436 T49E, ERROR /ERROR, STATUS REGISTER 2376 02033 2000 TST49 /SCOPE LOOP POINTER 2377 02034 5000 5000 /TEXT POINTER 2378 / 2379 /VERIFY THAT BUFFER FULL CAUSES "DRL". 2380 / 2381 02035 7301 TST50, CLA CLL IAC 2382 02036 4453 CLRALL /DCLR "CLR ALL" 2383 02037 1177 TAD STCON 2384 02040 3163 DCA GDREG2 /SETUP COMPARE REGISTER 2385 02041 1154 TAD REG2 2386 02042 4442 RDSTAT /READ STATUS REGISTER 2387 02043 4440 ACCMP1 /CHECK RESULTS 2388 02044 7610 SKP CLA /O.K. 2389 02045 5274 JMP T50E /ERROR, STATUS REGISTER 2390 02046 1140 TAD M48 2391 02047 3156 DCA TCNTR1 /48 COUNTER 2392 02050 4444 ENMAN1 /ENTER MAINTENANCE MODE 2393 02051 1077 TAD K0100 /ENABLE BITS 2394 02052 4455 LDMAN /LOAD MAINTENANCE 2395 02053 2156 ISZ TCNTR1 2396 02054 5252 JMP .-2 /SKIP WHEN BUFFERS ARE FULL 2397 02055 7300 CLA CLL 2398 02056 4442 RDSTAT /READ STATUS REGISTER 2399 02057 4440 ACCMP1 /CHECK RESULTS 2400 02060 7610 SKP CLA 2401 02061 5274 JMP T50E /ERROR, STATUS REGISTER 2402 02062 1077 TAD K0100 2403 02063 4455 LDMAN /CAUSE "DRL" DMAN 2404 02064 7300 CLA CLL 2405 02065 1177 TAD STCON 2406 02066 1070 TAD K0004 /BIT EXPECTED 2407 02067 3163 DCA GDREG2 /SETUP COMPARE REGISTER 2408 2409 02070 1153 TAD REG1 2410 02071 4442 RDSTAT /READ STATUS REGISTER 2411 02072 4440 ACCMP1 /CHECK RESULTS 2412 02073 4435 NERROR /STATUS O.K., 4096 LOOPS 2413 02074 4436 T50E, ERROR /ERROR, STATUS REGISTER 2414 02075 2035 TST50 /SCOPE LOOP POINTER 2415 02076 5000 5000 /TEXT POINTER 2416 / 2417 /VERIFY THAT "DSKP" SKIPS ON "DRL" ERROR 2418 / 2419 02077 7301 TST51, CLA CLL IAC 2420 02100 4453 CLRALL /DCLR "CLR ALL" 2421 02101 4444 ENMAN1 /ENTER MAINTENANCE MODE 2422 02102 1103 TAD K1000 2423 02103 4455 LDMAN /SET "DRL" "DMAN" 2424 02104 7300 CLA CLL 2425 02105 4447 DSKSKP /"DSKP" 2426 02106 5314 JMP T51E /ERROR, "DSKP" 2427 02107 4447 DSKSKP /"DSKP" 2428 02110 5314 JMP T51E /ERROR, "DSKP" 2429 02111 4453 CLRALL /CLEAR STATUS "DCLR" 2430 02112 4447 DSKSKP /"DSKP" SKIP 2431 02113 4435 NERROR /SKIP O.K. 4096 LOOPS 2432 02114 4436 T51E, ERROR /ERROR, "DSKP" SKIP ON "DRL" 2433 02115 2077 TST51 /SCOPE LOOP POINTER 2434 02116 0006 0006 /TEXT POINTER 2435 / 2436 /VERIFY THAT "DRL" DOES CAUSE DISK "INTERRUPT" IF 2437 /ENABLED BY "ENABLE INTERRUPT" BIT IN COMMAND REGISTER. 2438 / 2439 02117 7301 TST52, CLA CLL IAC 2440 02120 4453 CLRALL /DCLR "CLR ALL" 2441 02121 1102 TAD K0400 2442 02122 4450 LDCMD /SET INT. ENABLE "LOAD COMMAND REG." 2443 02123 4444 ENMAN1 /ENTER MAINTENANCE MODE 2444 02124 1103 TAD K1000 2445 02125 4455 LDMAN /"SET DRL" "DMAN" 2446 02126 4437 IONWAT /WAIT FOR INTERRUPT 2447 02127 7610 SKP CLA /ERROR, NO INT. RQ. 2448 02130 4435 NERROR /O.K., INT. OCCURRED 2449 02131 4436 ERROR /ERROR, INT. REQUEST 2450 02132 2117 TST52 /SCOPE LOOP POINTER 2451 02133 0007 0007 /TEXT POINTER 2452 2453 / 2454 /VERIFY THAT "DRL" SHOULD CAUSE INT. RQ. ONLY 2455 /WHEN "INT. ENABLE" BIT IS SET. DOES LDCMD CLEAR INT. 2456 / 2457 2458 02134 7301 TST53, CLA CLL IAC 2459 02135 4453 CLRALL /DCLR "CLR ALL" 2460 02136 4444 ENMAN1 /ENTER MAINTENANCE MODE 2461 02137 1103 TAD K1000 2462 02140 4455 LDMAN /SET "DRL" DMAN 2463 02141 4437 IONWAT /WAIT FOR INT. 2464 02142 7610 SKP CLA /O.K., NO INT. 2465 02143 5356 JMP T53E /ERROR, INT. OCCURRED 2466 02144 1102 TAD K0400 2467 02145 4450 LDCMD /SET INT. ENABLE AND CLEAR INT. 2468 02146 4437 IONWAT /WAIT FOR INT. 2469 02147 7610 SKP CLA /O.K., NO INT. RQ. 2470 02150 5356 JMP T53E /ERROR, INT. OCCURRED 2471 02151 1103 TAD K1000 2472 02152 4455 LDMAN /SET "DRL" DMAN 2473 02153 4437 IONWAT /WAIT INT., SHOULD INT. 2474 02154 7610 SKP CLA /ERROR, NO INT. 2475 02155 4435 NERROR /O.K. INT. OCCURRED 2476 02156 4436 T53E, ERROR /ERROR, INT. RQ. 2477 02157 2134 TST53 /SCOPE LOOP POINTER 2478 02160 0007 0007 /TEXT POINTER 2479 / 2480 02161 5762 JMP I .+1 /TO NEXT TEST 2481 02162 2200 TST54 2482 / 2483 PAGE 2484 / 2485 /VERIFY THAT "LDCMD" CLEARS STATUS REGISTER 2486 / 2487 02200 7301 TST54, CLA CLL IAC 2488 02201 4453 CLRALL /DCLR "CLR ALL" 2489 02202 1177 TAD STCON 2490 02203 1070 TAD K0004 2491 02204 3163 DCA GDREG2 /SETUP COMPARE REGISTER 2492 02205 4444 ENMAN1 /ENTER MAINTENANCE MODE 2493 02206 1103 TAD K1000 /ENABLE 2494 02207 4455 LDMAN /SET "DRL" DMAN 2495 02210 7300 CLA CLL 2496 02211 1154 TAD REG2 2497 02212 4442 RDSTAT /READ STATUS REGISTER 2498 02213 4440 ACCMP1 /CHECK RESULTS 2499 02214 7610 SKP CLA /O.K., CHECK CLEAR 2500 02215 5225 JMP T54E /STATUS REGISTER ERROR 2501 02216 4450 LDCMD /CLEAR STATUS, "LOAD COMMAND" 2502 02217 1177 TAD STCON 2503 02220 3163 DCA GDREG2 /SETUP COMPARE REGISTER 2504 02221 1153 TAD REG1 2505 02222 4442 RDSTAT /READ STATUS REGISTER 2506 02223 4440 ACCMP1 /CHECK RESULTS 2507 02224 4435 NERROR /STATUS O.K. 4096 LOOPS 2508 02225 4436 T54E, ERROR /ERROR, STATUS REGISTER 2509 02226 2200 TST54 /SCOPE LOOP POINTER 2510 02227 5000 5000 /TEXT POINTER 2511 / 2512 /VERIFY THAT RECALIBRATE DOES SET DRIVE STATUS 2513 /ERROR IN THE STATUS REGISTER. 2514 / 2515 02230 7301 TST55, CLA CLL IAC /ENABLE CLEAR CONTROL 2516 02231 4453 CLRALL /CLEAR CONTROL 2517 02232 7301 CLA CLL IAC /ENABLE CLEAR CONTROL 2518 02233 4453 CLRALL /CLEAR CONTROL 2519 02234 1177 TAD STCON 2520 02235 3163 DCA GDREG2 /SETUP EXPECTED COMPARE 2521 02236 4442 RDSTAT /READ STATUS REGISTER 2522 02237 4440 ACCMP1 /CHECK RESULTS 2523 02240 7610 SKP CLA /STATUS O.K. 2524 02241 5252 JMP T55E /ERROR, STATUS 2525 02242 7326 CLA CLL CML RTL /ENABLE RECALIBRATE 2526 02243 1177 TAD STCON 2527 02244 3163 DCA GDREG2 /SETUP EXPECTED COMPARE 2528 02245 7326 CLA CLL CML RTL /ENABLE RECALIBRATE 2529 02246 4453 CLRALL /RECALIBRATE 2530 02247 4442 RDSTAT /READ STATUS 2531 02250 4440 ACCMP1 /CHECK RESULTS 2532 02251 4435 NERROR /O.K. 4096 LOOPS 2533 02252 4436 T55E, ERROR /ERROR< STATUS 2534 02253 2230 TST55 /SCOPE LOOP POINTER 2535 02254 5000 5000 /TEXT POINTER 2536 / 2537 /VERIFY THAT "LOAD DISK ADDRESS" CAUSES "DRIVE STATUS ERROR" 2538 / 2539 02255 7301 TST56, CLA CLL IAC /ENABLE CLEAR CONTROL 2540 02256 4453 CLRALL 2541 02257 4452 LDADD 2542 02260 1177 TAD STCON 2543 02261 1066 TAD K0002 2544 02262 3163 DCA GDREG2 2545 02263 1153 TAD REG1 2546 2547 02264 4442 RDSTAT /READ STATUS REGISTER 2548 02265 4440 ACCMP1 /CHECK RESULTS 2549 02266 4435 NERROR /STATUS O.K. 4096 LOOPS 2550 02267 4436 ERROR /ERROR, STATUS REGISTER 2551 02270 2255 TST56 /SCOPE LOOP POINTER 2552 02271 5000 5000 /TEXT POINTER 2553 / 2554 /VERIFY THAT "DRIVE STATUS ERROR" CAUSES INT. RQ. 2555 / "DOES LDCMD CLEAR INT." 2556 / 2557 02272 7301 TST57, CLA CLL IAC 2558 02273 4453 CLRALL /DCLR "CLR ALL" 2559 02274 1102 TAD K0400 2560 02275 4450 LDCMD /SET INT. ENABLE "LOAD COMMAND" 2561 02276 4452 LDADD /SET "SELECT", LOAD DISK ADDRESS 2562 02277 4437 IONWAT /WAIT FOR EXPECTED INT. 2563 02300 5305 JMP T57E /ERROR, NO INT. 2564 02301 1102 TAD K0400 2565 02302 4450 LDCMD /CLEAR INT. "LOAD COMMAND" 2566 02303 4437 IONWAT 2567 02304 4435 NERROR /O.K. INT. WORKED 2568 02305 4436 T57E, ERROR /ERROR, SELECT ERROR INT. 2569 02306 2272 TST57 /SCOPE LOOP POINTER 2570 02307 0007 0007 /TEXT POINTER 2571 / 2572 /VERIFY THAT "LOAD DISK ADDRESS" CAUSES 2573 /"DRIVE STATUS ERROR". TEST WITH DISK SKIP 2574 / 2575 02310 7301 TST58, CLA CLL IAC 2576 02311 4453 CLRALL /DCLR "CLR ALL" 2577 02312 4452 LDADD /LOAD DISK AND GO 2578 02313 4447 DSKSKP /DSKP DISK SKIP IOT 2579 02314 5320 JMP T58E /ERROR, NO SKIP 2580 02315 4447 DSKSKP /DSKP DISK SKIP IOT 2581 02316 5320 JMP T58E /ERROR, NO SKIP 2582 02317 4435 NERROR /STATUS O.K. 2583 02320 4436 T58E, ERROR /ERROR, STATUS REGISTER 2584 02321 2310 TST58 /SCOPE LOOP POINTER 2585 02322 0006 0006 /TEXT POINTER 2586 2587 / 2588 /VERIFY THAT SELECT ERROR CAUSES "DSKP" TO SKIP ON ERROR 2589 / 2590 02323 7301 TST59, CLA CLL IAC 2591 02324 4453 CLRALL /DCLR "CLR ALL" 2592 02325 4452 LDADD /LOAD DISK ADDRESS AND GO 2593 02326 4447 DSKSKP /DSKP "SKIP ON ERROR" 2594 02327 5333 JMP T59E /ERROR, NO SKIP 2595 02330 4453 CLRALL /CLEAR SKIP 2596 02331 4447 DSKSKP /DSKP 2597 02332 4435 NERROR /O.K. 4096 LOOPS 2598 02333 4436 T59E, ERROR /ERROR, "DSKP SKIP" 2599 02334 2323 TST59 /SCOPE LOOP POINTER 2600 02335 0006 0006 /TEXT POINTER 2601 / 2602 / 2603 / 2604 /VERIFY THAT SELECT ERROR CAUSES "DSKP" TO SKIP ON ERROR 2605 /THEN INTERRUPT 2606 / 2607 2608 02336 7301 TST60, CLA CLL IAC 2609 02337 4453 CLRALL /DCLR "CLR ALL" 2610 02340 1071 TAD K0006 2611 02341 3356 DCA T60E+2 /SETUP TEXT POINTER 2612 02342 1102 TAD K0400 2613 02343 4450 LDCMD /SET INT. ENABLE 2614 02344 4452 LDADD /LOAD DISK AND GO 2615 02345 4447 DSKSKP /DSKP DISK SKIP 2616 02346 5354 JMP T60E /ERROR, NO SKIP 2617 02347 1072 TAD K0007 2618 02350 3356 DCA T60E+2 /SETUP TEXT POINTER 2619 02351 4437 IONWAT /WAIT FOR INT. 2620 02352 7610 SKP CLA /ERROR, NO INT. OCCURRED 2621 02353 4435 NERROR /SKIP AND INT. O.K. 2622 02354 4436 T60E, ERROR /ERROR, DSKP OR INT. 2623 02355 2336 TST60 /SCOPE LOOP POINTER 2624 02356 0006 0006 /MODIFIED TEXT POINTER 2625 / 2626 02357 5760 JMP I .+1 /TO NEXT TEST 2627 02360 2400 TST61 2628 PAGE 2629 / 2630 /VERIFY THAT "DRL" CAUSES AND INT. THEN SKIP 2631 / 2632 02400 7301 TST61, CLA CLL IAC 2633 02401 4453 CLRALL /DCLR "CLR ALL" 2634 02402 1072 TAD K0007 2635 02403 3222 DCA T61E+2 /SETUP TEXT POINTER 2636 02404 1102 TAD K0400 2637 02405 4450 LDCMD /SETUP INT. ENABLE 2638 02406 4444 ENMAN1 /ENTER MAINTENANCE MODE 2639 02407 1103 TAD K1000 2640 02410 4455 LDMAN /SET "DRL" DMAN 2641 02411 4437 IONWAT /WAIT FOR INT. 2642 02412 5220 JMP T61E /ERROR, NO INT. 2643 02413 1071 TAD K0006 2644 02414 3222 DCA T61E+2 /SETUP TEXT POINTER 2645 02415 4447 DSKSKP /"DSKP" SHOULD SKIP 2646 02416 7610 SKP CLA /ERROR, NO SKIP 2647 02417 4435 NERROR /O.K. 4096 LOOPS 2648 02420 4436 T61E, ERROR /ERROR, SKIP OR INT. 2649 02421 2400 TST61 /SCOPE LOOP POINTER 2650 02422 0007 0007 /MODIFIED TEXT POINTER 2651 / 2652 /VERIFY THAT MAINTENANCE DOES INHIBIT 2653 /DRIVE STATUS ERROR SKIP 2654 / 2655 02423 7301 TST62, CLA CLL IAC 2656 02424 4453 CLRALL /CLEAR CONTROL 2657 02425 4447 DSKSKP /DISK SKIP 2658 02426 7610 SKP CLA /O.K. NO SKIP 2659 02427 5244 JMP T62E /ERROR, SKIP 2660 02430 7326 CLA CLL CML RTL 2661 02431 4453 CLRALL /RECALIBRATE 2662 02432 4447 DSKSKP /DISK SKIP 2663 02433 5244 JMP T62E /ERROR, NO SKIP 2664 02434 4444 ENMAN1 /SET MAIN 2665 02435 4447 DSKSKP /DISK SKIP 2666 02436 7610 SKP CLA /O.K. NO SKIP 2667 02437 5244 JMP T62E /ERROR, SKIP 2668 02440 7326 CLA CLL CML RTL 2669 02441 4453 CLRALL /RECALIBRATE 2670 02442 4447 DSKSKP /DISK SKIP 2671 02443 4435 NERROR /O.K. 4096 LOOPS 2672 02444 4436 T62E, ERROR /ERROR, DISK SKIP 2673 02445 2423 TST62 /SCOPE LOOP POINTER 2674 02446 0006 0006 /TEXT POINTER 2675 / 2676 /VERIFY THAT "RECALIBRATE" THEN DCLR DOES SET BUSY 2677 /AND DRIVE STATUS ERROR 2678 / 2679 02447 7301 TST63, CLA CLL IAC 2680 02450 4453 CLRALL /CLEAR CONTROL 2681 02451 1177 TAD STCON /EXPECTED STATUS 2682 02452 3163 DCA GDREG2 /SETUP COMPARE REGISTER 2683 02453 4442 RDSTAT /READ STATUS 2684 02454 4440 ACCMP1 /CHECK RESULTS 2685 02455 7610 SKP CLA /STATUS O.K. 2686 02456 5304 JMP T63E /ERROR, STATUS 2687 02457 4444 ENMAN1 /ENTER MAINTENANCE 2688 02460 7326 CLA CLL CML RTL 2689 02461 1177 TAD STCON /EXPECTED STATUS 2690 02462 3163 DCA GDREG2 /SETUP COMPARE REGISTER 2691 02463 7326 CLA CLL CML RTL 2692 02464 4453 CLRALL /"RECALIBRATE" DCLR 2693 02465 4442 RDSTAT /READ STATUS 2694 02466 4440 ACCMP1 /CHECK RESULTS 2695 02467 7610 SKP CLA /STATUS O.K. 2696 02470 5304 JMP T63E /ERROR, STATUS 2697 02471 1153 TAD REG1 2698 02472 0110 AND K7776 /MASK OUT CLEAR CONTROL 2699 02473 4453 CLRALL /DCLR 2700 02474 7326 CLA CLL CML RTL 2701 02475 1177 TAD STCON 2702 02476 1077 TAD K0100 /BUSY BIT 2703 02477 3163 DCA GDREG2 /SETUP COMPARE REGISTER 2704 02500 1154 TAD REG2 2705 02501 4442 RDSTAT /READ STATUS REGISTER 2706 02502 4440 ACCMP1 /CHECK RESULTS 2707 02503 4435 NERROR /STATUS, O.K. 4096 LOOPS 2708 02504 4436 T63E, ERROR /ERROR, RECALIBRATE 2709 02505 2447 TST63 /SCOPE LOOP POINTER 2710 02506 5000 5000 /TEXT POINTER 2711 / 2712 /VERIFY THAT "RECALIBRATE" THEN "DRL" RESULTS IN DRL, 2713 /DRIVE STATUS, AND TRANSFER DONE 2714 / 2715 02507 7301 TST64, CLA CLL IAC 2716 02510 4453 CLRALL /CLEAR CONTROL 2717 02511 1177 TAD STCON 2718 02512 3163 DCA GDREG2 /SETUP COMPARE REGISTER 2719 02513 4442 RDSTAT /READ STATUS 2720 02514 4440 ACCMP1 /CHECK RESULTS 2721 02515 7610 SKP CLA /STATUS O.K. 2722 02516 5344 JMP T64E /ERROR, STATUS 2723 02517 4444 ENMAN1 /ENTER MAINTENANCE 2724 02520 7326 CLA CLL CML RTL 2725 02521 1177 TAD STCON /EXPECTED STATUS 2726 02522 3163 DCA GDREG2 /SETUP COMPARE REGISTER 2727 02523 7326 CLA CLL CML RTL 2728 02524 4453 CLRALL /DCLR 2729 02525 4442 RDSTAT /READ STATUS 2730 02526 4440 ACCMP1 /CHECK RESULTS 2731 02527 7610 SKP CLA /STATUS O.K. 2732 02530 5344 JMP T64E /ERROR, STATUS 2733 02531 7326 CLA CLL CML RTL 2734 02532 1177 TAD STCON 2735 02533 1106 TAD K4000 2736 02534 1070 TAD K0004 /EXPECTED STATUS 2737 02535 3163 DCA GDREG2 2738 02536 1103 TAD K1000 /ENABLE BIT 2739 02537 4455 LDMAN /LOAD MAINTENANCE SET DRL 2740 02540 1153 TAD REG1 2741 02541 4442 RDSTAT /READ STATUS REGISTER 2742 02542 4440 ACCMP1 /CHECK RESULTS 2743 02543 4435 NERROR /O.K. 4096 LOOPS 2744 02544 4436 T64E, ERROR /ERROR, STATUS REGISTER 2745 02545 2507 TST64 /SCOPE LOOP POINTER 2746 02546 5000 5000 /TEXT POINTER 2747 / 2748 02547 5750 JMP I .+1 /TO NEXT TEST 2749 02550 2600 TST65 2750 / 2751 PAGE 2752 / 2753 /VERIFY THAT "RECALIBRATE" THEN "DLCA" SETS 2754 /DRIVE STATUS, AND BUSY ERROR IN STATUS REGISTER 2755 / 2756 02600 7301 TST65, CLA CLL IAC 2757 02601 4453 CLRALL /CLEAR CONTROL 2758 02602 1177 TAD STCON /EXPECTED STATUS 2759 02603 3163 DCA GDREG2 /SETUP COMPARE REGISTER 2760 02604 4442 RDSTAT /READ STATUS 2761 02605 4440 ACCMP1 /CHECK RESULTS 2762 02606 7610 SKP CLA /STATUS O.K. 2763 02607 5233 JMP T65E /ERROR, STATUS 2764 02610 4444 ENMAN1 /ENTER MAINTENANCE 2765 02611 7326 CLA CLL CML RTL 2766 02612 1177 TAD STCON /EXPECTED STATUS 2767 02613 3163 DCA GDREG2 /SETUP COMPARE REGISTER 2768 02614 7326 CLA CLL CML RTL 2769 02615 4453 CLRALL 2770 02616 4442 RDSTAT /READ STATUS 2771 02617 4440 ACCMP1 /CHECK RESULTS 2772 02620 7610 SKP CLA /STATUS O.K. 2773 02621 5233 JMP T65E /ERROR, STATUS 2774 02622 7326 CLA CLL CML RTL 2775 02623 1077 TAD K0100 2776 02624 1177 TAD STCON /EXPECTED STATS 2777 02625 3163 DCA GDREG2 2778 02626 4451 LDCUR /LOAD CURRENT ADDRESS 2779 02627 1154 TAD REG2 2780 02630 4442 RDSTAT /READ STATUS REGISTER 2781 02631 4440 ACCMP1 /CHECK RESULTS 2782 02632 4435 NERROR /O.K. 4096 LOOPS 2783 02633 4436 T65E, ERROR /ERROR, STATUS REGISTER 2784 02634 2600 TST65 /SCOPE LOOP POINTER 2785 02635 5000 5000 /TEXT POINTER 2786 / 2787 /VERIFY THAT "RECALIBRATE" THEN "DLDC" 2788 /DOES SET BUSY ERROR IN STATUS 2789 / 2790 02636 7301 TST66, CLA CLL IAC 2791 02637 4453 CLRALL /CLEAR CONTROL 2792 02640 4444 ENMAN1 /ENTER MAINTENANCE 2793 02641 7326 CLA CLL CML RTL 2794 02642 4453 CLRALL 2795 02643 7326 CLA CLL CML RTL 2796 02644 1077 TAD K0100 2797 02645 1177 TAD STCON /EXPECTED STATUS 2798 02646 3163 DCA GDREG2 2799 02647 4450 LDCMD /LOAD COMMAND REGISTER 2800 02650 1154 TAD REG2 2801 02651 4442 RDSTAT /READ STATUS REGISTER 2802 02652 4440 ACCMP1 /CHECK RESULTS 2803 02653 4435 NERROR /O.K. 4096 LOOPS 2804 02654 4436 ERROR /ERROR, STATUS REGISTER 2805 02655 2636 TST66 /SCOPE LOOP POINTER 2806 02656 5000 5000 /TEXT POINTER 2807 / 2808 /VERIFY THAT RECALIBRATE THEN DLAG RESULTS IN 2809 /BUSY AND DRIVE STATUS ERROR. 2810 / 2811 02657 7301 TST67, CLA CLL IAC 2812 02660 4453 CLRALL /CLEAR CONTROL 2813 02661 4444 ENMAN1 /ENTER MAINTENANCE 2814 02662 7326 CLA CLL CML RTL 2815 02663 1077 TAD K0100 2816 02664 1177 TAD STCON /EXPECTED STATUS 2817 02665 3163 DCA GDREG2 /SETUP EXPECTED COMPARE 2818 02666 7326 CLA CLL CML RTL /ENABLE RECALIBRATE 2819 02667 4453 CLRALL 2820 02670 4452 LDADD /LOAD DISK ADDRESS 2821 02671 4442 RDSTAT /READ STATUS 2822 02672 4440 ACCMP1 /CHECK RESULTS 2823 02673 4435 NERROR /O.K. 4096 LOOPS 2824 02674 4436 ERROR /ERROR, BUSY OR DRIVE STATUS 2825 02675 2657 TST67 /SCOPE LOOP POINTER 2826 02676 5000 5000 /TEXT POINTER 2827 / 2828 /VERIFY THAT SKIP OCCURS ON BUSY ERROR 2829 / 2830 02677 7301 TST68, CLA CLL IAC 2831 02700 4453 CLRALL /CLEAR CONTROL 2832 02701 4447 DSKSKP /DSKP 2833 02702 7610 SKP CLA /SKIP O.K. 2834 02703 5315 JMP T68E /ERROR, DISK SKIP 2835 02704 4444 ENMAN1 /ENTER MAINTENANCE 2836 02705 7326 CLA CLL CML RTL 2837 02706 4453 CLRALL /DCLR 2838 02707 4451 LDCUR /LOAD CURRENT ADDRESS 2839 02710 4447 DSKSKP /DSKP DISK SKIP 2840 02711 5315 JMP T68E /ERROR, NO SKIP 2841 02712 4447 DSKSKP /DSKP 2842 02713 5315 JMP T68E /ERROR, NO SKIP 2843 02714 4435 NERROR /O.K. 4096 LOOPS 2844 02715 4436 T68E, ERROR /ERROR, DSKP 2845 02716 2677 TST68 /SCOPE LOOP POINTER 2846 02717 0006 0006 /TEXT POINTER 2847 / 2848 /VERIFY THAT DCLR CLEARS ALL OF STATUS REGISTER 2849 / 2850 02720 7301 TST69, CLA CLL IAC 2851 02721 4453 CLRALL /CLEAR CONTROL 2852 02722 4444 ENMAN1 /ENTER MAINTENANCE 2853 02723 7326 CLA CLL CML RTL 2854 02724 4453 CLRALL /DCLR 2855 02725 7326 CLA CLL CML RTL 2856 02726 1177 TAD STCON 2857 02727 1106 TAD K4000 2858 02730 1070 TAD K0004 /EXPECTED STATUS 2859 02731 3163 DCA GDREG2 2860 02732 1103 TAD K1000 /ENABLE SHIFT 2861 02733 4455 LDMAN /LOAD MAINTENANCE SET DRL 2862 02734 1153 TAD REG1 2863 02735 4442 RDSTAT /READ STATUS REGISTER 2864 02736 4440 ACCMP1 /CHECK RESULTS 2865 02737 7610 SKP CLA /O.K. 2866 02740 5350 JMP T69E /ERROR 2867 02741 4453 CLRALL /DCLR 2868 02742 1177 TAD STCON 2869 02743 3163 DCA GDREG2 /SETUP COMPARE REGISTER 2870 02744 1154 TAD REG2 2871 02745 4442 RDSTAT /READ STATUS 2872 02746 4440 ACCMP1 /CHECK RESULTS 2873 02747 4435 NERROR /O.K. 4096 LOOPS 2874 02750 4436 T69E, ERROR /ERROR, STATUS REGISTER 2875 02751 2720 TST69 /SCOPE LOOP POINTER 2876 02752 5000 5000 /TEXT POINTER 2877 / 2878 /VERIFY THAT INTERRUPT OCCURS ON BUSY ERROR 2879 / 2880 02753 7301 TST70, CLA CLL IAC 2881 02754 4453 CLRALL /CLEAR CONTROL 2882 02755 1102 TAD K0400 /ENABLE INT. BIT 2883 02756 4450 LDCMD /LOAD COMMAND 2884 02757 4444 ENMAN1 /ENTER MAINTENANCE 2885 02760 7326 CLA CLL CML RTL 2886 02761 4453 CLRALL /DCLR 2887 02762 4437 IONWAT /WAIT FOR INT. 2888 02763 7610 SKP CLA /INT. O.K. 2889 02764 5374 JMP T70E /ERROR, DISK INT. 2890 02765 4453 CLRALL /CLEAR STATUS 2891 02766 4437 IONWAT /WAIT FOR INTERRUPT 2892 02767 5374 JMP T70E /ERROR, NO INT. 2893 02770 4453 CLRALL /DCLR 2894 02771 4437 IONWAT /WAIT FOR INT. 2895 02772 7610 SKP CLA /INT. O.K. 2896 02773 4435 NERROR /O.K. 4096 LOOPS 2897 02774 4436 T70E, ERROR /ERROR, INT. 2898 02775 2753 TST70 /SCOPE LOOP POINTER 2899 02776 0007 0007 /TEXT POINTER 2900 / 2901 /VERIFY THAT "RDBUF", "DLCA", "DRST", "DLAG" 2902 /OR "DSKP" DOES NOT AFFECT STATUS REGISTER. 2903 / 2904 02777 7301 TST71, CLA CLL IAC 2905 03000 4453 CLRALL /CLEAR CONTROL 2906 03001 4444 ENMAN1 /ENTER MAINTENANCE 2907 03002 7326 CLA CLL CML RTL 2908 03003 4453 CLRALL /DCLR 2909 03004 1103 TAD K1000 /ENABLE SHIFT 2910 03005 4455 LDMAN /LOAD MAINTENANCE 2911 03006 7326 CLA CLL CML RTL 2912 03007 1177 TAD STCON 2913 03010 1070 TAD K0004 2914 03011 1106 TAD K4000 /EXPECTED STATUS 2915 03012 3163 DCA GDREG2 /SETUP COMPARE REGISTER 2916 03013 4456 RDBUF /READ BUFFER 2917 03014 1153 TAD REG1 2918 03015 4442 RDSTAT /READ STATUS 2919 03016 1154 TAD REG2 2920 03017 4451 LDCUR /LOAD CURRENT ADDRESS 2921 03020 1153 TAD REG1 2922 03021 4447 DSKSKP /DSKP 2923 03022 7000 NOP 2924 03023 4452 LDADD /LOAD DISK ADDRESS 2925 03024 1153 TAD REG1 2926 03025 4427 LDBUF /LOAD BUFFER REGISTER 2927 03026 1154 TAD REG2 2928 03027 4442 RDSTAT /READ STATUS 2929 03030 4440 ACCMP1 /CHECK RESULTS 2930 03031 7610 SKP CLA /STATUS O.K. 2931 03032 5241 JMP T71E /ERROR, STATUS 2932 03033 4453 CLRALL /CLEAR STATUS 2933 03034 1177 TAD STCON /EXPECTED STATUS 2934 03035 3163 DCA GDREG2 /SETUP COMPARE REGISTER 2935 03036 4442 RDSTAT /READ STATUS 2936 03037 4440 ACCMP1 /CHECK RESULTS 2937 03040 4435 NERROR /O.K. 4096 LOOPS 2938 03041 4436 T71E, ERROR /ERROR, STATUS REGISTER 2939 03042 2777 TST71 /SCOPE LOOP POINTER 2940 03043 5000 5000 /TEXT POINTER 2941 / 2942 /VERIFY THAT "WORD COUNT" OVERFLOWS AND SETS 2943 /TRANSFER DONE ONLY AFTER 256 (12 BIT COUNTS). 2944 /TRANSFER DONE SHOULD SET ON THE 11 TH. SHIFT 2945 /OF THE 256 TH. WORD. 2946 / 2947 03044 7240 TST72, CLA CMA 2948 03045 3153 DCA REG1 /SET FOR 1 PASS PER TEST 2949 03046 7301 CLA CLL IAC 2950 03047 4453 CLRALL /DCLR "CLR ALL" 2951 03050 1177 TAD STCON 2952 03051 3163 DCA GDREG2 /SETUP COMPARE REGISTER 2953 03052 7326 CLA CLL CML RTL /TWO 2954 03053 1136 TAD M12 2955 03054 3156 DCA TCNTR1 /FOR FINAL WORD! 2956 03055 1143 TAD M255 2957 03056 3157 DCA TCNTR2 /ONE LESS THAN "LAST WORD" 2958 03057 4444 ENMAN1 /ENTER MAINTENANCE MODE 2959 03060 1136 T72R, TAD M12 2960 03061 3160 DCA TCNTR3 /FOR EACH 12 BIT WORD 2961 03062 1077 TAD K0100 /ENABLE BITS TO SHIFT SILO 2962 03063 4455 LDMAN /LOAD MAINTENANCE 2963 03064 2160 ISZ TCNTR3 /SKIP ON EVERY "12 BIT WORD" 2964 03065 5263 JMP .-2 2965 03066 4456 RDBUF /THIS SHOULD PREVENT A "DRL" 2966 03067 4442 RDSTAT /GET STATUS 2967 03070 4440 ACCMP1 /CHECK RESULTS 2968 03071 7610 SKP CLA 2969 03072 5315 JMP T72E /STATUS ERROR 2970 03073 2157 ISZ TCNTR2 2971 03074 5260 JMP T72R /COUNT 255 "12 BIT WORDS" 2972 03075 1077 TAD K0100 /ENABLE SHIFT SILO 2973 03076 4455 LDMAN /LOAD MAINTENANCE 2974 03077 2156 ISZ TCNTR1 /BIT COUNTER 2975 03100 5276 JMP .-2 /COUNT 11 BITS 2976 03101 4442 RDSTAT /READ STATUS 2977 03102 4440 ACCMP1 /CHECK RESULTS 2978 03103 7610 SKP CLA /STATUS O.K. 2979 03104 5315 JMP T72E /ERROR, STATUS 2980 03105 7330 CLA CLL CML RAR 2981 03106 1177 TAD STCON 2982 03107 3163 DCA GDREG2 /SETUP COMPARE REGISTER 2983 03110 1077 TAD K0100 2984 03111 4455 LDMAN /SHIFT IN LAST WORD 2985 03112 4442 RDSTAT /READ STATUS 2986 03113 4440 ACCMP1 /ONLY TRANSFER DONE 2987 03114 4435 NERROR /STATUS O.K. 2988 03115 4436 T72E, ERROR /ERROR, 12 BIT COUNTER 2989 03116 3044 TST72 /SCOPE LOOP POINTER 2990 03117 5000 5000 /TEXT POINTER 2991 / 2992 03120 5721 JMP I .+1 /TO NEXT TEST 2993 03121 3200 TST73 2994 / 2995 PAGE 2996 / 2997 /VERIFY THAT DCLR DOES CLEAR 12 BIT COUNTER 2998 / 2999 03200 7240 TST73, CLA CMA 3000 03201 3153 DCA REG1 /SET FOR 1 PASS PER TEST 3001 03202 1143 TAD M255 3002 03203 3161 DCA TCNTR4 /SETUP COUNTER 3003 03204 7301 T73R1, CLA CLL IAC 3004 03205 4453 CLRALL /DCLR "CLR ALL" 3005 03206 1161 TAD TCNTR4 3006 03207 3156 DCA TCNTR1 3007 03210 1136 T73R2, TAD M12 3008 03211 3157 DCA TCNTR2 /12 BIT WORD COUNTER 3009 03212 4444 ENMAN1 /ENTER MAINTENANCE MODE 3010 03213 1077 TAD K0100 /ENABLE SHIFT 3011 03214 4455 LDMAN /LOAD MAINTENANCE 3012 03215 2157 ISZ TCNTR2 /COUNT SHIFTS 3013 03216 5214 JMP .-2 /MORE TO GO 3014 03217 4456 RDBUF /PREVERN DRL 3015 03220 2156 ISZ TCNTR1 /DO IT 12 TIMES 3016 03221 5210 JMP T73R2 /MORE 12 BIT COUNTS 3017 03222 7301 CLA CLL IAC /ENABLE CLEAR CONTROL 3018 03223 4453 CLRALL /AND CLEAR THE COUNTER 3019 03224 1177 TAD STCON 3020 03225 3163 DCA GDREG2 /SETUP COMPARE REGISTER 3021 03226 1136 TAD M12 3022 03227 3156 DCA TCNTR1 /FOR FINAL WORD! 3023 03230 1143 TAD M255 3024 03231 3157 DCA TCNTR2 /FOR ONE LESS THAN "LAST WORD" 3025 03232 4444 ENMAN1 /ENTER MAINTENANCE MODE 3026 03233 1136 T73R3, TAD M12 3027 03234 3160 DCA TCNTR3 /FOR EACH 12 BIT WORD 3028 03235 1077 TAD K0100 /ENABLE BITS TO SHIFT SILO 3029 03236 4455 LDMAN /LOAD MAINTENANCE 3030 03237 2160 ISZ TCNTR3 /SKIP ON EVERY "12 BIT WORD" 3031 03240 5236 JMP .-2 3032 03241 4456 RDBUF /THIS SHOULD PREVENT A "DRL" 3033 03242 4442 RDSTAT /GET STATUS 3034 03243 4440 ACCMP1 /CHECK RESULTS 3035 03244 7610 SKP CLA 3036 03245 5266 JMP T73E /STATUS ERROR 3037 03246 2157 ISZ TCNTR2 3038 03247 5233 JMP T73R3 /COUNT 255 "12 BIT WORDS" 3039 03250 7330 CLA CLL CML RAR 3040 03251 1177 TAD STCON 3041 03252 3163 DCA GDREG2 /SETUP COMPARE REGISTER 3042 03253 1077 TAD K0100 3043 03254 4455 LDMAN /SHIFT IN LAST WORD 3044 03255 2156 ISZ TCNTR1 3045 03256 5254 JMP .-2 3046 03257 4442 RDSTAT /READ STATUS 3047 03260 4440 ACCMP1 /ONLY TRANSFER DONE 3048 03261 7610 SKP CLA /STATUS O.K. 3049 03262 5266 JMP T73E /ERROR, STATUS 3050 03263 2161 ISZ TCNTR4 /UPDATE SPECIAL COUNTER 3051 03264 5204 JMP T73R1 /MORE TO TEST 3052 03265 4435 NERROR /STATUS OK 3053 03266 4436 T73E, ERROR /ERROR, 12 BIT COUNTER 3054 03267 3200 TST73 /SCOPE LOOP POINTER 3055 03270 5000 5000 /TEXT POINTER 3056 / 3057 / 3058 /VERIFY THAT 12TH BIT O.K. H DOES INHIBIT 3059 /SETTING DB CONT1=1, THIS IS WHAT STOPS 3060 /HALF BLOCK DATA BREAKS ON A READ BREAK. 3061 / 3062 03271 7301 TST74, CLA CLL IAC 3063 03272 4453 CLRALL /CLEAR CONTROL 3064 03273 1077 TAD K0100 /HALF BLOCK TRANSFERS 3065 03274 4450 LDCMD /LOAD COMMAND 3066 03275 7340 CLA CLL CMA 3067 03276 3153 DCA REG1 /SET UP FOR 1 PASS 3068 03277 1141 TAD M128 3069 03300 3156 DCA TCNTR1 /COUNTER FOR 128 WORDS 3070 03301 4444 ENMAN1 /ENTER MAINTENANCE MODE 3071 03302 3163 T74R1, DCA GDREG2 /SETUP COMPARE REGISTER 3072 03303 1136 T74R1A, TAD M12 3073 03304 3157 DCA TCNTR2 /12 BIT WORD COUNTER 3074 03305 7300 T74R2, CLA CLL 3075 03306 1077 TAD K0100 /ENABLE SHIFT 3076 03307 4455 LDMAN /LOAD MAINTENANCE 3077 03310 2157 ISZ TCNTR2 /COUNT BITS 3078 03311 5307 JMP .-2 /MORE TO GO 3079 03312 4456 RDBUF /READ LOWER BUFFER 3080 03313 4440 ACCMP1 /CHECK RESULTS 3081 03314 7610 SKP CLA /DATA O.K. 3082 03315 5340 JMP T74E /ERROR 3083 03316 2156 ISZ TCNTR1 /COUNT 128 WORDS 3084 03317 5302 JMP T74R1 /MORE TO GO 3085 03320 1141 TAD M128 3086 03321 3156 DCA TCNTR1 /SETUP COUNTER 3087 03322 1136 T74R3, TAD M12 3088 03323 3157 DCA TCNTR2 /SETUP BIT COUNTER 3089 03324 7326 CLA CLL CML RTL 3090 03325 1077 TAD K0100 /ENABLE SHIFT 3091 03326 4455 LDMAN /LOAD MAINTENANCE 3092 03327 2157 ISZ TCNTR2 /COUNT BITS 3093 03330 5326 JMP .-2 /MORE TO GO 3094 03331 4456 RDBUF /READ LOWER BUFFER 3095 03332 4440 ACCMP1 /CHECK RESULTS 3096 03333 7610 SKP CLA /DATA O.K. 3097 03334 5340 JMP T74E /ERROR 3098 03335 2156 ISZ TCNTR1 /UPDATE COUNTER 3099 03336 5322 JMP T74R3 /TEST 128 TIMES 3100 03337 4435 NERROR /TO NEXT TEST 3101 03340 4436 T74E, ERROR /ERROR, 128 WORD 3102 03341 3271 TST74 /SCOPE LOOP POINTER 3103 03342 4405 4405 /TEXT POINTER 3104 / 3105 03343 5744 JMP I .+1 /TO NEXT TEST 3106 03344 3400 TST75 3107 / 3108 /VERIFY THAT TRANSFER DONE "ALONE" CAUSES 3109 /DSKP TO SKIP. 3110 / 3111 PAGE 3112 03400 7340 TST75, CLA CLL CMA 3113 03401 3153 DCA REG1 /SET FOR 1 PASS PER TEST 3114 03402 7301 CLA CLL IAC 3115 03403 4453 CLRALL /DCLR "CLR ALL" 3116 03404 1143 TAD M255 3117 03405 3156 DCA TCNTR1 /ONE LESS THAN "LAST WORD" 3118 03406 1136 TAD M12 3119 03407 3157 DCA TCNTR2 /FINAL WORD 3120 03410 4444 ENMAN1 /ENTER MAINTENANCE MODE 3121 03411 1136 T75R, TAD M12 3122 03412 3160 DCA TCNTR3 /"12 BIT" WORD COUNTER 3123 03413 1077 TAD K0100 3124 03414 4455 LDMAN /LOAD MAINTENANCE 3125 03415 2160 ISZ TCNTR3 3126 03416 5214 JMP .-2 /COUNT 12 BIT WORDS 3127 03417 4456 RDBUF /PREVENT "DRL" 3128 03420 4447 DSKSKP /SHOULD NOT SKIP HERE 3129 03421 7610 SKP CLA /O.K. 3130 03422 5234 JMP T75E /ERROR, DSKP 3131 03423 2156 ISZ TCNTR1 3132 03424 5211 JMP T75R /COUNT 255 WORDS 3133 03425 1077 TAD K0100 3134 03426 4455 LDMAN /LOAD MAINTENANCE 3135 03427 2157 ISZ TCNTR2 3136 03430 5226 JMP .-2 /DO ONE MORE WORD 3137 03431 4447 DSKSKP /DSKP "SKIP" 3138 03432 7610 SKP CLA /ERROR, DSKP DID NOT SKIP 3139 03433 4435 NERROR /O.K. 4096 LOOPS 3140 03434 4436 T75E, ERROR /ERROR, DSKP 3141 03435 3400 TST75 /SCOPE LOOP POINTER 3142 03436 0006 0006 /TEXT POINTER 3143 / 3144 /VERIFY THAT TRANSFER DONE CAUSES "INT. RQ." 3145 / 3146 03437 7340 TST76, CLA CLL CMA 3147 03440 3153 DCA REG1 /SETUP FOR ! PASS PER TEST 3148 03441 7301 CLA CLL IAC 3149 03442 4453 CLRALL /DCLR "CLR ALL" 3150 03443 1143 TAD M255 3151 03444 3156 DCA TCNTR1 /ONE LESS THAN "LAST WORD" 3152 03445 1136 TAD M12 3153 03446 3157 DCA TCNTR2 /FINAL WORD 3154 03447 1102 TAD K0400 /ENABLE INT. BIT 3155 03450 4450 LDCMD /LOAD COMMAND REGISTER 3156 03451 4444 ENMAN1 /ENTER MAINTENANCE MODE 3157 03452 1136 T76R, TAD M12 3158 03453 3160 DCA TCNTR3 /"12 BIT" WORD COUNTER 3159 03454 1077 TAD K0100 /ENABLE SHIFT SILO 3160 03455 4455 LDMAN /LOAD MAINTENANCE 3161 03456 2160 ISZ TCNTR3 3162 03457 5255 JMP .-2 /COUNT "12 BIT" WORDS 3163 03460 4456 RDBUF /PREVENT "DRL" 3164 03461 4437 IONWAT /WAIT FOR INT. 3165 03462 7610 SKP CLA /O.K. NO INT. 3166 03463 5275 JMP T76E /ERROR, INT. OCCURRED 3167 03464 2156 ISZ TCNTR1 3168 03465 5252 JMP T76R /COUNT 255 WORDS 3169 03466 1077 TAD K0100 3170 03467 4455 LDMAN /LOAD MAINTENANCE 3171 03470 2157 ISZ TCNTR2 3172 03471 5267 JMP .-2 /DO ONE MORE WORD 3173 03472 4437 IONWAT /WAIT FOR EXPECTED INT. 3174 03473 7610 SKP CLA /ERROR, INT. DIDN'T OCCUR 3175 03474 4435 NERROR /O.K. 4096 LOOPS 3176 03475 4436 T76E, ERROR /ERROR, INT. 3177 03476 3437 TST76 /SCOPE LOOP POINTER 3178 03477 0007 0007 /TEXT POINTER 3179 / 3180 / 3181 / 3182 / 3183 /VERIFY "DATA BREAK" FROM CURRENT FIELD LOCATION 0 3184 /USE DATA PATTERN 0000 AND 7777. "DO A WRITE" 3185 / 3186 03500 7301 TST77, CLA CLL IAC 3187 03501 4453 CLRALL /DCLR 3188 03502 4444 ENMAN1 /ENTER MAINTENANCE MODE 3189 03503 1175 TAD HOMEMA /CURRENT FIELD BITS 3190 03504 1106 TAD K4000 /ENABLE "WRITE" 3191 03505 4450 LDCMD /LOAD COMMAND 3192 03506 1153 TAD REG1 3193 03507 7110 CLL RAR 3194 03510 7630 SZL CLA 3195 03511 7340 CLA CLL CMA /MAKE "DATA WORD" 3196 03512 3163 DCA GDREG2 /SETUP COMPARE REGISTER 3197 03513 1163 TAD GDREG2 3198 03514 3000 DCA 0 /STORE OUTBOUND DATA 3199 03515 7340 CLA CLL CMA 3200 03516 4451 LDCUR /SET CURRENT ADDRESS TO 7777 3201 03517 4451 LDCUR /LOAD CURRENT ADDRESS TO 0 3202 03520 1076 TAD K0040 /ENABLE "BREAK" 3203 03521 4455 LDMAN /LOAD AND GO 3204 03522 4456 RDBUF /READ DATA BUFFER 3205 03523 4440 ACCMP1 /CHECK RESULTS 3206 03524 4435 NERROR /O.K. 4096 LOOPS 3207 3208 03525 4436 T77E, ERROR /ERROR, DATA BREAK 3209 03526 3500 TST77 /SCOPE LOOP POINTER 3210 03527 4263 4263 /TEXT POINTER 3211 3212 / 3213 /VERIFY THAT "DATA BREAK" WORKS FROM LOCATION 0 3214 /OF CURRENT FIELD. DO "A WRITE" AND USE DATA 3215 /PATTERN "2525 AND 5252" 3216 / 3217 03530 7301 TST78, CLA CLL IAC 3218 03531 4453 CLRALL /DCLR "CLR ALL" 3219 03532 4444 ENMAN1 /ENTER MAINTENANCE MODE 3220 03533 1153 TAD REG1 3221 03534 7110 CLL RAR 3222 03535 7630 SZL CLA 3223 03536 1120 TAD K2525 3224 03537 1120 TAD K2525 /TAKE DATA WORD 3225 03540 3163 DCA GDREG2 /SETUP COMPARE REGISTER 3226 03541 1163 TAD GDREG2 3227 03542 3000 DCA 0 /STORE OUTBOUND DATA 3228 03543 1175 TAD HOMEMA /GET CURRENT FIELD BITS 3229 03544 1126 TAD K5000 /GET "WRITE ENABLE BIT" 3230 03545 4450 LDCMD /LOAD COMMAND REGISTER 3231 03546 1154 TAD REG2 3232 03547 4451 LDCUR /SET CURRENT ADDRESS TO 7777 3233 03550 4451 LDCUR /LOAD CURRENT ADDRESS TO 0 3234 03551 1076 TAD K0040 /DATA BREAK ENABLE BIT 3235 03552 4455 LDMAN /LOAD AND GO 3236 03553 4456 RDBUF /READ DATA BUFFER 3237 03554 4440 ACCMP1 /CHECK RESULTS 3238 03555 4435 NERROR /O.K. 4096 LOOPS 3239 03556 4436 T78E, ERROR /ERROR, DATA BREAK 3240 03557 3530 TST78 /SCOPE LOOP POINTER 3241 03560 4263 4263 /TEXT POINTER 3242 / 3243 /VERIFY THAT "DATA BREAK" WORKS FROM LOCATION 7777 3244 /OF CURRENT FIELD. DO "A WRITE" AND USE DATA PATTERN 3245 /"0000 AND 7777" 3246 / 3247 03561 7301 TST79, CLA CLL IAC 3248 03562 4453 CLRALL /DCLR "CLR ALL" 3249 03563 4444 ENMAN1 /ENTER MAINTENANCE MODE 3250 03564 1153 TAD REG1 3251 03565 7110 CLL RAR 3252 03566 7630 SZL CLA 3253 03567 7340 CLA CLL CMA /MAKE DATA WORD 3254 03570 3163 DCA GDREG2 /SETUP COMPARE REGISTER 3255 03571 1163 TAD GDREG2 3256 03572 3532 DCA I K7777 /STORE OUTBOUND DATA 3257 03573 1153 TAD REG1 3258 03574 4451 LDCUR /SET CURRENT ADDRESS 3259 03575 7340 CLA CLL CMA 3260 03576 4451 LDCUR /LOAD CURRENT ADDRESS TO 7777 3261 03577 1175 TAD HOMEMA /CURRENT FIELD BITS 3262 03600 1106 TAD K4000 /WRITE ENABLE 3263 03601 4450 LDCMD /LOAD COMMAND REGISTER 3264 03602 1076 TAD K0040 /BREAK ENABLE BIT 3265 03603 4455 LDMAN /LOAD AND GO 3266 03604 4456 RDBUF /READ DATA BUFFER 3267 03605 4440 ACCMP1 /CHECK RESULTS 3268 03606 4435 NERROR /O.K. 4096 LOOPS 3269 03607 4436 T79E, ERROR /ERROR, DATA BREAK 3270 03610 3561 TST79 /SCOPE LOOP POINTER 3271 03611 4263 4263 /TEXT POINTER 3272 3273 / 3274 /VERIFY "DATA BREAK" FROM LOCATION 7777 OF 3275 /CURRENT FIELD. DO A "WRITE" AND USE DATA 3276 /PATTERN 2525 AND 5252. 3277 / 3278 03612 7301 TST80, CLA CLL IAC 3279 03613 4453 CLRALL /DCLR "CLR ALL" 3280 03614 4444 ENMAN1 /ENTER MAINTENANCE MODE 3281 03615 1153 TAD REG1 3282 03616 7110 CLL RAR 3283 03617 7630 SZL CLA 3284 03620 1120 TAD K2525 3285 03621 1120 TAD K2525 /MAKE DATA WORD 3286 03622 3163 DCA GDREG2 /SETUP COMPARE REGISTER 3287 03623 1163 TAD GDREG2 3288 03624 3532 DCA I K7777 /STORE OUTBOUND DATA 3289 03625 1175 TAD HOMEMA /CURRENT FIELD BITS 3290 03626 1126 TAD K5000 /FUNCTION "WRITE" 3291 03627 4450 LDCMD /LOAD COMMAND 3292 03630 1154 TAD REG2 3293 03631 4451 LDCUR /SET CURRENT ADDRESS 3294 03632 7340 CLA CLL CMA 3295 03633 4451 LDCUR /LOAD CURRENT ADDRESS TO 7777 3296 03634 1076 TAD K0040 /BREAK ENABLE BIT 3297 03635 4455 LDMAN /LOAD MAINTENANCE AND GO 3298 03636 4456 RDBUF /READ BUFFER 3299 03637 4440 ACCMP1 /CHECK RESULTS 3300 03640 4435 NERROR /O.K. 4096 LOOPS 3301 03641 4436 T80E, ERROR /ERROR, DATA BREAK 3302 03642 3612 TST80 /SCOPE LOOP POINTER 3303 03643 4263 4263 /TEXT POINTER 3304 / 3305 /VERIFY THAT "DATA BREAK" WORKS FROM CURRENT FIELD 3306 /LOCATION 0. DO A "WRITE" AND USE ALL COMBINATION PATTERN 3307 /ALSO VERIFY THAT DATA IN LOCATION 0 DOESN'T CHANGE 3308 /ON A WRITE BREAK. (NOTE: DATA FROM LOCATION 0 PUT 3309 /IN INDICATOR "DT:") 3310 / 3311 03644 7301 TST81, CLA CLL IAC 3312 03645 4453 CLRALL /DCLR "CLR ALL" 3313 03646 4444 ENMAN1 /ENTER MAINTENANCE MODE 3314 03647 1154 TAD REG2 3315 03650 3163 DCA GDREG2 /SETUP COMPARE REGISTER 3316 03651 1163 TAD GDREG2 3317 03652 3000 DCA 0 /STORE OUTBOUND DATA 3318 03653 4451 LDCUR /SET CURRENT ADDRESS TO 0 3319 03654 1175 TAD HOMEMA /CURRENT FIELD BITS 3320 03655 1106 TAD K4000 /WRITE FUNCTION 3321 03656 4450 LDCMD /LOAD COMMAND 3322 03657 1076 TAD K0040 /DATA BREAK ENABLE BIT 3323 03660 4455 LDMAN /LOAD AND GO 3324 03661 4456 RDBUF /READ BUFFER 3325 03662 4440 ACCMP1 /CHECK RESULTS 3326 03663 7610 SKP CLA 3327 03664 5272 JMP T81E /ERROR 3328 03665 1000 TAD 0 3329 03666 3173 DCA DTREG /SAVE IN CASE OF ERROR 3330 03667 1173 TAD DTREG 3331 03670 4440 ACCMP1 /CHECK RESULTS 3332 03671 4435 NERROR /O.K. 4096 LOOPS 3333 03672 4436 T81E, ERROR /ERROR, DATA BREAK 3334 03673 3644 TST81 /SCOPE LOOP POINTER 3335 03674 4263 4263 /TEXT POINTER 3336 3337 / 3338 /VERIFY "DATA BREAK" FROM LOCATION 7777 OF 3339 /CURRENT FIELD. DO A "WRITE" AND USE ALL COMBINATIONS. 3340 /ALSO VERIFY THAT OUTBOUND DATA IN LOCATION 7777 3341 /DOESN'T CHANGE WHEN DOING A WRITE BREAK. (NOTE: DATA FROM 3342 /LOCATION 7777 PUT IN INDICATOR "DT:") 3343 / 3344 03675 7301 TST82, CLA CLL IAC 3345 03676 4453 CLRALL /DCLR "CLR ALL" 3346 03677 4444 ENMAN1 /ENTER MAINTENANCE MODE 3347 3348 03700 1153 TAD REG1 3349 03701 3163 DCA GDREG2 /SETUP COMPARE REGISTER 3350 03702 1163 TAD GDREG2 3351 03703 3532 DCA I K7777 /STORE OUTBOUND DATA 3352 03704 7340 CLA CLL CMA 3353 03705 4451 LDCUR /SET CURRENT ADDRESS TO 7777 3354 03706 1175 TAD HOMEMA /CURRENT FIELD BITS 3355 03707 1126 TAD K5000 /WRITE FUNCTION 3356 03710 4450 LDCMD /LOAD COMMAND REGISTER 3357 03711 1076 TAD K0040 /BREAK ENABLE BIT 3358 03712 4455 LDMAN /LOAD AND GO 3359 03713 4456 RDBUF /READ BUFFER 3360 03714 4440 ACCMP1 /CHECK RESULTS 3361 03715 7610 SKP CLA 3362 03716 5324 JMP T82E /ERROR 3363 03717 1532 TAD I K7777 3364 03720 3173 DCA DTREG /SAVE IN CASE OF ERROR 3365 03721 1173 TAD DTREG 3366 03722 4440 ACCMP1 /CHECK RESULTS 3367 03723 4435 NERROR /O.K. 4096 LOOPS 3368 03724 4436 T82E, ERROR /ERROR, DATA BREAK 3369 03725 3675 TST82 /SCOPE LOOP POINTER 3370 03726 4263 4263 /TEXT POINTER 3371 / 3372 /VERIFY THAT "DCLR" CLEARS CURRENT ADDRESS 3373 /FIRST DO A DATA BREAK FROM LOCATION 7776 3374 /THEN "DCLR" FROM LOCATION 0000. DO "A WRITE" 3375 /AND USE DATA PATTERN ALL COMBINATIONS. 3376 / 3377 03727 7301 TST83, CLA CLL IAC 3378 03730 4453 CLRALL /DCLR "CLR ALL" 3379 03731 4444 ENMAN1 /ENTER MAINTENANCE MODE 3380 03732 1153 TAD REG1 3381 03733 3163 DCA GDREG2 /SETUP COMPARE REGISTER 3382 03734 1163 TAD GDREG2 3383 03735 3510 DCA I K7776 /STORE OUTBOUND DATA BREAK 1 3384 03736 1154 TAD REG2 3385 03737 3000 DCA 0 /STORE OUTBOUND DATA BREAK 2 3386 03740 1175 TAD HOMEMA /CURRENT FIELD BITS 3387 03741 1106 TAD K4000 /WRITE FUNCTION 3388 03742 4450 LDCMD /LOAD COMMAND 3389 03743 7344 CLA CLL CMA RAL 3390 03744 4451 LDCUR /LOAD CURRENT ADDRESS TO 7776 3391 03745 1076 TAD K0040 /BREAK ENABLE BIT 3392 03746 4455 LDMAN /LOAD AND GO 3393 03747 4456 RDBUF /READ BUFFER 3394 03750 4440 ACCMP1 /CHECK RESULTS 3395 03751 7610 SKP CLA /O.K. TRY LOCATION 0 3396 03752 5371 JMP T83E /ERROR, DATA BREAK 3397 03753 7301 CLA CLL IAC 3398 03754 4453 CLRALL /DCLR "CLEAR CURRENT ADDRESS" 3399 03755 4444 ENMAN1 /ENTER MAINENANCE MODE 3400 03756 3172 DCA ADREG /SETUP FOR ERROR PRINTER 3401 03757 1175 TAD HOMEMA /CURRENT FIELD BITS 3402 03760 1126 TAD K5000 /FUNCTION WRITE 3403 03761 4450 LDCMD /LOAD COMMAND 3404 03762 1154 TAD REG2 3405 03763 3163 DCA GDREG2 /SETUP COMPARE REGISTER 3406 03764 1076 TAD K0040 /BREAK ENABLE BIT 3407 03765 4455 LDMAN /LOAD AND GO 3408 03766 4456 RDBUF /READ BUFFER 3409 3410 03767 4440 ACCMP1 /CHECK RESULTS 3411 03770 4435 NERROR /ALL WORKED 4096 LOOPS 3412 03771 4436 T83E, ERROR /ERROR, DATA BREAK 3413 03772 3727 TST83 /SCOPE LOOP POINTER 3414 03773 4263 4263 /TEXT POINTER 3415 / 3416 /VERIFY THAT CURRENT ADDRESS DOES INCREMENT FROM 7777 3417 /TO 0000. DO A WRITE DATA BREAK AND USE DATA PATTERN 3418 /ALL COMBINATION. 3419 / 3420 03774 7301 TST84, CLA CLL IAC 3421 03775 4453 CLRALL /CLEAR CONTROL 3422 03776 1153 TAD REG1 3423 03777 3000 DCA 0 /STORE OUTBOUND DATA 3424 04000 1154 TAD REG2 3425 04001 3532 DCA I K7777 /STORE OUTBOUND DATA 3426 04002 7340 CLA CLL CMA 3427 04003 4451 LDCUR /LOAD CURRENT ADDRESS 3428 04004 4444 ENMAN1 /ENTER MAINTENANCE MODE 3429 04005 1126 TAD K5000 /WRITE FUNCTION 3430 04006 1175 TAD HOMEMA /CURRENT FIELD BITS 3431 04007 4450 LDCMD /LOAD COMMAND 3432 04010 7344 CLA CLL CMA RAL 3433 04011 3156 DCA TCNTR1 /2 BREAK COUNTER 3434 04012 1076 TAD K0040 /ENABLE BREAK BIT 3435 04013 4455 LDMAN /LOAD MAINTENANCE 3436 04014 2156 ISZ TCNTR1 /COUNT BREAKS 3437 04015 5213 JMP .-2 /DO 2 3438 04016 7300 CLA CLL 3439 04017 1154 TAD REG2 3440 04020 3163 DCA GDREG2 /SETUP COMPARE REGISTER 3441 04021 4456 RDBUF /GET FIRST WORD 3442 04022 4440 ACCMP1 /CHECK IT 3443 04023 7610 SKP CLA /FIRST O.K. 3444 04024 5233 JMP T84E /ERROR, FIRST WORD 3445 04025 3172 DCA ADREG /SETUP ERROR PRINTER 3446 04026 1153 TAD REG1 3447 04027 3163 DCA GDREG2 /SETUP COMPARE REGISTER 3448 04030 4456 RDBUF /GET SECOND WORD 3449 04031 4440 ACCMP1 /CHECK IT 3450 04032 4435 NERROR /O.K. 4096 LOOPS 3451 04033 4436 T84E, ERROR /DATA BREAK 3452 04034 3774 TST84 /SCOPE LOOP POINTER 3453 04035 4263 4263 /TEXT POINTER 3454 / 3455 / 3456 /VERIFY THAT CURRENT ADDRESS DOES INCREMENT 3457 /ADDRESS. TEST FROM 0200 TO TST85 OF CURRENT 3458 /FIELD. DO A WRITE DATA BREAK. 3459 / 3460 04036 7301 TST85, CLA CLL IAC 3461 04037 4453 CLRALL /DCLR "CLR ALL" 3462 04040 7340 CLA CLL CMA 3463 04041 3153 DCA REG1 /SETUP FOR 1 PASS PER TEST 3464 04042 1100 TAD K0200 3465 04043 3157 DCA TCNTR2 /START AT ADDRESS 0200 3466 04044 1100 TAD K0200 3467 04045 4451 LDCUR /LOAD CURRENT ADDRESS 3468 04046 4444 T85R1, ENMAN1 /ENTER MAINTENANCE MODE 3469 04047 4452 LDADD /KEEP WRITE INHIBIT CLEAR 3470 04050 1557 TAD I TCNTR2 /GET INSTRUCTION 3471 04051 3156 DCA TCNTR1 /SAVE INSTRUCTION 3472 04052 1157 TAD TCNTR2 3473 04053 7110 CLL RAR 3474 04054 7630 SZL CLA 3475 04055 7240 CLA CMA /USE DATA 7777 3476 04056 3163 DCA GDREG2 /SETUP COMPARE REGISTER 3477 04057 1163 TAD GDREG2 3478 04060 3557 DCA I TCNTR2 /STORE OUTBOUND DATA 3479 04061 1175 TAD HOMEMA /CURRENT FIELD BITS 3480 04062 1106 TAD K4000 /WRITE FUNCTION 3481 04063 4450 LDCMD /LOAD COMMAND REGISTER 3482 04064 1076 TAD K0040 /BREAK ENABLE BIT 3483 04065 4455 LDMAN /LOAD AND GO 3484 04066 7300 CLA CLL 3485 04067 1156 TAD TCNTR1 /GET INSTRUCTION 3486 04070 3557 DCA I TCNTR2 /REPLACE INSTRUCTION 3487 04071 1157 TAD TCNTR2 3488 04072 3172 DCA ADREG /ADDRESS OF BREAK 3489 04073 4456 RDBUF /GET DATA 3490 04074 4440 ACCMP1 /CHECK RESULTS 3491 04075 7610 SKP CLA 3492 04076 5306 JMP T85E /ERROR, DATA BREAK 3493 04077 1157 TAD TCNTR2 3494 04100 1152 TAD MTS85 /SPECIAL POINTER FOR START OF 3495 04101 7650 SNA CLA /THIS TEST. 3496 04102 5305 JMP T85OK /TEST O.K. 3497 04103 2157 ISZ TCNTR2 3498 04104 5246 JMP T85R1 /LOOP DO 0200 TO TST60 3499 04105 4435 T85OK, NERROR /THIS ADDRESS WORKED TRY NEXT 3500 04106 4436 T85E, ERROR /ERROR, DATA BREAK 3501 04107 4036 TST85 /SCOPE LOOP POINTER 3502 04110 4263 4263 /TEXT POINTER 3503 / 3504 04111 5712 JMP I .+1 /TO NEXT TEST 3505 04112 4200 TST86 3506 / 3507 /VERIFY THAT 8 LAST BREAK SETS AFTER 256 WRITE DATA BREAKS 3508 /AND VERIFY THAT DCLR CLEARS WRITE INHIBIT COUNTER. 3509 / 3510 PAGE 3511 04200 7340 TST86, CLA CLL CMA 3512 04201 3153 DCA REG1 /SETUP FOR 1 PASS PER TEST 3513 04202 1143 TAD M255 3514 04203 3156 DCA TCNTR1 /SPECIAL COUNTER 3515 04204 7301 T86R1, CLA CLL IAC 3516 04205 4453 CLRALL /CLEAR CONTROL 3517 04206 1156 TAD TCNTR1 3518 04207 3157 DCA TCNTR2 /AMOUNT OF BREAKS TO DO 3519 04210 4444 ENMAN1 /ENTER MAINTENANCE MODE 3520 04211 1175 TAD HOMEMA /CURRENT FIELD BITS 3521 04212 1106 TAD K4000 /WRITE FUNCTION 3522 04213 4450 LDCMD /LOAD COMMAND 3523 04214 4451 T86R2, LDCUR /LOAD CURRENT ADDRESS 3524 04215 7340 CLA CLL CMA 3525 04216 3000 DCA 0 /STORE OUTBOUND DATA 3526 04217 7340 CLA CLL CMA 3527 04220 3163 DCA GDREG2 /SETUP COMPARE REGISTER 3528 04221 1076 TAD K0040 /BREAK ENABLE BIT 3529 04222 4455 LDMAN /LOAD AND GO 3530 04223 4456 RDBUF /GET WORD 3531 04224 4440 ACCMP1 /CHECK RESULTS 3532 04225 7610 SKP CLA 3533 04226 5276 JMP T86E /DATA ERROR 3534 04227 2157 ISZ TCNTR2 3535 04230 5214 JMP T86R2 /DO 0-255 BREAKS 3536 04231 7301 CLA CLL IAC 3537 04232 4453 CLRALL /CLEAR CONTROL AND COUNTER 3538 04233 7340 CLA CLL CMA 3539 04234 1143 TAD M255 3540 04235 3157 DCA TCNTR2 /256 BREAK COUNTER 3541 04236 7300 T86R3, CLA CLL 3542 /MAKE DATA PATTERN 3543 04237 3000 DCA 0 /STORE OUTBOUND DATA 3544 04240 3163 DCA GDREG2 /SETUP COMPARE REGISTER 3545 04241 4444 ENMAN1 /ENTER MAINTENANCE MODE 3546 04242 4451 LDCUR /LOAD CURRENT ADDRESS 3547 04243 1126 TAD K5000 /WRITE FUNCTION 3548 04244 1175 TAD HOMEMA /CURRENT FIELD 3549 04245 4450 LDCMD /LOAD COMMAND 3550 04246 1076 TAD K0040 /ENABLE BREAK BIT 3551 04247 4455 LDMAN /LOAD MAINTENANCE 3552 04250 4456 RDBUF /GET WORD 3553 04251 4440 ACCMP1 /CHECK RESULTS 3554 04252 7610 SKP CLA /WORD O.K. 3555 04253 5276 JMP T86E /DATA ERROR 3556 04254 2157 ISZ TCNTR2 3557 04255 5236 JMP T86R3 /DO 256 WRITE BREAKS 3558 04256 1107 TAD K7000 3559 04257 3160 DCA TCNTR3 /CLEAR COUNTER 3560 04260 7340 T86R4, CLA CLL CMA 3561 04261 3000 DCA 0 /STORE NOT OUTBOUND DATA 3562 04262 4451 LDCUR /LOAD CURRENT ADDRESS 3563 04263 1076 TAD K0040 /ENABLE BREAK BIT 3564 04264 4455 LDMAN /LOAD "SHOULD NOT BREAK" 3565 04265 4456 RDBUF /GET DATA 3566 04266 4440 ACCMP1 /CHECK IT 3567 04267 7610 SKP CLA /DATA O.K. 3568 04270 5276 JMP T86E /ERROR, DATA BREAK INHIBIT 3569 04271 2160 ISZ TCNTR3 3570 04272 5260 JMP T86R4 /DO "1000 FAKE" BREAKS 3571 04273 2156 ISZ TCNTR1 3572 04274 5204 JMP T86R1 /START ALL OVER WITH ONE LESS 3573 04275 4435 NERROR /TO NEXT TEST 3574 04276 4436 T86E, ERROR /ERROR, DATA BREAK 3575 04277 4200 TST86 /SCOPE LOOP POINTER 3576 04300 4263 4263 /TEXT POINTER 3577 / 3578 04301 5702 JMP I .+1 /TO NEXT TEST 3579 04302 4303 TST87 3580 / 3581 / 3582 /VERIFY THAT 8 LAST BREAK SETS AFTER 128 BREAKS IF 3583 /HALF BIT IS SET. ALSO MAKE SURE LOAD DISK ADDRESS LOADS 3584 /THE INHIBIT COUNTER CORRECTLY. 3585 / 3586 04303 7340 TST87, CLA CLL CMA 3587 04304 3153 DCA REG1 /SETUP FOR 1 PASS PER TEST 3588 04305 1143 TAD M255 3589 04306 3156 DCA TCNTR1 /SPECIAL COUNTER 3590 04307 7301 T87R1, CLA CLL IAC 3591 04310 4453 CLRALL /CLEAR CONTROL 3592 04311 1156 TAD TCNTR1 3593 04312 3157 DCA TCNTR2 /AMOUNT OF BREAKS TO DO 3594 04313 4444 ENMAN1 /ENTER MAINTENANCE MODE 3595 04314 1077 TAD K0100 /HALF BIT 3596 04315 1175 TAD HOMEMA /CURRENT FIELD BITS 3597 04316 1106 TAD K4000 /WRITE FUNCTION 3598 04317 4450 LDCMD /LOAD COMMAND 3599 04320 4451 T87R2, LDCUR /LOAD CURRENT ADDRESS 3600 04321 7340 CLA CLL CMA 3601 04322 3000 DCA 0 /STORE OUTBOUND DATA 3602 04323 7340 CLA CLL CMA 3603 04324 3163 DCA GDREG2 /SETUP COMPARE REGISTER 3604 04325 1076 TAD K0040 /BREAK ENABLE BIT 3605 04326 4455 LDMAN /LOAD AND GO 3606 04327 4456 RDBUF /GET WORD 3607 04330 4440 ACCMP1 /CHECK RESULTS 3608 04331 7610 SKP CLA 3609 04332 5374 JMP T87E /DATA ERROR 3610 04333 2157 ISZ TCNTR2 3611 04334 5320 JMP T87R2 /DO SO MANY BREAKS 3612 04335 4452 LDADD /LOAD ADDRESS AND INHIBIT COUNT 3613 04336 1141 TAD M128 3614 04337 3157 DCA TCNTR2 /128 BREAK COUNTER 3615 04340 7300 T87R3, CLA CLL 3616 /MAKE DATA WORD 3617 04341 3000 DCA 0 /STORE NOT OUTBOUND DATA 3618 04342 3163 DCA GDREG2 /SETUP COMPARE REGISTER 3619 04343 4451 LDCUR /LOAD CURRENT ADDRESS 3620 04344 1076 TAD K0040 /ENABLE BREAK BIT 3621 04345 4455 LDMAN /LOAD MAINTENANCE 3622 04346 4456 RDBUF /GET WORD 3623 04347 4440 ACCMP1 /CHECK RESULTS 3624 04350 7610 SKP CLA /WORD O.K. 3625 04351 5374 JMP T87E /DATA ERROR 3626 04352 2157 ISZ TCNTR2 3627 04353 5340 JMP T87R3 /DO 128 WRITE BREAKS 3628 04354 1107 TAD K7000 3629 04355 3160 DCA TCNTR3 /CLEAR COUNTER 3630 04356 7340 T87R4, CLA CLL CMA 3631 04357 3000 DCA 0 /STORE NOT OUTBOUND DATA 3632 04360 4451 LDCUR /LOAD CURRENT ADDRESS 3633 04361 1076 TAD K0040 /ENABLE BREAK BIT 3634 04362 4455 LDMAN /LOAD "SHOULD NOT BREAK" 3635 04363 4456 RDBUF /GET DATA 3636 04364 4440 ACCMP1 /CHECK IT 3637 04365 7610 SKP CLA /DATA O.K. 3638 04366 5374 JMP T87E /ERROR, DATA BREAK INHIBIT 3639 04367 2160 ISZ TCNTR3 3640 04370 5356 JMP T87R4 /DO "1000 FAKE" BREAKS 3641 04371 2156 ISZ TCNTR1 3642 04372 5307 JMP T87R1 /START ALL OVER WITH ONE LESS 3643 04373 4435 NERROR /TO NEXT TEST 3644 04374 4436 T87E, ERROR /ERROR, DATA BREAK 3645 04375 4303 TST87 /SCOPE LOOP POINTER 3646 04376 4263 4263 /TEXT POINTER 3647 / 3648 /VERIFY THAT "DATA BREAK" WORKS WITH A "READ" 3649 /TO LOCATION 0 OF CURRENT FIELD. USE DATA 3650 /PATTERN 0000 AND 7777. 3651 / 3652 04377 7301 TST88, CLA CLL IAC 3653 04400 4453 CLRALL /DCLR "CLR ALL" 3654 04401 1175 TAD HOMEMA /CURRENT FIELD 3655 04402 4450 LDCMD /LOAD COMMAND TO 0 3656 04403 1153 TAD REG1 3657 04404 7110 CLL RAR 3658 04405 7630 SZL CLA 3659 04406 7240 CLA CMA 3660 04407 3163 DCA GDREG2 /SETUP COMPARE REGISTER 3661 04410 1163 TAD GDREG2 /GET VALUE TO LOAD 3662 04411 4427 LDBUF /LOAD UPPER BUFFER 3663 04412 1076 TAD K0040 3664 04413 4455 LDMAN /LOAD AND GO 3665 04414 7300 CLA CLL 3666 04415 3172 DCA ADREG /ADDRESS FOR PRINTER 3667 04416 1000 TAD 0 /GET INBOUND WORD 3668 04417 3173 DCA DTREG /SAVE IT 3669 04420 1173 TAD DTREG 3670 04421 4440 ACCMP1 /CHECK 3671 04422 4435 NERROR /O.K. 4096 LOOPS 3672 04423 4436 ERROR /ERROR, DATA BREAK 3673 04424 4377 TST88 /SCOPE LOOP POINTER 3674 04425 4263 4263 /TEXT POINTER 3675 3676 3677 / 3678 /VERIFY WITH A "READ" THAT "DATA BREAK" WORKS 3679 /FROM LOCATION "7777" OF CURRENT FIELD USE 3680 /DATA PATTERN 0000 AND 7777. 3681 / 3682 04426 7301 TST89, CLA CLL IAC 3683 04427 4453 CLRALL 3684 04430 1103 TAD K1000 3685 04431 1175 TAD HOMEMA /CURRENT FIELD 3686 04432 4450 LDCMD /LOAD COMMAND FOR READ 3687 04433 1153 TAD REG1 3688 04434 7110 CLL RAR 3689 04435 7630 SZL CLA 3690 04436 7240 CLA CMA 3691 04437 3163 DCA GDREG2 /SETUP COMPARE REGISTER 3692 04440 7240 CLA CMA 3693 04441 4451 LDCUR /LOAD CURRENT ADDRESS 3694 04442 1163 TAD GDREG2 /GET VALUE TO LOAD 3695 04443 4427 LDBUF /LOAD UPPER BUFFER 3696 04444 1076 TAD K0040 /ENABLE BREAK BIT 3697 04445 4455 LDMAN /LOAD AND GO 3698 04446 7300 CLA CLL 3699 04447 1532 TAD I K7777 /GET "WORD" 3700 04450 3173 DCA DTREG /SAVE INBOUND WORD 3701 04451 1173 TAD DTREG 3702 04452 4440 ACCMP1 /CHECK IT 3703 04453 4435 NERROR /O.K. 4096 LOOPS 3704 04454 4436 ERROR /ERROR, DATA BREAK 3705 04455 4426 TST89 /SCOPE LOOP POINTER 3706 04456 4263 4263 /TEXT POINTER 3707 / 3708 /VERIFY THAT "DATA BREAK" WITH A "READ" TO 3709 /CURRENT FIELD LOCATION 0 USE DATA PATTERN 3710 /5252 AND 2525 3711 / 3712 04457 7301 TST90, CLA CLL IAC 3713 04460 4453 CLRALL /DCLR 3714 04461 1175 TAD HOMEMA /CURRENT FIELD 3715 04462 4450 LDCMD /LOAD COMMAND TO READ 3716 04463 1153 TAD REG1 3717 04464 7110 CLL RAR 3718 04465 7630 SZL CLA /WHAT DATA 3719 04466 1120 TAD K2525 /DATA 5252 3720 04467 1120 TAD K2525 3721 04470 3163 DCA GDREG2 /SETUP COMPARE REGISTER 3722 04471 1163 TAD GDREG2 /GET VALUE TO LOAD 3723 04472 4427 LDBUF /LOAD UPPER BUFFER 3724 04473 4451 LDCUR /LOAD CURRENT ADDRESS TO 0 3725 04474 1076 TAD K0040 /ENABLE BREAK 3726 04475 4455 LDMAN /LOAD AND GO 3727 04476 7300 CLA CLL 3728 04477 1000 TAD 0 3729 04500 3173 DCA DTREG /SAVE DATA 3730 04501 1000 TAD 0 3731 04502 4440 ACCMP1 /CHECK 3732 04503 4435 NERROR /O.K. 4096 LOOPS 3733 04504 4436 ERROR /ERROR, DATA BREAK 3734 04505 4457 TST90 /SCOPE LOOP POINTER 3735 04506 4263 4263 /TEXT POINTER 3736 / 3737 /VERIFY THAT "DATA BREAK" WORD WITH A "READ" 3738 /TO CURRENT FIELD LOCATION 7777. 3739 /USE DATA PATTERN 5252 AND 2525 3740 / 3741 04507 7301 TST91, CLA CLL IAC 3742 04510 4453 CLRALL 3743 04511 1175 TAD HOMEMA /CURRENT FIELD 3744 04512 4450 LDCMD /LOAD COMMAND 3745 04513 7240 CLA CMA 3746 04514 4451 LDCUR /LOAD CURRENT ADDRESS 3747 04515 1153 TAD REG1 3748 04516 7110 CLL RAR 3749 04517 7630 SZL CLA /WHAT DATA TO USE 3750 04520 1120 TAD K2525 /DATA 5252 3751 04521 1120 TAD K2525 3752 04522 3163 DCA GDREG2 /SETUP COMPARE REGISTER 3753 04523 1163 TAD GDREG2 /GET VALUE TO LOAD 3754 04524 4427 LDBUF /LOAD UPPER BUFFER 3755 04525 1076 TAD K0040 /ENABLE BREAK BIT 3756 04526 4455 LDMAN /LOAD MAINTENANCE 3757 04527 7300 CLA CLL 3758 04530 1532 TAD I K7777 /GET BREAK WORD 3759 04531 3173 DCA DTREG /SAVE FOR ERROR PRINTER 3760 04532 1173 TAD DTREG 3761 04533 4440 ACCMP1 /CHECK 3762 04534 4435 NERROR /O.K. 4096 LOOPS 3763 04535 4436 ERROR /ERROR, DATA BREAK 3764 04536 4507 TST91 /SCOPE LOOP POINTER 3765 04537 4263 4263 /TEXT POINTER 3766 / 3767 04540 5741 JMP I .+1 /TO NEXT TEST 3768 04541 4600 TST92 3769 / 3770 / 3771 /VERIFY THAT "DATA BUFFERS" CAN BE FILLED 3772 /ON A WRITE DATA BREAK FROM LOCATION 3773 /0 OF CURRENT FIELD. USE ALL COMBINATIONS. 3774 / 3775 PAGE 3776 04600 7301 TST92, CLA CLL IAC 3777 04601 4453 CLRALL /DCLR "CLR ALL" 3778 04602 4444 ENMAN1 /ENTER MAINTENANCE MODE 3779 04603 1133 TAD M4 3780 04604 3156 DCA TCNTR1 /FOR FOUR WORDS 3781 04605 1153 TAD REG1 3782 04606 3157 DCA TCNTR2 /DATA START 3783 04607 1175 TAD HOMEMA /CURRENT FIELD 3784 04610 1106 TAD K4000 /WRITE FUNCTION 3785 04611 4450 LDCMD /LOAD COMMAND 3786 04612 4451 T92R1, LDCUR /LOAD CURRENT ADDRESS TO 0 3787 04613 1157 TAD TCNTR2 3788 04614 3000 DCA 0 /STORE OUTBOUND DATA 3789 04615 1076 TAD K0040 /ENABLE BREAK BIT 3790 04616 4455 LDMAN /LOAD AND GO 3791 04617 7300 CLA CLL 3792 04620 2157 ISZ TCNTR2 /UPDATE DATA WORD 3793 04621 7000 NOP 3794 04622 2156 ISZ TCNTR1 3795 04623 5212 JMP T92R1 /FILL BUFFER 3796 04624 1133 TAD M4 3797 04625 3156 DCA TCNTR1 3798 04626 1153 TAD REG1 3799 04627 3163 DCA GDREG2 3800 04630 4456 T92R2, RDBUF 3801 04631 4440 ACCMP1 3802 04632 7610 SKP CLA 3803 04633 5241 JMP T92E 3804 04634 2163 ISZ GDREG2 3805 04635 7000 NOP 3806 04636 2156 ISZ TCNTR1 3807 04637 5230 JMP T92R2 3808 04640 4435 NERROR /O.K. 4096 LOOPS 3809 04641 4436 T92E, ERROR /ERROR, DATA BREAK 3810 04642 4600 TST92 /SCOPE LOOP POINTER 3811 04643 4263 4263 /TEXT POINTER 3812 / 3813 04644 5645 JMP I .+1 /TO NEXT TEST 3814 04645 4646 TST93 3815 / 3816 / 3817 /VERIFY THAT "DATA BREAK" WORKS WITH 3818 /A "READ" TO CURRENT FIELD LOCATION 0 3819 /TRY ALL COMBINATIONS. 3820 / 3821 04646 7301 TST93, CLA CLL IAC 3822 04647 4453 CLRALL /DCLR "CLR ALL" 3823 04650 1175 TAD HOMEMA /CURRENT FIELD 3824 04651 4450 LDCMD /LOAD COMMAND FOR READ 3825 04652 3172 DCA ADREG /SAVE ADDRESS 3826 04653 1154 TAD REG2 3827 04654 3163 DCA GDREG2 /SETUP COMPARE REGISTER 3828 04655 1163 TAD GDREG2 /GET VALUE TO LOAD 3829 04656 4427 LDBUF /LOAD UPPER BUFFER 3830 04657 1076 TAD K0040 /BREAK ENABLE BIT 3831 04660 4455 LDMAN /LOAD AND GO 3832 04661 7300 CLA CLL 3833 04662 1000 TAD 0 /GET DATA WORD 3834 04663 3173 DCA DTREG /SAVE FOR ERROR PRINTER 3835 04664 1173 TAD DTREG 3836 04665 4440 ACCMP1 /CHECK 3837 04666 4435 NERROR /O.K. 4096 LOOPS 3838 04667 4436 ERROR /ERROR, DATA BREAK 3839 04670 4646 TST93 /SCOPE LOOP POINTER 3840 04671 4263 4263 /TEXT POINTER 3841 / 3842 /VERIFY THAT READ DATA BREAK DOES OCCUR 3843 /WHEN FUNCTION = 2 3844 / 3845 04672 7301 TST94, CLA CLL IAC 3846 04673 4453 CLRALL /DCLR 3847 04674 1153 TAD REG1 /GET VALUE TO LOAD 3848 04675 3163 DCA GDREG2 /SETUP COMPARE REGISTER 3849 04676 1163 TAD GDREG2 3850 04677 4427 LDBUF /LOAD UPPER BUFFER 3851 04700 1163 TAD GDREG2 3852 04701 7040 CMA 3853 04702 3000 DCA 0 3854 04703 4451 LDCUR /SET CURRENT ADDRESS TO 0 3855 04704 1175 TAD HOMEMA /CURRENT FIELD 3856 04705 1104 TAD K2000 3857 04706 4450 LDCMD /LOAD COMMAND REGISTER 3858 04707 1076 TAD K0040 /ENABLE BREAK 3859 04710 4455 LDMAN /GO 3860 04711 7300 CLA CLL 3861 04712 1000 TAD 0 3862 04713 3173 DCA DTREG /SAVE FOR ERROR PRINTER 3863 04714 1173 TAD DTREG 3864 04715 4440 ACCMP1 /DID 0 CHANGE 3865 04716 4435 NERROR /ALL O.K. 3866 04717 4436 ERROR /ERROR, DATA BREAK 3867 04720 4672 TST94 /SCOPE LOOP POINTER 3868 04721 4263 4263 /TEXT POINTER 3869 / 3870 /VERIFY THAT A READ DATA BREAK DOES OCCUR 3871 /WHEN FUNCTION = 3 3872 / 3873 04722 7301 TST95, CLA CLL IAC 3874 04723 4453 CLRALL /DCLR 3875 04724 1154 TAD REG2 3876 04725 3163 DCA GDREG2 /SETUP COMPARE REGISTER 3877 04726 1163 TAD GDREG2 3878 04727 4427 LDBUF /LOAD UPPER BUFFER 3879 04730 1163 TAD GDREG2 3880 04731 7040 CMA 3881 04732 3000 DCA 0 3882 04733 4451 LDCUR /SET CURRENT ADDRESS TO 0 3883 04734 1175 TAD HOMEMA /CURRENT FIELD 3884 04735 1103 TAD K1000 3885 04736 1104 TAD K2000 3886 04737 4450 LDCMD /LOAD COMMAND REGISTER 3887 04740 1076 TAD K0040 /ENABLE BREAK 3888 04741 4455 LDMAN /GO 3889 04742 7300 CLA CLL 3890 04743 1000 TAD 0000 3891 04744 3173 DCA DTREG /SAVE FOR ERROR PRINTER 3892 04745 1173 TAD DTREG 3893 04746 4440 ACCMP1 /DID 0 CHANGE 3894 04747 4435 NERROR /ALL O.K. 3895 04750 4436 T95E, ERROR /ERROR, DATA BREAK 3896 04751 4722 TST95 /SCOPE LOOP POINTER 3897 04752 4263 4263 /TEXT POINTER 3898 / 3899 04753 5754 JMP I .+1 /TO NEXT TEST 3900 04754 5000 TST97 3901 PAGE 3902 / 3903 / 3904 /VERIFY THAT A READ DATA BREAK DOES OCCUR 3905 /WHEN FUNCTION = 6 3906 / 3907 05000 7301 TST97, CLA CLL IAC 3908 05001 4453 CLRALL /DCLR 3909 05002 1153 TAD REG1 3910 05003 3163 DCA GDREG2 /SETUP COMPARE REGISTER 3911 05004 1163 TAD GDREG2 3912 05005 4427 LDBUF /LOAD UPPER BUFFER 3913 05006 1163 TAD GDREG2 3914 05007 7040 CMA 3915 05010 3000 DCA 0 3916 05011 4451 LDCUR /SET CURRENT ADDRESS TO 0 3917 05012 1175 TAD HOMEMA /CURRENT FIELD 3918 05013 1106 TAD K4000 3919 05014 1104 TAD K2000 3920 05015 4450 LDCMD /LOAD COMMAND REGISTER 3921 05016 1076 TAD K0040 /ENABLE BREAK 3922 05017 4455 LDMAN /GO 3923 05020 7300 CLA CLL 3924 05021 1000 TAD 0 3925 05022 3173 DCA DTREG /SAVE FOR ERROR PRINTER 3926 05023 1173 TAD DTREG 3927 05024 4440 ACCMP1 /DID 0 CHANGE 3928 05025 4435 NERROR /ALL O.K. 3929 05026 4436 T97E, ERROR /ERROR, DATA BREAK 3930 05027 5000 TST97 /SCOPE LOOP POINTER 3931 05030 4263 4263 /TEXT POINTER 3932 / 3933 /VERIFY THAT A READ DATA BREAK DOES OCCUR 3934 /WHEN FUNCTION = 7 3935 / 3936 05031 7301 TST98, CLA CLL IAC 3937 05032 4453 CLRALL /DCLR 3938 05033 1154 TAD REG2 3939 05034 3163 DCA GDREG2 /SETUP COMPARE REGISTER 3940 05035 1163 TAD GDREG2 3941 05036 4427 LDBUF /LOAD UPPER BUFFER 3942 05037 1163 TAD GDREG2 3943 05040 7040 CMA 3944 05041 3000 DCA 0 3945 05042 4451 LDCUR /SET CURRENT ADDRESS TO 0 3946 05043 1175 TAD HOMEMA /CURRENT FIELD 3947 05044 1106 TAD K4000 3948 05045 1103 TAD K1000 3949 05046 1104 TAD K2000 3950 05047 4450 LDCMD /LOAD COMMAND REGISTER 3951 05050 1076 TAD K0040 /ENABLE BREAK 3952 05051 4455 LDMAN /GO 3953 05052 7300 CLA CLL 3954 05053 1000 TAD 0 3955 05054 3173 DCA DTREG /SAVE FOR ERROR PRINTER 3956 05055 1173 TAD DTREG 3957 05056 4440 ACCMP1 /DID 0 CHANGE 3958 05057 4435 NERROR /ALL O.K. 3959 05060 4436 T98E, ERROR /ERROR, DATA BREAK 3960 05061 5031 TST98 /SCOPE LOOP POINTER 3961 05062 4263 4263 /TEXT POINTER 3962 / 3963 /VERIFY THAT ALL DATA BUFFERS CAN BE FULL 3964 /AT ONCE. USE A READ BREAK AND PATTERN 3965 /ALL COMBINATIONS. 3966 / 3967 05063 7301 TST99, CLA CLL IAC 3968 05064 4453 CLRALL /DCLR "CLR ALL" 3969 05065 1154 TAD REG2 3970 05066 3161 DCA TCNTR4 3971 05067 1133 TAD M4 3972 05070 3160 DCA TCNTR3 /COUNTER FOR # OF BUFFERS 3973 05071 1161 T99R1, TAD TCNTR4 3974 05072 4427 LDBUF /LOAD UPPER BUFFER 3975 05073 7340 CLA CLL CMA 3976 05074 1161 TAD TCNTR4 3977 05075 3161 DCA TCNTR4 3978 05076 2160 ISZ TCNTR3 3979 05077 5271 JMP T99R1 /4 COUNT, SKIP WHEN BUFFERS FULL 3980 05100 1154 TAD REG2 3981 05101 3163 DCA GDREG2 /SETUP FOR FIRST COMPARE 3982 05102 1133 TAD M4 3983 05103 3160 DCA TCNTR3 3984 05104 1175 TAD HOMEMA /CURRENT FIELD 3985 05105 4450 LDCMD /LOAD COMMAND 3986 05106 4451 T99R2, LDCUR /LOAD CURRENT ADDRESS 3987 05107 1076 TAD K0040 /GET ENABLE BREAK 3988 05110 4455 LDMAN /LOAD MAINTENANCE 3989 05111 7300 CLA CLL 3990 05112 1000 TAD 0 /GET DATA 3991 05113 3173 DCA DTREG /SAVE FOR PRINTER 3992 05114 1173 TAD DTREG 3993 05115 4440 ACCMP1 /CHECK 3994 05116 7610 SKP CLA /O.K. CHECK NEXT 3995 05117 5326 JMP T99E /ERROR DATA BUFFERS 3996 05120 7340 CLA CLL CMA 3997 05121 1163 TAD GDREG2 3998 05122 3163 DCA GDREG2 /SETUP FOR NEXT 3999 05123 2160 ISZ TCNTR3 4000 05124 5306 JMP T99R2 4001 05125 4435 NERROR /O.K. 4096 LOOPS 4002 05126 4436 T99E, ERROR /ERROR, DATA BUFFERS 4003 05127 5063 TST99 /SCOPE LOOP POINTER 4004 05130 4263 4263 /TEXT POINTER 4005 / 4006 / 4007 /VERIFY A WRITE THEN READ BREAK FROM 4008 /LOCATIONS 7777 THEN 0000 OF THE 4009 /CURRENT FIELD. USE PATTERN 0-7777. 4010 / 4011 05131 7301 TST100, CLA CLL IAC 4012 05132 4453 CLRALL /CLEAR CONTROL 4013 05133 4444 ENMAN1 /ENTER MAINTENANCE 4014 05134 7340 CLA CLL CMA 4015 05135 4451 LDCUR /LOAD CURRENT ADDRESS 4016 05136 1154 TAD REG2 4017 05137 3532 DCA I K7777 /STORE OUTBOUND DATA 4018 05140 1175 TAD HOMEMA /CURRENT FIELD 4019 4020 4021 05141 1106 TAD K4000 /WRITE FUNCTION 4022 05142 4450 LDCMD /LOAD COMMAND REGISTER 4023 05143 1076 TAD K0040 /ENABLE BREAK 4024 05144 4455 LDMAN /ISSUE MAINTENANCE IOT 4025 05145 7300 CLA CLL /READ FUNCTION 4026 05146 1175 TAD HOMEMA /CURRENT FIELD 4027 05147 4450 LDCMD /LOAD COMMAND REGISTER 4028 05150 1076 TAD K0040 /ENABLE BREAK 4029 05151 4455 LDMAN /ISSUE MAINTENANCE IOT 4030 05152 7300 CLA CLL 4031 05153 2172 ISZ ADREG 4032 05154 7000 NOP 4033 05155 1154 TAD REG2 4034 05156 3163 DCA GDREG2 /SETUP COMPARE 4035 05157 1000 TAD 0000 4036 05160 3173 DCA DTREG /STORE DATA READ FOR PRINTER 4037 05161 1000 TAD 0000 4038 05162 4440 ACCMP1 /CHECK RESULTS 4039 05163 4435 NERROR /O.K. 4096 LOOPS 4040 05164 4436 ERROR /ERROR, WRITE OR READ 4041 05165 5131 TST100 /SCOPE LOOP POINTER 4042 05166 4263 4263 /TEXT POINTER 4043 05167 7301 CLA CLL IAC 4044 05170 1176 TAD FLDMAX 4045 05171 7650 SNA CLA /IS IT TEST EXTENDED MEM. 4046 05172 5432 JMP I XEND /NO, END OF TEST 4047 / 4048 05173 5774 JMP I .+1 /TO NEXT TEST 4049 05174 5201 EXTFLD 4050 / 4051 PAGE 4052 / 4053 /ROUTINE TO CHECK IF CONSOLE PACKAGE ACTIVE. 4054 /IF SO, THEN INHIBIT EXTENDED MEMORY TESTS. 4055 / 4056 05200 5670 TSTLAS, ENDTST 4057 05201 1022 EXTFLD, TAD OP2 4058 05202 0102 AND K0400 /MASK CLASSIC BIT 4059 05203 7640 SZA CLA /ON CLASSIC SYSTEM? 4060 05204 5600 JMP I TSTLAS /BY-PASS EXT. TESTS. 4061 / 4062 /VERIFY THAT DATA BREAK WORKS WITH A WRITE FROM 4063 /LOCATION 0000 IN ALL EXISTING EXTENDED FIELDS. 4064 /USE DATA PADDERN 0000 + 7777. 4065 / 4066 05205 7301 TST101, CLA CLL IAC 4067 4068 4069 4070 4071 4072 4073 05206 4453 CLRALL /DCLR 4074 05207 4444 ENMAN1 /ENTER MAINTENANCE MODE 4075 05210 1150 TAD KCDF 4076 05211 3232 DCA TOFLD2 /START FIELD 0 4077 05212 1176 TAD FLDMAX 4078 05213 3156 DCA TCNTR1 /FIELDS TO TEST -1 4079 05214 1433 TAD I THSFLD 4080 05215 3234 DCA RTFLD2 /RETURN FIELD CDF 4081 05216 1153 TAD REG1 4082 05217 7110 CLL RAR 4083 05220 7630 SZL CLA /USE DATA 7777 IF LINK IS SET 4084 05221 7240 CLA CMA 4085 05222 3163 DCA GDREG2 /SETUP COMPARE REGISTER 4086 05223 4451 T101R, LDCUR /SET CURRENT ADDRESS TO 0000 4087 05224 1232 TAD TOFLD2 4088 05225 7041 CIA 4089 05226 1234 TAD RTFLD2 4090 05227 7650 SNA CLA /CURRENT FIELD? 4091 05230 5247 JMP NEXFL2 /YES, NOT THIS ONE 4092 05231 1163 TAD GDREG2 /OUTBOUND DATA 4093 05232 7402 TOFLD2, HLT /MODIFIED CDF 4094 05233 3464 DCA I K0000 /STORE DATA 4095 05234 7402 RTFLD2, HLT /HOME CDF 4096 05235 1232 TAD TOFLD2 4097 05236 0114 AND K0070 4098 05237 1106 TAD K4000 /WRITE 4099 05240 4450 LDCMD /LOAD COMMAND REGISTER 4100 05241 1076 TAD K0040 /ENABLE WRITE BREAK 4101 05242 4455 LDMAN /GO 4102 05243 4456 RDBUF /GET RESULTS 4103 05244 4440 ACCMP1 /CHECK RESULTS 4104 05245 7610 SKP CLA /O.K. TRY NEXT 4105 05246 5257 JMP T101E /ERROR 4106 05247 2156 NEXFL2, ISZ TCNTR1 4107 05250 7610 SKP CLA 4108 05251 5256 JMP T101D /DONE WITH ALL 4109 05252 1232 TAD TOFLD2 4110 05253 1073 TAD K0010 4111 05254 3232 DCA TOFLD2 /SET TO NEXT FIELD 4112 05255 5223 JMP T101R /TRY IT 4113 05256 4435 T101D, NERROR /O.K. 4096 LOOPS 4114 05257 4436 T101E, ERROR /ERROR, DATA BREAK 4115 05260 5205 TST101 /SCOPE LOOP POINTER 4116 05261 4263 4263 4117 / 4118 / 4119 / 4120 /VERIFY THAT DATA BREAK WORKS WITH A WRITE FROM 4121 /LOCATION 0000 IN ALL EXISTING EXTENDED FIELDS. 4122 /USE DATA PATTERN 2525 + 5252. 4123 / 4124 05262 7301 TST102, CLA CLL IAC 4125 05263 4453 CLRALL /DCLR 4126 05264 4444 ENMAN1 /ENTER MAINTENANCE MODE 4127 05265 1150 TAD KCDF 4128 05266 3310 DCA TOFLD3 /START FIELD 0 4129 05267 1176 TAD FLDMAX 4130 05270 3156 DCA TCNTR1 /FIELDS TO TEST -1 4131 05271 1433 TAD I THSFLD 4132 05272 3312 DCA RTFLD3 /RETURN FIELD CDF 4133 05273 1153 TAD REG1 4134 05274 7110 CLL RAR 4135 05275 7630 SZL CLA /USE DATA 5252 IF LINK IS SET 4136 05276 1120 TAD K2525 4137 05277 1120 TAD K2525 4138 05300 3163 DCA GDREG2 /SETUP COMPARE REGISTER 4139 05301 4451 T102R, LDCUR /SET CURRENT ADDRESS TO 0000 4140 05302 1310 TAD TOFLD3 4141 05303 7041 CIA 4142 05304 1312 TAD RTFLD3 4143 05305 7650 SNA CLA /CURRENT FIELD 4144 05306 5325 JMP NEXFL3 /YES, NOT THIS ONE 4145 05307 1163 TAD GDREG2 /OUTBOUND DATA 4146 05310 7402 TOFLD3, HLT /MODIFIED CDF 4147 05311 3464 DCA I K0000 /STORE DATA 4148 05312 7402 RTFLD3, HLT /HOME CDF 4149 05313 1310 TAD TOFLD3 4150 05314 0114 AND K0070 4151 05315 1106 TAD K4000 /WRITE 4152 05316 4450 LDCMD /LOAD COMMAND REGISTER 4153 05317 1076 TAD K0040 /ENABLE WRITE BREAK 4154 05320 4455 LDMAN /GO 4155 05321 4456 RDBUF /GET RESULTS 4156 05322 4440 ACCMP1 /CHECK RESULTS 4157 05323 7610 SKP CLA /O.K. TRY NEXT 4158 05324 5335 JMP T102E /ERROR 4159 05325 2156 NEXFL3, ISZ TCNTR1 4160 05326 7610 SKP CLA 4161 05327 5334 JMP T102D /DONE WITH ALL 4162 05330 1310 TAD TOFLD3 4163 05331 1073 TAD K0010 4164 05332 3310 DCA TOFLD3 /SET TO NEXT FIELD 4165 05333 5301 JMP T102R /TRY IT 4166 05334 4435 T102D, NERROR /AC O.K. 4096 LOOPS 4167 05335 4436 T102E, ERROR /ERROR, DATA BREAK 4168 05336 5262 TST102 /SCOPE LOOP POINTER 4169 05337 4263 4263 /TEXT POINTER 4170 05340 5741 JMP I .+1 4171 05341 5400 TST103 4172 PAGE 4173 / 4174 /VERIFY THAT DATA BREAK WORKS WITH A WRITE FROM 4175 /LOCATION 7777 IN ALL EXISTING EXTENDED FIELDS. 4176 /USE DATA PATTERN 0000 + 7777. 4177 / 4178 05400 7301 TST103, CLA CLL IAC 4179 05401 4453 CLRALL /DCLR 4180 05402 4444 ENMAN1 /ENTER MAINTENANCE MODE 4181 05403 1150 TAD KCDF 4182 05404 3226 DCA TOFLD4 /START FIELD 0 4183 05405 1176 TAD FLDMAX 4184 05406 3156 DCA TCNTR1 /FIELDS TO TEST -1 4185 05407 1433 TAD I THSFLD 4186 05410 3230 DCA RTFLD4 /RETURN FIELD CDF 4187 05411 1153 TAD REG1 4188 05412 7110 CLL RAR 4189 05413 7630 SZL CLA /USE DATA 7777 IF LINK IS SET 4190 05414 7240 CLA CMA 4191 05415 3163 DCA GDREG2 /SETUP COMPARE REGISTER 4192 05416 7240 T103R, CLA CMA 4193 05417 4451 LDCUR /SET CURRENT ADDRESS TO 7777 4194 05420 1226 TAD TOFLD4 4195 05421 7041 CIA 4196 05422 1230 TAD RTFLD4 4197 05423 7650 SNA CLA /CURRENT FIELD 4198 05424 5243 JMP NEXFL4 /YES, NOT THIS ONE 4199 05425 1163 TAD GDREG2 /OUTBOUND DATA 4200 05426 7402 TOFLD4, HLT /MODIFIED CDF 4201 05427 3532 DCA I K7777 /STORE DATA 4202 05430 7402 RTFLD4, HLT /HOME CDF 4203 05431 1226 TAD TOFLD4 4204 05432 0114 AND K0070 4205 05433 1106 TAD K4000 /WRITE 4206 05434 4450 LDCMD /LOAD COMMAND REGISTER 4207 05435 1076 TAD K0040 /ENABLE WRITE BREAK 4208 05436 4455 LDMAN /GO 4209 05437 4456 RDBUF /GET RESULTS 4210 05440 4440 ACCMP1 /CHECK RESULTS 4211 05441 7610 SKP CLA /O.K. TRY NEXT 4212 05442 5253 JMP T103E /ERROR 4213 05443 2156 NEXFL4, ISZ TCNTR1 4214 05444 7610 SKP CLA 4215 05445 5252 JMP T103D /DONE WITH ALL 4216 05446 1226 TAD TOFLD4 4217 05447 1073 TAD K0010 4218 05450 3226 DCA TOFLD4 /SET TO NEXT FIELD 4219 05451 5216 JMP T103R /TRY IT 4220 05452 4435 T103D, NERROR /O.K. 4096 LOOPS 4221 05453 4436 T103E, ERROR /ERROR, DATA BREAK 4222 05454 5400 TST103 /SCOPE LOOP POINTER 4223 05455 4263 4263 /TEXT POINTER 4224 / 4225 / 4226 / 4227 /VERIFY THAT DATA BREAK WORKS WITH A WRITE FROM 4228 /LOCATION 7777 IN ALL EXISTING EXTENDED FIELDS. 4229 /USE DATA PATTERN 2525 + 5252. 4230 / 4231 05456 7301 TST104, CLA CLL IAC 4232 05457 4453 CLRALL /DCLR 4233 05460 4444 ENMAN1 /ENTER MAINTENANCE MODE 4234 05461 1150 TAD KCDF 4235 05462 3305 DCA TOFLD5 /START FIELD 0 4236 05463 1176 TAD FLDMAX 4237 05464 3156 DCA TCNTR1 /FIELDS TO TEST -1 4238 05465 1433 TAD I THSFLD 4239 05466 3307 DCA RTFLD5 /RETURN FIELD CDF 4240 05467 1153 TAD REG1 4241 05470 7110 CLL RAR 4242 05471 7630 SZL CLA /USE DATA 5252 IF LINK IS SET 4243 05472 1120 TAD K2525 4244 05473 1120 TAD K2525 4245 05474 3163 DCA GDREG2 /SETUP COMPARE REGISTER 4246 05475 7240 T104R, CLA CMA 4247 05476 4451 LDCUR /SET CURRENT ADDRESS TO 7777 4248 05477 1305 TAD TOFLD5 4249 05500 7041 CIA 4250 05501 1307 TAD RTFLD5 4251 05502 7650 SNA CLA /CURRENT FIELD 4252 05503 5322 JMP NEXFL5 /YES, NOT THIS ONE 4253 05504 1163 TAD GDREG2 /OUTBOUND DATA 4254 05505 7402 TOFLD5, HLT /MODIFIED CDF 4255 05506 3532 DCA I K7777 /STORE DATA 4256 05507 7402 RTFLD5, HLT /HOME CDF 4257 05510 1305 TAD TOFLD5 4258 05511 0114 AND K0070 4259 05512 1106 TAD K4000 /WRITE 4260 05513 4450 LDCMD /LOAD COMMAND REGISTER 4261 05514 1076 TAD K0040 /ENABLE WRITE BREAK 4262 05515 4455 LDMAN /GO 4263 05516 4456 RDBUF /GET RESULTS 4264 05517 4440 ACCMP1 /CHECK RESULTS 4265 05520 7610 SKP CLA /O.K. TRY NEXT 4266 05521 5332 JMP T104E /ERROR 4267 05522 2156 NEXFL5, ISZ TCNTR1 4268 05523 7610 SKP CLA 4269 05524 5331 JMP T104D /DONE WITH ALL 4270 05525 1305 TAD TOFLD5 4271 05526 1073 TAD K0010 4272 05527 3305 DCA TOFLD5 /SET TO NEXT FIELD 4273 05530 5275 JMP T104R /TRY IT 4274 05531 4435 T104D, NERROR /O.K. 4096 LOOPS 4275 05532 4436 T104E, ERROR /ERROR, DATA BREAK 4276 05533 5456 TST104 /SCOPE LOOP POINTER 4277 05534 4263 4263 /TEXT POINTER 4278 05535 5736 JMP I .+1 4279 05536 5600 TST105 4280 PAGE 4281 / 4282 /VERIFY THAT DATA BREAK WORKS FROM ALL LOCATIONS 4283 /IN ALL EXISTING EXTENDED FIELDS. 4284 /USE DATA PATTERN ALL COMBINATIONS. 4285 / 4286 05600 1150 TST105, TAD KCDF 4287 05601 3221 DCA TOFLD1 4288 05602 1176 TAD FLDMAX 4289 05603 3156 DCA TCNTR1 4290 05604 1433 TAD I THSFLD 4291 05605 3245 DCA RTFLD1 4292 05606 1153 TAD REG1 4293 05607 3163 DCA GDREG2 /SETUP COMPARE REGISTER 4294 05610 7301 T105R, CLA CLL IAC 4295 05611 4453 CLRALL /DCLR 4296 05612 4444 ENMAN1 /ENTER MAINTENANCE MODE 4297 05613 1221 TAD TOFLD1 4298 05614 7041 CIA 4299 05615 1245 TAD RTFLD1 4300 05616 7650 SNA CLA /IS IT CURRENT FIELD 4301 05617 5255 JMP NEXFL1 /YES, BYPASS 4302 05620 1163 TAD GDREG2 4303 05621 0000 TOFLD1, 0 /MODIFIED CDF 4304 05622 3554 DCA I REG2 /STORE DATA WORD 4305 05623 1221 TAD TOFLD1 4306 05624 0114 AND K0070 /MASK DF BITS 4307 05625 1106 TAD K4000 4308 05626 4450 LDCMD /LOAD COMMAND REGISTER 4309 05627 1154 TAD REG2 4310 05630 4451 LDCUR /LOAD CURRENT ADDRESS 4311 05631 1076 TAD K0040 /ENABLE BREAK 4312 05632 4455 LDMAN /GO 4313 05633 7301 CLA CLL IAC 4314 05634 1154 TAD REG2 4315 05635 3172 DCA ADREG /SETUP BREAK TO ADDRESS 4316 05636 1221 TAD TOFLD1 4317 05637 0114 AND K0070 /MASK FIELD BITS 4318 05640 4450 LDCMD /LOAD COMMAND 4319 05641 1076 TAD K0040 4320 05642 4455 LDMAN /LOAD MAINTENANCE 4321 05643 7300 CLA CLL 4322 05644 1572 TAD I ADREG /GET DATA READ 4323 05645 0000 RTFLD1, 0 /CURRENT FIELD CDF 4324 05646 3173 DCA DTREG /STORE FOR PRINTER 4325 05647 1173 TAD DTREG 4326 05650 4440 ACCMP1 /CHECK RESULTS 4327 05651 7610 SKP CLA /THIS FIELD O.K. 4328 05652 5265 JMP T105E /ERROR 4329 05653 2163 ISZ GDREG2 /UPDATE WORD 4330 05654 7000 NOP 4331 05655 2156 NEXFL1, ISZ TCNTR1 4332 05656 7610 SKP CLA 4333 05657 5264 JMP T105D /ALL DONE 4334 05660 1221 TAD TOFLD1 4335 05661 1073 TAD K0010 4336 05662 3221 DCA TOFLD1 4337 05663 5210 JMP T105R /TRY NEXT FIELD 4338 05664 4435 T105D, NERROR /O.K. NEXT ADDRESS 4339 05665 4436 T105E, ERROR /ERROR, DATA BREAK 4340 05666 5600 TST105 /SCOPE LOOP POINTER 4341 05667 4263 4263 /TEXT POINTER 4342 / 4343 05670 4405 ENDTST, SET /SETUP FIELD 0 4344 05671 1007 TAD SAVEND 4345 05672 3532 DCA I K7777 /REPLACE BINARY 4346 05673 1022 TAD OP2 4347 05674 0106 AND K4000 /TEST FOR APT 4348 05675 7650 SNA CLA /APT?? 4349 05676 5301 JMP .+3 /NO, NORMAL RUN 4350 05677 2371 ISZ PCOUNT 4351 05700 5317 JMP ENDHLT+1 /LOOP PROGRAM 4352 05701 4406 CLASIC /CHECK FOR CONSOLE CLASSIC 4353 05702 4424 C8PASS /CHECK FOR PASS COMPLETE TYPEOUT. 4354 05703 7610 SKP CLA 4355 05704 5310 JMP .+4 /BYPASS NORMAL TYPEOUT. 4356 05705 4462 CRLF 4357 05706 4457 PRNTER /PRINT END OF TEST MESSAGE 4358 05707 7562 TEXEND /POINTER 4359 05710 4404 LAS 4360 05711 7004 RAL 4361 05712 7710 SPA CLA 4362 05713 5317 JMP .+4 /NO STOP 4363 05714 4406 CLASIC /CHECK FOR CLASSIC. 4364 05715 4437 C8INQU /ROUTINE TO EXECUTE 4365 05716 7402 ENDHLT, HLT /END OF TEST 4366 05717 7301 CLA CLL IAC 4367 05720 4453 CLRALL /DCLR 4368 05721 5722 JMP I .+1 /LOOP ON PROGRAM 4369 05722 0266 TST4 4370 / 4371 / 4372 /MANUAL TEST FOR 16 BIT COUNTER. 4373 /SET SWITCH REGISTER TO 0201 AND PRESS 4374 /LOAD ADDRESS. SET THE SWITCH REGISTER TO 0000. 4375 /THEN PRESS CLEAR AND CONTINUE. 4376 /SCOPE THE 16TH CARRY OUTPUT TEST POINT 4377 /FOR A GROUND TO +3 VOLT SIGNAL. 4378 / 4379 05723 7301 MANUL, CLA CLL IAC 4380 05724 4453 CLRALL /FIRST, CLEAR CONTROL 4381 05725 4444 ENMAN1 /ENTER MAINTENANCE MODE 4382 05726 1077 TAD K0100 /ENABLE SHIFT PULSES 4383 05727 4455 LDMAN /ISSUE MAINTENANCE IOT AND 4384 05730 5327 JMP .-1 /CAUSE HI MAIN SHIFTS TO THE 4385 05731 5327 JMP .-2 /INPUT OF THE 16 BIT COUNTER. 4386 / 4387 /THIS ROUTINE WILL BE A SKIP INSTRUCTION FOR SYSTEMS WITHOUT CLASSIC 4388 /OTHERWISE IT WILL EXECUTE THE NEXT INSTRUCTION IN FIELD 0 AND THEN 4389 /SKIP THE INSTRUCTION AFTER THAT ONE. 4390 / 4391 05732 0000 CLASIK, 0 4392 05733 3363 DCA SAVAC /SAVE CURRENT AC. 4393 05734 1732 TAD I CLASIK /GET INSTRUCTION 4394 05735 3362 DCA ROUTMP /SAVE THE CLASSIC ROUTINE. 4395 05736 2332 ISZ CLASIK /BUMP AFTER THE CALL. 4396 05737 1022 TAD OP2 4397 05740 0377 AND (400 4398 05741 7640 SZA CLA /IS THIS A CLASSIC SYSTEM? 4399 05742 5345 JMP .+3 /YES 4400 05743 1363 TAD SAVAC /NO, THEN RETURN TO PROGRAM. 4401 05744 5732 JMP I CLASIK 4402 05745 2332 ISZ CLASIK 4403 05746 6211 CDF 10 4404 05747 1020 TAD SWR 4405 05750 3776 DCA I (SWR /MOVE POINTERS TO FIELD 1. 4406 05751 1021 TAD OP1 4407 05752 3775 DCA I (OP1 4408 05753 1022 TAD OP2 4409 05754 3774 DCA I (OP2 4410 05755 1362 TAD ROUTMP 4411 05756 3773 DCA I (ROUINS /SAVE ROUTINE IN FIELD 1. 4412 05757 1363 TAD SAVAC 4413 05760 6212 CIF 10 4414 05761 5773 JMP I (ROUINS /GO EXECUTE ROUTINE. 4415 / 4416 05762 0000 ROUTMP, 0 4417 05763 0000 SAVAC, 0 4418 / 4419 /ROUTINE TO GET SWITCHES. 4420 / 4421 05764 0000 MYLAS, 0 4422 05765 4406 CLASIC /CHECK IF CLASSIC. 4423 05766 4425 C8CKSW /GET SWITCHES 4424 05767 7604 7604 /NOP IF ON APT 4425 05770 5764 JMP I MYLAS /EXIT 4426 / 4427 05771 0000 PCOUNT, 0 4428 / 4429 4430 4431 4432 4433 05773 1302 PAGE 05774 0022 05775 0021 05776 0020 05777 0400 4434 / 4435 /SUBROUTINE TO WAIT FOR INTERRUPTS 4436 /IF INTERRUPT OCCURS, GO BACK +1 4437 / 4438 06000 0000 IONWT, 0 4439 06001 7300 CLA CLL 4440 06002 1112 TAD K7700 4441 06003 3233 DCA COMP1 4442 06004 6001 ION /TURN IT ON 4443 06005 2233 ISZ COMP1 4444 06006 5205 JMP .-1 4445 06007 6002 IOF /TURN IT OFF 4446 06010 5600 JMP I IONWT /NO INT OCCURRED 4447 06011 2200 INTADD, ISZ IONWT 4448 06012 4447 DSKSKP /DISK SKIP IOT 4449 06013 7410 SKP /ERROR 4450 06014 5600 JMP I IONWT /EXIT. 4451 06015 7240 CLA CMA 4452 06016 1200 TAD IONWT 4453 06017 3200 DCA IONWT /RESET RETURN ADDRESS. 4454 06020 1022 TAD OP2 4455 06021 0102 AND K0400 /MASK CLASSIC. 4456 06022 7640 SZA CLA /ON CLASSIC? 4457 06023 6031 KSF /IF SO ALLOW KEY FLAG. 4458 06024 5227 JMP .+3 /NO KEY! 4459 06025 6032 KCC /WAS CLEAR FLAG. 4460 06026 5201 JMP IONWT+1 /RETURN AND WAIT. 4461 06027 4406 CLASIC /CHECK FOR CLASSIC. 4462 06030 4436 C8ERR /ROUTINE TO EXECUTE. 4463 06031 7402 ERHLT1, HLT /ERROR, ILLEGAL INTERRUPT 4464 06032 5227 JMP .-3 /NON-RECOVERABLE ERROR. 4465 / 4466 /ROUTINE TO COMPARE AC TO GDREG2 4467 / 4468 06033 0000 COMP1, 0 4469 06034 3174 DCA ACREG 4470 06035 1174 TAD ACREG /SAVE AC 4471 06036 7041 CIA 4472 06037 1163 TAD GDREG2 4473 06040 7640 SZA CLA /SKIP IF O.K. 4474 06041 2233 ISZ COMP1 /ERROR, DON'T COMPARE 4475 06042 4424 TICK /GENERATE TIMING IF NEEDED. 4476 06043 5633 JMP I COMP1 4477 / 4478 /ROUTINE TO COMPARE CRREG1 AND CRREG2 TO 4479 /GDREG1 AND GDREG2. 4480 / 4481 06044 0000 COMP2, 0 4482 06045 7300 CLA CLL 4483 06046 1162 TAD GDREG1 4484 06047 0145 AND K0017 4485 06050 7041 CIA 4486 06051 1164 TAD CRREG1 4487 06052 7640 SZA CLA 4488 06053 5260 JMP CRERR /NOT THE SAME 4489 06054 1165 TAD CRREG2 4490 06055 7041 CIA 4491 06056 1163 TAD GDREG2 4492 06057 7640 SZA CLA 4493 06060 2244 CRERR, ISZ COMP2 /ERROR, NOT THE SAME 4494 06061 4424 TICK /TIMING FOR APT IF NEEDED 4495 06062 5644 JMP I COMP2 4496 / 4497 /SUBROUTINE TO READ STATUS REGISTER 4498 / 4499 06063 0000 RDST, 0 4500 06064 6745 IOT5, DRST /READ STATUS IOT 4501 06065 5272 JMP .+5 /O.K. NO SKIP 4502 06066 4406 CLASIC /CHECK FOR CLASSIC. 4503 06067 4436 ERROR /ROUTINE TO EXECUTE. 4504 06070 7402 ERHLT5, HLT /SKIP TRAP 4505 06071 5266 JMP .-3 /NON-RECOVERABLE ERROR. 4506 06072 3166 DCA STREG /SAVE RESULTS 4507 06073 1166 TAD STREG 4508 06074 5663 JMP I RDST /EXIT 4509 / 4510 /SUBROUTINE TO LOAD CURRENT ADDRESS REGISTER 4511 / 4512 06075 0000 LDCA, 0 4513 06076 3172 DCA ADREG /SAVE IN ADDRESS 4514 06077 1172 TAD ADREG 4515 06100 6744 IOT4, DLCA /LOAD CURRENT ADDRESS IOT 4516 06101 5675 JMP I LDCA /EXIT 4517 06102 4406 CLASIC /CHECK FOR CLASSIC. 4518 06103 4436 ERROR /ROUTINE TO EXECUTE 4519 06104 7402 ERHLT4, HLT /SKIP TRAP ERROR 4520 06105 5302 JMP .-3 /NON-RECOVERABLE ERROR. 4521 / 4522 / 4523 /SUBROUTINE TO LOAD DISK ADDRESS REGISTER 4524 / 4525 06106 0000 LDAD, 0 4526 06107 3171 DCA DAREG /SAVE OUTBOUND DATA 4527 06110 1171 TAD DAREG 4528 06111 6743 IOT3, DLAG /LOAD DISK ADDRESS REGISTER 4529 06112 5706 JMP I LDAD /EXIT 4530 06113 4406 CLASIC /CHECK FOR CLASSIC 4531 06114 4436 ERROR /ROUTINE TO EXECUTE 4532 06115 7402 ERHLT3, HLT /SKIP TRAP ERROR 4533 06116 5313 JMP .-3 /NON-RECOVERABLE ERROR. 4534 / 4535 / 4536 /SUBROUTINE TO LOAD COMMAND REGISTER 4537 / 4538 06117 0000 LDCM, 0 4539 06120 3170 DCA CMREG /SAVE OUTBOUND DATA 4540 06121 1170 TAD CMREG 4541 06122 6746 IOT6, DLDC /LOAD COMMAND REGISTER 4542 06123 5717 JMP I LDCM /EXIT 4543 06124 4406 CLASIC /CHECK FOR CLASSIC. 4544 06125 4436 ERROR /ROUTINE TO EXECUTE. 4545 06126 7402 ERHLT6, HLT /SKIP TRAP ERROR. 4546 06127 5324 JMP .-3 /NON-RECOVERABLE ERROR. 4547 / 4548 /SUBROUTINE TO ISSUE "DSKP" DISK SKIP IOT 4549 / 4550 06130 0000 SDKP, 0 4551 06131 6741 IOT1, DSKP /DISK SKIP IOT 4552 06132 7410 SKP /DID NOT SKIP 4553 06133 2330 ISZ SDKP 4554 06134 5730 JMP I SDKP /EXIT 4555 / 4556 /SUBROUTINE TO ISSUE "DCLR" CLEAR IOT 4557 / 4558 06135 0000 CLDR, 0 4559 06136 6742 IOT2, DCLR /DCLR "CLEAR IOT" 4560 06137 5735 JMP I CLDR /EXIT 4561 06140 4406 CLASIC /CHECK FOR CLASSIC. 4562 06141 4436 ERROR /ROUTINE TO EXECUTE. 4563 06142 7402 ERHLT2, HLT /SKIP TRAP ERROR 4564 06143 5340 JMP .-3 /NON-RECOVERABLE ERROR. 4565 4566 / 4567 /SUBROUTINE TO ISSUE "DMAN" MAINTENANCE IOT 4568 / 4569 06144 0000 LDMN, 0 4570 06145 6747 IOT7, DMAN /"DMAN" MAINTENANCE IOT 4571 06146 5744 JMP I LDMN /EXIT 4572 06147 4406 CLASIC /CHECK FOR CLASSIC. 4573 06150 4436 ERROR /ROUTINE TO EXECUTE. 4574 06151 7402 ERHLT7, HLT /SKIP TRAP ERROR. 4575 06152 5347 JMP .-3 /NON-RECOVERABLE ERROR. 4576 PAGE 4577 / 4578 /SUBROUTINE TO SHIFT, THEN READ DISK 4579 /ADDRESS INTO DATA BUFFER, 12 SHIFTS 4580 / 4581 06200 0000 RDAD, 0 4582 06201 4445 ENMAN2 /ENTER MAINTENANCE MODE + DB4=1 4583 06202 1134 TAD M5 4584 06203 3155 DCA SBCNT1 /SETUP COUNTER 4585 06204 1103 TAD K1000 /ENABLE SHIFT CRC 4586 06205 1100 TAD K0200 /ENABLE SHIFT SURFACE AND SECTOR 4587 06206 4455 LDMAN /LOAD MAINTENANCE 4588 06207 2155 ISZ SBCNT1 /FOUR SHIFTS 4589 06210 5206 JMP .-2 /MORE TO GO 4590 06211 7300 CLA CLL 4591 06212 1135 TAD M7 4592 06213 3155 DCA SBCNT1 4593 06214 1103 TAD K1000 /SHIFT CRC 4594 06215 4455 LDMAN /LOAD MAINTENANCE IOT 4595 06216 2155 ISZ SBCNT1 4596 06217 5215 JMP .-2 /SHIFT 12 BITS 4597 06220 7300 CLA CLL 4598 06221 1074 TAD K0020 4599 06222 4455 LDMAN /READ DATA BUFFER 4600 06223 3171 DCA DAREG /SAVE RESULTS 4601 4602 4603 06224 1171 TAD DAREG 4604 06225 5600 JMP I RDAD /EXIT 4605 / 4606 /SUBROUTINE TO READ DATA BUFFER TO AC 4607 / 4608 06226 0000 RDBF, 0 4609 06227 7330 CLA CLL CML RAR 4610 06230 4455 LDMAN /ENTER MAINTENANCE MODE 4611 06231 1074 TAD K0020 4612 06232 4455 LDMAN /LOAD MAINTENANCE 4613 06233 3167 DCA DBREG 4614 06234 1167 TAD DBREG 4615 06235 3173 DCA DTREG 4616 06236 1173 TAD DTREG 4617 06237 5626 JMP I RDBF /EXIT 4618 / 4619 /SUBROUTINE TO SHIFT COMMAND REGISTER TO 4620 /DATA BUFFER THEN READ DATA BUFFER 4621 / 4622 06240 0000 RDCM, 0 4623 06241 4445 ENMAN2 /ENTER MAINTENANCE MODE + DB4=1 4624 06242 1136 TAD M12 4625 06243 3155 DCA SBCNT1 /12 BIT SHIFT 4626 06244 1102 TAD K0400 /ENABLE BIT FOR SHIFT COMMAND 4627 06245 4455 LDMAN /LOAD AND GO 4628 06246 2155 ISZ SBCNT1 4629 06247 5245 JMP .-2 /SHIFT 12 4630 06250 7300 CLA CLL 4631 06251 1074 TAD K0020 /ENABLE READ BUFFER 4632 06252 4455 LDMAN /LOAD AND GO 4633 06253 3170 DCA CMREG /SAVE IT 4634 06254 1170 TAD CMREG 4635 06255 5640 JMP I RDCM /EXIT 4636 / 4637 /ROUTINE TO ENTER MAINTENANCE MODE 4638 / 4639 06256 0000 MAIN1, 0 4640 06257 7330 CLA CLL CML RAR /ENABLE MAINTENANCE BIT 4641 06260 4455 LDMAN /ENTER MAINTENANCE MODE 4642 06261 7300 CLA CLL 4643 06262 5656 JMP I MAIN1 4644 / 4645 / 4646 / 4647 / 4648 /SUBROUTINE TO SHIFT CRC REGISTER TO DATA 4649 /BUFFER THEN READ IT. 4650 / 4651 06263 0000 RDCR, 0 4652 06264 4445 ENMAN2 /ENTER MAINTENANCE MODE + DB4=1 4653 06265 1136 TAD M12 4654 06266 3155 DCA SBCNT1 /12 SHIFTER 4655 06267 1103 TAD K1000 /ENABLE SHIFT CRC 4656 06270 4455 LDMAN /LOAD AND GO 4657 06271 2155 ISZ SBCNT1 4658 06272 5270 JMP .-2 /12 BIT SHIFT 4659 06273 7300 CLA CLL 4660 06274 1074 TAD K0020 /ENABLE READ BUFFER 4661 06275 4455 LDMAN 4662 06276 3165 DCA CRREG2 /SAVE IT 4663 06277 4445 ENMAN2 /ENTER MAINTENANCE MODE + DB4=1 4664 06300 1136 TAD M12 4665 06301 3155 DCA SBCNT1 /12 BIT SHIFTER 4666 06302 1103 TAD K1000 /ENABLE SHIFT CRC 4667 06303 4455 LDMAN /LOAD AND GO 4668 06304 2155 ISZ SBCNT1 4669 06305 5303 JMP .-2 /12 BIT SHIFT 4670 4671 06306 7300 CLA CLL 4672 06307 1074 TAD K0020 /ENABLE READ BUFFER 4673 06310 4455 LDMAN 4674 06311 0145 AND K0017 4675 06312 3164 DCA CRREG1 /SAVE OTHER HALF 4676 06313 5663 JMP I RDCR /EXIT 4677 / 4678 / 4679 /SUBROUTINE TO PRINT TWO OCTAL 4680 / 4681 06314 0000 TOCT, 0 4682 06315 3155 DCA SBCNT1 /SAVE AC 4683 06316 1155 TAD SBCNT1 4684 06317 7010 RAR 4685 06320 7012 RTR 4686 06321 0072 AND K0007 4687 06322 1063 TAD K0260 4688 06323 4434 TYPE /PRINT FIRST BYTE 4689 06324 1155 TAD SBCNT1 4690 06325 0072 AND K0007 4691 06326 1063 TAD K0260 4692 06327 4434 TYPE /PRINT SECOND BIT 4693 06330 5714 JMP I TOCT /EXIT 4694 / 4695 / 4696 / 4697 /ROUTINE TO DO CRLF 4698 / 4699 06331 0000 UPONE, 0 4700 06332 7300 CLA CLL 4701 06333 1146 TAD K0215 4702 06334 4434 TYPE 4703 06335 1147 TAD K0212 4704 06336 4434 TYPE 4705 06337 4434 TYPE /TYPE ONE NULL 4706 06340 5731 JMP I UPONE 4707 PAGE 4708 / 4709 /ROUTINE TO PRINT FOUR OCTAL 4710 / 4711 06400 0000 FROCT, 0 4712 06401 7006 RTL 4713 06402 7006 RTL 4714 06403 3777 DCA I (UPONE 4715 06404 1130 TAD K7774 4716 06405 3776 DCA I (TOCT 4717 06406 1777 TAD I (UPONE 4718 06407 0072 AND K0007 4719 06410 1063 TAD K0260 4720 06411 4434 TYPE 4721 06412 1777 TAD I (UPONE 4722 06413 7006 RTL 4723 06414 7004 RAL 4724 06415 3777 DCA I (UPONE 4725 06416 2776 ISZ I (TOCT 4726 06417 5206 JMP .-11 4727 06420 1261 TAD K0240 4728 06421 4434 TYPE 4729 06422 5600 JMP I FROCT 4730 / 4731 /SUBROUTINE TO PRINT TEXT 4732 / 4733 06423 0000 PRN, 0 4734 06424 7300 CLA CLL 4735 06425 1623 TAD I PRN /GET POINTER 4736 4737 06426 2223 ISZ PRN 4738 06427 3200 DCA FROCT 4739 06430 1600 TAD I FROCT 4740 06431 0112 AND K7700 4741 06432 7450 SNA 4742 06433 5257 JMP EXIT 4743 06434 7500 SMA 4744 06435 7020 CML 4745 06436 7001 IAC 4746 06437 7012 RTR 4747 06440 7012 RTR 4748 06441 7012 RTR 4749 06442 4434 TYPE 4750 06443 1600 TAD I FROCT 4751 06444 0115 AND K0077 4752 06445 7450 SNA 4753 06446 5257 JMP EXIT 4754 06447 1262 TAD K3740 4755 06450 7500 SMA 4756 06451 1124 TAD K4100 4757 06452 1261 TAD K0240 4758 06453 4434 TYPE 4759 06454 2200 ISZ FROCT 4760 06455 7300 CLA CLL 4761 06456 5230 JMP PRN+5 4762 06457 7300 EXIT, CLA CLL 4763 06460 5623 JMP I PRN 4764 / 4765 06461 0240 K0240, 0240 4766 06462 3740 K3740, 3740 4767 / 4768 /ROUTINE TO TYPE 4769 / 4770 06463 0000 PRINT, 0 4771 06464 4406 CLASIC /CHECK FOR CLASSIC 4772 06465 4435 C8TYPE /ROUTINE TO EXECUTE. 4773 06466 7410 SKP 4774 06467 5663 JMP I PRINT /INHIBIT TYPE. 4775 06470 6046 TLS 4776 06471 6041 TSF 4777 06472 5271 JMP .-1 4778 06473 6042 TCF 4779 06474 7200 CLA 4780 06475 5663 JMP I PRINT 4781 / 4782 /ROUTINE TO GET ALL REGISTERS AFTER "ERHLT9" 4783 / 4784 06476 0000 DUMP, 0 4785 06477 4404 LAS 4786 06500 0102 AND K0400 /MASK SWITCH 3 4787 06501 7650 SNA CLA /WAS IT GET ALL 4788 06502 5676 JMP I DUMP /NO 4789 06503 4442 RDSTAT /GET STATUS 4790 06504 4456 RDBUF /READ BUFFER 4791 06505 7300 CLA CLL 4792 06506 1136 TAD M12 4793 06507 3263 DCA PRINT /12 BIT COUNTER 4794 06510 1100 TAD K0200 /ENABLE SHIFT SECTOR AND SURFACE 4795 06511 4455 LDMAN /LOAD MAINTENANCE 4796 06512 2263 ISZ PRINT /12 BIT SHIFT 4797 06513 5311 JMP .-2 4798 06514 7300 CLA CLL 4799 06515 1074 TAD K0020 /ENABLE READ BUFFER 4800 06516 4455 LDMAN /LOAD MAINTENANCE 4801 06517 3171 DCA DAREG /SAVE SURFACE AND SECTOR 4802 06520 4454 RDCRC /READ CRC 4803 06521 4443 RDCMD /READ COMMAND 4804 06522 4462 CRLF 4805 06523 1125 TAD K7600 4806 06524 2276 ISZ DUMP 4807 06525 5676 JMP I DUMP /REPORT 4808 / 4809 4810 06576 6314 PAGE 06577 6331 4811 / 4812 /SUBROUTINE FOR "ERRORS", SCOPE LOOPS, AND 4813 /ERROR TYPEOUTS. 4814 / 4815 06600 0000 ERRO, 0 4816 06601 7300 CLA CLL 4817 06602 4425 AERRO /REPORT ERROR TO APT IF NEED BE. 4818 06603 1600 TAD I ERRO /GET SCOPE LOOP POINTER 4819 06604 3340 DCA SERRO /SAVE FOR RETURN 4820 06605 4404 LAS /GET SWR0 4821 06606 7700 SMA CLA /IS IT SCOPE LOOP 4822 06607 5217 JMP .+10 4823 06610 4404 LAS /GET SWITCH 2 4824 06611 7006 RTL 4825 06612 7710 SPA CLA /INHIBIT ERROR BELL 4826 06613 5740 JMP I SERRO /YES 4827 06614 1101 TAD K0207 4828 06615 4434 TYPE 4829 06616 5740 JMP I SERRO /NO 4830 06617 2200 ISZ ERRO 4831 06620 4462 CRLF 4832 06621 4462 CRLF 4833 06622 1600 TAD I ERRO /GET TEXT POINTER 4834 06623 0145 AND K0017 /MASK 8-11 4835 06624 1346 TAD HEDTAD /MAKE ERROR HEADER TAD 4836 06625 3226 DCA .+1 4837 06626 7402 HLT /MODIFIED HEADER TAD 4838 06627 3231 DCA .+2 4839 06630 4457 PRNTER /MODIFIED HEADER POINTER 4840 06631 7402 HLT 4841 06632 4462 CRLF 4842 06633 4457 PRNTER /PRINT PC: 4843 06634 7400 TEXPC 4844 06635 7340 CLA CLL CMA 4845 06636 1200 TAD ERRO /GET PC POINTER 4846 06637 4460 OCTEL /PRINT PC STORED 4847 06640 1600 TAD I ERRO /GET TEXT POINTER 4848 06641 7104 CLL RAL 4849 06642 7420 SNL 4850 06643 5257 JMP NTDG /NOT GD: REGISTER 4851 4852 4853 06644 3200 DCA ERRO 4854 06645 4457 PRNTER /PRINT GD: 4855 06646 7402 TEXGD 4856 06647 1200 TAD ERRO 4857 06650 7700 SMA CLA /WAS IT A 6 BIT OCTAL BYTE 4858 06651 5254 JMP .+3 /NO 4859 06652 1162 TAD GDREG1 /GET DATA 4860 06653 4461 TWOCT /PRINT TWO OCTAL 4861 06654 1163 TAD GDREG2 4862 06655 4460 OCTEL /PRINT FOUR OCTAL 4863 06656 7610 SKP CLA 4864 06657 3200 NTDG, DCA ERRO 4865 06660 1200 TAD ERRO /GET TEXT POINTER 4866 06661 7104 CLL RAL 4867 06662 7420 SNL 4868 06663 5274 JMP NTCRC 4869 06664 3200 DCA ERRO 4870 06665 4457 PRNTER /PRINT CR: 4871 06666 7404 TEXCR 4872 06667 1164 TAD CRREG1 4873 06670 4461 TWOCT /PRINT 4874 06671 1165 TAD CRREG2 4875 06672 4460 OCTEL /PRINT FOUR OCTAL 4876 06673 7610 SKP CLA 4877 06674 3200 NTCRC, DCA ERRO 4878 06675 1342 TAD XTEXT 4879 06676 3345 DCA PCNTR2 4880 06677 1343 TAD XREG 4881 06700 3010 DCA AUTO10 4882 06701 1131 TAD K7771 4883 06702 3344 DCA PCNTR1 /COUNTER FOR # OF HEADS 4884 06703 1200 STRAUT, TAD ERRO /GET TEXT POINTER 4885 06704 7500 SMA 4886 06705 5332 JMP NOTEX /NOT THIS ONE 4887 06706 7104 CLL RAL 4888 06707 3200 DCA ERRO 4889 06710 1345 TAD PCNTR2 /GET TEXT MESSAGE POINTER 4890 06711 2345 ISZ PCNTR2 4891 06712 2345 ISZ PCNTR2 4892 06713 3315 DCA .+2 /STORE FOR PRNTER 4893 06714 4457 PRNTER /PRINT XX: 4894 06715 7402 HLT /MODIFIED TEXT POINTER 4895 06716 1410 TAD I AUTO10 4896 06717 4460 OCTEL /PRINT FOUR OCTAL 4897 06720 2344 BAKPNT, ISZ PCNTR1 4898 06721 5303 JMP STRAUT /CHECK FOR NEXT CC: 4899 06722 1007 TAD SAVEND /GET CONSTANT SAVED 4900 06723 3532 DCA I K7777 /REPLACE LAST LOCATION 4901 06724 4406 CLASIC /CHECK FOR CLASSIC. 4902 06725 4436 C8ERR /ROUTINE TO EXECUTE!!!! 4903 06726 7402 ERHLT9, HLT /ALL RECOVERABLE ERROR HALTS 4904 06727 4741 JMS I XDUMP /CHECK FOR GET ALL REGISTERS 4905 06730 5740 JMP I SERRO /TRY SAME TEST AGAIN 4906 06731 5257 JMP NTDG /GET ALL REGISTERS 4907 06732 7104 NOTEX, CLL RAL 4908 06733 3200 DCA ERRO 4909 06734 2345 ISZ PCNTR2 4910 06735 2345 ISZ PCNTR2 4911 06736 2010 ISZ AUTO10 4912 06737 5320 JMP BAKPNT 4913 / 4914 06740 0000 SERRO, 0 4915 06741 6476 XDUMP, DUMP 4916 06742 7406 XTEXT, TEXST 4917 06743 0165 XREG, CRREG2 4918 06744 0000 PCNTR1, 0 4919 06745 0000 PCNTR2, 0 4920 06746 1347 HEDTAD, TAD HEDLST 4921 06747 7424 HEDLST, ERTX1 4922 06750 7437 ERTX2 4923 06751 7453 ERTX3 4924 06752 7471 ERTX4 4925 06753 7502 ERTX5 4926 06754 7514 ERTX6 4927 06755 7526 ERTX7 4928 06756 7536 ERTX8 4929 06757 7551 ERTX9 4930 / 4931 / 4932 /ROUTINE TO ENTER MAINTENANCE MODE AND 4933 /SET DB4=1 TO ENABLE SHIFT TO LOWER SILO 4934 / 4935 06760 0000 MAIN2, 0 4936 06761 7330 CLA CLL CML RAR /ENABLE SET MAINTENANCE MODE 4937 06762 4455 LDMAN /LOAD MAINTENANCE 4938 06763 7010 RAR /ENABLE SET DB4=1 4939 06764 4455 LDMAN /LOAD MAINTENANCE 4940 06765 7300 CLA CLL 4941 06766 5760 JMP I MAIN2 4942 PAGE 4943 / 4944 /SUBROUTINE FOR "NO ERRORS" AND SCOPE 4945 /LOOPS. UPDATE UP COUNTER "REG1" AND 4946 /DOWN COUNT "REG2" ON EVERY ENTRY. 4947 / 4948 07000 0000 NERRO, 0 4949 07001 4406 CLASIC /CHECK FOR CLASSIC. 4950 07002 4440 C8CKPA /ROUTINE TO EXECUTE. 4951 07003 7000 NOP 4952 07004 4404 LAS /GET SWITCH 4 4953 07005 0100 AND K0200 /MASK 4954 07006 7650 SNA CLA /WAS IT SET 4955 07007 5215 JMP STPHLT+1 /NO DON'T HALT 4956 07010 1007 TAD SAVEND /GET BINARY END 4957 07011 3532 DCA I K7777 /REPLACE IT 4958 07012 4406 CLASIC /CHECK FOR CLASSIC 4959 07013 4437 C8INQU /WAIT FOR OPERATOR. 4960 07014 7402 STPHLT, HLT /STOP PROGRAM HALT 4961 07015 2200 ISZ NERRO /UPDATE PC STORE 4962 07016 1600 TAD I NERRO /GET SCOPE LOOP POINTER 4963 07017 3237 DCA SNERRO /STORE FOR RETURN 4964 07020 4404 LAS /GET SWITCH 0 4965 07021 7710 SPA CLA /ENTER SCOPE LOOP 4966 07022 5637 JMP I SNERRO /YES 4967 07023 2153 ISZ REG1 /UPDATE UPCOUNTER 4968 07024 7610 SKP CLA 4969 07025 5233 JMP NEXTST /END OF PARTICULAR TEST 4970 07026 1153 TAD REG1 4971 07027 7140 CLL CMA 4972 07030 3154 DCA REG2 /SETUP DOWN COUNTER 4973 07031 4424 NEXT, TICK /REPLACED WITH TIMING OF ON APT 4974 07032 5637 JMP I SNERRO /BACK TO SAME TEST 4975 07033 2200 NEXTST, ISZ NERRO /UPDATE PC STORE 4976 07034 2200 ISZ NERRO /UPDATE PC STORE 4977 07035 5600 JMP I NERRO /TO NEXT SEQUENTIAL TEST 4978 / 4979 07036 0000 TOTST, 0 4980 07037 0000 SNERRO, 0 4981 / 4982 /SUBROUTINE TO SET UP FIELD 0 4983 / 4984 07040 0000 SETUP, 0 4985 07041 1433 TAD I THSFLD /GET HOME DF 4986 07042 3252 DCA BAKFLD 4987 07043 1151 TAD KRMF /GET RMF FOR INT. RETURN 4988 07044 6201 CDF 0 /SWITCH TO FIELD 0 4989 07045 3465 DCA I K0001 4990 07046 1254 TAD K5403 /JMP I 3 FOR LOC. 2 4991 07047 3466 DCA I K0002 4992 07050 1031 TAD INTRQ /GET ADDRESS RETURN 4993 07051 3467 DCA I K0003 4994 07052 7402 BAKFLD, HLT /HOME DF 4995 07053 5640 JMP I SETUP 4996 / 4997 07054 5403 K5403, 5403 4998 / 4999 /ROUTINE TO LOAD UPPER BUFFER 5000 / 5001 07055 0000 UPPER, 0 5002 07056 3236 DCA TOTST /SAVE DATA 5003 07057 7301 CLA CLL IAC 5004 07060 3237 DCA SNERRO /SETUP SHIFTER MASKER 5005 07061 1136 TAD M12 5006 07062 3200 DCA NERRO /SETUP COUNTER 5007 07063 4444 ENMAN1 /ENTER MAINTENANCE MODE 5008 07064 1236 UPPR1, TAD TOTST /GET DATA 5009 07065 0237 AND SNERRO /MASK 5010 07066 7640 SZA CLA /A ONE OR ZERO???? 5011 07067 1066 TAD K0002 /A ONE!!!! 5012 07070 1077 TAD K0100 /ENABLE SHIFT 5013 07071 4455 LDMAN /LOAD MAINTENANCE 5014 07072 7300 CLA CLL 5015 07073 1237 TAD SNERRO 5016 07074 7104 CLL RAL 5017 07075 3237 DCA SNERRO 5018 07076 2200 ISZ NERRO /COUNT BITS 5019 07077 5264 JMP UPPR1 /MORE TO GO 5020 07100 5655 JMP I UPPER /UPPER BUFFER LOADED 5021 / 5022 /ROUTINE TO CHANGE PROGRAM DEVICE CODES 5023 / 5024 07101 4406 CHANG, CLASIC /CHECK FOR CLASSIC. 5025 07102 4431 C8SWIT /ROUTINE TO EXECUTE. 5026 07103 7000 NOP 5027 07104 4404 LAS 5028 07105 0332 AND A0770 5029 07106 3236 DCA TOTST /SAVE DESIRED 5030 07107 1334 TAD CHNPOT 5031 07110 3255 DCA UPPER 5032 07111 1333 TAD CCNTR1 5033 07112 3237 DCA SNERRO /A FEW POINTERS 5034 07113 1655 CHANGR, TAD I UPPER /GET ADDRESS POINTER 5035 07114 3240 DCA SETUP /SAVE IT 5036 07115 1640 TAD I SETUP /GET OLD IOT CODE 5037 07116 0331 AND A7007 5038 07117 1236 TAD TOTST /ADD IN DESIRED 5039 07120 3640 DCA I SETUP /CHANGE CODE 5040 07121 2255 ISZ UPPER /UPDATE POINTER 5041 07122 2237 ISZ SNERRO /UPDATE CHANGE COUNTER 5042 07123 5313 JMP CHANGR 5043 07124 4406 CLASIC /CHECK FOR CLASSIC. 5044 07125 4436 C8ERR /ROUTINE TO EXECUTE. 5045 07126 7402 CHNHLT, HLT /DEVICE CODES CHANGED. PRESS 5046 07127 5730 JMP I XBGN /CONTINUE PR IF ON CONSOLE 5047 /PACKAGE HIT CONTROL E. 5048 / 5049 07130 0200 XBGN, BGN 5050 / 5051 07131 7007 A7007, 7007 5052 07132 0770 A0770, 0770 5053 07133 7771 CCNTR1, 7771 5054 07134 7135 CHNPOT, CHNPOT+1 5055 07135 6131 IOT1 5056 07136 6136 IOT2 5057 07137 6111 IOT3 5058 07140 6100 IOT4 5059 07141 6064 IOT5 5060 07142 6122 IOT6 5061 07143 6145 IOT7 5062 / 5063 PAGE 5064 /THIS ROUTINE TEST FOR BEING ON THE APT OR ACT SYSTEMS. 5065 /IF ON APT CONSOLE PACKAGE AND SWITCH REGISTER FUNCTIONS 5066 /ARE NOP'S. 5067 / 5068 / 5069 07200 0000 APT8, 0 5070 07201 1022 TAD OP2 /HARDWARE CONFIGURATION 5071 07202 0106 AND K4000 5072 07203 7650 SNA CLA /SKIP IF ON ACT OR APT 5073 07204 5600 JMP I APT8 /RETURN TO MAIN PROGRAM 5074 07205 1022 TAD OP2 5075 07206 0264 AND K7377 /MAKE SURE CONSOLE DISABLED 5076 07207 3022 DCA OP2 5077 07210 1107 TAD K7000 5078 07211 3663 DCA I XMYLAS /NOP SWITCH REGISTER FUNCTIONS 5079 07212 1200 TAD APT8 5080 07213 1070 TAD K0004 5081 07214 3200 DCA APT8 5082 07215 1021 TAD OP1 /GET MEMORY SIZE 5083 07216 7012 RTR /SET UP MEMORY SIZE 5084 07217 5600 JMP I APT8 /NOW ON APT. RETURN IS PLUS 4. 5085 / 5086 /THIS ROUTINE WILL GENERATE THE RIMING REQUIRED BY 5087 /APT OR ACT. 5088 / 5089 07220 0000 KTICK, 0 5090 07221 1022 TAD OP2 5091 07222 0106 AND K4000 /SEE IF ON APT 5092 07223 7650 SNA CLA 5093 07224 5620 JMP I KTICK /NOT ON APT 5094 07225 2266 ISZ CLKCNT /INCREMENT COUNTER 5095 07226 5620 JMP I KTICK /NO 5096 07227 6002 IOF /DISABLE INTERRUPTS 5097 07230 6214 RDF /GET PRESENT DATA FIELD 5098 07231 1150 TAD KCDF 5099 07232 3233 DCA .+1 /ESTABLISHES CURRENT DATA FIELD 5100 07233 7402 HLT /REPLACED WITH CURRENT DATA FIELD 5101 07234 6272 CIF 70 /FIELD 7, LOCATION OF UV PROM 5102 07235 4777 JMS I (6500 5103 07236 1376 TAD (-2777 /ABOUT 1.5 SEC ON MOST TESTS 5104 07237 3266 DCA CLKCNT 5105 07240 5620 JMP I KTICK 5106 / 5107 /THIS ROUTINE WILL NOTIFY APT OF AN ERROR AND SEND PC TO 5108 /APT SYSTEM 5109 / 5110 07241 0000 WAERRO, 0 5111 07242 1022 TAD OP2 5112 07243 0106 AND K4000 /SEE IF ON APT 5113 07244 7650 SNA CLA 5114 07245 5641 JMP I WAERRO /NO 5115 07246 6002 IOF /DISABLE INTERRUPTS 5116 07247 7200 CLA 5117 07250 1775 TAD I (ERRO /GET PC 5118 07251 3265 DCA SAVPC 5119 07252 6214 RDF /GET CURRENT DATA FIELD 5120 07253 1774 TAD I (KCDF 5121 07254 3256 DCA .+2 5122 07255 1265 TAD SAVPC 5123 07256 7402 HLT /REPLACED WITH CURRENT DATA FIELD 5124 07257 6272 CIF 70 /FIELD OF UVPROM 5125 07260 5773 JMP I (6520 /NOTIFY APT OF ERROR 5126 07261 7200 CLA 5127 07262 5641 JMP I WAERRO 5128 / 5129 07263 5767 XMYLAS, MYLAS+3 5130 07264 7377 K7377, 7377 5131 07265 0000 SAVPC, 0 5132 07266 5001 CLKCNT, -2777 5133 5134 5135 5136 5137 07373 6520 PAGE 07374 0150 07375 6600 07376 5001 07377 6500 5138 07400 2003 TEXPC, TEXT "PC:" 07401 7200 5139 07402 0704 TEXGD, TEXT "GD:" 07403 7200 5140 07404 0322 TEXCR, TEXT "CR:" 07405 7200 5141 07406 2324 TEXST, TEXT "ST:" 07407 7200 5142 07410 0402 TEXDB, TEXT "DB:" 07411 7200 5143 07412 0315 TEXCM, TEXT "CM:" 07413 7200 5144 07414 0401 TEXDA, TEXT "DA:" 07415 7200 5145 07416 0104 TEXAD, TEXT "AD:" 07417 7200 5146 07420 0424 TEXDT, TEXT "DT:" 07421 7200 5147 07422 0103 TEXAC, TEXT "AC:" 07423 7200 5148 07424 2324 ERTX1, TEXT "STATUS REGISTER ERROR" 07425 0124 07426 2523 07427 4022 07430 0507 07431 1123 07432 2405 07433 2240 07434 0522 07435 2217 07436 2200 5149 07437 0317 ERTX2, TEXT "COMMAND REGISTER ERROR" 07440 1515 07441 0116 07442 0440 07443 2205 07444 0711 07445 2324 07446 0522 07447 4005 07450 2222 07451 1722 07452 0000 5150 07453 0411 ERTX3, TEXT "DISK ADDRESS REGISTER ERROR" 07454 2313 07455 4001 07456 0404 07457 2205 07460 2323 07461 4022 07462 0507 07463 1123 07464 2405 07465 2240 07466 0522 07467 2217 07470 2200 5151 07471 0401 ERTX4, TEXT "DATA BREAK ERROR" 07472 2401 07473 4002 07474 2205 07475 0113 07476 4005 07477 2222 07500 1722 07501 0000 5152 07502 0322 ERTX5, TEXT "CRC REGISTER ERROR" 07503 0340 07504 2205 07505 0711 07506 2324 07507 0522 07510 4005 07511 2222 07512 1722 07513 0000 5153 07514 0401 ERTX6, TEXT "DATA REGISTER ERROR" 07515 2401 07516 4022 07517 0507 07520 1123 07521 2405 07522 2240 07523 0522 07524 2217 07525 2200 5154 07526 0411 ERTX7, TEXT "DISK SKIP ERROR" 07527 2313 07530 4023 07531 1311 07532 2040 07533 0522 07534 2217 07535 2200 5155 07536 0411 ERTX8, TEXT "DISK INTERRUPT ERROR" 07537 2313 07540 4011 07541 1624 07542 0522 07543 2225 07544 2024 07545 4005 07546 2222 07547 1722 07550 0000 5156 07551 0103 ERTX9, TEXT "AC REGISTER ERROR" 07552 4022 07553 0507 07554 1123 07555 2405 07556 2240 07557 0522 07560 2217 07561 2200 5157 07562 2213 TEXEND, TEXT "RK8E DISKLESS PASS COMPLETE" 07563 7005 07564 4004 07565 1123 07566 1314 07567 0523 07570 2340 07571 2001 07572 2323 07573 4003 07574 1715 07575 2014 07576 0524 07577 0500 5158 / 5159 $$$