Directory of image this file is from
This file as a plain text file
*20 /NOT TOTALLY DEBUGGED YET!!! / /WHOLREP1 PROGRAM: LIKE PARTREP2 /PROGRAM IN DESIGN, WITH THE SAME INPUT /PARAMETERS, BUT THE FOLLOWING DIFFEREN: /(1) USES SOFTWARE DIFFERENTIATION /INDPEPDNENTLY ON X AND Y SIGNALS, INDEP/CALIBRATED THRESHOLD PAIRS. /(2) ALLOWS UP TO 12 SECONDS EXPOSURE /DURATION (TOTAL) WITH POST-EXPOSURE /GRAPHS IN 4 SECTIONS EACH, ADVANCED BY /CTRL/C TELETYPE KEY. /(3) ALLOWS INPUT FOR 8 CHARACTERS+CODE. / 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 ADD XSAMP STA I XLAST, 0 /SAVE FOR DIFF. SAM 15 STC XSAMP /X ADD YSAMP STA I YLAST, 0 /SAVE FOR DIFF. SAM 17 STC YSAMP ADD DATLDF AZE I /=0 IF INACTIVE JMP /RETURN LDA 0 STC RJSAMP /SAVE RJ JMP SETLDF /SETS LDF & 17 LDA I XSAMP, 0 STA I 17 /SAVE RECORD JMP SETLDF LDA I YSAMP, 0 STA I 17 /SAVE RECORD RJSAMP, HLT / PMODE M2, -2 LMODE / /SUBR CHECKS TO SEE WHETHER 17 AT END OF /CURRENT LDF: IF SO, ADVANCES LDF /ALWAYS EXECUTES CURRENT LDF. / SETLDF, DJR XSK 17 JMP DATLDF LDA I 1 ADM DATLDF JMP .+1 /USE UP DJR DATLDF, HLT /PRESET LDF N CLR JMP /RETURN / /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 ADM I TOTDUR, 0 APO JMP MOVE-1 /TIMEOUT SAM 13 ADD RTHRES APO I /RESP BUTTON? JMP LDA I -1 /YES:END CODE=-1 JMP MOVE / /SUBR CHECKS FOR SACCADE: RETURNS WITH /AC=0 (NO SACCADE), AC=1 (SACCADE LEFT), /AC=2 (SACCADE RIGHT), AC=3 (SACCADE UP) /OR AC=4 (SACCADE DOWN). / SACCAD, LDA 0 STC RJSAC ADD XSAMP COM ADD XLAST APO I JMP CHRITE /XSAMP<XLAST ADA I DXL, 0 /LEFT THRESH. APO JMP SACL /SACCADE LEFT! JMP CHUP /NO HORIZ.SAC. CHRITE, COM ADA I DXR, 0 /RIGHT THRESH. APO JMP SACR /SACCADE RIGHT! CHUP, LDA YSAMP COM ADD YLAST APO I JMP CHDOWN /YSAMP<YLAST ADA I DYU, 0 /UP THRESH. APO JMP SACU /SACCADE UP! JMP NOSAC /NO VERT. SAC. CHDOWN, COM ADA I DYD, 0 /DOWN THRESH. APO JMP SACD /SACCADE DOWN! NOSAC, CLR RJSAC, HLT /RETURN SACL, LDA I 1 JMP RJSAC SACR, LDA I 2 JMP RJSAC SACU, LDA I 3 JMP RJSAC SACD, LDA I 4 JMP RJSAC / /END OF TRIAL: /DISPLAY EACH SAMPLED SIGNAL ON CHANNEL /2: SW 1,2,3,4 CONTROL DISPLAY OF X,DX, /Y,DY SIGNALS UNTIL ALL DOWN. EACH GRAPH /MAY TAKE SEVERAL SCOPE PASSES: SW 0 UP& /DOWN EFFECTS TRANSITION. VERTICAL LINE /MARKS END OF STIM EXPOSURE,BUTTON-PRESS /OR EYEMOVEMENT. / TDONE, LDA I 2000 STC POINT0 /CURRENT PLOT ADD LDF3 STC LDF0 /CURRENT LDF GRAPH, SNS I 0 JMP .-1 SET I 1 4777 /CHAN 2 SET I 17 POINT0, 0 LDA I LDF0, 0 STC DATLDF GRX, SNS 1 /SW 1 UP: X JMP GRDX LDA I CLR STC GROP /NOT DIFFERENTAL GRPT, JMP SETLDF ADD XLAST GROP, HLT /SET=CLR OR COM STC YLAST /TEMP LDA I 17 SAE I 4000 /4000=END DISPLA SKP JMP VLINE SAE I 5000 /5000=END GRAPH SKP JMP GRAPH STA XLAST ADD YLAST SCR 1 DIS I 1 JMP SETLDF /SKIP INTER- LDA I 17 /LEAVED RECORD XSK 1 /END SCOPE? JMP GRPT SNS 0 /YES: REFRESH JMP GRAPH /SW 0 UP&DOWN LDA 17 STC POINT0 /NEW PLOT ADD DATLDF STC LDF0 JMP GRAPH VLINE, CLR DIS 1 ADD C1 SAE I 40 JMP .-4 JMP GRPT GRDX, SNS 2 /SW 2 UP: DX JMP GRY LDA I COM JMP GRPT-1 /SET DIFF. MODE GRY, LDA I LDF 3 /IF Y OR DY PLOT SAE /THEN MUST USE LDF0 /INTERLEAVED JMP .+3 /RECORD: ADVANCE JMP SETLDF /PTR IF AT 1ST LDA I 17 /PART OF GRAPH SNS I 3 /SW 3 UP: Y JMP GRX+2 GRDY, SNS I 4 /SW 4 UP: DY JMP GRDX+2 / /GRAPHS SHOWN. NOW TYPE OUT SYMBOL FOR /END-CODE: "/"=SUBJECT TERMINATED TRIAL /WITH BUTTON-PRESS; "0"=TIMEOUT; "1","2" /"3","4"=SACCADE LEFT,RIGHT,UP,DOWN. /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 / /WHENEVER SW 5 UP AT BEGINNING OF TRIAL, /CALIBRATION ROUTINE RUN. 4 VELOCITY /THRESHOLDS DETERMINED FOR SACCADES: /WORK ON HORIZONTAL COMPONENTS WHEN SW 0 /DOWN & VERTICAL WHEN SW 0 UP. /SW 1 MOVES FIXATION X LEFT & RIGHT, /BELL RINGING WHEN APPROPRIATE VELOCITY /THRESH. CROSSED (UP & DOWN IF SW 0 UP). /ON CHAN 2 EACH PAIR OF THRESHOLDS /SHOWN AS HORIZ LINES, WITH CONTINUOUS /PLOT OF CORRESPONDING VELOCITY & POSIT. /ANALOG KNOBS 0,4,1,5 SET THE THRESHS. /FOR SACCADES LEFT,RIGHT,UP,DOWN. / STC DATLDF /DISABLE STORAGE SET I 4 4000 /CHAN 2 JMP SYNC0 CLR STC BELFLG CALIBR, SAM 0 APO COM STC DXL /LEFT VEL.THRESH SAM 4 APO COM STC DXR /RIGHT SAM 1 APO COM STC DYU /UP SAM 5 APO COM STC DYD /DOWN SNS 5 JMP READY /START TRIAL SET I 3 -40 SET I 2 4000 /CHAN 2 SNS I 0 /HOR OR VERT? JMP CVERT LDA XLAST COM ADD XSAMP DIS I 4 LDA DXL DIS 2 LDA DXR COM DIS I 2 XSK I 3 JMP .-10 LDA Y0 STC Y RSW BCL I 7700 SNS 1 COM ADD XFIX0 STC XFIX ADD C2000 STA DYU /DISABLE VERT. STC DYD /THRESHOLDS JMP TRIGR CVERT, LDA YLAST COM ADD YSAMP DIS I 4 LDA DYU DIS 2 LDA DYD COM DIS I 2 XSK I 3 JMP .-10 RSW BCL I 7700 SNS 1 COM ADD Y0 STC Y ADD C2000 STA DXL /TEMP. DISABLE STC DXR /HORIZ. THRESHS. TRIGR, JMP SHOFIX /"X" AT (XFIX,Y) JMP SAMPLE JMP DISPOS / /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 /CHECK MOVEMENT 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 /EVERY MSEC FOR INTERRUPTS AND 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 /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 LDA I LDF3, LDF 3 STC DATLDF /ENABLE STORAGE SET I 17 C2000, 2000 / /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 .+3 CLR ATR JMP P4 /ARRIVES HERE EARLY ON SACCADE OR SELF- /TERMINATION OR TIMEOUT / CLR /HERE ON TIMEOUT MOVE, STC ENDCOD /SAVE END CODE ATR /SPEAKER OFF JMP SETLDF LDA I 4000 /INSERT PAIR OF STA I 17 /4000"S TO MARK JMP SETLDF LDA I 4000 /END OF STIM DIS STA I 17 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 SETLDF LDA I C5000, 5000 STA I 17 /PAIR OF 5000"S JMP SETLDF LDA I 5000 STA I 17 /MARK END OF FIL 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 /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 ADD C5000 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 LIF 0 /EXECUTED IN JMP 20 /LIF 0 RJGET, HLT /MAINLINE RJ / SEGMNT 0 *20 STC NUM1 SET I 7 -5 /MAX 4 DIGITS STC SIGN /SIGN FLAG LDA I C275, 275 JMP TYPE1 /JMP TYPE IN LIF 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 TYPE1 /"?" JMP 23 /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 TYPE1 /ECHO ADD DIGIT HLT /RJ:DIGIT IN AC DONE, LDA I SIGN, 0 /CHECK FOR - AZE JMP .+4 ADD NUM1 LIF 2 /RETURN TO LIF 2 JMP RJGET LDA I NUM1, 0 COM JMP .-5 / /END LIF 0 PART OF GET SUBR / TYPE1, PDP PMODE TLS TSF JMP .-1 CLA LINC LMODE JMP / /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