*20 /PARTREP2 PROGRAM: LIKE PARTREP1, EXCEPT /THAT THERE"S AN ADDITIONAL FOREPERIOD /OF "PREDUR" CYCLES DURING WHICH TONES /MAY BE ISSUED IN ADVANCE OF STIM ONSET. /PROGRAM RUNS UP TO 4 DELAY CONDS WITHIN /BLOCKS OF 64 TRIALS. EACH COND. IS /SPECIFIED BY A "DELAY" AND AN "AFTDUR", /WHERE AFTDUR=NO. CYCLES STIM EXPOSURE /AFTER SIDE-CUE. IF DELAY<=0, TOTAL /STIM DUR=AFTDUR CYCLES; IF >0, =DELAY+ /AFTDUR CYCLES. / LMODE SEGMNT 2 *20 / /SUBR SAMPLES SIGNALS IN SYNCHRONY WITH /BIOMETRICS CHOPPING SIGNAL (TRIGGER 3) / SAMPLE, PDP PMODE CLSA TAD M2 SZA CLA JMP .-3 /WAIT FOR TRIG 3 LINC LMODE /SAMPLE & STORE SIGNALS SAM 15 STC XSAMP /X SAM 17 STC YSAMP SAM 10 STC DSAMP XSK 17 /OUT OF ROOM? SKP JMP /YES:DON"T STORE LDF4, LDF 4 LDA XSAMP STA I 17 LDF5, LDF 5 LDA YSAMP STA 17 LDF6, LDF 6 LDA DSAMP STA 17 JMP /RETURN / PMODE M2, -2 LMODE /SUBR DISPLAYS PT ON CHAN 2 CORRESPOND- /ING TO EYE-POSN COORDINATES / DISPOS, LDA I XSAMP, 0 SCR 1 COM ADA I C4400, 4400 STC 1 LDA I YSAMP, 0 SCR 1 DIS 1 JMP / /SUBR CHECKS FOR SACCADE: IF IT OCCURS /THE RETURN IS CALL+1 ELSE CALL+2 / SACCAD, LDA I DSAMP, 0 /=D(X+Y)/DT COM ADA I PTHRES, 0 /+GOING THRESH APO JMP /SACCADE LEFT/UP LDA DSAMP COM ADA I MTHRES, 0 /-GOING APO XSK I 0 /NO SACCADE JMP / /END OF TRIAL: /DISPLAY EACH SAMPLED SIGNAL ON CHANNEL /2 WHILE SW 1(X),2(Y),OR 3(D) UP. USES /VERTICAL LINE TO MARK END OF DISPLAY/ /EYMOVEMENT / TDONE, CLR ESF /RESET 1/2-SIZE LDA I SNS 1 STC SNSGRP ADD LDF4 STC LDFGRP SET I 11 PATRN+2056 /"X" PWS JMP GRAPH /SHOW GRAPH LDA I SNS 2 STC SNSGRP ADD LDF5 STC LDFGRP SET I 11 PATRN+2060 /"Y" PWS JMP GRAPH /SHOW GRAPH LDA I SNS 3 STC SNSGRP ADD LDF6 STC LDFGRP SET I 11 PATRN+2006 /"D" PWS JMP GRAPH /GRAPHS SHOWN. NOW TYPE OUT DURATION LDA 15 /TOTAL DURATION JMP DECPUT /NOW ACCEPT TTY INPUT: 4 CHARS FOR RESPS /+5TH CHAR FOR CODE. RUBOUT BEFORE FINAL /LF RESTARTS IT. / RINPUT, SET I 1 -4 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 377 SKP JMP RINPUT STA INCH JMP TYPE ADD INCH BCL I 7700 /STRIP TO 6 BITS STA I 11 KST JMP .-1 IOB 6036 SAE I 212 /FINAL LF? JMP RINPUT /NO: RESTART / /NOW STORE DATA FROM TRIAL: 1ST WORD= /DELAY COND, 2ND=TONE COND, 3RD,...,6TH /=RESPS,7TH=CODE,8TH=TOTAL DURATION / LDA DTIME JMP NEXDAT LDA SIDE JMP NEXDAT SET I 11 RBUFR-1 /PUT INTO DATA SET I 1 -5 LDA I 11 JMP NEXDAT XSK I 1 JMP .-3 LDA 15 /=TOTAL DURATION JMP NEXDAT /LAST(7TH)=DUR JMP NEXTRL /TRIAL OVER! /HOLDS 5 DATA WORDS / RBUFR, 0 0 0 0 0 / /SUBR SHOW GRAPH: MUST ENTER AC=0 / GRAPH, ADD STC .+2 SNSGRP, HLT /SNS N HLT /RJ WHEN SW DOWN SET I 16 2777 / /DISPLAY LABEL UPPER LEFT HAND CORNER LDA I 340 SET 10 11 /PW PTR SET I 1 4000 /CHAN 2 LDF 5 DSC 10 DSC I 10 / SET I 10 5777 /GRAPH CHAN 2 LDFGRP, HLT /LDF N LDA I 16 SCR 1 /SCALE DIS I 10 LDA 16 SAE 17 JMP .-7 /FULL GRAPH REFRESHED: SHOW VERT. LINE /AT TOTDUR & AT SIGNAL LDA DELAY ADD PREDUR ADD C4000 /H.C.,CHAN 2 STC 10 SET I 3 -200 DIS 10 ADD C1 XSK I 3 JMP .-3 /VERT. LINE LDA 15 /TOT. DUR/ ADD C4000 STC 10 SET I 3 -200 DIS 10 ADD C1 XSK I 3 JMP .-3 JMP SNSGRP /REFRESH DONE / /END GRAPH SUBROUTINE / /SUBR BUFFER OUTPUT OF AC ONTO UNIT 1 /TAPE FILE VIA 12 PTR /BUFFER=14000-14377 / NEXDAT, LDF 6 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, /AND SIDE: LDA I 1 ADM I NTRIAL, 0 JMP DECPUT /TYPE TRIAL NO. LDA I DTIME, 0 ADD C260 JMP TYPE ADD C240 JMP TYPE LDA I SIDE, 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 /THRESHOLD AS "THRESH". (X-SIGNAL,Y-SIG) /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. SET I 17 3777 /DONT SAVE SIGNL 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 ADD DSAMP COM ADD PTHRES APO JMP BELL /EYEMOVEMENT LDA DSAMP COM ADD MTHRES APO I 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 /EVERY MSEC FOR INTERRUPTS AND ENABLES /EVENTS ON TRIGGER 3 (CHOPPER SYNC) / PMODE PAGE 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 4 ADM 1 /PICKUP AFTDUR LDA 1 STC AFTDUR ADD SIDE ADA I ADTONE STC 1 LDA 1 STC STONE /FIRST PHASE: NO SAMPLING OR SACCADE /CHECKING DURING DISPLAY OF FIXATION "X" /AND OPTIONAL PREMASK (PRMASK=1). ENDS /WITH S BUTTON-PRESS / 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 SET I 15 /TOTAL DURATION 0 /CLEARED SET I 17 2777 /ENABLE STORAGE / /NOW START SAMPLING & CHECKING FOR /SACCADES, KEEPING (OPTIONAL) PREMASK /ON FOR TOTAL OF PREDUR CYCLES. / LDA I DELAY, 0 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 JMP MOVE XSK I 15 /INCR TOTAL TIME XSK I 5 JMP P2 / /IF DELAY < 0: ISSUE SIGNAL & FINISH /FOREPERIOD /IF DELAY >= 0: GO TO STIMULUS ONSET / LDA DELAY 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 JMP MOVE /SACCADE! XSK I 15 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 STIMULUS FOR /AFTDUR CYCLES. IF DELAY>=0: SHOW /STIM FOR DELAY CYCLES, THEN ISSUE /SIGNAL & SHOW FOR ANOTHER AFTDUR CYCLES / DISP, LDA DELAY APO JMP AFTDUR-1 AZE I /DELAY>=0: STIM JMP AFTDUR-2 /FOR DELAY, THEN COM /THEN SIGNAL, " STC 5 /ANOTHER AFTDUR P3, JMP SYNC JMP SAMPLE JMP SHOFIX SET I 11 BUFFER+5777 JMP DISPLA JMP DISPOS JMP SACCAD JMP MOVE XSK I 15 XSK I 5 JMP P3 /NOW ISSUE SIGNAL & CONTINUE STIMULUS /DISPLAY FOR "AFTDUR" CYCLES JMP SIGNAL LDA I AFTDUR, 0 COM STC 5 P4, JMP SYNC JMP SAMPLE JMP SHOFIX SET I 11 BUFFER+5777 JMP DISPLA JMP DISPOS JMP SACCAD JMP MOVE XSK I 15 XSK I 16 JMP .+3 CLR ATR XSK I 5 JMP P4 /SECTION POSTMASKS FOR "PTMASK" CYCLES /ARRIVES HERE EARLY ON SACCADE! / MOVE, CLR ATR /SPEAKER OFF LDA I PTMASK, 0 AZE I JMP TDONE /NO POSTMASK COM STC 5 P5, JMP SYNC JMP SAMPLE JMP SHOFIX SET 11 ADMASK JMP DISPLA JMP DISPOS XSK I 5 JMP P5 JMP TDONE /TRIAL OVER! / /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 SPEAKR, ADD C1 ATR /RELAY CLOSED SET I 16 -31 /25 CYCLE BUZZ SIGRET, HLT /RJ / /SUBR INPUTS NEXT (6-BIT) CHAR FROM /STRING FILE, BUFFERED VIA 6 INTO /12400-12777 / NEXCHR, DJR LDF 5 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 5 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 AFTDURS CORRESPONDING TO DELAYS JMP MESSAG SET I 2 260 SET I 1 -4 GETEM1, LDA I 240 JMP TYPE ADD 2 JMP TYPE JMP GET STA I 3 JMP NEXDAT XSK I 2 XSK I 1 JMP GETEM1 /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 AFTDURS & 4 TONES (REALLY 2 DIFF.) / ADTIME, 0 0 0 0 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 5 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 5 / MESSAG, LDA 0 STC RJMESG LDF 5 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 / /END GET SUBR / /FOLLWOING STUFF IN LDF 5 / SEGMNT 5 *2 /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 AFTDUR" 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