.NLIST .SBTTL OPERATING INSTRUCTIONS .NLIST MC,MD,CND .LIST ME,TOC .IF NDF GTPFPP .TITLE GENERAL TEST PROGRAM .IFF .TITLE GENERAL TEST PROGRAM (WITH FLOATING POINT) .ENDC .ENABLE ABS .LIST ;THIS PROGRAM IS A MULTI-DEVICE EXERCISER ;THIS PROGRAM IS NOT INTENDED AS EITHER ;A COMPLETE TEST OF THE PROCESSOR, OR AS A DETAILED ;DIAGNOSTIC FOR ANY DEVICES THAT HAVE BEEN SELECTED ;THIS PROGRAM REQUIRES A MINIMUM OF 8KW OF MEMORY FOR OPERATION ;COPYRIGHT 1970, 1971, 1972, 1973, DIGITAL EQUIPMENALICOG LTOO GI,RTY ;B P)(S,-ALICOG#LV MO T BIT ARLE CTOP UET;S ) SP-(R CL K ACSTE ORSTRE ;P ,SKKACST #OV M 02 2ND;A 02,2N1GIBE #OV M 0 20E ORSTRE ;0 207,13 #OV M ETES RT:XI EV QIFT ON;CH NCRA BS-YE ; P1ND EEQ B T?EPCC ATOAUS HI TIS ; LGVF QTBTS T EPCC ATOAUR OFYRIVEK ICQUT NOF ICHANBR ; P1ND EEQ B 42C LOF OTSENNTCOT GE ; R12,#4 @OV M R0SSR CL F OFT IRNTU ; +6 .EQ B LEABILVA AISN IOATNTMEEG SIF ;1 G+FION,C10 #TBBI ) IT BCERA TPTCEEX (PSR EACL ; PSR CL S TUTA SORSSCERO PT ENRRCUE AV;S P EM,TPSV MO: ASDPEN 11KTF OSE UOR FCKHE;C E NGHA CDEMOR SOESOCPRR FOK ECCH ; ONTILASO IOR FCKHE;C E ASLEREH TCWI SUS BOR FCKHE;C R TONIMOL NAERXT ETOT XI EOR FCKHE;C E ICRVSES AS POFD EN ; SSPAF OND ETLBT.S -4 .PL B NEDOR FOT AI;W R CS@TB ST T DECOK ISERST AUTTPOU ;R DB@T*,#'V MO 4 .-L BP R CS@TB ST T LFT PUUT;O BRTD,@12#2V MO 4 .-L BP R CS@TB ST T CRT PUUT;O BRTD,@15#2V MO 4 .-L BP Y US BOT NRESUE AK MG;LA FOR FITWA ; SRTC @TBTS L EL BNDSET NOO ;D S PAND ENE B c@ @ @ @ @ @ dSd8v`n9d @ `0&j2@ @ @ @ @ @ @ @ &`8f7cr1@ &@ ` p2@ @ @ @ @ @ @ @ r hdr9d0@`2@ j2@@ @ @ @ @ @ @ @ 6r0Fl8@ @ `0j7@ @ @ @ @ @ @ @ 96Up6n1Vh1@@0@ d06@ @ @ @ @ @ @ @ @ jSd1v`hd @ h0`0@ @ @ @ @ @ @ @ V`0f+f$@ &@ ` `0T@ @ @ @ @ @ @ @ r hhr08bW@`2@ T CORP., MAYNARD MASS. 01754 ;FOR NORMAL OPERATION RUN WITH ALL SWITCHES DOWN ;SR15=1 UP---HALT ON ERROR ;SR14=1 UP---SCOPE LOOP - PROCESSOR TEST ;SR13=1 UP---INHIBIT PRINT OUT ;SR12=1 UP---FREEZE PROCESSOR IN CURRENT MODE ;SR11=1 UP---INHIBIT SUB-PROGRAM ITERATION(WATCHDOGS ARE NOT CHECKED) ;SR10=1 UP---INHIBIT PROCESSOR TEST ;SR09=1 UP---INHIBIT MEMORY EXPANSION ;SR08=1 UP---ISOLATION--BY DROPOUT ;SR07=1 UP---SWITCH ERROR MESSAGES TO HIGH SPEED PUNCH ; (USE ONLY IF HIGH SPEED PUNCH TES RTI LOGICAL:JSR PC,(R1) ;RETURN TO MONITOR NOP ;FOR ACT11 NOP NOP JMP @#200 ;DDP RETURN TO START ENDP1: TST ISFLG ;IF ISOLATION IS SELECTED BEQ ENDP2 HLT ;TYPE STATUS OF SYSTEM JSR PC,ISOLAT ;ISOLATE NEXT DEVICE ENDP2: INC PASCT INC PASCNT ;INCREMENT PASS COUNT MOV PASCNT,LIGHTS ;DISPLAY PASS COUNT MOV #STACKK,SP ;SET EXEC STACK POINTER CLR -(SP) ;PRESET 'NEW' STATUS. TST 42 ;IF 42=0, HIGH SPEED DUMP BEQ ENDPAX CMP PASCT,PASEX ;IF AUTO ACCEPT OR DDP NGNIUN RISE ICEV DUTTPOUF ;I SRTC,@00#1T BI P HSR OTY TTOT PUUT OIFE INRMTEDE ;P LSSP,HPCR JS: LLBE TELEMPCOS AS PONK ISERST ATLBT.S DCEN .T IO M RAOGPRS HIO TET GTOR TOEC VOT IHE TUPT SET US MERUSE TH ;Y LAEROVD UNROKGAC BERUSA O TLLCAE THS IONTIUCTRNS IXTNEE TH ; R TEINPOE OPSCW NEP UET;S RNTUREC,VEOT IOV M DEMOD ANS TUTA;S R SOESOCPRT ENRRCUT AAYRLVE OCEVIER;S VLTLIOS, POV M LLCAY LAEROVD UNROKGAC BTLBT.S NTOUIC0,00#4V MO P FPTP GDF NIF . D TECUXE ENGEI BERFT AREHES RNTU cd1f@4@ @ @ @ @ @ @ @ Fp0l7@ @ `0Vj5@ @ @ @ @ @ @ @ 96U`n1Vh16@@0@ p@@ @ @ @ @ @ @ @ jSd9v`Vr0d @ `0v`@ @ @ @ @ @ @ @ V`0&f7+`d@ &@ ` Gd2d@ @ @ @ @ @ @ @ r hhj9d06@`2@ `3@0@ @ @ @ @ @ @ @ Fp0V&j@ @ `0`0@ @ @ @ @ @ @ @ 96Udn1Vh1F@ @0@ r4@ @ @ @ @ @ @ @ @ jS&d9 TING IS INHIBITED) ;SR06=1 UP---RESTART PROGRAM ON ERROR ;IF THE PROCESSER UNDER TEST IS AN 11/45, SR12=0 ENABLES THE FOLLOWING: ; PASS 0,14,ETC KERNEL MODE,R0-R5,NO 'T' TRAP ; PASS 1,15,ETC KERNEL MODE,R0-R5,'T' TRAP ; PASS 2,16,ETC KERNEL MODE,R10-R15,NO'T' TRAP ; PASS 3,17,ETC KERNEL MODE,R10-R15,'T' TRAP ; PASS 4,20,ETC SUPERVISOR MODE,R0-R5,NO 'T' TRAP ; PASS 5,21,ETC SUPERVISOR MODE,R0-R5,'T' TRAP ; PASS 6,22,ETC SUPERVISOR MODE,R10-R15,NO 'T' TRAP ; PASS 7,23,ETC SUPERVISOR MOCHAIN MODE, BNE ENDPAX ;BRANCH IF NOT ALL MODES HAVE BEEN TESTED CLR PASCT ;ALL MODES HAVE BEEN RUN- GO TO THE BR EXIT ;MONITOR RETURN ENDPAX: BIT #10000,SR ;FREEZE IN CURRENT MODE? BEQ ENDPA1 ;NO- BRANCH MOV TEMP,(SP) ;YES- SET UP TO RESTART WITH BR DTREL ;CURRENT STATUS ENDPA1: MOV PASCT,R0 CMP R0,PASEX BLT 1$ CLR PASCT CLR R0 1$: ASL R0 ;CALCULATE OFFSET ADD PASPAR,R0 ;GET TABLE STARTING ADDRESS MOV (R0),(SP) ;LOAD PARAMETERS IN 'NEW' STATUS CMP PASCNT,#2 ;REY OREM MEDNDTEEX ; 3:ANXP E E OPSC: TLESHT EDILFAY OREM MOW LTO: EF;R LT H +4 .EQ B -2T1ESLTL,VAOT#R @MP C EDILFAE ATOT;R LT H +4 .EQ B TEBYE ATOT RCTREOR COR FREHEK ECCH ;-2T1ESLT6,4551#1P CM T HL 4 .+C BV T SET NOS WAT BIC ; T HL 4 .+S BC D TETAROS IREHE ;1 1-STTE LRBRO: T1ESLT UEAL VNSAINTCOE ER;H REHE,#563412 #OV M IT BRYAR CET;S CC SL:STTE L 0 E=ER H RYMOMEF OSTREE THO TIN ;D DEANXP EBEL IL WATTHT ES THE TISS HI;T 561415: ALTVRO RECOLO @MP J NTOUIC@#0,00#4V MOcv`Gj4d @ `0p5@ @ @ @ @ @ @ @ V`&f7+p@ &@ ` n4@ @ @ @ @ @ @ @ r hjh8b@`2@ `0f@1@ @ @ @ @ @ @ @ Vr0Fb9@ @ `06j@ @ @ @ @ @ @ @ 96Udn4Vh1@@0@ h16@ @ @ @ @ @ @ @ @ jS&d9v`Gbd @ `0h@ @ @ @ @ @ @ @ V`&f7+r@ &@ ` f1@ @ @ @ @ @ @ @ r hjh9b0G@1`2@ b1@5@ @ @ @ @ @ DE,R10-R15,'T' TRAP ; PASS 10,24,ETC USER MODE,R0-R5,NO 'T' TRAP ; PASS 11,25,ETC USER MODE,R0-R5,'T' TRAP ; PASS 12,26,ETC USER MODE,R10-R15,NO 'T' TRAP ; PASS 13,27,ETC USER MODE,R10-R15,'T' TRAP ;IF THE KT11 IS PRESENT, ALL PASSES EXCEPT 0 AND 1 ARE RUN WITH ;THE KT11 ON IF NOT INHIBITED. (SW05 MUST BE DOWN IN THE 3RD ;DEVICE INHIBIT SETTING TO ALLOW USE OF THE KT11) ;NOTE: THE PASS COUNT IS GIVEN IN OCTAL AND IS DISPLAYED IN THE ;DISPLAY REGISTER (PDP-11/45 ONLY). ;IF THE PROCESIF LESS THAN 2 PASSES COMPLETE BLO DTREL ;DON'T ALLOW KT11 BIT #40,SR3 ;KT11 INHIBITED? BEQ SEGOPT ;NO- GO TURN ON IF AVAILABLE DTREL: BIT #2,SR1 ;CHECK FOR MULTIPROCESSORS BNE NOOPT ;BRANCH AROUND IF SET RESET ;RELEASE SWITCH CLR #BUSWT ;ALLOW OTHER PROCESSOR TO REQUEST SWITCH BUSWT=.-2 DEC BUSWT BNE .-4 BIT #20000,@DTCSR1 ;MONITOR NON-NEUTRAL BIT BNE .-6 ;WAIT FOR IT TO CLEAR MOV #1,@DTCSR1 ;REQUEST SWITCH TSTB @DTCSR1 ;WAIT FOR IT TO CONNECT BPL .-4 E OPSC 3 NDPAEX@#P JME OR CGHHI ;+ 1)(R3,ANXP#EV MO M RO FRNTUREP UET;S )+R1,(37#1V MO L UL FISY OREM MLLTIH NCRA;B 1 ANXP EOSBL E ORHC1, RMP C N2PAEXE BN L UL FISE OR;C +2TLESHT,#R2P CM L IL TTLESHTD ANL STTE;L )+R1,()+R2 (OV M2:ANXP EN EETWBEE OD CHE TVEMO ;2 ,RTLESLT #OV M1:ANXP ED ANXP EES;Y R1E,OROC LOV M NDPAEXT N'DO- O ;N 3 ANXP EISBH ? KW 8ANTHE OR;M RECO,HRECOLOP CM: NDPAEX RNTURED,ANXP#EV MO T UNCO#I,@#2V MO T ES TCHITSWE BLDOUSH ; N3PAEXE BN N IONSPAEXY OREM MOR FSTTE ;c@ @ Vp0F&f@ @ d0d9@ @ @ @ @ @ @ @ 96UdnĜb2W@@0@ n1@ @ @ @ @ @ @ @ @ jS&f8v@`6d @ d1f@ @ @ @ @ @ @ @ V`&fc`2@ &@ ` Fr2$@ @ @ @ @ @ @ @ r hnf29d0v@1`2@ `0V@:@ @ @ @ @ @ @ @ vp06&d@ @ `0`5@ @ @ @ @ @ @ @ 97Ud5vnƜp1F@@0@ n0j@ @ @ @ @ @ @ @ @ pS&`8v`̆jd @ `0t0@ @ SOR UNDER TEST IS A PDP-11/40, SR12=0 ENABLES THE FOLLOWING: ; PASS 0,4,ETC KERNEL MODE, NO 'T' TRAP ; PASS 1,5,ETC KERNEL MODE, 'T' TRAP ; PASS 2,6,ETC USER MODE, NO 'T' TRAP ; PASS 3,7,ETC USER MODE, 'T' TRAP ;IF THE KT11 IS PRESENT, ALL PASSES EXCEPT 0 AND 1 ARE RUN WITH THE ;KT11 ON IF NOT INHIBITED. ;SPECIAL DELETE SWITCHES-SET RESPECTIVE SWITCH TO A 1 ;TO INHIBIT INITIALIZATION OF DEVICE ;NOTE: IF A NON-EXISTENT DEVICE IS SELECTED IN ANY OF THE ;THREE DEVICE INHIBIT SETTINGS, ACLR TEMP ;DELAY FOR DEVICES INC TEMP ;TO INITIALIZE BNE .-4 BIS #1000,@DTCSR1 ;ISSUE SWITCHED BUS INIT BIT #1000,@DTCSR1 ;WAIT FOR INIT TO FINISH BNE .-6 MOV #STA,-(SP) ;SWITCH IS CONNECTED - RESTART PROGRAM BR EXOPT NOOPT: MOV #PROCTS,-(SP) ;RESTART EXOPT: RTI ;PROGRAM TRTRET: RTI ;RETURN TO PROGRAM FROM TRAP HALT ;RTI FAILED TRTVEC=14 ;TRACE TRAP VECTOR ;KT11 OPTION SEGOPT: BITB #10,CONFIG+1 ;CHECK IF AVAILABLE BEQ DTREL ;RETURN IF NOT AVAILABLE CL0 00#1R, SIT B RYMOMEF OSTREO TONSIANXP ERECOE PLIM SDO ; T ES TONSIANXP ERYMOMEL TTSB . : ATDWEN 5:T1WA AGFLD RECUOCT UPRRTEIN1 M1;D 0M:CDAT WG LA FEDURCC OPTRUERNT IARLE;C + C)(PR CL R ROER, SSPAS HI TPTRUERNT INO ; T HL 4 .+E BN T UPRRTEIN1 M1 DID;D M CDAT WST T OGHDTCWAK ECCHT NOO ;D 5 T1WAI BM D TEECEL SOT NAS W11DMF ;I 2 RST T4:T1WA AGFLD RECUOCT UPRRTEIN1 P1;D 0P:CDAT WG LA FEDURCC OPTRUERNT IARLE;C + C)(PR CL R ROER, SSPAS HI TPTRUERNT INO ; T HL 4 .+E BN T UPRRTEINc@ @ @ @ @ @ `&f7cfT@ &@ ` `0@ @ @ @ @ @ @ @ r hj`)b06@5`2@ p06@@ @ @ @ @ @ @ @ Vr0h3@ @ `06l0j@ @ @ @ @ @ @ @ 97Ud5&n9Ɣp16@@0@ f86@@ @ @ @ @ @ @ @ pS&f9v@̆jd @ `06Ø@ @ @ @ @ @ @ @ `6fc`@ &@ ` f34@ @ @ @ @ @ @ @ r hj`9b @8`2@ p06@@ @ @ @ @ @ @ @ Vd0vn@ @  BUS ERROR TRAP WILL OCCUR AND ;THE PROGRAM WILL HALT AT LOCATION 6 ;AFTER STARTING ADDRESS HAS BEEN LOADED ;SW00=1 INHIBIT DT11 BUS SWITCH SELECTION ;SW01=1 INHIBIT MULTI-PROCESSOR TESTING ;SW02=1 INHIBIT PC11 HSP ;SW03=1 INHIBIT PC11 HSR ;SW04=1 INHIBIT KW11-L LINE CLOCK ;SW05=1 INHIBIT CR11 CARD READER ;SW06=1 INHIBIT KW11-P PROGRAMMABLE REAL TIME CLOCK ;SW07=1 INHIBIT LP11 LINE PRINTER --- IF LINE PRINTER IS USED, MUST RESTART AT 600 ;SW08=1 INHIBIT SECTION ONE AND TWO OF THE BUS TESTER (R SSR0 ;DISABLE IF ON BIT #1,CONFIG ;IF PROCESSOR IS PDP-11/40 BEQ SEG40 ;MAP FOR 11/40 JSR R5,MAP ;MAP FOR PDP-11/45 6 UISAR0 UDSAR0 SISAR0 SDSAR0 KISAR0 KDSAR0 JSR R5,MAPA 6 UISDR0 UDSDR0 SISDR0 SDSDR0 KISDR0 KDSDR0 BR SEGALL SEG40: JSR R5,MAP ;MAP FOR 11/40 2 UISAR0 KISAR0 JSR R5,MAPA 2 UISDR0 KISDR0 SEGALL: MOV #SEGERR,SEGVEC ;LOAD KT11 ERROR VECTOR CLR SEGVEC+2 INC SSR0 ;ENABLE KT11 BR DTREL ;RETURN ;KT11 ERROR SEGERR: MOV 1 P1 DID;D P CDAT WST T OGHDTCWAK ECCHT NOO ;D 4 T1WAE BN D TEECEL SOT NAS W11DPF ;I R20,0040 #IT B3:T1WA AGFLD RECUOCT UPRRTEIN1 D0;A 0D:CAAT WG LA FEDURCC OPTRUERNT IARLE;C + C)(PR CL R ROER, SSPAS HI TPTRUERNT INO ; T HL 4 .+E BN T UPRRTEIN1 D0 AID;D D CAAT WST T OGHDTCWAK ECCHT NOO ;D 3 T1WAE BN D TEECEL SOT NAS W01ADF ;I 2 ,R00#2T BI: 12AT WG LA FEDURCC OPTRUERNT I11RK ; 0 : RKTCWA AGFLD RECUOCT UPRRTEINR EACL ; )+PC (LR C ORRR ES,AS PISTHT UPRRTEINO ;N LT H +4 .NE B PTRUc`0f@ @ @ @ @ @ @ @ 97Ud5nĜr1v@ @0@ f89@ @ @ @ @ @ @ @ @ pS&d3v`̗p4d @ `06f@ @ @ @ @ @ @ @ `6f7bp@ &@ ` f3Ĝ@ @ @ @ @ @ @ @ r hjl29d @`2@ p06@@ @ @ @ @ @ @ @ Vr0&r1@ @ `0fb@ @ @ @ @ @ @ @ 97Ud5VnƜ`2@@0@ f86@@ @ @ @ @ @ @ @ pS&f9v@nd @ `06Ø@ @ @ @ @ @ @ @ `FACTORY USE ONLY) ;SW09=1 INHIBIT SECTION THREE AND FOUR OF THE BUS TESTER (FACTORY USE ONLY) ;SW10=1 INHIBIT RF11 DISK ;SW11=1 INHIBIT UDC11 ;SW12=1 INHIBIT RC11 DISK ;SW13=1 INHIBIT TC11 DECTAPE ;SW14=1 INHIBIT KL11 TTY OUTPUT ;SW15=1 INHIBIT KL11 TTY INPUT ;NOTE: IF ALL SWITCHES ARE DOWN FOR THIS FIRST DEVICE INHIBIT ;SETTING, THE PREVIOUSLY CHOSEN DEVICES WILL BE TESTED ;AFTER FIRST HALT ;SW00=1 INHIBIT DC11 #1 .... VECTOR 300 ;SW01=1 INHIBIT DC11 #2 .... VECTOR 310 ;SW02=1 INHIBIT AASSR0,SSR0T ;SAVE SSR0 INDICATORS MOV #7,SSR3 ;ENABLE D SPACES MOV #1,SSR0 ;CLEAR FLAGS JMP SEGLVL ;GO HALT SSR0T: 0 ;KT11 ERROR FLAGS ARE SAVED HERE ;KT11 REGISTER ADDRESSES SSR0=177572 SSR3=172516 UISDR0=177600 UDSDR0=177620 UISAR0=177640 UDSAR0=177660 SISDR0=172200 SDSDR0=172220 SISAR0=172240 SDSAR0=172260 KISDR0=172300 KDSDR0=172320 KISAR0=172340 KDSAR0=172360 ;SETUP KT11 REGISTERS MAP: MOV (R5)+,R2 MAP1A: MOV (R5)+,R0 ;GET ADDRESS OF PAR TO BE SET ERNT I11RKD DI ; RKTCWAT TS G DOCHAT WCKHE COT NDO ; 12AT WNE B EDCTLESET NOS WA1 K1 RIF ; R20,#2T BI: 10AT WG LA FEDURCC OPTRUERNT I11FC;A 0F:CAAT WG LA FEDURCC OPTRUERNT IARLE;C + C)(PR CL R ROER, SSPAS HI TPTRUERNT INO ; T HL 4 .+E BN T UPRRTEIN1 C1AFD DI ; AFTCWAT TS G DOCHAT WCKHE COT NDO ; 10AT WNE B EDCTLESET NOS WA1 C1AFF ;I 2 ,R10 #IT B9:AT WG LA FEDURCC OPTRUERNT I#21 C1;D 02:DCAT WG LA FEDURCC OPTRUERNT IARLE;C + C)(PR CL R ROER, SSPAS HI TPTRUERNT INO ; T HL 4 .+E BN c'f7cr0@ &@ ` f34@ @ @ @ @ @ @ @ r hj`9d @9`2@ p06@@ @ @ @ @ @ @ @ Vn0&b@ @ `0f@ @ @ @ @ @ @ @ 97Ud5nĜb2@ @0@ f89@ @ @ @ @ @ @ @ @ pS&d8v`fd @ d0'`0@ @ @ @ @ @ @ @ `6f7bp1$@ &@ ` f3Ĝ@ @ @ @ @ @ @ @ r hjb39d @2`2@ p06@@ @ @ @ @ @ @ @ Vr0v&p0@ @ `0`@ @ @ @ @ @ !11 DAC WITH SCOPE OPTION ;SW03=1 INHIBIT AFC11 ANALOG MULTIPLEXER ;SW04=1 INHIBIT RK11 DISK ;SW05=1 INHIBIT DR11-B GENERAL INTERFACE (NPR) ;SW06=1 INHIBIT KE11-A (PDP-11/20) EXTENDED ARITHMETIC ELEMENT ;SW07=1 INHIBIT AD01-D A/D CONVERTER ;SW08=1 INHIBIT RP11 DISK ;SW09=1 INHIBIT RESERVED (FOR BUS LATENCY TESTER) ;SW10=1 INHIBIT DN11 DIGITAL DIALER ;SW11=1 INHIBIT TM11 MAGNETIC TAPE ;SW12=1 INHIBIT M792YA (DIODE BOOT FOR PC11,KL11) ;SW13=1 INHIBIT M792YB (RF, RC, RK AND TC11) BOOT ; OR MR11"UP MOV #7,R1 ;GET REGISTER COUNT CLR R3 MOV #200,R4 MAP1: MOV R3,(R0)+ ;LOAD PAR ADD R4,R3 ;SETUP TO LOAD NEXT PAR SOB R1,MAP1 ;LOAD NEXT PAR IF NOT DONE MOV #7600,(R0)+ ;SET LAST PAR SOB R2,MAP1A ;GET NEXT GROUP RTS R5 MAPA: MOV (R5)+,R2 MAP2A: MOV (R5)+,R0 ;GET PDR ADDRESS MOV #8.,R1 MAP2: MOV #77406,(R0)+ ;PDR= 4K R/W UP SOB R1,MAP2 SOB R2,MAP2A RTS R5 ;EXIT ;PDP-11/45 PASS PARAMETER TABLE PAS45: 000000 ;STATUS =0 000020 ;THE 'T' BIT 00400 T UPRRTEIN1 #11DCD DI ; C2TDWAT TS G DOCHAT WCKHE COT NDO ; T9WAE BN D TEECEL SOT NAS W#21 C1 DIF ; R22, #IT B8:AT WG LA FEDURCC OPTRUERNT I#11 C1;D 01:DCAT WG LA FEDURCC OPTRUERNT IARLE;C + C)(PR CL R ROER, SSPAS HI TPTRUERNT INO ; T HL 4 .+E BN T UPRRTEIN1 #11DCD DI ; C1TDWAT TS G DOCHAT WCKHE COT NDO ; T8WAE BN D TEECEL SOT NAS W#11 C1 DIF ; R21, #IT B7:AT WG LA FEDURCC OPTRUERNT I11RC ; 0 : RCTCWA AGFLD RECUOCT UPRRTEINR EACL ; )+PC (LR C ORRR ES,AS PISTHT UPRRTEINO ;N LT$c@ @ 97UhnƜp1f@@0@ h0v@@ @ @ @ @ @ @ @ rSF`5v@dd @ f0d4@ @ @ @ @ @ @ @ `4&fcr1@ &@ ` h@ @ @ @ @ @ @ @ r hdr9d0@0`2@ b6@4@ @ @ @ @ @ @ @ &r0&h0@ @ `0fp0@ @ @ @ @ @ @ @ 97UhnƜd2f@@0@ d1@ @ @ @ @ @ @ @ @ rSFb9v`&d7d @ `0`@ @ @ @ @ @ @ @ `4fc`24@ &@ ` j@ @ %-DB BULK BOOTSTRAP LOADER ;SW14=1 INHIBIT DP11 SYNCHRONOUS LINE UNIT --- VECTOR 320 ;SW15=1 INHIBIT DM11 ASYNCHRONOUS MULTIPLEXER --- VECTOR 330 ;AFTER SECOND HALT ;SW00=1 INHIBIT KG11-A REDUNDANCY CHECK OPTION ;SW01=1 INHIBIT CD11 CARD READER ;SW02=1 INHIBIT DR11-A, DR11-C GNENERAL INTERFACE (INTERRUPT ONLY) ;SW03=1 INHIBIT DM11-BB MODEM CONTROL MULTIPLEXER ;SW04=1 INHIBIT VR20 2 COLOR SCOPE OPTION ;SW05=1 INHIBIT KT11 MEMORY MANAGEMENT OPTION ;SW06=1 INHIBIT RESERVED ;SW07=1 INHIBIT RESERVE&0 ;THE REGISTER SET BIT 004020 ;REGISTER SET & T BIT 040000 ;SUPERVISOR MODE 040020 ;SUPERVISOR MODE & T BIT 044000 ;SUPERVISOR & REG SET 044020 ;SUPERVISOR,REG SET & 'T' BIT 140000 ;USER MODE 140020 ;USER MODE & 'T' BIT 144000 ;USER MODE, REG SET 144020 ;USER MODE,REG SET & 'T' BIT ;PDP-11/40 PASS PARAMETER TABLE PAS40: 000000 000020 140000 140020 ;PDP-11/10,20 PASS PARAMETER TABLE PAS20: 000000 000020 PASPAR: 0 ;POINTER TO PASS H +4 .NE B PTRUERNT I11RCD DI ; RCTCWAT TS G DOCHAT WCKHE COT NDO ; T7WAE BN D TEECEL SOT NAS W11RCF ;I R10,0010 #IT B6:AT WT UPRRTEIND REFEDE1 C1UD ; 0 : UDTCWA AGFLD RECUOCT UPRRTEINR EACL ; )+PC (LR C ORRR ES,AS PISTHT UPRRTEINO ;N LT H +4 .NE B URCC OPTRUERNT IEDEREF DID;D D CUAT WST T PTRUERNT ITEIAEDMM I11DC;U 0I:CUAT WG LA FEDURCC OPTRUERNT IARLE;C + C)(PR CL R ROER, SSPAS HI TPTRUERNT INO ; T HL 4 .+E BN R CUOCT UPRRTEINE ATDIMEIMD DI ; UITCWAT TS G DOCHAT WCKHE COT N(c@ @ @ @ @ @ r hj7l9d0@`2@ b0f@5@ @ @ @ @ @ @ @ Vp0&f@ @ `0p3@ @ @ @ @ @ @ @ 9FUlnƜd2F@ @0@ f1V@ @ @ @ @ @ @ @ @ pTvb6v`Fp4d @ b0fn7@ @ @ @ @ @ @ @ `f+f@ &@ ` jT@ @ @ @ @ @ @ @ r hf8r08bV@0`2@ j2@2@ @ @ @ @ @ @ @ 6p`6@ @ `0fj5@ @ @ @ @ @ @ @ 9GUn3n9Vh1V@@0)D ;SW08=1 INHIBIT RESERVED ;SW09=1 INHIBIT RESERVED ;SW10=1 INHIBIT RESERVED ;SW11=1 INHIBIT RESERVED ;SW12=1 INHIBIT RESERVED ;SW13=1 INHIBIT RESERVED ;SW14=1 INHIBIT RESERVED ;SW15=1 INHIBIT RESERVED ;AFTER HALT SET SWITCHES FOR NORMAL RUNNING (ALL DOWN) CONTINUE ;THE FORMAT FOR ALL ERROR PRINTOUTS IS SEVEN COLUMNS OF DATA ;THE SIGNIFICANCE OF EACH COLUMN IS DESCRIBED BELOW ;COLUMN 1- PC+2 OF THE TEST THAT FAILED ;COLUMN 2- PROCESSOR STATUS AT THE TIME OF FAILURE ;COLUMN 3- PROCESSOR* PARAMETER TABLE PASEX: 0 ;PASS COMPLETE COUNT PASCT: 0 PASTAB: PAS20 PAS20 PAS40 PAS45 EXITCT: 2 2 4 14 .SBTTL ERROR HANDLER ;ENTERED WITH SYSTEM TRAP CALL(ERROR) AT LEVEL 7 ;PRINT OUT THE ERROR INFORMATION PRINT: TST PRFLAG ;IS ROUTINE BUSY BEQ .+4 RTI ;YES IT IS BUSY INC PRFLAG ;PRINT ROUTINE BUSY BIC #140,PS ;DROP TO LEVEL 4 BIT SR,#20000 ;TEST FOR INHIBIT PRINT OUT BEQ .+4 ;BRANCH TO PRINT BR PRINT1 ;INHIBIT, RETURN TO MAIN STREAM MOV SP,SAVSPADO ; T6WAE BN D TEECEL SOT NAS W11DC UIF ;1 ,R0040 #IT B5:AT WG LA FEDURCC OPTRUERNT I11RF ; 0 : RFTCWA AGFLD RECUOCT UPRRTEINR EACL ; )+PC (LR C ORRR ES,AS PISTHT UPRRTEINO ;N LT H +4 .NE B PTRUERNT I11RFD DI ; RFTCWAT TS G DOCHAT WCKHE COT NDO ; T5WAE BN D TEECEL SOT NAS W11RFF ;I R10,00#2T BI: T4WA AGFLD RECUOCT UPRRTEIN ; 4ONTIEC SERSTTES BU ; 0 : DBTCWA AGFLD RECUOCT UPRRTEINR EACL ; )+PC (LR C ORRR ES,AS PISTHT UPRRTEINO ;N LT H +4 .NE B PTRUERNT I 4ONTIEC SERSTTES BU,c@ b2@@ @ @ @ @ @ @ @ pTv`8v`Fp6d @ `0f@ @ @ @ @ @ @ @ `f+l@ &@ ` d24@ @ @ @ @ @ @ @ r hf8r08bf@`2@ f0&@2@ @ @ @ @ @ @ @ 6pn6@ @ `0r@ @ @ @ @ @ @ @ 9GUn3n9Vh1@ @0@ l0F@@ @ @ @ @ @ @ @ pTv`8v`Fl8d @ `0r@ @ @ @ @ @ @ @ `f+lT@ &@ ` b6@ @ @ @ @ @ @ @ r hf8- TEST IN PROGRESS AT THE TIME OF FAILURE ;COLUMN 4- STACK OFFSET ;COLUMN 5- FIRST DEVICE SELECTION (SR1) REGISTER ;COLUMN 6- SECOND DEVICE SELECTION (SR2) REGISTER ;COLUMN 7- THIRD DEVICE SELECTION (SR3) REGISTER ;NOTE: IF A POWER FAILURE OCCURS, AN ERROR MESSAGE WILL BE ;TYPED IN THE STANDARD FORMAT AFTER POWER UP OCCURES. ;THE PROGRAM WILL THEN BEGIN EXECUTION OF PROCESSOR TEST ;AND WILL COMPLETE THE PROCESSOR TEST BEFORE RE-INITIALIZING ;SELECTED DEVICES. THIS DELAY IS NECESSARY TO ;ALLOW . MOV (SP),SAVPC ;PC OF FAILING ROUTINE MOV 2(SP),SAVPS ;PS OF ERROR CONDITION JSR PC,HSPLSP TSTB @TCSR BPL .-4 MOV #215,@TDBR ;CR TSTB @TCSR BPL .-4 MOV #212,@TDBR ;LINE FEED MOV R2,SAVR2 ;SAVE R2 MOV R3,SAVR3 ;SAVE R3 MOV R4,SAVR4 ;SAVE R4 MOV SAVPC,R2 JSR PC,PRTAB ;PRINT OCTAL NUMBER MOV SAVPS,R2 JSR PC,PRTAB ;PRINT OCTAL NUMBER MOV RETURN,R2 ;CPU TEST ID JSR PC,PRTAB MOV #STACK,R2 SUB SAVSPA,R2 ;HOW FAR STACK POSITIVE JSR PC,PRTAB PREG1: MOV @#SR1,RD DI ; DBTCWAT TS G LA FEDURCC OPTRUERNT;I 3 N IOCTSER TEES TUS;B 0B:CCAT WG LA FEDURCC OPTRUERNT IARLE;C + C)(PR CL R ROER, SSPAS HI TPTRUERNT INO ; T HL 4 .+E BN T UPRRTEIN3 N IOCTSER TEES TUS BID;D B CCAT WST T OGHDTCWAK ECCHT NOO ;D 4 AT WNE B EDCTLESET NOE ER;W 4 D AN3 S ONTIEC SERSTTES BUF ;I R10,00#1T BI: T3WA AGFLD RECUOCT UPRRTEIN ; 2ONTIEC SERSTTES BU ; 0 : BBTCWA AGFLD RECUOCT UPRRTEINR EACL ; )+PC (LR C ORRR ES,AS PISTHT UPRRTEINO ;N LT H +4 .NE B PTRU0cr08bg@`2@ `0g@6@ @ @ @ @ @ @ @ 6pr6@ @ `0p@ @ @ @ @ @ @ @ 9GUn3n9Vh1@ @0@ d0@ @ @ @ @ @ @ @ @ pTv`8v`Fbd @ `0&j@ @ @ @ @ @ @ @ `f+n$@ &@ ` r5d@ @ @ @ @ @ @ @ r hf8r08bv@3`2@ d0@4@ @ @ @ @ @ @ @ 6pd7@ @ `0fj@ @ @ @ @ @ @ @ 9GUn3n9Vh1&@@0@ j1@ @ @ @ @ @ 1MECHANICAL DEVICES TO RECOVER FROM THE POWER FAILURE. ;NOTE: THE PROCESSOR STACK POINTER WILL BE SET TO LOCATION ;"STACK" EACH TIME THAT THE PROCESSOR TEST IS STARTED. ;AT THE END OF EACH PASS, THE PROCESSOR STACK POINTER WILL ;BE SET TO LOCATION "STACKK". IF THE PROCESSOR ;(PDP-11/45) IS OPERATING IN OTHER THAN KERNEL MODE ;THE CURRENT MODE STACK POINTER WILL BE INITIALIZED TO "STACK" ;AND THE KERNEL STACK POINTER WILL BE SET TO "STACKK". ;NOTE: CORE EXPANSION MAY BE RUN WITH A GTP OVERLAY,22 ;PRINT SR1 JSR PC,PRTAB PREG2: MOV @#SR2,R2 ;PRINT SR2 JSR PC,PRTAB PREG3: MOV @#SR3,R2 JSR PC,PRTAB MOV SAVR2,R2 ;RESTORE REGISTERS MOV SAVR3,R3 MOV SAVR4,R4 PRINT1: TST SR ;TEST FOR HALT SWITCH BPL PRINT2 MOV R0,-(SP) ;SAVE R0 ON STACK MOV SAVPC,R0 HALT ;HALT ON ERROR SET MOV (SP)+,R0 PRINT2: BIT #400,SR BEQ .+6 JSR PC,ISOLATE BIT #100,SR BNE PRINT3 CLR PRFLAG ;CLEAR PRINT ROUTINE BUSY RTI ;RETURN TO MAIN STREAM PRINT3: JMP @#ST ;TO RESTART PROG ERNT I 2ONTIEC SERSTTES BUD DI ; BBTCWAT TS G LA FEDURCC OPTRUERNT;I 1 N IOCTSER TEES TUS;B 0B:CAAT WG LA FEDURCC OPTRUERNT IARLE;C + C)(PR CL R ROER, SSPAS HI TPTRUERNT INO ; T HL 4 .+E BN T UPRRTEIN1 N IOCTSER TEES TUS BID;D B CAAT WST T OGCDAT WCKHE COT NDO ; EDCTLESET NOE ER;W 3 AT WNE B 2ND A 1NSIOCTSER TEES TUS BIF ; R10,40 #IT B2:AT W0 : KPTCWA )+PC (LR C LT H +4 .NE B KPTCWAT TS G DOCHAT WCKHE COT NDO ; T2WAE BN D TEECEL SOT NAS W-P11KWF ;I R1,S00#1T BI: T1WA AG4c@ @ @ pTv`8v`Fld @ `0vj5@ @ @ @ @ @ @ @ `f+nT@ &@ ` j2@ @ @ @ @ @ @ @ r hf8b8b@2`2@ h2f@@ @ @ @ @ @ @ @ 6r`8@ @ `0fj@ @ @ @ @ @ @ @ 9GUn3n1Vh1F@ @0@ l6v@@ @ @ @ @ @ @ @ pTvd9v`Gh9d @ `0'l@ @ @ @ @ @ @ @ `&f7+r@ &@ ` n14@ @ @ @ @ @ @ @ r hf8h8b@`2@ d0@3@ 5 IF THAT ;OVERLAY DOES NOT REQUIRE MORE THAN 4K OF CORE. ;NOTE: THE PROGRAM IS INITIALIZED WITH A SPECIFIC DEVICE ; REGISTER AND VECTOR ADDRESS ASSIGNMENT FOR FLOATING ; VECTOR DEVICES. TO ACCOMODATE OTHER CONFIGURATIONS, ; APPROPRIATE CHANGES SHOULD BE MADE IN THE "DEVICE ; REGISTER AND VECTOR TABLE". ;NOTE: THE FOLLOWING OPTIONS WILL BE TESTED UNCONDITIONALLY IF AVAILABLE ;PDP-11/40 EIS ;PDP-11/40 FIS ;PDP-11/45 FPP ;NOTE: DECTAPE UNIT 1 IS NOW SELECTED FOR TEST BY THIS PROGRAM. ; T6 HSPLSP: MOV TTCSR,TCSR MOV TTDBR,TDBR BIT SR,#200 BEQ HPLPEX MOV HPCSR,TCSR MOV HPDBR,TDBR HPLPEX: RTS PC SAVSPA: 0 SAVR2: 0 SAVR3: 0 SAVR4: 0 TDBR: 177566 ;DATA TCSR: 177564 ;PS SAVPC: 0 SAVPS: 0 ;CONVERT DATA TO ASCII AND TYPE PRTAB: MOV #LISTND,R4 ;SET UP POINTER TO DATA STORAGE MOV #6,ASCNT ;6 DIGITS WILL BE EXTRACTED PRTAB1: MOV R2,R3 ;GET DATA TO BE CONVERTED BIC #177770,R3 ;EXTRACT 1 OCTAL DIGIT ADD #260,R3 ;CONVERT TO ASCII MOV R3,-(R4) ;SAVE ASCIFLD RECUOCT UPRRTEINL 1-W1;K 0L:CKAT WG LA FEDURCC OPTRUERNT IARLE;C + C)(PR CL R ROER, SSPAS HI TPTRUERNT INO ; T HL 4 .+E BN T UPRRTEINL 1-W1 KID;D L CKAT WST T OGHDTCWAK ECCHT NOO ;D 1 AT WNE B EDCTLESET NOS WAL 1-W1 KIF ; R10,#2T BI 2 ,RR2 SOV M R11,SRV MO H TCWAND EMP J GSDOCHAT WCKHE COT NDO ; +6 .EQ B EDITIBNH IRE ANSIOATERITF ;I SR0,00#4T BI C ND.E CHATDWENP JM S OGHDTCWAK ECCH ; +6 .EQ B T NOO D1,G=FLQVF ;I G FLQVB ST T PPPFGT1!A1TP GDFF .I NTOUICR CL: CHAT W G IN8c@ @ @ @ @ @ @ 6rFb9@ @ `0'h@ @ @ @ @ @ @ @ 9GUn3n4Vh1&@ @0@ l1@@ @ @ @ @ @ @ @ pTvd9v`Gnd @ `0h@ @ @ @ @ @ @ @ `&f7+rd@ &@ ` n64@ @ @ @ @ @ @ @ r hf8h8b@`2@ `0f@7@ @ @ @ @ @ @ @ 6rFf9@ @ `0h@ @ @ @ @ @ @ @ 9GUn3n4Vh17@@0@ d0V@@ @ @ @ @ @ @ @ pTvd9v`Gdd EO SELECT A DIFFERENT DRIVE, PUT THE DRIVE SELECTION CODE ; IN BITS 8-10 OF LOCATION "TCDRV" ;NOTE: THE INPUTS OF AFC11 CHANNELS TO BE TESTED ; MUST EACH BE CONNECTED TO A VOLTAGE SOURCE NOT GREATER ; THAN +OR- 5 MILLIVOLTS .SBTTL DEFINITIONS ;REGISTER DEFINITIONS R0=%0 R1=%1 R2=%2 R3=%3 R4=%4 R5=%5 SP=%6 ;PROCESSOR STACK POINTER PC=%7 ;PROGRAM COUNTER FPS= %0 AC0= %0 AC1= %1 AC2= %2 AC3= %3 AC4= %4 AC5= %5 ;LOCATION DEFINITIONS PS=177776 ;PROCESSOR STATUS GI DIGIT ASR R2 ;POSITION NEXT DIGIT ASR R2 ;TO BE EXTRACTED ASR R2 DEC ASCNT ;IF ALL DIGITS HAVE NOT BEEN BNE PRTAB1 ;EXTRACTED, CONTINUE BIC #6,(R4) XLIST: MOV #7,ASCNT ;SEND 7 CHAR TO TTY WAIT2: TSTB @TCSR BPL WAIT2 MOV (R4)+,@TDBR DEC ASCNT BEQ HDFHM ;FINISH PRINTING GET NXT NUM BR WAIT2 HDFHM: TSTB @TCSR BPL .-4 RTS PC ;HEAD FOR HOME ASCNT: 0 LIST: 0 0 0 0 0 0 LISTND: 240 ;SEPARATOR ;SCOPE LOOP ROUTINE ENTERED BY USER TRAP SCOPEB: MOV RETURNNRUE ARS CEVIDED TEECEL SFYRIVE ; GSDOCHAT WCEVIDEL TTSB . : NDBEDM ORRR EERFT ARTTAES;R E T1CN SBR K ACSTT USDJ;A )+SP,()+SP (MP C ET SOT NNEDOH IT WPTRUERNT;I LT H RNTURE, ES;Y TI R +4 .PL B ET SIT BNEDOS ;I SRBCDM @TBTS T:INMB D T UPRRTEINB -B1 M1 DONE ER HERNT;E D ENMB DBR P OO LS,ONTIRATE IOR FCKHE;C PECO SE:T1CN SB T1CN SNE B NEDOT NOF IUEINNTCO ; R0C DE T ULES REDCTPEEXE ATPD;U 5 RNC I NEDOD ANE BLNA EANSCR EACL ;SRBCDM,@NEDOA+ENCN#SC BI: 1DNTSC ORRR EICOG LERNNfffffffffffffffffffffffffffffffffffffffffffffffffffffffffADDB C!+h 5w$DfffffffffffffffffffffffffffffffffffffffffffffffffffffffffIWORD PIRQ=177772 ;PROGRAM INTERRUPT REQUEST REGISTER SR=177570 ;CONSOLE SWITCH REGISTER LIGHTS=177570 ;PDP-11/45 DISPLAY REGISTER ;INSTRUCTION DEFINITIONS MARK1=6401 ;MARK INSTRUCTION SCOPE=TRAP ;CALL TO SCOPE LOOP AND ITERATION HANDLER FADD=75000 ;11/40 FIS FLOATING ADD FSUB=75010 ; " " " SUBTRACT FMUL=75020 ; " " " MULTIPLY FDIV=75030 ; " " " DIVIDE .EQUIV EMT,HLT FSUB=75010 ;11/40 FIS FLOATING SUBTRACT FMUL=75020 ;11/40 FIS FLCA;S LT H 1DNTSCQ BE R CSMB@D5, RMP C -4 .PL B SRBCDM @TBTS S ,P00#2C BI R NEANSCT ARST ;R CSMB@DA,ENCN#SS BI S PTRUERNT IITIBNH;I S ,P00#2S BI: 1BNTSC DEMOE NCNATEINMAD ANE BLNA EPTRUERNT IET;SSRBCDM,@17A+ENNT+INTAI#MV MO 0 ,R6.#1V MO 4 L VELET ACEVIER;S VLBLDM,@00#2V MO 5 ,R401317 #OV M CEVIER SPTRUERNT IALOC LUPT SE ;C VEMB@DT,INMB#DV MO A T1CN SNE B R0C DE E IN LXTNEO TGO ;R CSMB@DP,TE#SS BI P LOPFLI FET;S SRBLDM,@#1V MO: 1ANTSC PSLOPFLI FLEABENE IN LLL;A R CSMB@DR CL O NT IKN,(SP) ;SET UP FOR NEXT TEST SCOPET: TST TCFLAG ;DECTAPE DATA BEQ .+6 ;BRANCH IF NO NEW DATA JSR PC,TC1 ;CHECK TC DATA ;SPECIAL SERVICE CODE JSR PC,TWAIT ;CHECK INHIBIT PROCESSOR SWITCH RTI ;SCOPE RETURN .SBTTL SCOPE LOOP ROUTINE SCOPEC: BIT #40000,SR ;TEST FOR LOOP BNE SCOPEB ;YES SCOPE TSTB QVFLG ;IF QVFLG NOT 0 BNE SCOPEA ;NO ITERATIONS OF TEST BIT #4000,SR ;NO - TEST FOR ITERATION BNE SCOPEG ;INHIBIT ITERATION CMP SCOPEF,ICOUNT BEQ SCOPEG ;EXLc&@ ` l1T@ @ @ @ @ @ @ @ r hf8b39d @`2@ `@@ @ @ @ @ @ @ @ 6p&n@ @ `0`1@ @ @ @ @ @ @ @ 9GUn3nĜb2v@@0@ j2@ @ @ @ @ @ @ @ @ pTvf8v@f9d @ b6&f8@ @ @ @ @ @ @ @ `&fcr1$@ &@ ` h@ @ @ @ @ @ @ @ r hf8r9d0@3`2@ d3g@@ @ @ @ @ @ @ @ 6r&h0@ @ b0d@ @ @ @ @ @ @ @ 9MOATING MULTIPLY FDIV=75030 ;11/40 FIS FLOATING DIVIDE ;SYMBOL DEFINITIONS UM=140000 .MACR MOVPS N MOV PS,R'N' ;SAVE CONDITION CODES IN REGISTER 'N' BIC #177760,R'N' ;EXTRACT CONDITION CODES .ENDM .MACRO CATCH .REPT 120 .+2 ;TRAPCATCHER FOR ILLEGAL INTERRUPTS HALT ;TRAPPED TO PREVIOUS ADDRESS .ENDR .ENDM .=0 .SBTTL TRAPCATCHER ;.+2,HALT IS LOADED INTO EACH VECTOR ADDRESS/STATUS ADDRESS PAIR FROM ;000 THRU 476 .NLIST CATCH .LIST .SBTTL VECTORS ;PR'S 1TERI WTOP UET;S 0 ,R6.#1V MO 6 .-E BN S OPFLIPFLR XELEIPLTMUL ALR EACL ;R CSMB@DY,US#BT BI R CSMB@DN,SCLR+CUXRMCL #OV M1:NTSC PECO S BB1-M1 DSTTE ; NDBEDME BN T NOO D1,3=T BI3 SRF ;I 3 SR0,#1T BI: BB11DM 20Y=US B0 20E=ON D0 =4NANESC 00=1NATEIN 00=4EPST 0010T=INMA 0020X=MULR C0 00=4CNRSCL NELIH AC EOR FRSCUOCT UPRRTEINN AATTHY IFER;V S ONTICALOY OREM MERNNCA SLL ATOINS 1'T PUIN ; STTEC GILOR NEANSC ; EREXPLTIUL MOLTRON CEMOD MBB1-M1;D T ES TOLTRON CEMOD MBB1-M1 DTLBT.S 3040OIT - DONE INC SCOPEF ;INCREMENT COUNT BR SCOPEB ;LOOP SOME MORE SCOPEG: CLR SCOPEF ;CLEAR COUNT SCOPEA: MOV @SP,RETURN ;SAVE SCOPE RETURN POINTER RTI ;RETURN INLINE-NEXT TEST ;THIS ROUTINE CHECKS THE READ DATA BUFFER TC11 ;BY DOING A CHECK SUM ON THE DATA TC1: CLR TCFLAG ;SET BY TC READ ROUTINE MOV R1,-(SP) ;SAVE THESE ON THE STACK MOV R2,-(SP) MOV R3,-(SP) CLR R3 ;SUM OF DATA MOV #TCRBUF,R1 ;ADDRESS OF READ BUFFER MOV #TCRBUF+1000,R2 ;END OF READ BUFFER TC2: ADDPcGUn3nƜd2F@@0@ `2&@@ @ @ @ @ @ @ @ pTvb9v`&d6d @ `0&`@ @ @ @ @ @ @ @ `fc`24@ &@ ` `2@ @ @ @ @ @ @ @ r hf8r9d0@4`2@ n0F@@ @ @ @ @ @ @ @ vr0p7@ @ `0&`@ @ @ @ @ @ @ @ 9VUl7n1Vh1@@0@ r4@ @ @ @ @ @ @ @ @ `Ufd9v`Fdd @ `0v`1@ @ @ @ @ @ @ @ `&f+p@ &@ ` f@ @ @ @ @ QESET VECTORS FOR INTERRUPT AND TRAP SERVICE .=14 TRTRET ;TRACE TRAP RETURN 140 ;SERVICE AT LEVEL 3 IOTVEC: DMYRTI ;CALL TO USER BACKGROUND OVERLAY IOTLVL: 0 ;SERVICE AT LEVEL 0 .=24 PFAIL ;POWER FAILURE HANDLER 340 ;SERVICE AT LEVEL 7 PRINT ;TRAP FOR ERROR HANDLER 340 ;PRINT AT LEVEL 7 (DROPS TO 4 IN ROUTINE) SCOPEC ;TRAP FOR LOOPING 0 ;LOOP SERVICE AT LEVEL 0 .=60 TTRIV: TTYINR ;TELETYPE READER 200 ;SERVICE AT LEVEL 4 TTPIV: TYOUTR ;TELEPRINTER 200 ;SERVICE 01 000000 304001 000000 312002 016003 315003 011002 312403 016402 711003 415002 110403 214402 610003 514002 2 C1CRR FOE BLTAT ULES;R 744117 044300 322317 422100 1 2171 11 0601 00 6572 00 4202 1 601013 101204 4 7750 14 5020 0 320016 2 2410 0 514317 1 1204 0 TTCI COR FLEAB TLTSURE ; 410115 0 1460 0 610010 0 0630 0 314012 0 0314 0 156013 4 0106 0 073013 6 0003 0 021413 3 4001 0 010601 0 6020 1 010316 0 3050 0P:GC K 6 C1CRR FOE BLTAT ULES;R 7 5777 0 0002S (R1)+,R3 ;EVEN ADD ADD (R1)+,R3 ;ODD ADD -2'S COMPLIMENT BEQ TC2 CMP R1,R2 ;AT END OF BUFFER? BHI .+4 ;YES-BRANCH HLT ;DATA ERROR MOV (SP)+,R3 ;RESTORE THE REGISTERS MOV (SP)+,R2 MOV (SP)+,R1 RTS PC ;EXIT TWAIT: BIT #2000,SR BEQ EWAIT WAIT ;WAIT HERE FOR INTERRUPTS BR TWAIT EWAIT: RTS PC ;EXIT WAIT LOOP ;GROUP OF NESTED SUBROUTINES SUBR1A: RTS PC ;ONE INSTRUCTION SUBR2A: SCC ;ONE DEEP RTS PC SUBR3A: JSR PC,SUBR2A ;TWO DEEP RTS PC SUBR4A: JSR PTc@ @ @ r hnh8b@`2@ `0@2@ @ @ @ @ @ @ @ vr0Fb8@ @ `0l@ @ @ @ @ @ @ @ 9VUl7n1Vh16@ @0@ f0f@@ @ @ @ @ @ @ @ `Ufd9v`Gr3d @ `0&p3@ @ @ @ @ @ @ @ `&f7+pD@ &@ ` p$@ @ @ @ @ @ @ @ r hnh8b@6`2@ `06@@ @ @ @ @ @ @ @ vr0Fb9@ @ `0Fj9@ @ @ @ @ @ @ @ 9VUl7n4Vh1&@ @0@ r0@UAT LEVEL 4 HSRIV: HSRINR ;HIGH SPEED READER 200 ;SERVICE AT LEVEL 4 HSPIV: HPOUTR ;HIGH SPEED PUNCH 200 ;SERVICE AT LEVEL 4 KLIV: KW11L ;KW11-L LINE CLOCK 300 ;SERVICE AT LEVEL 6 KWIV: KW11P ;KW11-P 300 ;SERVICE AT LEVEL 6 .=124 DRBIV: DRIR ;DR11-B GENERAL NPR INTERFACE 240 ;SERVICE AT LEVEL 5 AD01IV: AD01D ;AD01-D A-D CONVERTER 240 ;SERVICE AT LEVEL 5 AFCIV: AFC11 ;AFC11 ANALOG MULTIPLEXER 240 ;SERVICE AT LEVEL 5 AA11IV: AA11 ;AA11-A,B,C DIGITAL TO ANALOG ;CONV10 7 6737 1 000104 7 7357 1 400002 7 7567 1 200001 7 7673 1 104000 3 7775 1 042000 5 7776 1 021000 6 3777 1 010400: DPKG TSES TRC COR FLEAB TTADA ; RDWON IOCTRUSTIN2 C1CR ; 0 1000 02:C1KG RDWON IOCTRUSTINT ITCC ; 5 1100 0T:CIKG RDWON IOCTRUSTIN6 C1CR ; 1 1100 0P:GI KB 1BM1 DMP JD:ENKG PECO S TAKGE BN R TEINPON IOCTRUSTINE NCVAAD ;2 C1KG+,1)(RP CM R TEINPOA AT DETES;R R2P,GD#KV MO E NUTION CO,;N A GT KNE B TADAF OND;E CPKG,#R2P CM S ERNTOI PLTSURED ANA AT DCEANDV;A )+R4WC,SUBR3A ;THREE DEEP RTS PC SUBR5A: JSR PC,SUBR4A ;FOUR DEEP RTS PC SUBSPA: JSR PC,SUBR5A ;FIVE DEEP RTS PC .SBTTL ISOLATION ROUTINE ;THIS ROUTINE ON ERROR DETECTION OR END OF PASS OF ;PROCESSOR TEST WILL DELETE ONE DEVICE OF THOSE THAT ;HAVE BEEN SELECTED TO RUN. ON ENTERING THIS ROUTINE ;THE CURRENTLY DELETED ONE WILL BE RESTORED AND A ;NEW DEVICE DELETED. ISOLAT: BIT #400,SR ;IS ISOLATION REQUESTED BNE ISOLA1 TST ISFLG ;WAS ISOLATION IN PROGRESS BEQ ISOLA2 ;IF NOT EXXc@ @ @ @ @ @ @ @ `Ufd9v`Grd @ `0n4@ @ @ @ @ @ @ @ `&f7+r@ &@ ` p0@ @ @ @ @ @ @ @ r hnh8b@`2@ `0@@ @ @ @ @ @ @ @ vr0Ff9@ @ `0n@ @ @ @ @ @ @ @ 9VUl7n4Vh1F@ @0@ b2@ @ @ @ @ @ @ @ @ `Ufd9v`Grd @ `0j7@ @ @ @ @ @ @ @ `&f7+r@ &@ ` p$@ @ @ @ @ @ @ @ r hnh8b@1YERTER WITH DISPLAY 200 ;SERVICE AT LEVEL 4 .=204 RFIV: RF11 ;RF11 DISK 240 ;SERVICE AT LEVEL 5 RCIV: RC11 ;RC11 DISK 240 ;SERVICE AT LEVEL 5 TCIV: TC11 ;TC11 DECTAPE 300 ;SERVICE AT LEVEL 6 RKIV: RK11 ;RK11 DISK 240 ;SERVICE AT LEVEL 5 MTIV: TM11 ;MT11 MAGNETIC TAPE 240 ;SERVICE AT LEVEL 5 CRDRIV: CRCM11 ;CARD READER (CR11/CM11 OR CD11) CRDRPS: 300 ;SERVICE AT LEVEL 6 (CR11/CM11) OR 4(CD11) UDIV: UDINT ;UDC11 UNIVERSAL DIGITAL CONTROLLER UDPS: 300 ;SERVICE AT LEVEL 6,()+R2 (MP C ORRR ET,ECRRCOINC BC ; T HL 4 .+Q BE S LTSURED VEEIEC RND AEDCTPEEXE ARMPCO ;P EM,T4)(RP CM C BCF OTSULES RADRE ;P EM,TCCGB@KV MO S ET SEREV NNEDOF INGHAL IL WAMGRRO;P 4 .-Q BE E ON DOR FITWA ; SRGC@KB ST T ONTITAPUOM CCC BRTTA;S E ICEV DTOA AT DNDSE ;R DBKG,@2)(RV MO E BLTAN IOCTRUSTINM RO FSR CUPT SE ;R CSKG,@1)(RV MO R TEISEG RCC BARLE;C SRGC@K0,#2V MO: TAKG TSULES ROFE BLTA ;4 ,RCPKG #OV M TADAF OLEAB;T R2P,GD#KV MO D TECUXE EBEO TONTIUCTRNS;I R1P,GI#KV MO: STTE[IT MOV ISCNT,R5 ;RESTORE LAST DELETED DEVICE BIC ISWRD,SR1(R5) CLR ISFLG ;CLEAR ISOLATION FLAG JMP ST ;RESTART ALL SELECTED DEVICES ISOLA2: RTS PC ISOLA1: TST ISFLG ;HAS ROUTINE BEEN ENTERED BEFORE BNE ISO2 MOV #1,ISFLG ;SET FLAG ISO1: CLR ISCNT MOV #4,ISWRD CLR R5 BR ISO4 ISO2: MOV ISCNT,R5 ;SET UP TO ACCESS DEVICE SELECTION REGISTER BIC ISWRD,SR1(R5) ;RESTORE PREVIOUSLY DELETED DEVICE ISO3: ASL ISWRD ;SET UP TO DELETE NEW DEVICE BEQ ISO5 ;IF WORD =0, RESET ISO4:\c`2@ b0v@5@ @ @ @ @ @ @ @ vr0Fl9@ @ `0h@ @ @ @ @ @ @ @ 9VUl7n9Ɯb2F@@0@ Fb8V@ @ @ @ @ @ @ @ @ `Ufb9v`&l4d @ j4fb@ @ @ @ @ @ @ @ `3fcl0@ &@ ` l2@ @ @ @ @ @ @ @ r hf3h8b@8`2@ `06@@ @ @ @ @ @ @ @ 6r0Fp9@ @ `0ff@ @ @ @ @ @ @ @ 9fUdn4Vh1@@0@ `0@ @ @ @ @ @ @ @ @ ] .=240 PIRVEC:0 ;SOFTWARE INTERRUPT PIRLVL: 0 ;SERVICE AT SELECTED LEVEL .=250 SEGVEC: 252 SEGLVL: 0 RPIV: RP11 ;RP11 DISK PACK 240 ;SERVICE AT LEVEL 5 .=300 DC1RIV: DC11R1 ;DC11 #1 RECEIVE 300 ;SERVICE AT LEVEL 6 DC1TIV: DC11T1 ;DC11 #1 TRANSMIT 300 ;SERVICE AT LEVEL 6 DC2RIV: DC11R2 ;DC11 #2 RECEIVE 300 ;SERVICE AT LEVEL 6 DC2TIV: DC11T2 ;DC11 #2 TRANSMIT 300 ;SERVICE AT LEVEL 6 .=510 BUST1 ;BUS TESTER SECTION 1 300 ;SERVICE AT LEVEL 6 BUST2 ;BUS TESTER KG PECO S 1AG1 KSTTE ; NDGE KNE B OT NDO, =1 0IT BR3 SIF ; R3,S#1T BI: RTSTKG TADAD TERANEGEE ARDWAR HSTINGA ATSULES RWNNO;K NGRIPAOM CBY2 C1CRD AN, TTCI C6,C1CRF OTSULES RHE TSTTE ; N IOPT OCKHE CCYANNDDUREC LIYC C-A11KGT ES TTLBT.S TI RO:CTRA DI RT: TIACDR RTSTKGR B PECO S -4 .PL B PTRUERNT IUTTPOUR FOT AI;W S CCRA@DB ST T -4 .PL B PTRUERNT IUTNP IOR FITWA ; CSACDR @ST T TSUPRRTEINW LOAL ; PS0,24 #IC B ESBLNA EPTRUERNT IET;S CSACDR,@40#1S BI N IOATEREN GPTRUERNT I-A11DR ; _ BIT ISWRD,SR1(R5) ;IF DEVICE NOT SELECTED BNE ISO3 ;DO NOT DESELECT BIS ISWRD,SR1(R5) ;DESELECT DEVICE JMP ST ;RESTART TEST ISO5: ADD #2,ISCNT ;INDEX FOR NEXT SR CMP ISCNT,#6 ;IF AFTER LAST SR BEQ ISO1 ;RESTART SEQUENCE INC ISWRD ;SET UP TO ISOLATE 1 DEVICE MOV ISCNT,R5 BR ISO4 ;START ISOLATION ISCNT: 0 ISFLG: 0 ISWRD: 0 ;ENTER HERE ON POWER FAILURE PFAIL: MOV #1,PFFLAG ;SET POWER FAIL FLAG MOV #RESTART,24 ;SET UP FOR POWER UP TRAP HALT ;HALT ON POWER D`cfV&d9v`Gjd @ `0vb0@ @ @ @ @ @ @ @ 6`&fcp@ &@ ` vb@ @ @ @ @ @ @ @ r hf3l29d &@1`2@ d1@7@ @ @ @ @ @ @ @ 6j0&`6@ @ `0&p@ @ @ @ @ @ @ @ 9fUdfn8Ɯ`2v@@0@ b@@ @ @ @ @ @ @ @ fV&d7v`l9d @ `0v`0@ @ @ @ @ @ @ @ 6`&fcf1@ &@ ` r7D@ @ @ @ @ @ @ @ r hf3b9d0V@`2@ d1@7@ @ @ @ aSECTION 2 340 ;SERVICE AT LEVEL 7 BUST3 ;BUS TESTER SECTION 3 240 ;SERVICE AT LEVEL 5 BUST4 ;BUS TESTER SECTION 4 200 ;SERVICE AT LEVEL 4 .IF DF LATNC .=544 LATST ;BUS LATENCY TESTER 140 ;SERVICE AT LEVEL 3 .ENDC ;LOAD STARTING ADDRESSES .=200 JMP BEGIN1 .=400 JMP BEGIN1 .=600 JMP BEGIN1 .=.+4 .SBTTL ABSOLUTE CORE DUMP ; INSTRUCTIONS FOR USE: ; ; 1. START THE ROUTINE AT 610. ; 2. THE DUMP ROUTINE WILL NOW HALT. ENTER THE ADDRESS OF THE ; DESIRED OUTPUT DEVIC OR FTSBIE NCNATEINMAT SE ;B CORA@D0,2000#1V MO N IOATEREN GPTRUERNT I-C11DR ; OR FTSBIE NCNATEINMAT SE ;S CCRA@D3, #OV M TSUPRRTEINC A,1-R1 DUT OCKLO ; PS0,24 #IS B ERSTGIREL RONTCOR EACL ; CSACDR @LR C ERSTGIREL RONTCOR EACL ; OBACDR @LR C R2R CL T UNCO,I0040 #OV M PECO S VLOLDR,@40#2V MO R TOEC VPTRUERNT IUTTPOUP UET;S ECOVDR,@TOACDR #OV M VLILDR,@40#2V MO R TOEC VPTRUERNT IUTNP IUPT SE ;C VERI@DI,CTRA#DV MO E OPSC 0 T NOF IUEINNTCO ; T1ACDRE BN A AT DITSMANTRE ATPD;U 1 RNCcOWN NORMAL ;PROCESSOR WILL TRAP HERE WHEN POWER IS RESTORED RESTAR: MOV #STACK,SP ;RESTORE STACK MOV #PFAIL,24 ;SET UP FOR POWER FAILURE CLR PRFLAG CLR TEMP INC TEMP BNE .-4 HLT ;REPORT POWER FAILURE JMP PROCTS ;START PROCESSOR TEST PFFLAG: 0 B: 125252 .SBTTL FIXED VALUES AND TEMPORARY STORAGE FOR PROCESSOR TEST B ;ADDRESS OF B 052525 .=B+10 A: -1 A+4 .=A+4 125252 A+10 ;ADDRESS OF A+10 052525 C: 0 C ;ADDRESS OF C .=C+10 TEMP: 0 TEMP ec@ @ @ @ 6p0f&p@ @ `06f@ @ @ @ @ @ @ @ 9fUdnĜb2@ @0@ b@@ @ @ @ @ @ @ @ fV&f8v@j8d @ f0vf6@ @ @ @ @ @ @ @ 6`&fc`2@ &@ ` h1@ @ @ @ @ @ @ @ r hb4h8b@`2@ `0@@ @ @ @ @ @ @ @ rFb@ @ `0&r@ @ @ @ @ @ @ @ 9vU`n1Vh1v@@0@ n1V@ @ @ @ @ @ @ @ @ nWd9v`Fld @ `0Wj4eE INTO THE SWITCH REGISTER AND ; PRESS CONTINUE. ; 3. THE DUMP ROUTINE WILL HALT AGAIN. NOW ENTER THE FIRST WORD ; ADDRESS OF THE DATA AREA TO BE DUMPED AND PRESS CONTINEUE. ; 4. THE ROUTINE WILL HALT A THIRD TIME. FINALLY ENTER THE LAST ; WORD ADDRESS OF THE DATA AREA TO BE DUMPED AND ; PRESS CONTINUE. DUMPING WILL NOW PROCEED IN ABSOLUTE ; FORMAT ON THE SELECTED DEVICE. ; 5. WHEN DUMPING IS COMPLETE THE ROUTINE WILL HALT. ; IF FURTHER DUMPING IS DESIRED PROCEED TO STEP #3. IT IS ; N I LT H +4 .EQ B TADAD VEEIEC RCKHE;C IBACDR,@R1P CM T HL 4 .+Q BE A AT DCKHE;C OBACDR,@R1P CM R FEUF BUTTPOUO TTADAV MO ;B CORA@D1, ROV M1:CTRA DE OPSC A AT DSTTER EACL ; R1R CL R TEISEG ROLTRON CARLE;C S CCRA@DR CL T UNCON IOATERITR EACL ; NTOUICR CL R TEISEG RALEREN G-C11DR, -A11DRT ES;T T TRGS KNE B OT NDO, =1 2IT BR3 SIF ; R3,S#4T BI: CTRA D ! !!EDLLTANS IBET US MLEAB CCEANENNTAI ME:OT;N DEMOE NCNATEINMAN I,C-A11DRF OSTTEL TTSB . 0 : LGNF DI RT G LA FNEDOE ARTWOF SET;S G g ;ADDRESS OF TEMP .=TEMP+6 TEMP+10 ;ADDRESS OF TEMP+10 OR "D" D: 0 .SBTTL FLOATING POINT CONSTANTS AND DATA D1010: -1 D0101: 0,-1,0 D1001: -1,0,0 DSMALL: WEIRD: -1,1,0,-1 AD0101: D0101 AD1001: D1001 AD1000: D1000 DBIG: 77777,0,-1,0 DMZERO: 100000,0,0,0 AANS1: ANS1 DALTA: 40252,125252,125252,125252 DALTB: 40325,52525,52525,52525 DALTC: 40325,52525,52525,52526 D40: 40000,0,0,0 D37: 37400,0,0,0 D46: 40600,0,0,0 D20: 20000,0,0,0 D0100: 0 D1000: -1,0,0,0 D0100X: 100,0,0 D0 !@B !@B !@B > r8LRiOT NECESSARY TO RE-SPECIFY THE DEVICE ADDRESS. ; 6. TO PUNCH STOP CODE WHEN DUMP HAS BEEN ; COMPLETED, SET BIT 0 OF SWITCH REGISTER=1 AND ; PRESS CONTINUE. THE DUMP ROUTINE WILL HALT. ; SET SWITCH REGISTER BIT 0=0 AND ; PRESS CONTINUE. THE DUMP ROUTINE WILL HALT. ; PRESS CONTINUE. THE DUMP ROUTINE WILL PUNCH A STOP CODE ; AND THEN HALT. THE PAPER TAPE PUNCH MAY NOW BE UNLOADED. ; MOV PC,SP ;SET UP STACK TST -(SP) ;ADDRESS HALT ;ENTER DEVICE ADDRESS MOV @#SR,R0 MOV R0,E.TCSR FLDNM CO R TEISEG ROLTRON CARLE;C R CSDN @ LR C ORRR ET,SET NOE ON;D LT H +4 .MI B NEDOR FOT ES;T R CSDN @TBTS: SRNI D T UPRRTEIN1 N1 DONE ER HERNT;E T ACDRR BD:ENDN PECO S AGFLE ON DREWAFTSOR EACL ; LGNF DLR C -4 .PL B PTRUERNT IOR FITWA ; LGNF DST T TSUPRRTEINW LOAL ; PS0,34 #IC B RYET RND ALLCAN DOANABE RCFO ; LEABENT UPRRTEIN ; DEMOE NCNATEINMA, LEABEN ; ERSTMA, STUEEQ RLLCAT SE ;R CSDN,@1541 #OV M AGFLE ON DREWAFTSOR EACL ; LGNF DLR C -4 .PL B PTRUERNT IORk111: 0,-1,-1,-1 D5TO1: 0,54321 AD5TO1: D5TO1 F5TO1: 43661,121000,0,0 SAVADR: 0 SAVSTS: 0 FLTERR: STFPS FPS STST FEC HLT RTI ANS1: 0 ;FIRST ANSWER (SEE CODE) ANS2: 0 ANS3: 0 ANS4: 0 ANS5: 0 ANS6: 0 ANS7: 0 ANS8: 0 FEC: 0 ;FLOATING EXCEPTION CODES FEA: 0 ;FLOATING EXECPTION ADDRESS .TYPE: 0 FPPERF: 0 FPTADR: 172160 ;FLOATING POINT ADDRESS ON THE 11/20 FPVECT: 244,246 ;FLOATING POINT VECTOR ADDRESS .=.+174 STACKK: 0 ;BUFFER FOR SP .=.+174 STACK: 0 ;GENERALm;SET UP PS ADDRESS INC R0 INC R0 ;GENERATE DATA ADDRESS MOV R0,E.TDB ;SET UP DATA ADDRESS E.0: HALT ;ENTER START LOCATION TO R0 MOV #E.PUN,R3 MOV @#SR,R0 ;START LOCATION TO R0 HALT ;ENTER ENDING LOCATION INTO SR MOV @#SR,R1 ;ENDING LOCATION TO R1 MOV #10,R2 ;10 NUL FRAMES TO PUNCH CLR R5 ;R5=CHECKSUM CLR R4 ;R4=CONTAINS FRAME TO PUNCH E.1: TST R2 ;ALL DONE? BLE E.2 ;JUMP IF YES JSR PC,(R3) ;PUNCH ONE NULL FRAME DEC R2 ;DECREMENT FRAME COUNT BR E.1 E.2: INC R4 FITWA ; LGNF DST T TSUPRRTEINE BLNA;E S ,P40#3C BI F OFR WEPOE RCFO ;R CSDN,@0020 #IS B LEABENT UPRRTEIN ; DEMOE NCNATEINMAE,BLNA;E R TEAS MT,ESQUREL AL CET;S SRNC@D5,11 #OV M AGFLE ON DREWAFTSOR EACL ; LGNF DLR C -4 .PL B PTRUERNT IOR FITWA ; LGNF DST T TSUPRRTEINC LOAL ; PS0,34 #IC B USATSTT SEA AT DCEOR;F E BLNA EPTRUERNT;I , DEMOE NCNATEINMA, LEABEN ; ERSTMA, STUEEQ RLLCAT SE ;R CSDN,@1511 #OV M AGFLE ON DREWAFTSOR EACL ; LGNF DLR C -4 .PL B PTRUERNT IOR FITo STACK ;TEXT FOR AA11 DAC WITH SCOPE OPTION ;TEXT = "PDP11" TEXT: P XD P DASH N1 N1 P: .BYTE 177,11,11,11,6 XD: .BYTE 177,101,101,101,76 DASH: .BYTE 0,10,10,10,0 N1: .BYTE 0,102,177,100,0 .EVEN AAR0: 0 ;AAII (ROW) AAR1: 0 ;AAII COLUMN AAR2: 0 ;CHARACTER POINTER AAR3: 0 ;HOLDS CHARACTER YPOS: 0 XPOS: 0 YPT: 0 PNTR: 0 CNTR: 0 ;SIZER FOR FIXED VECTOR DEVICES ;DETERMINE WHAT FIXED VECTOR DEVICES ARE ON SYSTEM ;AND CLEAR BIT IN DEVICE SELECTION REGISTER CORq;SET R4=1 JSR PC,(R3) ;PUNCH A START FRAME CLR R4 ;R4=0 JSR PC,(R3) ;PUNCH A ZERO FRAME MOV R1,R4 ;SAVE LWA SUB R0,R4 ;LWA-FWA ADD #7,R4 ;CORRECT COUNT JSR PC,(R3) ;PUNCH LOWER ORDER OF COUNT SWAB R4 ;GET UPPER BYTE JSR PC,(R3) ;AND PUNCH IT MOV R0,R4 ;GET LOAD ADDRESS JSR PC,(R3) ;AND PUNCH ITS LOWER ORDER SWAB R4 ;GET UPPER ORDER JSR PC,(R3) ;AND PUNCH IT E.3: CMP R0,R1 ;DONE PUNCHING DATA? BGT E.4 ;BRANCH IF YES MOVB (R0)+,R4 ;GET A DATA BYTE JSR PC,(R3) WA ; LGNF DST T TDUPRRTEINW LOAL ; PS0,34 #IC B ITIG DXTNET ENESPRE RCFO ; E,BLNA EPTRUERNT;I E OD MCEANENNTAI ME,BLNA;E R TEAS MT,ESQUREL AL CET;S SRNC@D5,51 #OV M PECO S AGFLE ON DREWAFTSOR EACL ; LGNF DLR C 4TYRIIOPRO TORSSCERO PET;S S ,P00#2S BI L VELEE ICRVSET UPRRTEINP UET;S VLNL@D0,20 #OV M ORCTVET UPRRTEIN1 N1 DUPT SE ;C VEDN,@SRNI#DV MO R LEIA DALITIG D11DNT ES;T D ENDNE BN T NOO D1,0=T1BI2 SRF ;I R2,S0020 #IT B1:N1 D E OD MCEANENNTAI MIN1 N1 DOFT ES TTLBT.S sRESPONDING ;TO THAT DEVICE SIZER: MOV #DEVTAB,R5 ;GET TABLE OF DEVICES TO BE CHECKED MOV #177777,SR1 MOV #177777,SR2 MOV #177777,SR3 MOV #5$,@#4 ;SET UP POINTER FOR MOV #340,@#6 ;NON-EXISTENT DEVICE TIMEOUT CLR R1 CLR R2 1$: TST @(R5)+ ;IF DEVICE EXISTS, NO ;TIMEOUT WILL OCCUR MOVB (R5)+,R1 ;GET OFFSET TO DEVICE SELECTION ;REGISTER MOV #1,R3 ;SET UP TO SELECT DEVICE MOVB (R5)+,R2 ;GET POSITION OF DEVICE SELECT BIT 2$: BEQ 3$ ;WHEN BIT IS IN CORRECT POSITIu ;AND PUNCH IT BR E.3 E.4: NEG R5 ;NEGATE CHECKSUM MOV R5,R4 JSR PC,(R3) ;PUNCH CHECKSUM BR E.0 ;AND GO BACK TO BEGINNING ; E.PUN: TSTB @#.-. ;WAIT E.TCSR = .-2 BPL E.PUN ;READY MOVB R4,@#.-. ;PUNCH A FRAME E.TDB = .-2 ADD R4,R5 ;ACCUMULATE CHECKSUM RTS PC .SBTTL DEVICE DRIVER OVERLAY LINKAGES .=1020 GETSW: DMYRTS ;SET UP BY USER FOR SWITCH REGISTER INPUTS PRIME: DMYRTS ;SET UP BY USER FOR DEVICE PRIMING 0 OVFLAG: 0 ;OVERLAY TO GTP COMMUNICATION WORD LINKER: D:ENDR DREN . =. N -N N - ONTINATIES;D N TOD REERSFANTRS ICEURSO ; N 4 T EP.R: UFRB D0 : LGRF DI RT G FLDRC IN: IRDR PTRUERNT I-B11DRN OREHER TEEN ; 1 N1 DMP JA:NDRE DE OPSC A AT D1BR1 DAD;B LT H +4 .HI B NDRE#D1, RMP C ALQU EBED ULHO;S 2 .-Q BE D OR WNDCOSED ANT RSFI ;+ 1)(R+,1)(RP CM 1 ,RUFRB#DV MO G FLDRR CL 4 .-Q BE G FLDRT TS O GND AIE, NTAI;M STDR,@010101 #OV M BRRD@D1,#-V MO A RB@DF,BUDR #OV M ERXFD OR W20 ;C RW@D0,-2 #OV M PECO S LGRF DLR C DAENDRE BN wON ASL R3 ;POSITION BIT DEC R2 BR 2$ 3$: BIC R3,SR1(R1) 4$: TST (R5) ;AT END OF TABLE ? BNE 1$ MOV #6,@#4 CLR @#6 RTS PC 5$: TST (R5)+ CMP (SP)+,(SP)+ BR 4$ STORE: SR1 DEVTAB: .WORD 177546 ;KW11-L .BYTE 0,4 .WORD 172540 ;KW11-P .BYTE 0,6 .WORD 170000 ;BUS TESTER SECTION 1&2 .BYTE 0,8. .WORD 170020 ;BUS TESTER SECTION 3&4 .BYTE 0,9. .WORD 177460 ;RF11 .BYTE 0,10. .WORD 171774 ;UDC11 .BYTE 0,11. .WORD 177440 ;RC11 .BYTE 0,12. .WORD 177340 ;TCy0 ;OVERLAY LINKING POINTER DMYRTI: RTI ;DUMMY RETURN FROM BACKGROUND OVERLAY DMYRTS: RTS PC ;DUMMY RETURN FROM USER CODE .SBTTL GTP VARIABLES ICOUNT: 4000 ;NUMBER OF ITERATIONS OF SUBTEST ;TO BE EXECUTED PRFLAG: 0 ;ERROR HANDLER IN USE FLAG PASCNT: 0 ;NUMBER OF PROGRAM PASSES SR1: -1 ;FIRST DEVICE SELECTION REGISTER SR2: -1 ;SECOND DEVICE SELECTION REGISTER SR3: -1 ;THIRD DEVICE SELECTION REGISTER LOCORE: 40000 0 HCORE: 0 ;UPPER LIMIT FOR CORE EXPANSION SCOPEF: 0 2 SR0,#4T BI: 1BR1 D E OD MCEANENNTAI MINB 11DRF OSTTEL TTSB . 0 : LGDF UI RT T UPRRTEINE OVEM;R CRUD,@00#4C BI L RONTCOE BLSADI ;R DC@U6,#3C BI G LA FNEDOE ARTWOF SET;S G FLUDM CO: NTDI U T UPRRTEIN1 C1UDN OREHER TEEN ; 1BR1 DBR E OPSC G LA FEDURCC OPTRUERNT;I D REEREF DDC UET;S UDTCWA1, #OV M ORRR;E LT H +4 .EQ B ET SIF+RORRR EE,ON DEF DIS ;R DC@U1,0400#1P CM 6 L VELET APTRUERNT IXTNEE ICRVSE ;6 230,30 #OV MI:EF DG LA FNEDOE ARTWOF SARLE;C G FLUDR CL 4 .-L BP T UPRRTEINR 11 .BYTE 0,13. .WORD 176756 ;AA11 .BYTE 2,2 .WORD 172570 ;AFC11 .BYTE 2,3 .WORD 177400 ;RK11 .BYTE 2,4 .WORD 172410 ;DR11-B .BYTE 2,5 .WORD 176770 ;AD01-D .BYTE 2,7 .WORD 176720 ;RP11 .BYTE 2,8. .WORD 172520 ;TM11 .BYTE 2,11. .WORD 173000 ;M792YA .BYTE 2,12. .WORD 173100 ;M792YB .BYTE 2,13. .WORD 0 .END } ;NUMBER OF ITERATIONS OF SUBTEST COMPLETED CONFIG: 0 ;PROCESSOR CONFIGURATION RETURN: PROCTS ;CONTAINS ADDRESS OF LAST TEST COMPLETED ACTFLG: 0 ;IF NOT 0, PROGRAM UNDER EXTERNAL MONITOR CONTROL QVFLG=ACTFLG+1 ;IF NOT 0, PROGRAM RUNS IN QUICK VERIFY MODE .SBTTL DEVICE REGISTER AND VECTOR TABLE .=1100 ;KL11 TRCSR: 177560 ;TELETYPE READER CONTROL STATUS REGISTER TRDR: 177562 ;TELETYPE READER DATA BUFFER TTCSR: 177564 ;TELEPRINTER CONTROL STATUS REGISTER TTDBR: 177566 ;TELEPRFOT AI;W G FLUDT TS E OD MCEANENNTAI MET;S CRUD,@00#4S BI E BLNA EANSCD REFEDE ; LEABENT UPRRTEIND REFEEF DET;S CRUD,@13 #IS B AGFLD RECUOCT UPRRTEIN ; TEIAEDMM I11DC UET;S UITCWA1, #OV M NEDOR CLR FOT AI;W OP N IF RTERANEGE ; SRUD @ST T ORRR;E LT H +4 .EQ B ET SIF+R, ORRR EE,ON DMM IIS ;R DC@U1,2000#1P CM 4 L VELET APTRUERNT IXTNEE ICRVSE ;6 230,20 #OV MI:MM IG LA FNEDOE ARTWOF SARLE;C G FLUDR CL 4 .-L BP T UPRRTEINR FOT AI;W G FLUDT TS E OD MCEANENNTAI MET;S CRUD,@00INTER DATA BUFFER ;PC11 HRCSR: 177550 ;HIGH SPEED READ STATUS REGISTER HRDBR: 177552 ;HIGH SPEED READER DATA BUFFER HPCSR: 177554 ;HIGH SPEED PUNCH CONTROL STATUS REGISTER HPDBR: 177556 ;HIGH SPEED PUNCH DATA BUFFER ;KW11-L LKCSR: 177546 ;KW11-L LINE CLOCK CONTROL STATUS REGISTER ;LP11 LPCSR: 177514 ;LP11 LINE PRINTER CONTROL STATUS REGISTER LPDBR: 177516 ;LP11 LINE PRINTER DATA BUFFER ;DR11-A,C DRACCS: 167770 ;DR11-A,DR11-C CONTROL STATUS REGISTER DRACOB: 1677#4S BI F RIE ATEREN;G E BLNA EANSCE ATDIMEIM ; LEABENT UPRRTEINE ATDIMEIMT SE ;R DC@U5,#2S BI E ON DARLE COR FITWA ; P NO F RIE ATEREN;G R DS@UT TS E OPSC G LA FEDURCC OPTRUERNT;I E ATDIMEIM1 C1UDR EACL ; UITCWAR CL G LA FEDURCC OPTRUERNT;I D REEREF D11DC UARLE;C D CUAT WLR C AGFLE ON DREWAFTSOR EACL ; LGDF ULR C ERSTGIREN CA SARLE;C R DS@UR CL R TEISEG ROLTRON CARLE;C R DC@UR CL 6 L VELET APTRUERNT ISTIR FCEVIER;S PSUD0,30 #OV M 11DC USTTE ; 1BR1 DNE B OT NDO, =1PEK~=Q8K0`֏!,H]ԬoBV]WtϹ_J˷=',quXje% rOu>vO mYC`T-EMoKC6_)MTºąA힚ڷA836\,I*C-×?{O-@{6rp'K"/TT[-H*)Sih>~*(rGh?AÊ\d鵟Y *-3PSkvGh9O4k;.O|8YT*F4bV8+c}`5 $֬GR:E\B'slr80፺ld55WSg m R< 6Xrp'5``j ]oQ3W fiٛrz3H뜲p)my&Z񆺅a23y"72 ;DR11-C,DR11-C OUTPUT BUFFER DRACIB: 167774 ;DR11-A,DR11-C INPUT BUFFER DRIVEC: 0 ;DR11-A,C INPUT INTERRUPT VECTOR DRILVL: 0 ;DR11-A,C INPUT INTERRUPT SERVICE LEVEL DROVEC: 0 ;DR11-A,C OUTPUT INTERRUPT VECTOR DROLVL: 0 ;DR11-A,C OUTPUT INTERRUPT SERVICE LEVEL ;RF11 RFDAE: 177470 ;RF11 DISK ADDRESS AND ERROR RFDBR: 177472 ;RF11 DATA BUFFER RFDAR: 177466 ;RF11 DISK ADDRESS REGISTER RFWC: 177462 ;RF11 WORD COUNT REGISTER RFCAR: 177464 ;RF11 CURRENT ADDRESS REGISTER RF11IT BR1 SIF ;1 SR0,00#4T BI: 11DC U Y ELATRNTEAL6 D AN4 L VELEN OPTRUERNT;I T ES TOLTRON C11C-UDL TTSB . : OTBOND EE OPSC: D311MR ORRR EUMKSECCH ; T HL: D211MR D311MRQ BE M SUCKHE CERRD OGHHIT ES;T 7 ,#R1P CM 2 1DR1 MNE B UMKSECCHR DEORW LOT ES;T 565011,#R0P CM 1 1DR1 MNE B R20,2073#1P CM 1 RDC A UMKSECCHE ATEREN;G R0+,2)(RD AD: D111MR 003177T AEDATOC;L B -D11MRF ORDWOT RSFI ;2 ,R003117 #OV M R1R CL M SUCKHE CTERANEGEO TUPT SE ; R0R CL: DB11MR OTBOND EBR E OPSC: B392M7 CSR: 177460 ;RF11 CONTROL STATUS REGISTER RFCSRH: 177461 ;HIGH BYTE ADDRESS OR CSR ;RC11 RCLA: 177440 ;RC11 LOOK AHEAD REGISTER RCDBR: 177456 ;RC11 DATA BUFFER RCDAR: 177442 ;RC11 DISK ADDRESS REGISTER RCWC: 177450 ;RC11 WORD COUNT REGISTER RCBAR: 177452 ;RC11 CURRENT ADDRESS REGISTER RCCSR: 177446 ;RC11 CONTROL STATUS REGISTER RCCSRH: 177447 ;HIGH BYTE ADDRESS OF CSR ;DT11 DTCSR1: 177420 ;BUS SWITCH CONTROL STATUS REGISTER ;RK11 RKDBR: 177416 ;RK11 DATA BUFFORRR EUMKSECCH ; T HL: B292M7 B392M7Q BE M SUCKHE CERRD OGHHIT ES;T 6 ,#R1P CM 2 2B79 MNE B UMKSECCHR DEORW LOT ES;T 311617,#R0P CM 1 2B79 MNE B R20,1673#1P CM 1 RDC A UMKSECCHE ATEREN;G R0+,2)(RD AD: B192M7 003177T AEDATOC;L B 2Y79 MOFD OR WSTIR;F R20,1073#1V MO 1 RLR C UMKSECCHE ATEREN GTOP UET;S 0 RLR C B292M7E BN B 2Y79 MCEVIDES ;I 003117@#1,7013 #MP C DB11MRQ BE B -D11MRE ICEV DIS ;0 1073#1,@0207#1P CM B -D11MR, YB92M7T ES;T T OODBENE BN T NOO D1,3= 1IT BR2 SIF ;2 ~@|~ hp`Kze?ߺ~-ABwfec"Љr! VJw~+|s(ii \.]2i6u1AZ%ܯ 6o,Cw06݁ EKn(KL0/EEqkfccC&uOm;C~ZcL-0.aw _&([퐪\*uhPoŤnWiF69u)#!y2*I%m:ͦmEMC09_7'?pFG)\ 7uh!X7q'khd/Ja#Mgg:@F2BEcƑ;ޟ&ݍ}[tՔڇRhT4i= XZ"%Kw){nA&-zyݵѣt_4ж[8HX.Ο6 yG.EE6r@aEER RKDAR: 177412 ;RK11 DISK ADDRESS REGISTER RKDAH: 177413 ;RK11 HIGH BYTE OF DISK ADDRESS RKWC: 177406 ;RK11 WORD COUNT REGISTER RKBAR: 177410 ;RK11 CURRENT ADDRESS REGISTER RKCSR: 177404 ;RK11 STATUS REGISTER RKCSRH: 177405 ;RK11 HIGH BYTE ADDRESS OF CSR RKDSR: 177400 ;RK11 DRIVE STATUS REGISTER RKDRV: 0 ;RK11 DRIVE SELECTED FOR TEST ;KE11 MQ: 177304 ;KE11 MULTIPLIER-QUOTIENT REGISTER AC: 177302 ;KE11 ACCUMULATOR SC: 177310 ;KE11 STEP COUNTER SRE: 177311 ;KE11 STSR0,0020 #IT BB:2Y79 M S ERADLOP RASTOTBOK UL BDB11MR, YB92M7T ES TTLBT.S PECO S5:2A79 MA 2Y79 MOT NISE ICEV;D R OR,ROERM SUCKHE;C LT H4:2A79 M5 2A79 MEQ B 10,#R1P CM 4 2A79 MNE B ERRD OOW LUMKSECCH ;5 7372#10, RMP C YA92M7T NO ; A492M7E BN N IORSVER HEOTT IIS ;4 0173#1,@1250 #MP C3:2A79 ME OPSC ; A592M7R B YA92M7N IORRR;E LT H2:2A79 MT ECRRCOM SUK ECCH ; A592M7Q BE 0 #11, RMP C CTREORNC IUMKSECCH ; A292M7E BN 5 7167,#R0P CM 3 2A79 MNE B NSIORSVE2 ;4 0173#1,@1207#1P CM zATUS REGISTER MUL: 177306 ;KE11 MULTIPLY DIV: 177300 ;KE11 DIVIDE NOR: 177312 ;KE11 NORMALIZE LSH: 177314 ;KE11 LOGICAL SHIFT ASH: 177316 ;KE11 ARITHMETIC SHIFT ;TC11 TCCM: 177342 ;TC11 CONTROL AND FUNCTION REGISTER TCST: 177340 ;TC11 GENERAL STATUS REGISTER TCDT: 177350 ;TC11 DATA BUFFER TCWC: 177344 ;TC11 WORD COUNT REGISTER TCBA: 177346 ;TC11 BUS ADDRESS REGISTER TCDRV: 400 ;DECTAPE DRIVE SELECTED FOR TEST ;CR11, CM11 CRS: 177160 ;CARD READER PS REGISTER ADE NUTION;C 1 2A79 MNE B OTBOF OND EOT NIF ;2 ,R003117 #MP C R1C AD M SUCKHE CTERANEGE ;0 ,R)+R2 (DD A1:2A79 M0 0073 7ATD TECALO ; YA92M7F ORDWOT RSFI ;2 ,R003017 #OV M R1R CL M SUCKHE CTERANEGEO TUPT SE ; R0R CL A 2Y79 MOFT ES;T A 2Y79 MSTTE ; YB92M7E BN T NOO D1, =12T BI2 SRF ;I R2,S0000#1T BI: YA92M7 ERADLOP TASROTBOE AP TERAP PYA92M7T ES TTLBT.S E:EAND EE OPSC T HL 4 .+Q BE 1 2PSK ECCH ;E SR,@22 #PBCM T HL 4 .+Q BE C @AT TS T HL 4 .+Q BE Q @M5,5252 #MP C IV@D0,v=hcӴAs)j 0.o#|eTVu;݈yµͻw-!IF`+zq]9}gtTl=Hc p**琥9xrs*j~.W"U:Rv4,Pȡ!s"J堵-CeDBP7a ?QsIM#rBR>mC U"7g?lDZ9:eD|2y;8 ͆~+R6Stfl$}Mη[ K,4Y1q+%rt2b`ZDRESS CRB1: 177162 ;CARD READER CARD IMAGE DATA BUFFER CRB2: 177164 ;CARD READER ENCODED DATA BUFFER ;CD11 CDST: 172460 ;CD11 CONTROL STATUS REGISTER CDCC: 172462 ;CD11 COLUMN COUNT REGISTER CDBA: 172464 ;CD11 BUSS ADDRESS REGISTER ;AD01-D ADDBR: 176772 ;AD01-D DATA BUFFER ADCSR: 176770 ;AD01-D CONTROL STATUS REGISTER ADCSRO: 176771 ;HIGH BYTE OF CONTROL STATUS REGISTER ;RP11 RPCA: 176722 ;RP11 CYLINDER ADDRESS DISK RPDAH: 176725 ;RP11 HIGH BYTE OF DISK ADDRESS0040 #OV M UL@M0,0040 #OV M IV@D0,0040 #OV M UL@M0,0040 #OV M IV@D0,0040 #OV M UL@M0,0040 #OV M IV@D0,0040 #OV M UL@M0,0040 #OV M IV@D0,0040 #OV M UL@M0,0040 #OV M MQ,@2525#5V MO K AC BTOK AC BDEVIDID ANY PLTIUL M0)/211P-PD (-A11KET ES TTLBT.S PECO S E)IZALRMNO (ORRR EONT AL;H LT H ODGOF IORRR EIPSK ; +4 .EQ B 3THWIC SREPAOM;C C @S3, #PBCM R ROERN OLTHA ; T HL D OO GIFR ROERP KI;S 4 .+Q BE 0 5252H IT WMQE ARMPCO ;Q @M0,5252 #MP C ORRR EONT AL;H LT H ODGOF IORRR EIPSKr RPDSR: 176710 ;RP11 DRIVE STATUS REGISTER RPDAR: 176724 ;RP11 DISK ADDRESS REGISTER RPWC: 176716 ;RP11 WORD COUNT REGISTER RPBAR: 176720 ;RP11 CURRENT ADDRESS REGISTER RPCSR: 176714 ;RP11 STATUS REGISTER RPCSRH: 176715 ;RP11 HIGH BYTE ADDRESS OF CSR ;AA11 SCSR: 176756 ;AA11 STATUS REGISTER DAC0: 176760 ;AA11 X REGISTER DAC1: 176762 ;AA11 Y REGISTER ;DN11 DNCSR: 175200 ;DN11 CONTROL STATUS REGISTER DNVEC: 340 ;DN11 INTERRUPT VECTOR DNLVL: 342 ;DN11 PRIORITY ; +4 .EQ B 050010H IT WACE ARMPCO ;C @A5,0000#1P CM E IZALRMNOT ARST ; OR@NR CL 0 0070 1THWIC AADLO ;C @A0,0070#1V MO 2 2525 1THWIQ MADLO ;Q @M2,2525#1V MO E IZALRMNO) 201/-1DP(PA 1-E1 KSTTEL TTSB . E OPSC ) FTHI SHTIG(RR ROERN OLTHA ; T HL D OO GIFR ROERP KI;S 4 .+Q BE 0 1THWIR SREPAOM;C RE@S0,11 #PBCM R ROERN OLTHA ; T HL D OO GIFR ROERP KI;S 4 .+Q BE 0 H IT WMQE ARMPCO ; MQ,@#0P CM R ROERN OLTHA ; T HL D OO GIFR ROERP KI;S 4 .+Q BE 0 0000 1THWIC AREPAOM;C AC,@000010nʔ흫B^84.[ፎrRy)De&?~Zͦ*Kw$-1>`H-C!j K2J>W3@gNH%FY}XCEqQgk0]/2-Cg48<KY#5{ xΡ ΅ڢ fytȺ;E 2E&E8$00Av,Ra| ugoUWufEA(T q&j%,r̻tE\ZR˄(V;_A,{daA~oS-).̛?`g㍐̓_;!!-GtǕUN!>X3mLCJJ7 'h? FiNh$b1Cgfk{2xU8[}EQ*9Ƥi`8"CUzHDg#Ȯc*Ť%\i@xmvK3z#|=cKy4` "Y@TjH!ź @jA3<.2d%齘]59,/yޅ-¼!:>7=,(EKi&1-(.+"'kd!분.[/̫y$EݗGVWA=|t!{n# pxx<1 RECEIVER DATA BUFFER ;DC11 #2 DCRSR: 174010 ;DC11 #2 RECEIVER STATUS REGISTER DCRBR: 174012 ;DC11 #2 RECEIVER DATA BUFFER DCTCSA: 174014 ;DC11 #2 TRANSMITTER STATUS REGISTER DCTDBA: 174016 ;DC11 #2 TRANSMITTER DATA BUFFER ;AFC11 AFCSR: 172570 ;AFC11 CONTROL STATUS REGISTER AFDBR: 172572 ;AFC11 DATA BUFFER AFCAR: 172574 ;AFC11 CHANNEL ADDRESS REGISTER ;TM11 MTS: 172520 ;TM11 STATUS REGISTER MTC: 172522 ;TM11 COMMAND REGISTER MTBC: 172524 ;TM11 BYTE COUNT REGIST BI 5 ROM C ERSTGIREN IOCTLESEE ICEV DNDCOSET GE ; R52,SRV MO R SXTNEK ECCH ; T1AI WNE B ESICEV DNGTIUPRRTEINO NIF ;5 ,R543717 #IT B R5M CO R TEISEG RONTIECEL SCEVIDET RSFIT GE ; R51,SRV MO D TEECEL SREWES CEVIDEO I/F IEE STOT ES TTLBT.S PECO S3:ITWA ITWA T AI W ONTIUCTRNS IITWAE THH UGROTH ; T AI W USS AS PLDOUSHE ACTR ; T AI W NDOU FOT NIFH NCRA;B 3 ITWAQ BE T SET BIE ACTRS ;I S ,P20 #IT B NTOUIC0,10 #OV M PECO S T3AI WEQ B DECOS HI TSSPABY, 451/ 1IF ;T RERT,T#6P CM T bTER MTCA: 172526 ;TM11 CURRENT ADDRESS REGISTER ;KW11-P KWCSR: 172540 ;KW11-P CONTROL REGISTER KWCSB: 172542 ;KW11-P COUNT SET BUFFER KWCTR: 172544 ;KW11-P COUNTER BUFFER ;DR11-B DRDBR: 172416 ;DR11-B DATA BUFFER DRST: 172414 ;DR11-B CONTROL STATUS REGISTER DRBA: 172412 ;DR11-B BUS ADDRESS REGISTER DRWC: 172410 ;BR11-B WORD COUNT REGISTER ;UDC11 UDCR: 171776 ;UDC11 CONTROL REGISTER UDSR: 171774 ;UDC11 STATUS REGISTER ;KG11 KGCSR: 170700 ;KG11-A CONTROL UNCO ILR CS:ITWA S)APTRE ACTR (ITWAF OSTTEL TTSB . S CEVIDED ANM RAOGPRT ARSTRE ; STP JM L AI FEROW PXTNER FOG LA FARLE;C G LAFF PLR C STTET AI WTECUXE;E S ITWAQ BE S ILFAR WEPON HE WET;S G LAFF PST TO:PRND EC ND.E PECO S PS1, RVBMO L LVIR PLR C ORCTVEE ORSTRE ;C VEIR,P42#2V MO Q IR PLR CX:QEIR PP NO: QBIR PT XI ETOO ;G X QEIR PBR L VELET ESQURE >TYRIIOPRR SEESOCPR ; ENWHD REURCC OPTRUERNT IAN! ORRR;E LT HA:RQPI ITEXO TGO ; EXRQPIR B EDILFAT UPRRTEIN! ORRR;E LT H URCC^q6jNR%YrtӈH $P&;!hK5Hr 2W+dg?M(~G~\ 먄Y-{l@d ey;޻OZ> \OGWƘfCXߒqPjjX$h`ΙNo$"sl2~#9;.&OtL7|/57 vVJǒ,óJw{1Hm$mi_dB(-I)J ۛWkKD9)Uyֻ!N էT7)Z&.}߾x{& |gQ؂plTa܋}6%:V}3\Qϙe I9r yrMiE'UiBm g -C? ;BU?&;wqrjXFci,Yz{ /(L'!%j]$aMi Axb%3]ߛ{18/0HP1q⑋STATUS REGISTER KGBCC: 170702 ;KG11-A BCC REGISTER KGDBR: 170704 ;KG11-A DATA BUFFER ;BUS TESTER SECTION 1 ABDBR: 170000 ;BUS TESTER #1 DATA BUFFER ABCA: 170002 ;BUS TESTER #1 CURRENT ADDRESS REGISTER ABWC: 170004 ;BUS TESTER #1 WORD COUNT REGISTER ABCSR: 170006 ;BUS TESTER #1 CONTROL STATUS REGISTER ;BUS TESTER SECTION 2 BBDBR: 170010 ;BUS TESTER #2 DATA BUFFER BBCA: 170012 ;BUS TESTER #2 CURRENT ADDRESS REGISTER BBWC: 170014 ;BUS TESTER #2 WORD COUNT REGISTER BBCSR: OLDOUSH ; PTRUERNT IAN2 L VELEO TTYOIRI PEROW;L S ,P00#1B OV M ORCTVEN IOITOSEP;R ECRVPIB,RQPI #OV M OP N 3ELEV LTOY ITORRI PEROW;L S ,P40#1B OV M OP N 4ELEV LTOY ITORRI PEROW;L S ,P00#2B OV M OP N 5ELEV LTOY ITORRI PEROW;L S ,P40#2B OV M OP N 6ELEV LTOY ITORRI PEROW;L S ,P00#3B OV M OP N VLRLPIS, POV M ORCTVET ESQURE. NT IADLO ;C VEIR,PQAIR#PV MO T ES TITEX ; EXRQPIR B LYEROPPRD DEOA LOT NRQPI! ORRR;E LT H +6 .EQ B LYEROPPRD DEOA LEG RRQPIS WA ;Q IR,P4641 #MP C 3ELZ 170016 ;BUS TESTER #2 CONTROL STATUS REGISTER ;BUS TESTER SECTION3 CBDBR: 170020 ;BUS TESTER #3 DATA BUFFER CBCA: 170022 ;BUS TESTER #3 CURRENT ADDRESS REGISTER CBWC: 170024 ;BUS TESTER #3 WORD COUNT REGISTER CBCSR: 170026 ;BUS TESTER #3 CONTROL STATUS REGISTER ;BUS TESTER SECTION 4 DBDBR: 170030 ;BUS TESTER #4 DATA BUFFER DBCA: 170032 ;BUS TESTER #4 CURRENT ADDRESS REGISTER DBWC: 170034 ;BUS TESTER #4 WORD COUNT REGISTER DBCSR: 170036 ;BUS TESTER #4 CONTROL STATUS REGEV LATT UPRRTEINN ASTUEEQ;R RQPI0,00#4V MO 7 =ELEV LTYRIIOPRR SEESOCPRT SE ; PS0,34 #VBMO T BIT T ACTREX ;1 ,R577717 #IC B USATSTR SOESOCPRE AV;S 1 ,RPSV MO R TEINPOK ACSTT SE ;P ,SCKTA#SV MO . EDORON HBED ULHO SSTUEEQ RPTRUERNT IHE TMETIH ICWHT AELEV;L STUEEQ RHE TANTHS ES LISY ITORRI PERSSCERO PHE TILNT;U EDEROW LLYVESICEUC SISD AN7 L VELET AISY ITORRI PERSSCERO PALTINI;I HE T3.L VELET APTRUERNT IANS STUEEQ RSTTES HI;T REWARDHAQ IR PSTTEL TTSB . E OPSC S ,P40#3C BI 7 = Y ITORRI PETVNvGƲy5G3bd! bR5/Dδ8pOPF _@s(? 0oUdV;]; <_Z%'8U5FBlY{˼ZHÅV3Hg2;U~ZS9b?Cv#ń^WmPT a,̗~a0%- v#m PneHL0HpߺϡDqat-4' J#ʲ֋&HU"2_UyæRz5-͸xswLy} F SH>.mCT7l4'+ɎFMhc10Brjk0^^9Ud.b7M0cVh֌p@'2+&j_ Fo2CV]h\UxR54$F [z֏%cEN)}?hPN%k}/WfISTER .IF DF LATNC ;BUS LATENCY TESTER DRLWC: 170070 ;BUS LATENCY TESTER WORD COUNT REGISTER DRLBA: 170072 ;BUS LATENCY TESTER BUS ADDRESS REGISTER DRLST: 170074 ;BUS LATENCY TESTER CONTROL STATUS REGISTER .ENDC ;DM11-BB DMBCSR: 170500 ;DM11-BB CONTROL STATUS REGISTER DMBLSR: 170502 ;DM11-BB LINE STATUS REGISTER DMBVEC: 350 ;DM11-BB INTERRUPT VECTOR DMBLVL: 352 ;DM11-BB PRIORITY .SBTTL PROGRAM INITIALIZATION BEGIN1: MOV #STACK,SP ;SET UP PROCESSOR STACK MOV #PFAI STOD LEAI FPL SR!ROER ; T HL ) LYONE OD MELRNKE;( 4 .+Q BE S TUTA STOINT SEL VELEY ITORRI PAS;W 1 ,RR2P CM E OD MERUS& Y ORISRVPE SIN' OP'NA S IPL;S 2 ,R40#3C BI E OD MELRNKEF ICHANBR ; +6 .EQ B E?OD MELRNKE ; R1M,#UT BI D OR WUSATSTT GE ; R1S, POV M =7L VELEY ITORRI PET;S 7 L SP S DECON IOITNDCOT SE ; C SC 2 ,R40#3S BI 2 ,RPSV MO S DECON IOITNDCOT SE ; C SC T SEF ITSBIL VELEY ITORRI PARLE;C S ,P40#3C BI N IOCTRUSTINL SPE THT ES TTLBT.S STTER SOESOCPRT XI;E O PRND EEQ B RL,24 ;SET UP POWER FAIL SERVICE POINTER CLR PFFLAG ;CLEAR POWER FAIL FLAG CLR PASCNT ;CLEAR PASS COUNT CLR ISFLG ;CLEAR ISOLATION FLAG CLR PASCT ;COUNT FOR PASS PARAMETERS ;DETERMINE PROCESSOR TYPE, AND PROCESSOR OPTIONS MOV #4,@#6 MOV #RTI,@#6 ;SET UP TO RETURN FROM ;BUS ERROR TRAP MOV #3,R0 ;DETERMINE PROCESSOR TYPE SEC ;SET C BIT TST @PIRQ ;IF PIRQ EXISTS, PROCESSOR ;IS PDP-11/45, NO TRAP SBC R0 ;IF TRAP OCCURED, C BIT NOT CLEARED SEC ;SET C 451/-1DP POT NISR SOESOCPRF ;I IGNFCO1, #IT B PECO S NTMEREEC DTOD LEAI FERNTOI PR!ROER ; T HL 4 .+Q BE T ENEMCRDER TEINPOK ACSTD DI ;P ,S-2CKTA#SP CM D LEAI FFU MR!ROER ; T HL 4 .+Q BE 2 K-ACSTT TS H US PREFOBET ENEMCRDET NOD DIK ACST! ORRR;E LT H +4 .EQ B D?GEANCHK ACSTN ORDWOP TOS WA ;K ACST1,#-P CM S LTSUREE OD CONTIDION CCTREORNC IR!ROER ; T HL 4 .+Q BE T SEE BLDOUSH' 'ZY NL;O 1 ,R#4P CM 1 S VPMO ) R20(+1MPTE @PDMF V SE C CC 0 +1MPTEP,EM#TV MO 2 RLR C MPTER CL K ACSTNË jx|ذr^"˖.LeP%Q+낉/S}\gx\bG=Ɲ]u.Y(zO.&mtҮLJG/;F/cyOaﶼS'%𶆫a7|W-fCqVjb$i{lSXIG LtǰݹU[c7歪;¤53EȫWE*8!ZKPMl6WvqC\%a %x^રs~*x9dCBkd5uRz32H~ZuB)e`,@mv4'!"/KpbMg4J ɌN11Z|xԱ:̫.77C|$} Oenܒ L;zX \^ع񥾤j}$6hԷVaIyh'8BIT TSTB @#PS+1 ;IF PROCESSOR IS PDP-11/40 SBC R0 ;OR 11/45, C BIT WILL BE CLEARED CLR @#177700 ;IF PROCESSOR IS NOT PDP-11/10 ;A TRAP WILL OCCUR ;R0=3, PROCESSOR IS PDP-11/45 ;R0=2, PROCESSOR IS PDP-11/40 ;R0=1, PROCESSOR IS PDP-11/20 ;R0=0, PROCESSOR IS PDP-11/10 MOV #6,@#4 ;RESTORE TRAPCATCHER CLR @#6 MOV R0,CONFIG ;SAVE PROCESSOR TYPE MOV #1$,@#10 ;SET UP ILLEGAL INSTRUCTION TRAP MUL R0,R1 ;EXECUTE MULTIPLY INSTRUCTION BISB #1,CONFIG+1 ;SET EIS BIT IN PROC ;) SP2(,--1 #OV M HE TETESPR ;) SP,(-1 #OV M SPK,ACST #OV M ONTIUCTRNS IPDMFT ES TTLBT.S PECO S NTMERENC ITOD LEAI FCKTA SR!ROER ; T HL 4 .+Q BE ? NTMERENC IERNTOI PCKTA SHE TID;D SPK,ACST #MP C MPTED OA LTOD LEAI FPDMT! ORRR;E LT H +4 .EQ B P?EM TTOO GCKTA SOND OR WOP TID;D -1,#MPTEP CM T ULES RCTREOR CAS HR3 ; PDMTR TEAFS TUTA SCTREORNC IR!ROER ; T HL 4 .+Q BE ? CTREOR CUSATSTS ;I 2 ,RR3P CM S TUTA SET;G 2 ,RPSV MO ) R12(P+EM@TD TP M RYAR CET;S EC S 'SCCS D'TP MOFJESSOR DESCRIPTOR WORD 1$: MOV #2$,@#10 ;SET UP NEW ILLEGAL INSTRUCTION TRAP MOV #STACKK,R1 ;SET UP STACK FOR FIS CLR -(R1) CLR -(R1) CLR -(R1) CLR -(R1) FADD+ R1 ;EXECUTE FIS INSTRUCTION BISB #2,CONFIG+1 ;SET FIS BIT IN PROCESSOR DESCRIPTOR 2$: MOV #3$,@#10 ;SET UP ILLEGAL INSTRUCTION TRAP CFCC ;EXECUTE 11/45 FPP INSTRUCTION BISB #4,CONFIG+1 ;SET 11/45 FPP BIT IN PROCESSOR DESCRIPTOR MOV #FLTERR,@FPVECT ;LOAD INTERUPT VECTOR MOV #0,@FPVECT+2 3$: MOV #12,@#10 ;RESTORE T ULES RRTSEIN ; R31,#1S BI D OR WUSATSTE AV;S 3 ,RPSV MO C CC P EM TLR C P)(S 2LR C P)(S,--1 #OV M SPK,ACST #OV M R1R CL 2 P+EM,TMPTE #OV M1:PDMT ONTIUCTRNS IPDMTT ES TTLBT.S TSES TSEHE TTECUXE EN,IOPT;O O PRND EMP J NTMEGENAMAY OREM MAS HND;A 1 PDMTE BN 0 /411P-PDS IORSSCERO PIF ;1 G+FION,C10 #TBBI S STTEE ESTHE UTECEX ; D1TP MEQ B 451/-1DP PISR SOESOCPRF ;I IGNFCO3, #PBCM: G1NAMA PECO S CTREORNC IONTIOR PALONTIACFR ; T HL H NCRA BS-YE ; +4 .EQ B T?ECRRCON IOCTRA;F 1 NSFyrq4.ӓ2u%z2=m%׍B9&lX)1Z+±׺fڼ9:?3zP-7X7-/LA1?2oNi7Ӧ&}|~m'R*5}zKX(σ Z(3$)Hd3{1jBAoP5BAm1!Ctp8,b;[9yNf(k [x& pd.O3yU={EsN Y?1%ֱ|l3޹8Z1_$Si<gI(qix7Y6`fVFI6ILjڬ[3T .B9:>DaNgk=y4.;OKC Lpv㛓="Ooj]0%*Xsd~ch퀩FCI\7`U&]|h>q$xkn`5/:{fdwI)1lw#&}wDOsմSZ?Uw`Oz}I*԰IT|f@pZ_h_&#_ܶ{#dz M£lJ,2V+:GsD|LޗP[`BG(ҭR95#ecj}`rt?QH+r:kͬ<*3, BEQ CORTST ;DEVICE SELECTION, ;DETERMINE SIZE OF MEMORY ;INPUT DEVICE SELECTION FROM SWITCH REGISTER SWITCH: MOV SR,SR1 ;SAVE 1ST SWITCH REGISTER HALT ;SET SWITCH FOR 2ND SET MOV SR,SR2 ;SAVE 2ND SWITCHES HALT ;GET SWITCHES FOR THIRD SET MOV SR,SR3 ;SAVE THIRD SWITCHES JSR PC,@GETSW ;GO TO USER OVERLAY FOR ;SET UP MEMORY EXPANSION TEST LOWER LIMIT CORTST: MOV #40000,LOCORE ;START OF 12K CMP #DMYRTS,PRIME ;IF A FOREGROUND OVERLAY HAS BEEN BEQ CORTSB ;LCM S FPE AV;S S FPS FPST R WENS AVESA ;1 NS,AC0 ADITC S OPXL ENE B ESIM TL)MACIDE (10O ;D 2 REC D ERSWANM RO F2525T ACTRUB;S 0 AC1,ACD UB S ERSWANO T2525D AD ; C0,AC1 ADDAD R WENS ABY5 52 2LYIPLTMU ; C0,AC1 ALDMU 7 7777O NT I2525E IDIV;D 0 AC1,ACD IV DP:LOEX ERNTOU CEPSTT SE ; R22,#1V MO 5 52 2THWI1 ACD OA;L C1,A2525 #IDDC L 7777 7THWI0 ACD OA;L C0,A7777#7D CILD E OD MLEUBDOT SE ; D ET S 0074#4S FPLD: PPMFCO STTEN IOCTRUSTINP FPD NEBIOM CTLBT.S 0K:STIS F0 +4=. .1 AGAN MMP J:OADED ADD #20000,LOCORE ;START CORE EXPANSION IN NEXT 4K CORTSB: CMP #DMYRTI,IOTVEC ;IF A BACKGROUND OVERLAY BEQ .+10 ;HAS BEEN LOADED ADD #20000,LOCORE ;START CORE EXPANSION .IF DF LATNC CORTSC: MOV LOCORE,LATBUF ;IN NEXT 4K BIT #1000,SR2 ;IF BUS LATENCY TESTER BNE CORTS1 ;IS SELECTED ADD #20000,LOCORE ;START CORE EXPANSION ;IN NEXT 4K .ENDC ;FIND OUT HOW MUCH MEMORY IS AVAILABLE CORTS1: CLR HCORE ;CLEAR CORE LIMIT MOV LOCORE,R0 MOV #1$,4 ;SET UP RETURN F PECO S CTREORNC IERSWANF OLFHAD ONEC;S LT H +4 .EQ B ERSWANF OLFHAD ONEC SCKHE;C S2AN0,2315#1P CM T ECRRCOINR WENS AOFF AL HSTIR;F LT H +4 .EQ B ERSWANF OLFHAT RSFIK ECCH ;1 NS,A017213 #MP C CTREORNC IERNTOI PCKTA;S LT H +4 .EQ B ONTISIPOR TEINPOCKTA SCKHE;C S4ANK,STIS#FP CM T ECRRCOINW PSL NAFI ; T HL 4 .+Q BE W PSL NAFIK ECCH ;3 NS,A10 #PBCM R TEINPOK ACSTL NAFIE AV;S 4 NS,AR4V MO R WENS AOFF AL HNDCOSEE AV;S S2AN+,4)(RV MO R WENS AOFF AL HSTIR FVESA ;1 NS,A)+R4 (OV M 6+:KES&rK$O(s'c2oP΀ A|se` ϩ ~e<9U;ׂOt_|ۍը"-UG1RJ4\ PN!3Jat /~C^6B/vGՌgk@LRۃ9 _|m,oӸ/,C0MHzcsm Ecd2ϩ!VR@M erd"t{a>P/!}KEG8uMIL6@"z!URS+]>1md(Bf&'|A=#C%>=[w硊>#Ťk1%ZWS3y\zB^-{ir׍R5G-oxQgG4?/2DYuh"wIx|M+{z>l ix8J$h\t/uDf(mQطiqqpkz/. \u}@jV:%sI~"9д;^FONm$EAR INTERRUPT OCCURED FLAG ST00: BIT #400,R2 ;IF SR2 BIT 8=1, DO NOT BNE ST01 ;INITIALIZE RP11 DISK ;RP11 DISK PACK CONTROLLER INITIALIZATION MOV #43503,RPFUNCTION ;SET UP DISK FUNCTION ;WRITE IN LOW BYTE ;WRITE CHECK IN HIGH BYTE RPD: MOV LLIMIT,@RPBAR ;SET UP ADDRESS OF ;WRITE/CRIT CHECK BUFFER MOV RPWORDCT,@RPWC ;SET UP WORDCOUNT TSTB @RPCSR ;WAIT FOR CONTROLLER READY BPL .-4 MOV #15,@RPCSR ;RESET DRIVE TSTB @RPCSR ;WAIT FOR CONTROLLER READY BPL .-4 R14, #OV M1:IV D N IOCTRUSTINE IDIV DHE TSTTEL TTSB . E OPSC 3 RTOINT IFSHT NOD DI2 RR!ROER ; T HL 4 .+Q BE 3 RTOT IFSH2 RID;D R32,2525#1P CM D ENXT ETOD LEAI FGNSI! ORRR;E LT H +4 .EQ B 2? RIND ENXT EGNSID DI ; R21,#-P CM S DECON IOITNDCOT ECRRCOIN! ORRR;E LT H +4 .EQ B R40,#1P CM 4 S VPMO 3 RTOINT GHRIS CELA P162 RFTHI;S R2),R12(C+ @HCAS S DECON IOITNDCOE THT SEE PR ; PS7, #VBMO ) 525212(#D TEIFSHE BTO# D OA;L 2 ,R BOV M ERSTGIREX DEIND OA;L 1 ,R10 #OV M T)GHRIS CE" TST @RPDSR ;WAIT FOR ACCESS READY BPL .-4 CLR @RPDSR ;CLR ATTENTION MOV #103,@RPCSR ;SET INTERRUPT ENABLE ;WRITE FUNCTION ST01: BIT R1,#40000 ;IF SR1 BIT 14=1, DO NOT BNE ST1 ;INITIALIZE TELETYPE PUNCH AND PRINTER ;KL11 TELETYPE TRANSMITTER INITIALIZATION BIS R3,@TTCSR ;INITIALIZE TELETYPE PUNCH AND PRINTER ST1: BIT R1,#100000 ;IF SR1 BIT 15=1, DO NOT INITIALIZE BNE ST2 ;TELETYPE READER ;KL11 TELETYPE RECEIVER INITIALIZATION BIS R4,@TRCSR ;INITIALIZE TELETYLA P16 (NTOU CFTHI SADLO ;P EM,T6.-1 #OV M ERSTGIRET ULES RARLE;C 3 RLR C2:HCAS PECO S LYEROPPR3 ROFT OUD TEHI SOT NAS W #R!ROER ; T HL 4 .+Q BE ? R3F OUT OEDFTHI S #AS;W 3 RST T R!ROER ; T HL T ULES RCTREOR CIFH NCRA;B 4 .+Q BE ? 525212=#R2 ;2 ,R525212 #MP C ESOD CONTIDION CCTREORNC IR!ROER ; T HL 4 .+Q BE 1 ,R12 #MP C 1PSOV M R2O TR3N I #FTHI;S R2),R42(C+ @HCAS S DECON IOITNDCOE THT SEE PR ; PS5, #VBMO ) 525212(#D TEIFSHE BTOE LUVAT GE ; R3B,V MO R TEISEG REXND IADLO ;KC2ӳFpT6bi!S*>!FmC#+n7&F|]Z2zt!{jވYQi+[CEvPS\ә&&/'HNQ?+`*;,иhg˥xs)bqQZ" RUڐSg?v9˝LH#؁$^XeSYT?^#m :ћA܊֏d]F?6^}YoyI6وiIz kov~.f̽%D-W*3$Z׮(2)?l[=,c{̖NF cJ=gS~)tb{j1"yg-=.Pb\bHvn!4JaC{xҀk #]28%owʁm%BE&K?wv8~#^024E>?~ w;^} Z`ՐfR5[Eh-!L&v.);je$rsih—;crwUԲ?I$G 6H=+x߱0{묟5/F偤]fY}gUATCRF ;CLEAR INTERRUPT OCCURED FLAG ST6: BIT R1,R3 ;IF SR1 BIT 6=1, DO NOT BNE ST7 ;INITIALIZE KW11-P PROGRAMMABLE CLOCK ;KW11-P PROGRAMMABLE CLOCK INITIALIZATION MOV #1000.,@KWCSB ;SET CLOCK COUNTER FOR ;1000 (DECIMAL) COUNTS MOV #101,@KWCSR ;START COUNTER AT 100KHZ ;RATE, INTERRUPT WHEN COUNTER ;GOES TO 0 (AFTER 10 MS) CLR KWRATE ;NEXT COUNT RATE WILL BE 10 KHZ CLR WATCKP ;CLEAR INTERRUPT OCCURED FLAG ST7: BIT R1,#200 ;IF SR1 BIT 7=1, DO NOT BNE ST8 ;C R34,5252 #MP C LTSUREH MST ECRRCOIN! ORRR;E LT H +4 .EQ B T?ULES RSH MCTREOR;C 2 ,R-1 #MP C ESOD CONTIDION CCTREORNC IR!ROER ; T HL 4 .+Q BE 4 ,R11 #MP C ESOD CONTIDION CCTRAXT;E R40,7677#1C BI 4 R TEISEG RINS DECON IOITNDCOE AV;S 4 ,RPSV MO 1 C=0,V=0,Z=1,N=),R34(5252 ; 2)(R-1T=ULES R5252122XY PLTIUL;M R2),R12(C+ @UL M MPTE2, #OV M ERSTGIREX DEIND OA;L 1 ,R10 #OV M NDCAPITIUL MADLO ;2 ,R525212 #OV M R3R CL: L2MU PECO S H)MS (LTSURET ECRRCOIN ; T HL 4 .+Q BE ? H)MS (lc@ @ @ @ @ @ @ @ &lF`0@ @ `0vl@ @ @ @ @ @ @ @ 9TjfnVh1@@0@ rV@ @ @ @ @ @ @ @ @ nHVb6v`Fh0d @ `0wj@ @ @ @ @ @ @ @ vC`5f7+`T@ &@ ` f8@ @ @ @ @ @ @ @ r hd7@(b@6`2@ `0F@@ @ @ @ @ @ @ @ rKd`@1v`Fn0d @ `0f`1@ @ @ @ @ @  P ;INITIALIZE LP11 LINE PRINTER ;LP11 LINE PRINTER CONTROLLER INITIALIZATION MOV #40,SOLPAT ;FIRST CHARACTER TO BE ;PRINTED IS A SPACE CLR CLINCT ;CLEAR CLOUMN COUNT MOV #LPINTR,@#200 ;SET UP INTERRUPT SERVICE VECTOR MOV #200,@#202 ;SERVICE AT PRIORITY LEVEL 5 MOV R3,@LPCSR ;SET INTERRUPT ENABLE ST8: BIT R1,#400 ;IF SR1 BIT 8=1, DO NOT BNE ST9 ;INITIALIZE BUS TESTER ;SECTIONS 1 AND 2 ;BUS TESTER SECTIONS 1 AND 2 INITIALIZATION MOV #2,@ABWC ;SET UP SECTION 1LTSURET ECRRCO ; R2T TS ) SH(LT ULES RCTREORNC IR!ROER ; T HL T ECRRCOS IH)LS (LTSUREE THF ICHANBR ; +4 .EQ B 2?=1T ULES;R 3 ,R12 #MP C 'S 0TO= T NOS C' CR!ROER ; T HL T ECRRCOE ARS C' CIFH NCRA;B 4 .+Q BE ? =0'SCC ; R17,#1T BI S LTSUREE OD CONTIDION CET;G 1 ,RPSV MO ) SH(L3 ;RH)MS (R2N ILTSURE5 2XY PLTIUL;M R2),R42(C+ @UL M ESOD CONTIDION CETESPR ; C SC R IEPLTIUL MADLO ; MPTE2, #OV M ERSTGIREX DEIND OA;L 4 ,R10 #OV M NDCAPITIUL MADLO ; R25, #OV M R3R EACL ; R3R CL: L1MU X (,G~>AtA, d(kWNӇJtX^:PtY Qr +o ;H̤J?`\inLrAOEAyòTy-u.Z^k3'OSC.n,5 1`s.᫮gHo6s,z91 t$i,O ݹ=Ag^Ęʭ'F,Æ;)7 -\@47҇&-z}5;O2'I% <+?XqC^j%0ruVJQ}v;v١ )b'/ yr0u*7&li!8v=0ڸqE,i+Wg l HM= =bP IFopb~lƒ%6Y2J`Jvׁ9 2 a9n@8M Z}.H-Mpoc@ @ @ @ lHVb7v`jd @ l0@ @ @ @ @ @ @ @ fC`5fch1T@ &@ ` fb$@ @ @ @ @ @ @ @ r hd6b9d0F@5`2@ p6f@@ @ @ @ @ @ @ @ &p@&b@ @ `0wn@ @ @ @ @ @ @ @9Tj2nĜb2@@0@ n8w@@ @ @ @ @ @ @ @ lHVf8v@p1d @ `0Vp1@ @ @ @ @ @ @ @ fC`5&fc`2@ &@ ` f@ @ @ @ @ @ @ @ r hd7h18b@1`2@ h0@ FOR 2 BYTE TRANSFER ;DEVICE WILL SHIFT WORD FOUND ;AT BUS ADDRESS 1 PLACE LEFT MOV #REC1A,@ABCA ;SET UP BUS ADDRESS OF DATA CLR REC1A ;CLEAR TEST LOCATION CLR SEND1A ;CLEAR PATTERN TO BE TRANSMITTED CLR EXP1A ;CLEAR EXPECTED RESULT MOV #45511,@ABCSR ;SET UP SECTION 1 FOR ;NPR, DATIP-DATAO, ;INTERRUPT ON LEVEL 6 ;1MS DELAY BETWEEN INTERRUPTS MOV #173,@BBCSR ;SET UP SECTION 2 FOR ;INTERRUPT ON LEVEL 7 ;100 US DELAY BETWEEN INTERRUPTS CLR WATCONTIUCTRNS ILYIPLTMUT ES TTLBT.S 11KTR FOK ECCH ; G1NAMAP JM S EIE AV HOT;N 1 UL MNE B ESDOR SOESOCPRF ;I +1IGNFCO1, #TBBI E OPSC: TBRT USATSTT ECRRCOIN! ORRR;E LT H TBRTQ BE ? USATSTT ECRRCO ; R12, RMP C RDWOS TUTA SET;G 1 ,RPSV MO: TART PECO STOO ;G B TT RBR D LEAI FTT RR!ROER ; T HL T RT ) SP-(A,TT#RV MO ) SP-(2, ROV M CKTA SHE TUPT SE ; R2S, POV M ERNTOI PCKTA SHE TETES;R SPK,ACST #OV M ONTIUCTRNS ITT RHE TSTTEL TTSB . E OPSC T HL 4 .+Q BE P EM,T-1 #MP C MPTEO chd6p9b0@2`2@ `0V@0@ @ @ @ @ @ @ @ &h``@ @ `0`5@ @ @ @ @ @ @ @ 9Tj2Fn6Ĝ`2V@ @0@ n9w@@ @ @ @ @ @ @ @ lHVd4v``d @ l0ä@ @ @ @ @ @ @ @ fC`56fcj0$@ &@ ` gl7@ @ @ @ @ @ @ @ r hd6r19d0V@2`2@ l6@@ @ @ @ @ @ @ @ &j&f6@ @ `0`2@ @ @ @ @ @ @ @ 9Tj2fn8Ɯ`2@@0@ n8w@@ @ @ @ AB ;CLEAR BUS TESTER SECTION ;1 INTERRUPT OCCURRED FLAG CLR WATCBB ;CLEAR BUS TESTER SECTION 2 ;INTERRUPT OCCURED FLAG ST9: BIT R1,#1000 ;IF SR1 BIT 9=1, DO NOT BNE ST10 ;INITIALIZE BUS TESTER ;SECTIONS 3 AND 4 ;BUS TESTER SECTIONS 3 AND 4 INITIALIZATION MOV #200,@CBWC ;SET UP SECTION 3 ;FOR 200 WORD TRANSFER MOV #CBBUF,@CBCA ;SET UP BUS ADDRESS OF DATA MOV #52615,@CBCSR ;SET UP SECTION 3 FOR ;NPR, DATO, ;INTERRUPT ON LEVEL 5 ;DELAY BETWNT I'S 1NDTEEX ; MPTET SX S DECON IOITNDCOL ALT SE ; C SC P EM TLR C PECO S MPTEO NT INDTEEXT NOD DIS 0'! ORRR;E LT H +4 .EQ B MPTET TS ] 2)(R[CP EM TTOINS 0'D ENXT;E ) R2C(T SX S DECON IOITNDCOL ALR EACL ; C CC P EM,T-1 #OV M ERSTGIREX DEINP UET;S 2 ,R10 #OV M ONTIUCTRNS IXT SHE TSTTEL TTSB . E OPSC 5 RADLOT NOD DIK AR MR!ROER ; T HL 4 .+Q BE ? CTREOR CR5S ;I 5 ,R#7P CM T HL 4 .+Q BE ? CTREOR CERNTOI PCKTA SIS ;P ,SCKTA#SP CM R TEMERAPAD HEUS PET GOT NID DNETIOUBRSU! ORruri4{ly<9;pN8O x.sʱmN%ms- JZq9Y#|^-n;ٛNR[ {!xV+%҄.4 G[&E0-Cm0gj#V%jruhsO9]v{T:~=2jS%VrG|ftL6Zg'Gz)o;v>.,ij%$i-J)ך7x:O(!DshvmpKKhj[tL6cUHr /=@:gb&mʣCbv6|^ʪ#_t#v&l| 8p؁`||݀W=א *oAGV~\[ĘXj%b4sMDhbZ8/|_QqK~jv$h*~W SbA$eY'c@ @ @ 9fTpn4Vj1@@0@ p0F@ @ @ @ @ @ @ @ @ lF`8v`Fhd @ `0Vj4@ @ @ @ @ @ @ @ f3`1&f+nt@ &@ ` fD@ @ @ @ @ @ @ @ r hd6r9d0@2`2@ r5@4@ @ @ @ @ @ @ @ fp@&h@ @ `0f@ @ @ @ @ @ @ @9vTb3n4Vh1@ @0@ d4@ @ @ @ @ @ @ @ @ dGd8v`nd @ n5vj8@ @ @ @ @ @ @ @ &;`&fcr1@ &@ ` fp2@ CLR WATCRC ;CLEAR RC11 INTERRUPT ;OCCURED FLAG ST17: CLR DCDAT1 ;CLEAR TRANSMIT DATA FOR ;DC11 #1 CLR DCDAT2 ;CLEAR EXPECTED RECEIVE ;DATA FOR DC11 #1 CLR DCDAT3 ;CLEAR TRANSMIT DATA FOR ;DC11 #2 CLR DCDAT4 ;CLEAR EXPECTED RECEIVE ;DATA FOR DC11 #2 BIT R2,#1 ;IF SR2 BIT 0=1, DO NOT BNE ST1B ;INITIALIZE DC11 #1 ;DC11 #1 ASYNCHRONOUS LINE UNIT INITIALIZATION CLR @DCTDBR ;CLEAR DC11 #1 TRANSMITTER ;DATA BUFFER TO TRANSMIT ;0S AS FINGSI UOR XSTTEL TTSB . E OPSC T HL 4 .+Q BE P EM,T525212 #MP C T.ES,DCEURSOR XO ;) R2C(1, ROR X NDRAPE OONTINATIES DADLO ;P EM,T-1 #OV M NDRAPE OCEURSOD OA;L R15,5252 #OV M ERSTGIREX DEINP UET;S 2 ,R10 #OV M1:OR X N IOCTRUSTINR XOT ES TTLBT.S TSES TONTIUCTRNS I450,/411P-PDL TTSB . T ES TORSSCERO PITEX ; RODPENP JM 5 4OR0 /411P-PD ; R1XOE BN T NOS IORSSCERO PIF ;G FION,C#2T BI: 45TS PECO S NEDOL IL TOPLO ; BAWA SNE B ERMBNUT ES TNC;I 1 T+ES TCBIN R BEUM NCEENEREF RNTMERENC;I c3`4fbr1@ &@ ` l8@ @ @ @ @ @ @ @ r hp1n9d0@`2@ p2@4@ @ @ @ @ @ @ @ r0v&f@ @ `0Fj@ @ @ @ @ @ @ @ 9fT`3n4Vh1v@ @0@ d0f@@ @ @ @ @ @ @ @ dFf8v@p0d @ `0l1@ @ @ @ @ @ @ @ V3`9&f7+r@ &@ ` l2@ @ @ @ @ @ @ @ r hr5h8b@8`2@ `0@@ @ @ @ @ @ @ @ r0h8@ @ `0h@ @ @ @ @ RST CHARACTER BIS DCOUTF,@DCTCSR ;SET DC11 #1 TRANSMITTER ;INTERRUPT ENABLE ;SET MAINTENANCE MODE ;SET FOR HIGHEST SPEED BIS DCINF,@DCRCSR ;SET DC11 #1 RECEIVER ;INTERRUPT ENABLE ;SET FOR HIGHEST SPEED CLR WATDC1 ;CLEAR DC11 #1 INTERRUPT ;OCCURED FLAG ST1B: BIT R2,#2 ;IF SR2 BIT 1=1, DO NOT BNE ST1C ;INITIALIZE DC11 #2 ;DC11 #2 ASYNCHRONOUS LINE UNIT INITIALIZATION BIS DCOUTF,@DCTCSA ;SET DC11 #2 TRANSMITTER ;INTERRUPT ENABLE ;SET F REC IN T ES TABSW D LEAI FABSW ; T HL 4 .+Q BE N IOCTRUSTINB WA SSTTE ;F RET,ES TMP C STTER DEUNN IOATEROP ; STTEB WA SA:ABSW ERMBNUE NCREFERE ; EF RLR C STTER DEUNR BEUM;N T ES TLR C ABSWF ONSIOATINMBCOL ALT ES TTLBT.S NTOUIC@#R CL E OPSC T HL 4 .+E BN T HL 4 .+I BM T ES TABSW T HL 4 .+Q BE T HL 4 .+L BP T ES TABSW T ES,T0002 #OV M ABSWT ES TTLBT.S PECO S MBCOTSE BN P EM,T-1 #MP C MPTE1,40 #DD A ET SISV ; T HL 4 .+E BL N O T =OT NISV ; T HL 4 .+E BG D LEfKKMxb6\$ dm4piOCxYڱnHNf/hׅүf__n7{%Z{[ r+=z=cح,岟t6: l#?8_8Koio"ELT;HQм%-!Jc\vz5tH[/GzwZ7AO&ړY}$Hnp`m󞭎-ĘãK!7;&|5oYَR{fqVLkahّ^ {ς[kw,Ffdbd)PhR4 c@ `0j@ @ @ @ @ @ @ @ 9fThfn8Ɯ`2@ @0@ hv@@ @ @ @ @ @ @ @ bFFd6v`j9d @ b0p@ @ @ @ @ @ @ @ 3`46fch1@ &@ ` jD@ @ @ @ @ @ @ @ r hp1`39d @3`2@ b1W@4@ @ @ @ @ @ @ @ p0&`@ @ `0fn1@ @ @ @ @ @ @ @ 9fThnĜb2@ @0@ `@ @ @ @ @ @ @ @ @ bFF`9v`rd @ b0v`@ @ @ @ @ @ @ @ MAINTENANCE MODE ;SET FOR HIGHEST SPEED CLR @DCTDBA ;CLEAR DC11 #2 ;TRANSMITTER DATA BUFFER BIS DCINF,@DCRSR ;SET DC11 #2 RECEIVER ;INTERRUPT ENABLE ;SET FOR HIGHEST SPEED CLR WATDC2 ;CLEAR DC11 #2 ;INTERRUPT OCCURED FLAG ST1C: BIT R2,#4 ;IF SR2 BIT 2=0, INITIALIZE BEQ ST1C1 ;AA11 D/A CONVERTER BIT #20,SR3 ;IF SR3 BIT 4=1, DO NOT BNE ST1D ;INITIALIZE VR20 2 COLOR SCOPE ;AA11 WITH SCOPE OPTION INITIALIZATION ST1C1: MOV #AA11,AA11IV ;SET UP INTAI FREPAOM;C LT H +4 .EQ B REPAOM;C +1MPTEP,EM TPBCM: MBCOTS UEAL VSEBA ; MPTER CL: M1COTS DD OTHWIE YT BENEVE LUVAL ALE ARMPCOT ES TTLBT.S RNTURE1,OMSC#TV MO 3 OMTCE BN 1 P+EM TCBIN 1 P+EM TMBCO N URET,RM3CO#TV MO E OPSC D LEAI FTEBYT ENEMPLOM;C LT H +4 .EQ B +4MPTE1,P+EM TPBCM 4 P+EM TEC D TEBYD OD ; +1MPTEB OM C3:OMTC RNTURE3,OMTC #OV M TADAE NCREFERE ; +4MPTER CL A AT DSEBA ; MPTER CL ) TEBYD OD (MBCOT ES TTLBT.S M2CO TNE B MPTEB NC I MPTEB OM C RNTURE2,OMTC #c@ @ @ @ @ @ @ 3`4&f7+rd@ &@ ` n5@ @ @ @ @ @ @ @ r hp1h8b@8`2@ f06@0@ @ @ @ @ @ @ @ r0Fr9@ @ `0fr@ @ @ @ @ @ @ @ 9fThn4Vh1@ @0@ r0@ @ @ @ @ @ @ @ @ bFFd9v`Vp0d @ `0b@ @ @ @ @ @ @ @ 3`4&f7+`T@ &@ ` `8t@ @ @ @ @ @ @ @ r hp1b9b0@9`2@ l1@8@ @ @ @ @ @ @ @ b0r9@ ERRUPT VECTOR MOV R3,@SCSR ;SET SCOPE CONTROL ;INTERRUPT ENABLE ST1D: BIT R2,#10 ;IF SR2 BIT 3=1, DO NOT BNE ST3B ;INITIALIZE AFC11 ;ANALOG MULTIPLEXER ;AFC11 ANALOG MULTIPLEXER INITIALIZATION MOVB #-20,AFCTR1 ;SET UP TO CLEAR MOV #AFTAB1,AFPTR ;AFC11 DATA TABLES ST1D1: CLR @AFPTR ;CLEAR TABLES ADD #2,AFPTR INCB AFCTR1 BNE ST1D1 MOV #AFTAB1,AFPTR ;SET UP POINTERS MOVB #-10,AFCTR1 ;AND SAMPLE COUNTS MOVB AFCTR1,AFCTR2 ;FOR STORAGE OF ;INDIVIDUAL SAMOV M PECO S EDILFAE YT BNTMERENC IORT ENIMPLOM;C LT H +4 .EQ B REPAOM;C +4MPTEP,EM TPBCM 4 P+EM TEC D MPTEB OM C2:OMTC RNTURE2,OMTC #OV M TADAE NCREFERE ; +4MPTER CL A AT DSEBA ; MPTER CL ) TEBYN VE(EB OM CSTTEL TTSB . P OO LGOD HEISIN FOT;N M CO TNE B NEDOR FOT ES TND ANTMERENC;I P EM TNC I MPTEM CO N URET,ROMTC #OV M PECO S EDILFAT ENEMCRDER ONTMELIMPCO ; T HL T ES;T 4 .+Q BE E ARMPCO ;4 P+EM,TMPTEP CM E NCREFERET ENEMCRDE ; +4MPTEC DE A AT DNTMELIMPCO ; MPTEM CO: OMTC3;*i̠Y(Ð.W8=Aي\e,~5Wҗ8^+0Dr8 OrDdLQpAӈNn Ӄ<.v-| +%Ab4v$QLY*vХs&߱^ޓ GRi<X,aqkލj4!% gr+vtȻPt@! J5贍}cO_WE-\ =1bnS5HnS -+vSւZ\M[ `G*VI dw7e6WyPO wcA\~$Q1٣ Gx^/>4KdC.3@r l/omLW]gϔDX͎m^*C*|Q7`g'hՆ?+1 BMI .+4 ;BRANCH IF OK HLT ;DATA NOT WITHIN + OR - 1 LSB ADD #2,POINTA ;MOVE POINTA ADD #2,POINTB ;MOVE POINTB CMP PO+4 .EQ B MPTET TS ) R0C(C AD C SE 0 ,R10#+V MO P EM,T-1 #OV M PECO S LT H +4 .EQ B MPTET TS ) R0D(C AD C SE 0 ,R10#-V MO P EM,T-1 #OV M PECO S LT H +4 .EQ B MPTE1,#-P CM ) R0C(G NE 0 ,R10#+V MO P EM,T#1V MO E OPSC T HL 4 .+Q BE P EM,T-1 #MP C 0)(R DEG N R00,-1 #OV M MPTE1, #OV M PECO S LT H +4 .EQ B MPTET TS ) R0C(C DE 0 ,R10 #OV M MPTE1, #OV M PECO S LT H +4 .EQ B MPTET TS ) R0D(C DE 0 ,R10#-V MO P EM,T#1V MO E OPSC T HL 4 .+Q BE P EM TST T 0)(R CNC I ~c'`06fch1@ &@ ` `9@ @ @ @ @ @ @ @ r hp2`39d v@4`2@ `0@0@ @ @ @ @ @ @ @ Fr0n7@ @ `0r9@ @ @ @ @ @ @ @ 9'T`4n1Vh1w@ @0@ h0W@@ @ @ @ @ @ @ @ pBd9v`Gp4d @ `0fn7@ @ @ @ @ @ @ @ `0&f7+pd@ &@ ` n3@ @ @ @ @ @ @ @ r hh8h8b@`2@ `0F@0@ @ @ @ @ @ @ @ Fr0Fn8@ @ `0l@ @ @ @ INTA,#ADTBLA+10 ;CHECK FOR END OF TABLE BNE ADLOOP ;LOOP IF NOT DONE ADCONT: CLR ADTEMP ;FIRST PASS COMPLETE CLR CHOUT ;INITIALIZE CHANNEL TO CONVERT ON CLRB @ADCSRO ;START CONVERSION RTI TBPTR: 0 ADTEMP: 0 CHOUT: 0 ;CURRENT CONVERSION CHANNEL POINTA: 0 ;WHERE IN A POINTB: 0 ;WHERE IN B ADTBLA: 0 ;TABLE A .=.+6 ADTBLB: 0 ;TABLE B .=.+6 .SBTTL AA11 WITH SCOPE INTERRUPT SERVICE ;DISPLAY "PDP-11" ON SCOPE AA11: TSTB @SCSR ;IS DONE SET BMI .+6 HLT R00,+1 #OV M MPTE1,#-V MO E OPSC T HL 4 .+Q BE P EM TST T 0)(R DNC I R00,-1 #OV M MPTE1,#-V MO E OPSC T HL 4 .+Q BE P EM TST T 0)(R COM C R00,#1V MO P EM,T-1 #OV M PECO S LT H +4 .EQ B MPTET TS ) R0D(M CO 0 ,R10#-V MO P EM,T-1 #OV M PECO S LT H +4 .EQ B MPTET TS ) R0C(R CL 0 ,R10#+V MO P EM,T-1 #OV M PECO S LT H +4 .EQ B MPTET TS ) R0D(R CL 0 ,R10#-V MO P EM,T-1 #OV M EDEXND IYSARUNT ES TTLBT.S PECO S LT H +4 .EQ B 0)(R,C10A+B SU 0 ,R10 #OV M MPTE5,5252#0V zc@ @ `0j@ @ @ @ @ @ @ @ 9&T`8&n9Ɣp1'@@0@ r0@ @ @ @ @ @ @ @ @ dBf1v`̇fd @ `0`0@ @ @ @ @ @ @ @ '`0&fcd4@ &@ ` `9@ @ @ @ @ @ @ @ r hp2n9b0v@5`2@ `0@0@ @ @ @ @ @ @ @ h0f&r0@ @ `0`@ @ @ @ @ @ @ @ 9&T`8VnƜ`2@@0@ r0@ @ @ @ @ @ @ @ @ dBd6v`d5d @ `0`0@ @ @ @ @ @ @ @  ;DONE NOT SET RTI MOV #0,XPOS ;SHOULD WORK FOR ALL SCOPES CLR YPOS MOV #6,CNTR ;6 CHARACTER COUNT MOV #TEXT,PNTR ;TEXT "PDP-11" MOV #CHAR3,140 ;INTERRUPT VECTORS TXT1: MOV @PNTR,AAR2 ;PLOT CHARACTER CHAR: MOV YPOS,YPT ;INIT ENTER WITH SCOPE INTERRUPT BIS #24,@SCSR ;ENABLE INTENSIFY OF LOADING Y MOV #-5,AAR0 ;MATRIX COUNT (ROW) CHAR1: MOV #-7,AAR1 ;MATRIX COUNT (COLUMN) MOVB @AAR2,AAR3 ;GET CHARACTER INC AAR2 CHAR2: ROLB AAR3 ;INTENSIFY POINT? BPL CHAR3 ;NO MOVMO E OPSC T HL 4 .+Q BE P EM,T0)(R AUB S R00,#1V MO P EM,T252505 #OV M PECO S LT H +4 .EQ B 0)(R10P+EM,T BUB S R00,-1 #OV M MPTE2,2525#1V MO E OPSC T HL 4 .+Q BE P EM,T0)(R AUB S R00,-1 #OV M MPTE2,2525#1V MO G INEXND IOR FONTIUCTRNS ICTRABTSUT ES TTLBT.S PECO S LT H +4 .EQ B 525212,#10P-EM TMP C 10P-EM,T252505 #IC B 10P-EM,T-1 #OV M R00,-1 #OV M PECO S LT H +4 .EQ B 2525#50,+1MPTEP CM ) R0P(EM,T525212 #IC B R00,#1V MO 0 +1MPTE1,#-V MO E OPSC T HL 4 .+Q BE 2 vc@ @ @ @ @ @ @ @ v `5f+nD@ &@ ` d@ @ @ @ @ @ @ @ r h`n9d0@`2@ `1@2@ @ @ @ @ @ @ @ rv&r@ @ `0Gd@ @ @ @ @ @ @ @ 9T`n9Vh1&@@0@ h0'@ @ @ @ @ @ @ @ @ rAd9v`Gd6d @ `0n@ @ @ @ @ @ @ @ `0fc`2@ &@ ` l2@ @ @ @ @ @ @ @ r hp0r9d0@`2@ p0&@5@ @ @ @ @ @ @ @ &r0Fl8 XPOS,@DAC0 ;LOAD X MOV YPOS,@DAC1 ;LOAD Y AND INTENSIFY RTI ;RETURN TO MAINLINE CHAR3: TSTB @SCSR ;IS DONE SET BMI .+4 HLT ADD #70,YPOS ;NEXT POINT INC AAR1 ;DONE ALL POINTS IN A COLUMN? BNE CHAR2 ;NO MOV YPT,YPOS ;NEXT COLUMN ADD #70,XPOS ;ADD SCALE INC AAR0 ;DONE ALL COLUMNS? BNE CHAR1 ;NO ADD #70,XPOS ;YES, POSITION FOR NEXT CHARACTER ADD #2,PNTR ;NEXT CHARACTER BIT #20,SR3 BNE CHAR4 BIT #1000,@SCSR ;IS GREEN BIT SET BNE .+12 ;YES, CLEAR FOR R2525#1P,EM TMP C MPTE),R0A(C BI 0 ,R10 #OV M MPTE1,#-V MO E OPSC T HL 4 .+Q BE 5 5252#0P,EM TMP C MPTE),R0A(C BI 0 ,R10#-V MO P EM,T-1 #OV M PECO S LT H +4 .NE B LT H +4 .MI B MPTE0, #IC B MPTE1,#-V MO G INEXND IOR FONTIUCTRNS IIC BSTTEL TTSB . E OPSC T HL 4 .+Q BE 5 5252#00,+1MPTEP CM ) R0P(EM,T252505 #OV M R00,+1 #OV M PECO S LT H +4 .EQ B 525212,# CMP C 0)(RMPTE2,2525#1V MO 0 ,R10#-V MO E OPSC T HL 4 .+Q BE 5 5252#0P,EM TMP C MPTE),R0A(V MO 0 ,R10#+V MO E rc@ @ @ @ rFn9@ @ `0j@ @ @ @ @ @ @ @ 9Tjn4Vh1v@ @0@ l6@@ @ @ @ @ @ @ @ jAVd7v`l5d @ r1gb@ @ @ @ @ @ @ @ W `5&f7cd1D@ &@ ` Fb8T@ @ @ @ @ @ @ @ r hp`39d v@`2@ `0@@ @ @ @ @ @ @ @ r&b0@ @ b1f@ @ @ @ @ @ @ @ 9Th5vnƜb2@@0@ j8&@@ @ @ @ @ @ @ @ lAf`9v`bd @ `0`0ED BIS #1000,@SCSR ;NO, SET FOR GREEN BR .+10 BIC #1000,@SCSR ;DISPLAY IN RED TSTB @SCSR ;WAIT FOR COLOR CHANGE BNE .-4 CHAR4: DEC CNTR ;DONE ALL? BNE TXT1 ;NO BIC #2,@SCSR ;INIT AND ERASE BR AA11 ;LOOP .SBTTL RK11 DISK INTERRUPT SERVICE RK11: TSTB @RKCSR ;INTERRUPT VECTOR POINTS HERE BMI .+6 HLT ;RK11 READY NOT UP BR RKSTART TST @RKCSR BPL .+6 HLT ;RK11 ERROR FLAG UP BR RKSTART BIT #37,@RKDAR ;DISK AT UPPER LIMIT? BNE RK1 ;NO CMPB #31,@RKDAOPSC T HL 4 .+Q BE 2 2525#1P,EM TMP C MPTE),R0A(V MO 0 ,R10#-V MO X DEINR FON IOCTRUSTINE OV MSTTEL TTSB . E OPSC T HL 4 .+Q BE ) R0A(),R1A(P CM 1 ,R10 #OV M R04,#-V MO E OPSC T HL 4 .+Q BE ) R1A(),R0A(P CM 1 ,R10#+V MO 0 ,R-4 #OV M PECO S LT H +4 .EQ B 0)(R,A1)(R AMP C PECO S LT H +4 .EQ B 1)(R,A0)(R AMP C R14,#+V MO 0 ,R10#-V MO E OPSC T HL 4 .+Q BE ) R0A(),R0A(P CM 0 ,R10#+V MO T HL 4 .+Q BE ) R0A(),R0A(P CM 0 ,R10#-V MO E OPSC T HL 4 .+Q BE ) R0A(5,5252ncjAd7v`f6d @ b0Gj@ @ @ @ @ @ @ @ V `fc`2@ &@ ` fr@ @ @ @ @ @ @ @ r hpb8b@6`2@ r1V@@ @ @ @ @ @ @ @ rF`8@ @ `0Vj@ @ @ @ @ @ @ @ 9Tjn4Vh1@@0@ r5V@ @ @ @ @ @ @ @ @ jAVd9v`Gd2d @ `0Vn@ @ @ @ @ @ @ @ W `5&f7+pT@ &@ ` dD@ @ @ @ @ @ @ @ r hph8b@`2@ b1f@8@ @ @ @ H BNE RK1 ;NO SWAB RKFUNCTION ;CHANGE COMMAND RKSTART:MOV RKDRV,@RKDAR ;INITIALIZE DISK-DAR,DAE RK1: MOV LLIMIT,@RKBAR ;CORE BASE MOV RKWORDCT,@RKWC ;LENGTH OF TRANSFER MOVB RKFUNCTION,@RKCSR ;WRITE OR WRITE CHECK TO DISK MOV #1,WATCRK RTI ;RETURN TO MAINLINE CODE RKFUNCTION: 0 ;DISK COMMAND RKWORDCT: -2000 ;LENGTH OF TRANSFER .SBTTL RP11 DISK INTERRUPT SERVICE RP11: TSTB @RPCSR ;INTERRUPT VECTOR POINTS HERE BMI .+6 HLT ;RP11 READY NOT UP BR RPSTART TST @R#0P CM 0 ,R10 #OV M PECO S LT H +4 .EQ B 252505,#0)(R AMP C R00,#1V MO E OPSC T HL 4 .+Q BE ) R0A(2,2525#1P CM 0 ,R10#-V MO E OPSC T HL 4 .+Q BE 525212,#0)(R AMP C R00,-1 #OV M0:STTE EDEXND IONTIUCTRNS IREPAOM CSTTEL TTSB . T UNCON IOATERIT ;T UNCO,I0040 #OV M NGPICO SOR;F RNTURE0,STTE #OV M DEMOT ENRRCUR FOK ACSTP UET;S SPK,ACST #OV MS:CTRO P T ES TONTIUCTRNS IICAS BTLBT.S FF.I N URET;R TI R AGFLT SE ;F ERPP,F-1 #OV MR:ERHK CP FPND EMP J PECO S ORCTVEE ORSTRE ;CTjc`2@ `0@3@ @ @ @ @ @ @ @ r0Fd8@ @ `0b4@ @ @ @ @ @ @ @ 9T`n4Vh1&@@0@ f0@@ @ @ @ @ @ @ @ jAd9v`Gl9d @ `0n@ @ @ @ @ @ @ @ V `&f7+pt@ &@ ` r@ @ @ @ @ @ @ @ r hbh8b@`2@ b3@@ @ @ @ @ @ @ @ r0Fd@ @ `0d5@ @ @ @ @ @ @ @ 9T`vn4Ɯb2V@@0@ p3V@@ @ @ @ @ @ @ @ PCSR BPL .+6 HLT ;RP11 ERROR FLAG UP BR RPSTART CMPB #312,@RPCA ;CYLINDER NO. 312 BNE RP1 ;NO SWAB RPFUNCTION ;CHANGE COMMAND RPSTART:MOV #00001,@RPCSR ;INITIALIZE DISK - DAR-DAE TSTB @RPCSR ;WAIT FOR CONTROL READY BPL .-4 RP1: MOV LLIMIT,@RPBAR ;INITIAL CORE ADDRESS MOV RPWORDCT,@RPWC ;LENGTH OF TRANSFER MOVB RPFUNCTION,@RPCSR ;WRITE OR WRITE CHECK TO DISK RTI ;RETURN TO MAINLINE CODE RPWORD: -2000 RPFUNC: 0 .SBTTL RC11 DISK INTERRUPT SERVICE RC11: TSTB @RCCVEFP,@RRTEFL #OV M PS F/O;I 0000#4S FPLD E OPSC $ \12,,1142010S TUTA S$: 3W LORFDEUNO ;N 2LT H ET SIFP KI;S 3$E BN ? ET SAGFL ;F ERPP FST T USATSTT GE ;S FPS FPST T ULES RET;G1 NS,AC0 ATF S ERMBNUG BIB SU ;C0,A37E-09#.F UB S$: 1R BEUM NLLMA SADLO ;C0,A37E-07#.F LD G LA FARLE;C RFPEFPR CL W LORFDEUNG/INATLO;F 0020 #PSDF L W>LORFDEUN- R ROERF UB OWFLEROV- R ROERF DDRA TAKREUB ROERE ODPC ORRR E-0F LD ORRR E 0BYF IV(6ONSIERNVCO- R ROERI CFST LORFDEUN- R ROERF IV OWFLEROV- R ROERF UL -OFD LD 0, 10KHZ KW11PA: MOV #1000.,@KWCSB ;SET UP FOR 1000 (DECIMAL) COUNTS COMB KWRATE ;NEXT CLOCK RATE IS 10KHZ MOV #101,@KWCSR ;THIS CLOCK RATE IS 100KHZ ;CLO 2525,52525 5OT NISR GETEIN ;2 T HL 4 .+Q BE C FC C EREGNT ICKHE;C1 AC2,B+LTDAF MP C ITT GE ;S1AN1,ACF ST 0 T NON IOCTRA;F 2LT H +4 .EQ B CCCF N IOCTRA FCKHE;C C0 ATFTS T ULES RET;G1 NS,AC0 ATF S 0474 4USATST * GT*M1 A Y BDFMO ;0 AC1, #DFMO 0 ACO NT I2525,52525 5ADLO ;C0,A+2TBAL DDF L DEMOG INATLO FET;S 0074#4S FPLD > DDMOD ANF OD MOFT EScb39` @`3@ `0@0@ @ @ @ @ @ @ @ @@ @ @ @ @ @ @ @ @ @ @ @ @ @ @  T`3n1Vh1@ @0@ l0@@ @ @ @ @ @ @ @ bAVd6v`p2d @ `0v`@ @ @ @ @ @ @ @  `6fcf1@ &@ ` j7@ @ @ @ @ @ @ @ r hf`39d v@1`2@ `0V@0@ @ @ @ @ @ @ @ fn&p@ @ `0G`8b@ @ @ @ @ @ @ @ 9TjvnƜb2@@0@ p4@@ @ @ @ @ FFER INCB DPTDATA ;NEXT CHARACTER BNE T19 ;NO RESYNC: MOV #DP11T,@DPTIV ;SET UP TRANSMITTER ;INTERRUPT VECTOR ;FOR SYNC ROUTINE MOV #4,DCCCNT ;SET UP TO TRANSMIT ;4 SYNC CHARACTERS ;TO RE-SYNCHRONIZE RECEIVERS T19: RTI ;RECEIVE SEQUENTIAL DATA DP11R: MOV #1,WATCDP ;SET INTERRUPT OCCURED FLAG MOV R4,-(SP) ;SAVE R4 ON STACK TSTB @DPRS ;IS RECEIVER DONE BIT SET BNE .+4 HLT ;DONE NOT SET, ERROR MOV @DPRB,R4 ;SAVE RECEIVED CHARACTER CMPB R4,DPRDATFPE THT GE ;S FPS FPST 0 T NOS ;P T HL K OIFP KI;S +4 .EQ B 0ITS ;I PS FST T NKJUR EACL ;PS,F607717 #IC B PST GE ;PS,FPS@#V MO K AC BITT ERNVCO ;S1AN2,ACI CFST S PET;SS #P,@17 #IS B 1.3254T NO2 AC ;2 T HL 4 .+Q BE C CCKHE;C C FC C ITK ECCH ;C2,AO15T FPFCM S TUTA SHE TET;G PS FPSTF S LTSURET GE ;S1AN2,ACF ST 1 3254D OA;L2 AC1,3254 #IFDC L DEMOG INATLO FET;S F ET S -1T NOS FP ; LT H +4 .EQ B LTSUREK ECCH ;S FP1,#-P CM K AC BITT ERNVCO ;S FP1,ACI CDST 0 1. -OT NC1;A 4LT:c@ n6@ @ @ @ @ @ @ @ @ bTf8v@Wn8f @ `0`0@ @ @ @ @ @ @ @ `86fBp5@ 6@ ` `1@ @ @ @ @ @ @ @ r h`1b39` @9`3@ l0'@@ @ @ @ @ @ @ @ p0r@ @ `0G`8@ @ @ @ @ @ @ @ 9FUpn7j0&@@@ `8@ @ @ @ @ @ @ @ @ nTf`1g``f @ `0`0@ @ @ @ @ @ @ @ G`6fBp5@ 6@ ` `@ @ @ @ @ @ @ @ r hbA ;WAS CORRECT CHARACTER RECEIVED BEQ DP11RB ;IF YES, EXIT BIT #40000,@DPTS ;IS RECEIVER OVER RUN SET BNE DP11RA HLT ;DATA ERROR BR DP11RRS ;RESTART AND RESYNC DP11RA: HLT ;OVER RUN ERROR, ;CHANGE TO NOP TO SUPPRESS ;OVERRUN ERROR ERPORTS BIC #40000,@DPTS ;CLEAR OVER RUN BR DP11RRS ;RESTART TRANSMISSION DP11RB: INCB DPRDATA ;UPDATA EXPECTED DATA BEQ DP11RRS ;IF END OF DATA, RESTART CMP DPRDATA,DPTSYNC ;IS CHARACTER TO BE TRANSMITTED SYNC BNE DP11RC ; H +4 .EQ B CCT GE ; CCCF T ULES RCKHE;C C1,A-1 #PDCM T ULES RET;G1 NS,AC1 ATD S 1076 4USATST 2 0+01D1 #OT NPS;F T HL 4 .+Q BE S ESDRADK ECCH ;PS,F+21010#DP CM 0 1. -TOT ERNVCO ;C1,A)+PS(FD CILD A AT DOFS ESDRADD OA;LS FP0,01D1 #OV M NKJUD OA;L1 AC1,10D0D LD E OD MLEUBDOT SE ; TDSE 5 T NOS FP ; LT H +4 .EQ B LTSUREK ECCH ;S FP5, #MP C CKBAT IRTVEON;C PS,FC0 AFITC S .0 5OT NC0;A 2LT H +4 .EQ B CCT GE ; CCCF T ICKHE;C C0,A#5F MP C LTSUREE THT GE ;S1AN0,ACF ST 0 406c@ @ @ @ @ @ r hlb39` @6`3@ `0V@0@ @ @ @ @ @ @ @ h0@@ @ @ `0`@ @ @ @ @ @ @ @ 9FUpvn3j0@ @@ f8@@ @ @ @ @ @ @ @ bTf7v`Vjf @ `0`0@ @ @ @ @ @ @ @ `86fCn5d@ 6@ ` `1@ @ @ @ @ @ @ @ r h`1b9`0v@`3@ l0'@@ @ @ @ @ @ @ @ n0n@ @ `0G`8@ @ @ @ @ @ @ @ 9FUpn3j0@ @IF NOT ,EXIT INCB DPRDATA ;DO NOT REVEIVE SYNC DP11RC: MOV (SP)+,R4 ;RESTORE R4 RTI ;RETURN TO MAINLINE CODE DP11RRS: BIC #4000,@DPRS ;CLEAR RECEIVER ACTIVE MOV (SP)+,R4 ;RESTORE R4 CLR DPRDATA ;CLEAR EXPECTED RECEIVE DATA CLR DPTDATA ;CLEAR TRANSMIT DATA BR RESYNC ;RESYNCHRONIZE RECEIVER DPTSYNC: 26 ;TEST SYNC CHARACTER DCCCNT: 0 ;SYNC COUNT DPRDATA: 0 ;RECEIVER DATA DPTDATA: 0 ;TRANSMITTER DATA .SBTTL DC11 ASYNCHRONOUS LINE UNIT #1 INTERRUPT SERVICE DC11T1: 47S TUTA S 5 ARETO;S C0,A#5F CILD E OD MNGTIOAFL ;0 4047 #PSDF L I*CDSTI,CFSTD,CILDF,CILDF OSTTE^*X PECO S E)ATNCRU(T0 0,1,,- 0OT NC0;A 4LT H +4 .EQ B CCT GE ; CCCF T ICKHE;C0 AC0,10D0D MP C LTSURET GE ;S1AN0,ACD ST E BLOU DET;S D ET S LFHAT GHRIN EACL ;0 AC0,ACD CFST S DEMOE ATNCRU TND ANGTIOAFL ;0 0440 #PSDF L -10,1,,- 0ADLO ;C0,A1101 DDD L D)UNRO (,0,000 1OT NS3AN ;4 T HL 4 .+Q BE C CET;G C FC C LTSUREK ECCH ;C3,A0X10D0D MP C LTSURET GE ;S1AN3,ACD ST ? F!AL HHTIG RUT O2c@ @ 9Tnvn9f0F@@@ j1@ @ @ @ @ @ @ @ @ rMvb8v`6l0f @ `0V`0@ @ @ @ @ @ @ @ k`7'bCl3$@ 6@ ` `@ @ @ @ @ @ @ @ r hlr2`0v@5`3@ b0@0@ @ @ @ @ @ @ @ fd&h@ @ `0`@ @ @ @ @ @ @ @ 9Tn&n9f0@ @@ j1@ @ @ @ @ @ @ @ @ rMvd1v`H7hf @ `0V`0@ @ @ @ @ @ @ @ k`7&d7C`4T@ 6@ ` `@ @ TSTB @DCTCSR ;TEST FOR DONE ON INTERRUPT BMI .+4 HLT ;FALSE INTERRUPT INCB (PC)+ ;INCREMENT DATA DCDAT1: 0 BNE DCOUT1 ;DONE-START OVER DCOUT: CLR DCDAT1 ;INITILIZE DATA DCOUT1: MOV DCDAT1,@DCTDBR ;TRANSMIT DATA RTI ;RETURN TO MAINLINE ;DC11 RECEIVER ROUTINE VALUES : 0 TO 377 DC11R1: MOV @DCRCSR,DPSSR ;SAVE CSR, CLEARED WHEN READ BPL DCIN5 ;BRANCH ON NO ERROR HLT ;DATA SET NOT READY CLR DCDAT1 ;REINITILIZE DATA CLR DCDAT2 ;REINITILIZE DATA DCIN5: TSTB DPARLE;C C3,AC3 AFDTC S -10,1,,- 0 AADLO ;C3,A1101 DDD L ,0,0,0-1T NO1 AC ;4 T HL 4 .+Q BE C CET;G C FC C ,0,0,0-1T IIS ;C2,A0010 DPDCM T ULES RET;G1 NS,AC2 ATD S DEMOE BLOU DET;S D ET S LFHAT GHRIR EACL ;2 AC2,ACF CDST E OD MNGTIOAFLT SE ; TFSE 0 1,,-,0-1A D OA;L2 AC0,01D1D LD E OD MLEUBDOT SE ;0 2040 #PSDF L F*CDSTD,CFSTF OSTTE^*X PECO S LYEROPPRD UNROT NOD DIF CDLD ;4 T HL 4 .+Q BE 1 A R FO2 D OR WCKHE;C S2AN1, #MP C PS FPSTF S LTSUREE THT GE ;S1AN1,ACD ST 0 1. - AADLO ;C1.cfCn5@ 6@ ` bT@ @ @ @ @ @ @ @ r hpf29`0@4`3@ `0@5@ @ @ @ @ @ @ @ pr@ @ `0`@ @ @ @ @ @ @ @ 9T`5nj0f@ @@ r0@ @ @ @ @ @ @ @ @ lMf7v`Vjf @ `0`0@ @ @ @ @ @ @ @ fk`6fBp5@ 6@ ` `9@ @ @ @ @ @ @ @ r hdb39` @0`3@ `0V@0@ @ @ @ @ @ @ @ fnVn@ @ `0d@ @ @ @ @ @ SSR ;ON INTERRUPT TEST FOR DONE BMI .+4 HLT ;FALSE INTERRUPT, DONE NOT SET CMPB @DCRDBR,DCDAT2 ;IS DATA CORRECT: BEQ DCIN3 HLT ;DC 11 RECEIVER DATA ERROR DCIN3: INCB (PC)+ ;UPDATE EXPECTED DATA PATTERN DCDAT2: 0 BNE DCIN2 ;NO-LOOK FOR THE REST DCIN1: CLR DCDAT2 ;SET UP BASIC DATA DCIN2: MOV #1,WATDC1 RTI ;RETURN TO MAINLINE DPSSR: 0 ;SAVE PS OF CSR DCOUTF: 134 ;CHANGE TO 134 FOR MAINTENANCE MODE ;130 FOR TELEPHASE LINE DCINF: 130 ;CHANGE 130 TO 100 FOR,A1010 DDFDC L ESOD MNGTIOAFLD AND UNROT SE ;0 4047 #PSDF L ,1,0,0-1T NO1 AC ;4 T HL 4 .+Q BE C CET;G C FC C PS FPSTF S LTSUREK ECCH ;C1,A0110 DPDCM T ULES RET;G1 NS,AC1 ATD S ITD OA;L1 AC0,01D1F CDLD S DEMOE ATNCRU TND ALEUBDOT SE ;0 4447 #PSDF L -10,1,1, -OT NLTSURE ;4 T HL 4 .+Q BE C FC C LTSUREK ECCH ;C1,ARDEI WPDCM T ULES RET;G1 NS,AC1 ATD S TDSE 0 4147S TUTA S 1010#DT NOS FP ; LT H +4 .EQ B 0? 1BYT ENEMCRDES ESDRAD ;PS,F1010#DP CM 0 1, - AADLO ;C1,AS)FP-(F CDLD 0 +1A *c`0`@ @ @ @ @ @ @ @ 9TlFn7h0&@ @@ j1@ @ @ @ @ @ @ @ @ nJfd5v`HFnf @ `0V`0@ @ @ @ @ @ @ @ vS`6'd7Cf4t@ 6@ ` `@ @ @ @ @ @ @ @ r h`7h)`0F@1`3@ b0@0@ @ @ @ @ @ @ @ Wnh@ @ `0`5@ @ @ @ @ @ @ @ 9Trnj0f@@@ d0@ @ @ @ @ @ @ @ @ bMVf8v@Wr9f @ `0Fp5@ @ @ @ @ @ @ @ 'k`5 SLOWER SPEED(TTY) .SBTTL DC11 ASYNCHRONOUS LINE UNIT #2 INTERRUPT SERVICE ;DC11 TRANSMITTER #1 INTERRUPT SERVICE DC11T2: TSTB @DCTCSA ;TEST FOR DONE ON INTERRUPT BMI .+4 HLT ;FALSE INTERRUPT INCB (PC)+ ;INCREMENT DATA DCDAT3: 0 BNE DCOUT3 ;DONE-START OVER DCOUTA: CLR DCDAT3 ;INITILIZE DATA DCOUT3: MOV DCDAT3,@DCTDBA ;TRANSMIT DATA RTI ;RETURN TO MAINLINE ;DC11 RECEIVER ROUTINE VALUES: 0 TO 377 DC11R2: MOV @DCRSR,DPSSR1 ;SAVE CSR, CLEARED WHEN READ BPL DCIN5A ;BAT DOFS ESDRADT GE ;PS,F100+01D1 #OV M DEMOG INATLO FET;S F ET S -10,1,,- 0 AADLO ;C1,A0101 DDD L ,0,0,0-1T NO0 AC ;4 T HL 4 .+Q BE C CET;G C FC C LTSUREK ECCH ;C0,A0010 DPDCM R WENS AET;G1 NS,AC0 ATD S 1076 4USATST 4 0+01D1 #OT NPS;F T HL 4 .+Q BE ? 4BYC IN ;PS,F+41010#DP CM 0 0,0,1, - AADLO ;C0,A)+PS(FD CFLD A AT DOFS ESDRADT GE ;PS,F1010#DV MO 1 ,-,0-10,A D OA;L0 AC1,10D0@AD LD E OD MLEUBDOT SE ;0 6047 #PSDF L F*CDLDD,CFLDF OSTTE^*X PECO S 5 7. -OT N-2/ . 15 ;4 T HL 4 .+&c@ @ @ @ @ @ WS`16fBp5t@ 6@ ` n5@ @ @ @ @ @ @ @ r hp5b39` @`3@ `0V@0@ @ @ @ @ @ @ @ `1h@ @ `0`@ @ @ @ @ @ @ @ 9Tl&n2f0&@ @@ j1@ @ @ @ @ @ @ @ @ nJfdv`7l9f @ `0V`0@ @ @ @ @ @ @ @ vS`6'd7Cr3T@ 6@ ` `@ @ @ @ @ @ @ @ r h`7l2)`0@6`3@ b0@0@ @ @ @ @ @ @ @ f0Fh1@ @ RANCH ON NO ERROR HLT ;DATA SET NOT READY CLR DCDAT3 ;REINITILIZE DATA CLR DCDAT4 ;REINITILIZE DATA DCIN5A: TSTB DPSSR1 ;ON INTERRUPT TEST FOR DONE BMI .+4 HLT ;FALSE INTERRUPT, DONE NOT SET CMPB @DCRBR,DCDAT4 ;IS DATA CORRECT: BEQ DCIN3B HLT ;DC 11 RECEIVER DATA ERROR DCIN3B: INCB (PC)+ ;UPDATE EXPECTED DATA PATTERN DCDAT4: 0 BNE DCIN4A ;NO-LOOK FOR THE REST DCIN3A: CLR DCDAT4 ;SET UP BASIC DATA DCIN4A: MOV #1,WATDC2 RTI ;RETURN TO MAINLINE DPSSR1: 0 Q BE C CET;G C FC C LTSUREK ECCH ;C0,A.5-7 #PDCM T ULES RRETO;S1 NS,AC0 ATD S 1076 4USATST 2 - /5.;1 C0,A-2 #VDDI . 15 +OT N-3X 5 ;- 4LT H +4 .EQ B CCT GE ; CCCF T ULES RCKHE;C0 AC.,15 #PDCM T ULES RET;G1 NS,AC0 ATD S 0076 4USATST 3 -BYL MU ;0 AC3,#-D UL M -5A D OA;L C0,A-5 #DD L DEMOE BLOU DADLO ;0 6047 #PSDF L D*IV DND ALDMUF OSTTE^*X PECO S 3 T NO7 - /1.-2 ;2 T HL 4 .+Q BE C CET;G C FC C LTSUREK ECCH ;3 AC3, #PFCM T ULES RET;G1 NS,AC3 ATF S 0074 4USATST 3 -"c@ @ np@ @ `0j7@ @ @ @ @ @ @ @ 9Tbvn3j0@ @@ b5W@ @ @ @ @ @ @ @ @ jJf7v`Vrf @ `0v`@ @ @ @ @ @ @ @ WS`16fCn5@ 6@ ` j9@ @ @ @ @ @ @ @ r hp5b9`0v@1`3@ d1v@@ @ @ @ @ @ @ @ nh@ @ `0`@ @ @ @ @ @ @ @ 9Tbnj0V@@@ n0@ @ @ @ @ @ @ @ @ jJf8v@Wl5f @ `0`@ @ ;SAVE PS OF CSR .SBTTL DM11 ASYNCHRONOUS MULTIPLEXER INTERRUPT SERVICE ;DM11 TRANSMITTER INTERRUPT SERVICE ROUTINE DM11T: MOV R0,-(SP) ;SAVE R0 & R1 ON MOV R1,-(SP) ;THE STACK CLR R0 ;CLEAR INT ERROR INDICATOR BIT #.NEX+.OVRUN,@DMCSR ;ERROR FLAGS ? BEQ DMTIN ;BRANCH IS NO ERROR FLAGS HLT ;ERROR FLAG BIC #.NEX+.OVRUN,@DMCSR ;CLEAR ERROR FLAG COM R0 ;SET INT ERROR INDICATOR DMTIN: TST @DMCSR ;READY FLAG? BMI DMTIN1 TST R0 ;INT BEACUSE OF ERROR? BNE DMTINX ;YES, BBYE IDIV;D C3,A-7 #VFDI . 21 -OT N-3X ;2 T HL 4 .+Q BE C CET;G C FC C LTSUREK ECCH ;C3,A1.-2 #PFCM T ULES RET;G1 NS,AC3 ATF S 1074 4USATST 3 -;X C3,A-3 #LFMU 7 AADLO ;3 AC7, #DF L DEMOG INATLO FADLO ;0 4047 #PSDF L F*IV DND ALFMUF OSTTE^*X PECO S A LTDAT NO1 NS;A 4LT H +4 .EQ B CCT GE ; CCCF T ICKHE;C2 ACC,LTDAD MP C LTSUREE THT GE ;S1AN2,ACD ST 0 6047S TUTA S CKBAT ICTRABTSU ;C2,ATAAL DBDSU N TAAL DOT NS1AN ;4 T HL 4 .+Q BE C CET;G C FC C LTSUREK ECCH ;2 AC3,cv`Vn6f @ `0v`@ @ @ @ @ @ @ @ WS`1'f7Cd5@ 6@ ` hd@ @ @ @ @ @ @ @ r hp5l29` 7@2`3@ `0V@0@ @ @ @ @ @ @ @ jh@ @ `0p9@ @ @ @ @ @ @ @ 9TbVnj0@@@ n0@ @ @ @ @ @ @ @ @ jJf5v`Vr9f @ `0`@ @ @ @ @ @ @ @ WS`1&fCl5@ 6@ ` j7@ @ @ @ @ @ @ @ r hp5n29`0f@`3@ `0V@0@ @ @ @ @ @ UT NO READY, EXIT HLT ;NO ERROR, NO READY BR DMTINX ;EXIT DMTIN1: BIC #.READY,@DMCSR ;CLEAR READY CLR R0 MOV #1,R1 DMTINA: BIT R1,@DMBAR ;WHICH LINE FINISHED? BNE DMTINB BIT R1,DMBARIM ;SHOULD THIS LINE BE RESTARTED BEQ DMTINB ;BRANCH IF NOT MOV #PROCTS,DMCAT(R0) ;INITIALIZE WORD COUNT MOV #-400,DMWCT(R0) ;CURRENT ADDRESS BIS R1,@DMBAR ;AND RESTART LINE THAT FINISHED DMTINB: ADD #2,R0 ASL R1 BCC DMTINA DMTINX: MOV (SP)+,R1 MOV (SP)+,R0 RTI ;EXIT ;DM11 RECEIV #PDCM T ULES RET;G1 NSAA,@C2 ATD S 0076 4USATST S 1'R HEOTD AD ;C2,ATBAL DDDAD S 1'T ALD OA;L2 ACA,LTDAD LD 7 -2T NO5 .+32;- 4LT H +4 .EQ B CCT GE ; CCCF T ULES RCKHE;C1 AC.,27#-D MP C LTSURET GE ;S1AN@A1,ACD ST 0 6147S TUTA S 2.-3O T 5DD;A C1,A#5D DD A 2.-3A D OA;L1 AC.,32#-D LD E OD MLEUBDOT SE ;0 6047 #PSDF L D*UB SND ADDADF OSTTE^*X PECO S ? -3T NO9 - 6 ;2 T HL 4 .+Q BE C CET;G C FC C LTSUREK ECCH ;0 AC3,#-F MP C S1ANN ILTSUREE ORST ;S1AN0,ACF ST 0 4147S TUTAc`0V@0@ @ @ @ @ @ @ @ p0`@ @ `0f`@ @ @ @ @ @ @ @ 9T`nj0@ @@ j1v@@ @ @ @ @ @ @ @ fIf8v@Wd5f @ `0v`@ @ @ @ @ @ @ @ WS`1&f7C`5@ 6@ ` r@ @ @ @ @ @ @ @ r hp5b9`0@9`3@ r0G@6@ @ @ @ @ @ @ @ dh@ @ `0`@ @ @ @ @ @ @ @ 9Tb&n8j0F@@@ r9@ @ @ @ @ @ @ @ @ jJd3ER INTERRUPT SERVICE ROUTINE DM11R: MOV R0,-(SP) MOV R1,-(SP) ;SAVE R1 MOV R2,-(SP) ;SAVE R2 MOV DMTDAT,R1 ;GET POINTER TO DATA MOV DMPTR,R0 TSTB @DMCSR ;DONE SET? BMI DMRINA ;BRANCH IF SET HLT ;FALSE INTERRUPT BR DMRINX ;GO TO EXIT DMRINA: TST (R0) ;TEST FOR VALID DATA ENTRY BMI DMRINC ;BRANCH IF VALID DATA ENTRY HLT ;NO VALID DATA ENTRY BR DMRINX ;GO TO EXIT DMRINB: TST (R0) ;VALID DATA ENTRY? BPL DMRINX ;EXIT IF NO MORE ENTRIES DMRINC: BIT #17000,( S 6OMFR9 T ACTRUB;S C0,A#9F UB S 6OT NLTSURE ;2 T HL 4 .+Q BE C CET;G C FC C LTSUREK ECCH ;0 AC6, #PFCM T ULES RRETO;S1 NS,AC0 ATF S 0074 4USATST 2 A D AD ;0 AC2, #DFAD 4 A D OA;L C0,A#4F LD E OD MNGTIOAFLD OA;L 0074#4S FPLD * BFSU& F DD AOFT ES*T ^EXOPSC 5 12T NOP EX ; LT H +4 .EQ B ITK ECCH ;S FP5,#2P CM K AC BITT GE ;S FP2,ACP EXST S 1'T ALR HEOTD OA;L C2,A25 #XPDE L 52 2OT NXP;E T HL 4 .+Q BE ? OK ;S FP2,#5P CM K AC BEMTHT GE ;S FP1,ACP EXST S 1'T ALD OA;L C1c@ @ @ @ @ @ dF6f8v@Wp3f @ `0`@ @ @ @ @ @ @ @ &3`6fBp5@ 6@ ` lt@ @ @ @ @ @ @ @ r hfd29`0@0`3@ f0V@9@ @ @ @ @ @ @ @ 6rvd@ @ `0vb@ @ @ @ @ @ @ @ 9vTd6nj0F@@@ lV@@ @ @ @ @ @ @ @ fHf8v@Wn4f @ `0`0@ @ @ @ @ @ @ @ fC`5&fCr5@ 6@ ` n5T@ @ @ @ @ @ @ @ r hl7p9`0&@1`3@ R0) ;LINE ZERO BNE DMRIND MOVB PROCTS(R1),R2 ;GET DATA BIC DMMSK,R2 ;CLEAR NON TRANSMITTED BITS CMPB (R0),R2 ;COMPARE RECEIVED & TRANSMITTED DATA BEQ .+4 HLT ;ERROR! INCORRECT DATA INCB DMTDAT ;FORM WHAT NEXT RECEIVED CHAR. SHOULD BE DMRIND: CLR (R0) ;CLR TUMBLER TABLE ENTRY CMP R0,#TUMTAB+176 ;IS POINTER AT THE END OF THE TABLE BNE .+6 MOV #TUMTAB-2,R0 TST (R0)+ ;CLEAR ENTRY AND INCREMENT POINTER MOV R0,DMPTR ;RESTORE POINTER BR DMRINB ;LOOK AT NEXT ENTRY DMR,A52 #XPDE L 00-2T NOT ENONXP;E T HL 4 .+Q BE T ICKHE;C1 NS,A00-2 #MP C CKBAT ENONXP EHE TET;G1 NS,AC0 AXPTE S -1T NO2 NS;A 2LT H +4 .EQ B RDWOD ONEC SCKHE;C2 NS,A-1 #MP C 0OT NS1AN ;2 T HL 4 .+Q BE D OR WSTIR FCKHE;C S1ANT TS T ULES RVESA ;S1AN0,ACF ST 6 0040S TUTA S -1O TNTNEPOEXT SE ;C0,A00#2P EXLD 1 ,- 0 AADLO ;C0,A0101 DDF L DEMOG INATLO FET;S F ET S 0OT NNTNEPOEX ;1 T HL 4 .+Q BE T ICKHE;C1 NS,A00-2 #MP C NGRO WISS ;P T HL K OIFP KI;S +4 .EQ B K? OITS ;Ic@ r hp1b39` @`3@ p0f@3@ @ @ @ @ @ @ @ p0r@ @ `0`0@ @ @ @ @ @ @ @ 9fTf5Vn3j06@ @@ l1f@@ @ @ @ @ @ @ @ dF6f5v`Vpf @ `0fn6@ @ @ @ @ @ @ @ &3`&fCl5$@ 6@ ` lt@ @ @ @ @ @ @ @ r hj2`9`0f@`3@ `0V@0@ @ @ @ @ @ @ @ Vnd@ @ `0`@ @ @ @ @ @ @ @ 9fTf5vnj0&@@@ l1f@@ @ INX: MOV (SP)+,R2 ;RESTORE R2 MOV (SP)+,R1 ;RESTORE R1 MOV (SP)+,R0 ;RESTORE R0 BIC #.DONE,@DMCSR ;CLEAR DONE FLAG MOV #1,WATCDM RTI ;DM11 TAGS AND CORE TABLE .=.!377+1 ;SET ASSEMBLER LOCATION COUNTER ;TO X XXX XXX X00 000 000 DMCAT: 0 ;RESERVE 16. WORDS FOR .=DMCAT+32. ;CURRENT ADDRESS TABLE DMWCT: 0 ;RESERVE 16. WORDS FOR .=DMWCT+32. ;WORD COUNT TABLE DMBAT: 0 ;RESERVE 16. WORDS FOR .=DMBAT+32. ;BIT ASSEMBLY TABLE DMMSK: 177400 ;CHARACTER MAS PS,F10 #MP C NKJUR EACL ;PS,F607717 #IC B TSBIS PET;GS FPS,#P @OV M LTSUREE THT GE ;S1AN0,ACP EXST 0 T NO0 AC ;4 T HL 4 .+Q BE C FC C 0ITS ;I C0 ATDTS T ULES RHE TET;G1 NS,AC0 ATD S 0402 4USATST T ENONXP EHE TARLE;C0 AC0,20#-P EXLD 0 1,,-,0-1A D OA;L0 AC0,01D1D LD E OD MLEUBDOT SE ;0 2040 #PSDF L P*EXST& P EXLDF OSTTE^*X PECO S ,0-10,7,7777T NOT ULES;R 4LT H +4 .EQ B CCT GE ; CCCF T ULES RHE TCKHE;C0 ACG,BI DPDCM T ULES RET;G1 NS,AC0 ATD S 0002 4USATST T IBS;A C0 ASDcj0@@@ b4'@ @ @ @ @ @ @ @ @ rEf8v@Wj3f @ `0vj2@ @ @ @ @ @ @ @ +`0fCr5d@ 6@ ` r1@ @ @ @ @ @ @ @ r hp1n29`0f@2`3@ f0@0@ @ @ @ @ @ @ @ n0d@ @ `0l6@ @ @ @ @ @ @ @ 9fThnj0@ @@ h0 @@ @ @ @ @ @ @ @ bFFf7v`Vlf @ `0f`0@ @ @ @ @ @ @ @ 3`46fBp5d@ 6@ ` `@ @ @ @ @ @ @ K (8 BIT) DMTDAT: 0 ;BYTE COUNTER DMPTR: 0 ;SOFTWARE TUMBLE TABLE POINTER DMBARIM:-1 ;INITIALIXE TO TRANSMIT ALL LINES .=DMBAT+64. TUMTAB: 0 ;RESERVE 64. WORDS .=TUMTAB+128. ;FOR TUMBLE TABLE ;EQUATES .GO=1 .MAINT=4 .RIE=100 .DONE=200 .TIE=10000 .OVRUN=20000 .NEX=40000 .READY=100000 .DMPRTY=240 .SBTTL LINE PRINTER INTERRUPT SERVICE LPINTR: TSTB @LPCSR ;TEST FOR FLAG BMI .+4 HLT ;FALSE RETURN FROM MAIN LINE CMP CLINCT,#79. ;TEST FOR END OF LIAB 0 1,,-,0-1D OA;L0 AC0,01D1D LD E OD MLEUBDOT SE ; TDSE 0 T NOT ULES;R 2LT H +4 .EQ B CCT GE ; CCCF 0 R FOT ES;T C0 ATFTS T ULES RET;G1 NS,AC0 ATF S 0400 4USATST T IBS;A C0 ASFAB O ER ZUSIN M AADLO ;C0,AROZEDMF LD 1 T NOT ULES;R 2LT H +4 .EQ B CCT GE ; CCCF 1 A R FOK ECCH ;0 AC1, #PFCM S TUTA SET;G PS FPSTF S INGA AITS AB ;0 ACF BS A 2LT H OKF IIPSK ;4 .+Q BE ? 0STRE ;2 NS AST T 1OT NLTSURE ;2 T HL 4 .+Q BE 1 A R FOK ECCH ;S1AN0,2040 #MP C 0000 4USATST c`t@ @ @ @ @ @ @ @ r hfb39` @`3@ b0'@3@ @ @ @ @ @ @ @ 6pf@ @ `0fr5@ @ @ @ @ @ @ @ 9VTjnj06@ @@ rF@ @ @ @ @ @ @ @ @ lEVf8v@Wh3f @ `0`@ @ @ @ @ @ @ @ +`0&fCj5@ 6@ ` l14@ @ @ @ @ @ @ @ r h`f9`0g@3`3@ f0W@5@ @ @ @ @ @ @ @ n0b@ @ `0&d@ @ @ @ @ @ @ @ 9WT`nNE BEQ LP4 ;GO GENERATE CR/LF INC CLINCT ;INCREMENT LINE POSITION COUNT CMP CURPAT,#137 ;TEST FOR MAXIMUM PATTERN BEQ LP3 ;YES - GO TO LP3 AND RESET INC CURPAT ;NO - INCREMENT TO NEXT PATTERN BR LP2 ;GO SEND IT TO LINE PRINTER LP3: MOV #40,CURPAT ;RESET PATTERN AND SEND TO PRINTER BR LP2 ;SENT TO LINE PRINTER LP4: CLR CLINCT ;RESET LINE COUNT MOV #LPIN2,@#200 MOV #12,@LPDBR ;LINE FEED RTI LPIN2: MOV #LPINTR,@#200 CMP SOLPAT,#137 ;START OF LINE PATTERN BEQ LP5 1 A T IKEMA ;1 NS ASFAB T IET;G1 NS,AC0 ATF S -1A D OA;L C0,A-1 #DF L 0000#4S FPLD * SXABF OSTTE^*X PECO S 0OT NLTSURE ;4 T HL 4 .+Q BE C CET;G C FC C LTSURET ES;T C0 ATFTS T ULES RET;G1 NS,AC0 ATF S 0476 4USATST 0 ACE ATEG;N C0 AGDNE 0 ACR EACL ;0 ACD LR C DEMOE BLOU DET;S D ET S 0OT NLTSURE ;2 T HL 4 .+Q BE C CET;G C FC C ITK ECCH ;0 ACF ST T LTSURET GE ;S1AN0,ACF ST 0 -OT N 0BED ULHO;S 0474 4USATST T ITEGANE ;0 ACF EG N C0 AARLE;C C0 ARFCL S PTRUTEINN Oc@ @ @ @ @ 9T`9nj0@ @@ r0@ @ @ @ @ @ @ @ @ jBf7v`Vbf @ `0v`@ @ @ @ @ @ @ @ w`f7Cr4@ 6@ ` `@ @ @ @ @ @ @ @ r hnb39` @1`3@ b0f@5@ @ @ @ @ @ @ @ wp0d@ @ `0`@ @ @ @ @ @ @ @ 9FTpvnj0@@@ j1 @@ @ @ @ @ @ @ @ nDf7v`Vbf @ `0V`0@ @ @ @ @ @ @ @ +`6fBp5@ 6@ `  INC SOLPAT ;INCREMENT START OF LINE BR LP1 LP5: MOV #40,SOLPAT ;RESET START OF LINE LP1: MOV SOLPAT,CURPAT ;START OF LINE TO CURRENT LP2: MOV CURPAT,@LPDBR ;CURRENT PATTERN TO LINE PRINTER RTI ;RETURN TO MAIN LINE CURPAT: 0 ;CURRENT CHARACTER BEING PRINTED SOLPAT: 0 ;START OF LINE CHARACTER CLINCT: 0 ;POSITION OF LINE .SBTTL DECTAPE INTERRUPT SERVICE RD=4 ;READ DATA WD=14 ;WRITE DATA RB=2 BR=2 ;READ BLOCK F=0 ;FORWARD IE=100 ;INTERRUPT ENABLE DO=RNTU ;0 4047 #PSDF L 2LT H OKF IIPSK ;4 .+Q BE ? 0STRE ;2 NS AST T -5T NOT ULES;R 2LT H +4 .EQ B LTSUREE THK ECCH ;S1AN0,6440#1P CM 0 0140S TUTA S -5T IKEMA ;1 NS AGFNE 5 T NOT ULES;R 2LT H +4 .EQ B CCT GE ; CCCF T ULES RHE TCKHE;C C0,A#5F MP C LTSUREE THT GE ;S1AN0,ACF ST 0 0040S TUTA S 5ITE AK;M C0 AGFNE 5 -THWI0 ACD OA;L C0,A-5 #DF L 0000#4S FPLD * GXNEF OSTTE^*X PECO S R EACLT NOD DI ;4 T HL 4 .+Q BE C CET;G C FC C ITK ECCH ;0 ACD ST T LTSUREE ORST ;c@ & `6fCl5t@ 6@ ` `9@ @ @ @ @ @ @ @ r hbb9`0g@`3@ b0v@@ @ @ @ @ @ @ @ n0p@ @ `0j7@ @ @ @ @ @ @ @ 9T`1n3j0@@@ f2&@ @ @ @ @ @ @ @ @ dAf8v@Wf1f @ `0`0@ @ @ @ @ @ @ @ & `6f7Bp5D@ 6@ ` f54@ @ @ @ @ @ @ @ r hbr9`0@`3@ b0f@@ @ @ @ @ @ @ @ n0`@ @ `0`@ @ @ 1 ;DO - THE FUNCTION R=4000 ;REVERSE TCFLAG: 0 ;FLAG IS TESTED IN SCOPE TCSTAT: 0 ;DECTAPE PS TCFIRST: 0 ;FIRST BLOCK TO BE SEARCHED FOR TCLAST: 577. ;LAST BLOCK TO BE SEARCHED FOR TCEXPE: 0 ;THE BLOCK THAT AS EXPECTED ;GO TO FORWARD END ZONE TC11: MOV #TC11,TCIV ;END ZONE VECTOR SETUP TST @TCST ;TEST FOR END ZONE BMI FEND1 ;AT END ZONE? INCB @TCCM ;SET DO - NO DELAY RTI ;NO - WAIT SOME MORE FEND1: MOV #TCF1,TCIV ;YES - NEW VECTOR BIC #104000,@TCCM ;SS1AN0,ACD ST 4 2040S TUTA S UT OITR EACL ;0 ACD LR C ROZES NUMIA D OA;L0 ACO,ERMZ DDD L ARLE COT NID;D 4LT H +4 .EQ B USATSTT GE ; CCCF R EACLT IID;D C0 ATDTS T ULES RRETO;S1 NS,AC0 ATD S 0402 4USATST 0 ACF OSTREE THR EACL ;0 ACD LR C TDSE 0 T NO4 NS;A 4LT H +4 .EQ B THURFOK ECCH ;S4AN6,0+01D1P CM 1 -OT NS3AN ;4 T HL 4 .+Q BE D OR WRDHI TCKHE;C3 NS,A+41010 DMP C ROZET NO0 AC ;2 T HL 4 .+Q BE C CET;G C FC C ROZER FOT ES;T S1ANF ST T 0400 4USATST T OUT IARLE;C S1ch@ @ `0`@ @ @ @ @ @ @ @ 9T`1Fn6j0F@@@ p1V@ @ @ @ @ @ @ @ @ dAf5v`Vl5f @ `0`0@ @ @ @ @ @ @ @ & `6fCh5t@ 6@ ` n@ @ @ @ @ @ @ @ r hbb29`0V@7`3@ b0F@@ @ @ @ @ @ @ @ l0vp@ @ `0`@ @ @ @ @ @ @ @ 9T`1fn7j0@@@ p1V@ @ @ @ @ @ @ @ @ dAd7v`Vd8f @ `0Wl9@ @ @ @ @ @ @ EARCH BLOCK FORWARD MOV TCFIRST,TCEXPE ;COUNT WHEN THIS BLOCK IS FOUND TCF1A: INCB @TCCM ;SET DO RTI ;RETURN ON NEXT BLOCK TCF1: BIT #100200,@TCCM ;ANY ERROR ON READ? BPL .+4 HLT ;TC ERROR SET - FORWARD READ BLOCK BNE .+4 ;DONE FLAG UP? HLT ;FALSE INTERRUPT CMP @TCDT,TCEXPE ;IS THIS OUR BLOCK FOR SYNC BLT TCF1A ;NO-READ SOME MORE BLOCKS BEQ TCF2 ;YES HLT ;WE PASSED THE BLOCK TCF2: MOV #TCF3,TCIV ;VECTOR FOR SEQUENTIAL READS INCB @TCCM ;SET DO RTI ;ANF LR C NGTIOAFLT SE ; TFSE 1 NS ATOINT PU ;S1AN0,ACD ST 1 - AADLO ;C0,A1010 DDD L DEMOE BLOU;D 0002#4S FPLD * NSIOCTRUSTINX LR COFT ES*T ^EXOPSC ET SOT NIT B;Z T HL 4 .+Q BE S TUTA SCKHE;CS FP4,2040 #MP C USATSTT GE ;S FPS FPST E ER HOR ; LTHA E ER HOR ; LTHA E ER HOT;N T AL H REHEO GLDOUSH ;0 +1 .BR E IN LINT BIZ R FOT ES;T #0D ST T DEMOE BLOU DET;S D ET S ET SOT NIT B;N T HL 4 .+Q BE T BIN E THK ECCH ;PS,F1000#4P CM S TUTA SET;G PS FPSTF S 2OT N 4BYD TEENEMCRIN ;c6p0@ @ @ @ @ @ @ @ & `'dCj4d@ 6@ ` `9@ @ @ @ @ @ @ @ r hbr)`0V@`3@ b0f@@ @ @ @ @ @ @ @ `1p6@ @ `0w`2@ @ @ @ @ @ @ @ 9T`1n1h0@@@ r0@ @ @ @ @ @ @ @ @ dA`v`HFp8f @ `0`@ @ @ @ @ @ @ @ & b6d7Cn4@ 6@ ` `9@ @ @ @ @ @ @ @ r hb`)`0w@0`3@ b0v@@ @ @ @ @ @ @ @ h0fRETURN AND TEST SEQUENTIAL BLOCKS ;FIND SEQUENTIAL BLOCK AT FORWARD DIRECTION TCF3: BIT #100200,@TCCM ;TEST ERROR AND READY BPL .+4 HLT ;FORWARD READ ERROR TC-11 BNE .+4 HLT ;FALSE INTERRUPT ON TC-11 CMP @TCDT,TCLAST ;HAVE WE TESTED ALL BLOCKS BEQ RENDZ ;YES DRIVE UNIT IN END ZONE TO START OVER INC TCEXPE ;NO-INCREMENT EXPECTED COUNT CMP @TCDT,TCEXPE ;IS CURRENT BLOCK CORRECT BEQ .+4 HLT ;FAILED IN FORWARD READ TO FIND NEXT BLOCK BR TCWBK ;THIS ROUTINE WRITES LT H REHEO GLDOUSH ;4 .+R B NELIN IIT B NHE TOR FSTTE ;1 #-F ST T ET SOT NIT B;Z T HL 4 .+Q BE S TUTA SCKHE;CS FP4,0040 #MP C USATSTT GE ;S FPS FPST 0 = 2 ACT ES;T C2 ATFTS 0 T NO ; LT H +4 .EQ B USATSTK ECCH ;PS,F0000#4P CM S TUTA SET;G PS FPSTF S 5 =C5 ASTTE ;5 ACF ST T ET SOT NIT B;N T HL 4 .+Q BE S TUTA SCKHE;CS FP0,0140 #MP C USATSTE THT GE ;S FPS FPST 1 - =C1 ASTTE ;1 ACF ST T 0000#4S FPLD * C5-AC0 ALD ONGSI UTDTSD ANF ST TOFT ES*T ^EXOPSC 021014T NOS FP ; c@ @ @ @ @ @@ @ @ @ @ @ @ @ @ @ @ @ @ @ @  Tj7Vnj0V@@@ j1@ @ @ @ @ @ @ @ @ `AVd6v`Vbf @ `0V`0@ @ @ @ @ @ @ @  `6fCl5T@ 6@ ` `@ @ @ @ @ @ @ @ r hn`39` @`3@ b0@0@ @ @ @ @ @ @ @ vp0b@ @ `0F`0@ @ @ @ @ @ @ @ 9T`1n6f06@@@ `F@ @ @ @ @ @ @ @ @ dAd8v`HFff @ `0A BLOCK TCF4: INCB @TCCM ;SET DO RTI XTC11: BR TC11 ;INDIRECT LINK ;MOVE TAPE TO REVERSE END ZONE RENDZ: MOV #RENDZ,TCIV ;END ZONE VECTOR SETUP MOV TCLAST,TCEXPE ;SET UP FOR REVERSE SEARCH TST @TCST ;IN END ZONE BMI REND1 ;YES - START TO TURN UNIT AROUND INCB @TCCM ;SET DO RTI ;NO - WAIT TILL WE ARE REND1: MOV TCDRV,@TCCM ;SELECT DRIVE TO BE TESTED BIS #R+IE+RB+DO,@TCCM ;FUNCTION = READ BLOCK, REVERSE AND GO MOV #TCR1,TCIV ;SET UP NEW INTERRUPT VECTOR RTI ;WRI LT H +4 .EQ B USATSTT INPOG INATLO FCKHE;CS FP0,0041 #MP C USATSTT INPOG INATLO FRETO;S PS FPSTF S OWFLEROVT IKEMA ;C3,AIGDBF MP C 1010 4USATST 5 O T-5P CM ;3 AC4,ACF MP C 0010 4USATST 5 -TO5 P CM ;0 AC5,ACF MP C 0THWIS TUTA SADLO ;0 0041 #PSDF L 5*AC0-ACN ITADAH IT WPFCMF OSTTE^*X PECO S 5 ACT NO3 AC ; LT H +4 .EQ B CCT GE ; CCCF S TUTA SET;G PS FPSTF S 5OR FC5 ACKHE;C C3,AC5 APFCM 4 ACT NO0 AC ; T HL 4 .+Q BE C CET;G C FC C USATSTT GE ;S FPS FPST 5 -OR FC4c@ rW`8v͖`h @ `0&j4@ @ @ @ @ @ @ @ `'fFlbD@ F@ ` j1T@ @ @ @ @ @ @ @ r hll09`f@`4@ b2@0@ @ @ @ @ @ @ @ fn0#f@ @ `0`0@ @ @ @ @ @ @ @ 9Uln6؜d0V@@0@ p0@ @ @ @ @ @ @ @ @ bYfd9v&hh @ `0b@ @ @ @ @ @ @ @ `6&f7Flj2T@ F@ ` f@ @ @ @ @ @ @ @ r hr9j)`&@1`4@ `0@0@ @ @ TE FORWARD ALL BLOCKS EXCEPT 0 TCWBK: MOV #TCWB1,TCIV ;INTERRUPT VECTOR FOR WRITE MOV #-400,@TCWC ;ONE BLOCK MOV #TCWBUF,@TCBA ;THE WRITE BUFFER ADDRESS MOVB #IE+WD+DO,@TCCM ;WRITE THE BLOCK RTI ;RETURN WHEN BLOCK IS WRITTEN TCWB1: MOV @TCST,TCSTAT TST @TCCM ;ANY ERRORS BPL .+4 HLT MOV #TCF3,TCIV ;SEARCH BLOCK VECTOR MOVB #IE+RB,@TCCM ;READ BLOCK BR TCF4 ;FIND THE NEXT BLOCK TCR1: MOV @TCST,TCSTAT BIT #100200,@TCCM ;TEST FOR ERROR AND READY BPL .+4 HLT ;DECTAP ACKHE;C C0,AC4 APFCM 5 T NO3 AC ;2 T HL 4 .+Q BE C CET;G C FC C USATSTT GE ;S FPS FPST A AT DCKHE;C3 AC1,NS APFCM 1 NS ATOINA AT DUT;P2 1+NSDA@A3,ACF ST 0 T NO2 AC ;2 T HL 4 .+Q BE C CET;G C FC C USATSTT SE ;S FPS FPST A AT DCKHE;C2 AC1,NS APFCM 1 NS ATOINA AT DUT;P 4),(C2 ATF S EAARR WENS ATOR TEINPO ;R41,NS#AV MO: S1ANAD -1T NO1 AC ;2 T HL 4 .+Q BE C CET;G C FC C USATSTT GE ;S FPS FPST T ICKHE;C1 AC1,NS APFCM 1 ACT GE ;S1AN@#1,ACF ST 5 -OT NC0;A 2LT H +4 .EQ B CCc@8`4@ `06@5@ @ @ @ @ @ @ @ r0#l9@ @ `0`3r@ @ @ @ @ @ @ @ 9wU`nڜr0w@ @0@ d0f@ @ @ @ @ @ @ @ @ rWb9v͖rh @ `0`@ @ @ @ @ @ @ @ `f7mh9d@ F@ ` j0T@ @ @ @ @ @ @ @ r hbr9`G@`4@ `0V@@ @ @ @ @ @ @ @ r0f@ @ `0f@ @ @ @ @ @ @ @ 9wU`n1ڜr0v@ @0@ f0@ @ @ @ @ @ @ @ E ERROR ON READ BLOCK REVERSE BNE .+4 HLT ;FALSE INTERRUPT FROM DECTAPE CMP @TCDT,TCEXPE ;IS IT OUR FIRST BLOCK BEQ TCR2 ;YES - GO TEST THE REST BGE TCR1A ;NO - HAVE WE PASSED THE BLOCK HLT ;WE PASS OUR BLOCK BR RENDZ ;GO TO END ZONE AND TRY AGAIN TCR1A: INCB @TCCM ;SET DO RTI ;WE FOUND OUR FIRST BLOCK TCR2: MOV #TCR3,TCIV ;SET UP INTERRUPT TO TEST ALL BLOCKS INCB @TCCM ;SET DO RTI ;WAIT FOR NEXT BLOCK TO INTERRUPT ;FIND SEQUENTIAL BLOCK IN REVERSE DIRECTIOT GE ; CCCF S TUTA SET;G PS FPSTF S ITK ECCH ;0 AC5,#-F MP C C0 AET;G1 NS,AC0 ATF S 5THWI5 ACD OA;L C5,AC3 ATF S -5H IT WC4 AADLO ;4 AC0,ACF ST 5 H IT WC3 AADLO ;3 AC5, #DF L 0THWI2 ACD OA;L C2,A#0F LD 1 -THWI1 ACD OA;L C1,A-1 #DF L -5H IT WC0 AADLO ;0 AC5,#-F LD E OD MNGTIOAFLD OA;L 0074#4S FPLD * 'SACL ALN I=> (R1),LATLRG ;RELACE PRESENT LATST3: TST (R1)+ ;WORST CASE READING WITH LAREGER ONE DEC R0 ;CONTINUE UNTIL TABLE IS DONE BNE LATST2 MOV (SP)+,R1 ;RESTORE REGISTERS MOV (SP)+,R0 LATST4: MOV #-1000.,@DRLWC ;SET UP WORD COUNT AND MOV LATBUF,@DRLBA ;BUFFER ADDRESS MOV #101,@DRLST ;RESTART TESTER RTI LATLRG: 0 ;MAXIMUM LATENCY READING WILL ;BE STORED HERE LATBUF: 40000 ;START OF LATENCY TESTER ;DATA BUFFER .ENDC .IF DF GTPFPP .SBTTL FLOATING POINT PROCESSOR TEST PROCTS: MOV #STACK,SP ;SET UP STACK POINTER FOR ;CURRENT MODE MOV #TEST0,RETURN ;FOR SCOPING MOV #4000,ICOUNT TEST0: .MACRO STATUS W,X,Y STFPS FPS ;STORE FLOATING POINT STATUS .IF NE W&100000 STST FEC ;STORE EXCEPTION CODES .ENDC CMP #W,FPS ;CHECK FLOATING POINT STATUS BEQ .+4 ;BRANCH IF OK HLT ;FPS NOT EQUAL TO W .IFNZ W&100000 ;ERROR BIT SET? CMP #X,FEC ;CHECK FLOATING EXCEPTION CODE BEQ .+4 ;BRANCH IF OK HLT ;FEC NOT EQUAL TO X .IFNZ Y+0 C<c@ @ @ @ `Wb6vˈph @ `0j@ @ @ @ @ @ @ @ `&f7Flnd@ F@ ` b5@ @ @ @ @ @ @ @ r h`r09bf@8`4@ `0F@@ @ @ @ @ @ @ @ p6#b@ @ `0`@ @ @ @ @ @ @ @ 9vU`n7ڜr0F@ @0@ b0@ @ @ @ @ @ @ @ @ bW`9v͖jh @ `0`3@ @ @ @ @ @ @ @ `0fFll9D@ F@ ` j0T@ @ @ @ @ @ @ @ r hhn9bF@5`4@ `0V@5@chnd9bF@`4@ `0V@5@ @ @ @ @ @ @ @ vj0F#f4@ @ `0l0@ @ @ @ @ @ @ @ 9vU`7Vn7؜`1V@@0@ d0f@ @ @ @ @ @ @ @ @ `Wd5vˈdh @ `0j@ @ @ @ @ @ @ @ `6f7Fll@ F@ ` j0T@ @ @ @ @ @ @ @ r hnh09bf@7`4@ `0V@@ @ @ @ @ @ @ @ vl0V#h6@ @ `0`@ @ @ @ @ @ @ @ 9vU`7fn؜`1&@@0@ d0v@@ @ @ @