[PROGRAM KENA02 [=============== [ [TO OPERATE KENA02 [================== [1. AFTER LOADING, PRESS START 20. [2. FILL IN SCOPE Q AND A. [ ALL HOR. COORD ARE 3 DIGIT NOS. BETW. 000 AND 777 [ ALL VERT. COORD ARE 3 DIGIT NOS PRECEDED BY A + [ OR A - SIGN. 3 DIGIT NOS RANGE FROM +377 [ TO -377. [ STIM DUR IN MSEC. [ VAR CHOSEN BY LETTER FROM LETTER ON SCOPE FACE [ IN FRONT OF VARIABLE YOU WANT TO RANDOMIZE [ NO TRLS - ANY POS 3 DIGIT NO. UP TO 200. [ VALUES OF RAND VAR. REQUIRE A + OR - SIGN [ FIRST. THIS IS FOLLOWED BY A 3 DIGIT NO. [3. CAN CORRECT SCOPE VALUES BY USING DOT ON SCOPE [ TO LOCATE FIRST LOC. TO BE CORRECTED. [ PRESS RETURN KEY TO MOVE ON [4. AFTER SCOPE FILLED IN, SET SNS 0 AND 1, [ AND THEN PRESS LINEFEED. VERN LINES APPEAR. [5. BE SURE THAT VALUE IN LOC 22 CONTAINS FIRST BN FOR [ PROGRAM RANDOM ON TAPE. [-------------- [COUNTERS [-------- [ USED BY Q|A: 1-6 [ USED DURING CONV TO 12-BIT: 2-5 [ USED DURING INSERTION OF RANDOM # INTO LINE DISPL:12,13 [USED DURING CLEARING OF 2001-2577 DATA STORE [ 14, 15 [USED AS TRL CNTRS [ 14: STIM [ 15: RESP [ 16: # TRLS REMAIN [ USED DURING DISPLAY:5 HORIZ LN A [ 6 # PTS IN LN A [ 7 HORIZ LN B [ 10 # PTS IN LN B [ 11 STIM DUR [SENSE SWITCHES [-------------- [SNS 0: UP FOR COMPLETELY RANDOMIZED DESIGN [ DOWN FOR RANDOMIZED BLOCKS DESIGN [SNS 1: UP FOR HALT AFT A BLOCK OF TRIALS [ DOWN FOR CONTINUE THROUGH TO END [SNS 5: UP IF WISH TO CLEAR FREQ TABLE AFTER EACH RUN [ DOWN IF WISH TO CUMULATE RESPONSE DIST OVER RUNS. [READ PROGRAM "RANDOM" INTO MEM BANK 3. [-------------------------------------- QA= 310 [Q+A ENTRY POINT JSR=JMP [TO DISTINGUISH SUB-ROUTINES FROM SIMPLE JUMPS LASNERAN=334 [CURRENT BLOCK WHERE Q+A IS $20 #STRT UMB 3 [WHERE WE WANT Q+A RDC 4|LASNERAN [READ IN RANDOM RDC 5|LASNERAN+1 [ALSO Q+A #ARND LMB 3 [RESTORE ZAP IN BANK 3 TO STH i 3. THUS, IF PRESS START 20 WILL LOSE OLD DATA. [TO RETAIN OLD DATA START AT LOC. 27 OR 43. JMP 760 [ON RETURNING FROM LOADING RANDOM INTO CORE CHANGE [LOCATION 20 TO NOP SO THAT SUBSEQUENT PRESSES OF [START 20 DO NOT JMP BACK TO REQUIRE LOAD OF ["RANDOM" AGAIN. LDA i [LOAD AC WITH JMP ARND [BYPASS INSTRUCTION STC STRT [THIS PREVENTS RELOAD [CLR BLOCK COMPLETION TESTER STC A63H STC A63I STC A63J STC A63K STC A63L [CALL TO Q+A [----------- #A69R UMB 2 [TELL IT WHERE DATA IS LMB 3 [WHERE Q+A IS JMP QA [ENTER Q+A A69S [LOCATION OF QUESTION BUFFER AS TEXT STRING BEGINS AT 9S. A69U [LOCATION OF ANSWER BUFFER AS 6-BIT CODE BEGINS AT 9U. LMB 3 JMP 765 [KEEP OLD DATA NEXT TIME [BEGIN MAIN PROGRAM HERE [------------------------ [ CONVERSION OF COORD, VAR, AND STIM DUR TO 12-BIT OCTAL SET i 5 A69U-ABFEND [#LOCATIONS IN ANSWER BUFFER SETi3 A61A [STARTIN LOCATION FOR 12-BIT ANSWERS SETi4 A61A-1 SETi2 A69U CLR STC A63C #A63B LDHi 2 SHDi 7000 [" JMP A63B SHDi 1700 [- JMP A63D SHDi 2000 [+ JMP A63B STH 3 LDHi2 ROL 3 STHi3 LDHi2 ADMi 4 LDAi #A63C  SAEi 0017 JMP A63E JMP A63F #A63D STC A63C JMP A63B #A63F LDA 4 COM STA 4 #A63E LDHi 3 [SET REGISTIR 3 TO NEXT LOCATION FOR STORING 12-BIT ANSWERS. XSKi 5 JMP A63B-2 [CLR 2001-2577 FOR DATA STORE [---------------------------- SETi14 -577 SETi15 2000 CLR STAi 15 XSKi 14 JMP p-2 [CLR FREQ DST IF SNS 5 IS UP [--------------------------- SNS 5 JMP A67B SETi 14 -200 SETi 15 A23J-1 CLR STAi 15 XSKi 14 JMP p-2 [SET CNTR PTR TO DATA STORE [--------------------------- #A67B SETi 14 2001 [STIM SETi 15 2301 [RESP LDA A61K [# TRLS COM STA 16 [WHICH PARAMETER IS TO BE RANDOMIZED [----------------------------------- LDA A65A BCLi 7740 ADAi [COMPUTE ADDRESS OF PARAMETER TO BE RANDOMIZED A61A-24 STC 12 [ISSUE CALL TO "RANDOM" [---------------------- #A67A LDAi 1 LMB 3 JMP 20 [RETURN FROM "RANDOM" HERE WITH RANDOM # IN LINC [ACCUMULATOR BCLi 7770 STA 14 [DATA STORE [IS RANDOM # ILLEGAL [------------------- SAEi 5 JMP p+2 JMP A67A SAEi 6 JMP p+2 JMP A67A SAEi 7 JMP p+2 JMP A67A [IF RANDOM # IS NOT ILLEGAL THAN DO NEXT INST. ADAi [COMPUTE ADDRESS OF VALUE OF RANDOM [VARIABLE CHOSEN BY "RANDOM" A65H [CHOOSE COMPLETELY RANDOMIZED OR RANDOMIZED [------------------------------------------ [BLOCKS DESIGN [------------- SNSi 0 JMP A64K [IF UP JMP TO DISPLAY [IF DOWN CONTINUE IN RANDIMIZED BLOCKS [ [HAS THIS RANDOM # BEEN USED IN THIS BLOCK [----------------------------------------- #A62H SAEi A65H JMP A62I SAEi #A63H 0000 JMP p+2 JMP A67A STA 13 STC A63H JMP A64J [JMP TO LOAD RANDOM # IN TEST DISP. AND DISP #A62I SAEi A65I JMP A62J SAEi #A63I 0000 JMP p+2 JMP A67A STA 13 STC A63I JMP A64J #A62J SAEi A65J JMP A62K SAEi #A63J 0000 JMP p+2 JMP A67A STA 13 STC A63J JMP A64J #A62K SAEi A65K JMP A62L SAEi #A63K 0000 JMP p+2 JMP A67A STA 13 STC A63K JMP A64J #A62L SAEi A65L JMP A62Z SAEi #A63L 0000 JMP p+2 JMP A67A STA 13 STC A63L JMP A64J #A62Z HLT [ERROR #A64K STC 13 [TO BE USED ONLY IN COMPLETELY [RANDOMIZED DESIGN #A64J LDA 13 [LOAD VALUE OF RANDOM VARIABLE CHOSEN STA 12 [PUT IT INTO LOC FR WHICH TEST DISP TAKES VAL [DISPLAYING [---------- #Z3 LDA A61J [STIM DUR COM STC 11 SETi 3 -100 XSKi 3 JMP p-1 SET i 3 400 SNS 3 JMP p+3 CLR DIS 3 SXL 7 JMP p+2 JMP Z3 SNSi 2 JMP Z10 SXLi 13 JMP p-1 SXL 13 JMP p-1 SXLi 11 JMP p-1 SXL 11 JMP p-1 LDA i 76 ATR #Z10 LDA i 0 ATR LDA i 60 ATR [ FIRST SETUP OF LN A [ ----------------- LDA A61B COM ADA A61D ADAi -1 STC A64G SNS 3 JMP p+3 CLR DIS 3 [ FIRST SETUP OF LN B [ ------------------- LDA A61F COM ADA A61H ADAi -1 STC A64H [ RESETUP LNS A AND B [ ------------------- #A64A SNS 3 JMP p+3 CLR DIS 3 SET 5 A61A LDAi 4000 ADM 5 SET 7 A61E LDAi 4000 ADM 7 #A64B SETi 6 #A64G [#PTS IN LN A SETi 10 #A64H [#PTS IN LN B SNS 3 JMP p+3 CLR DIS 3 [ DISPLAY LN A [ ------------ LDA A61B #A64C DIS 5 ADAi -1 XSKi6 JMP A64C SNS 3 JMP p+3 CLR DIS 3 [ DISPLAY LN B [ ------------ #A64E LDA A61F #A64F DIS 7 ADAi -1 XSKi10 JMP A64F SNSi 2 JMP p+4 SXL i 12 JMP A64A JMP Z1 XSKi 11 JMP A64A [RECORD RESPONSE [--------------- #Z1 LDA i 61 ATR SNS 3 JMP p+3 CLR DIS 3 SET i 2 -10 SET i 4 -100 XSK i 4 JMP p-1 XSK i 2 JMP p-5 SXL 0 JMP S0 [STORE RESPONSE 0 SXL 1 JMP S1 [STORE RESPONSE 1 SXL 2 JMP S2 SXL 3 JMP S3 SXL 4 JMP S4 JMP Z1 #S0 CLR STA 15 STC F4 LDAi 20 JMP F1 #S1 LDAi 1 STA 15 STC F4 LDAi 40 JMP F1 #S2 LDAi 2 STA 15 STC F4 LDAi 60 JMP F1 #S3 LDAi 3 STA 15 STC F4 LDAi 100 JMP F1 #S4 LDAi 4 STA 15 STC F4 LDAi 120 JMP F1 #S5 LDAi 5 STA 15 STC F4 LDAi 140 JMP F1 #S6 LDAi 6 STA 15 STC F4 LDAi 160 JMP F1 [INCREMENT TRIAL CNTRS AND TEST IF END [------------------------------------- [FORM FREQ DIST [============== #F1 ADA 13 ADAi A23J-A65H [BEGIN OF FREQ DST-LOC OF VAR O STC F3 LDAi 1 ADM #F3 0 [AD OF MEM OF FR DST THAT GETS INCRMENT LDA 14 [IND, AD FOR LOC OF RAND # CODE OF STIM VAL. DATA STORE ADAi 300 [GETS TO RESPONSE STORE STA F5 LDAi #F4 0 [# OF RESP STA #F5 0 [RAW DATA RESP JMP A62D [INCREMENT TRIAL CNTRS AND TEST IF END [------------------------------------- #A62D XSKi 14 XSKi 15 [TEMP : SET DELAY BETWEEN TRLS SETi17 0 SETi 2 -300 #Z2 XSKi 17 JMP p-1 SET i 3 400 SNS 3 JMP p+3 CLR DIS 3 XSKi 2 JMP Z2 XSKi 16 JMP F6 [CONT TRLS HLT [PRESS RESUME TO CONT TO TYPEOUT JMP T1 [TYPEOUT [TEST TO SEE IF ALL VALUES OF VAR HAVE BEEN [RUN IN THIS BLOCK [------------------------------------------------- #F6 CLR SAE A63H JMP p+2 JMP A67A SAE A63I JMP p+2 JMP A67A SAE A63J JMP p+2 JMP A67A SAE A63K JMP p+2 JMP A67A SAE A63L JMP p+2 JMP A67A STC A63H STC A63I STC A63J STC A63K STC A63L [CONTINUE TEST DISPLAY OR BACK TO Q|A SNSi 1 JMP A69R JMP A67A [CONVERT FREQ DST TO DECIMAL, [STORE IN PRINT BUFFER, AND [TYPE FREQ DST [============ [=========== #T1 JMP A24T [TYPE CRLF JMP A24T #T2 SETi 6 A23J-1 [-1 FROM BEG OF FREQ TABLE SETi 7 A23J+17 [1ST FREQ DST SETi 10 A23J+37 [2ND FREQ DST SETi11 A23J+57 SETi12 A23J+77 SETi13 A23J+117 SETi14 A23J+137 SETi 15 A23J+157 [7TH FREQ DST LDAi -5 [COM OF # OF VALS OF VARIABLE. ADAi -1 STC A21G #A24D SETi4 #A21G 0 [# ROWS IN FREQ DST #A24E SETi 1 3700 [BEGIN STORE PRINT BUFFER XSKi 4 JMP A24F [TO LOAD BUFFER HLT [TEMP [TO WRITE OVER RANDOM FIRST RAISE RESUME ON CONSOLE [-------------------------- UMB 3 WRC 4|LASNERAN [WRITE RANDOM BACK ]WITHOUT DISTURBING Q+A UMB 2 HLT [FINAL HLT [LOAD PRINT BUFFER [---------------- #A24F SETi5 -10 LDAi LDAi 6 STC A24P LDAi 6 COM #A24S JMP A28J LDAi 14 STHi 1 STHi 1 XSKi 5 JMP p+2 JMP A24U LDAi 1 ADM A24P #A24P 0 [LDAi..... JMP A24S [TYPE FREQ DST [------------- #A24U SETi 1 3700 SETi 5 -23 [WAS -66 LDHi 1 JMP A27T [TECSUB XSKi 5 JMP p-3 JMP A24T JMP A24E [NXT LINE OF FREQ DST $1400 #A61A [LN A TOP PT. HOR COORD #A61B [LN A TOP PT. VERT COORD #A61C [LN A BOT PT. HOR COORD #A61D [LN A BOT PT. VERT COORD #A61E [LN B TOP PT. HOR COORD #A61F [LN B TOP PT. VERT COORD #A61G [LN B BOT PT. HOR COORD #A61H [LN B BOT PT. VERT COORD #A61J [STIM DUR #A65A [LETTER PF ITEM THAT IS VARIABLE #A61K [# OF TRLS #A65H [VAR 0 #A65I [VAR 1 #A65J [VAR 2 #A65K [VAR 3 #A65L [VAR 4 $1500 [PROG TYPDEC WITH BINDEC LABELS CHANGED FROM [9 TO 8. ALSO ENTRY ELIMINATED [MOD BY L. MATIN [ ****** BINDEC 1 ****** [BINDEC 1 [ DJN 7| 5|68 [SIGNED 12-BIT BINARY TO DECIMAL CONVERSION [ RIGHT JUSTIFIED [ ENTER WITH BINARY NUMBER IN ACCUMULATOR VIA A JMP 9J [ DECIMAL KBD CODES STORED VIA IR 1 [ LEADING ZEROES SUPPRESSED [ NON-INTERRUPTABLE [ ALSO USES IR 2,3 [ USES TAGS 9J-9Q [CHANGED BY L. MATIN [TO TAGS 8J-8Q [ [TIMING- CLASSIC LINC [ 1.4 TO 3.5 MSEC [ #A28J SCRi1 [SIGN TO LINK BIT ROLi1 APOi [MAKE NEGATIVE COM STC A28N [SAVE IT ADD 0 [SAVE RETURN STC A28P LDAi [LOAD POSSIBLE SIGNS #A28K "- " LZE [GET CORRECT SIGNS ROR 6 STHi1 [AND STORE IT SETi2 [SET ADDEND POINTER A28Q-1 JMP A28M [CONVERT A DIGIT AZE [IS IT A LEADING ZERO JMP A28L [NO ADD A28K [YES: MOVE THE SIGN RIGHT ONE PLACE STH 1 [STORE A SPACE OVER THE SIGN LZE [GET THE CORRECT SIGN ROR 6 STHi1 [AND STORE IT JMP p-10 [ THEN CONTINUE CONVERTING #A28L STHi1 [STORE A DIGIT JMP A28M [CONVERT NEXT DIGITI JMP A28L [AND STORE IT [LITTLE SUBROUTINE TO DO THE CONVERSION #A28M LDA [SAVE RETURN 0 STC A28P-2 SETi3 [SET DIGIT COUNTER 1777 XSKi2 [MOVE ADDEND POINTER ADD A28N [LOAD THE VALUE XSKi3 [BUMP COUNTER STAi [SAVE REMAINING PART #A28N ** ADA 2 [TRIAL ADD APO [STILL NEGATIVE JMP p-5 [YES: COUNT AND ADD AGAIN LDA [NO: GET THE COUNTER 3 SROi [LAST DIGIT 3567 JMP ** [NO: BACK TO THE SUBROUTINE STHi1 [YES: STORE IT #A28P JMP ** [ AND RETURN TO CALLING PGM [ADDEND TABLE #A28Q 1750 144 12 1 [END BINDEC 1 [ 7| 5|68 [TECSUB [TELETYPE SUB [FOR DEC INT- [ERFACE---- [TAGS 4T 5T [6T 7T AND [INDEX REG. [16 AND 17 #A27T SET 17 0 [FORM RETURN ROL 4 [CODE TEST APO JMP A26T-1 [TELETYPE CODE ROR 4 [LINC CODE SAE i 12 [EOL TEST JMP p+4 [NOT EOL LDA i 5215 [MAKE CR LF JMP A26T [OUTPUT ADA i -11 [NUMBER TEST APO i JMP p+4 [NOT A NUMBER ADA i [CONVERT NUMBER 271 JMP A26T [OUTPUT ADA i -12 [1ST SPECIAL [CHARACTER TEST APO i JMP p+6 [NOT SPECIAL [CHAR. TYPE 1 ADA i A25T+10 STC 16 [CONVRT SPECIAL [CHARACTERS ADA 16 JMP A26T [OUTPUT ADA i -32 [LETTER TEST APO i JMP A27T+27 [CONVRT SPECIAL [CHAR. TYPE II ADA i [CONVRT LETTER 332 JMP A26T [OUTPUT ROR 4 #A26T APO i [CR LF--HUH JMP p+4 514 LDAi 212 514 [ PRNT CHAR. JMP 17 [RETURN #A24T SET 17 0 LDAi 215 JMP A26T+2 #A25T 207 [BELL FOR DEL 240 [SPACE 246 [AMPERSAND FOR [ i 247 [APOSTROPHE [FOR p 255 [- 253 [+ 257 [SLASH 243 [ TAG SYMBOL 0 [NO OUTPUT FOR [CASE 275 [= 300 [AT SIGN FOR u 254 [COMMA 256 [PERIOD 244 [DOLLAR SIGN [FOR ORIGN SIGN 333 [COMMENT SYMBOL [DECBIN 1 [ DJN 9|20|68 [ [DECIMAL-TO-SINGLE PRECISION BINARY [ CONVERTS FROM -4095 TO +4095 [ [CALLING SEQUENCE [ JMP 9A [ ERROR RETURN [ NORMAL RETURN [ [IR1 MUST BE SET JUST BEFORE THE FIRST CH [ DECBIN 1 LOOKS AT 5 CHARACTERS [ USES IR1-4 [ TAGS 9A-9G [ INTERRUPTABLE [ [TIMING- CLASSIC LINC [ 0.7 - 2.1 MSEC [ #A29A SET 3 [SAVE RETURN 0 SETi4 [CH COUNTER #A29H -4 [MOD L. MATIN SETi2 [MINUS FLAG 1777 CLR #A29B STC A29C [SAVE RESULT XSKi4 [ENOUGH CHS DONE JMP A29D [NO LDAi3 [YES: INDEX RETURN LDAi [LOAD RESULT #A29C ** XSK 2 [MINUS COM [YES JMP 3 [RETURN #A29D LDHi1 [LOAD NEXT CH SHDi [SPACE " " JMP A29B+1 [ IGNORE SHDi [PLUS "+ " JMP A29B+1 [ IGNORE SHDi [MINUS "- " JMP A29G [ SET FLAG COM [NONE OF THOSE ADD A29F APO [IS IT A LEGAL DIGIT JMP 3 [NO: ERROR RETURN LDH 1 [YES: SAVE IT STC A29E ADD A29C MUL [ X # BASE 4|A29F SCR 1 AZE [OVERFLOW JMP 3 [YES: ERROR RETURN ZTA [NO: RETRIEVE IT ROL 1 ZZZ ADD A29F+1 [+1 LAMi #A29E ** LZE [OVERFLOW JMP 3 [YES: ERROR RETURN JMP A29B [NO: CONTINUE #A29F 12 [NUMBER BASE 1 #A29G XSKi2 [SET MINUS FLAG JMP A29B+1 [END DECBIN 1 $2000 0 [STIM DATA STORE #A29V [BEGIN STORE $2300 0 [RESP DATA STORE $3500 #A23J 0 [BEGINNING OF FREQ DST $2600 [QUESTION BUFFER [--------------- #A69S " HOR VERT ----- ------ LN A TOP PT.A" ""3" " " "B"" "4 ---- BOT PT." "C"" "3 D" ""4" " LN B TOP PT.E" ""3" " " "F"" "4 ---- BOT PT." "G"" "3 H" ""4" " STIM DUR " "J"" "3 -------- VAR" ""3" " #TRLS " "K"" "3 --- ---- VAR 1" "."" "4 2." ""4" " --- 3." ""4" " 4" "."" "4 5" "."" "4:" [ANSWER BUFFER [-------------- #A69U 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ABFEND= p [END OF ANSWER BUFFER