HED 12604 DIAGNOSTIC - TIME DELAY TEST ROUTINE * * TIME DELAY TEST ROUTINE * TTEST NOP ENTER JSB DCIDE HOW MANY CYCLES OF DELAY? DEC -52 2114/2115 - 0.1 MSEC DEC -52 2114/2115 - 1.0 MSE DEC -64 2116 - 0.1 MSEC DEC -64 2116 - 1.0 MSEC DEC -68 2100 - 0.1 MSEC DEC -68 2100 - 1.0 MSEC DEC -74 21MX - 0.1 MSEC DEC -74 21MX - 1.0 MSEC STA RCVR SET RECOVERY TIME JSB DCIDE DEC -9 2114/2115 - 0.1 MSEC DEC -78 2114/2115 - 1.0 MSEC DEC -11 2116 - 0.1 MSEC DEC -97 2116 - 1.0 MSEC DEC -10 2100 - 0.1 MSEC DEC -92 2100 - 1.0 MSEC DEC -9 21MX - 0.1 MSEC DEC -84 21MX - 1.0 MSEC STA MIN SET MINIMUM DELAY TIME JSB DCIDE DEC -6 2114/2115 - 0.1 MSEC DEC -57 2114/2115 - 1.0 MSEC DEC -7 2116 - 0.1 MSEC DEC -72 2116 - 1.0 MSEC DEC -8 2100 - 0.1 MSEC DEC -69 2100 - 1.0 MSEC DEC -7 21MX - 0.1 MSEC DEC -62 21MX - 1.0 MSEC STA MAX SET MAXIMUM DELAY TIME LIB 1 CHECK SWITCH REGISTER SLB HALT AT START? JMP P1 YES STC3 STC 0 NO - CLEAR PRINT CLF6 CLF 0 COMMAND FF ISZ RCVR RECOVERY JMP *-1 DELAY LOOP CLC4 CLC 0 SET PRINT COMMAND FF P34 ISZ MIN CHECK FOR JMP *+2 MINIMUM JMP P35 DELAY WITH SFS8 SFS 0 FLAG CHECK JMP P34 LOOP JMP P37 TOO SHORT! P35 ISZ MAX CHECK FOR JMP *+2 MAXIMUM JMP P36 DELAY WITH SFS9 SFS 0 FLAG CHECK JMP P35 LOOP JMP P39 OK P36 SSB TOO LONG! - INHIBIT TTY? JMP P38 YES LDA ML12 NO LDB MAD12 PRINT 12TH MESSAGE JSB 102B,I "DELAY TIME TOO LONG" JMP P38 P37 SSB INHIBIT TTY? JMP P38 YES LDA ML13 NO LDB MAD13 PRINT 13TH MESSAGE JSB 102B,I "DELAY TIME TOO SHORT" P38 HLT 55B ERROR HALT P39 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 JSB DLY2 JMP TTEST,I NO - EXIT HED 12604 DIAGNOSTIC - INPUT TEST ROUTINE * * INPUT TEST ROUTINE * INTST NOP ENTER LDA INTRP GET INTERRUPT LINKAGE STA ADDR,I NOW STF 0 TURN ON INTERRUPT SYSTEM LDA ADATA PREPARE COUNTERS FOR STA IDATA CONVERTING THE DATA TO LDA M4 ASCII STA CNT0 LDA M2 STA CNT20 STCC3 STC 0,C START PERIPHERAL DEVICE JSB DLY2 WAIT FOR INTERRUPT JMP P46 TAKING TOO LONG LIB1 LIB 0 READ DATA (10^3,10^2,10^1,10^0) JMP *+2 HLT 33B LIA1 LIA 0 READ DATA (RANGE,FUN,10^5,10^4) JMP *+2 HLT 44B NDIG ALF OBTAIN EACH DATA BIT STA ATMP1 AND MSK17 CONVERT TO STA IDATA,I ASCII CODE ADA M10 AND SSA STORE JMP *+3 IN LDA ONE0 OUTPUT JMP *+2 BUFFER LDA BLK0 ADA IDATA,I STA IDATA,I LDA ATMP1 ISZ IDATA ISZ CNT0 JMP NDIG LDA M4 STA CNT0 RESTORE COUNTERS SWP OBTAIN DATA IN B REGISTER ISZ CNT20 JMP NDIG LDA D16 LDB ADATA JSB 102B,I OUTPUT THE DATA NOP L20 JSB MODE3 CHECK SWITCH REGISTER - LOOP? JMP NOW YES HLT 0 HALT (BIT 1) CLF 0 TURN OFF INTERRUPT JMP INTST,I EXIT P46 LIB 1 READ SWITCH REGISTER SSB INHIBIT TTY? JMP P48 YES CLF 0 NO LDA ML14 PRINT 14TH MESSAGE LDB MAD14 "WAITING TOO LONG" JSB 102B,I P48 HLT 66B ERROR HALT CLC 0 RESET JMP L20 HED 12604 DIAGNOSTIC - SERVICE ROUTINES *************************************************** *** **** *** SERVICE ROUTINES AND SPECIAL SCOPE LOOPS **** *** **** *************************************************** * * HOLD COMMAND SCOPE LOOP ROUTINE * HTEST NOP ENTER JSB DCIDE HOW MANY CYCLES OF DELAY? DEC -30 2114/2115 - 0.1 MSEC DEC -30 2114/2115 - 1.0 MSEC DEC -38 2116 - 0.1 MSEC DEC -38 2116 - 1.0 MSEC DEC -41 2100 - 0.1 MSEC DEC -41 2100 - 1.0 MSEC DEC -45 21MX - 0.1 MSEC DEC -45 21MX - 1.0 MSEC STA CNT6 JSB DCIDE DEC -24 2114/2115 - 0.1 MSEC DEC -24 2114/2115 - 1.0 MSEC DEC -32 2116 - 0.1 MSEC DEC -32 2116 - 1.0 MSEC DEC -34 2100 - 0.1 MSEC DEC -34 2100 - 1.0 MSEC DEC -36 21MX - 0.1 MSEC DEC -36 21MX - 1.0 MSEC STA CNT7 STRT LDA CNT6 SET STA CNT8 CO LDA CNT7 UN STA CNT9 TERS ISZ CNT9 DELAY JMP *-1 LOOP CLC6 CLC 0 APPLY HOLD NOP STC5 STC 0 WAIT ISZ CNT8 DELAY JMP *-1 LOOP CLF8 CLF 0 REMOVE HOLD JSB MODE3 CHECK SWITCH REGISTER - LOOP? JMP STRT YES HLT 0 HALT (BIT 1) CLC 0 JMP HTEST,I EXIT SKP * * ENCODE COMMAND SCOPE LOOP ROUTINE * ETEST NOP ENTER JSB DCIDE HOW MANY CYCLES OF DELAY? DEC -15 2114/2115 - 0.1 MSEC DEC -15 2114/2115 - 1.0 MSEC DEC -18 2116 - 0.1 MSEC DEC -18 2116 - 1.0 MSEC DEC -20 2100 - 0.1 MSEC DEC -20 2100 - 1.0 MSEC DEC -22 21MX - 0.1 MSEC DEC -22 21MX - 1.0 MSEC STA CNT6 JSB DCIDE DEC -9 2114/2115 - 0.1 MSEC DEC -9 2114/2115 - 1.0 MSEC DEC -13 2116 - 0.1 MSEC DEC -13 2116 - 1.0 MSEC DEC -14 2100 - 0.1 MSEC DEC -14 2100 - 1.0 MSEC DEC -14 21MX - 0.1 MSEC DEC -14 21MX - 1.0 MSEC STA CNT7 STRT2 LDA CNT6 SET STA CNT8 CO LDA CNT7 UN STA CNT9 TERS ISZ CNT9 DELAY JMP *-1 LOOP STC6 STC 0 ENCODE NOP ISZ CNT8 DELAY JMP *-1 LOOP NOP CLC7 CLC 0 REMOVE ENCODE IF NOT PULSED JSB MODE3 CHECK SWITCH REGISTER - LOOP? JMP STRT2 YES HLT 0 HALT (BIT 1) STRT3!LDA CNT6 SET STA CNT8 CO LDA CNT7 UN STA CNT9 TERS ISZ CNT9 DELAY JMP *-1 LOOP CLF9 CLF 0 ENCODE NOP ISZ CNT8 DELAY JMP *-1 LOOP NOP CLC8 CLC 0 REMOVE ENCODE IF NOT PULSED JSB MODE3 CHECK SWITCH REGISTER - LOOP? JMP STRT3 YES HLT 0 HALT (BIT 1) JMP ETEST,I EXIT SKP * * SWITCH REGISTER STORAGE ROUTINE - THREE * MODE3 NOP ENTER STA ATMP1 SAVE A LIA 1 READ SWITCH REGISTER SLA HALT AT START? JMP P1 YES RAR,RAR NO SLA LOOP? JMP L2 YES ISZ MODE3 NO SSA HALT? JMP L2 YES ISZ MODE3 NO L2 LDA ATMP1 RESTORE A JMP MODE3,I EXIT * * DEVICE TIME-OUT DELAY ROUTINE * DLY2 NOP ENTER STA ATMP1 SAVE A LDA CNT1 GET DELAY STA CNT2 SET FIRST COUNTER LDA ATMP1 RESTORE A P30 ISZ CNT2 DE JMP *+2 LA JMP DLY2,I EXIT Y LDA CNT1 STA CNT4 SET SECOND COUNTER LDA ATMP1 RESTORE A ISZ CNT4 LO JMP *-1 OP JMP P30 SKP * * FLAG SCOPE LOOP ONE * FLP1 NOP ENTER P16 JSB MODE3 CHECK SWITCH REGISTER - LOOP? JMP P26 YES NOP NO JMP P17 P26 CLC 0 CRS FOR SCOPE TRIGGER STF3 STF 0 SC SFS4 SFS 0 O NOP P CLF4 CLF 0 E SFS7 SFS 0 L NOP O JMP P16 OP P17 LDB FLP1 CHECK ADB M6 FOR LDA 1,I FLAG AND MSK4 SET CPA SFS0 ROUTINE STF4 STF 0 RETURN FLAG TO SET STATE LIA 1 RESTORE SWITCH REGISTER RAR,RAR TO A JMP FLP1,I EXIT * * FLAG SCOPE LOOP TWO * FLP2 NOP ENTER P18 JSB MODE3 CHECK SWITCH REGISTER - LOOP? JMP P27 YES NOP NO JMP P19 P27 CLC 0 CRS SIGNAL FOR SCOPE TRIGGER STF5 STF 0 SC SFC4 SFC 0 O NOP P CLF5 CLF 0 E SFC5 SFC 0 L NOP O JMP P18 OP P19 LDB FLP2 CHECK ADB M7 FOR LDA 1,I FLAG AND MSK4 SET CPA SFC0 ROUTINE STF6 STF 0 RETURN FLAG TO SET STATE LIA 1 RESTORE SWITCH RAR,RAR REGISTER TO A JMP FLP2,I EXIT SKP * * TIME DELAY SCOPE LOOP ROUTINE * TLOOP NOP ENTER JSB DCIDE HOW MANY CYCLES OF DELAY? DEC -46 2114/2115 - 0.1 MSEC DEC -465 2114/2115 - 1.0 MSEC DEC -58 2116 - 0.1 MSEC DEC -582 2116 - 1.0 MSEC DEC -62 2100 - 0.1 MSEC DEC -613 2100 - 1.0 MSEC DEC -67 21MX - 0.1 MSEC DEC -663 21MX - 1.0 MSEC STA DELY SET DELAY TIME JSB DCIDE DEC -10 2114/2115 - 0.1 MSEC DEC -152 2114/2115 - 1.0 MSEC DEC -12 2116 - 0.1 MSEC DEC -187 2116 - 1.0 MSEC DEC -14 2100 - 0.1 MSEC DEC -198 2100 - 1.0 MSEC DEC -12 21MX - 0.1 MSEC DEC -212 21MX - 1.0 MSEC STA RELY SET RECOVERY TIME P42 LDA DELY LDB RELY STA DELY0 STB RELY0 ISZ RELY0 RECOVERY DELAY JMP *-1 LOOP CLC5 CLC 0 SET PRINT COMMAND FF ISZ DELY0 DELAY TIME JMP *-1 LOOP STC4 STC 0 CLEAR PRINT CLF7 CLF 0 COMMAND FF JSB MODE3 CHECK SWITCH REGISTER - LOOP? JMP P42 YES NOP NO JSB DLY2 TIME-OUT DEVICE LIA 1 RESTORE SWITCH RAR,RAR REGISTER TO A JMP TLOOP,I EXIT SKP * * COMPUTER/DELAY DECISION ROUTINE * DCIDE NOP ENTER LDA DCIDE,I 2114/2115 - STA X1 0.1 MSEC ISZ DCIDE LDA DCIDE,I 2114/2115 - STA X2 1.0 MSEC ISZ DCIDE LDA DCIDE,I 2116 - STA X3 0.1 MSEC ISZ DCIDE LDA DCIDE,I 2116 - STA X4 1.0 MSEC ISZ DCIDE LDA DCIDE,I 2100 - STA X5 0.1 MSEC ISZ DCIDE LDA DCIDE,I 2100 - STA X6 1.0 MSEC ISZ DCIDE LDA DCIDE,I 21MX - STA X7 0.1 MSEC ISZ DCIDE LDA DCIDE,I 21MX - STA X8 1.0 MSEC ISZ DCIDE SET RETURN POINT LDA COMP GET COMPUTER INDICATOR LDB DELAY GET DELAY INDICATOR ALS -4:21MX, -2:2100, 0:2114/2115, +2:2116 SZB WHICH DELAY? ADA EIGHT 1.0 MSEC ADA LOC 0.1 MSEC JMP 0,I GO LDA X7 JMP DCIDE,I LDA X5 LOAD JMP DCIDE,I "A" LBL LDA X1 REGISTER JMP DCIDE,I WITH LDA X3 APPROPRIATE JMP DCIDE,I CONSTANT LDA X8 AND JMP DCIDE,I RETURN LDA X6 TO JMP DCIDE,I CALLER LDA X2 JMP DCIDE,I LDA X4 JMP DCIDE,I LOC DEF LBL EIGHT DEC 8 SKP * * ADDRESS INCLUSION ROUTINE * ADIN NOP ENTER CLC 0,C INTERRUPT SYSTEM OFF JSB INCLU PUT ADDRESS SFS0 SFS 0 INTO SFS XX STA SFS1 STA SFS2 STA SFS3 STA SFS4 STA SFS5 STA SFS6 STA SFS7 STA SFS8 STA SFS9 JSB INCLU PUT ADDRESS SFC0 SFC 0 INTO SFC XX STA SFC1 STA SFC2 STA SFC3 STA SFC4 STA SFC5 JSB INCLU PUT ADDRESS CLC 0 INTO CLC XX STA CLC1 STA CLC2 STA CLC3 STA CLC4 STA CLC5 STA CLC6 STA CLC7 STA CLC8 JSB INCLU PUT ADDRESS STC 0 INTO STC XX STA STC1 STA STC2 STA STC3 STA STC4 STA STC5 STA STC6 JSB INCLU PUT ADDRESS STC 0,C INTO SRC XX,C STA STCC1 STA STCC2 STA STCC3 JSB INCLU PUT ADDRESS CLF 0 INTO CLF XX STA CLF1 STA CLF2 STA CLF3 STA CLF4 STA CLF5 STA CLF6 STA CLF7 STA CLF8 STA CLF9 JSB INCLU PUT ADDRESS STF 0 INTO STF XX STA STF1 STA STF2 STA STF3 STA STF4 STA STF5 STA STF6 JSB INCLU PUT ADDRESS LIA 0 INTO LIA XX STA LIA1 JSB INCLU PUT ADDRESS LIB 0 INTO LIB XX STA LIB1 JMP ADIN,I EXIT * * INCLUSION ROUTINE * INCLU NOP ENTER LDA INCLU,I GET I/O INCTRUCTION IOR ADDR INCLUDE ADDRESS ISZ INCLU ADJUST RETURN POINT JMP INCLU,I EXIT SPC 3 X EQU * FIRST WORD AVAIL MEM AFTER PROG