HED 12604 DIAGNOSTIC - BASIC TIMING TEST ROUTINES * * BASIC TIMING TEST ROUTINE * BTEST NOP ENTER CLB INITIALIZE STB ERR1 ERROR NUMBER CLC1 CLC 0 SET PRINT COMMAND FF AND JSB DLY WAIT FOR FLAG TO SET CLF1 CLF 0 CLEAR FLAG AND TEST JSB STAF1 WITH SFS AND SFC STF1 STF 0 SET FLAG AND TEST JSB STAF2 WITH SFS AND SFC STCC1 STC 0,C CLR PRINT COMMAND FF & FLAG FF JSB DLY1 WAIT FOR DELAY CKTS TO RECOVER CLC2 CLC 0 SET PRINT COMMAND FF JSB STAF3 TEST FLAG OPERATION STCC2 STC 0,C REPEAT JSB DLY1 USING CLC 0 A CRS JSB STAF3 SIGNAL JSB DLY2 INSURE THAT DEVICE IS TIMED OUT SPC 1 ** TEST INTERRUPT OPERATION ** SPC 1 LDA ERJMP SET ILLEGAL STA ADDR,I INTERRUPT COMMAND P12 CLC 0,C CLEAR CLF2 CLF 0 I/O CARD STF 0 LOOK FOR INTERRUPT STC1 STC 0 WITH FLAG CLEARED JSB MODE3 CHECK SWITCH REGISTER - LOOP? JMP P12 YES HLT 0 HALT (BIT 1) ISZ ERR1 INCREMENT ERROR LDA SBOK SET LEGAL STA ADDR,I INTERRUPT COMMAND P13 STF 0 LOOK CLC3 CLC 0 FOR CLF3 CLF 0 INTERRUPT STC2 STC 0 WITH STF2 STF 0 FLAF NOP SET NOP JSB ERROR SHOULD SKIP IN INTERRUPT INTR JSB MODE3 CHECK SWITCH REGISTER - LOOP? JMP P13 YES HLT 0 HALT (BIT 1) CLC 0,C CLEAR I/O LDA HLT1 RESTORE IOR ADDR ILLEGAL STA ADDR,I INTERRUPT JSB DLY2 JMP BTEST,I EXIT SKP * * STATUS FLAG CHECK ROUTINE - CLEAR * STAF1 NOP ENTER SFS5 SFS 0 CHECK FLAG JMP *+2 WITH SFS JSB ERROR FLAG NOT CLEAR JSB MODE3 CHECK SWITCH REGISTER - LOOP? JMP *+3 YES HLT 0 HALT (BIT 1) JMP *+4 JSB FLP1 SCOPE LOOP SSA HALT? HLT 0 YES ISZ ERR1 NO - INCREMENT ERROR SFC2 SFC 0 CHECK FLAG WITH SFC JSB ERROR FLAG NOT CLEAR JSB MODE3 CHECK SWITCH REGISTER - LOOP? JMP *+3 YES HLT 0 HALT (BIT 1) JMP *+4 JSB FLP2 SCOPE LOOP SSA HALT? HLT 0 YES ISZ ERR1 NO - INCREMENT ERROR JMP STAF1,I EXIT * * STATUS FLAG CHECK ROUTINE - SET * STAF2 NOP ENTER SFS6 SFS 0 CHECK FLAG WITH SFS JSB ERROR FLAG NOT SET JSB MODE3 CHECK SWITCH REGISTER - LOOP? JMP *+3 YES HLT 0 HALT (BIT 1) JMP *+4 JSB FLP1 SCOPE LOOP SSA HALT? HLT 0 YES ISZ ERR1 NO - INCREMENT ERROR SFC3 SFC 0 CHECK FLAG JMP *+2 WITH SFC JSB ERROR FLAG NOT SET JSB MODE3 CHECK SWITCH REGISTER - LOOP? JMP *+3 YES HLT 0 HALT (BIT 1) JMP *+4 JSB FLP2 SCOPE LOOP SSA HALT? HLT 0 YES ISZ ERR1 NO - INCREMENT ERROR JMP STAF2,I EXIT SKP * * STATUS FLAG CHECK ROUTINE - DYNAMIC * STAF3 NOP ENTER SFS2 SFS 0 CHECK FLAG JMP P43 OK JSB ERROR FLAG NOT CLEAR JSB MODE3 CHECK SWITCH REGISTER - LOOP? JMP *+3 YES HLT 0 HALT (BIT 1) JMP *+4 JSB TLOOP SCOPE LOOP SSA HALT? HLT 0 YES P43 ISZ ERR1 NO - INCREMENT ERROR JSB DLY WAIT FOR FLAG DELAY SFS3 SFS 0 CHECK FLAG JSB ERROR FLAG NOT SET JSB MODE3 CHECK SWITCH REGISTER - LOOP? JMP *+3 YES HLT 0 HALT (BIT 1) JMP *+4 JSB TLOOP SCOPE LOOP SSA HALT? HLT 0 YES ISZ ERR1 NO - INCREMENT ERROR JMP STAF3,I EXIT * * READ DELAY ROUTINE - 0.2 OR 2.0 MSEC * DLY NOP ENTER STA ATMP1 SAVE A STB BTMP1 SAVE B JSB DCIDE HOW MANY CYCLES OF DELAY? DEC -9 2114/2115 - 0.1 MSEC DEC -285 2114/2115 - 1.0 MSEC DEC -16 2116 - 0.1 MSEC DEC -362 2116 - 1.0 MSEC DEC -25 2100 - 0.1 MSEC DEC -392 2100 - 1.0 MSEC DEC -26 21MX - 0.1 MSEC DEC -424 21MX - 1.0 MSEC STA CNT4 SET COUNTER LDA ATMP1 RESTORE A LDB BTMP1 RESTORE B ISZ CNT4 DELAY JMP *-1 LOOP JMP DLY,I EXIT * * RECOVERY DELAY ROUTINE - 50 OR 300 MICROSEC * DLY1 NOP ENTER LDA CNT3 STA CNT4 SET COUNTER ISZ CNT4 DELAY JMP *-1 LOOP JMP DLY1,I EXIT SKP * * BASIC TIMING TEST ERROR ROUTINE * ERROR NOP ENTER LIB 1 CHECK RBR,RBR FOR SLB LOOPING JMP ERROR,I EXIT CLF 0 LDA ERR1 GET ERROR NUMBER AND MSK3 INSURE ISOLATION OF BITS 0-5 RBL,RBL CHECK FOR SSB TTY INHIBIT JMP P15 YES JSB .2NUM NO - PACK 2 ASCII NOS. STB MES8 STORE ERROR NO. IN MESSAGE LDA ML8 PRINT 8TH MESSAGE LDB MAD8 "ERROR XX" JSB 102B,I P15 LDA ERR1 GET ERROR AND MSK3 NUMBER CLB HLT 0 ERROR HALT JMP ERROR,I EXIT * * PACK 2 ASCII NUMBERS ROUTINE * .2NUM NOP ENTER STA ATMP1 SAVE NUMBER RAR,RAR FORMAT RAR FIRST AND MSK2 NUMBER IOR C1 AND STORE ALF,ALF IT IN B STA 1 REGISTER LDA ATMP1 FORMAT AND MSK2 SECOND IOR C1 NUMBER IOR 1 PACK BOTH STA 1 NUMBERS INTO B LDA ATMP1 RESTORE NUMBER TO A JMP .2NUM,I EXIT