/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 1 0002 0003 / *20 / JMPI0, JMP I 0 ISZ0, ISZ 0 XTFLG, 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 K10, 10 K7777, 7777 K7000, 7000 K7707, 7707 K7767, 7767 K7757, 7757 K7747, 7747 K7737, 7737 K7727, 7727 K7717, 7717 K7776, 7776 K7775, 7775 K7774, 7774 K7773, 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 KNTR, ENTER K20, 20 JMP2, JMP I KFLD0 KFLD0, RTRN KRTN, 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 DF7 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 / OK1, 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 IB0 / IB1, CDF 10 /DF 1 ION CLA RDF /DF SHOULD BE AFTER A PI SNA JMP .+3 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 / IB5, CDF 50 /DF5 ION CLA RDF /DF SHOULD=000 SNA JMP .+3 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 SZA 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. / IBSF, CDF 00 /SET DF to 000. TAD ISZ0 /ISZ 0 DCA 1 TAD JMPI0 /JMP I 0 DCA 2 / / xx A HLT I dddd EXTENDED FIELDS, / JMS I XSTKS TAD KCDF TAD K10 DCA .+1 HLTS, CDF 10 /FIELD 1 TO START WITH TAD KHLT /KHLT = 7402 DCA I K1 ISZ STKS /ALL FIELDS WHEN SKP JMP .+3 TAD HLTS JMP HLTS-2 / / CIF TESTS / CDF 000 TSF JMS I XTFLG /SET TTY FLAG DCA LOOP JMS I XSTKS /READ SR 9-11 / CIF1, CIF 10 /FIELD 0 ION NOP JMP .+1 E25, HLT /ERROR, NO PI OR INHIBIT PI RIB /RETURN FROM LOC.3 TAD K7767 CMA SNA CLA /OK IF NO SKIP JMP OKF1 RIB E26, 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 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 TAD .+5 TAD K10 DCA .+3 CMA DCA 10 CDF 00 DCA I 10 /PLACE 0'S IN EACH FIELD FROM TAD 10 /LOC, 0 TO 7777, CMA SZA 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 CKPC 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 / CKPC, 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 XTDF1 TAD I XTDF1 DCA EXFD ISZ K7S 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 SNA /IF LOC. 0 NOT :0 PI DIDN'T /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 XTFLG /SET IT TAD K7000 /7000 DCA LOOP CDF 10 /DF=FIFLD 1 TAD KHLT /HLT DCA I K7000 /7000, FIELD 1=HLT CDF 00 /DF=0 TAD JMP2 /JMP2=JMP I KFLD0 DCA I K7000 /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 E45A, HLT /ERROR NO PI JMP SFIB /REPEAT TEST / /RETURNS HERE AFTER PI / CLA CDF 10 /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 NEWDF, TAD DFN TAD K10 /INCREMENT DF DCA DFN / / CLEAR ONE FIELD TO 0 / CMA DCA 10 DCA 0 /USE LOC, 0 FOR A COUNTER DFN, 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 DFN /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 GOTO0 /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 NOFLD DCA CDF1S / /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 XNOM, 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 CDF1S, CDF 00 /SET DF TD MISSING FIELD 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 I 11 /READ 1'S FROM NO MEMORY CMA SNA JMP .+4 CMA 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 / $