[PROGRAM KENB02 [=============== [ [ [TO OPERATE KENB02 [================== [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 KEY TO MOVE ON [4. AFTER SCOPE FILLED IN, SET SNS 0 AND 1, [ AND THEN PRESS . VERN LINES APPEAR. [-------------- TOP [-------------- [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. [------------------------------------- [GLOBAL DEFINITIONS QA= 0310 [Q+A ENTRY POINT SXLNUM= 2 [# OF CONSEQUTIVE RESPONSE CHANNELS JSR= JMP [TO DISTINGUISH SUB-ROUTINES FROM SIMPLE JUMPS LASNERAN=334 [CURRENT BLOCK WHERE Q+A IS TOP $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. 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 TOP [BEGIN MAIN PROGRAM HERE [------------------------ [ CONVERSION OF COORD, VAR, AND STIM DUR TO 12-BIT OCTAL SET i 5 A61A-A65L-1 [#LOCATIONS IN ANSWER BUFFER SET i 3 A61A [STARTIN LOCATION FOR 12-BIT ANSWERS SET i 4 A61A-1 SET i 2 A69U CLR STC A63C #A63B LDH i 2 SHD i 7000 [" JMP A63B SHD i 1700 [- JMP A63D SHD i 2000 [+ JMP A63B STH 3 LDH i 2 ROL 3 STH i 3 LDH i 2 ADM i 4 LDA i #A63C 0 SAE i 0017 JMP A63E JMP A63F #A63D STC A63C JMP A63B #A63F LDA 4 COM STA 4 #A63E LDH i 3 [SET REGISTER 3 TO NEXT LOCATION FOR STORING 12-BIT ANSWERS. XSK i 5 JMP A63B-2 TOP [CLR 2001-2577 FOR DATA STORE [---------------------------- SET i 14 -577 SET i 15 2000 CLR STA i 15 XSK i 14 JMP p-2 [CLR FREQ DST IF SNS 5 IS UP [--------------------------- SNS 5 JMP A67B SET i 14 -200 SET i 15 A23J-1 STA i 15 XSK i 14 JMP p-2 [SET CNTR PTR TO DATA STORE [--------------------------- #A67B SET i 14 2001 [STIM SET i 15 2301 [RESP LDA A61K [# TRLS COM STC 16 [WHICH PARAMETER IS TO BE RANDOMIZED [----------------------------------- LDA A65A BCL i 7740 ADA i [COMPUTE ADDRESS OF PARAMETER TO BE RANDOMIZED A61A-24 STC 12 [ISSUE CALL TO "RANDOM" [---------------------- #A67A LDA i 1 LMB 3 JMP 20 TOP [RETURN FROM "RANDOM" HERE WITH RANDOM # IN LINC [ACCUMULATOR BCL i 7770 STA 14 [DATA STORE [IS RANDOM # ILLEGAL [------------------- SAE i 5 JMP p+2 JMP A67A SAE i 6 JMP p+2 JMP A67A SAE i 7 JMP p+2 JMP A67A [IF RANDOM # IS NOT ILLEGAL THAN DO NEXT INST. ADA i [COMPUTE ADDRESS OF VALUE OF RANDOM [VARIABLE CHOSEN BY "RANDOM" A65H [CHOOSE COMPLETELY RANDOMIZED OR RANDOMIZED [------------------------------------------ [BLOCKS DESIGN [------------- SNS i 0 JMP A64K [IF UP JMP TO DISPLAY [IF DOWN CONTINUE IN RANDIMIZED BLOCKS [ TOP [HAS THIS RANDOM # BEEN USED IN THIS BLOCK [----------------------------------------- #A62H SAE i A65H JMP A62I SAE i #A63H 0000 JMP p+2 JMP A67A STA 13 STC A63H JMP A64J [JMP TO LOAD RANDOM # IN TEST DISP. AND DISP #A62I SAE i A65I JMP A62J SAE i #A63I 0000 JMP p+2 JMP A67A STA 13 STC A63I JMP A64J #A62J SAE i A65J JMP A62K SAE i #A63J 0000 JMP p+2 JMP A67A STA 13 STC A63J JMP A64J #A62K SAE i A65K JMP A62L SAE i #A63K 0000 JMP p+2 JMP A67A STA 13 STC A63K JMP A64J #A62L SAE i A65L JMP A62Z SAE i #A63L 0000 JMP p+2 JMP A67A STA 13 STC A63L JMP A64J TOP #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 SET i 3 -100 XSK i 3 JMP p-1 SET i 3 400 SNS i 3 DIS 3 SXL i 7 JMP Z3 SNS i 2 JMP Z10 SXL i 13 JMP p-1 SXL 13 JMP p-1 SXL i 11 JMP p-1 SXL 11 JMP p-1 LDA i 76 ATR #Z10 LDA i 0 ATR LDA i 60 ATR TOP [ FIRST SETUP OF LN A [ ----------------- LDA A61B COM ADA A61D ADA i -1 STC A64G SNS i 3 DIS 3 [ FIRST SETUP OF LN B [ ------------------- LDA A61F COM ADA A61H ADA i -1 STC A64H [ RESETUP LNS A AND B [ ------------------- #A64A CLR SNS i 3 DIS 3 LDA A61A ADD L4000 STC 5 LDA A61E ADD L4000 STC 7 #A64B SET i 6 #A64G 0 [#PTS IN LN A SET i 10 #A64H 0 [#PTS IN LN B SNS i 3 DIS 3 TOP [ DISPLAY LN A [ ------------ LDA A61B #A64C DIS 5 ADA i -1 XSK i 6 JMP A64C CLR SNS i 3 DIS 3 [ DISPLAY LN B #A64E LDA A61F #A64F DIS 7 ADA i -1 XSK i 10 JMP A64F SNS i 2 JMP p+4 SXL i 12 JMP A64A JMP Z1 XSK i 11 JMP A64A [RECORD RESPONSE #Z1 LDA i 61 ATR CLR SNS i 3 DIS 3 SET i 2 -10 SET i 4 -100 XSK i 4 JMP p-1 XSK i 2 JMP p-5 TOP LDA i SXL 0 STC INST SET i 17 -SXLNUM [# OF CHANNELS #INST p-p [SXL N JMP COMM LDA i 1 ADM INST ADA i -400 [-]SXL 0* XSK i 17 JMP INST JMP Z1 #COMM STA 15 ROL 3 ADA 13 ADA i A23J-A65H STC 17 LDA i 1 ADM 17 [INCREMENT TRIAL CNTRS AND TEST IF END [------------------------------------- XSK i 14 XSK i 15 [TEMP : SET DELAY BETWEEN TRLS CLR STC 17 SET i 2 -300 #Z2 XSK i 17 JMP p-1 SET i 3 400 SNS i 3 DIS 3 XSK i 2 JMP Z2 XSK i 16 JMP F6 [CONT TRLS HLT [PRESS RESUME TO CONT TO TYPEOUT JMP T1 [TYPEOUT TOP [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 SNS i 1 JMP A69R JMP A67A TOP #T1 JSR CRLF [2 , JSR CRLF [FOR NEATNESS SET i 6 [SETUP A65H-1 [VARIABLE POINTER SET i 7 [SETUP FREQUENCY A23J-1 [DISTRIBUTION POINTER SET i 4 [SETUP THE -5 [VARIABLE COUNT #LOOP LDA i 6 [GET A VARIABLE JSR PRTDEC [PRINT IT SET i 5 [SETUP THE -SXLNUM [RESPONSE COUNT #LOOP2 JSR BLANKS [PRINT SEPARATORS LDA i 7 [GET A FRQ DIST ELEMENT JSR PRTDEC [PRINT IT XSK i 5 [DONE ALL YET  JMP LOOP2 [NO, GO BACK JSR CRLF [GOTO NEXT LINE ADD 7 [GET POINTER BSE i [FORCE IT TO 7 [THE NEXT GROUP STC 7 [SAVE IT XSK i 4 [DONE ALL YET  JMP LOOP [NO, GO DO ANOTHER LINE RSW [GET RIGHT SWITCHES APO i [BIT [0_ SET  JMP NOSAVE [NO, FORGET IT UMB 3 [WHERE RQANDOM IS WRC [WRITE OUT 4|LASNERAN [RANDOM ONLY #NOSAVE HLT [STOP JMP NOSAVE [MAKE SURE #L4000 4000 [CONSTANT TOP $1400 #A61A 0 [LN A TOP PT. HOR COORD #A61B 0 [LN A TOP PT. VERT COORD #A61C 0 [LN A BOT PT. HOR COORD #A61D 0 [LN A BOT PT. VERT COORD #A61E 0 [LN B TOP PT. HOR COORD #A61F 0 [LN B TOP PT. VERT COORD #A61G 0 [LN B BOT PT. HOR COORD #A61H 0 [LN B BOT PT. VERT COORD #A61J 0 [STIM DUR #A65A 0 [LETTER OF ITEM THAT IS VARIABLE #A61K 0 [# OF TRLS #A65H 0 [VAR 0 #A65I 0 [VAR 1 #A65J 0 [VAR 2 #A65K 0 [VAR 3 #A65L 0 [VAR 4 $1500 TOP [PRTDEC - SIGNED DECIMAL PRINT #PRTDEC SCR i 1 [SIGN TO LINK BIT ROL i 1 APO i [MAKE NEGATIVE COM [IF POSITIVE STC A28N [SAVE IT ADD 0 [SAVE RETURN STC A28P SET i 1 [SETUP NBUFF-1+4000 [OUTPUT BUFFER LDA i [LOAD POSSIBLE SIGNS #BOSIGN 5540 [ LZE [GET CORRECT SIGNS ROR 6 STH i 1 [AND STORE IT SET i 2 [SET ADDEND POINTER A28Q-1 #NLOOP JSR A28M [CONVERT A DIGIT AZE [IS IT A LEADING ZERO JMP A28L [NO ADD BOSIGN [YES: MOVE THE SIGN RIGHT ONE PLACE STH 1 [STORE A SPACE OVER THE SIGN LZE [GET THE CORRECT SIGN ROR 6 STH i 1 [AND STORE IT JMP NLOOP [ THEN CONTINUE CONVERTING #A28L STH i 1 [STORE A DIGIT JSR A28M [CONVERT NEXT DIGIT JMP A28L [AND STORE IT #BLANKS LDA i [SUB-ROUTINE TO OUTPUT 240 [ASCII BLANK 514 [OUTPUT IT 514 [AGAIN CLR [CLEAN UP JMP 0 [RETURN #CRLF LDA i [ , SUB-ROUTINE 215 [ASCII FOR 514 [OUTPUT IT LDA i [NOW LOAD AN 212 [ASCII 514 [OUTPUT IT CLR [CLEAN UP JMP 0 [RETURN TOP [LITTLE SUBROUTINE TO DO THE CONVERSION #A28M LDA [SAVE RETURN 0 STC PRET1 SET i 3 [SET DIGIT COUNTER 1777 XSK i 2 [MOVE ADDEND POINTER ADD A28N [LOAD THE VALUE XSK i 3 [BUMP COUNTER STA i [SAVE REMAINING PART #A28N 0 ADA 2 [TRIAL ADD APO [STILL NEGATIVE JMP p-5 [YES: COUNT AND ADD AGAIN LDA [NO: GET THE COUNTER 3 SRO i [LAST DIGIT 3567 #PRET1 JMP 0 [NO: BACK TO THE SUBROUTINE STH i 1 [YES: STORE IT SET i 1 [SETUP NBUFF-1+4000 [OUTPUT POINTER #PRLOOP LDH i 1 [GET A CHARACTER AZE i [END OF LIST  #A28P JMP 0 [YES, RETURN TO CALLING PROGRAM BSE i [MAKE IT 200 [ASCII 514 [PRINT IT JMP PRLOOP [KEEP GOING [ADDEND TABLE #A28Q 1750 144 12 1 #NBUFF 0 0 0 A29V= 2001 [STIM DATA STORE A23J=3500 [FREQ DIST STORE TOP $2600 [QUESTION BUFFER [--------------- #A69S " HOR VERT ----- ------ LN A TOP PT.A" ""3" " " "B"" "4 ---- BOT PT." "C"" "3 D" ""4" TOP " LN B TOP PT.E" ""3" " " "F"" "4 ---- BOT PT." "G"" "3 H" ""4" " STIM DUR " TOP "J"" "3 -------- VAR" ""3" " #TRLS " "K"" "3 --- ---- VAR 1" "."" "4 2." ""4" " --- 3." ""4" " 4" "."" "4 5" "."" "4:" TOP [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 [END OF ANSWER BUFFER