*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 ICHARS, CHARS IBUFFR, BUFFER-1 TIPE, TYPE MD60, -74 BNTR, 0 M6, -6 M14, -14 C215, 215 C212, 212 C240, 240 C260, 260 C40, 40 C300, 300 D300, 454 LOCHAR, 0 K, 0 TRTYPE, 0 TRTYP2, 0 MD30, -36 IELOOP, ELOOP ILAB5, LAB5 ILOOP, LOOP TIMER, 0 TIMEON, 20 /FRAMES "ON" TIMOFF, 4 /FRAMES "OFF" BEFORE, 310 AFTER, 454 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, -310 /FRAME=2 MSECS /OUTPUT SUBR TYPE, 0 TLS TSF JMP .-1 CLA JMP I TYPE /SUBR DISPLAYS 6 CHAR POSNS, EACH OF /WHICH IS EITHER A CHARACTER, A BLANK /(ASCII CODE=40), OR A BRIGHT MASK /SQUARE (ASCII CODE=0) /TWO SETS OF CHAR POSNS ARE SO SHOWN CHARS, 0 LINC LMODE SET I 1 IHORCO, 240 SET I 2 BUFFER-1 /AD-1 DISP BUFFR LDA I 2 /NEXT CHAR CODE ROL 1 ADA I PATRN-2 STC 3 /FIRST PW LDA I VERCO, 320 DSC 3 DSC I 3 SRO I 3737 /DO 6 POSNS SKP JMP WORD2 /DO SECOND WORD LDA I DX, 1 ADM 1 JMP IHORCO+3 /NEXT CHAR /NOW DISPLAY SECOND WORD 2 LINES BELOW /2ND WORD BUFFERED AT BUFFER+6 & UP WORD2, SET I 1 IHRCO2, 240 LDA I 2 ROL 1 ADA I PATRN-2 STC 3 LDA I VERCO2, 260 DSC 3 DSC I 3 SRO I 3737 SKP JMP RETURN LDA DX ADM 1 JMP WORD2+2 RETURN, PDP PMODE CLA JMP I CHARS /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 MD30 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 30-TRIAL BLOCK (2 WORDS/BLOCK) /STARTS HERE. /SHUFFLE 60 TYPES (2/TRIAL) AND DO IT! BLOCK, TAD MD30 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 /1 TRIAL TYPE DRAWN FOR EACH OF 2 WORDS /TRIAL TYPE (0,1,...) REFERS TO A /PERMUTATION OF THE TEMPORAL ORDER IN /WHICH THE (6) LETTERS ARE SHOWN TRIAL, TAD I 12 /NEXT TR TYPE DCA TRTYPE TAD I 12 DCA TRTYP2 /SHOW ALL PREMASKS IN EACH WORD UNTIL /S GIVES READY SIGNAL /AND THEN FOR ANOTHER "BEFORE" FRAMES /BUFFER,..BUFFER+5=WORD1 CODES /BUFFER+6,BUFFER+11=WORD2 CODES TAD M14 DCA 6 TAD IBUFFR /AD-1 CHAR BUFFR DCA 14 TAD C40 /40=PREMASK CODE DCA I 14 ISZ 6 JMP .-3 6314 JMS CLOCK JMS I ICHARS /JMS CHARS JMS DELAY 6312 SNA CLA JMP .-5 TAD BEFORE CIA DCA TIMER JMS CLOCK JMS I ICHARS JMS DELAY ISZ TIMER JMP .-4 TAD TRTYPE LINC LMODE MUL I 6 /6 ITEMS/ORDER ADA I ORDER1-1 /POINT TO ORDER STC 15 ADD TRTYP2 MUL I 6 ADA I ORDER1-1 STC 16 PDP PMODE TAD M6 DCA 7 LOOP, TAD I 15 /GET POSN ORDER DCA K TAD K TAD IBUFFR /AD IN CHAR BUFF DCA 5 TAD LOCHAR TAD K DCA 4 /AD ASCII CODE TAD I 4 DCA I 5 /FILL BUFFR POSN /REPEAT FOR 2ND WORD STL IAC RTL TAD I 16 DCA K TAD K TAD IBUFFR DCA 6 TAD LOCHAR TAD K DCA 4 TAD I 4 DCA I 6 /SHOW "TIMEON" NO. FRAMES WITH KEY CHAR /AND PRE/POSTMASKS IN NON-KEY POSNS TAD TIMEON CIA DCA TIMER JMS CLOCK JMS I ICHARS JMS DELAY ISZ TIMER JMP .-4 DCA I 5 /SET POSTMASKS DCA I 6 /(CODE=0) /NOW SHOW "TIMOFF" NO. FRAMES WITH KEY /POSITION POSTMASKED TAD TIMOFF SNA /SKIP IF=0 JMP I IELOOP /JMP ELOOP CIA DCA TIMER LAB5, JMS CLOCK JMS I ICHARS JMS DELAY ISZ TIMER JMP LAB5 ELOOP, ISZ 7 /ANOTHER CHAR? JMP I ILOOP /JMP LOOP /NOW SHOW ALL POSTMASKS "AFTER" FRAMES TAD AFTER CIA DCA TIMER JMS CLOCK JMS I ICHARS JMS DELAY ISZ TIMER JMP .-4 /TYPE OUT TRTYPE,SPACE,WORD1 TAD M6 DCA 1 TAD LOCHAR DCA 10 TAD TRTYPE TAD C260 JMS I TIPE TAD C240 JMS I TIPE TAD I 10 TAD C300 JMS I TIPE ISZ 1 JMP .-4 /TYPE SPACE,TRTYP2, WORD2 TAD C240 JMS I TIPE TAD TRTYP2 TAD C260 JMS I TIPE TAD C240 JMS I TIPE TAD M6 DCA 1 TAD I 10 TAD C300 JMS I TIPE ISZ 1 JMP .-4 TAD 10 DCA LOCHAR /AD-1 NEXT PAIR 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, 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 /STORAGE BUFFER FOR CHARS FOLLOWS BUFFER, 0 0 0 0 0 0 0 0 0 0 0 0 /RANDOM PACKAGE AND PW TABLE FOLLOW PAGE RNDM, 0 /RN IN 0,RNDM3 JMS I RNX /36 BIT RN JMS I RMNDR /REMAINDR RNDM3 CLA JMP I RNDM /DONE M36, -44 / IDX1, 0 / R1X, 0 / R2X, 0 / R3X, 0 / RMNDRX, 0 /GET RMNDR CLA / DCA RNDM2 / TAD R1 / DCA R1X / TAD R2 / DCA R2X / TAD R3 / DCA R3X / TAD M36 / DCA IDX1 /FOR 36 BITS RMN1, CLA / TAD RNDM2 / CLL / RAL / DCA RNDM2 /SHIFT LEFT 1 TAD R1X / CLL / RAL / DCA R1X /SHIFT LEFT 1 RAL /GET LINK TAD RNDM2 / DCA RNDM2 / TAD R2X / CLL / RAL / DCA R2X / RAL /GET LINK TAD R1X / DCA R1X / TAD R3X / CLL / RAL / DCA R3X / RAL /GET LINK TAD R2X / DCA R2X /SHIFTS DONE TAD RNDM3 /NUMBER MOD CIA / TAD RNDM2 / SPA / JMP .+2 / DCA RNDM2 /SUB,REPLACE ISZ IDX1 /CHECK INDEX JMP RMN1 /CONTINUE JMP I RMNDRX /RMNDR IN RNDM2 SHUFL, 0 /SHUFFLES SHUFL1, CLA / TAD SH2 /LENGTH DCA RNDM3 / JMS I RNDM1 /GET RN CLA / TAD SH3 /BLOCK SIZE DCA INDEX6 / TAD SH1 /ARRY-1 SHUF1, TAD RNDM2 /ADD TO ARRY ISZ INDEX6 /N X M DONE? JMP SHUF1 /CONTINUE DCA TEMP /DONE,IN TEMP TAD TEMP / DCA 14 / TAD TEMP / DCA 15 / TAD SH1 / DCA 16 / TAD SH1 / DCA 17 / TAD SH3 / DCA INDEX6 /-BLOCK SIZE SHUF2, TAD I 14 / DCA TEMP / TAD I 16 / DCA I 15 / TAD TEMP / DCA I 17 / ISZ INDEX6 / JMP SHUF2 / CLA CMA /AC=-1 TAD SH2 /LENGTH-1 SZA / JMP .+2 / JMP I SHUFL /DONE DCA SH2 /NEW LENGTH TAD SH3 /BLOCK SIZE,- CIA /+BLOCK SIZE TAD SH1 /ADD ARRAY DCA SH1 /NEW START JMP SHUFL1 /CONTINUE PAGE IR, 0 / JMP IR1 / RN, 0 / CLA / TAD R3 / RAL / AND K7400 / DCA T3 / TAD R2 / AND K177 / TAD T3 / RTL / RTL / RAL / DCA T1 / TAD R3 / AND K177 / RTL / RTL / RAL / TAD R2 / DCA T2 / SZL / ISZ T1 / NOP / TAD R3 / CLL RAL / SZL / ISZ T2 / SKP / ISZ T1 / NOP / CLL / TAD R3 / DCA R3 / TAD R2 / RAL / SZL / ISZ T1 / NOP / CLL / TAD T2 / DCA R2 / TAD R1 / RAL / TAD R1 / TAD T1 / DCA R1 / TAD R1 / JMP I RN / HLT /NOT USED IR1, CLA IAC / DCA R3 / DCA R2 / DCA R1 / JMP I IR / K177, 177 / K7400, 7400 / T1, 0 / T2, 0 / T3, 0 / /PATTERN WORDS FOR CHAR DISPLAY FOLLOWS /NOTE 0=CODE FOR POSTMASK 7777 7777 PATRN, 4477 /A 7744 5177 /B 2651 4136 /C 2241 4177 /D 3641 4577 /E 4145 4477 /F 4044 4136 /G 2645 1077 /H 7710 7741 /I 0041 4142 /J 4076 1077 /K 4324 177 /L 301 3077 /M 7730 3077 /N 7706 4177 /O 7741 4477 /P 3044 4276 /Q 376 4477 /R 3146 5121 /S 4651 4040 /T 4077 177 /U 7701 176 /V 7402 677 /W 7701 1463 /X 6314 770 /Y 7007 4543 /Z 6151 4177 /[ 0000 2040 /\ 0410 0 /] 7741 2000 /^ 2077 3410 /BACK ARROW 1010 7777 /POSTMASK PWS 7777 7500 /! 0 6006 /" 60 3614 /NUMBER SIGN 1436 7721 /DOLLAR SIGN 4677 1446 /% 6130 5166 /& 0523 500 /APOSTROPHY 6 4163 /( 0 0 /) 6341 2050 /* 50 404 /+ 437 605 /, 0 404 /- 404 1 /. 0 601 // 4030 4136 /0 3641 2101 /1 177 4523 /2 2151 4122 /3 2651 2414 /4 477 5172 /5 651 1506 /6 4225 4443 /7 6050 5126 /8 2651 5120 /9 3651 4200 /: 0 2601 /; 0 2410 /< 0042 1212 /= 1212 4200 /> 1024 4020 /? /TRTYPE=0: LETTERS 1-6 OF WORD SHOWN IN /THIS ORDER: LEFT TO RIGHT ORDER1, 1 2 3 4 5 6 /TRTYPE=1: RIGHT TO LEFT 6 5 4 3 2 1 /TRTYPE=2: ORDER IS 2,4,6,5,3,1 2 4 6 5 3 1