*20 /EYESCOP2 PROGRAM: IDENTICAL TO EYESCOP1 /EXCEPT THAT (IF SW 4 UP) X- AND Y- /GRAPH FILES WRITTEN OUT AS DATA: 4 /TBLKS PER TRIAL. OTHER DIFFERENCES: /(1) NO DISPLAY OF D(X+Y)/DT GRAPH /(2) SIGNAL SAMPLED, GRAPHED, AND SAVED /DURING POSTMASK PHASE. / /SECTION SAMPLES SIGNALS EVERY "MSECS" /MSECS, CHECKING FOR DISPLAY TIMEOUTS, /EYEMOVEMENTS, AND SUBJECT RESPONSES. /RESFRESHES ACTIVE DISPLAYS FIRST. / LMODE RUN, JMP SYNC /WAIT FOR CLOCK / /FIRST DISPLAY POINT ON CHAN 2 CORRESP- /ONDING TO EYE-POSN COORDINATES SAM 15 SCR 1 COM ADA I C4400, 4400 STC 1 SAM 17 SCR 1 DIS 1 /REFRESH FIX,MASK,AND TEST DISPLAYS IF /CURRENTLY ACTIVE LDA CWD1 ROR 4 /BIT 8:FIX DOTS APO JMP SHOFIX LDA CWD1 ROR 5 /BIT 7:MASK STRG APO I JMP .+4 SET I 11 ADMASK, 0 /AD-1/2 MASK STR JMP DISPLA LDA CWD1 ROL 6 /BIT 6:TEST STR APO I JMP .+4 SET I 11 BUFFER+5777 /AD-1/2 STRING JMP DISPLA /DISPLAYS REFRESHED:CHECK FOR SACCADE LDF 7 SAM 10 /=D(X+Y)/DT COM ADA I PTHRES, 0 /+GOING THRESH APO JMP MOVE /SACCADE LEFT/UP SAM 10 COM ADA I MTHRES, 0 /-GOING APO JMP CHRESP /NO SACCADE /EYEMOVEMENT HAS OCCURRED: IGNORE UNLESS /CWD1, BIT 2=1. IF SO, SET PHASE /TERMINATION CODE="M" AND END PHASE IF /CWD1 BIT 3=0 OR END TRIAL IF=1 / MOVE, LDA CWD1 ROL 2 APO I JMP TIME LDA I 315 /"M" STA I 14 /SAVE TERM CODE LDA CWD1 /PHASE CONTROL 1 ROL 3 /BIT 3 ENDPHS, APO JMP STOP /=1:END TRIAL LDA TIMER STA I 12 /SAVE DURATION & JMP NEXPHS /GO TO NEXT PHAS / CHRESP, SAM 13 /-SUM RESP VOLTS ADA I RTHRES, 500 /RESP THRESH APO I JMP TIME /TEMPORAL UPDATE /RESPONSE BUTTON DOWN: IGNORE IF IRI /(RTIMER) LESS THAN -"MINLAT" MSECS - /OR IF LAST SAMPLED RESPONSE VALUE WAS /ALSO ABOVE THRESHOLD: /PREVENTS SINGLE RESP MULTI-REGISTERING. LDA I RESP0, 0 /PREVIOUS VALUE ADD RTHRES APO JMP TIME /NO THRESH CROSS LDA I MINLAT, -226 ADD RTIMER APO JMP TIME /TOO SOON:IGNORE / /BONAFIDE RESP: COUNT IF CWD1 BIT 4=1; /IF SO,SAMPLE RESP VALUE (AD 11 & 12) TO /DETERMINE WHETHER ITS L OR R RESP, IN /WHICH CASE PHASE TERM. CODE ="L" OR "R" /CWD1, BIT 5: END TRIAL(=1) OR GO TO /NEXT PHASE(=0) / CLR STC RTIMER /RESET IRI TIMER ADD CWD1 ROL 4 APO I JMP TIME /NO RESP ALLOWED SAM 13 STC RESP0 SAM 11 /RESP 1:AD11>R0? COM ADD RTHRES APO I JMP .+4 LDA I 314 /LEFT RESP="L" JMP .+3 LDA I 322 /RIGHT RESP="R" STA I 14 /SAVE TERM.CODE LDA CWD1 ROL 5 /BIT 5 JMP ENDPHS /EITHER EYEMOVEMENT "M" OR RESP "1","2" /OR CUMULATIVE TIMEOUT HAS OCCURRED /AND TRIAL ENDS IMMEDIATELY / STOP, LDA TIMER STA I 12 /SAVE PHASE TIME LDA PHASES COM ADD PHASE /=-NO.PHASE LEFT AZE I JMP FINISH /LAST PHASE /FILL DATA FOR REMAINING PHASES WITH /"*" TERM. CODE AND 0000 DURATION STC 1 LDA I 252 /"*" STA I 14 CLR STA I 12 XSK I 1 JMP .-6 JMP FINISH / /ARRIVES HERE ON CLOCK OVERFLOW INTER.: /INCREMENT TIMERS AND SAMPLE A-D CHANS & /CHECK FOR POSSIBLE TIMEOUTS / TIME, SAM 13 STC RESP0 /SAVE RESP SIG. XSK 16 /ROOM LEFT FOR SKP /SIGNAL STORAGE? JMP TIMER-3 /NO:SKIP IT ADD CWD1 APO I /CWD1 BIT 0=1 JMP TIMER-3 /NO SAMPLE /SAMPLE X (AD15) AND Y (AD17) SAM 15 /X-SAVED STA I 17 /16013-16777 SAM 17 STA I 16 /17013-17777 LDA I 1 ADM I /INCR.PHASE TIME TIMER, 0 LDA I 1 ADM I CTIMER, 0 /INCR CUM TIMER LDA I RTIMER, 0 ADD MSECS /INCR IRI TIMER APO I /UNLESS<0 STC RTIMER /CHECK FOR TIMEOUT: CWD2=TIMER (CWD1 BIT /11=0) OR CWD2=CTIMER (=1) LDA 7 /TIMER OR CTIMER SAE 15 /CWD2 JMP RUN /CONTINUE PHASE /TIMEOUT HAS OCCURRED: SAVE PHASE TERM. /CODE="T" ONLY IF CWD1 BIT 1=1(IGNORE=0) /IF CUMUL (BIT 11=1) OR PHASE (=0) /TIMEOUT, END PHASE OR TRIAL. LDA CWD1 ROL 1 APO I JMP RUN /CONTINUE PHASE LDA I 324 /"T" STA I 14 /CUMULATIVE TIMEOUT:STOP; PHASE TIMEOUT, /ADVANCE TO NEXT PHASE LDA CWD1 ROR 1 JMP ENDPHS / /END OF DISPLAY: DISPLAY MASK STRING & /FIX DOTS FOR "PTMASK" TIME UNITS /WHILE CONTINUING TO SAMPLE & STORE X&Y / FINISH, LDA I PTMASK, 0 AZE I JMP ENDTRL COM STC 7 SET 11 ADMASK JMP SYNC JMP SHOFIX JMP DISPLA XSK 16 SKP JMP NOMORE /NO MORE ROOM LDF 7 SAM 15 STA I 17 SAM 17 STA I 16 NOMORE, XSK I 7 JMP PTMASK+5 / /END OF TRIAL: /DISPLAY EACH SAMPLED SIGNAL ON CHANNEL /2 WHILE SW 1(X),2(Y),OR 3(D) UP. EACH /HAS VERTICAL LINES MARKING PHASE /BOUNDARIES: BELOW EACH BOUNDARY IS /DESIGNATION OF TERMINATION: "T"=TIMEOUT /"M"=EYEMOVEMENT "L"=L RESP,"R"=R RESP. / ENDTRL, CLR ESF /RESET 1/2-SIZE ADD XM1 /AD-1 X=2012 STC POINT0 ADD SNS1 STC SNSGRP /SW 1 CONTROLS X ADD 17 STC ENDGRP /END X-FILE SET I 11 PATRN+2056 /"X" PWS JMP GRAPH /SHOW GRAPH LDA I SNS 2 STC SNSGRP /SW 2 CONTROLS Y ADD YM1 /AD-1 Y=3012 STC POINT0 ADD 16 STC ENDGRP /END Y FILE SET I 11 PATRN+2060 /"Y" PWS JMP GRAPH /SHOW GRAPH / /TYPE OUT AND STORE (SW 4 UP) /TRIAL DATA: TERM. CODE & DURATION FOR /EACH PHASE OF TRIAL AND COMPLETE X AND /Y GRAPHS. STORED ON FOUR SUCCESSIVE /TAPE BLOCKS: 1ST & 2ND=X GRAPH FILE, /3RD & 4TH Y GRAPH FILE; 1ST 11 WORDS /OF X-FILE=PHASE TERM. CODES, 1ST 11 OF /Y ARE PHASE DURATIONS. / LDA PHASES COM STC 1 SET I 15 3777 /AD-1 TERM CODES SET I 12 2777 /AD-1 DURATIONS LDF 7 DATOUT, LDA I 15 JMP TYPE /TERM CODE ADD C275 JMP TYPE /"=" LDA I 12 JMP DECPUT /DURATION XSK I 1 JMP DATOUT /WRITE OUT THE FOUR BLOCKS ONTO THE DATA /FILE (ONLY IF SW 4 UP) SNS 4 JMP NEXTRL /NO FILE: DONE LDA I 4000 STC MBLK BLKOUT, LDA I C1, 1 ADM I OUTBLK, 0 /NEXT TAPE BLOCK SAE I 1000 SKP ERROR2, JMP ERROR /TAPE FULL! ADA I MBLK, 0 /SET MBLK STC .+2 WRC U /WRITE IT UNIT 1 0 LDA I 1000 ADM MBLK APO />0:DONE 4 BLKS JMP BLKOUT JMP NEXTRL /DONE! / /SUBR SHOW GRAPH: MUST ENTER AC=0 / GRAPH, ADD STC .+2 SNSGRP, HLT /SNS N HLT /RJ WHEN SW DOWN SET I 17 POINT0, 0 / /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 LDF 7 LDA I 17 SCR 1 /SCALE DIS I 10 LDA 17 SAE I ENDGRP, 0 /END OF GRAPH? JMP .-7 /FULL GRAPH REFRESHED: SHOW VERT. LINES /AT PHASE BOUNDARIES SET I 14 3777 /AD-1 TERM CODES SET I 15 CONTRL-1 /AD-1 CONTRL WDS LDA PHASES COM STC 2 SET I 10 C4000, 4000 /H.C=0,CHAN=2 PLINE, LDF 7 LDA I 14 BCL I 7700 /STRIP TO 6 BITS ROL 1 ADD ADPWS STC 3 /PW FOR BOUNDARY LDA I 15 XSK I 15 APO I /PHASE SAMPLED? JMP NXLINE /NO:SKIP IT LDA 14 /PHASE DURATION ADM 10 LDA I -40 SET 1 10 LDF 5 DSC 3 DSC I 3 /DESIGNATION SET I 3 -200 CLR DIS 10 ADD C1 XSK I 3 JMP .-3 /VERT. LINE NXLINE, XSK I 2 JMP PLINE JMP SNSGRP /REFRESH DONE / /END GRAPH SUBROUTINE / /EACH TRIAL BEGINS HERE / NEXTRL, JMP CRLF /CR,LF SET I 17 /SET PTRS FOR XM1, 2012 /AD-1 X GRAPH SET I 16 /AND Y GRAPH YM1, 3012 SET I 15 /FOR PHASE CONTR CONTRL-1 /WORD PTR SET I 14 /AND TRIAL DATA: 3777 /TERM CODES SET I 12 2777 /AND DURATIONS STC RTIMER /CLEAR IRI TIMER STC CTIMER /" CUM. TIMER STC RESP0 /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 STC ADMASK /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 LDA I 1 ADM I NTRIAL, 0 JMP DECPUT /TYPE TRIAL NO. STC PHASE / /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 4 4000 /CHAN 2 CLR STC BELFLG CALIBR, SAM 0 APO COM STC PTHRES /+GOING THRESH SAM 4 APO I COM STC MTHRES /-GOING THRESH SNS 5 JMP CLOCK /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 SAM 10 DIS I 4 CLR SNS 0 JMP .+4 RSW BCL I 7700 ADD XFIX0 STC XFIX SNS1, SNS 1 JMP .+4 RSW BCL I 7700 ADD Y0 STC Y JMP SHOFIX /PLOT (X-SIGNAL,Y-SIGNAL) ON CHAN 2 SAM 15 SCR 1 COM ADD C4400 STC 5 SAM 17 SCR 1 DIS 5 / /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 SAM 10 COM ADD PTHRES APO JMP BELL /EYEMOVEMENT SAM 10 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 100*"MSECS" COUNTS / 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 LINC LMODE JMP /RJ PMODE C2100, 2100 LMODE / /CONTROL ARRIVES HERE BEFORE STARTING /1ST PHASE: INITIALIZE CLOCK / CLOCK, JMP SYNC0 LDA I XFIX0, 376 /FIXATION H.C. STC XFIX LDA I Y0, 0 /DISPLAY V.C. STC Y / /SECTION HANDLES TRANSITION TO NEW PHASE / NEXPHS, LDA I PHASE, 0 SAE PHASES SKP JMP FINISH /LAST PHASE:DONE ADD C1 STC PHASE /NEW PHASE NO. STC TIMER /CLEAR PHASE TMR LDA I 15 STA I /GET 1ST CWD1, 0 /PHASE CONTRL WD /PHASE CONTROL WORDS FORMAT: 1ST WORD /(=CWD1): BIT 0: SAMPLE AD"S ONLY IF=1; /BIT 1: PHASE ADVANCE ON TIMEOUT ""=1; /BIT 2:DETECT SACCADE IF=1; BIT 3: END /TRIAL(=1) OR ADVANCE PHASE(=0) ON SACC; /BIT 4: DETECT RESP IF=1; BIT 5: END /TRIAL(=1) OR ADVANCE PHASE(=0) ON RESP; /BIT 6: DISPLAY STRING 1; BIT 7: DISPLAY /STRING 2; BIT 8: DISPLAY FIXATION DOTS /(IF=1); BIT 9: UNUSED; BIT 10: CUMUL. /TIMER CLEARED(=0) OR KEPT RUNNING(=1); /BIT 11: TIMEOUT ON PHASE(=0) OR /CUMULATIVE(=1) TIMER. / WORD 2: TIME UNITS TO TIMEOUT-BIT 1=1 ROR 2 APO /BIT 10=0=CLEAR JMP .+3 /CUMUL. TIMER CLR STC CTIMER LDA 15 XSK I 15 /PTR 2ND WORD ROR 1 APO /BIT 11:TIMEOUT JMP .+4 SET I 7 TIMER /ON PHASE(=0)OR JMP .+3 SET I 7 CTIMER /CUMUL.TIMER JMP RUN /START TRIAL / /SUBR INPUTS NEXT (6-BIT) CHAR FROM /STRING FILE, BUFFERED VIA 6 INTO /13400-13777 / NEXCHR, DJR LDF 5 LDA 6 AZE JMP ROOM /END OF STRING FILE BUFFER: READ IN NEXT /TBLK FROM STRING FILE & RESET PTR 6. ADD C1 ADM I STBLK, 0 STC .+2 RDC 0 SET I 6 7377 JMP .+1 /USE UP DJR ROOM, LDH I 6 JMP / /SECTION HANDLES END OF BLOCK: WRITES /OUT FINAL BUFFER CONTENTS & TYPES MESG. / ENDBLK, SET I 11 FINLAB+5777 JMP MESSAG /E-O-F MESSAGE /IF OUTPUT FILE (SW 4 UP) TYPE OUT /LAST TBLK USED SNS 4 JMP NOPUT JMP MESSAG /"LAST TBLK=" ADD OUTBLK ADA I -1 JMP DECPUT /TYPE LAST TBLK JMP END NOPUT, SET I 11 ENDLAB+5777 JMP MESSAG /"NO OUTPUT" 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 /"PTMASK" - NUMBER OF "MSEC" UNITS OF / MASK STRING AFTER DISPLAY / /WRITE OUT PARAMETER HEADER ON 1ST BLOCK /OF TAPE FILE / START, SET I 12 /PTR TO DATA 3777 LDA I PROGID, 202 LDF 7 STA I 12 SET I 11 /SET PTR TO PARAMS+5777 /PARAMETER LABEL JMP MESSAG /TYPE PAR. LABEL JMP GET /DEC. INPUT TTY LDF 7 STA I 12 JMP MESSAG JMP GET LDF 7 STA I 12 JMP MESSAG JMP GET ADA I C7000, 7000 /MBLK=7 STA STBLK /STRINGS FILE LDF 7 STA I 12 /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 7377 /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 LDF 7 STA I 12 JMP MESSAG JMP GET STA PTMASK /DUR. OF POSTMSK LDF 7 STA I 12 JMP MESSAG JMP GET STA I PHASES, 0 LDF 7 STA I 12 LDA PHASES COM STC 1 STC PHASE / /NOW ACCEPT PHASE CONTROL WORDS FOR /BLOCK OF TRIALS: ONE PAIR OF WORDS PER /PHASE: 1ST WORD=CWD1 WHICH IS ENTERED /AS 1-CHAR ANSWERS TO 12 QUESTIONS (THE /12 CONTROL BITS) - EACH "Y" SETS THE /CORRESPONDING BIT ("Y " ECHOED), EACH /NON-"Y" (ECHOES "N") CLEARS IT. 2ND /WORD ACCEPTED AS DECIMAL INTEGER=TIMOUT /THESE 2*PHASES+1 WORDS WRITTEN ONTO /DATA FILE HEADER. / SET I 15 CONTRL-1 JMP MESSAG /"ENTER..." INPHAS, SET I 11 PHSLAB+5777 /AD-1/2 IN LDF JMP MESSAG /"PHASE" STC W SET I 2 -14 ADD C1 ADM PHASE JMP DECPUT /PHASE NO. INBIT, JMP MESSAG /NEXT QUESTION / /ACCEPT SINGLE TTY CHAR: IF="Y" ECHO /"Y" AND SET CONTROL BIT, ELSE ECHO "N" / KST JMP .-1 IOB 6036 /KRB SAE I 331 /="Y"? JMP NOBIT JMP TYPE ADD C1 ADM I W, 0 XSK I 2 SKP JMP HAVEW /CONTROL WORD IN ROL 1 STC W JMP INBIT NOBIT, LDA I 316 /"N" JMP TYPE ADD W JMP W+1 HAVEW, STA I 15 /SAVE CWD1 LDF 7 STA I 12 JMP MESSAG JMP GET /GET TIMEOUT WD STA I 15 LDF 7 STA I 12 XSK I 1 /ANOTHER PHASE? JMP INPHAS /PARAMETERS & CONTROL WORDS IN. WRITE /OUT AS HEADER IF SW 4 UP AS 1ST BLOCK SNS 4 JMP NOFILE LDA OUTBLK ADA I 4000 /MBLK=4 STC .+2 WRC U 0 ADD C1 ADM OUTBLK /TYPE MESSAGE "SW 5 UP FOR /CALIB.", THEN HALT AND START BLOCK / NOFILE, JMP MESSAG HLT STC NTRIAL JMP NEXTRL / /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, /GENERATING 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, 0 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 ADD NUM 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 SIGN&LEADING /BLANKS,1-4 DECIMAL DIGITS, FOLLOWED BY /LINE FEED. ILLEGAL CHARACTER OR RUBOUT /RESTARTS INPUT. INITIAL "=" & ALL /NUMERIC CHARS ECHOED. RETURNED IN AC. / GET, LDA 0 STC RJGET STC NUM SET I 7 -5 /MAX 4 DIGITS STC SIGN /SIGN FLAG LDA I C275, 275 JMP TYPE /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 NUM MUL I 12 /DEC.SHITF LEFT ADA I DIGIT, 0 STC NUM 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 NUM RJGET, HLT /MAINLINE RETURN LDA I NUM, 0 COM ENDEND, JMP RJGET / /END GET SUBR / /PHASE CONTROL WORDS: UP TO 10 PHASES / CONTRL, 0 *.+23 /END LIF PROGRAM / /FOLLOWING 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 "PTMASK" 0043 TEXT "PHASES" 0040 TEXT "ENTER CONTROL WORDS:" 4300 PHSLAB, 4343 TEXT "PHASE" TEXT " SAMPLE?" 0040 TEXT "TIMEOUT?" 0040 TEXT "DETECT SAC?" TEXT " STOP?" 0040 TEXT "DETECT RESP?" 0040 TEXT "STOP?" 4340 TEXT "STRING?" TEXT " MASK?" 0040 TEXT "FIX DOTS?" TEXT " DUMMY?" TEXT " KEEP C.T. RUNNING?" 4340 TEXT " CUMUL TIMEOUT?" TEXT " TIMEOUT:" 4343 TEXT "SW 5 UP FOR CALIB." 4300 / FINLAB, 4343 TEXT "END OF BLOCK:" TEXT " END OUTPUT TBLK=" ENDLAB, TEXT " NO OUTPUT FILE" / 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