*20 /WHOLREP2 PROGRAM: LIKE PARTREP2 /PROGRAM IN DESIGN, WITH THE SAME INPUT /PARAMETERS, BUT THE FOLLOWING DIFFEREN: /(1) ALLOWS UP TO 2047 CYCLES OF TOTAL /DISPLAY TIME: IF "MSECS"=10, THEN UP /TO 20.47 SECONDS, ETC. /(2) POSTEXPOSURE GRAPHS OF X & Y SHOWN /IN 4 SECTIONS EACH. /(3) ALLOWS INPUT FOR 8 CHARACTERS+CODE. /(4) ALLOWS S TO SELF-TERMINATE STIMULUS /DISPLAY WHEN DONE BY SECOND BUTTON-PRES / LMODE SEGMNT 0 *20 / /SUBR SAMPLES SIGNALS IN SYNCHRONY WITH /BIOMETRICS CHOPPING SIGNAL (TRIGGER 3) / SAMPLE, PDP PMODE CLSA TAD MINUS2 SZA CLA JMP .-3 /WAIT FOR TRIG 3 LINC LMODE SAM 15 STC XSAMP /X SAM 17 STC YSAMP /Y SAM 10 STC DSAMP /ANALOG DERIV. SAE I /"STORE"=0 SAVE STORE, 0 /X & Y FOR GRAPH JMP /RETURN PDP PMODE CDF 10 /STORAGE IN CDF1 TAD XSAMP DCA I XPTR /PTR IN X-GRAPH TAD YSAMP DCA I YPTR ISZ XPTR /ADVANCE PTR ISZ YPTR /" ";=0:END ROOM JMP .+3 TAD MINUS2 /END OF STORAGE: DCA STORE /NON-0:DISABLE " CDF 0 LINC LMODE JMP /RETURN / PMODE MINUS2, -2 XSAMP, 0 YSAMP, 0 DSAMP, 0 XPTR, 0 YPTR, 0 LMODE / /SUBR DISPLAYS PT ON CHAN 2 CORRESPOND- /ING TO EYE-POSN COORDINATES / DISPOS, LDA XSAMP SCR 1 COM ADA I C4400, 4400 STC 1 ADD YSAMP SCR 1 DIS 1 JMP / /SUBR INCREMENTS TOTAL EXPOSURE TIMER, /CHECKING FOR TIMEOUT (AT 4000 CYCLES) /OR BUTTON-PRESS ENDING EXPOSURE. / CYCLE, LDA I 1 ADD TOTDUR APO JMP MOVE-2 /TIMEOUT STA I TOTDUR, 0 SAM 13 ADD RTHRES APO I /RESP BUTTON? JMP CLR /ENDCOD=0:SELF-T JMP MOVE / /SUBR CHECKS FOR SACCADE: RETURNS WITH /AC=0 IF NO SACCADE DETECTED, ELSE 1 / SACCAD, LDA 0 STC RJSAC ADD DSAMP COM ADA I PTHRES, 0 APO JMP RJSAC+1 /SACCDE! LDA DSAMP COM ADA I MTHRES, 0 APO I JMP RJSAC+1 /SACCADE! CLR RJSAC, HLT /RJ LDA I 1 JMP RJSAC / /END OF TRIAL: /DISPLAY EACH X OR Y SIGNAL ON CHANNEL 2 /OF SCOPE: PRESENTATION CONTROLLED BY /LEFT SWITCHES: BIT 0 UP TERMINATES /DISPLAY OF GRAPHS. BITS 9-11 CONTROL /GRAPH SELECTION: 9 UP=Y, DOWN=X. BITS /10&11 DESIGNATE ONE OF 4 SECTIONS (IN /(INCREASING TEMPORAL ORDER) OF SELECTED /RECORD. VERTICAL BARS MARK EVENTS: /STIM ONSET/TONE ONSET/EYEMOVEMENT/ /OR SELF-TERMINATION. GRAPHS INCLUDE /DATA SAMPLED FROM INITIAL BUTTON PRESS /THRU END OF POSTMASK. / GRAPHS, LSW APO JMP ENDCOD-1 /GRAPHS DONE! BCL I 7770 ROR 3 /X 512 STC XPTR SET I 1 5000 PDP PMODE CDF 10 GRPT, CLA TAD I XPTR LINC LMODE SAE I 4000 /INDICATES EVENT JMP NOMARK DIS 1 ADD C1 /VERTICAL LINE SAE I 4040 JMP .-4 JMP NEXPT NOMARK, SAE I 4001 /END OF RECORD? SKP JMP GRAPHS /END OF REFRESH DIS 1 /DISPLAY PT. XSK I 1 /END OF SECTION? SKP JMP GRAPHS /END OF REFRESH NEXPT, PDP PMODE ISZ XPTR NOP JMP GRPT LMODE / /GRAPHS SHOWN. NOW TYPE OUT END-CODE: /0=SELF-TERMINATED; 1=SACCADE DETECTED, /2=TIMEOUT. /THEN TYPE SPACE & TOTAL DURATION, /INCLUDING PREDUR BUT NOT POSTMASK TIME. LDA I ENDCOD, 0 ADD C260 JMP TYPE ADD C240 JMP TYPE ADD TOTDUR JMP DECPUT /NOW ACCEPT TTY INPUT: 8 CHARS FOR RESPS /+9TH CHAR FOR CODE. RUBOUT BEFORE FINAL /LF RESTARTS IT. / RINPUT, SET I 1 -11 SET I 11 RBUFR-1 LDA I 275 JMP TYPE /"=" RIN, KST JMP RIN IOB 6036 /KRB SAE I 377 /RUBOUT? SKP JMP RINPUT /RESTART STA I INCH, 0 JMP TYPE /ECHO ADD INCH BCL I 7700 /STRIP TO 6 BITS STA I 11 XSK I 1 JMP RIN KST JMP .-1 IOB 6036 SAE I 212 /FINAL LF? JMP RINPUT /NO: RESTART / /NOW STORE DATA FROM TRIAL: 1ST WORD= /DELAY, 2ND=SIDE, 3RD,...,10TH /=RESPS, 11TH=CODE, 12TH=END CODE, 13TH= /TOTAL DURATION LDA DELAY JMP NEXDAT LDA STONE JMP NEXDAT SET I 11 RBUFR-1 /PUT INTO DATA SET I 1 -11 LDA I 11 JMP NEXDAT XSK I 1 JMP .-3 LDA ENDCOD JMP NEXDAT LDA TOTDUR JMP NEXDAT JMP NEXTRL /TRIAL OVER! /HOLDS 9 DATA WORDS / RBUFR, 0 0 0 0 0 0 0 0 0 / /SUBR BUFFER OUTPUT OF AC ONTO UNIT 1 /TAPE FILE VIA 12 PTR /BUFFER=2000-2377 / NEXDAT, LDF 1 STA I 12 LDA 12 SAE I 2377 /END BUFFER? JMP /BUFFER FILLED: WRITE IT OUT ON NEXT /BLOCK OF UNIT 1 FILE WRITE, LDA I OUTBLK, 0 SAE I C1000, 1000 SKP ERROR2, JMP ERROR /TAPE FULL ADA I C4000, 4000 STC .+2 WRC U 0 SET I 12 3777 /RESET PTR LDA I C1, 1 ADM OUTBLK JMP / /EACH TRIAL BEGINS HERE / NEXTRL, JMP CRLF /CR,LF / /ENCODE NEXT TWO LINES OF STRING FILE /AS DISPLAY AND MASK STRINGS. SET I 11 BUFFER+5777 /AD-1/2 STR BUF JMP NEXCHR AZE I JMP ENDBLK /00=END FILE SAE I 57 /LINE BEGINS "/" ERROR3, JMP ERROR /ILLEGAL LINE! JMP NEXCHR STH I 11 /CHAR INTO BUFR SAE I 43 /43=END OF LINE JMP .-4 LDA 11 STA I ADMASK, 0 /SAVE AD-1/2 MSK JMP NEXCHR SAE I 57 JMP ERROR3 JMP NEXCHR STH I 11 SAE I 43 JMP .-4 /STRINGS IN BUFFER: TYPE TRIAL NO. & GO /ENCODE 3RD LINE TO GET "DELAY" (0-3) /AND "SIDE" (0-3) PARAMETERS FOR TRIAL JMP NEXCHR SAE I 57 JMP ERROR3 JMP NEXCHR BCL I 7774 STC DTIME JMP NEXCHR BCL I 7774 STC SIDE JMP NEXCHR SAE I 43 JMP ERROR3 /PARAMETERS IN: TYPE TRIAL NO.&DELAY LDA I 1 ADM I NTRIAL, 0 JMP DECPUT /TYPE TRIAL NO. LDA I DTIME, 0 ADD C260 JMP TYPE ADD C240 JMP TYPE / /SW 5 UP: RUN CALIBRATION BEFORE TRIAL /TTY BELL ON MOVEMENT OR BUTTON PRESS. /USES A-D KNOBS 0&4 FOR SACCADE "THRESH" /DISPLAYING THEM ON SCOPE WITH D(X+Y)/ /DT SIGNAL (A-D 10) AS MOVING POINT. / /DT. WHEN SW 5 DOWN, STORE ADJUSTED /THRESHOLDS AS "PTHRES" & "MTHRES".(X,Y) /ALSO PLOTTED AS CONT. POINT. /ALL THIS SHOWN VR-12 CHAN 2. /MEANWHILE ON CHAN 1, FIXATION X SHOWN /TO S AT (X,Y): X=XFIX0+RSW(6-11) IF SW /0 UP; Y=Y0+RSW(6-11) IF SW 1 UP. ADD C1 STC STORE /DISABLE STORAGE SET I 4 4000 /CHAN 2 JMP SYNC0 CLR STC BELFLG CALIBR, SAM 0 APO COM STC PTHRES /+GOING THRESH SAM 4 APO I COM STC MTHRES /-GOING THRESH SNS 5 JMP READY /START TRIAL SET I 3 -40 SET I 2 4000 /CHAN 2 LDA PTHRES DIS 2 LDA MTHRES DIS I 2 XSK I 3 JMP .-7 /SYNC A-D SAMPLING ON CHOPPER: MUST BE /EVENT ON TRIGGER 3 & NO PRE-EVENT JMP SAMPLE JMP DISPOS LDA DSAMP DIS I 4 /COMPUTE COORDINATES FOR "X" CLR SNS 0 JMP .+4 RSW BCL I 7700 ADD XFIX0 STC XFIX SNS 1 JMP .+4 RSW BCL I 7700 ADD Y0 STC Y JMP SHOFIX / /IN ORDER TO PREVENT DISPLAY BLINKING /DURING BELL, MUST KEEP REFRESHING WHILE /WAITING FOR TTY FLAG: HENCE CHECK FOR /NEW EVENT ONLY IF BELFLG=0 / LDA I BELFLG, 0 AZE JMP CHKFLG /TTY IN PROGR JMP SACCAD AZE JMP BELL /EYEMOVEMENT! SAM 13 ADD RTHRES APO I /BUTTON PRESS? JMP CALIBR BELL, LDA I 207 IOB 6046 /TLS STC BELFLG /SET FLAG>0 CHKFLG, IOB 6041 /TSF JMP CALIBR JMP CALIBR-2 /CLEAR FLAG / /SUBR STARTS 100 KHZ CLOCK TICKING /ONCE EVERY "MSECS".-ENABLES /EVENTS ON TRIGGER 3 (CHOPPER SYNC) / PMODE C2100, 2100 LMODE SYNC0, CLR IOB 6132 /CLLR LDA I MSECS, 0 MUL I 144 PDP PMODE CIA CLAB CLSA CLA TAD C2100 CLLR CLSA SMA CLA JMP .-2 /WAIT 1ST TICK IAC CLEN /TRIGGER 3 LINC LMODE JMP /RJ / /CONTROL ARRIVES HERE BEFORE STARTING / READY, LDA I XFIX0, 376 /FIXATION H.C. STC XFIX LDA I Y0, 4000 /AC 0=1 FOR TONE STC Y ADD DTIME ADA I ADTIME /AD DELAY TIMES STC 1 LDA 1 STC DELAY LDA I SIDE, 0 ADA I ADTONE STC 1 LDA 1 STC STONE SET I 1 2000 SET I 2 3000 LDA I 4001 /PUT END-RECORD LDF 4 /IN 1ST SLOT OF STA 1 /EACH GRAPH PART STA 2 LDF 5 STA 1 STA 2 LDF 6 STA 1 STA 2 LDF 7 STA 1 STA 2 /FIRST PHASE: NO RECORDING OR SACCADE /CHECKING DURING DISPLAY OF FIXATION "X" /AND OPTIONAL PREMASK (PRMASK=1). ENDS /WITH S BUTTON-PRESS / JMP SYNC0 P1, JMP SYNC JMP SAMPLE JMP SHOFIX SET 11 ADMASK CLR SAE I PRMASK, 0 JMP DISPLA JMP DISPOS SAM 13 ADA I RTHRES, 500 /CHECK FOR RESP APO I JMP P1 /CONTINUE ABOVE UNTIL BUTTON BACK OPEN. / P1B, JMP SYNC JMP SAMPLE JMP SHOFIX SET 11 ADMASK CLR SAE PRMASK JMP DISPLA JMP DISPOS SAM 13 ADA I 200 APO JMP P1B /WAIT FOR IT CLR STC TOTDUR /CLEAR TOTAL DUR STC STORE /ENABLE STORAGE STC XPTR ADD C4000 STC YPTR /SET GRAPH PTRS / /NOW START SAMPLING & CHECKING FOR /SACCADES, KEEPING (OPTIONAL) PREMASK /ON FOR TOTAL OF PREDUR CYCLES. / ADD DELAY APO I CLR ADA I PREDUR, 0 COM STC 5 P2, JMP SYNC JMP SAMPLE JMP SHOFIX SET 11 ADMASK CLR SAE PRMASK JMP DISPLA JMP DISPOS JMP SACCAD AZE JMP MOVE /CYCLE SUBR INCREMENTS TOTAL TIME & /STOPS DISPLA IF TOTDUR=4000 OR IF /RESP OCCURS. JMP CYCLE XSK I 5 JMP P2 / /IF DELAY < 0: ISSUE SIGNAL & FINISH /FOREPERIOD /IF DELAY >= 0: GO TO STIMULUS ONSET / LDA I DELAY, 0 APO I JMP DISP STC 5 JMP SIGNAL /ISSUE SIGNAL P2B, JMP SYNC /& FINISH PREMSK JMP SAMPLE JMP SHOFIX SET 11 ADMASK CLR SAE PRMASK JMP DISPLA JMP DISPOS JMP SACCAD AZE JMP MOVE /SACCADE! JMP CYCLE XSK I 16 /SIGNAL OVER? JMP .+3 CLR ATR /SPEAKER OFF XSK I 5 JMP P2B / /ARRVIVES HERE AT END OF FOREPERIOD: /IF DELAY<0: SHOW STIM UNTIL TOTDUR=4000 /OR BUTTON-PRESS MADE (OR EYEMOVEMENT /OCCURS). IF DELAY>=0: SHOW /STIM FOR DELAY CYCLES, THEN ISSUE /SIGNAL & DO ABOVE. / DISP, LDA DELAY APO JMP P4 AZE I JMP P4-1 COM STC 5 P3, JMP SYNC JMP SAMPLE JMP SHOFIX SET I 11 BUFFER+5777 JMP DISPLA JMP DISPOS JMP SACCAD AZE JMP MOVE JMP CYCLE XSK I 5 JMP P3 /NOW ISSUE SIGNAL & CONTINUE STIMULUS /DISPLAY UNTIL TOTDUR=4000 OR RESP MADE. JMP SIGNAL P4, JMP SYNC JMP SAMPLE JMP SHOFIX SET I 11 BUFFER+5777 JMP DISPLA JMP DISPOS JMP SACCAD AZE JMP MOVE JMP CYCLE XSK I 16 JMP P4 CLR ATR JMP P4 /ARRIVES HERE EARLY ON SACCADE OR SELF- /TERMINATION OR TIMEOUT / LDA I /HERE ON TIMEOUT 2 /END-CODE=2 MOVE, STC ENDCOD /SAVE END CODE ATR /SPEAKER OFF JMP EVENT /ENTER EVENT MRK LDA I PTMASK, 0 AZE I JMP GRAPHS /NO POSTMASK COM STC 5 P5, JMP SYNC JMP SAMPLE JMP SHOFIX SET 11 ADMASK JMP DISPLA JMP DISPOS XSK I 5 JMP P5 /PUT END-OF GRAPH MARK=4001 INTO GRAPHS /UNLESS NO ROOM LEFT: STORE<>0 LDA I 4001 STA XSAMP STC YSAMP JMP STORE-1 JMP GRAPHS /DISPLAY OFF!! / /SUBR ISSUE SIGNAL: IF SIDE>0, TYPES IT /AS ASCII CHAR: IF=0 TURNS SPEAKER ON /FOR BRIEF INTERVAL, PRODUCING BUZZ FOR /25 CYCLES / SIGNAL, LDA 0 STC SIGRET /RJ LDA I STONE, 0 AZE I JMP SPEAKR IOB 6046 /TLS JMP SIGRET-1 SPEAKR, ADD C1 ATR /RELAY CLOSED SET I 16 -31 /25 CYCLE BUZZ JMP EVENT /ENTER MARKER SIGRET, HLT /RJ / /SUBR INSERTS EVENT MARKER INTO RECORDS /AS 4000"S / EVENT, PDP PMODE CLA STL RAR /4000 DCA XSAMP STL RAR DCA YSAMP JMP STORE+3 /RJ FROM THERE / LMODE /SUBR INPUTS NEXT (6-BIT) CHAR FROM /STRING FILE, BUFFERED VIA 6 INTO /2400-2777 / NEXCHR, DJR LDF 1 LDA 6 SAE I 6777 /END BUFFER? JMP ROOM /END OF STRING FILE BUFFER: READ IN NEXT /TBLK FROM STRING FILE & RESET PTR 6. LDA I 1 ADM I STBLK, 0 STC .+2 RDC 0 SET I 6 6377 JMP .+1 /USE UP DJR ROOM, LDH I 6 JMP / /SECTION HANDLES END OF BLOCK: WRITES /OUT FINAL BUFFER CONTENTS & TYPES MESG. / ENDBLK, CLR JMP NEXDAT /FINAL 0 IN DATA JMP WRITE /OUTPUT BUFFER SET I 11 FINLAB+5777 JMP MESSAG /E-O-F MESSAGE ADD OUTBLK ADA I -1 JMP DECPUT /TYPE LAST TBLK END, HLT JMP START / /PROGRAM (AND EACH BLOCK) BEGINS HERE /INPUT FOLLOWING PARAMETERS / /"SESSID" - SESSION ID NO. /"SUBJID" - SUBJECT ID NO. /"INPUT FILE": STARTING TBLK UNIT 0 / FOR DISPLAY STRINGS /"OUTPUT" - STARTING TBLK UNIT 1 FILE / FOR DATA OUTPUT /"MSECS " - NUMBER MSECS/TIME UNIT /"PREDUR" - CYCLES BEFORE STIM ONSET /"PRMASK" - 0=NO PREMASK, ELSE PREMASK /"PTMASK" - NUMBER OF "MSEC" UNITS OF / MASK STRING AFTER DISPLAY / START, SET I 12 /PTR TO DATA 3777 LDA I PROGID, 300 /1ST DATA WORD JMP NEXDAT SET I 11 /SET PTR TO PARAMS+5777 /PARAMETER LABEL JMP MESSAG /TYPE PAR. LABEL JMP GET /DEC. INPUT TTY JMP NEXDAT JMP MESSAG JMP GET JMP NEXDAT JMP MESSAG JMP GET ADA I 5000 STA STBLK /STRINGS FILE JMP NEXDAT /VERIFY THAT STRING FILE IS VALID DIAL /SOURCE FILE: 1ST WD=5262, 2ND=6043. LDF 1 LDA STBLK STC .+2 RDC 0 SET I 6 6377 /AD-1 S FILE BUF LDA I 6 SAE I 5262 ERROR4, JMP ERROR /NOT DIAL FILE LDA I 6 SAE I 6043 JMP ERROR4 /INPUT FILE VALID & LOADED JMP MESSAG JMP GET STC OUTBLK /DATA FILE JMP MESSAG JMP GET STA MSECS JMP NEXDAT JMP MESSAG JMP GET STA PREDUR JMP MESSAG JMP GET STA PRMASK /0=NO PREMASK JMP NEXDAT JMP MESSAG JMP GET STA PTMASK /CYCLES POSTMASK JMP NEXDAT JMP MESSAG /INPUT 4 DELAYS SET I 3 ADTIME-1 SET I 2 260 SET I 1 -4 GETEM, LDA I 240 JMP TYPE ADD 2 JMP TYPE JMP GET STA I 3 JMP NEXDAT XSK I 2 XSK I 1 JMP GETEM /INPUT 4 SIDE CUES: O=BUZZ-TONE, >0= /TETETYPE SOUND: REALLY ONLY TWO CUES JMP MESSAG SET I 2 260 SET I 1 -4 GETEM2, LDA I 240 JMP TYPE ADD 2 JMP TYPE JMP GET STA I 3 JMP NEXDAT XSK I 2 XSK I 1 JMP GETEM2 /PARAMETERS & CONDITION WORDS IN AND /OUTPUT HEADER WRITTEN. /TYPE MESSAGE "SW 5 UP FOR /CALIB.", THEN HALT AND START BLOCK JMP MESSAG HLT STC NTRIAL JMP NEXTRL / /STORAGE FOR CONDITION WORDS: 4 DELAYS /& 4 TONES (REALLY 2 DIFF.) / ADTIME, 0 0 0 0 ADTONE, 0 0 0 0 /CONTROL ARRIVES HERE ON ERRORS: TYPE /"ERROR!" AND LEAVE ERROR ADDR IN AC / ERROR, SET 1 0 /ERROR ADDR SET I 11 ERRLAB+5777 /AD-1/2 LDF JMP MESSAG ADD 1 HLT JMP START / /SUBR "WAITS FOR NEXT CLOCK TICK, /GENERATES TIMING ERROR IF PRESENT ON /ENTRY / SYNC, PDP PMODE CLA CLSA SPA CLA JMP E1 /TIMING ERROR CLSA SMA CLA JMP .-2 LINC LMODE JMP /RJ PMODE E1, LINC LMODE ERROR1, JMP ERROR / /SUBR REFRESHES FIXATION "X" AT (XFIX,Y) /USING 1/2-SIZE GRID / SHOFIX, DSC I 0 /PRIOR TO ESF CLR ESF SET I 1 XFIX, 376 LDA Y DSC I 1463 DSC I 6314 JMP / /SUBR REFRESHES PACKED ASCII STRING /VIA PTR 11, LDF 5, USING FULL-SIZE GRID / DISPLA, LDA 0 STC RJDISP DSC I 0 /PRIOR TO ESF LDF 1 SET I 1 X0, 104 LDA I 200 ESF LDH I 11 SHD I 4300 /43=CR=END STRNG RJDISP, HLT ROL 1 ADA I ADPWS, PATRN+1776 /AD-2 PWS LDF STC 2 LDA I Y, 4000 /AC 0=1 FOR TONE DSC 2 DSC I 2 LDA I DX, 4 ADM 1 JMP RJDISP-3 / /SUBR TYPES AC / TYPE, PDP PMODE TLS TSF JMP .-1 CLA LINC LMODE JMP / /SUBR TYPES CR.LF + PACKED ASCII MESSAGE /POINTED BY 11, LDF 1 / MESSAG, LDA 0 STC RJMESG LDF 1 LDH I 11 AZE I RJMESG, HLT /RETURN:00=END SAE I 43 /CRLF? JMP .+3 JMP CRLF JMP RJMESG-2 ADA I -37 /ADD 100 OR 200 APO /FOR 8-BIT CODE ADD C100 ADA I 237 JMP TYPE JMP RJMESG-2 C100, 100 / /SUBR TYPES AC AS SIGNED DECIMAL INTEGER /WITH (I5,1X) FORMAT. LEAD 0"S BLANKED / DECPUT, STC NUM ADD STC RJDCPT STC ZERO /LEADING-0 FLAG LDA I NUM, 0 APO JMP .+4 LDA I C240, 240 JMP .+5 COM STC NUM LDA I 255 JMP TYPE /" " OR "-" SIGN STC 7 /COUNTS DIGITS ADD NUM ADA I -1750 /THOUSANDS APO JMP .+3 XSK I 7 JMP .-5 AZE I /-0? JMP .-3 ADA I 1750 /RESTORE STC NUM ADD 7 ADM I ZERO, 0 /TOTAL DIGIT SUM AZE I JMP .+5 /LEADING ZERO LDA I 260 ADD 7 SKP ADD C240 JMP TYPE STC 7 ADD NUM ADA I -144 /HUNDREDS APO JMP .+3 XSK I 7 JMP .-5 AZE I JMP .-3 ADA I 144 STC NUM ADD 7 ADM ZERO AZE I JMP .+5 LDA I 260 ADD 7 SKP ADD C240 JMP TYPE STC 7 ADD NUM ADA I -12 /TENS APO JMP .+3 XSK I 7 JMP .-5 AZE I JMP .-3 ADA I 12 STC NUM ADD 7 ADD ZERO AZE I JMP .+5 LDA I C260, 260 ADD 7 SKP ADD C240 JMP TYPE ADD C260 ADD NUM JMP TYPE ADD C240 JMP TYPE RJDCPT, HLT / /SUBR TYPES CR.LF / CRLF, LDA 0 STC RJCRLF LDA I 212 JMP TYPE LDA I 215 JMP TYPE RJCRLF, HLT / /SUBR ACCEPTS SIGNED DECIMAL INTEGER /FROM TTY. FORMAT: OPTIONAL LEADING /BLANKS, OPTIONAL "-", 1-4 DECIMAL /DIGITS, LINE FEED. ILLEGAL CHAR OR /RUBOUT RESTARTS. TYPES "=" FIRST. /ECHOES & RETURNS N IN AC. / GET, LDA 0 STC RJGET STC NUM1 SET I 7 -5 /MAX 4 DIGITS STC SIGN /SIGN FLAG LDA I C275, 275 JMP TYPE JMP INCHAR /GET & ECHO CHAR SAE I 240 SKP JMP .-4 /SKIP LEAD BLANK SAE I 255 /="-"? JMP .+3 STC SIGN /SET SIGN FLAG NEXDIG, JMP INCHAR ADA I -257 /DIGIT? APO JMP ENTERR /ILLEGAL CHAR ADA I -12 APO I /DIGIT? JMP ENTERR XSK I 7 /TOO MANY DIGITS SKP JMP ENTERR /TOO MANY! ADA I 11 /RESTORE DIGIT AZE I CLR /-0 TO +0 STC DIGIT ADD NUM1 MUL I 12 /DEC.SHITF LEFT ADA I DIGIT, 0 STC NUM1 JMP NEXDIG ENTERR, LDA I /ENTRY ERROR: 277 JMP TYPE /"?" JMP GET+3 /RESTART INPUT / /SUBR ACCEPTS TTY CHAR, CHECKS FOR LF /TERMINATOR, ECHOES NON-LF & RETURNS AC / INCHAR, LDA 0 STC DONE-1 /SAVE RJ PDP PMODE KSF JMP .-1 KRB LINC LMODE SAE I 212 SKP JMP DONE /LF=ENTRY IN STA DIGIT JMP TYPE /ECHO ADD DIGIT HLT /RJ:DIGIT IN AC DONE, LDA I SIGN, 0 /CHECK FOR - AZE JMP .+3 ADD NUM1 RJGET, HLT /RJ LDA I NUM1, 0 COM JMP RJGET / /FOLLWOING STUFF IN LDF 1 / SEGMNT 1 *1002 /PARAMETER INPUT LABELS / PARAMS, 4343 /2CR,LF TEXT "SESSID" 0043 TEXT "SUBJID" 0043 TEXT "INPUT FILE" 0043 TEXT "OUTPUT" 0043 TEXT "MSECS " 0043 TEXT "PREDUR" 0043 TEXT "PRMASK" 0043 TEXT "PTMASK" 0043 TEXT "ENTER 4 DELAYS" 4300 TEXT "ENTER 4 SIDE" 4300 TEXT "SW 5 UP FOR CALIB." 4300 / FINLAB, 4343 TEXT "END OF BLOCK:LAST TBLK=" / ERRLAB, 4343 TEXT "ERROR!" 4300 / /BUFFER STORAGE FOR PACKED ASCII DISPLAY /AND MASK STRINGS. / BUFFER, 0 *.+37 /PATTERN WORDS FOR CHAR DISPL. 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