* * ADDRESS DEFINITIONS * ANULL DEF NULL ACR DEF CR IN1 DEF IN1I ADDR1 DEF INT1+1 ADDR2 DEF INT2+1 AIJ5 DEF IJ5 AM41A DEF M41A AM41B DEF M41B AM40A DEF M40A AM40B DEF M40B ARTN1 DEF RTN1 ARTN2 DEF RTN2 AM46A DEF M46A AM45B DEF M45B AILC1 DEF ILOC1 AM45A DEF M45A AM44A DEF M44A AM47B DEF M47B AILC2 DEF ILOC2 AM47A DEF M47A AM54C DEF M54C AM54B DEF M54B AM54A DEF M54A AM51C DEF M51C AM51B DEF M51B AM51A DEF M51A AM67B DEF M67B AM67A DEF M67A AWRD DEF WRD AM73A DEF M73A AM71B DEF M71B AM71A DEF M71A AM73B DEF M73B A115A DEF M115A A115B DEF M115B AM76B DEF M76B AM76A DEF M76A AM75B DEF M75B AM75A DEF M75A IN2 DEF IN2I APWS DEF PWS A104B DEF M104B A104A DEF M104A A102B DEF M102B A102A DEF M102A A101B DEF M101B A101A DEF M101A A106A DEF M106A A106B DEF M106B AL77 DEF L77 AIT.1 DEF INT.1 AIN DEF IN ARTR1 DEF RTRN1 ARTR2 DEF RTRN2 APWRD DEF PWRD ADDR OF PACKED WORD AM0 DEF M0 LM0 DEF L0 CFR DEF CFGR CHECK DEF CHCKI DATA DEF DATAI FLG.1 DEF FLGI1 FLG.2 DEF FLGI2 ERROR DEF ERRI H/L DEF H/LI AM77 DEF M77 OUT1 DEF OUT1I OUT2 DEF OUT2I SAVAD DEF SAVAI SHORT DEF SHRTI DT.6 DEF T.6 TTSK DEF TTSKI SKP * * PTND DETERMINES WHETHER IT IS NECESSARY TO * USE A 15/16 WORD COUNT OR 00A/L.G. * WORD COUNT SHOULD BE USED * * RETURN: P+1 00A + L.G. * P+2 14 + 15 + 16 * SPC 3 PTND NOP LDB IOFG SZB,RSS IS FLAG SET ? ISZ PTND NO JMP PTND,I YES SPC 3 * * CTPD DETERMINES IF A ONE CHANNEL DMA * IS BEING TESTED * * RETURN: P+1 DMA1 ONLY * P+2 DMA1 & DMA2 * * CTPD NOP LDB OCFG SZB,RSS TEST FOR FLAG SET ISZ CTPD JMP CTPD,I SPC 3 * PKFD DETERMINES WHETHER PACK/UNPACK * TESTING IS PERFORMED (T.17/T.20) * AND DETERMINES PATTERN TO USE IN T.15/T.16 * RETURNS P+1 14 + OOA + L.G. * P+2 15 + 16 * PKFD NOP LDB PKFG SZB,RSS IS FLAG SET ? ISZ PKFD JMP PKFD,I HED *** CONFIGURATION *** CFGR CLC 0,C CLEAR ALL DEVICES, INT SYS OFF * * CHECK AND STORE MEMORY SIZE * LDA MSIZE FORM AND MSMK MAX ADA A7777 MEMORY STA MEMAX ADDRESS LDA E0 JSB PTND CLA STA EOS SAVE WD CT CLA STA PKFG CLEAR STA IOFG TYPE STA L0FG LDA CTO AND BT7 STA OCFG LDA CTO AND P0 ALF CPA A5 IS IT 14A ? RSS JMP *+3 STA PKFG NOP CPA A6 IS IT 14B ? RSS JMP *+3 STA OCFG STA PKFG CPA A7 IS IT OOA ? RSS JMP *+3 STA PKFG STA IOFG CPA A10 IS IT L.G. ? RSS JMP *+4 STA PKFG STA IOFG STA L0FG * * INPUT & CHECK MCR (OR TTY) SELECT CODE * SC LIA 1 AND A77 MASK OFF SELECT CODE JSB CHECK,I CHECK SELECT CODE JMP VALID VALID SELECT CODE JMP SC INVALID. TRY AGAIN VALID STA CHA STORE SELECT CODE * CLB LDA LSTO SZA,RSS TTY PRESENT ? CCB NO STB NTTY YES SPC 1 HLT 74B ENTER PROGRAM OPTIONS IN SW REG SPC 1 HED INITIALIZATION START CLC 0,C TURN EVERYTHING OFF * LDB A2 TRAP CELL LOCATION LDA THLT TRAP CELL HALT (INIT.--106002) LP STA B,I INB INA CPB A100 TRAP CELL HALTS COMPLETE? RSS YES JMP LP NO, REPEAT * LDB BT10 JSB CHKSW,I SUPPRESS NON-ERROR MESSAGES? JMP MOD YES JSB TTSK,I NO LDA CRL LDB ACR JSB TTY.O,I OUTPUT CR, LF JSB TTSK,I LDA LM0 LDB AM0 JSB TTY.O,I START DIAGNOSTIC * SCC LDB BT6 JSB CHKSW,I HALT FOR SELECT CODE CHANGE? JMP *+2 YES JMP MOD NO H113 HLT 13B,C * ENTER SC TO SWITCH REGISTER AND * PUSH RUN LIA 1 AND A77 JSB CHECK,I CHECK SELECT CODE JMP *+2 VALID SELECT CODE JMP H113+1 INVALID. TRY AGAIN STA CHA STORE SELECT CODE H114 HLT 14B,C * SELECT OPTIONS & PRESS RUN * * MODIFY I/O INSTRUCTIONS * MOD LDB FIRST STB CTBLA L LDB CTBLA,I LDA B,I AND P7700 IOR CHA STA B,I CPB LAST,I MODIFICATION COMPLETE? JMP *+3 YES ISZ CTBLA NO JMP L * CCA INITIALIZE DMA1 & 2 TO -1 WORD STC 2 COUNT, 0 DEVICE SELECT CODE OTA 2 CLA OTA 6 JSB CTPD JMP *+6 CCA STC 3 OTA 3 CLA OTA 7 * LDB BT7 JSB CHKSW,I SHORT TEST? JMP SHORT,I YES HED BASIC I/O * T.1 -- TEST ABILITY TO SET AND CLEAR THE DMA FLAGS SPC 3 T.1 EQU * BI/O JSB SAVAD,I SAVE LOOP ADDRESS CLC 0,C CLEAR ALL DEVICES, INT SYS OFF LDA HLTA TRAP CELL HALTS LDB HLTB STF 6 CLF 6 CLEAR DMA-1 FLAG SFS 6 RSS E1 JSB ERROR,I * DMA1--CLF DID NOT CLR FLG OR SFS * CAUSED SKIP WITH FLG CLR JSB H/L,I CHECK FOR LOOP ON TEST * JSB SAVAD,I SAVE LOOP ADDRESS STF 6 CLF 6 SFC 6 E2 JSB ERROR,I * DMA1--CLF DID NOT CLR FLG OR SFC * CAUSED NO SKIP WITH FLG CLR JSB H/L,I CHECK FOR LOOP ON TEST * JSB SAVAD,I SAVE LOOP ADDRESS CLF 6 STF 6 SFC 6 RSS E3 JSB ERROR,I * DMA1--STF DID NOT SET FLG OR SFC * CAUSED SKIP WITH FLG SET JSB H/L,I CHECK FOR LOOP ON TEST * JSB SAVAD,I SAVE LOOP ADDRESS CLF 6 STF 6 SFS 6 E4 JSB ERROR,I * DMA1--STF DID NOT SET FLG OR SFS * CAUSED NO SKIP WITH FLG SET JSB H/L,I CHECK FOR LOOP ON TEST CLF 6 SPC 2 JSB CTPD JMP T.2 JSB SAVAD,I SAVE LOOP ADDRESS STF 7 CLF 7 CLEAR DMA-2 FLAG SFS 7 RSS E5 JSB ERROR,I * DMA2--CLF DID NOT CLR FLG OR SFS * CAUSED SKIP WITH FLG CLR JSB H/L,I CHECK FOR LOOP ON TEST * JSB SAVAD,I SAVE LOOP ADDRESS STF 7 CLF 7 SFC 7 E6 JSB ERROR,I * DMA2--CLF DID NOT CLR FLG OR SFC * CAUSED NO SKIP WITH FLG CLR JSB H/L,I CHECK FOR LOOP ON TEST * JSB SAVAD,I SAVE LOOP ADDRESS CLF 7 STF 7 SFC 7 RSS E7 JSB ERROR,I * DMA2--STF DID NOT SET FLG OR SFC * CAUSED SKIP WITH FLG SET JSB H/L,I CHECK FOR LOOP ON TEST * JSB SAVAD,I SAVE LOOP ADDRESS CLF 7 STF 7 SFS 7 E10 JSB ERROR,I * DMA2--STF DID NOT SET FLG OR SFS * CAUSED NO SKIP WITH FLG SET JSB H/L,I CHECK FOR LOOP ON TEST CLF 7 SKP * T.2 -- TEST ABILITY TO ENABLE AND DISABLE INTERRUPT SYSTEM SPC 3 T.2 EQU * JSB SAVAD,I SAVE LOOP ADDRESS STF 0 ENABLE INT SYS CLF 0 DISABLE INT SYS SFS 0 IS INT SYS ON? JMP E11+1 NO, OK LDB BT14 YES, ERROR JSB CHKSW,I SUPPRESS ERROR HALTS? RSS YES E11 HLT 11B * CLF 0 DID NOT DISABLE INT SYS OR * SFS 0 CAUSED BAD SKIP JSB H/L,I CHECK FOR LOOP ON TEST * JSB SAVAD,I SAVE LOOP ADDRESS CLF 0 SFC 0 IS INT SYS ON? RSS YES, ERROR JMP E12+1 NO LDB BT14 JSB CHKSW,I SUPPRESS ERROR HALTS? RSS YES E12 HLT 12B * CLF 0 DID NOT DISABLE INT SYS OR * SFC 0 DID NOT SKIP JSB H/L,I CHECK FOR LOOP ON TEST * JSB SAVAD,I SAVE LOOP ADDRESS CLF 0 STF 0 SFC 0 IS INT SYS ON? RSS E13 JSB ERROR,I * STF 0 DID NOT ENABLE INT SYS OR * SFC 0 CAUSED BAD SKIP JSB H/L,I CHECK FOR LOOP ON TEST * JSB SAVAD,I SAVE LOOP ADDRESS CLF 0 STF 0 SFS 0 IS INT SYS ON? E14 JSB ERROR,I * STF 0 DID NOT ENABLE INT SYS OR * SFS 0 DID NOT SKIP JSB H/L,I CHECK FOR LOOP ON TEST CLF 0 * * LDA JSB.1 STORE JSB TO INT.1 IN STA 6 TRAP CELL * JSB SAVAD,I SAVE LOOP ADDRESS LDA HLTA LDB HLTB CLF 0 DISABLE INT SYS STC 6 STF 6 NOP SHOULD NOT INTERRUPT RSS E116 JSB ERROR,I * DMA1 INTPT AFTER CLF 0 JSB H/L,I CHECK FOR LOOP ON TEST * LDA HLT6 STA 6 RESTORE TRAP CELL HALT CLF 6 CLC 6 JSB CTPD JMP T3 SPC 2 T2B LDA JSB.1 TEST DMA2 STA 7 * JSB SAVAD,I SAVE LOOP ADDRESS LDA HLTA LDB HLTB CLF 0 STC 7 STF 7 NOP RSS E117 JSB ERROR,I * DMA2 INTPT AFTER CLF 0 JSB H/L,I CHECK FOR LOOP ON TEST * LDA HLT7 STA 7 CLF 7 CLC 7 SKP * T.3 -- TEST INTERRUPT CAPABILITY SPC 3 T3 EQU * JSB SAVAD,I SAVE LOOP ADDRESS LDA JSB1 SET INTERRUPT TRAP CELL STA 6 LDA HLTA TRAP CELL HALTS LDB HLTB STC 6 DMA1 INTERRUPT REQUEST STF 6 STF 0 ENABLE INT SYS STC 1 INTERRUPTS STF 1 SHOULD CLC 1 BE CLF 1 DELAYED JMP *+1,I UNTIL DEF *+1 . JSB *+1,I . DEF *+1 . NOP . INT1 NOP HERE E15 JSB ERROR,I * DMA1 DID NOT INTERRUPT JSB H/L,I CHECK FOR LOOP ON TEST SPC 2 TI2 JSB SAVAD,I SAVE LOOP ADDRESS LDA JSB2 SET INTERRUPT TRAP CELL STA 7 LDA HLTA TRAP CELL HALTS LDB HLTB STC 7 DMA2 INTERRUPT REQUEST STF 7 STF 0 ENABLE INT SYS STC 1 INTERRUPTS STF 1 SHOULD CLC 1 BE CLF 1 DELAYED JMP *+1,I UNTIL DEF *+1 . JSB *+1,I . DEF *+1 . NOP . INT2 NOP HERE E16 JSB ERROR,I * DMA2 DID NOT INTERRUPT JSB H/L,I CHECK FOR LOOP ON TEST JMP T.4 SPC 2 RTRN1 NOP DMA1 INTERRUPT SUBROUTINE CLF 0 DISABLE INT SYS SFS 6 E100 JSB ERROR,I * IAK CLEARED DMA1 FLAG LDA J1 IJ1 INTERRUPT ROUTINE STA 6 STF 0 TEST INTERRUPT ACKNOWLEDGE NOP SHOULD NOT NOP INTERRUPT HERE CLC 0,C LDA RTRN1 DID INTERRUPT OCCUR AT THE CPA ADDR1 CORRECT MEM LOCATION? RSS E17 JSB ERROR,I * DMA1--RETURN ADDR IS INCORRECT JSB H/L,I CHECK FOR LOOP ON TEST JSB CTPD JMP T.4 JMP TI2 SPC 2 RTRN2 NOP DMA2 INTERRUPT SUBROUTINE CLF 0 DISABLE INT SYS SFS 7 E103 JSB ERROR,I * IAK CLEARED DMA2 FLAG LDA J5 IJ5 INTERRUPT ROUTINE STA 7 STF 0 TEST INTERRUPT ACKNOWLEDGE NOP SHOULD NOT NOP INTERRUPT HERE CLC 0,C LDA RTRN2 DID INTERRUPT OCCUR AT THE CPA ADDR2 CORRECT MEM LOCATION? RSS E20 JSB ERROR,I * DMA2--RETURN ADDR IS INCORRECT JSB H/L,I CHECK FOR LOOP ON TEST JMP T.4 SPC 2 IJ1 NOP CLF 0 E21 JSB ERROR,I * DMA1--IAK DID NOT WORK. JSB H/L,I CHECK FOR LOOP ON TEST JMP IJ1,I SPC 2 IJ5 NOP CLF 0 E22 JSB ERROR,I * DMA2--IAK DID NOT WORK. JSB H/L,I CHECK FOR LOOP ON TEST JMP IJ5,I SKP * T.4 -- TEST CONTROL RESET SPC 3 T.4 EQU * LDA JSB.1 INT.1 INTPT IN DMA1 TRAP CELL STA 6 JSB SAVAD,I SAVE LOOP ADDRESS LDA HLTA LDB HLTB STC 6 STF 6 CLC 0 SHOULD CLEAR ALL CONTROL BITS STF 0 ENABLE INT SYS NOP SHOULD NOT RSS INTERRUPT HERE E23 JSB ERROR,I * DMA1--CLC 0 DID NOT CLEAR * CONTROL CLF 0 DISABLE INT SYS JSB H/L,I CHECK FOR LOOP ON TEST SPC 1 JSB SAVAD,I SAVE LOOP ADDRESS LDA HLTA LDB HLTB STC 6 STF 6 CLC 6 CLEAR DMA1 CONTROL STF 0 ENABLE INT SYS NOP SHOULD NOT RSS INTERRUPT HERE E24 JSB ERROR,I * DMA1--CLC 6 DID NOT CLEAR * CONTROL CLF 0 DISABLE INT SYS JSB H/L,I CHECK FOR LOOP ON TEST SPC 2 LDA HLT6 STA 6 JSB CTPD JMP T.5 LDA JSB.1 INT.1 INTPT IN DMA2 TRAP CELL STA 7 JSB SAVAD,I SAVE LOOP ADDRESS LDA HLTA LDB HLTB STC 7 STF 7 CLC 0 SHOULD CLEAR ALL CONTROL BITS STF 0 ENABLE INT SYS NOP SHOULD NOT RSS INTERRUPT HERE E25 JSB ERROR,I * DMA2--CLC 0 DID NOT CLEAR * CONTROL CLF 0 DISABLE INT SYS JSB H/L,I CHECK FOR LOOP ON TEST SPC 1 JSB SAVAD,I SAVE LOOP ADDRESS LDA HLTA LDB HLTB STC 7 STF 7 CLC 7 CLEAR DMA2 CONTROL STF 0 NOP RSS INTERRUPT HERE E26 JSB ERROR,I * DMA2--CLC 7 DID NOT CLEAR * CONTROL CLF 0 DISABLE INT SYS JSB H/L,I CHECK FOR LOOP ON TEST LDA HLT7 STA 7 SKP * T.5 -- PRESET TEST SPC 3 T.5 EQU * JSB SAVAD,I SAVE LOOP ADDRESS CLC 0,C LDB BT8 JSB CHKSW,I OMIT PRESET TEST? JMP DT.6,I CLF 6 CLF 7 SPC 1 H27 HLT 27B * PRESS PRESET THEN PRESS RUN SPC 1 * SFS 6 RSS JMP E31+1 LDB BT14 JSB CHKSW,I SUPPRESS ERROR HALTS? RSS YES E31 HLT 31B * DMA1--PRESET DID NOT SET FLAG JSB CTPD JMP LT7,I * SFS 7 RSS JMP E32+1 LDB BT14 JSB CHKSW,I SUPPRESS ERROR HALTS? RSS YES E32 HLT 32B * DMA2--PRESET DID NOT SET FLAG JSB H/L,I CHECK FOR LOOP ON TEST SKP