* SKPL NOP SPACE ONE LINE CLA,CLE LDB SLASH JSB FMTR,I CR/LF JMP SKPL,I * TSTNI DEF TSTNO PCHRI DEF PCHAR * SLCDD DEF SLCD0 POINTERS TO DATA CHANNEL DEF SLCD1 I/O POINTER LIST SLCDC DEF SLCD2 POINTERS TO COMMAND CHANNEL DEF SLCD3 I/O POINTER LIST * * POINTERS TO TIMING TABLES * T12.5 DEF S12.5 T25.0 DEF S25.0 T37.5 DEF S37.5 TT45 DEF S45.0 * T45.0 DEF DELY0 SLASH DEF *+1 ASC 1,/ SPC 2 * TESTS 28 - 30 (34B - 36B) * NTEST NOP LDB RRF ISSUE READ RECORD JSB OCMMD COMMAND DIO25 STC DATA,C LDA TIM1 DATA FLAG SHOULD NOT BE JSB TIMR,I SET YET DIO26 SFC DATA * CCA,RSS IS IS SET,ERROR CLA IT ISN'T SET CLB EXPECTED STATUS (CLEAR) JSB TEST (28) (34B) CLA DIO27 SFS DATA WAIT UNTIL DATA FLAG SETS RSS JMP ENT91 INA,SZA JMP *-4 ISZ TNUMB DATA FLAG TIME OUT JSB S11CK SUPPRESS ERROR MESSAGE? JMP ENT91-2 YES JSB TSTNI,I PRINT TEST NUMBER CLA,CLE LDB .MS20 JSB FMTR,I 'DATA FLAG TIMED OUT' ISZ TNUMB JMP ENT92 ENT91 EQU * LDA TIM2 COMMAND FLAG JSB TIMR,I SHOULD NOT BE SET YET CIO31 SFC CMMD CCA,RSS IT IS SET,ERROR CLA IT ISN'T SET LDB D18 EXPECTED STATUS (TE,DE) JSB TEST (29) (35B) LDA TIM3 COMMAND FLAG SHOULD BE JSB TIMR,I SET AFTER THIS TIME OUT CIO32 SFS CMMD CCA,RSS IT ISN'T SET,ERROR CLA LDB D18 EXPECTED STATUS (DE,TE) JSB TEST (30) (36B) ENT92 EQU * JSB BSRWF BACKSPACE RECORD JSB FLGWT WAIT FOR COMMAND FLAG JMP NTEST,I SKP ORG 2000B STRT1 CLA,CLE LDB .HEAD JSB FMTR,I '13184A-7970E MAG. TAPE DIAG.' MDIAG LDA D2 SET FIRST ADDRESS FOR TRAP CELLS LDB BHLT LOAD B-REG. WITH HALT CODE STB A,I STORE TRAP CELL HALT INA ADVANCE POINTER CPA B100 FINISHED? JMP *+2 YES JMP *-4 NO * CLC 0,C TURN OFF ALL INTERRUPTS LDA DMACW SET THE DMA'S CONTROL WORD DMA1 OTA DMA JSB TTYCK CHECK FOR TELEPRINTER JSB CLRER NO- ZERO OUT ERROR BUFFER * LDA ERRBF SET THE ERROR BUFFER'S S.A. STA ERBUF LDA .IDFO RESET THE FORMAT ID POINTER STA IDPT MENT0 CLA STA CYCNT SET THE CYCLE COUNTER TO ZERO JMP ENT34 RECYC CLC 0,C CLEAR THE CONTROLS LDB SW12 JSB SWRCK,I SWITCH 12 SET? JMP ENT34 YES, RESTART MAIN PROGRAM JSB PCYCT NO, PRINT THE CYCLE COUNT MENT1 CLB LDA CYCNT LOAD CYCLE COUNT HLT 77B YES CLC01 CLC 0,C ENT34 CLA RESET ALL COUNTERS & ACTIVE BUFF STA RECNT CLEAR THE REMAINDER COUNT BUFFER ISZ CYCNT LDA CYCNT GET THE CYCLE COUNT CPA D9999 TEST FOR COUNT ROLL OVER JMP MENT0 GO BACK & RESET THE CYCLE COUNT LIA SWRG LOAD SWITCH REGISTER AND ALF,ALF -GET THE INTENDED FORMAT ID RAL,RAL AND B7 IOR IDFOR STA ID SAVE THE ID OF THIS FORMAT SPC 1 * ** INITIAL CLEAR AND UNIT SELECT TEST SECTION ** SPC 1 JSB SAVAD SET THE PROGRAM LOOP S.A. CLA STA TNUMB UPDATE TEST NUMBER LDA CLR CLEAR THE CONTROLLER JSB ACMMD LDA D50 JSB TIMR,I TIME OUT 50 MSEC. JSB STATS GET THE STATUS AND CHECK FOR AND B400 -CONTROLLER BUSY SZA CCA,RSS THE TEST FAILED CLA CLB THE EXPECTED STATUS IS CLEAR JSB TEST (1) * * JSB LOPTN CHECK FOR THE LOOP OPTION SPC 1 JSB SAVAD SET THE PROGRAM'S LOOP S.A. LDA D1 STA TNUMB UPDATE TEST NUMBER SENT0 LDB B17 ANY UNIT SELECT JSB SWRCK,I SWITCHES SET? JMP SENT2 YES, CONTINUE JSB S11CK SUPPRESS ERROR MESSAGE? JMP *+4 YES CLA,CLE LDB .MS07 JSB FMTR,I 'NO UNIT SELECT SWITCH SET' JSB S14CK SUPPRESS ERROR HALT? RSS YES SENT1 HLT 70B NO, UNIT SELECT HALT JMP SENT0 WAIT FOR THE OPERATOR SENT2 SLA,RSS IS THIS THE SELECTED ONE ? JMP SENT4 NO, TRY THE NEXT ONE LDB SLCMS,I YES, LOAD ITS SELECT COMMAND AND STB SELCM -PUT IT IN THE COMMAND BUFFER JMP SENT5 MOVE THE TABLE POINTER SENT4 ISZ SLCMS MOVE THE TABLE'S POINTER RAR -AND POSITION IT JMP SENT2 SENT5 LDA SELCT RESET THE SELECT COMMAND CODE STA SLCMS -TABLE POINTER LDA B400 OUTPUT A NO SELECT COMMAND CODE CIO8 OTA CMMD JSB STATS LOAD THE STATUS AND CHECK FOR SLA -ANY ON-LINES CLA,RSS THE TEST PASSED CCA THE TEST FAILED LDB B1001 THE EXPECTED STATUS IS (OF, TB) JSB TEST (2) * * JSB LOPTN CHECK FOR THE ROUTINE'S LOOP JSB SAVAD SET THE ROUTINE'S LOOP S.A. LDA D2 STA TNUMB UPDATE TEST NUMBER LDA FSR LOAD THE FORWARD SPACE COMMAND CIO9 OTA CMMD -AND OUTPUT IT JSB STATS LOAD THE STATUS AND CHECK AND D8 -FOR THE REJECT BIT SZA IS IT SET ? CLA,RSS YES, THE TEST PASSED CCA NO, THE TEST FAILED LDB B1001 THE EXPECTED STATUS IS (OF, CR, ADB D8 -TB) JSB TEST (3) * * JSB LOPTN CHECK FOR A PROGRAM LOOP JSB SAVAD SET THE PROGRAM'S LOOP S.A. LDA D3 STA TNUMB UPDATE TEST NUMBER LDA SELCM LOAD THE SELECT COMMAND AND OUT CIO10 OTA CMMD -PUT IT JSB STATS LOAD THE STATUS AND CHECK FOR AND B1001 -THE SELECTED UNIT ON LINE SZA CCA THE TEST FAILED CLB THE EXPECTED STATUS IS CLEAR JSB TEST (4) * * JSB LOPTN CHECK FOR A PROGRAM LOOP LDA STATU RETRIEVE THE LAST TEST'S STATUS AND B1001 -AND CHECK FOR ON LINE SZA,RSS JMP SENT7 IT IS, CHECK UNIT BUSY STATUS JSB S14CK SUPPRESS ERROR HALT? RSS YES HLT 71B UNIT SELECT HALT, WAIT FOR THE JMP MDIAG -OPERATOR SENT7 EQU * SPC 1 * ** I-O CHANNEL TEST SECTION ** SPC 1 LDA D4 STA TNUMB UPDATE TEST NUMBER DIO1 STF DATA SET THE DATA CHANNEL FLAG DIO2 CLF DATA CLEAR THE DATA CHANNEL FLAG DIO3 SFC DATA -AND CHECK IT CCA,RSS IT'S NOT CLEAR, THE TEST FAILED CLA THE TEST PASSED CLB THE EXPECTED STATUS IS CLEAR JSB TEST (5) * * DIO4 SFS DATA IS THE DATA FLAG SET? CLA,RSS NO, THE TEST PASSES CCA THE TEST FAILED CLB THE EXPECTED STATUS IS CLEAR JSB TEST (6) * * JSB LOPTN CHECK THE PROGRAM LOOP LDA D6 STA TNUMB UPDATE TEST NUMBER DIO5 STF DATA SET THE DATA CHANNEL FLAG DIO6 SFS DATA IS IT SET? CCA,RSS NO, THE TEST FAILED CLA THE TEST PASSED CLB THE EXPECTED STATUS IS CLEAR JSB TEST (7) * * DIO7 SFC DATA IS IT SET? CLA,RSS NO, THE TEST PASSES CCA THE TEST FAILED CLB THE EXPECTED STATUS IS CLEAR JSB TEST (8) (10B) * * JSB LOPTN CHECK THE PROGRAM LOOP JSB SAVAD SET THE PROGRAM'S LOOP S.A. LDA D8 STA TNUMB UPDATE TEST NUMBER CIO11 STF CMMD SET THE COMMAND CHANNEL FLAG CIO12 CLF CMMD CLEAR THE COMMAND CHANNEL FLAG CIO13 SFC CMMD -AND CHECK IT CCA,RSS IT'S NOT CLEAR, THE TEST FAILED CLA THE TEST PASSED CLB THE EXPECTED STATUS IS CLEAR JSB TEST (9) (11B) * * CIO14 SFS CMMD CHECK THE COMMAND FLAG CLA,RSS IT'S NOT SET, THE TEST PASSES CCA THE TEST FAILED CLB THE EXPECTED STATUS IS CLEAR JSB TEST (10) (12B) * * JSB LOPTN CHECK THE PROGRAM LOOP LDA D10 STA TNUMB UPDATE TEST NUMBER CIO15 STF CMMD SET THE COMMAND CHANNEL FLAG CIO16 SFS CMMD -AND CHECK IT CCA,RSS IT'S NOT SET, THE TEST FAILED CLA THE TEST PASSED CLB THE EXPECTED STATUS IS CLEAR JSB TEST (11) (13B) * * CIO17 SFC CMMD IS IT CLEAR? CLA,RSS NO, THE TEST PASSES CCA THE TEST FAILED CLB THE EXPECTED STATUS IS CLEAR JSB TEST (12) (14B) * * JSB LOPTN CHECK THE PROGRAM LOOP JSB SAVAD SET THE PROGRAM'S LOOP S.A. LDA D12 STA TNUMB UPDATE TEST NUMBER LDA TRAD1 SET THE TRAP CELL FOR A DATA STA DATAC,I -CHANNEL INTERRUPT DIO8 STC DATA SET THE CONTROL AND THE FLAG DIO9 STF DATA -IN THE CHANNEL STF00 STF 0 TURN ON THE INTERRUPT SYSTEM NOP CCA IF THE PROGRAM DOES THIS IN- JMP ENT12 -STRUCTION, THE TEST FAILED INTR1 NOP THE NORMAL INTERRUPT RE-ENTRY CLF00 CLF 0 CLEAR THE INTERRUPT SYSTEM LDA TRAD2 SET THE DATA CHANNEL TRAP CELL STA DATAC,I -FOR ANY MULTI INTERRUPTS STF01 STF 0 TURN THE INTERRUPT SYSTEM AGAIN NOP CLA THE TEST PASSED JMP ENT12 INTR2 NOP MULTI INTERRUPT RE-ENTRY POINT CLC02 CLC 0,C CLEAR THE INTERRUPT SYSTEM CCA THE TEST FAILED ENT12 EQU * CLC03 CLC 0,C RESET ALL CONTROL BUFFERS CLB THE EXPECTED STATUS IS CLEAR JSB TEST (13) (15B) * * JSB LOPTN CHECK THE PROGRAM LOOP JSB SAVAD SET THE PROGRAM'S LOOP S.A. LDA D13 STA TNUMB UPDATE TEST NUMBER LDA TRAD3 SET THE TRAP CELL FOR A COMMAND STA CMMDC,I -CHANNEL INTERRUPT LDA CLR PERFORM A CLEAR COMMAND TO TEST JSB ACMMD -COMMAND CHANNEL INTERRUPT STF02 STF 0 TURN ON THE INTERRUPT SYSTEM LDA D50 TIME OUT 50 MSEC. JSB TIMR,I * JSB STATS TEST FAILED, GET ERROR STATUS CCA JMP ENT13 INTR3 NOP THE NORMAL INTERRUPT RE-ENTRY CLF01 CLF 0 CLEAR THE INTERRUPT SYSTEM LDA TRAD4 SET THE COMMAND CHANNEL TRAP STA CMMDC,I -CELL FOR ANY MULTI INTERRUPTS STF03 STF 0 TURN ON THE INTERRUPT AGAIN NOP CLA THE TEST PASSED JMP ENT13 INTR4 NOP MULTI INTERRUPT RE-ENTRY POINT CLC04 CLC 0,C CLEAR THE INTERRUPT SYSTEM JSB STATS TEST FAILED, GET ERROR STATUS CCA ENT13 EQU * CLC05 CLC 0,C RESET ALL THE CONTROL BUFFERS CLB THE EXPECTED STATUS IS CLEAR JSB TEST (14) (16B) * * JSB LOPTN CHECK THE PROGRAM LOOP JSB SAVAD SET THE PROGRAM'S LOOP S.A. LDA D14 STA TNUMB UPDATE TEST NUMBER DMA2 CLC DMA,C MAKE SURE THAT THE DMA CHANNEL DMA3 STF DMA - IS CLEARED LDA ONES SET THE SINGLE WORD BUFFER'S DAM1 CLC DMA-4 -S.A. DAM2 OTA DMA-4 LDA N1 TRANSFER ONLY ONE WORD OUT TO DAM3 STC DMA-4 -THE DATA CHANNEL DAM4 OTA DMA-4 LDA TRAD5 SET THE DMA TRAP CELL DMA4 STA DMA LDA TRAD6 SET THE DATA CHANNEL'S TRAP STA DATAC,I -CELL STF04 STF 0 TURN ON THE INTERRUPT SYSTEM DMA5 STC DMA START THE DMA DIO10 STF DATA START THE TRANSFER DIO11 STC DATA NOP CCA IF THIS SECTION OF THE PROGRAM ISZ TNUMB -IS EXECUTED, THEN NEITHER JMP ENT00 -CHANNEL INTERRUPTED INTR5 NOP THE DMA'S INTERRUPT RE-ENTRY CLF02 CLF 0 CLEAR THE INTERRUPT SYSTEM CLA THE TEST PASSES JMP ENT04 INTR6 NOP DATA CHANNEL'S RE-ENTRY CLF03 CLF 0 CLEAR THE INTERRUPT SYSTEM CCA THE TEST FAILED ENT04 CLC DMA TURN OFF THE DMA DMA6 STF DMA ZERO THE WORD COUNT DIO12 CLC DATA,C CLB THE EXPECTED STATUS IS CLEAR JSB TEST (15) (17B) * * JMP ENT05 ENT00 CLC DMA TURN OFF THE DMA DMA7 STF DMA ZERO THE WORD COUNT DIO13 CLC DATA,C CLB THE EXPECTED STATUS IS CLEAR JSB TEST (16) (20B) * * ENT05 EQU * CLC06 CLC 0,C CLEAR THE INTERRUPT SYSTEM JSB LOPTN CHECK THE PROGRAM LOOP JSB SAVAD SET THE PROGRAM'S LOOP S.A. LDA D16 STA TNUMB UPDATE TEST NUMBER LDA TRAD7 SET THE DATA CHANNEL'S TRAP CELL STA DATAC,I LDA TRAD8 SET THE COMMAND CHANNEL'S TRAP STA CMMDC,I -CELL STF05 STF 0 TURN ON THE INTERRUPT SYSTEM DIO14 STC DATA SET THE DATA CHANNEL CONTROL DIO15 STF DATA -AND FLAG CIO18 STC CMMD SET THE COMMAND CHANNEL CONTROL CIO19 STF CMMD -AND FLAG NOP CCA IF THIS SECTION OF THE PROGRAM ISZ TNUMB -IS EXECUTED, NEITHER CHANNEL JMP CLC08 -INTERRUPTED INTR7 NOP DATA CHANNEL INTERRUPT RE-ENTRY CLF04 CLF 0 CLEAR THE INTERRUPT SYSTEM CLA THE TEST PASSES JMP CLC07 INTR8 NOP COMMAND CHANNEL'S INTERRUPT RE- CLF05 CLF 0 CLEAR THE INTERRUPT SYSTEM CCA -ENTRY, THE TEST FAILED CLC07 CLC 0,C TURN OFF THE INTERRUPT SYSTEM CLB THE EXPECTED STATUS IS CLEAR JSB TEST (17) (21B) * * JMP ENT35 CLC08 CLC 0,C TURN OFF THE INTERRUPT SYSTEM CLB THE EXPECTED STATUS IS CLEAR JSB TEST (18) (22B) * * ENT35 JSB LOPTN CHECK THE PROGRAM LOOP OPTION JSB CLEAR RESET THE INTERFACE SPC 1 * OPTIONAL REWIND & LOAD POINT TESTS * SPC 1 LDB SW4 JSB SWRCK,I IS SWITCH 4 SET? JMP ENT38 IT'S SET, CONTINUE JSB SAVAD SET THE PROGRAM'S LOOP S.A. LDA D18 STA TNUMB UPDATE TEST NUMBER JSB FWDSP MOVE AWAY FROM THE LOAD POINT JSB FLGWT WAIT FOR THE COMMAND FLAG LDB REW REWIND COMMAND JSB OCMMD JSB FLGWT WAIT FOR THE COMMAND FLAG JSB STATS GET STATUS STA TBF01 HOLD THE CURRENT STATUS AND B3000 TEST FOR REWIND & UNIT BUSY CPA B3000 CLA,RSS CCA STA TBF02 JSB RWDET LOOP UNTIL REWIND IS FINISHED LDA TBF01 RESTORE THE TEST STATUS STA STATU LDA TBF02 LDB B3000 SET THE EXPECTED STATUS- ADB B400 -(RW, TB, CB)- JSB TEST (19) (23B) * * JSB LOPTN CHECK THE LOOP OPTION JSB SAVAD SET THE PROGRAM LOOP S.A. LDA D19 STA TNUMB UPDATE TEST NUMBER JSB STATS TEST FOR LOAD POINT STATUS AND B100 SZA CLA,RSS CMA LDB B100 SET THE EXPECTED STATUS (LP) JSB TEST (20) (24B) * * JSB LOPTN CHECK FOR THE LOOP OPTION JSB SAVAD SET THE PROGRAM LOOP S.A. LDA D20 STA TNUMB UPDATE TEST NUMBER LDA BSR TEST COMMAND REJECT AT BOT CIO20 OTA CMMD JSB STATS GET STATUS & TEST REJECT BIT JSB REJBT CHECK FOR A REJECT AT LOAD SZA -POINT, A > 0, NO REJECT CCA,RSS CLA LDB CLR LOAD THE EXPECTED STATUS (CR, LP) JSB TEST (21) (25B) * * JSB LOPTN CHECK FOR THE LOOP OPTION JSB SAVAD SET THE LOOP S.A. LDA D21 STA TNUMB UPDATE TEST NUMBER LDB REW CIO21 OTB CMMD CIO22 STC CMMD,C JSB STATS GET THE STATUS AND CHECK FOR AND B400 -CONTROLLER BUSY CPA B400 CLA,RSS TEST PASSED CCA TEST FAILED CLA ** TEST 22 BYPASSED ** FIX************** LDB B500 THE EXPECTED STATUS IS (LP, CB) JSB TEST (22) (26B) * * LDA D1 WAIT 1 MILL. SEC. JSB TIMR,I * JSB STATS GET THE STATUS AND CHECK FOR AND B400 -NOT BUSY CPA B400 CCA,RSS THE TEST FAILED CLA TEST PASSED LDB B100 LOAD THE EXPECTED STATUS (LP) JSB TEST (23) (27B) * * JSB LOPTN CHECK THE PROGRAM LOOP OPTION SPC 1 * ** FORMAT START AND VERIFICATION SECTION ** SPC 1 ENT38 LDA D23 STA TNUMB UPDATE TEST NUMBER LDA N64 SET THE SEARCH CONSTANT STA COUNT COMMN JSB FWDSP SPACE FORWARD ONE RECORD ISZ COUNT INCREMENT THE SEARCH COUNT RSS KEEP TRYING JMP ENT03 PRINT: COULDN'T FIND CYCLE START JSB FLGWT WAIT FOR THE OPERATION TO FINISH JSB EOTTS CHECK FOR THE END-OF-TAPE JMP ENT40 SET UP THE NEXT FORMAT JSB STATS GET THE STATUS AND FIRST CHECK AND B200 -FOR A TAPE MARK SZA,RSS JMP COMMN NO, TRY THE NEXT SEQUENCE JSB FWDSP SPACE FORWARD ONE MORE RECORD JSB FLGWT WAIT FOR THE OPERATION TO FINISH JSB STATS GET THE STATUS AND CHECK FOR AND B200 -ANOTHER TAPE MARK CPA B200 JMP ENT42 CONTINUE TO THE FORMAT ID RECORD JMP COMMN NO TAPE MARK, TRY AGAIN ENT40 ISZ IDPT ADVANCE THE ID TABLE POINTER LDA IDPT,I GET THE NEXT FORMAT ID SZA,RSS WAS THIS THE LAST ONE ? JMP ENT41 YES, RESET THE TABLE POINTER STA *+1 NO, HALT AND DISPLAY THE NEXT ID NOP FORMAT ERROR HALT JMP MENT0 START THE PROGRAM AGAIN ENT41 LDA .IDFO RESET THE ID TABLE POINTER STA IDPT JMP ENT40+1 GET THE FIRST ENTRY ENT03 JSB S11CK SUPPRESS ERROR MESSAGE? JMP MENT2 YES CLA,CLE LDB .MS04 JSB FMTR,I 'COULDN'T FIND CYCLE START' MENT2 CCA LDB B200 THE EXPECTED STATUS IS TM JSB TEST (24) (30B) * * LDA ID GET THE FORMAT ID AND STOP STA *+3 FORMAT ERROR HALT JSB STATS LOAD THE STATUS AND THE LDA TNUMB LOAD TEST NUMBER NOP HALT AND WAIT FOR THE OPERATOR JMP MDIAG START OVER * IRG (2) ENT42 ISZ TNUMB INCREMENT THE TEST NUMBER JSB S15CK CHECK SWITCH 15 * * LIA SWRG LOAD THE SWITCH REGISTER'S STA SWREG -CONTENTS AND HOLD THEM IOR SW5 SET SWITCH 5 OTA SWRG LDA INBUF SET THE INPUT BUFFER'S S.A. LDB N1 SET THE NUMBER OF WORDS JSB CLRBF CLEAR THE READ BUFFER JSB READ READ THE RECORD JSB RSTAT CHECK THE READ STATUS JSB RREAD HAD DATA ERRORS, REREAD LDA INBUF,I GET THE FORMAT ID FROM THE TAPE IOR IDFOR ADD THE HALT MASK CHARACTERS CPA ID -RECORD & COMPARE TO THE SW REG JMP ENT80 IT MATCHES, CONTINUE CCA CLB THE EXPECTED STATUS IS CLEAR JSB TEST (25) (31B) * * LDB ID GET THE ID THAT WAS LOADED IN