*20 PMODE *20 /PARAMETERS OF OPERATION: MEASURED /IN NUMBERS OF REFRESH CYCLES: WHEN /REFRESH(=-RFRESH)=144 (1 MSEC), /TIMES ARE MEASURED IN MSECS. / PAUSE, 764 /NOW=1/2 SEC. /LENGTH OF INTERTRIAL INTERVAL: FIXATION /DOTS ON THROUGHOUT EXPT EXCEPT HERE. /MEASURED FROM OFFSET OF POSTMASK. / AFTER, 764 /NOW=1/2 SEC. /POSTMASK: DISPLAYED AFTER CHAR DISPLAY /UNTIL S RESPONDS (10-KEY PANEL) AND /THEN FOR ADDITIONAL "AFTER" COUNTS / /TO CHANGE POSTMASK PATTERN WORDS, PUT /DESIRED ONES (NOW 7777 7777) INTO /LOCATIONS PATRN-2 AND PATRN-1 / BEFORE, 144 /NOW=1/10 SEC. /PREMASK (USUALLY BLANK) ON (WITH FIXATN /ION DOTS UNTIL S HITS "READY" AND THEN /FOR ADDITIONAL "BEFORE" COUNTS. / /TO CHANGE PREMASK FROM BLANK, FILL /LOCATIONS PATRN+100 & PATRN+101 WITH /DESIRED PATTERN WORDS FOR PREMASK / M50,-50 K7, 7 TEMP, 0 R1, 0 R2, 0 R3, 0 INDEX6, 0 RNDM3, 0 RNDM2, 0 ADTIMS, TIME1 /AD TIME CONDS. ADCHRS, CHAR1 /AD CHAR CODES RNDM1, RNDM SH1, 0 SH2, 0 SH3, 0 SHUFEL, SHUFL RMNDR, RMNDRX TIMER, 0 DX, 24 /POSN SPACING CHAR, 0 IRX, IR RNX, RN NTRIAL, 0 TIME, 0 TRTYPE, 0 KEY, 0 CHARS, 12 /NO. CHARS/COND POSNS, 5 /NO. DISP POSNS TIMES, 3 /NO. TIME CONDS ADSDIF, RESP1-CHAR1 C40, 40 /SUBR TYPES OUT AC (LESS THAN 100) /AS 2 DIGIT DECIMAL NUMBER PLUS SPACE DECPUT, 0 DCA 0 TAD C260 DCA TIMER TAD 0 TAD MD10 SPA JMP .+3 ISZ TIMER JMP .-4 TAD C272 DCA 0 TAD TIMER JMS TYPE TAD 0 JMS TYPE TAD C240 JMS TYPE JMP I DECPUT C240, 240 MD10, -12 C260, 260 C272, 272 /SUBR TYPES CHAR FROM AC TYPE, 0 TLS TSF JMP .-1 CLA JMP I TYPE /SUBR GIVES CR+LF CRLF, 0 TAD C212 JMS TYPE TAD C215 JMS TYPE JMP I CRLF C212, 212 C215, 215 /SUBR STARTS CLOCK AT 1OO KHZ RATE CLOCK, 0 CLA CLLR TAD C2100 CLLR CLA JMP I CLOCK C2100, 2100 /SUBR PAUSES UNTIL RFRESH SECS*10^-5 DELAY, 0 CLCA CIA TAD RFRESH SPA SNA CLA JMP I DELAY /DONE WAITING JMP DELAY+1 /KEEP WAITING RFRESH, 144 /REFRESH RATE /SUBR DISPLA SHOWS FIXATION POINTS /AND KEY CHAR IN KEY POSN /CHAR=40 IS THE PREMASK CODE: /(NORMALLY BLANK:NO PREMASK) /CHAR=0 IS THE POSTMASK CODE (NORMALLY /=7777S:FULL POSTMASK) DISPLA, 0 JMS CLOCK /START CLOCK LINC LMODE SNS I 0 ADD C200 /CHAR SIZE: SW 0 ESF /1/2-SIZE CHARS SET I 1 X0, 374 /FIXATION CENTER LDA I 20 /LINE ABOVE CHAR SNS I 0 ROL 1 /DOUBLE IF FULL ADD VERCO DSC I FIXAT1, 400 /LEFT FIX.N PW DSC I FIXAT2, 4 /RIGHT FIXN. PW SET 1 X0 LDA I -20 /LINE BELOW CHAR SNS I 0 ROL 1 /DOUBLE IF FULL ADD VERCO DSC I FIXAT3, 1000 DSC I FIXAT4, 10 LDA DX MUL I KEYPOS, 0 ADD IHORCO STC 1 ADD CHAR ROL 1 ADA I PATRN-2 /GET PW PAIR ADR STC 2 LDA I VERCO, 320 DSC 2 DSC I 2 /SHOW PWS PDP PMODE JMS DELAY /STEADY REFRESH JMP I DISPLA /THEN RETURN /END OF DISPLAY ROUTINE /PROGRAM STARTS HERE: INITIALIZE RANDOM START, ISZ TIME NOP LAS SZA JMP START JMS I IRX JMS I RNX ISZ TIME JMP .-2 /EACH BLOCK BEGINS HERE BLOCK, HLT CLA TAD POSNS CLL RAR LINC LMODE MUL DX /CENTER DISPLAY COM ADD X0 STA I IHORCO, 0 /INIT. X COORD. LDA POSNS MUL TIMES STA I CONDS, 17 /=NO. CONDS/BLK MUL CHARS STA I TRIALS, 226 /=NO. TRIALS/BLK PDP PMODE CIA DCA NTRIAL STL RTR /2001=1ST TRIAL DCA 10 DCA 0 /FIRST COND=0 TAD 0 DCA I 10 ISZ 0 /NEXT COND ISZ NTRIAL /ANOTHER COND? JMP .-4 TAD TRIALS CIA DCA NTRIAL /INDEX TRIALS/BK /ZERO THE CONDS DATA CELLS AT 4000 & UP STA CLL RAR /3777=AD-1 1ST DCA 10 /DATA CELL TAD CONDS CIA DCA 7 DCA I 10 /ZERO NEXT CELL ISZ 7 JMP .-2 /SHUFFLE THE TRIALS CONDITIONS 50 TIMES TAD M50 /SHUFFLE 50 TIMS DCA 7 BSHUF, STL RTR /SETUP SHUFFLE DCA SH1 TAD TRIALS DCA SH2 STA DCA SH3 JMS I SHUFEL /SUFFLE ARRAY ISZ 7 JMP BSHUF CLA STL RTR DCA 10 /2000=AD-1 CONDS /EACH TRIAL BEGINS HERE TRIAL, TAD ADCHRS /POINTS TO CHAR DCA KEY /LIST ITEM TAD CONDS CIA DCA TEMP TAD I 10 /NEXT TRIAL COND TAD TEMP /GET MOD CONDS SPA JMP .+3 ISZ KEY /NEXT CHAR COND JMP .-4 TAD CONDS DCA TRTYPE /IN (0,CONDS-1) TAD POSNS CIA DCA TEMP TAD ADTIMS /POINTS TO TIME DCA TIME /CONDS LIST TAD TRTYPE TAD TEMP SPA JMP .+3 ISZ TIME /NEXT TIME COND. JMP .-4 TAD POSNS DCA KEYPOS /IN (0,POSNS-1) /NOW READY TO DISPLAY TRIAL. FIRST SHOW /PREMASK (USUALLY BLANK) + FIXATION DOTS /UNTIL S SIGNALS READY (4-BUTTON PANEL) /AND THEN FOR ANOTHER "BEFORE" COUNTS TAD C40 DCA CHAR /PREMASK ASCII 6304 JMS DISPLA 6302 SNA CLA JMP .-3 TAD BEFORE CIA DCA TIMER JMS DISPLA ISZ TIMER JMP .-2 /DISPLA ASCII CHAR IN LOCATION "KEY" FOR /NO. COUNTS IN LOCATION "TIME" IN KEYPOS TAD I TIME CIA DCA TIMER TAD I KEY DCA CHAR JMS DISPLA ISZ TIMER JMP .-2 /NOW DISPLA POSTMASK (CHAR=0) IN KEYPOS /UNTIL S RESPONDS ON 10-BUTTON PANEL 6314 WAIT, TAD DX LINC LMODE MUL KEYPOS ADD IHORCO STC 1 ADD VERCO DSC PATRN-2 DSC PATRN-1 /POSTMASK PWS PDP PMODE CLA 6312 SNA JMP WAIT DCA TEMP /SAVE RESP TAD AFTER CIA DCA TIMER NOP NOP /FILL PAGE END JMS DISPLA ISZ TIMER JMP .-2 TAD ADSDIF /RESP1-CHAR1 TAD KEY /=AD CORR RESP DCA 5 STL RAR /4000+TRTYPE= TAD TRTYPE /AD DATA CELL DCA 6 /FOR THIS COND. TAD I 5 /CORR RESP CIA TAD TEMP /CHECK RESP. SZA CLA JMP .+4 /ERROR ISZ I 6 /CORRECT: INCR. TAD BELL /DATA CELL AND JMS TYPE /FEEDBACK=BELL /NOW WAIT FOR I.T.I. OF "PAUSE" COUNTS TAD PAUSE CIA DCA TIMER JMS CLOCK JMS DELAY ISZ TIMER /WAIT FOR I.T.I. JMP .-3 ISZ NTRIAL /ANOTHER IN BLOK JMP I ITRIAL JMP I DATA DATA, OUTPUT /NEXT PAGE BELL, 207 ITRIAL, TRIAL /NOW AT END OF BLOCK: GIVE OUTPUT - /ONE LINE OF CELLS FOR EACH TIME COND. /SO CELL (I,J) OUTPUT = DATA CELL (I,J), /WHERE I=TIME COND. (0,TIMES-1) AND J= /POSN NO.(0,POSNS-1) PAGE OUTPUT, TAD TIMES CIA DCA 7 STA CLL RAR /3777=AD-1 CELLS DCA 10 TAD ADTIMS DCA TIME /POINTS TO TIME TAD C304 /D JMS TYPE TAD C330 /X JMS TYPE TAD C275 /= JMS TYPE TAD DX JMS DECPUT TAD C240 JMS TYPE TAD C306 /"F" IF FULL OR LINC LMODE SNS 0 ADD C2 /"H" IF HALF-SIZ PDP PMODE JMS TYPE LINE, JMS CRLF /CR,LF TAD C324 /"T" JMS TYPE TAD C311 /"I" JMS TYPE TAD C315 /"M" JMS TYPE TAD C305 /"E" JMS TYPE TAD C275 /"=" JMS TYPE TAD I TIME /NEXT TIME VALUE JMS DECPUT TAD C240 JMS TYPE /EXTRA SPACE ISZ TIME DCA 2 /ROW SUM TAD POSNS CIA DCA 6 /POSNS=CELLS/LIN NCELL, TAD I 10 /NEXT DATA CELL DCA 1 TAD 1 TAD 2 DCA 2 /ADD TO ROW SUM TAD 1 JMS DECPUT ISZ 6 /ANOTHER CELL/LN JMP NCELL TAD C240 JMS TYPE /EXTRA BLANK TAD C323 /S JMS TYPE TAD C325 /U JMS TYPE TAD C315 JMS TYPE /M TAD C275 JMS TYPE /= TAD 2 JMS DECPUT /AND ROW SUM TAD C257 JMS TYPE / / TAD CHARS LINC LMODE MUL POSNS /=N/ROW PDP PMODE JMS DECPUT ISZ 7 /ANOTHER ROW? JMP LINE JMS CRLF JMS CRLF /EXTRA CR,LF"S JMP I IBLOCK IBLOCK, BLOCK C305, 305 C257, 257 C325, 325 C304, 304 C330, 330 C323, 323 C311, 311 C324, 324 C306, 306 C315, 315 C275, 275 C200, 200 C2, 2 /ARRAY OF (UP TO) 10 ALTERNATIVE LETTERS /EACH SHOWN ONCE PER CONDITION CHAR1, 2 /B 3 /C 4 /D 6 /F 7 /G 10 /H 12 /J 13 /K 14 /L 16 /N /ARRAY OF 10 RESPONSE KEY CODES /IF LESS THAN 10 ALTERNATIVE LETTERS /USED, SHOULD BE ASSIGNED TO LEFTMOST RESP1, 1000 /LEFTMOST KEY 400 200 100 40 20 10 4 2 1 /RIGHTMOST KEY /ARRAY OF (UP TO) 10) TIME CONDITIONS /EACH TIME=NO. REFRESH CYCLES. NOW SET /AT 1 CYCLE/MSEC TIME1, 30 /24 MSECS 44 /36 MSECS 60 /48 MSECS 0 /N.U. 0 0 0 0 0 0 /RANDOM PACKAGE BEGINS HERE 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 POSTMASK 7777 7777 /PATTERN WORDS FOR CHAR DISPLAY 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 /? 2055