[ N [ MODIFIED OCT-75 [ BY R. H. NAGEL [ [ .... BANK 3 .... [ [A PSEUDO RANDOM NUMBER GENERATOR [FOR THE LINC-8 COMPUTER. [MAY BE LOADED INTO ANY LMB [ENTERED BY-- [LDAi [X WHERE X IS OCTAL NUMBER OF [LMB WHERE MAIN PROGRAM RESIDES [LMB N WHERE N IS LMB CONTAINING [RANDOM NUMBER GENERATOR [JMP 20 [RETURNS TO MAIN PROGRAM,WHICH MAY RESIDE [IN ANY LMB, WITH RANDOM NUMBER IN ACCUMULATOR [8-20-69 M. F. LEWIS, W. M. WEBBER, J. E. DOYLE $20 #RAN STC A31Q ADD 0 STC A36Z CLR ADD A33R ROLi 1 BCL A32K STC A34T ADD A32R BCL A31K STC A33A ADD A34T STC A35T JMP A31A ROLi 5 STC A32T [MOST SIGNIFICANT 12 BITS [GOES INTO 2T [LINK SHOULD BE ZERO. ADD A33R BCL A31K ROLi 5 STC A33A ADD A32R STC A35T JMP A31A STC A33T [MIDDLE 12 BITS INTO 3T LZE JMP A32A #A32B NOP CLR ADD A33R ROLi 1 STC A31Z [SAVE ACCUMULATOR LZE JMP A32C #A32D CLR [CLEAR LINK ADD A31Z [RESTORES ACCUMULATOR STC A33A ADD A33R STC A35T JMP A31A STC A33R ADD A32R ROLi 1 LZE JMP A32F #A32G NOP STC A32Z [SAVE ACCUMULATOR CLR [CLEAR LINK ADD A32Z [RESTORES ACCUMULATOR STC A33A ADD A33T STC A35T JMP A31A STC A32R ADD A31R ROLi 1 STC A33A ADD A31R STC A35T JMP A31A STC A33A ADD A32T STC A35T JMP A31A STC A31R ADD A36Z STC 0 ADD A31Q ADAi 0600 STC p+2 ADD A31R 0 [CONTAINS LMB N JMP 0 [EXIT FROM GENERATOR #A32A BCLi 7777 [MAKE SURE ACCUMULATOR IS CLEAR, BUT LEAVE LINK ALONE. ADD A32T STC A33A ADD A31T STC A35T JMP A31A STC A32T JMP A32B #A32C ADD A33T STC A33A ADD A31T STC A35T JMP A31A STA A33T AZE [IS ACCUMULATOR ZERO JMP A32D APO JMP A32D BCLi 7777 [CLEAR ACCUMULATOR ADD A32T STC A33A ADD A31T STC A35T JMP A31A STC A32T JMP A32D #A32F STC A34Z [SAVE ACCUMULATOR ADD A32T STC A33A ADD A31T STC A35T JMP A31A STC A32T ADD A34Z [RESTORE ACCUMULATOR JMP A32G #A31A STC A34A [ZERO 4A LZE [IF LINK NOT = 0 ADD A33K [MAKE 4A = 1 STC A34A [LINK COMPLEMENT TRIGGER CLR [CLEAR AC AND LINK ADD A35T LAMi #A33A 0000 ROLi 1 [GET LINK BCOi [IF LINK =1, ADD ENTRY #A34A 0000 [COMPLEMENT-- OR ELSE NO COMPLEMENT RORi 1 LDA A33A JMP 0 [CONSTANTS #A33K 0001 #A31K 7600 #A32K 0377 [TEMP. STORAGE #A31T 0001 #A32T 0000 #A33T 0000 #A34T 0000 #A35T 0000 #A31Z 0000 #A32Z 0000 #A33Z 0000 #A34Z 0000 #A36Z 0000 #A31Q 0000 [RANDOM NUMBER-- #A31R 0000 [MOST SIG. 12 BITS #A32R 0000 #A33R 0001 [LEAST SIG. 12 BITS. T [ [ $245 [ MULTI BANK PATCH [ TO Q AND A [ ASSUME THE FOLLOWING [ MB 1 CALLING PROGRAM [ MB 2 DISPLAY DATA [ MB 3 THIS ROUTINE [ [ SAVE RETURN ADDRESS LDAi 2 ADD 0 STA RT [ FIX PARAMETER ADDRESS ADAi 3775 [ PROPER UMB ADDR STA QX ADAi 1 STC AX [ GET PARAMETERS UMB 1 LDA #QX 0 STC QW LDA #AX 0 STC AW UMB 2 [ CALL AND RETURN JMP A39O #QW 0 #AW 0 LMB 1 #RT 0 T [ [ Q AND A ROUTINE $310 #A39O LDAi 2 ADD 0 STAi 0 ADD p+133 STC 1 LDA 1 ADD p+170 STC p+35 LDAi 1 STC p+26 STC 6 SET 3 p+23 SET 4 p+26 JMP p+125 JMP p+3 JMP p+14 JMP p-3 STH 3 LDHi 4 COM STC 6 ADD p+202 LDHi 3 XSKi 6 JMP p-2 LDHi 3 JMP p-15 STH 3 SETi 4 0 LDAi 376 STC p+12 SETi 3 0 SET 5 p-7 SETi 1 5 LDAi -40 ADMi 0 LDHi 3 JMP p+67 JMP p+303 JMP p+17 SHDi 1200 JMP p-14 JMP p+71 JMP p-10 JMP p+67 SROi 0 DIS 1 LDHi 5 JMP p+52 JMP p-17 JMP p-20 JMP p-10 KST JMP p-40 KBD SETi 2 p+233 SHD 2 JMP p+121 SHDi 2 JMP p-105 XSK 6 JMP p-51 SHDi 2 JMP p+20 SHDi 2 JMP p+131 SHDi 2 JMP p+21 JMP p+25 JMP p-106 JMP p-62 STC p+5 JMP p+20 JMP p+50 JMP p+47 LDAi 0 STH 4 JMP p-72 LDH 4 JMP p+11 JMP p-75 -6002 JMP p+36 JMP p+4 JMP p-101 JMP p-104 JMP p-3 LDHi 4 SHDi 7000 JMP 0 SAEi 76 XSKi 0 XSKi 0 JMP 0 ROL 1 ADD p+163 STC 2 ADD p+20 ADD 1 STC 1 ADD 5 COM ADD 4 AZE CLR STC p-100 ADD p-115 DSC 2 DSCi 2 JMP 0 LDAi -4000 ADM 4 JMP p-141 [CHARACTER PATTERNS [KBD 0:CODE 00 4136 3641 [1:01 2101 0177 [2:02 4523 2151 [3:03 4122 2651 [4:04 2414 0477 [5:05 5172 0651 [6:06 1506 4225 [7:07 4443 6050 [8:10 5126 2651 [9:11 5122 3651 [EOL:12 KBDi ADD p-212 [DEL:13 JMP 0 67 [SPACE:14 0000 0000 [i:15 0101 0126 [p:16 3700 3424 [-:17 0404 0404 [+:20 0404 0437 [|:21 0000 0077 [#:22 JMP p-102 JMP p-52 [CASE:23 JMP p-53 JMP p-211 [A:24 4477 7744 [B:25 5177 2651 [C:26 4136 2241 [D:27 4177 3641 [E:30 4577 4145 [F:31 4477 4044 [G:32 4136 2645 [H:33 1077 7710 [I:34 7741 0041 [J:35 4142 4076 [K:36 1077 4324 [L:37 0177 0301 [M:40 3077 7730 [N:41 3077 7706 [O:42 4177 7741 [P:43 4477 3044 [Q:44 4276 0376 [R:45 4477 3146 [S:46 5121 4651 [T:47 4040 4077 [U:50 0177 7701 [V:51 0176 7402 [W:52 0677 7701 [X:53 1463 6314 [Y:54 0770 7007 [Z:55 4543 6151 [META [56 [CASE EOL 2356 1322 [57 [CASE DEL 1200 p-137 [:60 [CASE SPACE 4020 2055 [=:61 [CASE i 1212 1212 [u:62 [CASE p 0107 0107 [,:63 [CASE - 0500 0006 [.:64 [CASE + 0001 0000 [$:65 [CASE | 4577 7745 [[:66 [CASE # 4177 0000 [_:67 [CASE CASE 0101 0101 [":70 [CASE A LDHi 3 LDAi [":71 [CASE B 14 JMP p-277 [<:72 [CASE C 2410 0042 [>:73 [CASE D 4200 1024 []:74 [CASE E 0000 7741 [*:75 [CASE F 2050 0050 [::76 [CASE G [UNDEFINED:77 [Q+AR T [ [ ENTRY TO FILL ANSWER BUF $760 #QNF LDAi STHi 3 STC A39O+32 LMB 1 JMP 0 [ [ USE THE EXISTING ANSWERS $765 #QNU LDAi LDHi 3 STC A39O+32 LMB 1 JMP 0 T L [ [ CREATE A SEQUENCE OF [ DATA FOR RUN. [ SELECT EACH ONCE [ WITHIN A BLOCK $1000 #RDDT CLR ADD 0 STC RDEX LDAi JMP RDNX STC 3 SETi11 DATA4-1 SET 12 CNRPT [ [ CLEAN OUT RANDOM [ TABLE WITH -1 #RDCL SET 7 CNBLK SETi6 TABLE4-1 LDAi -1 STAi6 XSKi7 JMP p-2 T [ [ INITIALIZE ROUTINE SET 7 CNBLK SETi6 TABLE4-1 [ [ GET A GOOD RANDOM NUMBER #RDNX LDAi 1 JMP RAN BCLi 7600 AZEi JMP RDNX [ NO ZERO VALUES ADA CNBLK APOi JMP RDNX [ OUT OF RANGE ADA NBLK [ [ INITIALIZE SEARCH SET 4 CNBLK SETi1 TABLE4-1 [ [ BUSINESS END OF LOOP NOP SAE i1 JMP p+2 JMP 3 XSK i4 JMP p-5 STA i6 XSK i7 [ [ MOVE FROM BLOCK [ TO DATA USING THE [ RANDOM TABLE JMP RDNX SET 7 CNBLK SETi6 TABLE4-1 T [ [ MOVE LOOP #RDMV LDAi6 ROL 1 ADAi BLOCK4-3 STC 10 [ NEW DATUM LDAi10 STAi11 LDAi10 STAi11 XSKi7 JMP RDMV [ XSKi12 JMP RDCL HLT LMB 1 #RDEX 0 [ HOMEuu [ $1200 [ RANDOM TABLE HERE #TABLE4 0 [ 100-OCT LOCATIONS USED $1300 [ BLOCK OF DATA HERE #BLOCK4 0 [ 200 OCT LOCATIONS USED T $1760 [ [ PRIOR TO DEBUG SET: [ NBLK [ CNBLK [ CNRPT [ [ THIS ENTRY USED [ ONLY ONCE TO STORE [ IN BLOCKS 404-407 [ [ PRIOR TO STORING CHANGE [ #RDNX+1 FROM 1 TO 3 [ #RDEX-2 FROM HLT TO NOP [ HLT UMB 1 WCGu 3404 UMB 2 LDAi RCG STC 15 LDAi 3400 STC 16 JMP 15 [ RE-ENTER LAP T [ .... BANK 4 .... [ [ BANK 4 USED FOR TABLES [ THE COMPLETE EXPERIMENTAL [ RUN WITH RESPONSES [ CAN BE SAVED BY WRITTING [ BANK TO 4 TAPE BLOCKS [ ALSO: WISEALL DOES NOT [ BOTHER THIS BANK $2002 #CONST4 [ [ ALGEBRATIC RELATIONSHIPS ARE: [ NDUR X NCHN = NBLK [ NBLK X NRPT = NTRL [ #NDUR 0 [ DURATIONS PER CHAN #CNDUR 0 #NCHN 0 [ NUMBER OF CHANNELS #CNCHN 0 #NBLK 0 [ TRIALS PER BLOCK #CNBLK 0 #NRPT 0 [ REPEATS PER BLOCK #CNRPT 0 #NTRL 0 [ TRIALS PER RUN #CNTRL 0 [ $2020 #DATA4 0 [ DATA ORGANIZATION IS [ [ FIRST WORD : COMPL IN MSEC [ SECOND WORD: LH= CHAN, RH= RESPONSE [ [ REPEAT FOR MAX OF [ 500 TRIALS [ ... END RNQA ...