From c29cc442710d217b529ff662dc457ee431e8f80e Mon Sep 17 00:00:00 2001 From: brad Date: Fri, 9 Apr 2010 15:55:03 +0000 Subject: [PATCH] --- tests/src/MAINDEC-08-D1GB-D.pal | 2382 +++++++++++++++---------------- 1 file changed, 1191 insertions(+), 1191 deletions(-) diff --git a/tests/src/MAINDEC-08-D1GB-D.pal b/tests/src/MAINDEC-08-D1GB-D.pal index 6db80a7..9642cc4 100755 --- a/tests/src/MAINDEC-08-D1GB-D.pal +++ b/tests/src/MAINDEC-08-D1GB-D.pal @@ -1,1191 +1,1191 @@ -/PDP-8, 8I EXTENDED MEMORY CONTROL TEST, PLACE NUMBER -/OF EXTENDED 4K FIELDS AVAILABLE IN SR9 TO 11, (UP To 7) -/IF USING AN 8I, PLACE SR8 ON A-1, OTHERWISE LEAVE 0. -/START PROGRAM AT 0200 - -/CONSTANTS 0 -CDF=6201 -CIF=6202 -RDF=6214 -RIF=6224 -RMF=6244 -RIB=6234 -*1 -/ - JMP I 1 - 0002 - 0003 -/ -JMPI0, JMP I 1 -ISZ0, ISZ 0 -XTPLG, TFLG -XSTKS, NSTKS -XRMF, TRMF -XRANS, TRANS -XAUTO, TAUTO -LOOP, 0 -NDF, 0 -STKS, 0 -DAT, 0 -NOSTAK, 0 -NOFLD, 0 -KE40M, E40-1 -KE40, E40 -KHLT, HLT -KCDF, 6201 -KCIF, 6202 -KCF1, CIF1-1 -XFD, EXFD -K1, 1 -K7, 7 -K11, 10 -K7777, 7777 -K7000, 7000 -K7707, 7707 -K7767, 7767 -K7757, 7757 -K7747, 7747 -K7737, 7737 -K7727, 7727 -K7717, 7717 -K7776, 7776 -K7775, 7775 -K7774, 7114 -K1773, 7773 -K7772, 7772 -K7771, 7771 -K7770, 7770 -POINT, ,+2 - - -K7S, .+1 -K7766, 7766 - 7755 -K7744, 7744 - 7733 - 7722 - 7711 - 7700 -XTDF, STDF -XTDF1, STDF+1 -KXFLD, EXFLD -KJMP, JMP I 2 - ENTER -K20, 20 -JMP0, JMP I KFLD0 -KFLD0, RTRN -KPTN, E45A+2 -XFIB, SFIB - -/TEST CDF AND RDF -/ -*200 -/ -BEGIN, CLA - DCA LOOP /LOOP COUNTER -/ -DF0 CDF 00 /DF 0 - RDF - SNA /SHOULD NOT SKIP - JMP 0F7 -E1, HLT /ERROR. CDF OR RDF FAILED - CLA - JMP DF0 /REPEAT -/ -DF7, TAD K7707 /7707 - CDF 70 /DF 7 - RDF - CMA /AC = 0 - SNA /SHOULD NOT SKIP - JMP OK1 -F2, HLT /CDF OR RDF FAILED - CLA - JMP DF7 -/ -0K1, ISZ LOOP /CHECK DONE - JMP DF0 -/ - CLA - DCA LOOP /LOOP GOUNVER -/ -DF1, TAD K7767 /7767 - CDF 10 /DF 10 - RDF - CMA /AC=0 - SNA - JMP DF2 -E3, HLT /CDF1 OR RDF FAILED - CLA - JMP DF1 -/ -DF2, TAD K7757 /7757 - CDF 20 /DF2 - RDF - CMA /AC=0 - SNA - JMP OK2 - -E4, HLT /CDF2 OR RDF FAILED - CLA - JMP DF2 -/ -OK2, ISZ LOOP /DONE IF SKIP - JMP DF1 - CLA - DCA LOOP -/ -DF3, TAD K7747 /7747 - CDF 30 /DF 3 - RDF - CMA /AC=0 - SNA - JMP DF4 -E5, HLT /CDF 3 OR RDF FAILED - CLA - JMP DF3 -/ -DF4, TAD K7737 /7737 - CDF 40 /DF 4 - RDF - CMA /AC=0 - SNA - JMP OK3 -E6, HLT /CDF 4 OR RDF FAILED - CLA - JMP DF4 -/ -OK3, ISZ LOOP /DONE IF SKIP - JMP DF3 -/ - CLA - DCA LOOP -/ -DF5, TAD K7727 /7727 - CDF 50 /DF5 - RDF - CMA /AC=0 - SNA - JMP DF6 -E7, HLT /CDF 5 OR RDF FAILED, - CLA - JMP DF5 -/ -DF6, TAD K7717 /7717 - CDF 60 /DF 6 - RDF - CMA /AC=0 - SNA - JMP OK4 - -E8, HLT /CDF 6 OR RDF FAILED - CLA - JMP DF6 -/ -OK4, ISZ LOOP /DONE WHEN SKIP - JMP DF5 -/NOW TEST INTERRUPT BUFFER (IB) BITS 9-11 WITH -/RIB, PI IS ENABLED, TELEPRINTER FLAG IS -/USED FOR INTERRUPT, - CDF 00 /DF0 - TAD JMPI0 /JMP I0=JMP I 0 - DCA 1 /C(1)=JMP I 0 - DCA LOOP - TSF /TEST TTY FLAG - JMS I XTFLG /SET FLAG -/ -IB0, ION /ENABLE PI - CLA - RIB /READ SF - SNA - JMP IB1 -E9, HLT /RIB FAILED - JMP IBO -/ -IB1, CDF 10 /DF 1 - ION - CLA - RDF /DF SHOULD BE AFTER A PI - SNA - JMP -E10, HLT - JMP IB1 /DF NOT CLEARED, OR NO PI - TAD K7776 - RIB /READ SF - CMA /AC=0 - SNA - JMP OK5 -E11, HLT /RIB OR SF FAILED - JMP IB1 -/ -OK5, ISZ LOOP /DONE WHEN SKIP - JMP IB0 - JMP I .+1 - IB2-2 - -*400 - CLA - DCA LOOP -/ -IB2, CDF 20 /DF 2 - ION - CLA - RDF /SHOULD BE 0 AFTER PI - SNA - JMP .+3 -E12, HLT /DF NOT CLEARED, OR NO PI - JMP IB2 -/ - TAD K7775 - RIB /AC=7777 - CMA /=0 - SNA - JMP IB3 - HLT /RIB OR SF FAILED - JMP IB2 -/ -IB3, CDF 30 /DF3 - ION - CLA - RDF /DF SHOULD BE CLEARED - SNA - JMP .+3 -E14, HLT /DF NOT CLEARED - JMP IB3 -/ - TAD K7774 - RIB /AC=7777 - CMA /AC=0 - SNA - JMP OK6 - HLT /RIB OR SF FAILED - JMP IB3 -/ -OK6, ISZ LOOP /DONE IF SKIP - JMP IB2 - CLA - DCA LOOP -/ -IB4, CDF 40 /DF 3 - ION - CLA - RDF /DF MUST BE 000 AFTER A PI - SNA /ERROR IF SKIP - JMP .+3 - -E16, HLT /DF NOT 0 AFTER PI - JMP IB4 - TAD K7773 /AC=7773 - RIB /AC=7777 - CMA /AC:0/AC=0 - SNA - JMP IB5 -E17, HLT /RIB OR SF FAILED - JMP IB4 -/ - CDF 50 /DF5 - ION - CLA - RDF /DF SHOULD=000 - SNA - JMP -E18, HLT /DF NOT 0 AFTER PI - JMP IB5 -/ - TAD K7772 /AC= 7772 - RIB / = 7777 - CMA / = 0 - SNA - JMP OK7 -E19, HLT /RIB OR SF FAILED - JMP IB5 -/ -OK7, ISZ LOOP /DONE IF 0 AND SKIP - JMP IB4 - CLA -/ - DCA LOOP -IB6, CDF 60 /DF6 - ION - CLA - RDF /DF MUST=0 AFTER PI - SNA - JMP .+3 - HLT /DF NOT 0 AFTER PI - JMP IB6 - -/ - TAD K7771 /,7771 - RIB /AC=7777 - CMA - SNA - JMP IB7 -E21, HLT /RIB OR SF FAILED - JMP IB6 -IB7, CDF 70 /DF 7 - ION - CLA - RDF /DF MUST = 0 AFTER PI - SNA - JMP .+3 -E22, HLT /DF NOT 0 - JMP IB7 -/ - TAD K7770 - RIB /AC=7777 - CMA - SNA - JMP OK8 -E23, HLT /RIB OR SF FAILED - JMP IB7 -/ -OK8, ISZ LOOP /DONE IF 0 - JMP IB6 - JMP I .+1 /NEW PAGE - 600 - -*600 -/NOW TEST DCA I AND TAD I TO ALL STACKS, NUMBER OF -/EXTENDED STACKS SHOULD BE IN SR9 TO 11, EACH STACK -/CONTAIN ITS DF# IN LOCATION 7000. - DCA LOOP -DCAI, JMS I XSTKS /READ SR 9-11 - IAC - DCA NDF /DF NUMBER = 1 TO START - TAD KCDF /6201 - TAD K10 - DCA .+1 /DF 001 TO START WITH -DFLD, CDF 00 /WILL BE INCREMENTED - TAD NDF /DF# - DCA I K7000 /PUT IN 7000 OF STACK - ISZ STKS /ALL STACKS WHEN 0 - SKP - JMP TADI / TAD TEST I - TAD K10 - TAD DFLD /INCR, CDF IOT - DCA DFLD - ISZ NDF - JMP DFLD /- -/ -TADI, JMS I XSTKS /SR9=11 AGAIN - IAC - DCA NDF /DF#=1N - TAD KCDF /6201 - TAD K10 - DCA .+1 -TFLD, CDF 00 - TAD I K7000 /AC=DF CONTENTS NOW - DCA DAT /SAVE TEMP - TAD DAT - CIA /2'S COMP - TAD NDF /BETTER BE EQUAL - CLA - JMP E24-1 /ERROR PATH - ISZ STKS /ALL WHEN 0 - JMP .+4 - ISZ LOOP /DONE WHEN 0 - JMP DCAI - JMP IBSF /NEXT TEST - TAD K10 - TAD TFLD /CDF IOT + 10 - DCA TFLD - ISZ NDF - JMP TFLD - TAD DAT /DATA AS READ -E24, HLT /AC=DATA READ. DF INDICATORS - /EQUAL FIELD WHERE GOT DATA, - /BOTH SHOULD BE EQUAL - CLA - JMP TFLD - -/ -/NOW TEST CIF PROGRAM INTERRUPT ENABLED. THE -/I.F. SHOULD ALWAYS = 00 SINCE A JMP OR JMS IS EX- -/EXCUTED AFTER THE CIF IOT. THE SF REGISTER IS -/*STET WITH THE RIB IOT AFTER THE INTERRUPT, -/& THE I.F. IS SET A HLT WILL OCCUR AT LOC. 1 -/IN THE EXTENDED FIELD. -/* WILL OCCUR AFTER THE ION IOT -/AFTER INTERRUPT OCCURS, PRESS CONT. TO REPEAT, -/ -/* LOCS. 1, 2, TO = ISZ 0, AND -/JMP I 0, RESPECTIVELY. -/ -xxx1, CDF 00 /SET DF to 000. - TAD ISZ0 /ISZ 0 - DCA 1 - TAD IMRIO /JMR I 0 - DCA 2 -/ -/ xx A HLT I dddd EXTENDED FIELDS, -/ - TAD I XSTRS - TAD KCDF - TAD K10 - DCA .+1 -xxx1, CDF 10 /FIELD 1 TO START WITH - TAD KH /KHLT = 7402 - DCA I K1 - ISZ STKS /ALL FIELDS WHEN - SKP - JMP .+3 - TAD HLTS - JMP HLTS-8 -/ -/ CIF TESTS -/ - CDF 000 - KSF - JMS I XTSF /SET TTY FLAG - DCA LOOP - JMS I XSTKS /READ SR 9-11 -/ -xxx1, CIF 10 /FIELD 0 - ION - NOP - JMP .+1 -xxx3, HLT /ERROR, NO PI OR INHIBIT PI - RIB /RETURN FROM LOC.3 - TAD K7767 - SMA - SNA CLA /OK IF NO SKIP - JMP OKF1 - RIB - HLT /I.B. OR S.F FAILED, C(AC)=C(IB) - CLA - JMP CIF1 /REPEAT -/ -OKF1, ISZ STKS /ALL FIELDS IF 0 - JMP CIF2 - ISZ LOOP /ALL DONE IF 0 - JMP CIF1-1 - JMP I XRMF /TEST RMF -/ -CIF2, CIF 20 /FIELD 2 - ION - NOP - JMP .+1 -E27, HLT /NO PI OR INHIBIT PI - RIB /RETURN FROM LOC,3 - TAD K7757 - CMA - SNA CLA /ERROR IF SKIP - JMP OKF2 - RIB -E28, HLT /IB OR SF FAILED, C(AC)=C(IB) - CLA - JMP CIF2 -/ -OKF2, ISZ STKS /ALL FIELDS IF 0 - JMP CIF3 - ISZ LOOP /AIL DONE IF 0 - JMP CIF1-1 - JMP I XRMF /TEST RMF -/ -CIF3, CIF 30 /FIELD 3 - ION - NOP - JMP .+1 -E29, HLT /NO PI OR INHIBIT PI - RIB /RETURN ROM LOC.3 - TAD K7747 - CMA - SNA CLA /ERROR IF SKIP - JMP OKF3 - RIB -E30, HLT /SF OP IB FAILED, C(AC)=C(IB) - CLA - JMP CIF3 -OKF3, ISZ STKS /ALL FIELDS IF 0 - JMP I .+4 - ISZ LOOP /ALL DONE IF 0 - JMP CIF1-1 - JMP I XRMF /TEST RMF - CIF4 -/ -/PDP-8,8I EXT,MEM, CONTROLL TEST-TAPE 2 -/ -*1000 -CIF4, CIF 40 /FIELD 4 - ION - NOP - JMP ,+1 -7402 £31, HLT /NO PI OR INHIRIT PI - RIB /JMP TO HERE FROM LOC, 3 - TAD K7737 - CMA - SNA CLA /AC MUST BE 0 - JMP OKF4 - RIB -E32, HLT /IA OR SF FAILED, C(AC)=C(IB) - CLA - JMP CIF4 -OKF4, ISZ STKS /ALL FIELDS IF 0 - JMP CIF5 - ISZ LOOP /ALL DONE IF 0 - JMP I KCF1 - JMP TRMF [TEST RMF -CIF5, CIF 50 /FIELD 5 - ION - NOP - JMP .+1 -E33, HLT /NO PI OR INHIBIT PI - RIB /JMP HERE FROM LOC, 3 - TAD K7727 - CMA - SNA CLA /ERROR IF SKIP - JMP OKF5 - RIB -E34, HLT /IR OR SF FAILED, C(AC)=C(IB) - CLA - JMP CIF5 -OKF5, ISZ STKS /DONE WHEN SKIP - JMP CIF6 - ISZ LOOP /512 VIMES IF SKIP - JMP I KCF1 - JMP TRMF /TEST RMF -CIF6, CIF 60 /FIELD 6 - ION - NOP - JMP .+1 -E35, HLT /NO PI OR INHIBIT PI - RIB /JMP HERE FROM LOC, 3 - TAD K7717 - CMA - SNA CLA /TO SKIP IS TO ERROR - JMP OKF6 - RIB - -E36, HLT /IR OR SF FAILED, C(AC)=C(IB) - CLA - JMP CIF6 -OKF6, ISZ STKS /SEE IF ALL FIELDS - JMP CIF7 - ISZ LOOP /ALL DONE WHEN SKIP - JMP I KCF1 - JMP TRMF /TEST RMF -CIF7, CIF 70 /FIELD 7 - ION - NOP - JMP ,+1 -E37, HLT /NO PI OR INHIBIT PI - RIB /RETURN HERE FROM LOC,3 - TAD K7707 - CMA - SNA CLA /ERROR IF SKIP - JMP OKF7 - RIB -E38, HLT /18 OR SF FAILED, C(AC)=C(IB) - CLA - JMP CIF7 -OKF7, ISZ LOOP /DONE IF SKIP - JMP I KCF1 - JMP TRMF /TEST RMF - -/TEST INTERRUPT INHIBIT -/FROM EACH FIELD, REFER TO HEADING TITLED "EXTENDED -/FIELD TEST RDUTINE", THIS ROUTINE IS PLACED IN -/EACH TESTED FIELD AT THE ADDRESSES SPECIFIED, THE -/INDICATED ERROR HALTS WILL BE IN THE EXTENDED -/FIELD, PRESS CONT, TO RECOVER, ONLY 1 FIELD WILL -/CONTAIN THE ROUTINE AT ANY ONE TIME, OTHER FIELDS -/HILL CONTAIN ALLO'S, THE ROUTINE IS REPLACED WITH -/HALTS AFTER COMPLETION, THE PORTIONS OF THE FIELD -/WHICH DO NOT CONTAIN THE ROUTINE ARE SET TO 0000 -/BEFOREHAND. -/ -/ -/SETUP FIELDS TO TEST, POINTERS, ETC,, -/ -TRMF, JMS I XSTKS /READ SR9-11 - TAD KCDF /6201 - DCA .+6 - TAO .+5 - TAD K10 - DCA .+3 - CMA - OCA 10 - CDF 10 - DCA I 10 /PLACE 0'S IN EACH FIELD FROM - TAD 10 /LOC, 0 TO 7777, - CMA - CLA - JMP .-4 - ISZ STKS - JMP TRMF+3 - -/ -/NOW PUT A HLT IN EACH FIELD THE SAME -/LOCATION AS E40, BELOW. -/ - JMS I XSTKS /READ SR 9-11 - TAD KCDF - TAD K10 - DCA .+1 -CHDF, CDF 00 - TAD KE40 /KE40 = ADDRESS OF E40. - DCA LOOP /SAVE TEMPORARILY - TAD KHLT /KHLT = 7402 (HLT) - DCA I LOOP - ISZ STKS /DONE ALL STACKS WHEN SKIP - SKP - JMP .+3 - TAD CHDF - JMP CHDF-2 -/ - CDF 00 -STRMF, TSF /CHECK TTY FNAG - JMS I XTFLG /GO SET IT - TAD K7707 - DCA LOOP - TAD POINT - DCA K7S /POINTER FOR K7700 TO K7766 - JMS I XSTKS /REAP SR 9-11 - TAD KCDF /6201 - TAD K10 /10 - DCA STDF - TAD KCIF /6202 - TAD K10 /10 - DCA STDF+1 - TAD STDF+1 - DCA I XFD - JMS I XRANS /PUT TEST ROUTINE INTO FIE' 0 X -/ -STDF, CDF 10 /FIELD 1 TO START WITH - CIF 10 - JMP .+1 /SHOULD ENTER EXTENDED FIELD - /AFTER THIS JMP, HLT IF NOT - NOP -E40, HLT /ERROR, PI FAILED - /C(AC) = C(I.B.) - JMP STDF /REPEAT SAME TEST. -/ - -/ENTER HERE AFTER P1 FROM EXTENDED BANK -*1200 -/ -ENTER, RDF /DF SHOULD BE 000 . - SNA /ERROR IF SKIP - JMP .+4 /CHECK C(SF) -E41, HLT /AC=C(DF) - CLA - JMP I XTDF /REPEAT TEST - CIF 10 /SET I.B. TO FIELD 1 - RMF /I.B. NOW EQUAL TO SF - RIB /READ IB - CIF 00 - CDF 00 - TAD I K7S - CMA - SNA CLA /ERROR IF SKIP - JMP CKP0 - RMF - RIB -E42, HLT /ERROR RMF AND PI WORKED, BUT - CLA /I,B, NOT CORRECT AFTER RMF, - /AC=C(IB) - CDF 00 - CIF 00 - JMP I XTDF /BACKUP A PAGE AND REPEAT -/ -CKRC, TAD KE40 /KE40=ADDRESS OF E40 - IAC /MAKE E40+1 - CIA - TAD 0 /COMPARE TO C(0) - SNA CLA /SHOULD NOT SKIP - JMP .+5 /ALL OK SETUP FOR NEXT FIELD - TAD 0 -E43, HLT /ERROR, ALL WORKED, BUT - /C(PC) WAS NOT=TO E40+1 - /AFTER PI IN EXTENDED - /FIELD, C(AC)=C(0),F0, - /CHECK FOR P1 NOT INHIBITED, - /OR AUTO-INDEX REG, - /12 FAILING IN THE EXTENDED FIELD. - CLA - JMP I XTDF /BACKUP AND REPEAT -/SETUP FOR NEXT FIELD - ISZ STKS /DONE ALL IF SKIP - JMP .+5 - ISz LOOP /DONE LOOPING IF SKIP - JMP I .+2 /REPEAT ALL AGAIN - JMP I XFIB /EXIT TO NEXT TEST - STRMF+4 /BACK TO LAST PAGE - -/ -/SET LAST TESTED FIELD TO ALL 0'S AND PUT A -/HLT IN RESPECTIVE ADDRESS OF E40 -/ - CLA CMA - DCA 10 - TAD I XTDF /CODF X/DF SIDE - DCA .+1 - CDF 10 /F1 TO START WITH - DCA I 10 - TAD 10 - CMA - SZA CLA /CLEARD IF SKIP - JMP .-4 - CDF 00 - TAD I XTDF /CDF X0 AT STDF - DCA .+1 - CDF 10 - TAD KHLT /=7402 (HLT) - DCA I KE40 /KF40=ADDRESS OF E40 - CDF 00 /RESTORE DF - /INCREMENT CDF AND CIF HIT'S AT SUF STSTDFSTDF+1 - /TO NEXT FIELD. - TAD I XTDF TDF X0 AT STDF - TAD K10 - DCA I XTDF - TAD I XTDF1 /CIF XP AT STDF - TAD K10 - DCA I XTDF11 - TAD I XTDF1 - DCA EXFD D - ISZ K75 - JMS TRANS /PUT ROUTINE IN NEW - JMP I XTDF /TEST NEW FIELD - - /EXTENDED FIELD TEST ROUTINE -/ - -/THE FOLLOWING INSTRUCTIONS ARE PLACED IN -/EACH EXTENDED FIELD TESTED, THE NUMBERS IN THE -/COMMENTS FIELD CORRESPOND TO THE -/MEMORY LOCATIONS IN THE TESTED FIELLD, LOCATIONS -/0 THRU 11 ARE USED FOR AN ERROR ROUTINE -/IN CASE FIELD 0 IS NOT ENTERED AFTER AN -/INTERRUPT, THE EXTENDED FIELD SHOULD BE /ENTERED AT LOCATION E40-1 WHICH CORRESPONDS -/TO F40-1 IN FIELD 0. -/ -/EXTENDED FIELD INSTRUCTIONS: -/ -EXFLD, 0 /0 - TAD 0 /1 - JMP /IF LOC. 0 NOT :0 PI DIDN'T - SNA /ENTER FIELD 0 - JMP .+5 /3 -E44, HLT /4, INTERRUPTED TO THIS FIELD - /INSTEAD OF FIELD 0,C(Ac)=c(0)0,C(AC)=C(0) - /WHICH SHOULD BE E40+1 - /IF NOT, CHECK LOC, 7777,IT - /MUST =: 5412 (JMP I12). - CLA /5 - DCA 0 /6 - JMP I 20 /7, C(20) :E40 -E45, HLT /10, THE JMP I 12 AT LOC, - /7777 WAS NOT EXECUTED, - /OR INTERRUPT FAILED, IF - /NO INTERRUPT, LOCATION 12 - /NOW CONTAINS 0 INSTEAD - /OF ADDRESS E40, - JMP .-4 /11, REPEAT IN THIS FIELD - E40 /12, AUTO—INDEXS TAUTO-INDEXS - /IN F 0 IF THE JMP I 12 - /WORKS, -/LOCS. 13 TO 17 ARE ALL 0'S -/ - E40 /20, EQUALS E40 IN F0, -/ -/LOCS, 21 TO E40-2 ARE ALL 0'S -/ -EXFD, CIF 10 /FIELD 1 TO START WITH - ION /LOC, E40, SEE SYMBOL TABLE - /FOR E40. -/L0CS, E40+1 TO 7776 ARE ALL 0'S -/ - JMP I 12 /7777, PI SHOULD OCCUR, - /AFTER THIS INSTRUCTION, - /TO FIELD 0, - -/ -/ROUTINE TO TRANSFER TEST ROUTINE TO PROPER FIELD -/ -TRANS, 0 - TAD KJMP /KJMP=JMP I 2 - DCA 1 /IN FIELD 0 - TAD KNTR /KNTR = LOC, ENTER - DCA 2 /OF FIELD 0 - TAD KXFLD /KXFLD = LOC, EXFLD - DCA 10 - DCA 11 - TAD K7766 /1-10 DECIMAL - DCA 0 /SAVE - TAD I XTDF /CDF X0 IN STDF - DCA .+3 - CDF 00 - TAD I 10 -TRFLD, CDF 10 /F1 TO START WITH - DCA I 11 /PUT IN EXTENDED FIELD - ISZ 0 /DONE LOCS 1 TO 12 IF SKIP - JMP .-5 - TAD TRFLD - DCA .+3 - CDF 00 - TAD I 10 - CDF 10 - DCA I K20 /PUT E40 IN LOC. 20 - CDF 00 - TAD TRFLD - DCA .+2 - TAD I 10 - CDF 10 - DCA I KE40M /PUT CIF X0 IN E40-1 - CDF 00 - TAD TRFLD - DCA .+2 - TAD I 10 - CDF 10 - DCA I KE40 /ION TO LOC, E40 - CDF 00 - TAD TRFLD - DCA .+2 - TAD I 10 - CDF 10 - DCA I K7777 /PUT JMP 112 IN 7777 - CDF 00 - JMP I TRANS /EXIT - -*1400 -/TEST SF WITH AN RMF TOT, AN INTERRUPT IN FIELD C,1 TS CHEATED, AFTER -/WHICH, THE DE AND IB REGISTERS ARE SET To FIELD 1, -/THE SF SHOULD CONTAIN FIELD 0, THE TEST -/THEN MAKES SURE THE IR TS CLEARED, THEN SET 8T ISSUTNG AN RMF, -/FOLLOWED BY A JMP I K7000. IF THE IB TS CLEARED, THE JMP GOES TO 700) 10 FIELD -/IF THE IB AND SF ARE INCLUSIVE OR'D, THE JMP GOTS To 7000 IN FIFO 1, AND -/A HALT OCCURS THERE. RESTART FROM 140/ AFTER AN ERROR, THE TEST IS LOOPED -/512 TIMES. -/ -SFIB, TSF /SEE IF FLAG IS SET, - jMS I x11:1_,; /SET IT - TAD K7000 /7000 - DCA LIMP - CDF 1E! /DF=FIFLD 1 - TAD KHLT /HLT - DCA I K7000 /7000, FIELD 1=HLT - CUR 0E7 - TAD J /0F=0 - MP2 - /JMP2=JMP I KFLD0 - DcA I /7000, FIELD 0=JMP I KFLD0 - /KFLDO=LOC, RTRN - TAD KJMP /KJMP=JMP 12 - DCA 1 - TAD KRTN /KRTN=LOC, E45A+2 - DCA 2 -/ -/BEGIN TEST -/ - ION /ENABLE PI - NOP -xxx, HLT /ERROR NO PI - JMP SFIB /REPEAT TEST -/ -/RETURNS HERE AFTER PI -/ - CLA - CDF 00 /DF=FIELD1 - CIF 10 /IB=FIELD1 - RMF /IB SHOULD=FIELD0 - JMP I K7000 /IF SHOULD=FIELD0 -/ -RTRN, ISZ LOOP /WORKED OK - JMP E45A-2 /LOOP - JMP TAUTO /DONE, GO TO NEXT TEST - - -/TEST ALL AUTO-INDEX REGISTERS IN EACH EXTENDED FIELD, -/IDENTICAL TEST ROUTINES ARE PERFORMED FROM EACH FIELD, -/AND ERROR HALTS DCCUR IN THE FIELD CURRENTLY RUNNING -/THE ROUTINE. RRESS CONT, TO RESUME TESTING. EACH -/FIELD CONTAINS ALL 2'S EXCEPT FOR THE AREA OCCUPIED -/BY THE TEST ROUTINE. FIELD 0 IS RE-ENTERED -/EACH TEST, AND THE NEXT SEQUENTIAL FIELD -/THEN ENTERED, REFER TO THE HEADING "AUTO- -/INDEX TEST" FOR THE SEQUENCE OF ORERATIONS. -/ -TAUTO, CDF 00 - TAD K7707 - DCA LOOP /LOOP COUNTER - JMS I XSTKS /READ SR 9-11 - TAD KCDF /6201 - DCA DFN -NEXDF, TAD DFN - TAD K10 /INCREMENT DF - DCA DEN -/ -/ CLEAR ONE FIELD TO 0 -/ - DMA - DCA 10 - DCA 0 /USE LOC, 0 FOR A COUNTER -DF0, CDF 10 /FTELD 1 TO START WITH - DCA I 10 - ISZ 0 - JMP .-2 - CDF 00 -/ -/NOW PUT TEST ROUTINE IN THE EXTENDED FIELD -/ - TAD DOAUTO /1ST LOC. OF ROUTINE MINUS 1 - DCA 10 /SOURCE - TAD K7744 /=28 DECIMAL - DCA 0 /USE. LOC. 0 AS COUNTER - TAD DOAUTO - DCA 11 /DESTINATION - TAD DEN /CDF X0 - DCA .+3 -MOVE, CDF 00 - TAD I 10 - CDF 10 /FIELD 1 TO START - DCA I 11 - ISZ 0 /MOVE WHEN SKIP - JMP MOVE - -/ -/NOW SET AUTO-I REGS 10 TO 17 TO 7777, -/ - TAD K7770 /-8 DECIMAL - DCA 0 - TAD K7 /7 - DCA 10 - CMA /7777 - DCA I 10 - ISZ 0 /10 TO 17 = 7777 WHEN SKIP - JMP .+3 - CMA - DCA I K7777 /PUT 7777 IN LOC, 7777 OF EXTENDED - RDF /READ D.F. - TAD KCIF /6202 - DCA .+1 - CIF 10 /FIELD 1 TO START - JMS I FILDX /FILDXR EXTENDED FIELD - /515 OCTAL LOCS, BEFORE THE - /TAD 110 INO10UCTION, - /THIS IS A TEST OF THE - /DEFER BIT, 500 US DELAY -/ -/ENTER FIELD 0 FROM EXTENDED FIELD HERE, -/ -GOTO0, ISZ STKS /DONE ALL WHEN SKIP - JMP NEWDF /SETUP FOR NEXT - ISZ LOOP /ALL DONE IF SKIP - JMP NEWDF_3 /REPEAT ALL - JMP CSR8 /CSR8K SR 8 -FILDX, DOAUTO-515 - -/ -/ AUTO-INDEXED TEST -/ -/THE ROUTINE WILL PE PLACED IN THE SAME RESPECTIVE -/LOCATIONS IN EACH EXTENDED FIELD, ANY ERROR -//HALTS WILL OCCUR IN THE EXTENDED FIELD, PRESS -/CONTINUE TO PROCEED WITH TESTING. THE INDEX -/REGISTERS 10 TO 17 INITIALLY CONTAIN 7777, AND -/ARE AUTO-INDEXED TO 0000 BY A TAD I INSTRUCTION, -/A HALT OCCURS IF THE REG. IS NOT INCREMENTED TO 0. -/THE TAD I WOULD HAVE THEN REFERENCED LOC, 7777, -/CONTAINS 7777. -/ - -DOAUTO, . /THIS LOC. IS NOT MOVED TO - /THE EXTENDED FIELD, - CLA - TAD I 10 - SZA -F46, HLT /ERROR, INDEX REG, 10 FAILED - TAD I 11 - SZA -F47, HLT /INDEX PEG, 11 FAILED - TAD I 12 - SZA -E48, HLT /12 FAILED - TAD I 13 - SZA -F49, HLT /13 FAILED - TAD I 14 - SZA -E50, HLT /14 FAILED - TAD I 15 - SZA -E51, HLT /15 FAILED - TAD I 16 - SZA -E52, HLT /16 FAILED - TAD I 17 - SZA -E53, HLT /17 FAILED - CDF 00 /SET DF TO FIELD 0 - CIF 00 /SET I.B., TO FIELD 0 - JMP GOTOO /EXIT TO FIELD 0 -/END OF TEST ROUTINE -/ -/ - -/CHECK SR 8, IF AN 8I IS BEING USED SR 8 MUST RE -/M, A 1, OTHERWISE 7. -CSR8, LAS - AND K10 - SZA CLA - JMP I XMEM /NEXT TEST - AND 7 -BELL TAD .-1 - TLS /RING BELL - TSF - JMP .-1 - JMP I XBGN /START OVER AT 200 -/ -XBGN, BEGIN -XMEM, NOMEM - -/ -*1600 -/ -/REFERENCE ALL 4K FIELDS NOT PRESENT, IF 32K -/IS PRESENT, THE TEST IS BY-PASSED, AND PROGRAM IS -/RESTARTED AT 200, EACH EACBD NOT PRESENT IS -/REFFERENCED BY THE PROGRAM WITH JMP, DCA AND TAD. -//THE PROGRAM MUST CONTINUE IN SEQUENCE/ THE TTY -/BE0LL WLL SIGNAL A SUCCESSFUL TEST, AND THE PRO- -/GRAM IS THEN RESTARTED AT 200, -NOMEM, CLA - TAD K7770 - DCA LOOP /TEST LOOP COUNTER - LAS /READ SR9-11 - AND K7 - CIA - TAD K7 /SUBTRACT MAX, POSSIPOSSIBLE - SNA - JMP I XBELL /32K PRESENT, CAN'T - DCA NOSTAK /SAVE NO, MISSING - DCA I XELL /CLEAR THE TLS IOT AT - /BELL+1 ELL+1RTOIBIT - /FALSE INDICATION, TLS - /IS RESTORED LATER WRONG - /ENTRY FROM NON-EXISTENT - /MEMORY MAY CAUSE A - /HANG-UP AT BELL+2 AND +3. - LAS /# OF FIELDS PRESENT - AND K7 - IAC /+1 TO GET 1ST MISSING - CLL - RTL /POSITION TO AC 6-8, - RAL - DCA NOFLD /1ST MISSING - TAD NOSTAK /# STACKS NOT HERE - CIA - DCA NOSTAK /USED AS COUNTER -/ -/ - TAD KCDF - TAD NOFLD /MISSING STACK - DCA CDF0S - TAD KCDF - TAD NOFLO - DCA CD1S -/ -/NOW SEE IF AN ODD OR EVEN NUMBER IS MISSING -/ - TAD NOSTAK - CIA - RAR - SNL CLA /L=1, FIRST READ 0.S, THEN ALWAYS - /ALL I'S - JMP POS+3 /0-1, ALWAYS READ ALL 1'S - JMS ALL0 /READ ALL 0 FROM 1ST -CNSTK, ISZ NOSTAK /DONE ALL MISSING IF SKIP - JMP POS /READ ALL 1'S FROM HERE ON - ISZ LOOP /DONE LOOPING IF SKIP - JMP I XNOM /REPEAT - TAD TTB - DCA I XELL /RESTORE TLS - JMP I XBELL /RING BELL -XOCM, NOMEM+3 -XELL, BELL+1 -XBELL, BELL -TTB, TLS -/ -POS, TAD CDF1S - TAD K10 /DF PLUS 1 - DCA CDF1S - JMS ALL1 /READ ALL 1'S - JMP CNSTK /CHECK DONE - -/ -/ROUTINE TO READ ALL 0'S. -/ -ALL0, 0 -CDF0S, CDF 00 /SET DF TO 1ST MISSING - CLA CMA - DCA 10 /10 AND 11 USE!' FOR ADDRESS - CMA - DCA 11 - DCA 2 /USE AS COUNTER - CMA - DCA I 10 /WRITE 1'S INTO NON-EXIS- - ISZ 2 /TENT FIELD, - JMP .-3 - TAD I 11 /READ NDN-EXIST. FIELD - SNA CLA /SHOULD = 0000 - JMP .+3 - TAD 11 -E54, HLT /ERROR, AN EXISTING FIELD - /WAS REFERENCED. C(AC)= - /ADDRESS REFERENCED - ISZ 2 - JMP E54-4 /READ NEXT -/ - CDF 00 - CIF 00 - JMP I ALL0 /EXIT -/ -/ROUTINE TO READ ALL 1'S -/ -ALL1, 0 /SET DF TD MISSING FIELD -CDF1S, CDF 00 - CLA CMA - DCA 10 /10 AND 11 USED FOR. ADDRESSING - CMA - DCA 11 - DCA 2 /USED AS COUNTER - DCA I 10 /WRITE 0'S - ISZ 2 - JMP .-2 - TAD 111 /READ 1'S FROM NO MEMORY - CMA - SNA - JMP .+4 - DMA -E57, HLT /7777 NOT READ, C(AC)= DATA - CLA /READ, C(11)- ADORESS, - ISZ 2 - JMP E57-5 - CDF 00 - CIF 00 - JMP I ALL1 /EXIT -/ -/READ SR9-11 -/ -NSTKS, 0 - LAS - AND K7 - CIA - DCA STKS - JMP I NSTKS -/ -/SET TTY FLAG -/ -TFLG, 0 - CLA - AND 15 - TAD .-1 - TLS - TSF - JMP .-1 - CLA - JMP I TFLG /EXIT -/ - $ - - - +/PDP-8, 8I EXTENDED MEMORY CONTROL TEST, PLACE NUMBER +/OF EXTENDED 4K FIELDS AVAILABLE IN SR9 TO 11, (UP To 7) +/IF USING AN 8I, PLACE SR8 ON A-1, OTHERWISE LEAVE 0. +/START PROGRAM AT 0200 + +/CONSTANTS 0 +CDF=6201 +CIF=6202 +RDF=6214 +RIF=6224 +RMF=6244 +RIB=6234 +*1 +/ + JMP I 1 + 0002 + 0003 +/ +JMPI0, JMP I 1 +ISZ0, ISZ 0 +XTPLG, TFLG +XSTKS, NSTKS +XRMF, TRMF +XRANS, TRANS +XAUTO, TAUTO +LOOP, 0 +NDF, 0 +STKS, 0 +DAT, 0 +NOSTAK, 0 +NOFLD, 0 +KE40M, E40-1 +KE40, E40 +KHLT, HLT +KCDF, 6201 +KCIF, 6202 +KCF1, CIF1-1 +XFD, EXFD +K1, 1 +K7, 7 +K11, 10 +K7777, 7777 +K7000, 7000 +K7707, 7707 +K7767, 7767 +K7757, 7757 +K7747, 7747 +K7737, 7737 +K7727, 7727 +K7717, 7717 +K7776, 7776 +K7775, 7775 +K7774, 7114 +K1773, 7773 +K7772, 7772 +K7771, 7771 +K7770, 7770 +POINT, ,+2 + + +K7S, .+1 +K7766, 7766 + 7755 +K7744, 7744 + 7733 + 7722 + 7711 + 7700 +XTDF, STDF +XTDF1, STDF+1 +KXFLD, EXFLD +KJMP, JMP I 2 + ENTER +K20, 20 +JMP0, JMP I KFLD0 +KFLD0, RTRN +KPTN, E45A+2 +XFIB, SFIB + +/TEST CDF AND RDF +/ +*200 +/ +BEGIN, CLA + DCA LOOP /LOOP COUNTER +/ +DF0 CDF 00 /DF 0 + RDF + SNA /SHOULD NOT SKIP + JMP 0F7 +E1, HLT /ERROR. CDF OR RDF FAILED + CLA + JMP DF0 /REPEAT +/ +DF7, TAD K7707 /7707 + CDF 70 /DF 7 + RDF + CMA /AC = 0 + SNA /SHOULD NOT SKIP + JMP OK1 +F2, HLT /CDF OR RDF FAILED + CLA + JMP DF7 +/ +0K1, ISZ LOOP /CHECK DONE + JMP DF0 +/ + CLA + DCA LOOP /LOOP GOUNVER +/ +DF1, TAD K7767 /7767 + CDF 10 /DF 10 + RDF + CMA /AC=0 + SNA + JMP DF2 +E3, HLT /CDF1 OR RDF FAILED + CLA + JMP DF1 +/ +DF2, TAD K7757 /7757 + CDF 20 /DF2 + RDF + CMA /AC=0 + SNA + JMP OK2 + +E4, HLT /CDF2 OR RDF FAILED + CLA + JMP DF2 +/ +OK2, ISZ LOOP /DONE IF SKIP + JMP DF1 + CLA + DCA LOOP +/ +DF3, TAD K7747 /7747 + CDF 30 /DF 3 + RDF + CMA /AC=0 + SNA + JMP DF4 +E5, HLT /CDF 3 OR RDF FAILED + CLA + JMP DF3 +/ +DF4, TAD K7737 /7737 + CDF 40 /DF 4 + RDF + CMA /AC=0 + SNA + JMP OK3 +E6, HLT /CDF 4 OR RDF FAILED + CLA + JMP DF4 +/ +OK3, ISZ LOOP /DONE IF SKIP + JMP DF3 +/ + CLA + DCA LOOP +/ +DF5, TAD K7727 /7727 + CDF 50 /DF5 + RDF + CMA /AC=0 + SNA + JMP DF6 +E7, HLT /CDF 5 OR RDF FAILED, + CLA + JMP DF5 +/ +DF6, TAD K7717 /7717 + CDF 60 /DF 6 + RDF + CMA /AC=0 + SNA + JMP OK4 + +E8, HLT /CDF 6 OR RDF FAILED + CLA + JMP DF6 +/ +OK4, ISZ LOOP /DONE WHEN SKIP + JMP DF5 +/NOW TEST INTERRUPT BUFFER (IB) BITS 9-11 WITH +/RIB, PI IS ENABLED, TELEPRINTER FLAG IS +/USED FOR INTERRUPT, + CDF 00 /DF0 + TAD JMPI0 /JMP I0=JMP I 0 + DCA 1 /C(1)=JMP I 0 + DCA LOOP + TSF /TEST TTY FLAG + JMS I XTFLG /SET FLAG +/ +IB0, ION /ENABLE PI + CLA + RIB /READ SF + SNA + JMP IB1 +E9, HLT /RIB FAILED + JMP IBO +/ +IB1, CDF 10 /DF 1 + ION + CLA + RDF /DF SHOULD BE AFTER A PI + SNA + JMP +E10, HLT + JMP IB1 /DF NOT CLEARED, OR NO PI + TAD K7776 + RIB /READ SF + CMA /AC=0 + SNA + JMP OK5 +E11, HLT /RIB OR SF FAILED + JMP IB1 +/ +OK5, ISZ LOOP /DONE WHEN SKIP + JMP IB0 + JMP I .+1 + IB2-2 + +*400 + CLA + DCA LOOP +/ +IB2, CDF 20 /DF 2 + ION + CLA + RDF /SHOULD BE 0 AFTER PI + SNA + JMP .+3 +E12, HLT /DF NOT CLEARED, OR NO PI + JMP IB2 +/ + TAD K7775 + RIB /AC=7777 + CMA /=0 + SNA + JMP IB3 + HLT /RIB OR SF FAILED + JMP IB2 +/ +IB3, CDF 30 /DF3 + ION + CLA + RDF /DF SHOULD BE CLEARED + SNA + JMP .+3 +E14, HLT /DF NOT CLEARED + JMP IB3 +/ + TAD K7774 + RIB /AC=7777 + CMA /AC=0 + SNA + JMP OK6 + HLT /RIB OR SF FAILED + JMP IB3 +/ +OK6, ISZ LOOP /DONE IF SKIP + JMP IB2 + CLA + DCA LOOP +/ +IB4, CDF 40 /DF 3 + ION + CLA + RDF /DF MUST BE 000 AFTER A PI + SNA /ERROR IF SKIP + JMP .+3 + +E16, HLT /DF NOT 0 AFTER PI + JMP IB4 + TAD K7773 /AC=7773 + RIB /AC=7777 + CMA /AC:0/AC=0 + SNA + JMP IB5 +E17, HLT /RIB OR SF FAILED + JMP IB4 +/ + CDF 50 /DF5 + ION + CLA + RDF /DF SHOULD=000 + SNA + JMP +E18, HLT /DF NOT 0 AFTER PI + JMP IB5 +/ + TAD K7772 /AC= 7772 + RIB / = 7777 + CMA / = 0 + SNA + JMP OK7 +E19, HLT /RIB OR SF FAILED + JMP IB5 +/ +OK7, ISZ LOOP /DONE IF 0 AND SKIP + JMP IB4 + CLA +/ + DCA LOOP +IB6, CDF 60 /DF6 + ION + CLA + RDF /DF MUST=0 AFTER PI + SNA + JMP .+3 + HLT /DF NOT 0 AFTER PI + JMP IB6 + +/ + TAD K7771 /,7771 + RIB /AC=7777 + CMA + SNA + JMP IB7 +E21, HLT /RIB OR SF FAILED + JMP IB6 +IB7, CDF 70 /DF 7 + ION + CLA + RDF /DF MUST = 0 AFTER PI + SNA + JMP .+3 +E22, HLT /DF NOT 0 + JMP IB7 +/ + TAD K7770 + RIB /AC=7777 + CMA + SNA + JMP OK8 +E23, HLT /RIB OR SF FAILED + JMP IB7 +/ +OK8, ISZ LOOP /DONE IF 0 + JMP IB6 + JMP I .+1 /NEW PAGE + 600 + +*600 +/NOW TEST DCA I AND TAD I TO ALL STACKS, NUMBER OF +/EXTENDED STACKS SHOULD BE IN SR9 TO 11, EACH STACK +/CONTAIN ITS DF# IN LOCATION 7000. + DCA LOOP +DCAI, JMS I XSTKS /READ SR 9-11 + IAC + DCA NDF /DF NUMBER = 1 TO START + TAD KCDF /6201 + TAD K10 + DCA .+1 /DF 001 TO START WITH +DFLD, CDF 00 /WILL BE INCREMENTED + TAD NDF /DF# + DCA I K7000 /PUT IN 7000 OF STACK + ISZ STKS /ALL STACKS WHEN 0 + SKP + JMP TADI / TAD TEST I + TAD K10 + TAD DFLD /INCR, CDF IOT + DCA DFLD + ISZ NDF + JMP DFLD /- +/ +TADI, JMS I XSTKS /SR9=11 AGAIN + IAC + DCA NDF /DF#=1N + TAD KCDF /6201 + TAD K10 + DCA .+1 +TFLD, CDF 00 + TAD I K7000 /AC=DF CONTENTS NOW + DCA DAT /SAVE TEMP + TAD DAT + CIA /2'S COMP + TAD NDF /BETTER BE EQUAL + CLA + JMP E24-1 /ERROR PATH + ISZ STKS /ALL WHEN 0 + JMP .+4 + ISZ LOOP /DONE WHEN 0 + JMP DCAI + JMP IBSF /NEXT TEST + TAD K10 + TAD TFLD /CDF IOT + 10 + DCA TFLD + ISZ NDF + JMP TFLD + TAD DAT /DATA AS READ +E24, HLT /AC=DATA READ. DF INDICATORS + /EQUAL FIELD WHERE GOT DATA, + /BOTH SHOULD BE EQUAL + CLA + JMP TFLD + +/ +/NOW TEST CIF PROGRAM INTERRUPT ENABLED. THE +/I.F. SHOULD ALWAYS = 00 SINCE A JMP OR JMS IS EX- +/EXCUTED AFTER THE CIF IOT. THE SF REGISTER IS +/*STET WITH THE RIB IOT AFTER THE INTERRUPT, +/& THE I.F. IS SET A HLT WILL OCCUR AT LOC. 1 +/IN THE EXTENDED FIELD. +/* WILL OCCUR AFTER THE ION IOT +/AFTER INTERRUPT OCCURS, PRESS CONT. TO REPEAT, +/ +/* LOCS. 1, 2, TO = ISZ 0, AND +/JMP I 0, RESPECTIVELY. +/ +xxx1, CDF 00 /SET DF to 000. + TAD ISZ0 /ISZ 0 + DCA 1 + TAD IMRIO /JMR I 0 + DCA 2 +/ +/ xx A HLT I dddd EXTENDED FIELDS, +/ + TAD I XSTRS + TAD KCDF + TAD K10 + DCA .+1 +xxx1, CDF 10 /FIELD 1 TO START WITH + TAD KH /KHLT = 7402 + DCA I K1 + ISZ STKS /ALL FIELDS WHEN + SKP + JMP .+3 + TAD HLTS + JMP HLTS-8 +/ +/ CIF TESTS +/ + CDF 000 + KSF + JMS I XTSF /SET TTY FLAG + DCA LOOP + JMS I XSTKS /READ SR 9-11 +/ +xxx1, CIF 10 /FIELD 0 + ION + NOP + JMP .+1 +xxx3, HLT /ERROR, NO PI OR INHIBIT PI + RIB /RETURN FROM LOC.3 + TAD K7767 + SMA + SNA CLA /OK IF NO SKIP + JMP OKF1 + RIB + HLT /I.B. OR S.F FAILED, C(AC)=C(IB) + CLA + JMP CIF1 /REPEAT +/ +OKF1, ISZ STKS /ALL FIELDS IF 0 + JMP CIF2 + ISZ LOOP /ALL DONE IF 0 + JMP CIF1-1 + JMP I XRMF /TEST RMF +/ +CIF2, CIF 20 /FIELD 2 + ION + NOP + JMP .+1 +E27, HLT /NO PI OR INHIBIT PI + RIB /RETURN FROM LOC,3 + TAD K7757 + CMA + SNA CLA /ERROR IF SKIP + JMP OKF2 + RIB +E28, HLT /IB OR SF FAILED, C(AC)=C(IB) + CLA + JMP CIF2 +/ +OKF2, ISZ STKS /ALL FIELDS IF 0 + JMP CIF3 + ISZ LOOP /AIL DONE IF 0 + JMP CIF1-1 + JMP I XRMF /TEST RMF +/ +CIF3, CIF 30 /FIELD 3 + ION + NOP + JMP .+1 +E29, HLT /NO PI OR INHIBIT PI + RIB /RETURN ROM LOC.3 + TAD K7747 + CMA + SNA CLA /ERROR IF SKIP + JMP OKF3 + RIB +E30, HLT /SF OP IB FAILED, C(AC)=C(IB) + CLA + JMP CIF3 +OKF3, ISZ STKS /ALL FIELDS IF 0 + JMP I .+4 + ISZ LOOP /ALL DONE IF 0 + JMP CIF1-1 + JMP I XRMF /TEST RMF + CIF4 +/ +/PDP-8,8I EXT,MEM, CONTROLL TEST-TAPE 2 +/ +*1000 +CIF4, CIF 40 /FIELD 4 + ION + NOP + JMP ,+1 +7402 £31, HLT /NO PI OR INHIRIT PI + RIB /JMP TO HERE FROM LOC, 3 + TAD K7737 + CMA + SNA CLA /AC MUST BE 0 + JMP OKF4 + RIB +E32, HLT /IA OR SF FAILED, C(AC)=C(IB) + CLA + JMP CIF4 +OKF4, ISZ STKS /ALL FIELDS IF 0 + JMP CIF5 + ISZ LOOP /ALL DONE IF 0 + JMP I KCF1 + JMP TRMF [TEST RMF +CIF5, CIF 50 /FIELD 5 + ION + NOP + JMP .+1 +E33, HLT /NO PI OR INHIBIT PI + RIB /JMP HERE FROM LOC, 3 + TAD K7727 + CMA + SNA CLA /ERROR IF SKIP + JMP OKF5 + RIB +E34, HLT /IR OR SF FAILED, C(AC)=C(IB) + CLA + JMP CIF5 +OKF5, ISZ STKS /DONE WHEN SKIP + JMP CIF6 + ISZ LOOP /512 VIMES IF SKIP + JMP I KCF1 + JMP TRMF /TEST RMF +CIF6, CIF 60 /FIELD 6 + ION + NOP + JMP .+1 +E35, HLT /NO PI OR INHIBIT PI + RIB /JMP HERE FROM LOC, 3 + TAD K7717 + CMA + SNA CLA /TO SKIP IS TO ERROR + JMP OKF6 + RIB + +E36, HLT /IR OR SF FAILED, C(AC)=C(IB) + CLA + JMP CIF6 +OKF6, ISZ STKS /SEE IF ALL FIELDS + JMP CIF7 + ISZ LOOP /ALL DONE WHEN SKIP + JMP I KCF1 + JMP TRMF /TEST RMF +CIF7, CIF 70 /FIELD 7 + ION + NOP + JMP ,+1 +E37, HLT /NO PI OR INHIBIT PI + RIB /RETURN HERE FROM LOC,3 + TAD K7707 + CMA + SNA CLA /ERROR IF SKIP + JMP OKF7 + RIB +E38, HLT /18 OR SF FAILED, C(AC)=C(IB) + CLA + JMP CIF7 +OKF7, ISZ LOOP /DONE IF SKIP + JMP I KCF1 + JMP TRMF /TEST RMF + +/TEST INTERRUPT INHIBIT +/FROM EACH FIELD, REFER TO HEADING TITLED "EXTENDED +/FIELD TEST RDUTINE", THIS ROUTINE IS PLACED IN +/EACH TESTED FIELD AT THE ADDRESSES SPECIFIED, THE +/INDICATED ERROR HALTS WILL BE IN THE EXTENDED +/FIELD, PRESS CONT, TO RECOVER, ONLY 1 FIELD WILL +/CONTAIN THE ROUTINE AT ANY ONE TIME, OTHER FIELDS +/HILL CONTAIN ALLO'S, THE ROUTINE IS REPLACED WITH +/HALTS AFTER COMPLETION, THE PORTIONS OF THE FIELD +/WHICH DO NOT CONTAIN THE ROUTINE ARE SET TO 0000 +/BEFOREHAND. +/ +/ +/SETUP FIELDS TO TEST, POINTERS, ETC,, +/ +TRMF, JMS I XSTKS /READ SR9-11 + TAD KCDF /6201 + DCA .+6 + TAO .+5 + TAD K10 + DCA .+3 + CMA + OCA 10 + CDF 10 + DCA I 10 /PLACE 0'S IN EACH FIELD FROM + TAD 10 /LOC, 0 TO 7777, + CMA + CLA + JMP .-4 + ISZ STKS + JMP TRMF+3 + +/ +/NOW PUT A HLT IN EACH FIELD THE SAME +/LOCATION AS E40, BELOW. +/ + JMS I XSTKS /READ SR 9-11 + TAD KCDF + TAD K10 + DCA .+1 +CHDF, CDF 00 + TAD KE40 /KE40 = ADDRESS OF E40. + DCA LOOP /SAVE TEMPORARILY + TAD KHLT /KHLT = 7402 (HLT) + DCA I LOOP + ISZ STKS /DONE ALL STACKS WHEN SKIP + SKP + JMP .+3 + TAD CHDF + JMP CHDF-2 +/ + CDF 00 +STRMF, TSF /CHECK TTY FNAG + JMS I XTFLG /GO SET IT + TAD K7707 + DCA LOOP + TAD POINT + DCA K7S /POINTER FOR K7700 TO K7766 + JMS I XSTKS /REAP SR 9-11 + TAD KCDF /6201 + TAD K10 /10 + DCA STDF + TAD KCIF /6202 + TAD K10 /10 + DCA STDF+1 + TAD STDF+1 + DCA I XFD + JMS I XRANS /PUT TEST ROUTINE INTO FIE' 0 X +/ +STDF, CDF 10 /FIELD 1 TO START WITH + CIF 10 + JMP .+1 /SHOULD ENTER EXTENDED FIELD + /AFTER THIS JMP, HLT IF NOT + NOP +E40, HLT /ERROR, PI FAILED + /C(AC) = C(I.B.) + JMP STDF /REPEAT SAME TEST. +/ + +/ENTER HERE AFTER P1 FROM EXTENDED BANK +*1200 +/ +ENTER, RDF /DF SHOULD BE 000 . + SNA /ERROR IF SKIP + JMP .+4 /CHECK C(SF) +E41, HLT /AC=C(DF) + CLA + JMP I XTDF /REPEAT TEST + CIF 10 /SET I.B. TO FIELD 1 + RMF /I.B. NOW EQUAL TO SF + RIB /READ IB + CIF 00 + CDF 00 + TAD I K7S + CMA + SNA CLA /ERROR IF SKIP + JMP CKP0 + RMF + RIB +E42, HLT /ERROR RMF AND PI WORKED, BUT + CLA /I,B, NOT CORRECT AFTER RMF, + /AC=C(IB) + CDF 00 + CIF 00 + JMP I XTDF /BACKUP A PAGE AND REPEAT +/ +CKRC, TAD KE40 /KE40=ADDRESS OF E40 + IAC /MAKE E40+1 + CIA + TAD 0 /COMPARE TO C(0) + SNA CLA /SHOULD NOT SKIP + JMP .+5 /ALL OK SETUP FOR NEXT FIELD + TAD 0 +E43, HLT /ERROR, ALL WORKED, BUT + /C(PC) WAS NOT=TO E40+1 + /AFTER PI IN EXTENDED + /FIELD, C(AC)=C(0),F0, + /CHECK FOR P1 NOT INHIBITED, + /OR AUTO-INDEX REG, + /12 FAILING IN THE EXTENDED FIELD. + CLA + JMP I XTDF /BACKUP AND REPEAT +/SETUP FOR NEXT FIELD + ISZ STKS /DONE ALL IF SKIP + JMP .+5 + ISz LOOP /DONE LOOPING IF SKIP + JMP I .+2 /REPEAT ALL AGAIN + JMP I XFIB /EXIT TO NEXT TEST + STRMF+4 /BACK TO LAST PAGE + +/ +/SET LAST TESTED FIELD TO ALL 0'S AND PUT A +/HLT IN RESPECTIVE ADDRESS OF E40 +/ + CLA CMA + DCA 10 + TAD I XTDF /CODF X/DF SIDE + DCA .+1 + CDF 10 /F1 TO START WITH + DCA I 10 + TAD 10 + CMA + SZA CLA /CLEARD IF SKIP + JMP .-4 + CDF 00 + TAD I XTDF /CDF X0 AT STDF + DCA .+1 + CDF 10 + TAD KHLT /=7402 (HLT) + DCA I KE40 /KF40=ADDRESS OF E40 + CDF 00 /RESTORE DF + /INCREMENT CDF AND CIF HIT'S AT SUF STSTDFSTDF+1 + /TO NEXT FIELD. + TAD I XTDF TDF X0 AT STDF + TAD K10 + DCA I XTDF + TAD I XTDF1 /CIF XP AT STDF + TAD K10 + DCA I XTDF11 + TAD I XTDF1 + DCA EXFD D + ISZ K75 + JMS TRANS /PUT ROUTINE IN NEW + JMP I XTDF /TEST NEW FIELD + + /EXTENDED FIELD TEST ROUTINE +/ + +/THE FOLLOWING INSTRUCTIONS ARE PLACED IN +/EACH EXTENDED FIELD TESTED, THE NUMBERS IN THE +/COMMENTS FIELD CORRESPOND TO THE +/MEMORY LOCATIONS IN THE TESTED FIELLD, LOCATIONS +/0 THRU 11 ARE USED FOR AN ERROR ROUTINE +/IN CASE FIELD 0 IS NOT ENTERED AFTER AN +/INTERRUPT, THE EXTENDED FIELD SHOULD BE /ENTERED AT LOCATION E40-1 WHICH CORRESPONDS +/TO F40-1 IN FIELD 0. +/ +/EXTENDED FIELD INSTRUCTIONS: +/ +EXFLD, 0 /0 + TAD 0 /1 + JMP /IF LOC. 0 NOT :0 PI DIDN'T + SNA /ENTER FIELD 0 + JMP .+5 /3 +E44, HLT /4, INTERRUPTED TO THIS FIELD + /INSTEAD OF FIELD 0,C(Ac)=c(0)0,C(AC)=C(0) + /WHICH SHOULD BE E40+1 + /IF NOT, CHECK LOC, 7777,IT + /MUST =: 5412 (JMP I12). + CLA /5 + DCA 0 /6 + JMP I 20 /7, C(20) :E40 +E45, HLT /10, THE JMP I 12 AT LOC, + /7777 WAS NOT EXECUTED, + /OR INTERRUPT FAILED, IF + /NO INTERRUPT, LOCATION 12 + /NOW CONTAINS 0 INSTEAD + /OF ADDRESS E40, + JMP .-4 /11, REPEAT IN THIS FIELD + E40 /12, AUTO—INDEXS TAUTO-INDEXS + /IN F 0 IF THE JMP I 12 + /WORKS, +/LOCS. 13 TO 17 ARE ALL 0'S +/ + E40 /20, EQUALS E40 IN F0, +/ +/LOCS, 21 TO E40-2 ARE ALL 0'S +/ +EXFD, CIF 10 /FIELD 1 TO START WITH + ION /LOC, E40, SEE SYMBOL TABLE + /FOR E40. +/L0CS, E40+1 TO 7776 ARE ALL 0'S +/ + JMP I 12 /7777, PI SHOULD OCCUR, + /AFTER THIS INSTRUCTION, + /TO FIELD 0, + +/ +/ROUTINE TO TRANSFER TEST ROUTINE TO PROPER FIELD +/ +TRANS, 0 + TAD KJMP /KJMP=JMP I 2 + DCA 1 /IN FIELD 0 + TAD KNTR /KNTR = LOC, ENTER + DCA 2 /OF FIELD 0 + TAD KXFLD /KXFLD = LOC, EXFLD + DCA 10 + DCA 11 + TAD K7766 /1-10 DECIMAL + DCA 0 /SAVE + TAD I XTDF /CDF X0 IN STDF + DCA .+3 + CDF 00 + TAD I 10 +TRFLD, CDF 10 /F1 TO START WITH + DCA I 11 /PUT IN EXTENDED FIELD + ISZ 0 /DONE LOCS 1 TO 12 IF SKIP + JMP .-5 + TAD TRFLD + DCA .+3 + CDF 00 + TAD I 10 + CDF 10 + DCA I K20 /PUT E40 IN LOC. 20 + CDF 00 + TAD TRFLD + DCA .+2 + TAD I 10 + CDF 10 + DCA I KE40M /PUT CIF X0 IN E40-1 + CDF 00 + TAD TRFLD + DCA .+2 + TAD I 10 + CDF 10 + DCA I KE40 /ION TO LOC, E40 + CDF 00 + TAD TRFLD + DCA .+2 + TAD I 10 + CDF 10 + DCA I K7777 /PUT JMP 112 IN 7777 + CDF 00 + JMP I TRANS /EXIT + +*1400 +/TEST SF WITH AN RMF TOT, AN INTERRUPT IN FIELD C,1 TS CHEATED, AFTER +/WHICH, THE DE AND IB REGISTERS ARE SET To FIELD 1, +/THE SF SHOULD CONTAIN FIELD 0, THE TEST +/THEN MAKES SURE THE IR TS CLEARED, THEN SET 8T ISSUTNG AN RMF, +/FOLLOWED BY A JMP I K7000. IF THE IB TS CLEARED, THE JMP GOES TO 700) 10 FIELD +/IF THE IB AND SF ARE INCLUSIVE OR'D, THE JMP GOTS To 7000 IN FIFO 1, AND +/A HALT OCCURS THERE. RESTART FROM 140/ AFTER AN ERROR, THE TEST IS LOOPED +/512 TIMES. +/ +SFIB, TSF /SEE IF FLAG IS SET, + jMS I x11:1_,; /SET IT + TAD K7000 /7000 + DCA LIMP + CDF 1E! /DF=FIFLD 1 + TAD KHLT /HLT + DCA I K7000 /7000, FIELD 1=HLT + CUR 0E7 + TAD J /0F=0 + MP2 + /JMP2=JMP I KFLD0 + DcA I /7000, FIELD 0=JMP I KFLD0 + /KFLDO=LOC, RTRN + TAD KJMP /KJMP=JMP 12 + DCA 1 + TAD KRTN /KRTN=LOC, E45A+2 + DCA 2 +/ +/BEGIN TEST +/ + ION /ENABLE PI + NOP +xxx, HLT /ERROR NO PI + JMP SFIB /REPEAT TEST +/ +/RETURNS HERE AFTER PI +/ + CLA + CDF 00 /DF=FIELD1 + CIF 10 /IB=FIELD1 + RMF /IB SHOULD=FIELD0 + JMP I K7000 /IF SHOULD=FIELD0 +/ +RTRN, ISZ LOOP /WORKED OK + JMP E45A-2 /LOOP + JMP TAUTO /DONE, GO TO NEXT TEST + + +/TEST ALL AUTO-INDEX REGISTERS IN EACH EXTENDED FIELD, +/IDENTICAL TEST ROUTINES ARE PERFORMED FROM EACH FIELD, +/AND ERROR HALTS DCCUR IN THE FIELD CURRENTLY RUNNING +/THE ROUTINE. RRESS CONT, TO RESUME TESTING. EACH +/FIELD CONTAINS ALL 2'S EXCEPT FOR THE AREA OCCUPIED +/BY THE TEST ROUTINE. FIELD 0 IS RE-ENTERED +/EACH TEST, AND THE NEXT SEQUENTIAL FIELD +/THEN ENTERED, REFER TO THE HEADING "AUTO- +/INDEX TEST" FOR THE SEQUENCE OF ORERATIONS. +/ +TAUTO, CDF 00 + TAD K7707 + DCA LOOP /LOOP COUNTER + JMS I XSTKS /READ SR 9-11 + TAD KCDF /6201 + DCA DFN +NEXDF, TAD DFN + TAD K10 /INCREMENT DF + DCA DEN +/ +/ CLEAR ONE FIELD TO 0 +/ + DMA + DCA 10 + DCA 0 /USE LOC, 0 FOR A COUNTER +DF0, CDF 10 /FTELD 1 TO START WITH + DCA I 10 + ISZ 0 + JMP .-2 + CDF 00 +/ +/NOW PUT TEST ROUTINE IN THE EXTENDED FIELD +/ + TAD DOAUTO /1ST LOC. OF ROUTINE MINUS 1 + DCA 10 /SOURCE + TAD K7744 /=28 DECIMAL + DCA 0 /USE. LOC. 0 AS COUNTER + TAD DOAUTO + DCA 11 /DESTINATION + TAD DEN /CDF X0 + DCA .+3 +MOVE, CDF 00 + TAD I 10 + CDF 10 /FIELD 1 TO START + DCA I 11 + ISZ 0 /MOVE WHEN SKIP + JMP MOVE + +/ +/NOW SET AUTO-I REGS 10 TO 17 TO 7777, +/ + TAD K7770 /-8 DECIMAL + DCA 0 + TAD K7 /7 + DCA 10 + CMA /7777 + DCA I 10 + ISZ 0 /10 TO 17 = 7777 WHEN SKIP + JMP .+3 + CMA + DCA I K7777 /PUT 7777 IN LOC, 7777 OF EXTENDED + RDF /READ D.F. + TAD KCIF /6202 + DCA .+1 + CIF 10 /FIELD 1 TO START + JMS I FILDX /FILDXR EXTENDED FIELD + /515 OCTAL LOCS, BEFORE THE + /TAD 110 INO10UCTION, + /THIS IS A TEST OF THE + /DEFER BIT, 500 US DELAY +/ +/ENTER FIELD 0 FROM EXTENDED FIELD HERE, +/ +GOTO0, ISZ STKS /DONE ALL WHEN SKIP + JMP NEWDF /SETUP FOR NEXT + ISZ LOOP /ALL DONE IF SKIP + JMP NEWDF_3 /REPEAT ALL + JMP CSR8 /CSR8K SR 8 +FILDX, DOAUTO-515 + +/ +/ AUTO-INDEXED TEST +/ +/THE ROUTINE WILL PE PLACED IN THE SAME RESPECTIVE +/LOCATIONS IN EACH EXTENDED FIELD, ANY ERROR +//HALTS WILL OCCUR IN THE EXTENDED FIELD, PRESS +/CONTINUE TO PROCEED WITH TESTING. THE INDEX +/REGISTERS 10 TO 17 INITIALLY CONTAIN 7777, AND +/ARE AUTO-INDEXED TO 0000 BY A TAD I INSTRUCTION, +/A HALT OCCURS IF THE REG. IS NOT INCREMENTED TO 0. +/THE TAD I WOULD HAVE THEN REFERENCED LOC, 7777, +/CONTAINS 7777. +/ + +DOAUTO, . /THIS LOC. IS NOT MOVED TO + /THE EXTENDED FIELD, + CLA + TAD I 10 + SZA +F46, HLT /ERROR, INDEX REG, 10 FAILED + TAD I 11 + SZA +F47, HLT /INDEX PEG, 11 FAILED + TAD I 12 + SZA +E48, HLT /12 FAILED + TAD I 13 + SZA +F49, HLT /13 FAILED + TAD I 14 + SZA +E50, HLT /14 FAILED + TAD I 15 + SZA +E51, HLT /15 FAILED + TAD I 16 + SZA +E52, HLT /16 FAILED + TAD I 17 + SZA +E53, HLT /17 FAILED + CDF 00 /SET DF TO FIELD 0 + CIF 00 /SET I.B., TO FIELD 0 + JMP GOTOO /EXIT TO FIELD 0 +/END OF TEST ROUTINE +/ +/ + +/CHECK SR 8, IF AN 8I IS BEING USED SR 8 MUST RE +/M, A 1, OTHERWISE 7. +CSR8, LAS + AND K10 + SZA CLA + JMP I XMEM /NEXT TEST + AND 7 +BELL TAD .-1 + TLS /RING BELL + TSF + JMP .-1 + JMP I XBGN /START OVER AT 200 +/ +XBGN, BEGIN +XMEM, NOMEM + +/ +*1600 +/ +/REFERENCE ALL 4K FIELDS NOT PRESENT, IF 32K +/IS PRESENT, THE TEST IS BY-PASSED, AND PROGRAM IS +/RESTARTED AT 200, EACH EACBD NOT PRESENT IS +/REFFERENCED BY THE PROGRAM WITH JMP, DCA AND TAD. +//THE PROGRAM MUST CONTINUE IN SEQUENCE/ THE TTY +/BE0LL WLL SIGNAL A SUCCESSFUL TEST, AND THE PRO- +/GRAM IS THEN RESTARTED AT 200, +NOMEM, CLA + TAD K7770 + DCA LOOP /TEST LOOP COUNTER + LAS /READ SR9-11 + AND K7 + CIA + TAD K7 /SUBTRACT MAX, POSSIPOSSIBLE + SNA + JMP I XBELL /32K PRESENT, CAN'T + DCA NOSTAK /SAVE NO, MISSING + DCA I XELL /CLEAR THE TLS IOT AT + /BELL+1 ELL+1RTOIBIT + /FALSE INDICATION, TLS + /IS RESTORED LATER WRONG + /ENTRY FROM NON-EXISTENT + /MEMORY MAY CAUSE A + /HANG-UP AT BELL+2 AND +3. + LAS /# OF FIELDS PRESENT + AND K7 + IAC /+1 TO GET 1ST MISSING + CLL + RTL /POSITION TO AC 6-8, + RAL + DCA NOFLD /1ST MISSING + TAD NOSTAK /# STACKS NOT HERE + CIA + DCA NOSTAK /USED AS COUNTER +/ +/ + TAD KCDF + TAD NOFLD /MISSING STACK + DCA CDF0S + TAD KCDF + TAD NOFLO + DCA CD1S +/ +/NOW SEE IF AN ODD OR EVEN NUMBER IS MISSING +/ + TAD NOSTAK + CIA + RAR + SNL CLA /L=1, FIRST READ 0.S, THEN ALWAYS + /ALL I'S + JMP POS+3 /0-1, ALWAYS READ ALL 1'S + JMS ALL0 /READ ALL 0 FROM 1ST +CNSTK, ISZ NOSTAK /DONE ALL MISSING IF SKIP + JMP POS /READ ALL 1'S FROM HERE ON + ISZ LOOP /DONE LOOPING IF SKIP + JMP I XNOM /REPEAT + TAD TTB + DCA I XELL /RESTORE TLS + JMP I XBELL /RING BELL +XOCM, NOMEM+3 +XELL, BELL+1 +XBELL, BELL +TTB, TLS +/ +POS, TAD CDF1S + TAD K10 /DF PLUS 1 + DCA CDF1S + JMS ALL1 /READ ALL 1'S + JMP CNSTK /CHECK DONE + +/ +/ROUTINE TO READ ALL 0'S. +/ +ALL0, 0 +CDF0S, CDF 00 /SET DF TO 1ST MISSING + CLA CMA + DCA 10 /10 AND 11 USE!' FOR ADDRESS + CMA + DCA 11 + DCA 2 /USE AS COUNTER + CMA + DCA I 10 /WRITE 1'S INTO NON-EXIS- + ISZ 2 /TENT FIELD, + JMP .-3 + TAD I 11 /READ NDN-EXIST. FIELD + SNA CLA /SHOULD = 0000 + JMP .+3 + TAD 11 +E54, HLT /ERROR, AN EXISTING FIELD + /WAS REFERENCED. C(AC)= + /ADDRESS REFERENCED + ISZ 2 + JMP E54-4 /READ NEXT +/ + CDF 00 + CIF 00 + JMP I ALL0 /EXIT +/ +/ROUTINE TO READ ALL 1'S +/ +ALL1, 0 /SET DF TD MISSING FIELD +CDF1S, CDF 00 + CLA CMA + DCA 10 /10 AND 11 USED FOR. ADDRESSING + CMA + DCA 11 + DCA 2 /USED AS COUNTER + DCA I 10 /WRITE 0'S + ISZ 2 + JMP .-2 + TAD 111 /READ 1'S FROM NO MEMORY + CMA + SNA + JMP .+4 + DMA +E57, HLT /7777 NOT READ, C(AC)= DATA + CLA /READ, C(11)- ADORESS, + ISZ 2 + JMP E57-5 + CDF 00 + CIF 00 + JMP I ALL1 /EXIT +/ +/READ SR9-11 +/ +NSTKS, 0 + LAS + AND K7 + CIA + DCA STKS + JMP I NSTKS +/ +/SET TTY FLAG +/ +TFLG, 0 + CLA + AND 15 + TAD .-1 + TLS + TSF + JMP .-1 + CLA + JMP I TFLG /EXIT +/ + $ + + +