*20 / / / / PSTH - POST STIMULUS TIME HISTOGRAM / /D.J. WOODWARD, DEPT. PHYSIOL. /U. ROCHESTER, ROCH. N.Y.,14620 /A PROGRAM TO PLOT EVENTS /AFTER AN INITIAL TRIGGER / / /SINGLE EVENTS AND BURSTS /ARE PLOTTED IN SEPARATE 512 POINT /HISTOGRAMS / /1 MSEC PER BIN IS THE UNIT OF TIME /FOR THE SHORT TIME HISTOGRAMS / /2 RAISED TO THE POWER INDICATED /BY (SCALE) IS THE TIME INTERVAL OF THE /LONG HISTOGRAM / SEGMNT 0 *20 JMP START /STARTING ADDR 20 LEAVES PROGRAMMED /CONSTANTS IN OPERATION /TAPE DATA NUMBER MUST BE KEYED IN JMP DATSEL /LOC 21 /STARTS DISPLAY WITHOUT ALTERING /CONSTANTS LIF 4 JMP PRINT /LOC /22 STARTS DATA PRINTOUT RSW STC DATANO /LOC 24 /PUTS LSW INTO DATANO HLT HLT LIF 4 JMP WRITET /WRITE DATA ONTO TAPE LIF 4 JMP READT /READ DATA /FROM TAPE HLT / SEGMNT 0 *40 0 NOP STC ACSAV ADD 40 BSE I/ MAKE JUMP ADDRESS 6000 STC RETRN1 ADD 0 STC ZSAVE IOB PMODE RIB LMODE ROL 2 BCL I 7740 BSE I LDF 0 STC DFIELD IOB PMODE RIB LMODE ROR 3 BCL I 7740 BSE I LIF 0 STC IFIELD JMP SRVRT RETURN,LDA I ZSAVE, 0 STC 0 LDA I ACSAV,0 IFIELD, 0 DFIELD, 0 DJR IOB PMODE ION LMODE RETRN1,0 /START /HERE /CONSTRUCT SCALE FOR LONG /DURATION HISTOGRAMS START, CLR LDA I 40 ESF CLR ADD SCALE ADA I 340 /MAKE SCALE INSTRUCTION STA SCL1 STC SCL2 /CLEAR COUNTERS SET I 4 TEMP1-1 SET I 5 TEMP1-DATANO STA I 4 XSK I 5 JMP .-2 / /CLEAR BINS IMEMRY,LDA I 3777 STC INIT2 PDP PMODE KCC TCF DCA I INIT2 ISZ INIT2 JMP .-2 SKP INIT2,0 LINC LMODE /INITIALIZE THE CLOCK CLKIN,CLR IOB PMODE CLLR LMODE IOB PMODE CLAB LMODE IOB PMODE CLEN LMODE LDA I 100 IOB PMODE CLLR LMODE /STOP CLOCK, CLEAR COUNTER CLR IOB PMODE CLAB LMODE CLR /ENABLE ONLY THE TRIG INTERRUPT /OTHER INTERRUPTS ARE ON AFTER /FIRST TRIGGER LDA I 403 IOB PMODE CLEN LMODE IOB 6135 CLR DJR JMP DATSEL-2 /ENABLE INTERRUPTS. / /ENTER SERVICE ROUTINE HERE / SRVRT,CLR IOB 6135 STA I CLOCK,0 ROL I 1 LZE /IF BIT FOR OVERFLOW SET JMP OVERFL /THEN GO TO OVERFLOW S1,LDA CLOCK SCR I 2 LZE /IS IT TRIG JMP TRIG S2,LDA CLOCK SCR I 4 LZE /IS IT STIM JMP STIM S3,LDA CLOCK SCR I 6/IS IT EVENT LZE JMP EVENT JMP RETURN / /TO HERE IF TRIGGERED / TRIG,CLR ADD SWEEPS AZE JMP TRIG4 /START CLOCK AT 1KHZ,MODE 3 LDA I 1 STC SWEEPS LDA I 4300 /START CLOCK AT ZERO MSEC IOB PMODE CLLR LMODE / ENABLE ALL INTERRUPTS LDA I 177 IOB PMODE CLEN LMODE JMP S2 / SUM TOTAL TIME TRIG4, IOB 6136 STA TEMP1 LAM TTIME1 STC ZERO ADD OFLIND LAM TTIME2 CLR ADD CFIND AZE I JMP TRIG1+3 /ROUTINE TO FINISH ANALYSIS WHEN AT END /OF SWEEP LDA I JMP TRIG1 /GO TO COMPLETE CF ANALYSIS AND RETURN STC E14-2 JMP E20 TRIG1,LDA I NOP STC E14-2 CLR STC ARTFCT STC OFLIND STC TEMP1 STC OFLIN2 STC TEMP2 /HERE TO INCREMENT SWEEP COUNTER /AND CHECK IF MAX TRIG2,LDA I 1 ADM SWEEPS SAE COUNT /RETURN TO SERVICE ROUTINE /IF SWEEPS NOT MAXIMUM JMP S2 /HERE IF SWEEPS DONE /TURN OFF CLOCK CLR IOB PMODE CLLR LMODE /DISABLE INTERRUPTS IOB PMODE CLEN LMODE JMP S2 / /STIMULUS SUBROUTINE STIM, IOB PMODE 6136 LMODE /SUPPRESS EVENTS FOR TWO MSEC ADA I ART6, 1 COM STC ARTFCT LDA I 1 STC ARTIND JMP S3 / /OVERFLOW ROUTINE OVERFL, LDA CLOCK BCL I 7776 AZE JMP S2 LDA I 1 ADM OFLIND CLR JMP S1 /HERE FOR EVENT ROUTINE EVENT,IOB 6136 STC TEMP1 /GET TIME /CHECK FOR ARTIFACT LDA I ARTIND, 0 AZE I JMP EV LDA TEMP1 ADA I ARTFCT, 0 APO JMP RETURN CLR STC ARTIND EV,LDF 2/DATA FIELD 2 FOR MF SPIKES CLR STC ARTIND ADD OFLIND AZE JMP E1 /SKIP IF OFLIND IS ZERO ADD TEMP1 BCL I 777 AZE JMP E1 /GO TO E1 IF GREATER LDA /THAN 512 MSEC TEMP1 ADA I 2000 STC MF1 /MAKE ADDRESS OF MF1 LDA I 1 ADM MF1,0 /INCR MF1 BIN CLR LDA I 1 LAM SPCNT1 /INC MF1 COUNTER STC ZERO LAM SPCNT2 E1,CLR ADD TEMP1 ROR 14 LDA OFLIND SCL1,ROR 2 AZE JMP E0 QAC ROL 1 QLZ I JMP .+3 BSE I 0001 STA I TEMP3,0 BCL I 777 AZE JMP E0 LDA TEMP3 ADA I 3000 /MAKE ADDRESS FOR MF2 STC MF2 LDA I 1 ADM MF2,0 /INC MF2 BIN CLR LDA I 1 LAM SPCNT3 /INC MF2 COUNTER STC ZERO LAM SPCNT4 /INC TOTAL SPIKE COUNTER E0, CLR LDA I 1 LAM SPCNT5 /INC TOTAL SPIKE COUNTER STC ZERO LAM SPCNT6 / /CHECK IF FIRST SPIKE /IS CLOSE TO ZERO MSEC LDA OFLIND AZE JMP E13 LDA TEMP1 APO JMP E13 ADA SHTINT APO JMP E7 /START DIFFERENCE ANALYSIS / /FORM 24 BIT DIFFERENCE DELTA / (OFLIND + TEMP1) /-(OFLIN2 + TEMP2) /------------------- / (DELTA2 + DELTA) E13, CLR LDA TEMP1 STC DELTA ADD TEMP2 COM LAM DELTA STC ZERO ADD OFLIND STA I DELTA2,0 LDA OFLIN2 COM LAM DELTA2 STC ZERO LAM DELTA STC ZERO LAM DELTA2 AZE JMP E3 LDA DELTA APO JMP E3 ADA SHTINT APO I JMP E3 /TO E3 FDELTA GREATER THAN /SHORT INTERVAL IN MSEC LDA CFIND /CHECK CF IND AZE JMP E10 / /HERE IF CF FIRST DETECTED / LDA I 1 ADM BSTNO /HERE IF START OF CF BURST E15, LDF 3 LDA OFLIN2 AZE JMP E5 LDA TEMP2 /START INC OF CF1 BIN BCL I 777 AZE JMP E5 /SKIP IF TEMP2 GREATER THAN 512 / /BEGIN INCR OF CF1 BIN LDA TEMP2 ADA I 2000 STC CF1 LDA I 1 ADM / ADD TO MEMORY OF CF1 BIN CF1,0 CLR LDA I 1 LAM CFCNT1 STC ZERO LAM CFCNT2 /BEGIN INCR OF CF2 BIN E5, CLR ADD TEMP2 ROR 14 LDA OFLIN2 SCL2,ROR 2 AZE JMP E6 QAC ROL 1 QLZ I JMP .+3 BSE I 0001 STA I TEMP4,0 BCL I 777 AZE JMP E6 LDA TEMP4 ADA I 3000 STC CF2 CLR LDA I 1 ADM CF2,0 /INC CF2 BINS CLR LDA I 1 LAM CFCNT3 STC ZERO LAM CFCNT4 /INCR TOTAL CF COUNT E6, CLR LDA I 1 LAM CFCNT5 STC ZERO LAM CFCNT6 CLR NOP NOP NOP LDA I 1 STC CFIND /TURN ON CF INDICATOR JMP E7 /INTERVAL WAS SHORT SO /GO TO E7 E3,CLR /HERE IF DELTA MORE THAN SHTINT ADD CFIND AZE I JMP E7 /OUT IF CFIND NOT ON LDA DELTA2 AZE I JMP .+11 LDA /BURST STILL ON DELTA APO JMP .+5 /SUBTRACT LONG INTER VAL ADA LNGINT APO /TO E10 IF DELTA SHORTER THAN LONG /INTERVAL JMP E10 / /TO HERE AT END OF SWEEP TO TERMINATE CF E20, CLR /BURST IS COMPLETE /HALT IF BURST IS EXCESSIVELY LONG LDA I 1 ADM BSTNO CLR ADD BSTNO ADA I MAXB, -22 APO JMP .+5 IOB PMODE IOF LMODE LIF 1 JMP MAXOUT CLR ADA I -22 APO I JMP E21 LDA BSTNO /MAKE ADDRESS OF BURST NUMBER ADA I CNTRG-1 STC ADR /STORE IN ADR LDA I 1 ADM ADR, 0 E21, LDA BSTNO LAM BSTSP1 STC ZERO LAM BSTSP2 CLR STC CFIND STC BSTNO JMP E7 /HERE IF DELTA IS SHORT AND BURST /ALREADY IN PROGRESS^ E10,LDA I 1 ADM BSTNO / / / / /HERE TO FINISH INTERVAL ANALYSIS E7,CLR ADD TEMP1 STC TEMP2 ADD OFLIND STC OFLIN2 LDA I NOP STC 41 NOP /ABOVE NOP IS EXIT OF SWEEP TERM ROUTINE /SNS 0 CONTROLS INTEGRATION SAMPLING SNS 0 E14,JMP RETURN / / / ROUTINE FOR INTEGRATION OF / CLIMBING FIBER SLOW WAVE / / / INITIAL WAITING LOOP / KNOB 6 DETERMINES WAIT / BEFORE SAMPLING BEGINS / LDA I JMP SRVRT STC 41 IOB PMODE ION LMODE /ENABLE SLOW SAMPLE TO DETERMINE /WAIT LOOP TIME SET I 4 0 SAM 6 SCR 1 APO I COM STC 5 /DISPLAY SIGNAL DURING WAIT AT /ABOUT THIRTY POINTS PER MSEC SAM 14 DIS I 4 CLR STC INTGR1 STC INTGR2 NOP NOP XSK I 5 JMP .-10 / /INITIALIZE /KNOB 5 CONTROLS LEVEL /FOR THE INTEGRATION AND /DETERMINATION OF CLIMBING FIBER /ACTIVITY / THE ANALOGUE SIGNAL IS SAMPLED /THROUGH CHANNEL 14 /KNOB 4 CONTROLS SAMPLE TIME / / SAM 5 BCL I 7001 SCR 1 STA LEVEL COM STC MLEVEL SAM 4 SCR 2 APO I COM STC 5 / / L, SAM 14 DIS I 4 APO COM /KEEP DOUBLE PRECISION SUM LAM I INTGR1, 0 STC ZERO LAM I INTGR2, 0 / DISPLAY THRESHOLD /LEVEL SET I 3 -1 NOP XSK I 3 JMP .-2 LDA I LEVEL, 0 DIS I 4 /ROTATE SUM INTO MQ LDA INTGR1 ROR 14 LDA INTGR2 ROR 4 QAC DIS I 4 ADA I MLEVEL, 0 /GO TO CF BIN INCR ROUTINE /IF SUM GREATER THAN THRESHOLD APO JMP .+13 IOB PMODE IOF LMODE LDA I NOP STC 41 LDA CFIND AZE JMP .+4 JMP E15 XSK I 5 JMP L IOB PMODE IOF LMODE LDA I NOP STC 41 JMP RETURN / /DISPLAY PROGRAM /SENSE SWITCH 5 SELECTS FIELD THREE /SENSE SWITCH 4 SELECTS UPPER /512 POINTS /RSW BITS 8-11 /THE VERTICAL POSITION / IOB PMODE ION LMODE DATSEL, CLR ADD .+2 STC DFIELD LDF 2 SNS 5 JMP .+5 CLR ADD .+2 STC DFIELD LDF 3 LDA SEG1 STC BLOCK/SELECT FIELD 5 IF SSW 5(1) SNS 4 JMP DISPLY LDA SEG2 STC BLOCK JMP DISPLY SEG1,3777/LOWER 512 POINTS SEG2,2777/UPPER 512 POINTS / / TTYASK,IOB /DISPLAY ROUTINE CHECKS HERE FOR / TTY CONTROL COMMAND PMODE KSF LMODE JMP .+3 /GOES TO TTY INTEROGATION /ROUTINE IF KEY IS STRUCK LIF 4 JMP INTERG RETN, JMP DATSEL / IOB PMODE IOF LMODE DISPLY, CLR SAM 0/TAKE VERTICAL POSITION SCR 1 STA VERT COM STC MVERT SET I 13/VERT/ SELEST FIRST 512 BLOCK,1777/POINTS OF UPPER MEMORY SET I 14/SET COUNT FOR HOR SCALE -777 LDA I 1 ADA I BD10, 0 AZE I JMP .+3 BD5, COM STC RPT /START OF DISPLAY LOOP DIS2, LDA I 13 /NOW ROTATE RIGHT OR LEFT DEPENDING ON THE /TELETYPE INTERUPT ROUTINES ROL 0 SCR 0 ADA I VERT,0 STA VRTPOS SET I 12 RPT, -1 DIS I 14 XSK 14 JMP .+2 JMP LINDIS XSK I 12 JMP RPT+1 SNS 3 JMP .+14 /MAKE BAR IF SNS 3 (1) BD3,LDA I VRTPOS,0 DIS 14 ADA I -3 STA VRTPOS ADA I MVERT,0 APO I JMP BD3 /END OF BAR ROUTINE JMP DIS2 / / / / /SCALED LINE DISPLAY /HORIZONTAL LINE 2 POINTS BELOW ZERO /AND POINTS AT TEN DIVISIONS SPACING LINDIS, SNS I 1 JMP CURSER SET I 13 0 LDA VERT ADA I -4 DIS 13 LDA I 12 ADA 13 STA 13 ADA I -777 APO JMP .-16 LDA I 1 BD7, ROL 0 MUL I 5 STA VRTCNT SET I 13 0 LDA VERT STA VERTCT VT,LDA I VERTCT,0 DIS 13 ADA I VRTCNT,0 STA VERTCT ADA I -377 APO I JMP LETDIS JMP VT / / / / / /LETTER DISPLAY ABOVE DATA NUMBERS LETDIS, LDA I LDF 1 STC DFIELD LDF 1 SFA BCL I 200 ESF SAM 1 BCL I 7003 STA I HPOS, 0 STC 1 SAM 2 BCL I 7000 STC VCHAR LDA I TXT2-TXT3+TXT2-TXT3 STC 13 /IR 13 HOLDS LENGTH OF TXT LDA I TXT2-4000 STC 12 /IR 12 HOLDS ADDRESS OF HALF WORDS FOR DISPLAY LDH I 12 JMP DCHAR XSK I 13 JMP .-3 /DISPLAY CELL CODE ON LINE BELOW SET I 12 ANS1+5-4000 SET I 13 -4 LDA HPOS STC 1 LDA I -20 ADM VCHAR LDH I 12 JMP DCHAR XSK I 13 JMP .-3 / /DISPLAY OF DATA NUMBERS / LDA I 24 ADM 1 LDA SWEEPS STC DN2 JMP DN LDA I 24 ADM 1 / /USE SNS 4,5 TO DETERMINE EVENTS / SNS 5 JMP DC2 SNS 4 JMP DC1 LDA CFCNT4 STC DN2 JMP DN LDA CFCNT3 STC DN2 JMP DN JMP ENDCH DC1, LDA CFCNT2 STC DN2 JMP DN LDA CFCNT1 STC DN2 JMP DN JMP ENDCH DC2, SNS 4 JMP DC3 LDA SPCNT4 STC DN2 JMP DN LDA SPCNT3 STC DN2 JMP DN JMP ENDCH DC3, LDA SPCNT2 STC DN2 JMP DN LDA SPCNT1 STC DN2 JMP DN ENDCH, JMP TTYASK / /4 DIGIT NUMBER DISPLAY /ENTER WITH NUMBER IN THE ACC / DN, ADD 0 STC DN1 SET I 15 -4 LDA DN2 ROL 3 STA DN2 BCL I 7770 JMP DISN XSK I 15 JMP .-11 DN1, 0 DN2, 0 DISN, BSE I 0060 ROL 1 ADA I QAV+2000 STC 14 LDA VCHAR DSC 14 DSC I 14 LDA I 2 ADM 1 CLR JMP 0 / /DISPLAY CHARACTER /ENTER WITH HALF WORD IN ACCUMULATOR /X AND Y COORDINATES MUST BE PLACED IN /LOCATION 1 AND VCHAR DCHAR, ROL 1 ADA I QAV+2000 STC 14 LDA I VCHAR, 0 DSC 14 DSC I 14 LDA I 2 ADM 1 CLR JMP 0 / / / CURSER, LDA 0 STC C1 CLR SAM 3 BCL I 7000 STA 1 /TO BE DISPLAYED STC BIN SNS I 4 JMP .+4 LDA I 2000 JMP .+3 LDA I 3000 ADM BIN LDA BIN, 0 STA I BINCNT,0 LDA VERT ADA I -12 STA VCHAR DSC I 0077 CLR ADD .+2 STC DFIELD LDF 1 LDA I 10 ADM 1 LDA BIN BCL I 7000 STC DN2 JMP DN /DISPLAY BIN NUM LDA I 12 ADM 1 LDA BINCNT STC DN2 JMP DN C1, 0 / / / /CONSTANTS FOR ROUTINE *1660 / /PARAMETER CONSTANTS / COUNT,7776 SCALE,2 SHTINT,-6 LNGINT,-30 /NEGATIVES OF SHORT AND LONG INTS / /TEMPORARY VALUES / TEMP1,0 OFLIND, 0 /CURRENT INTERVAL TIME TEMP2,0 OFLIN2, 0 /LAST INTERVAL TIME DELTA, 0/ TIME BETWEEN EVENTS CFIND, 0/ CF INDICATER 1 OR 0 ARTFC, 0/ TIME OF STIME ARTIFACT BSTNO, 0/ TEMP SPIKES IN BURST ZERO,0/ TRASH LOCATION / / /CONSTANTS - FINAL DATA / TTIME1, 0 /TOTAL TIME LOW DIGITS TTIME2, 0 /HIGH DIGITS SPCNT1,0 /COUNTS IN MF1 BINS LOW DIGITS SPCNT2,0 /HIGH DIGITS SPCNT3,0 /COUNTS IN MF2 BINS LOW SPCNT4,0 /HIGH DGITS SPCNT5,0 /TOTAL MF COUNTS LOW SPCNT6,0 /HIGH CFCNT1,0 CFCNT2,0 CFCNT3,0 CFCNT4,0 CFCNT5,0 CFCNT6,0 BSTSP1,0 BSTSP2,0 CNTRG,0 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 / SWEEPS, 0 /SWP COUNTER / DATANO, 100 /TAPE DATA NO ANS1, 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 TXT2, TEXT ZCODE SWPS EVENTSZ TXT3, 0 / / / / / /INITIAL INTEROGATION ROUTINE /USES QANDA TO OBTAIN INITIAL /PARAMETERS IN ANS1 BUFFER LOCATED / IN QUARTER 3 WITH CONSTANTS / UM=2000 SEGMNT 1 *2020 LDF 0 LDA I 0020 ATR JMP QAINIT TXT1 ANS1+UM JMP QARFSH JMP LOAD / TXT1, TEXT ZPSTH - DATE <8 CODE <6 BIN EXP <2 MSEC - MIN INT <2 MSEC - MAX INT <2 HISTO NUMBER <2\Z / /LOAD CONSTANTS FROM BUFFER / LOAD, LDA /LOAD BIN EXP ANS1+UM+10 BCL I 7760 ROL 4 /MAKW MIDDLE BCD STA I DECI, 0 LDA /GET LOW DIGIT ANS1+UM+11 BCL I 6077 ROR 6 BSE DECI JMP BCDBN STA SCALE+UM / /LOAD MSEC MIN INT / CLR LDA ANS1+UM+12 BCL I 6077 ROR 2 STC DECI LDA ANS1+UM+12 BCL I 7760 BSE DECI JMP BCDBN COM STA SHTINT+UM CLR / /LOAD MSEC MAX INT / LDA ANS1+UM+13 BCL I 7760 ROL 4 STC DECI LDA ANS1+UM+14 BCL I 6077 ROR 6 BSE DECI JMP BCDBN COM STA LNGINT+UM / /LOAD HISTO NUMBER / CLR LDA ANS1+UM+15 BCL I 6077 ROR 2 STC DECI /STORE BITS IN DECI GET LOW DIGIT LDA ANS1+UM+15 BCL I 7760 BSE DECI JMP BCDBN STA DATANO+UM /JUMP TO START PROGRAM LIF 0 JMP START / NEWDNO, JMP QAINIT NEW1 NEW2 JMP QARFSH JMP NEW3 / NEW1, TEXT ZSET HISTO NUMBER <2\Z NEW2, 0 0 /HERE TO CONVERT NEW DATA NUMBER /FROM DECIMAL TO BIN AND LOAD / NEW3, CLR LDA NEW2 BCL I 7760 ROL 4 STA I N4, 0 LDA /GETSECOND DIGIT NEW2+1 BCL I 6077 ROR 6 BSE N4 JMP BCDBN STA N4 ADA I -67 APO I JMP NEW4 LDA N4 /JMP TO NEW4 /IF HISTO NUMBER IS TOO LARGE LDF 0 STA DATANO+UM CLR LIF 0 JMP 21 /JMP TO DISPLAY / NEW4, JMP QAINIT NEW5 NEW6 JMP QARFSH JMP NEWDNO NEW5, TEXT ZNUMBER FOR HISTGRAM IS TOO LARGE HIT LF TO RESET \Z NEW6, 0 / BCDBN, STA I 0 CLR ADD 0 STC .+5 ADD .-4 PDP PMODE JMS BCDBIN LINC LMODE 0 /BINARY-CODED-DECIMAL TO BINARY CONVERSION SUBROUTINE / PMODE / BCDBIN, 0 DCA TEMPH /STORE INPUT TAD TEMPH AND LDIGIT CLL RTR DCA CONT TAD CONT RAR TAD CONT CMA IAC TAD TEMPH /160 H + 16 M + L DCA TEMPH TAD TEMPH AND MDIGIT CLL RTR DCA CONT TAD CONT RAR TAD CONT /60 H + 6 M CMA IAC TAD TEMPH JMP I BCDBIN /EXIT LDIGIT, 7400 MDIGIT, 7760 CONT, 0 TEMPH, 0 / LMODE /QANDA SUBROUTINE FOR THE /PDP-12 / /TO HERE TO INITIALIZE THE ROUTINE / QAINIT, LDA I /SAVE JMP RETURN 2 ADD 0 STA I QAB, 0 /JMP +3 ADD QAL+3 STC 1 /PTR TO FIRST PARAM LDA 1 /GET FIRST PARAM ADD QAQ+1 /PTR TO HALFWORD-1 STC QAG-3 LDA I 1 STC QARFSH-1 STC 6 /XR6 USED AS A SWITCH. =0 IF NO ANSWER FIELD, =1777 IF YES QACA, SET 3 /XR3 TO PTR TO ANSWERS QARFSH-1 SET 4 /XR4 TO PTR TO QUESTIONS QAG-3 /TO HERE IF FIRST TIME THROUGH OR FOLLOWING A CR SET 1 4 JMP QAT NOP /F LDH I 4 /H. BUMP PTR IF H OR F QAD, JMP QAO JMP .+6 /74 JMP QAE /34 SAE I /CR? 43 JMP QAD /NO JMP QACA+4 /EXAMINE NEXT CHAR /INITIALIZE ANSWER BUFR STH 3 /74 TO ANSWERS LDH I 4 /NEXT HALFWORD ADA I -60 COM STC 6 STH I 3 /0 IN AC XSK I 6 JMP .-2 LDH I 3 /BUMP PTR TO ANSWERS JMP QAD /ANSWER BUFR IS INITIATED QAE, STH 3 SET I 4 /XR4 TO PTR TO LAST TYPED CHAR IN ANSWER BUFR 0 /----RE-ENTER HERE TO REFRESH---- QARFSH, LDA I /INITIAL Y POSITION 277 STC QAH-1 SET I 3 /XR3 TO PTR TO HALFWORD QUESTIONS-1 0 SET 5 /XR5 TO PTR TO LAST DISPLAYED CHAR IN ANSWER BUFR QARFSH-1 QAG, SET 1 3 JMP QAT JMP .+7 /F LDH I 3 /H. BUMP PTR LDA I /NEITHER. ASSUME HALF SIZE BCL I STC QAM+2 /SET INSTR TO CLEAR FF FOR HALF SIZE ADD QAW /NOP IN AC JMP QAM LDH I 3 /BUMP PTR LDA I BSE I STC QAM+2 /SET INSTR TO SET FF FOR FULL SIZE ADD QAW+1 /ADD 9U IN AC QAM, STC QAP+3 MSC I 4 /EAD CONTROL REGISTER BSE I /THIS INSTR CHANGES. EITHER BSE & OR BCL & 200 MSC 4 /AC TO CONTROL REGISTER SET I 1 /XR1 TO INITIAL X POSITION 100 LDA I /Y COORDINATE MULTIPLE -40 ADM I /Y COORDINATE 0 QAH, LDH I 3 JMP QAO+1 JMP QAZ /74 BUMP PTR TO NEXT CHAR, PUT 40 IN AC JMP QAJ /34 SHD I /NEITHER 4300 JMP QAG /CR. MOVE X AND Y COORDINATE JMP QAP /ISPLAY CHAR JMP QAH /PICK UP NEXT CHAR JMP QAP /TO HERE IF DISPLAYING ANSWER BUFR SRO I /SWITCH TO DISPLAY CURSOR. EITHER 0000 OR 7777 0 /IFXR4=XR5, THEN SWITCH=7777 JMP QAF /QUESTION MODE QAI, LDH I 5 JMP QAO+1 JMP QAH /74 JMP QAH /34 JMP QAI-4 /NEITHER. DISPLAY IT QAJ, JMP GETKBD /TO HERE IF DISPLAYED BUFFER AZE I JMP QAB /NOTHING TYPED . EXIT SET I 2 QAY SHD 2 /LF? JMP QAK+4 /YES. EXIT SHD I 2 /CR? JMP QAN XSK 6 /IS THERE AN ANSWER FIELD? JMP QARFSH SHD I 2 /? JMP QAK SHD I 2 /ALT? JMP QACA /REINITIALIZE SHD I 2 /BACK SLASH? JMP QARFSH /IGNORE SHD I 2 /RUBOUT? JMP QAL /IGNORE SHD I 2 /TAB? JMP QARFSH /IGNORE STC .+5 /ACCEPTABLE CHAR JMP QAO /TEST NEXT CHAR JMP QAQ /74 BACK PTR UP BY 1 JMP QAQ /34 ^ LDA I /OK. STORE IT 0 STH 4 JMP QARFSH /REDISPLAY QAL, LDH 4 /TO HERE IF RUBBOUT OR < JMP QAO+1 JMP QARFSH /74 IGNORE -6002 LDH 2 /TEST THE CHAR SAE I /RUBOUT? 37 JMP QAQ /NO. BACK PTR UP BY 1 SET 5 4 SET 3 4 JMP .+2 LDH I 5 /BUMP PTR LDH I 3 /GET NEXT CHAR JMP QAO+1 NOP /IF 74 OR 34, REPLACE CURRENT CHAR WITH 0 CLR STH 5 AZE /WAS IT 74 OR 34? JMP .-7 /NO. CONTINUE JMP QAQ /BACK PTR UP BY 1 /TO HERE IF CR QAN, XSK 6 JMP QAK+4 /EXIT ROUTINE IF NO ANSWER FIELD JMP QAO JMP QARFSH /74 MOVE PTR TO NEXT QUESTION FIELD JMP QAE+1 /34 END OF BUFR. MOVE PTR TO FIRST QUESTION FIELD JMP QAN+2 QAO, LDH I 4 /S\R SHD I / +1 74 BEGIN FIELD 7400 / +2 34 END BUFR JMP 0 / +3 NEITHER 74 NOR 34 SAE I 34 XSK I 0 XSK I 0 JMP 0 /S\R TO DISP LINC CHAR IN AC QAP, ROL 1 /MULT BY 2 FOR INDEX TO ADDRESS OF TABLE ADD QAX+4 STC 2 /ADDRESS OF CHAR TO DISP IN XR2 ADD QAU /THIS INSTR CHANGES. EITHER OP OR ADD 9U ADD QAU ADD 1 /ADD 4 TO XR1 TO SPACE CHAR STC 1 ADD 5 /GET ADDRESS OF ANSWER BUFR COM ADD 4 AZE CLR STC QAI-2 /SWITCH=0 OR 7777 ADD QAH-1 /Y COORDINATE IN AC DSC 2 DSC I 2 /DISPLAY CHAR JMP 0 QAQ, LDA I /BACK UP PTR BY 1 -4000 ADM 4 JMP QARFSH /REDISPLAY / QAT, LDH I 1 /S\R SHD I / +1 F 0600 / +2 H JMP 0 / +3 NEITHER SAE I 10 XSK I 0 XSK I 0 JMP 0 / QAZ, LDH I 3 LDA I 40 JMP QAI-4 /TO HERE IF > QAK, LDH I 4 AZE I /IS CURRENT CHAR BLANK? JMP QAQ /YES. IGNORE JMP QAX /MOVE DOT FORWARD /TO HERE TO EXIT WITH SKIP LDA I 1 ADM QAB JMP QAB /CHARACTER PATTERNS QAV, 0101 /KBD 0, ILLEGAL. USED AS MARKER 0101 4477 /1:A 7744 5177 /2:B 2651 4136 /3:C 2241 4177 /4:D 3641 4577 /5:E 4145 4477 /6:F 4044 4136 /7:G 2645 1077 /10:H 7710 7741 /11:I 0041 4142 /12:J 4076 1077 /13:K 4324 0177 /14:L 0301 3077 /15:M 7730 3077 /16:N 7706 4177 /17:O 7741 4477 /20:P 3044 4276 /21:Q 0376 4477 /22:R 3146 5121 /23:S 4651 4040 /24:T 4077 0177 /25:U 7701 0176 /26:V 7402 0677 /27:W 7701 1463 /30:X 6314 0770 /31:Y 7007 4543 /32:Z 6151 4177 /33:/ 0000 /34:BACKSLASH IGNORED ON INPUT 0 /NOT USED 0 /NOT USED 0000 /35:] 7741 /CODES 36:ALT, 37:RUBOUT NOT DISPLAYED QAY, 4543 /LF,CR 7476 /<,> 3634 /ALT, BACKSLASH 3747 /RUBOUT, TAB 0000 /40:SPACE 0000 7500 /41:X! 0000 7000 /42:" 0070 /CODES 43:, 44:, 45:LF NOT DISPLAYED QAX, JMP QAO+1 JMP QAQ JMP QAQ JMP QARFSH QAV 0 /NOT USED 5166 /46: & 0526 /CODE 47:TAB NOT DISPLAYED 0 /NOT USED 0 /NOT USED 3600 /50:( 0041 4100 /51:) 0036 2050 /52:* 0050 0404 /53:+ 0437 0500 /54:, 0006 0404 /55:- 0404 0001 /56:. 0000 0601 /57:\ 4030 4536 /60:0 3651 2101 /61:1 0177 4523 /62:2 2151 4122 /63:3 2651 2414 /64:4 0477 5172 /65:5 0651 1506 /66:6 4225 4443 /67:7 6050 5126 /70:8 2651 5122 /71:9 3651 2200 /72:: 0000 4601 /73:; 0000 /CODE 74: NOT DISPLAYED QAW, NOP ADD QAU 4020 /77:? 2055 / QAF, DSC I 6000 JMP QAI / /END Q+A / / / / /KEYBOARD INPUT ROUTINE / QAKRB=6036 /PDP-8 IOT KBD QATSF=6041 /TSF QATLS=6046 /TLS / GETKBD, LDA 0 STC QAEXIT+6 /SAVE RETURN ADD 1 /SAVE XRS 1 AND 2 STC QAEXIT+3 ADD 2 STC QAEXIT+5 STC QAEXIT+1 KST /WAS SOMETHING TYPED? JMP 0 /NO: EXIT IOB QAKRB /GET TTY CHAR, CLEAR FLAG STA I /SAVE IT QATY, 0 ADA I -237 APO /BETWEEN 200 AND 237? JMP QACNTR /CONTROL CHAR. CHECK FOR CR,LF,TAB / SET I 1 /NO QACHAR-1 SET I 2 -7 LDA QATY SAE I 1 JMP .+2 JMP QAEXIT /ILLEGAL CHAR. DONT ECHO XSK I 2 /CHECKED THEM ALL? JMP .-4 / ADA I -337 APO /BETWEEN 240 AND 337? JMP QALEGL /YES. LEGAL CHAR / SAE I 1 /NO. CHECK FURTHER. JMP .+7 LDA I /RUBOUT 334 JMP QATPE /ECHO BACKSLASH LDA I 37 JMP QAEXIT+2 /LEGAL EXIT / SAE I 1 JMP QAEXIT /ILLEGAL /ALT JMP QAEXIT+2 /EXIT, DONT ECHO / QALEGL, LDA QATY JMP QATPE /ECHO CHAR ADD QATY BCL I /STRIP IT TO 6-BIT 7700 JMP QAEXIT+2 /TO HERE IF CONTROL CHAR QACNTR, SAE I 7755 JMP QACKLF LDA I /CR 43 STC QAEXIT+1 LDA I 215 JMP QATPE LDA I 212 JMP QATPE JMP QAEXIT / QACKLF, SAE I 7752 JMP .+4 LDA I /LF 45 JMP QACNTR+5 SAE I 7751 JMP QAEXIT /ILLEGAL LDA I 47 JMP QAEXIT+2 /EXIT, DONT ECHO / QAEXIT, LDA I /GET 6-BIT ASCII 0 SET I 1 /RESTORE XRS 0 SET I 2 0 JMP /EXIR S\R GETKBD /S\R TO PRINT C(AC) QATPE, IOB QATLS /PDP-8 IOT TLS LDA 0 STC .+4 /SAVE RETURN IOB QATSF /WAIT FOR FLAG JMP .-2 JMP /EXIT / QACHAR, 243 /HASH 244 /DOLLAR SIGN 245 /PER CENT 247 /APOSTROPHE 300 /AT SIGN 336 /UP ARROW 337 /BACK ARROW 40 /RUBOUT 36 /ALT /END OF S\R GETKBD / / / / / ALTART, JMP QAINIT ART1 ART2 JMP QARFSH JMP ART3 ART1, TEXT ZSET ARTIFACT DURATION EQUAL TO <3\Z ART2, 0 0 0 ART3, LDA ART2 /GET 3 DIGIT BCD BCL I 7760 ROR 4 STA I ART5, 0 LDA ART2+1 BCL I 6077 ROR 2 BSE ART5 STA ART5 LDA ART2+1 BCL I 7760 BSE ART5 JMP BCDBN /CONVERT LDF 0 STA ART6+UM LIF 0 JMP 21 / /MAXOUT USED WHEN MAX EVENTS IN BURST /IS EXCEEDED MAXOUT, JMP QAINIT MAX1 MAX2 JMP QARFSH LIF 0 JMP 21 MAX1, TEXT ZMAX BURST EXCEEDED HISTOGRAM TERMINATED\Z MAX2, 0 / /MAXIN SETS MAX EVENTS IN BURSTS MAXIN, JMP QAINIT MAX3 MAX4 JMP QARFSH JMP MAX5 MAX3, TEXT ZSET MAXIMUM EVENTS IN BURST <3\Z MAX4, 0 0 0 MAX5, LDA MAX4 /LOAD 3 DIGIT CONST BCL I 7760 ROR 4 STA I MAX6, 0 LDA MAX4+1 BCL I 6077 ROR 2 BSE MAX6 STA MAX6 LDA MAX4+1 BCL I 7760 BSE MAX6 JMP BCDBN COM LDF 0 STA MAXB+UM LIF 0 JMP 21 / / SEGMNT 4 *100 INTERG, CLR IOB PMODE RDF LMODE ROR 1 BSE I 640 STC I2 IOB PMODE KRB LMODE SAE I 304 /LETTER D RESTARTS INTROGATION JMP .+2 JMP I4 SAE I 307 JMP .+2 JMP I5 /RESTART WITH BINS CLEARED SAE I 323 JMP .+2/ DISPLAY WITH INT OFF JMP I6 SAE I 325 /LETTER U JMP .+2 JMP UP SAE I 314 /LETTER L JMP .+2 JMP DOWN /LOWER DISPLAY SAE I 315 /LETTER M JMP .+2 JMP SIX /MAGNIFY DISPLAY OF INITIAL POINTS SAE I 324 /TAPE DATA JMP .+2 /LETTER T JMP I7 /PUT DATA ON TAPE SAE I 322 /LETTER R JMP .+2 /READ DATA FROM TAPE JMP I8 SAE I 303 /LETTER C JMP .+2 JMP I9 SAE I 320 /LETTER P JMP .+2 JMP I10 SAE I 310 /LETTER H JMP .+2 /LETTER H CONTROLS RESET OF HISTO NO JMP I11 SAE I 319 /LETTER O--SHT PRINT JMP .+2 JMP I12 SAE I 302 /LETTER B JMP .+2 JMP I13 SAE I 301 /A FOR ARTIFACT JMP .+2 JMP I14 SAE I 332 /Z TO GO TO DIAL JMP .+2 JMP QUIT /RETURN TO DISPLAY IF TTY NOT LEGAL I2, 0 /RESTORE DATAFIELD LIF 0 JMP RETN / END OF TELETYPE INTEROGATION / QUIT, IOB PMODE IOF LMODE LDF 2 RDC 4300 RDC 5301 RDC 6302 RDC 7303 LDF 3 RCG 3304 LIF 2 JMP 20 I4, IOB PMODE IOF LMODE LIF 1 JMP 20 I5, IOB PMODE IOF LMODE LIF 0 JMP 20 I6, IOB PMODE IOF LMODE LIF 0 JMP 21 I7, IOB PMODE IOF LMODE LIF 0 JMP 30 I8, IOB PMODE IOF LMODE LIF 0 JMP 32 I9, IOB PMODE IOF LMODE LIF 4 JMP CPRINT I10, IOB PMODE IOF LMODE LIF 0 JMP 22 I11, IOB PMODE IOF LMODE LIF 1 JMP NEWDNO I12, IOB PMODE IOF LMODE JMP P1 I13, IOB PMODE IOF LMODE LIF 1 JMP MAXIN I14, IOB PMODE IOF LMODE LIF 1 JMP ALTART / UP, LDF 0 /HERE TO RAISE /DISPLAY LDA BD5+4+UM /GET SCALE INSTR SAE I 340 /SKIP IF NO DOWN SCALE JMP .+2 JMP .+6 ADA I /SBTRACT SCALE TO RIGHT -1 STA /IF NOT ZERO AND REPLACE BD5+4+UM JMP .+11 LDA BD5+3+UM /INCREASE ROT LEFT ADA I +1 STA BD5+3+UM STA BD7+UM /ROTATE VERT /SCALE JMP I2 / / DOWN, LDF 0 /HERE TO LOWER DISPLAY LDA BD5+3+UM SAE I /GET ROTATE LEFT INST SKIP IF NO LEFT ROTATIONS 240 JMP.+2 JMP.+10 ADA I -1 /DECREASE LEFT ROT STA /REPLACE ROTATE /INSTRUCTION BD5+3+UM STA BD7+UM JMP .+7 LDA /GET SCALE RIGHTINSTRUCTION BD5+4+UM ADA I +1 /INCREASE SCALE RIGHT BY ONE STA BD5+4+UM JMP I2 / / SIX, LDF 0 /HERE TO MAGNIFY /THE INITIAL POINTS LDA /LOAD BAR CONST BD10+UM AZE JMP .+4 ADA I /SET TO 1 IF 0 1 JMP .+10 SAE I 1 JMP .+4 ADA I 3 /SET TO 4 IF =1 JMP .+2 CLR /SET TO 0 IF EQUAL TO4 STA BD10+UM /STORE NEW CONST ANT IN BD10 JMP I2 /RETURN TO DISPLAY / / / /DATA TYPE ROUTINE /ALL HISTOGRAM COUNTERS PRINTED / PRINT, LDA I NOP STC P2 JMP .+4 P1, LDA I JMP P3 STC P2 LDF 0 JMP LFRET JMP LFRET SET I 7 /7 FOR DOUBLE /PRECISION NUMBERS THEN SINGLE TTIME1-1+2000 SET I 11 TXT4-HF-1 SET I 12 TXT4-TXT4A JMP TPTXT /TYPE HEADING SET I 11 TXT4A-HF-1 SET I 12 TXT4A-TXT5 JMP TPTXT SET I 11 ANS1+2000 SET I 12 -16 JMP TPTXT /T ANS BUF SET I 11 TXT5-HF-1 SET I 12 TXT5-TXT6 JMP TPTXT /T TIME JMP N2 JMP LFRET SET I 11 TXT6-HF-1 /T MF BIN DATA SET I 12 TXT6-TXT7 JMP TPTXT SET I 6 -3 JMP N2 XSK I 6 JMP .-2 JMP LFRET P2, NOP SET I 11 /T CF BIN DATA TXT7-HF-1 SET I 12 TXT7-TXT8 JMP TPTXT SET I 6 -3 JMP N2 XSK I 6 JMP .-2 JMP LFRET SET I 11 TXT8-HF-1 /SPIKES IN BURST SET I 12 TXT8-TXT9 JMP TPTXT JMP N2 JMP LFRET SET I 11 /T BURST DENSITY TXT9-HF-1 SET I 12 TXT9-TXT10 JMP TPTXT SET I 6 -3 SET I 4 -6 JMP N3 XSK I 4 JMP .-2 JMP LFRET XSK I 6 JMP .-7 SET I 11 TXT10-HF-1 /T DATANO SET I 12 TXT10-TXT11 JMP TPTXT JMP N3 /PRINT SWEEPS LDA I 240 JMP TYPE JMP N3 JMP LFRET JMP LFRET LIF 0 JMP 21 P3, SET I 11 TXT10-HF-1 SET I 12 TXT10-TXT11 JMP TPTXT LDF 0 LDA SWEEPS+UM STC X3 JMP V1 LDA I 240 JMP TYPE LDA DATANO+UM STC X3 JMP V1 JMP P3-4 /DOUBLE PRECISION OCTAL CONVERSION /LOADING SUBROUTINES N2, LDA 0 STC .+6 LDA I 7 STC X3 LDA I 7 STC X4 JMP V1 /CONVRT -PRINT 0 N3, LDA 0 STC .+5 LDA I 7 STC X3 STC X4 JMP V1 0 /ROUTINE TO CONVERT DOUBLE /PRECISION OCTAL TO DECIMAL AND /PRINT / /ENTER V1,WITH LO DIGITS IN X3 AND /HIGH IN X4 / /USES IRS 1,2,5,13,14 V1, LDA 0 STC V2 /CLEAR NUMBER BUFFER SET I 14 A1-1 SET I 13 -4 LDA I 4040 STA I 14 XSK I 13 JMP .-2 /SET 14 FOR STORAGE OF REMAINDERS SET I 14 A1+4003 /SET 13 FOR NUMBER OF DIGITS SET I 13 -10 /SET 5 FOR NUMBER OF ROTATIONS LEFT /TO W4 AFTER FINDING EACH DIGIT /FROM LOW TO HIGH W4, SET I 5 -31 CLR STC W9 JMP W1 W2, ROL I 1 STA I W9, 0/ LOCATION FOR REMAINDER STC W3 /SUBTRACT 10 BASE TEN IE -12 IN 2S COMPL ADA I 7766 LAM I W3, 0 LZE /ANS POS IF /LINK (1) STC W9 /STORE NEW REMAINDER IF POS W1, LDA I X3, 0 /LO INTEGER LOC ROL I 1 STC X3 LDA I X4, 0 / HIGH INTEGER LOCATION ROL I 1 STC X4 ADD W9 /ADD REMAINDER XSK I 5 JMP W2 / /STORE DECIMAL INTEGERS IN A1 FROM LOW /TO HIGH / STH 14 LDA I -4000 ADD 14 STC 14 XSK I 13 JMP W4 JMP A3 A1, 0 0 0 0 4040 / /TYPE 8 DIGITS IN A1 /WITH INITIAL ZERO DEPRESSION A3, SET I 1 A1-4000 SET I 2 -12 A2, LDH I 1 SAE I 40 JMP .+3 JMP TPCODE JMP .+4 ADA I 260 JMP TYPE XSK I 2 JMP A2 V2, 0 / /ROUTINE TO TYPE PACKED CODE /ENTER WITH CODE IN AC TPCODE, STA I TP2, 0 LDA 0 STC TP1 ADD TP2 SAE 37 JMP .+5 ADA I 212-37 JMP TYPE JMP TP1 /T LINE FEED SAE 43 JMP .+5 ADA I 215-43 JMP TYPE /T RETURN JMP TP1 SAE I 77 JMP .+2 JMP TP1 /IGNORE RUBOUT SAE I 75 /IGNORE ALTMODE JMP .+2 JMP TP1 ADA I -37 APO JMP .+5 ADA I 237 JMP TYPE JMP .+4 ADA I 337 JMP TYPE TP1, 0 /RETURN /TYPE ROUTINE /ENTER WITH CODE IN AC TYPE, STA I TYPE2, 0 LDA 0 STC .+10 ADD TYPE2 IOB PMODE TLS LMODE IOB PMODE TSF LMODE JMP .-2 CLR 0 /TYPES LINE FEED AND RETURN LFRET, LDA 0 STC .+12 LDA I 212 JMP TYPE LDA I 215 JMP TYPE LDA I 240 JMP TYPE 0 /TYPES A STRING OF TEXT /ENTER WITH STARTING ADD IN IR 11 /AND NO OF LOCATIONS IN IR 12 TPTXT, LDA 0 STC .+10 LDH I 11 JMP TPCODE LDH I 11 JMP TPCODE XSK I 12 JMP .-5 JMP LFRET 0 HF=-4000 / 0 / TXT4, TEXT Z PSTH - DATE, CODE, BIN EXPZ / TXT4A, TEXT Z MSEC IN INT, MSEC MAX INT, HISTO NOZ / TXT5, TEXT Z TOTAL TIME IN MSEC Z / TXT6, TEXT Z EVENTS - 1 MSEC,LONG BINS,TOTALZ / TXT7, TEXT Z BURSTS - 1 MSEC,LONG BINS,TOTALZ / TXT8, TEXT Z TOTAL EVENTS IN BURSTS Z TXT9, TEXT Z EVENTS IN BURSTS Z TXT10, TEXT Z SWEEPS - HISTO NUMBER Z TXT11, 0 / CPRINT, LDF 0 JMP LFRET JMP LFRET LDA BIN+UM BCL I 7000 STA X3 COM STC 4 STC X4 JMP V1 LDA BINCNT+UM STC X3 STC X4 JMP V1 /GET AND PRINT BIN CONTENTS LDF 2 SNS I 5 LDF 3 SET I 3 7777 /SET IR 3 TO /FIRST ADDRESS OF HISTOGRAM-1 /USE UPPER 512 POINTS IF SNS 4(1) SNS 4 JMP .+3 SET I 3 6777 SET I 5 -4 SET I 6 SUM1-1 CLR STA I 6 XSK I 5 JMP .-2 CP1, CLR LDA I 3 LAM SUM1 STC TRASH LAM SUM2 CLR LDA 3 BCL I 7000 MUL 3 ROL I 14 STA I CP3, 0 QAC ROL 1 ROR I 1 LAM SUM3 STC TRASH ADD CP3 BCL I 4000 LAM SUM4 XSK I 4 JMP CP1 LDA /PRINT SUM SUM1 STC X3 LDA SUM2 STC X4 JMP V1 LDA SUM3 STC X3 LDA SUM4 STC X4 JMP V1 JMP LFRET LIF 0 JMP 21 SUM1, 0 SUM2, 0 SUM3, 0 SUM4, 0 TRASH, 0 / / / /WRITE ON TAPE ROUTINE / /USE DATANO TO SET UP BLOCK STORAGE /NUMBERS FOR 11 OCTAL QUARTERS / /START BY INSERTING READ INSTRS READT, LDA I RDC I U STA QB0-1 STA QB1-1 STC QB2-1 LDA I RDC U STC QB2+10 LDA I NOP STC TAPE2 WRITET, LDF 0 LDA DATANO+UM ADA I -67 APO I JMP TAPBAD LDA DATANO+UM /ESTABLISH STARTING TAPE BLOCK NUMBER MUL I 11 STA I BLKNO, 0 /MAKE INSTR /TO START AT QUARTER THREE SEG 0 ADA I 4001 STC QB1 /MAKE INSTR TO START /AT QUARTER FOUR LDA BLKNO ADA I 4005 STC QB2 /WRITE 1ST BLK ON TAPE LDA BLKNO ADA I 7000 LDF 0 STC .+2 WRC I U QB0, 0 /WRITE 2ND 4 BLOCKS ONTO TAPE /CONTAINS CONSTS, MF1,MF2 LDF 2 SET I 10 -4 JMP .+5 LDA I 1001 ADM QB1 WRC I U QB1, 0 XSK I 10 JMP .-7 /WRITE 2ND 4 BLOCKS -CF1,CF2 LDF 3 SET I 10 -3 JMP .+5 LDA I 1001 ADM QB2 WRC I U QB2, 0 XSK I 10 JMP .-7 LDA I 1001 ADA QB2 STC .+2 WRC U 0 /TYPE DATA NUMBER USED JMP LFRET SET I 11 TXT12-HF-1 SET I 12 TXT12-TXT13 JMP TPTXT LDF 0 CLR STC X4 LDA DATANO+UM STC X3 JMP V1 JMP LFRET /INCREMENT CURRENT DATA NUMBER LDA I 1 ADM DATANO+UM TAPE2, JMP TAPE3 LDA I WRC I U STA QB0-1 STA QB1-1 STC QB2-1 LDA I WRC U STC QB2+10 LDA I JMP TAPE3 STC TAPE2 TAPE3, LIF 0 JMP 21 / TAPBAD, LDF 0 LIF 1 JMP NEW4 / / TXT12,TEXT ZHISTO NUMBERZ TXT13,0