*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 NWORDS, 0 ADCH, 0 HALF, 0 M43, -43 WIDTH, 11 /CHAR SPACING M6, -6 M4, -4 C24, 24 NUMSNT, 0 NFRAME, 0 SCOUNT, 0 COUNT, 0 C377, 377 SENTNO, 0 VERCO, 340 X0, 0 ADBLNK, PATRN+76 /AD BLANK PWS MADBLK, -PATRN-76 /-ADBLNK SHOW, DISPLA GTCHAR, NEXTCH DBUFM1, SBUFFR+600 SBUFM1, SBUFFR-1 /PRMASK AND AFMASK ARE TWO DISPLAY TYPE /PARAMETERS, CONTROLLING WHAT HAPPENS /BEFORE/AFTER WORD IS SHOWN: -1=MASK, /0=BLANK, +1=DISPLAY WORD PRMASK, -1 AFMASK, 1 WHWDTM, 12 /FR/WD SIMULT. WDONTM, 12 /FR/WD ON SINGLE WDOFTM, 0 /" " OFF " /SUBR RETURNS NORMALLY IF SW N OFF, /RETURNS NORMAL+1 IF ON; N FROM AC SWITCH, 0 TAD SNSN DCA .+2 LINC LMODE 0 /SNS N JMP .+4 PDP PMODE ISZ SWITCH JMP I SWITCH LMODE PDP PMODE JMP I SWITCH SNSN, 440 /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 /4 MSEC=400 TICKS OF 100KHZ CLOCK DELAY, 0 CLCA TAD WAIT SPA CLA JMP .-3 CLLR JMP I DELAY WAIT, -1440 /8 MSEC REFRESH /SUBR PUTS FIXATION DOTS AT CENTER=377 /ABOVE AND BELOW LINE TO BE READ FIXATE, 0 TAD C377 DCA 1 LINC LMODE ESF ADD VERCO ADD M4 DIS 1 CLR ADD VERCO ADD C24 DIS 1 PDP PMODE CLA JMP I FIXATE PAGE /READ IN DIAL SOURCE FILE INTO FIELD 1 /TBLK FROM L SWS, NO. BLKS FROM R SWS. INFILE, 0 HLT LAS CIA DCA 7 TAD LDF4 /SETUP LDF N DCA SETLDF STL RAR DCA MBLK LINC LMODE LSW STC TBLK SETLDF, 0 /FILLED ABOVE ADD TBLK ADD MBLK STC .+2 RDC U 0 PDP PMODE CLA ISZ 7 SKP JMP SORT ISZ TBLK TAD C1000 TAD MBLK SNA JMP .+4 DCA MBLK LINC LMODE JMP SETLDF PMODE STL RAR DCA MBLK ISZ SETLDF JMP .-5 /COUNT NO. OF SENTENCES;SHUFFLE SENTENCE /ORDER FOR DISPLAY SORT, DCA NUMSNT STA DCA HALF STL IAC RAL DCA ADCH JMS NEXTCH TAD M43 SZA CLA JMP .-3 ISZ NUMSNT JMS NEXTCH SZA JMP .-6 TAD NUMSNT CIA DCA 7 DCA 6 TAD SENTOR /AD-1 SENT ORDER DCA 10 ISZ 6 TAD 6 DCA I 10 ISZ 7 JMP .-4 TAD M6 DCA 7 TAD SENTOR DCA SH1 TAD NUMSNT DCA SH2 STA DCA SH3 JMS I SHUFEL ISZ 7 JMP .-10 TAD NUMSNT CIA DCA NUMSNT TAD SENTOR DCA SCOUNT JMP I INFILE LDF4, 644 /LDF 4 TBLK, 0 MBLK, 0 C1000, 1000 SENTOR, SBUFFR+214 /SUBR MOVES IN TEXT FILE TO AD-1 OF THE /JTH SENTENCE, WHERE J=SENTNO NOSENT, 0 TAD SENTNO CIA DCA 6 STA DCA HALF STL IAC RAL DCA ADCH GTSENT, ISZ 6 SKP JMP I NOSENT JMS NEXTCH TAD M43 SZA CLA JMP GTSENT+3 JMP GTSENT /SUBR UNPACKS NEXT 6-BIT ASCII CHAR FROM /PACKED ASCII TEXT BUFFER: TEXT POINTER /IS ADCH=X AND HALF=Y: Y=-1 - LEFT HALF /OF WORD X IN FIELD 1; Y=0, RIGHT HALF /CHAR CODE RETURNED IN AC NEXTCH, 0 CDF 10 TAD I ADCH ISZ HALF JMP RIGHT RTR RTR RTR AND C77 CDF 0 JMP I NEXTCH RIGHT, DCA 7 STA DCA HALF ISZ ADCH SKP HLT TAD 7 JMP RIGHT-3 C77, 77 PAGE /SUBR ENCODES THE SENTENCE AT THE TEXT /POINTER INTO THE DISPLAY BUFFER, WHICH /BEGINS AT SBUFM1+1. EACH CHARACTER TO /BE DISPLAYED IS CONVERTED TO ITS PW /ADDRESS. EACH SEPARATE WORD IS /DELIMITED BY A BLANK (40), AND THE /SENTENCE IS TERMINATED BY A (43). /"INSERT" EXTRA BLANKS ARE PUT IN /BETWEEN WORDS. THE SENTENCE IS CENTERED /AT X=377 PRSENT, 0 DCA NWORDS TAD SBUFM1 /AD-1 SENT. BUFF DCA 10 CHNEXT, JMS I GTCHAR /JMS NEXTCH DCA CHAR TAD CHAR TAD M57 /SKIP "/" SNA CLA JMP CHNEXT TAD CHAR TAD M47 SNA CLA /SKIP CONT MARK JMP CHNEXT TAD CHAR TAD M43 SNA CLA JMP DONE TAD CHAR CLL RAL TAD PWTABL DCA I 10 TAD CHAR TAD M40 SZA CLA JMP CHNEXT ISZ NWORDS TAD INSERT /NO. EXTRA BLNKS CMA DCA 6 ISZ 6 SKP JMP CHNEXT TAD ADBLNK /AD BLNK PW DCA I 10 JMP .-5 DONE, TAD ADBLNK DCA I 10 ISZ NWORDS TAD 10 CIA TAD SBUFM1 DCA 6 TAD WIDTH ISZ 6 JMP .-2 CLL RAR CIA TAD C377 /CENTER DISPLAY DCA X0 JMP I PRSENT CHAR, 0 M40, -40 M57, -57 M47, -47 PWTABL, PATRN-2 INSERT, 0 /NO EXTRA BLANKS /SUBROUTINE "DEVELOPS" DISPLAY OF /SENTENCE BUFFER, ONE "FRAME" AT A TIME. /EACH FRAME IS OF 4 MSEC DURATION WITH /CONSTANT REFRESH RATE (I.E.,ONE DISPLAY /LOOP/FRAME. DBUFM1+1 ON UP IS THE FRAME /BUFFER: NWORDS WORDS/FRAME; 0=NOT SHOWN /THIS FRAME, 1=SHOWN THIS FRAME, -1= /MASKED OUT THIS FRAME PAGE DISPLA, 0 TAD NFRAME CIA DCA COUNT TAD DBUFM1 DCA 11 FRAME, TAD SBUFM1 DCA 10 TAD NWORDS CIA DCA 7 TAD X0 DCA 1 JMS CLOCK TAD I 11 SNA JMP NOSHOW /0=NOT SHOWN SMA CLA JMP SHOWIT /1=SHOWN MASK, TAD I 10 /-1=MASKED TAD MADBLK /CHAR=BLANK? SNA CLA JMP WDNEXT /END MASKED WORD TAD VERCO LINC LMODE DSC I 7777 DSC I 7777 PDP PMODE CLA ISZ 1 JMP MASK SHOWIT, TAD I 10 TAD MADBLK SNA JMP WDNEXT /END SHOWN WORD TAD ADBLNK /RESTORE DCA 2 TAD VERCO LINC LMODE DSC 2 DSC I 2 PDP PMODE CLA ISZ 1 JMP SHOWIT NOSHOW, TAD I 10 TAD MADBLK /BLANK CHARS SNA CLA JMP WDNEXT TAD 1 TAD WIDTH DCA 1 JMP NOSHOW WDNEXT, ISZ 7 /ANOTHER WORD? JMP .+5 JMS DELAY /CONST. REFRESH ISZ COUNT /ANOTHER FRAME? JMP FRAME /NEXT FRAME JMP FINISH /DONE W/DISPLAY TAD 1 TAD WIDTH DCA 1 /SKIP BLANKS TAD I 10 TAD MADBLK /SKIP EXTRA BLKS SNA CLA JMP .-6 STA TAD 10 DCA 10 /RESET POINTER JMP FRAME+10 /NEXT WORD /MASK ENTIRE DISPLAY UNTIL S HITS 4-KEY FINISH, CLLR 6304 TAD VERCO LINC LMODE DSC I 7777 PDP PMODE CLA 6302 SNA CLA JMP FINISH+2 JMP I DISPLAY /SUBR SETS UP TIME-DEVELOPING BUFFER FOR /ENSUING DISPLAY. FOR EACH 4-MSEC FRAME /OF THE DISPLAY, 1 WORD IS USED IN THIS /DEVELOPER ARRAY FOR EACH WORD OF THE /SENTENCE. IN EACH FRAME, A WORD WITH A /0 VALUE IS NOT SHOWN DURING THAT FRAME, /A 1 VALUE MEANS IT IS SHOWN, AND A -1 /VALUE MEANS IT IS MASKED OUT. SW 0 ON /SETS UP A DISPLAY OF ALL WORDS SIMULT., /FOR WHWDTM*NWORDS FRAMES. SW 0 OFF /SETS UP A WORD-BY-WORD DISPLAY OF THE /SENTENCE: SW 1 ON SETS UP A RANDOM /ORDER OF WORDS DISPLAYED, SW 1 OFF SETS /UP A LEFT-TO-RIGHT ORDER. EACH WORD IS /DISPLAYED FOR WDONTM FRAMES, WITH /WDOFTM FRAMES BETWEEN WORDS; AFTER EACH /WORD HAS BEEN SHOWN, IT WILL EITHER BE /BLANKED IN LATER FRAMES (AFMASK=0) OR /MASKED OUT (AFMASK=-1). PAGE MAKEIT, 0 TAD DBUFM1 DCA 11 /AD-1 DEV. BUFFR TAD NWORDS CIA DCA 6 JMS SWITCH /SW 0 JMP SINGLE /OFF=WORD-BY-WOR TAD WHWDTM /ON=SIMULT. ISZ 6 JMP .-2 DCA NFRAME TAD NFRAME CIA DCA 6 TAD NWORDS CIA DCA 7 IAC DCA I 11 /SHOW WORD ISZ 7 /END FRAME? JMP .-3 ISZ 6 /ANOTHER FRAME? JMP .-10 JMP I MAKEIT SINGLE, TAD WDORDR /AD-1 TEMP ORDER DCA 12 TAD WDPAST /AD-1 YET SHOWN DCA 13 DCA 7 ISZ 7 TAD 7 DCA I 12 /WORD NO. DCA I 13 /0=NOT YET SHOWN ISZ 6 JMP .-5 IAC JMS SWITCH /SW 1: JMP NOSCRM TAD M6 /ON=SCRAMBLE DCA 6 WSHUF, TAD WDORDR DCA SH1 TAD NWORDS DCA SH2 STA DCA SH3 JMS I SHUFEL ISZ 6 JMP WSHUF NOSCRM, TAD NWORDS CIA DCA NGROUP /1 GROUP FRMS/WD TAD NGROUP DCA 7 TAD WDONTM TAD WDOFTM ISZ 7 JMP .-3 DCA NFRAME TAD WDORDR DCA 12 GROUP, TAD I 12 /WD NO. IN FRAME CIA DCA WORDNO TAD WDONTM CIA DCA 5 GFRAME, TAD NWORDS CIA DCA 7 TAD WDPAST DCA 13 TAD WORDNO DCA 6 /KEY WD FOR FRAM FENTRY, ISZ 6 /AT KEY WD YET? JMP .+4 ISZ I 13 /SET YET SHOWN IAC /DISPLAY KEY WD JMP CHENFR TAD I 13 /NON-KEY WD SNA CLA /ALREADY SHOWN? JMP .+3 TAD AFMASK SKP TAD PRMASK CHENFR, DCA I 11 /STORE -1,0,+1 ISZ 7 /END OF FRAME? JMP FENTRY ISZ 5 /END OF GROUP? JMP GFRAME TAD WDOFTM /NOW DO THIS NO. CMA /OF MASK/BLANK DCA 7 /FRAMES OFFRAM, ISZ 7 JMP .+4 ISZ NGROUP /ANOTHER GROUP? JMP GROUP JMP I MAKEIT TAD NWORDS CIA DCA 6 TAD WDPAST DCA 13 TAD I 13 /ALREADY SHOWN? SZA CLA TAD AFMASK /MASK/BLANK DCA I 11 ISZ 6 JMP .-5 /FINISH FRAME JMP OFFRAM /ANOTHER OFF " NGROUP, 0 WORDNO, 0 WDPAST, SBUFFR+170 /AD-1 YET SHOWN WDORDR, SBUFFR+144 /AD-1 SHOW ORDER /PROGRAM STARTS HERE. INITIALIZE RN BY /CLEARING R SWS PAGE START, ISZ COUNT NOP LAS SZA CLA JMP START JMS I IRX JMS I RNX ISZ COUNT JMP .-2 CLA /READ IN TEXT FILE: SET R SWS=NO BLOCKS /AND L SWS=STARTING BLOCK NO. JMS I ENTER /JMS INFILE TRIAL, ISZ SCOUNT TAD I SCOUNT DCA SENTNO JMS I GETSNT /JMS NOSENT JMS I ENCODE /JMS PRSENT JMS I SETUP /JMS MAKEIT 6314 JMS CLOCK /FIXATION DOTS JMS FIXATE /UNTIL S STARTS JMS DELAY /SW 4 ON STOPS PROG W/O SCREWING CLOCK CLL IAC RTL JMS SWITCH SKP HLT 6312 SNA CLA JMP .-11 TAD PAUSET DCA 7 JMS CLOCK JMS DELAY ISZ 7 JMP .-3 JMS I SHOW /JMS DISPLA ISZ NUMSNT JMP TRIAL HLT JMP .-1 ENTER, INFILE GETSNT, NOSENT ENCODE, PRSENT SETUP, MAKEIT PAUSET, -100 /FRAMES DELAYED /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 / 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 0 /SPACE 0 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 /? /WORKING&STORAGE AREAS FOLLOW SBUFFR, 0