File ISH

Directory of image this file is from
This file as a plain text file

*20
/
/
/
/ ISH - INTEREVENT INTERVAL 
/        HISTOGRAM AND
/        INTERBURST INTERVAL 
/        HISTOGRAM
/
/D.J.WOODWARD, DEPT.PHYSIOL.
/U. ROCHESTER, ROCH, N.Y.,14620
/
/
/INTERVALS BETWEEN
/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) ARE THE INTERVALS OF THE
/LONG HISTOGRAMS
/
	SEGMNT 0
	*20
	JMP START
/STARTING ADDR 20 LEAVES PROGRAMMED
/CONSTANTS IN OPERATION
/TAPE DATA NUMBER CAN BE KEYED IN
/LOC 21
	JMP DATSEL
/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	/STORE DATA ON T
	LIF 4
	JMP READT	/READ FROM TAPE
	LIF 4
	JMP CPRINT
	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
DFIELD,	0
IFIELD,	0
	DJR
IOB
PMODE
ION
LMODE
RETRN1,0
    /START
     /HERE
    /CONSTRUCT SCALE FOR LONG 
     /DURATION HISTOGRAMS
START,	CLR
	SFA
	BSE I
	40
	ESF
	CLR
ADD SCALE
ADA I
340
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
	NOP
/
	LDA I
	1
	STC FSTCF
/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
	S2,CLR
	LDA
	CLOCK
	SCR I 4		/IS IT ARTIFACT
	LZE
	JMP STIM
S1,LDA
CLOCK
SCR I 2
LZE  /IS IT TRIG
JMP TRIG
S3,      NOP
JMP RETURN
    /
     /TO HERE IF TRIGGERED
     /
TRIG,CLR
/THE FIRST SPIKE WILL START THE CLOCK
/AND ALL TIME COUNTERS WILL BE SET TO 
/ZERO
	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 INTERRUPTS 2,3 AND OVERFLOW
	LDA I
	117
	IOB
	PMODE
	CLEN
	LMODE
	JMP S2
     / SUM TOTAL TIME
TRIG4,	IOB
	6136
	STA 
	TEMP1
/CHECK FOR ARTIFACT
	LDA I
ARTIND,	0
	AZE I
	JMP EV
	LDA
	TEMP1
	ADM
	ARTFCT
	COM
	ADA I
ART6,	1000
	APO I
	JMP RETURN
	CLR
	STC ARTIND
	STC ARTFCT
EV,	LDA
	TEMP1
LAM
TTIME1
STC ZERO
ADD OFLIND
LAM
TTIME2
	CLR
	JMP EVENT
/
	NOP
	NOP
     /STIMULUS SUBROUTINE
STIM,	LDA I
	1 
	STC ARTIND
JMP S1
	NOP
	NOP
	NOP
	NOP
	NOP
     /
     /OVERFLOW ROUTINE
OVERFL,	 LDA
	CLOCK
	BCL I
	4000
	AZE
	JMP S2
	LDA I
1
ADM
OFLIND
CLR
	STC ARTIND
JMP S2
       /HERE FOR EVENT ROUTINE
EVENT,	CLR
	STC ARTIND
LDF 2/DATA FIELD 2 FOR MF SPIKES
LDA
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
    /
    /START DIFFERENCE ANALYSIS
/DIFFERENCE EQUALS OFLIND + TEMP1
     /
E13,	CLR
	LDA
	OFLIND
	AZE
	JMP E3
	LDA
	TEMP1
	APO
	JMP E3
ADA
SHTINT
APO I
JMP E3  /TO E3 IF DELTA GREATER THAN
     /8 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 I 
FSTCF,	0
	AZE I
	JMP .+10
	LDA I
	1
	STC CFIND
        STC FSTCF
	STC OFLIN2
	STC TEMP2
	JMP E7
/HERE AFTER FIRST CF DETECTED
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
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
	NOP
LDA I
1
	STC CFIND
     /TURN ON CF INDICATOR
/RESET CF INT TIME
CLR
	STC OFLIN2
	STC TEMP2
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
	OFLIND		/BURST STILL ON
	AZE 
	JMP .+11
	LDA
	TEMP1
	APO
	JMP .+5
     /SUBTRACT LONG INTER VAL
ADA
LNGINT
APO
     /TO E10 IF DELTA SHORTER THAN LONG
     /INTERVAL
JMP E10
	LDA I
	1
	ADM
	BSTNO
	CLR
	ADD BSTNO
	ADA I
MAXB,	-22
	APO
	JMP .+5
	IOB
	PMODE
	IOF
	LMODE
	LIF 1
	JMP MAXOUT
CLR /BURST IS COMPLETE
/HALT IF BURST IS EXCESSIVELY LONG
ADD BSTNO
	ADA I
	-22
	APO I
	JMP E20
	LDA
	BSTNO
	ADA I
	CNTRG-1
	STC ADR
	LDA I
	1
	ADM
ADR,	0
E20,	LDA
	BSTNO
LAM
BSTSP1
     /INCREMENT COUNTER
STC ZERO /OF SPIKES IN BURSTS
LAM
BSTSP2
	CLR
STC CFIND
	STC BSTNO
	NOP
	NOP
	NOP
	NOP
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
	LDA
	TEMP1
	LAM
	TEMP2
	STC ZERO
	ADD OFLIND
	LAM
	OFLIN2
	CLR
	STC OFLIND
	STC TEMP1
	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 
	TTIME2
	STC DN2
	JMP DN
	LDA 
	TTIME1
	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
ARTFCT,	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
	0
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  TIME      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
	0040
	ATR
	JMP QAINIT
	TXT1
	ANS1+UM
	JMP QARFSH
	JMP LOAD
/
TXT1,	TEXT ZISH - 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
	CLR
/
/LOAD MSEC MIN INT
/
	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 QAL
	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
QAU,	2		/CONSTANT
	0	/NOT USED
	1212		/75:=
	1212
			/CODE 76:> 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
	LDA I 7
	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
	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 ISH - 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 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
	TXT10-HF-1
	SET I 12
	TXT10-TXT11
	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
/
/



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search