File DUAL

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

$1
JMP 20
$20
JMP p+2
0 [INTERUPT INSTRUCTION HERE
CLR
ATR  [SHUTTERS CLOSED
JMP 1Q   [MEMORY, SINGLE OR DUAL
2A
2B
LDH [ANSWER IN ACC
4000+2B
SAE i
40   [IF M
JMP p+2
JMP 1M
SAE i
46   [IF S
JMP p+2
JMP 3G
SAEi
27   [IF D
JMP 20  [INVALID CHARACTER
[
LDA i
26   [1ST HISTOGRAM IS LABELLED "C"
STC 3D+2  [HISTO ID
LDA i
2
STA i
#4M 0  [1 OR 2 FOR SINGLE OR DUAL
JMP 3F
#3G LDA i
46   [S
STC 3D+2  [HISTO ID
LDA i
1
STC 4M
[
#3F JMP 1Q  [#RUNS PER HISTO
2C
2D
LDAi
2D
STC 1
JMP 9A [UNPACKED TO OCTAL
LDA
2   [OCTAL VALUE IN 2
STAi
#3A 0      [#RUNS PER HISTO
[
JMP 1Q  [1ST STORAGE LOCATION
2G
2H
LDAi
2H
STC 1
JMP 9A [UNPACK
LDA
2
STA i
#3C 0   [OCTAL VALUE
[
JMP 1Q  [BIN WIDTH
2E
2F
[
[SET UP BIN WIDTH + CLOCK
[
LDA i
2F   [BIN WIDTH
STC 1
JMP 9A  [CONVERTS TO OCTAL
#1F LDA i
JMP 9E
STC 3E+1
LDA
2
STA i
#3B 0   [OCTAL VALUE OF BIN WIDTH
[
[SETUP REAL TIME CLOCK
[
SNS i 0
JMP p+4
LDA i 
4031
JMP p+3
LDA i
4001
OPR 1 [LOAD STATUS
LDA
3B
COM
OPR 3 [LOAD PRESET BUFFER WITH NEG COUNT
[
#3D JMP 9P  [CLEAR QN 4-7
LDA i
0   [HISTO ID= S OR D
STA
3770
LDA i
27  [2ND HISTOGRAM IS LABELLED "D"
STA
2770
LDA
3B   [BIN WIDTH
STA
3771
STA
2771
LDA
3A  [#RUNS PER HISTO
COM
STC 5 [-NO. RUNS
[
[WAIT FOR TRAP AND SENSOR
#3E JMP 9R
[
JMP 9E [COLLECT HISTOGRAM
OPR 10
CLR
ATR
LDA
4M
SAE i
1
JMP p+2
JMP 4Q [IF SINGLE
SAE i
2
JMP 4D [IF 2ND OF 2 HISTOGRAMS
LDA i [IF 1ST OF 2 HISTOGRAMS
3
STC 4M  [RESETS HISTO NO. TO 3
JMP 3E [AND RETURNS TO COLLECT 2ND HISTO
#4D LDA i [IF 2ND OF 2 HISTOGRAMS
2
STC 4M [RESETS HISTO NO. TO 2
#4Q LDA
5  [- NO. OF RUNS
ADA i
1
ADD 3A
STA
3772
KST  [CHECK IF R OR S STRUCK DURING SWEEP
JMP p+12
KBD
SAE i
45   [IF R
JMP p+2
JMP 3D  [REPEAT HISTO
SAE i
46   [IF S
JMP p+2
JMP p+3  [STORE PRESENT DATA
#3I XSK i 5
JMP 3E [RUNS NOT OVER
[
[COUNT TOTAL SPIKES IN HISTOS
SET i 10
7013
SET i 11
2777
CLR
ADA i 11
XSK i 10
JMP p-2
STA
3773  [STORES TOTAL SPIKES
LDA
4M
SAE i
1
JMP p+2
JMP 4E  [IF SINGLE HISTO
SET i 10  [IF DUAL HISTOS
7013
SET i 11
3777
CLR
ADA i 11
XSK i 10
JMP p-2
STA
2773
[
#4E LDA
3C   [1ST STORAGE LOCATION
STC 9J-1
JMP 9J  [STORE MEMORY ON TAPE
JMP 1C
[
#1B JMP 1D
JMP 9N [HISTO PARAMS
JMP 9H  [DISPLAY HISTO
OPR 7 [SENSE REMOTE BUTTONS
BCL i
7776
AZE
JMP 1L
OPR 7
BCL i
7773
AZE
JMP 3D
KST  [KEY STRUCK DURING HISTO DISPLAY
JMP 1B
KBD
SAE i
45   [IF R
JMP p+2
JMP 3D [REPEAT
SAE i
24   [IF A
JMP p+2
JMP 1L [ADVANCE
SAE i
40   [IF M
JMP p+2
JMP 1M [MEMORY
SAE i
25   [IF B
JMP p+2
JMP 1N [BIN WIDTH
SAE i
31   [IF F
JMP p+2
JMP 1P [FINISH
[
[
[CURSOR CONTROL
[
SAE i
01
JMP p+4
LDA i
-1
JMP 8T
SAE i
02
JMP p+4
LDA i
-20
JMP 8T
SAE i
03
JMP p+4
LDA i
1
JMP 8T
SAE i
04
JMP p+4
LDA i
20
JMP 8T
SAE i
05
JMP p+4
LDA i
-1
JMP 8U
SAE i
06
JMP p+4
LDA i
-20
JMP 8U
SAE i
07
JMP p+4
LDA i
1
JMP 8U
SAE i
10
JMP 1B
LDA i
20
JMP 8U
[
[
#8T ADM 
8Q
APO i
JMP p+4
CLR
STC 8Q
JMP 1B-1
ADA i
-763
APO
JMP 8U+11
LDA i
763
STA
8Q
STA
8R
JMP 1B-1
[
#8U ADM
8R
ADA i
-763
APO
JMP 8U+11
LDA i
763
STC 8R
LDA
8Q
COM
ADA
8R
APO i
JMP 1B-1
LDA
8Q
STC 8R
JMP 1B-1
[
#1P XSK 5  [ANY RUNS LEFT IN HISTO?
JMP 3I  [YES
JMP 1B  [NO
[
[
#1L LDA   [STARTS FRESH HISTO
4M
SAE i
1
JMP p+2
JMP 4F
LDA  [IF DUAL
3C
ADA i
4    [ADVANCE STORAGE BN 4
STC 3C
JMP 3D [STARTS FRESH HISTOGRAM
#4F LDA  [IF SINGLE
3C
ADA i
2    [ADVANCE STORAGE BN 2
STC 3C
JMP 3D [STARTS FRESH HISTOGRAM
[
[
#1N LDA  [ASKS FOR NEW BIN WIDTH,
4M   [THEN STARTS FRESH HISTO
SAE i
1
JMP p+2
JMP 4L
LDA  [IF DUAL
3C
ADA i
4    [ADVANCE BN 4
STC 3C
JMP 3C+1 [ASKS FOR NEW BIN WIDTH, THEN ADVANCES
#4L LDA  [IF SINGLE
3C
ADA i
2    [ADVANCE BN 2
STC 3C
JMP 3C+1 [ASKS FOR NEW BIN WIDTH, THEN ADVANCES
[
[
#1M JMP 1Q  [GET HISTO FROM MEMORY
2M  [DESIRED BN
2N
LDA i
2N
STC 1
JMP 9A  [UNPACK TO OCTAL
LDA
2
STC 9L-1
JMP 9L  [TAPE TO MEMORY
[
[
#1C LDA i  [COMPUTE SPIKES BETWEEN CURSORS
3000
ADA
8R
STA
8B
LDA i
2777
ADA
8Q
STA
14
CLR
STA
8A
[-----------
LDA
14
SAE
8B
JMP p+2
JMP 1B
LDA i 14
ADM
8A
JMP p-11
[
[
[###############
[SUB TO DISPLAY CURSORS
[
#8Q 0144
#8R 0454
#8A 0000
#8B 0000
#1D LDA 
0
STA i
0
[
SET 1
8Q
LDA i
-124
ADA i
1
DIS 1
SAE i
-103
JMP p-5
SET 1
8R
LDA i
-124
ADA i
1
DIS 1
SAE i
-103
JMP p-5
LDA i
8Q
STA
3H
LDA i
-150
STA
1H
JMP 1G
JMP 1D+3
[
[
[##################
[SUB TO WAIT FOR TRAP SIGNALS
[
#9R LDA
0
STA i
0
[
SNS i 5
JMP p+12
JMP 9H
SXL i 3
JMP p-2
CLR
COM
ATR
SXL 3
JMP p-1
JMP 9R+3
JMP 9H
SXL i 4
JMP p-2
CLR
COM
ATR
SXL 4
JMP p-1
JMP 9R+3
[
[SUBROUTINE TO COLLECT HISTOGRAM INTO MEMORY
[DOESNT CLEAR QUADRANTS
[
#9E LDA
0
STAi
0
[
LDAi
JMP 9F
STC 21 [INTERUPTTO HERE
[
LDA
4M
SAE i
3
JMP p+2
JMP 4G
SET i 1 [IF 1ST OF 2 HISTOS, OR SINGLE,
3000    [1ST MEMORY LOCATION = 3000
JMP 4H
#4G SET i 1 [IF 2ND OF 2 HISTOS,
2000    [1ST MEMORY LOCATION = 2000
#4H SET i 3
7013  [-# OF BINS
OPR 4 [START CLOCK
ENI
#9G SXL i 10
JMP p-1
LDA i [GOT A PULSE
1
ADM 1 [ ADD TO BIN
SXL 10
JMP p-1
JMP 9G
[
[
[##################
[   SERVICE ROUTINE FOR INTERRUPT
[SINGLE MODE
[
#9F SXL 10
JMP p-1
XSK i 3 [# OF BINS
JMP p+2
JMP 9E+3
XSK i 1 [MOVE TO NEXT BIN
JMP 9G-1
[
[
[################
[  SUBROUTINE TO CLEAR QN 4-7
[
#9P LDA
0
STAi
0
[
SET i 6
3777
CLR
STA i 6
XSK 6
JMP p-2
JMP 9P+3
[
[
[##################
[HISTO DISPLAY ROUTINE
[USES REG 10 11 12
[
[WHEN DUAL HISTOGRAMS, THE FIRST ONE IS DISPLAYED <MEMORY LOC 3000-3777>
[
#9H LDA
0
STAi
0
[
SET i 10
2777 [1ST STORAGE LOCATION
SET i 11
-764  [#OF BINS
SET i 12
0     [X COORDINATE
#9Q LDA i 10
ROL 2
ADAi
-100
SAEi
-100
JMP p+2
JMP p+5
DIS 12
ADAi
-1
JMP p-7
XSK i 12
XSK i 11
JMP 9Q
JMP 9H+3
[
[
[##################
[SUB TO PUT HISTO PARAMS ON SCREEN
0
#9N LDA
0
STA i
0
[
LDA
3770
SET i 1
60 [X COORD
ROL 1
ADAi
1R
STC 17  [ADDR OF PATTERN WORD
LDA i
-277 [Y COORD
DSC 17
DSC i 17
LDA i
3771
STA
3H
LDA i
-277
STA
1H
JMP 1G
JMP 9N+3
[
[
[###############
[SUB FOR 3 # PARAMS
[
#1G LDA 
0
STA i
0
[
LDA i
160
STA
9O
SET i 16
-3
LDA
#3H 3771
STA 
9N-1
SET i 15
-4
AZE i
JMP p+3
SET i 14
1777
SET i 1
#9O 160 [XCOORD
LDA
9N-1
ROL 3
STA
9N-1
BCL i
7770
ROL 1
XSK 14
JMP p+6
AZE
JMP p+4
LDAi
30
JMP p+2
XSK i 14
NOP
ADAi
1R
STC 17
LDA i
#1H -277
DSC 17
DSC i 17
XSK i 15
JMP 9O+1
XSK i 16
JMP p+2
JMP 1G+3
LDA i
200
ADD 9O
STC 9O
LDA i
1
ADD 3H
STC 3H
JMP 3H-1
[
[##################
[SUB TO STORE HISTOGRAMS ON TAPE
[STORES QN 6+7 FIRST
[THEN STORES QN 4+5 FOR DUAL HISTOGRAMS
[
0
#9J LDA
0
STA i
0
[
LDA
9J-1  [1ST STORAGE LOCATION ON TAPE
ADA i
6000
STA
9K
ADA i
1001
STC 9K+2
WRC i u
#9K 0      [QN 6 INTO BN IDENTIFIED IN 3C
WRC u
0      [QN 7 INTO BN+1
LDA
4M
SAE i
1
JMP p+2
JMP 9J+3  [IF SINGLE HISTO, RETURN
[
LDA  [IF DOUBLE HISTO, THEN STORE 2ND ONE
9J-1  [1ST STORAGE BIN
ADA i
4002
STA
4K
ADA i
1001
STC 4K+2
WRC i u
#4K 0      [QN 4 INTO BN+2
WRC u
0      [QN 5 INTO BN+3
JMP 9J+3  [RETURN
[
[
[##################
[SUB TO GET INFO FROM TAPE TO QN 6+7
[
0
#9L LDA
0
STA i
0
[
LDA
9L-1
ADA i
6000
STA
9M
ADA i
1001
STC 9M+2
RDC i u
#9M 0
RDC u
0
JMP 9L+3
[
[
[##################
[QUESTION + ANSWER SUBROUTINE
[
#1Q LDAi
2
ADD 0
STAi
0
ADD p+133
STC 1
LDA 1
ADD p+170
STC p+35
LDAi 1
STC p+26
STC 6
SET 3
p+23
SET 4
p+26
JMP p+125
JMP p+3
JMP p+14
JMP p-3
STH 3
LDHi 4
COM
STC 6
ADD p+202
STHi 3 [LDHi 3
XSKi 6
JMP p-2
LDHi 3
JMP p-15
STH 3
SETi 4
0
LDAi
137
STC p+12
SETi 3
0
SET 5
p-7
SETi 1
100
LDAi
-40
ADMi
0
LDHi 3
JMP p+67
JMP p+303
JMP p+17
SHDi
1200
JMP p-14
JMP p+71
JMP p-10
JMP p+67
SROi
0
DIS 1
LDHi 5
JMP p+52
JMP p-17
JMP p-20
JMP p-10
KST
JMP p-40
KBD
SETi 2
p+233
SHD 2
JMP p+121
SHDi 2
JMP p-105
XSK 6
JMP p-51
SHDi 2
JMP p+20
SHDi 2
JMP p+131
SHDi 2
JMP p+21
JMP p+25
JMP p-106
JMP p-62
STC p+5
JMP p+20
JMP p+50
JMP p+47
LDAi
0
STH 4
JMP p-72
LDH 4
JMP p+11
JMP p-75
-6002
JMP p+36
JMP p+4
JMP p-101
JMP p-104
JMP p-3
LDHi 4
SHDi
7000
JMP 0
SAEi
76
XSKi 0
XSKi 0
JMP 0
ROL 1
ADD p+163
STC 2
ADD p+20
ADD 1
STC 1
ADD 5
COM
ADD 4
AZE
CLR
STC p-100
ADD p-115
DSC 2
DSCi 2
JMP 0
LDAi
-4000
ADM
4
JMP p-141
[CHARACTER PATTERNS
[KBD 0:CODE 00
#1R 4136
3641
[1:01
2101
0177
[2:02
4523
2151
[3:03
4122
2651
[4:04
2414
0477
[5:05
5172
0651
[6:06
1506
4225
[7:07
4443
6050
[8:10
5126
2651
[9:11
5122
3651
[EOL:12
KBDi
ADD p-212
[DEL:13
JMP 0
67
[SPACE:14
0000
0000
[i:15
0101
0126
[p:16
3700
3424
[-:17
0404
0404
[+:20
0404
0437
[|:21
0000
0077
[#:22
JMP p-102
JMP p-52
[CASE:23
JMP p-53
JMP p-211
[A:24
4477
7744
[B:25
5177
2651
[C:26
4136
2241
[D:27
4177
3641
[E:30
4577
4145
[F:31
4477
4044
[G:32
4136
2645
[H:33
1077
7710
[I:34
7741
0041
[J:35
4142
4076
[K:36
1077
4324
[L:37
0177
0301
[M:40
3077
7730
[N:41
3077
7706
[O:42
4177
7741
[P:43
4477
3044
[Q:44
4276
0376
[R:45
4477
3146
[S:46
5121
4651
[T:47
4040
4077
[U:50
0177
7701
[V:51
0176
7402
[W:52
0677
7701
[X:53
1463
6314
[Y:54
0770
7007
[Z:55
4543
6151
[META
[56
[CASE EOL
2356
1322
[57
[CASE DEL
1200
p-137
[?:60
[CASE SPACE
4020
2055
[=:61
[CASE i
1212
1212
[u:62
[CASE p
0107
0107
[,:63
[CASE -
0500
0006
[.:64
[CASE +
0001
0000
[$:65
[CASE |
4577
7745
[[:66
[CASE #
4177
0000
[_:67
[CASE CASE
0101
0101
[":70
[CASE A
LDHi 3
LDAi
[;:71
[CASE B
14
JMP p-277
[<:72
[CASE C
2410
0042
[>:73
[CASE D
4200
1024
[]:74
[CASE E
0000
7741
[*:75
[CASE F
2050
0050
[::76
[CASE G
[UNDEFINED:77
[Q+AR
[12|27|67
[
[
[
[##################
[SUB TO CONVERT ANSWER BUFFER TO OCTAL
[LOC BUFF REG 1
[NO. RET TO REG 2
[
#9A LDA
0
STAi
0
[
SET i3
7774
SET i2
7777
#9C LDHi1
SAEi
0067
JMPp+2 [NOT BLANK
JMP 9B [BLANK
ADD 2
ROL 3
STA
2
XSK i 3
JMP 9C
[
ROR 3
STC 2
JMP 9A+3
#9B LDA
2
JMP  p-5
[
[
#2A "MEMORY, SINGLE OR
DUAL?"1:;
#2B 0
0
0
#2C "NO. RUNS PER HISTO"3:;
#2D 0
0
0
#2E "BIN WIDTH"3:;
#2F 0
0
0
#2G "1ST STORAGE LOC"3:;
#2H 0
0
0
#2M "DESIRED BLOCK"3:;
#2N 0
0
0
[
[
[JULY 1,1976     R.R.A.
[JAN. 1,1979 MODIFICATIONS FOR COMPATABILITY WITH CSPOT PROGRAMS
[
[OCT 14,1981  DUAL HISTOGRAM OPTION ADDED BY T.O.V.



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