*20 PMODE *20 SH1, 0 SH2, 0 SH3, 0 SHUFEL, SHUFL RNX, RN IRX, IR K7, 7 TEMP, 0 R1, 0 R2, 0 R3, 0 INDEX6, 0 RNDM3, 0 RNDM2, 0 RNDM1, RNDM RMNDR, RMNDRX IDISP1, DSHALF IBLANK, BLANK IDISP6, DISP6 TIPE, TYPE MOVE, 1 MD60, -74 BNTR, 0 M6, -6 M4, -4 IHORCO, 240 PAUSET, -310 VERCO, 340 M7, -7 C215, 215 C212, 212 IWHOLE, WHOLE C240, 240 C261, 261 C300, 300 D300, 454 LOCHAR, 0 K, 0 ILAB4, LAB4 WSIZE, 0 TIMER, 0 TIME, -14 /-NO. REFRESHES PWTABL, PATRN-2 ADTRL1, TRIALS-1 /SUBR STARTS 100 KHZ CLOCK CLOCK, 0 CLA CLLR TAD FCLOCK CLLR CLA JMP I CLOCK FCLOCK, 2100 /SUBR PAUSES UNTIL CLOCK TIMES OUT AT DELAY, 0 CLCA TAD RFRESH SPA CLA JMP .-3 CLLR JMP I DELAY RFRESH, -413 /REFRESH RATE /OUTPUT SUBR TYPE, 0 TLS TSF JMP .-1 CLA JMP I TYPE /SUBR DISPLAYS EITHER LEFT HALVES OF /6 CHARS IN STRING (K=1) OR RIGHT /HALVES (K=-1), MASKING OTHER HALVES DSHALF, 0 CLA TAD M6 DCA 4 TAD LOCHAR DCA 10 TAD IHORCO SETHC, DCA 1 TAD I 10 CLL RAL TAD PWTABL DCA 2 TAD K SMA CLA JMP LEFT /DISPLAY RIGHT HALF AND MASK LEFT HALF TAD VERCO LINC LMODE DSC I 0 MASK, 7777 DSC I 2 JMP CHECK /DISPLAY LEFT HALF AND MASK RIGHT HALF PMODE LEFT, TAD VERCO LINC LMODE DSC 2 DSC I 0 7777 CHECK, PDP PMODE CLA ISZ 4 SKP JMP I DSHALF TAD 1 TAD MOVE JMP SETHC /SUBR DISPLAYS ALL SIX LETTERS OF WORD DISP6, 0 CLA TAD LOCHAR DCA 10 TAD M6 DCA 4 TAD IHORCO NEXT, DCA 1 TAD I 10 CLL RAL TAD PWTABL DCA 2 TAD VERCO LINC LMODE DSC 2 DSC I 2 PDP PMODE CLA ISZ 4 SKP JMP I DISP6 TAD 1 TAD MOVE JMP NEXT /SUBR MASKS ALL SIX CHAR POSITIONS BLANK, 0 CLA TAD M6 DCA 4 TAD IHORCO DCA 1 TAD VERCO LINC LMODE DSC I 0 7777 DSC I 0 7777 PDP PMODE CLA ISZ 4 SKP JMP I BLANK TAD MOVE TAD 1 JMP BLANK+5 /PROGRAM STARTS HERE. INITIALIZE RN BY /CLEARING R SWS START, ISZ 1 NOP LAS SZA CLA JMP START JMS I IRX JMS I RNX ISZ 1 JMP .-2 CLA /READ IN LIST OF 300 6-LETTER WORDS OFF /TAPE UNIT 1. THEN SHUFFLE THE LIST 42 /TIMES. THEN HALT WHEN READY LINC LMODE ESF LDF 2 RDC U 4760 RDC U 5761 RDC U 6762 RDC U 7763 LDF 3 RDC U 4764 RDC U 5765 RDC U 6766 RDC U 7767 PDP PMODE CLA TAD MD60 DCA 1 TAD M6 DCA SH3 TAD D300 DCA SH2 STA CLL RAR /3777=AD-1 DCA SH1 JMS I SHUFEL ISZ 1 JMP .-10 STA CLL RAR DCA LOCHAR /AD-1 WORD LIST HLT /EACH 60 TRIAL BLOCK STARTS HERE. /SHUFFLE 60 TYPES AND GO TO IT! BLOCK, TAD MD60 DCA BNTR TAD M6 DCA 1 STA DCA SH3 TAD MD60 CIA DCA SH2 TAD ADTRL1 DCA SH1 JMS I SHUFEL ISZ 1 JMP BLOCK+4 TAD ADTRL1 DCA 12 /EACH TRIAL STARTS HERE /W=0: SHOW ENTIRE WORD AT ONCE /W=1:SHOW LEFT HALVES OF LETTERS FIRST, /THEN RIGHT HALVES. W=-1: VICE-VERSA TRIAL, TAD I 12 /NEXT WSIZE DCA WSIZE /SHOW ALL MASKS UNTIL READY SIGNAL, THEN /FOR ADDITIONAL -PAUSET FRAMES 6314 JMS CLOCK JMS I IBLANK /JMS BLANK JMS DELAY 6312 SNA CLA JMP .-5 TAD PAUSET DCA TIMER JMS CLOCK JMS I IBLANK JMS DELAY ISZ TIMER JMP .-4 TAD WSIZE SNA JMP I IWHOLE /JMP WHOLE=SIMUL DCA K /CONTROLS HALF TAD TIME DCA TIMER /NO. CYCLES/FRAM JMS CLOCK JMS I IDISP1 /JMS DSHALF JMS DELAY ISZ TIMER JMP .-4 TAD K CIA DCA K /DO OTHER HALF TAD TIME DCA TIMER LAB4, JMS CLOCK JMS I IDISP1 JMS DELAY ISZ TIMER JMP I ILAB4 /JMP LAB4 JMP DONE /SIMULTANEOUSLY WHOLE, TAD TIME DCA TIMER JMS CLOCK JMS I IDISP6 JMS DELAY ISZ TIMER JMP .-4 /DONE WITH DISPLAY: MASK DISPLAY FOR /-2*PAUSET FRAMES DONE, TAD PAUSET TAD PAUSET DCA TIMER JMS CLOCK JMS I IBLANK JMS DELAY ISZ TIMER JMP .-4 /TYPE OUT COND: 0=RL, 1=WHOLE, 2=LR /AND THEN SPACE, WORD TAD M6 DCA 1 TAD LOCHAR DCA 10 TAD WSIZE TAD C261 JMS I TIPE TAD C240 JMS I TIPE TAD I 10 TAD C300 JMS I TIPE ISZ 1 JMP .-4 TAD 10 DCA LOCHAR /AD-1 NEXT WORD TAD C240 JMS I TIPE /ACCEPT SINGLE INPUT CHAR FROM TTY KCC KSF JMP .-1 KRB JMS I TIPE TAD C212 JMS I TIPE TAD C215 JMS I TIPE ISZ BNTR JMP I ITRIAL /JMP TRIAL /BLOCK OVER: EXTRA CR,LF, THEN HALT TAD C215 JMS I TIPE TAD C212 JMS I TIPE HLT JMP I IBLOCK ITRIAL, TRIAL IBLOCK, BLOCK /ARRAY OF 60 TRIAL TYPES/BLOCK FOLLOWS TRIALS, -1 0 1 -1 0 1 -1