DEF TST15 INTERRCORD GAP CREEP TEST DEF TST16 WRITE-READ SINGLE ROTATING BIT DEF TST17 WRITE-READ CHANNEL SAW-TOOTH DEF TST18 WRITE-READ TRACK SAW-TOOTH DEF TST19 WRITE-READ RANDOM DATA DEF TST20 DMA CHANNEL 1 WRITE-READ RANDOM DATA DEF TST21 DMA CHANNEL 2 WRITE-READ RANDOM DATA DEF TST22 RAPID WRITE TEST DEF TST23 ECHO CHECK ON ALL UNITS ON-LINE DEF TST24 CONTROLLER CHECK FOR MULTI-UNIT OPERATION DEF TST25 INTER-UNIT COMPATIBILITY (REEL EXCHANGE) DEF TST26 WRITE RING ENABLE TEST DEF TST27 REWIND OFF-LINE CHECK DEF TST28 WRITE ALL ONES RECORD DEF TST29 READ ALL ONES RECORD DEF TST30 OPERATOR SERVICE ROUTINES DEF OPDSN OPERATOR DESIGN DEC -1 * * * * SETUP- THIS ROUTINE IS USED WHENEVER DIAGNOSTIC * IS RESTARTED AT 2000. * .SETU NOP * JSB INTOF,I TURN OFF I/O SYSTEM * * CHECK SWITCH 9 FOR ABORT LIA SW LOAD SWITCH REGISTER AND SW09 MASK FOR BIT 9 SZA IS BIT 9 SET? JMP .ZUSR,I YES-EXIT TO TCP LDA .M1 STA .ZCFT,I CORECTION TO TCP*********** CLA CLEAR CONTANTS STA UNICT CLEAR UNIT #,RESET=0 STA UNIT CLEAR UNIT # STA OLDTN CLEAR OLD TEST # STA SUBTS CLEAR SUBTEST COUNTER STA ERSKP CLEAR ERROR MESSAGE SKIP FLAG STA TSTN CLEAR TEST NUMBER STA TST0F CLEAR TEST 0 FLAG JSB UNISL GO SELECT A TAPE UNIT NOP JSB CLEAR CLEAR THE CONTROLLER JSB .ALRW,I REWIND ALL UNITS JMP .SETU,I GO TO 2000 .ZCFT DEF ZCFTT POINTER TO ZCFTT IN TCP *********** * * * EXECUTIVE EXTENSION MODULE * * EXECUTIVE CONTROL FOR TAPE UNIT SELECTION * *** NOTE: THE JSB .EXEC,I CALL MUST BE THE FIRST STATEMENT * AFTER TSTXX NOP IN EVERY TEST. * CURRENT TAPE UNIT UNDER TEST=UNIT * COUNTER WHICH KEEPS UNIT NUMBER UPDATE=UNICT * BASIC OPERATION OF THIS SECTION * 1. UNICT IS INCREMENTED AFTER EACH PASS * 2. UNICT IS INCREMENTED IF CURRENT UNIT IS OFF-LINE * 3. IF THERE IS NO TAPE SELECTED BY SWITCH REG. ALL * TAPES ARE CYCLED (4 PASSES IF 4 UNITS UP)IN SEQUENCE. * 4. IF SWITCH REG. SELECTION IS MADE,ONLY THOSE UNITS * WILL BE CYCLED. * 5. IF UNIT IS SELECTED BY SWITCH REG.AND NOT ON-LINE, * AN ERROR MESSAGE WILL RESULT. * 6. THE NUMBER OF TAPES REQUESTED IS EQUAL TO THE NUMBER OF * PASSES. * 7. TAPE UNITS ARE SELECTED IN NUMERICAL ORDER I.E. 0,1,2,3 * IF 2 WERE NOT SELECTED THE SEQUENCE WOULD BE 0,1,3 (3 PASSES) * * EXE01 NOP JSB INTOF,I TURN OFF INTERRUPT SYSTEM CLA STA TST0F CLEAR TEST 0 FLAG STA RDERR CLEAR READ AND STA WRERR WRITE ERROR FLAG STA SKPSW CLEAR SKIP SW REG CHECK FLAG STA ERSKP CLEAR ERROR MESSAGE SKIP FLAG STA SUBTS CLEAR THE SUBTEST COUNTER JSB KCORE GET MAX BUFFER LENGTH LDA BFMAX ADA .MPAG SSA IS THE MAXIMUM BUFFER>2048? JMP TAP24 NO-OK TO CONTINUE LDA .PAGE YES-TOO LARGE STA BFMAX RESET MAX BUFFER TO 2048 BYTES TAP24 EQU * * LDA ORGSC LOAD ORGINAL SELECT CODE STA SC SETUP CURRENT SELECT CODE * * CHECK SWITCH 4 FOR DMA CH 1 LDA FG183 IS IT A 13183? SZA,RSS JMP TAP25 NO-GO CLEAR DMA FLAG CPA .1 IS IT A 13183-NO DMA? JMP TAP25 YES-GO CLEAR DMA FLAG LDA DMAFG NO-RESTORE DMA FLAG STA FGDMA JMP TAP19 SKIP DMA FLAG CLEAR * TAP25 EQU * CLA STA FGDMA CLEAR DMA FLAG TAP19 EQU * LIA SW LOAD SWITCH REGISTER AND SW04 MASK OUT BIT 4 SZA,RSS IS BIT 4 SET? JMP TAP13 NO-EXIT LDA DMAFG CHECK DMA FLAG SZA,RSS IS IT ZERO? JMP TAP14 YES-EXIT LDA .2 YES-SET UP DMA FLAG STA FGDMA SET DMA FLAG TAP13 EQU * * * CHECK SWITCH 5 FOR DMA CH2 * LIA SW LOAD SWITCH REGISTER AND SW05 MASK FOR BIT 5 SZA,RSS IS BIT 5 SET? JMP TAP14 NO-EXIT LDA DMAFG CHECK DMA FLAG CPA .2 IS THERE A 2ND DMA CHANNEL? JMP *+2 YES-CONTINUE JMP TAP14 NO-EXIT LDA .3 YES-SET UP DMA FLAG STA FGDMA SET DMA FLAG TAP14 EQU * * * CHECK FOR SWITCH 7-CRCC SUPPRESS * LIA SW LOAD THE SWITCH REGISTER AND SW07 ISOLATE SWITCH 7 SZA IS SWITCH 7 SET? CCA YES-SET CRCC SKIP FLAG STA CRCFG SET CRCC FLAG * * * * THIS SECTION SELECTS THE NEXT ON-LINE TAPE * UNIT IF THE PASS COUNTER HAS INCREMENTED. * THE CURRENT TEST NUMBER (TSTN) IS COMPARED * TO THE TEST NUMBER USED DURING THE LAST * PASS THRU THIS ROUTINE.IF THE NEW TEST NUMBER * IS SMALLER THAN THE OLD TEST # (OLDTN), THE * ASSUMPTION IS A PASS WAS COMPLETED AND THEREFORE, * THE NEXT ON LINE UNIT IS SELECTED. * LDA TSTN LOAD CURRENT TEST NUMBER LDB OLDTN LOAD OLD TEST # CMB,INB MAKE IT NEGATIVE ADA B TSTN-OLDTN SSA IS IT POSTIVE? JMP TAP15 NO-JMP TO NEW PASS SETUP TAP17 EQU * YES-NOT A NEW PASS LDA TSTN GET TEST# STA OLDTN SET OLD TEST #= TO CURRENT # JMP TAPUP CONTINUE TAP15 EQU * ISZ UNICT GOTO NEXT UNIT NOP LDA UNICT LOAD THE NEXT UNIT # ADA .M4 SUBTRACT 4 SSA IS IT POSITIVE? JMP TAP17 NO-NOT = TO OR GREATER THAN 4 CLA YES-CLEAR UNICT STA UNICT CLEAR UNIT # JMP TAP17 * * TAPUP EQU * * * CHECK SWITCH 9 FOR ABORT LIA SW LOAD SWITCH REGISTER AND SW09 MASK FOR BIT 9 SZA,RSS IS BIT 9 SET? JMP TAP26 NO-CONTINUE LDA TSTN LOAD TEST NUMBER CPA .37 IS IT OP DESIGN? JMP .IRQ,I YES-EXIT TO OP DESIGN JMP .ZUSR,I NO-EXIT TO TCP TAP26 EQU * * JSB UNIUP CHECKS IF ANY UNITS ARE ON-LINE LIA SW LOAD SWITCH REGISTER AND .17 LOAD BITS 0-3 (TAPE UNITS) SZA IS THERE A SWITCH REG.SELECTION JMP TAPU1 YES- GOTO SWITCH REG CHECK LDA UNICT LOAD UNIT COUNTER JSB UNISL GO SELECT TAPE UNIT JMP TAPU2 OFF-LINE RETURN JMP TAPU3 ON-LINE- EXIT TAPU2 EQU * ISZ UNICT GO TO NEXT UNIT LDA UNICT CPA .4 IS IT LOGICAL UNIT 4 JMP TAPU4 YES. GO RESET IT JMP TAPUP NO- GO TRY NEW SELECTION TAPU4 EQU * CLA STA UNICT SET TAPE UNIT =0 JMP TAPUP GO CHECK SWITCH REGISTER * * * BEGIN SWITCH REG. CHECK FOR UNIT SELECTION * TAPU1 EQU * STA TMP1 SAVE SWITCH REG.SETINGS AND .1 SZA,RSS IS BIT 0 SET? (UNIT=0) JMP TAPU5 NO-TRY NEXT BIT CLA CPA UNICT IS IT UNIT 0 JMP TAPU9 YES TAPU5 LDA TMP1 AND .2 SZA,RSS IS BIT 1 SET? (UNIT=1) JMP TAPU6 NO-TRY NEXT BIT LDA .1 IS IT UNIT 1 CPA UNICT JMP TAPU9 YES TAPU6 LDA TMP1 AND .4 SZA,RSS IS BIT 2 SET? (UNIT=2) JMP TAPU7 NO-TRY NEXT BIT LDA .2 CPA UNICT IS IT UNIT 2 JMP TAPU9 YES TAPU7 LDA TMP1 AND .10 SZA,RSS IS BIT 3 SET? (UNIT=3) JMP TAPU2 GO TRY NEXT UNIT LDA .3 CPA UNICT IS IT UNIT3? JMP TAPU9 YES JMP TAPU2 NO-GO INCREMENT UNITCT * * A MATCH HAS BEEN FOUND BETWEEN * UNICT(UNIT #) AND SWITCH REGISTER * TAPU9 EQU * A REG HAS TAPE UNIT # JSB UNISL GO SELECT UNIT JMP TAP12 GO REPORT ERROR JMP TAPU3 UNIT ON-LINE- EXIT * ERROR- UNIT SELECTED BY SWITCH REG. * BUT UNIT IS OFF-LINE TAP12 EQU * CLB SETUP EXPECTED STATUS JSB ERMS,I SELECTED UNIT IS OFF-LINE DEF E033 JMP TAPUP TAPU3 EQU * JSB CLEAR CLEAR THE CONTROLLER LDA MSKRW JSB BITCK IS THE UNIT REWINDING? JMP TAP27 YES-GO CHECK TAPE BUSY BIT JSB EOTCK CHECK FOR EOT JMP TAP18 SET-GO REWIND THE UNIT TAP21 EQU * YES-EXIT * END OF EXECUTIVE TAPE SELECTION JMP EXE01,I * TAP18 EQU * JSB MSGC,I REPORT EOT DETECTED DEF H037 POINTER TO MESSAGE JMP TAP22 JUMP OVER MESSAGE H037 EQU * ASC 05,H037 EOT/ TAP22 EQU * JSB WTGAP WRITE A GAP JSB CLEAR TRY TO CLEAR EOT BIT JSB EOTCK IS EOT BIT STILL ON? JMP TAP23 YES-CONTINUE LDB MSKET SETUP EXPECTED STATUS JSB ERMS,I NO REPORT ERROR DEF E056 POINTER TO MESSAGE JMP TAP23 JUMP OVER MESSAGE E056 EQU * ASC 10,E056 EOT BIT CLEAR/ TAP23 EQU * LDB REW JSB OCMMD GO REWIND THE UNIT JSB FLGWT WAIT FOR COMMAND TO FINISH LDA MSKRT JSB BITCK IS TAPE BUSY AND REW BITS SET? JMP TAP27 YES-GO WAIT TAP28 EQU * LDB MSKRT SETUP EXPECTED STATUS JSB ERMS,I REPORT REWIND FAILURE DEF E035 JMP TAP15 GO SELECT THE NEXT UNIT TAP27 EQU * LDA MSKRT LOAD REWIND AND T BUSY BITS JSB BITCK IS IT SET? JMP TAP27 YES - WAIT TILL DONE JMP TAP21 NO - DONE SO CONTINUE * * * TEST 00 * USE TST00 TO CHECK COMMAND AND DATA CHANNEL * TST.0 EQU * * NOP CCA STA TST0F SET TEST 0 FLAG LDA ORGSC LOAD COMMAND SC STA SC SETUP CURRENT SELECT CODE STA USSC ******************** JSB .TST0,I CALL JSB MSGC,I REPORT DATA CH COMPLETE DEF T.001 POINTER TO MESSAGE LDA ORGSC LOAD COMMAND SC INA CONVERT IT TO DATA SC STA SC SETUP CURRENT SELECT CODE STA USSC ******************** JSB .ZBIO,I GO REPEAT BASIC I/O JSB MSGC,I REPORT CMND CH COMPLETE DEF T.002 POINTER TO MESSAGE CLA STA TST0F CLEAR TEST 0 FLAG JMP TST.0,I EXIT T.001 ASC 09,H025 FOR DATA CH/ T.002 ASC 09,H025 FOR CMND CH/ * * END OF TEST 0 * * TEST 01 INITIAL CLEAR CONTROLLER + UNIT SELECTON * TST01 NOP * * * SUBTEST 1 * LDA .1 STA SUBTS SETUP SUBTEST # JSB CLEAR GO CLEAR CONTROLLER * * SUBTEST 2 * LDA .2 STA SUBTS SETUP SUBTEST # * * CHECK UNIT 0 CLA LOAD UNIT# 0 JSB UNICK GO CHECK UNIT * END OF SELECT UNIT 0 * * CHECK UNIT=1 * LDA .1 LOAD UNIT # 1 JSB UNICK GO CHECK UNIT * * END OF SELECT UNIT=1 * * * CHECK UNIT =2 * LDA .2 LOAD UNIT # JSB UNICK GO CHECK UNIT * * END OF SELECT UNIT=2 * * * CHECK UNIT=3 * LDA .3 LOAD UNIT # JSB UNICK GO CHECK UNIT * * END OF SELECT UNIT=3 JMP T0101 GOTO NEXT SECTION * * * UNICK- OUTPUTS MESSAGE IF UNIT * IS ON-LINE OR OFF-LINE. *CALL: ALSO,CHECK UNIT ID IF 13183 * LDA * JSB UNICK *