File SPP3

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

[STARTER PROGRAM
$1
[PAGE 3
9W=0  [PAGE 0
9X=1  [PAGE 1
9Y=2  [PAGE 2
9Z=3  [PAGE 3
1Z=2600  [CHAR TABLE BASE
6R=1750  [START OF SYSTEM CONSTANT AREA
[
[SYSTEM CONFIGURATION
6S=0  [RBN COMPILER
6T=14  [RBN DIAGRAM ERROR PROCESSOR
6U=24  [RBN ERROR FILE
6V=34  [RBN TRAN PROG
6W=50  [RBN RUN PROC
6X=62  [RBN OBJ TIME ERROR PROC
6Y=72  [RBN SYSTEM FUNCTIONS
[
[
[
#6C UMB 9W  [P0
LDA
3750
AZE i
JMP p+6
APO
JMP p+7
SET i 4
9T-1
JMP p+6
SET i 4
9U-1
JMP p+3
SET i 4
9V-1
[INITIALIZE SYSTEM CONSTANTS
SET i 1
3764-1
SET i 17
3C-1
SET i 16
-14
#3A CLR
SRO i
1761
APO  [SKIP
LDA i 17
STA i 1
XSK i 16
JMP 3A
[
SET i 13
0
#9S LDA i 4
STC p+1
0  [DISPATCH JMP
HLT  [SAFETY HALT
[
[LOAD THE COMPILER
#2Z SET i 4
2000+1753
SET i 7
2000+1753
XSK i 7
UMB 9W  [P0
LDA i 7
SCR 11  [=9
ROL 3
BSE i
RDC i
STC 6I
SET i 7
3747
SET i 6
-30
UMB 9W  [SAVE SYSTEM CONSTANTS
LDA i 7
UMB 9Y
STA 7
XSK i 6
JMP p-5
UMB 9W  [P0
LDA 4  [FB1[SYSTEM FILE]
ADD 6I+1  [=4|0
STC 6I+1
#6I 0  [RDC i
4|0  [QN|BN
LDA i
1001
ADM
p-4  [NEXT BLOCK AND QUARTER
SRO i
3567
JMP 6I  [READ ANOTHER
LDA
6I+1
ADA i
-4000  [QN=4
STC 6I+1
SRO i
7776
JMP p+14
SET i 6
-30
SET i 7
3747
UMB 9Y  [P2
LDA i 7
UMB 9W  [P0
STA 7
XSK i 6
JMP p-5
UMB 9X  [P1
SRO i
0002
UMB 9Y  [P2
SRO i
0003
JMP 6I
LDA
6I
BCO i
i+3
STC p+1
0  [MTB  -STOP TAPE
0
LMB 2
JMP 1400  [INIT COMPILATION
[
[
[
[
[
[
[FILE DESCRIPTORS
1F=1750
2F=1753
3F=1756
4F=1761
[
[SYSTEM CONSTANT INIT
#3C -1  [LVI INIT
4000  [PROC STACK PTR INIT
3373  [DATA STACK PTR INIT
-377  [-#WDS|D-BLOCK
5  [LEN FP#
[
[
[ACC=ADDR OF MSG -4000
#9N STC 6
ADD 0  [LINK
STC 9N+7
[
UMB 9Y  [P2
LDH i 6
SHD i
7700  [77 IS TERMINAL
JMP  [RETURN
JMP 4Y  [DISPLAY CHAR
JMP 9N+3
[
[
[ ACC=CHAR TO BE DISPLAYED
[1Z= CHARTBL IN PAGE 2
[4Z=CDP1=CURRENT DISPLAY POSITION
[CHAR#|LINE
[5Z=CDP2=CURRENT DISPLAY LINE
[V-COORDINATE
#4Y ROL 1
ADA i
1Z  [CHARTBL BASE
STA
4Y+31
ADD 4Y+35  [=1
STC 4Y+33
ADD 0  [LINK
STC 4Y+40
[4Y+11
LDA i
-30  [MAX CHAR #|LINE
ADD 4Z  [CDP1
APO i
JMP 4Y+41  [MAKE 4Z|MOD 31
LDA
4Z  [CDP1
ROL 2
STA i
0
ROL 2
ADD p-2
STC 1  [SET H
ADD 5Z  [CDP2
UMB 2
DSC
[4Y+31
0
[4Y+32
DSC
0
LDA i
[4Y+35
1
ADM
4Z
[4Y+40
JMP  [RETURN
[4Y+41
ADA i
-1  [MAKE MOD 31
AZE i
CLR
STC 4Z  [CDP1
LDA i
-40
ADD 5Z  [CDP2
APO
ADD 4Y+35  [=1
STA
5Z
ADA i
373
APO i
JMP 4Y+11
ADD p-3
[ACC=341
JMP p-10
[
[CDP
#4Z 0
#5Z 340
[4Z=0 CORRESPONDS TO H=0
[5Z=340=V
[
[SCOPE CR-LF
#3W LDA i
31
ADD 4Z  [CDP1
STC 4Z
ADD 0  [LINK
STC 3W+13
LDA i
14  [SPACE
JMP 4Y
CLR
STC 4Z  [CR
JMP  [RETURN
[
[
[V0=341 OR 340
[V1=300
[V2=240
[V3=200
[V4=140
[V5=100
[V6=40
[V7=1
[V8=7741
[V9=7702
[V10=7643
[V11=7604
[V12=7545
[V13=7506
[V14=7447
[V15=7410
[
[
[
[INPUT KEYBOARD SYMBOL
#1K KST
JMP 0  [STILL WAITING
[[0] RETURN=>WAITING
SET 12
0  [LINK
KBD i
SHD i
1200  [EOL
JMP 2K+7
XSK 13  [TEST FOR CASE LAST RECEIVED
JMP 2K-11  [CASE NOT LAST RECEIVED
ADA i 
44  [UPPER CASE INCR
SET i 13
0  [RESET SWITCH
SHD i
4400+0000  [CASE-0
JMP 2K+4
SHD i
4400+100  [CASE-1
JMP 2K+3
SHD i
4400+1300  [CAE-DEL
JMP 2K+5
SHD i
4400+4400  [CASE-Q
JMP 2K+2
SHD i
4400+5200  [CASE-W
JMP 2K+1
JMP 2K  [OTHER
[2K-11
SHD i
1300  [DEL
JMP 2K+6
SAE i
0023  [CASE
JMP 2K
SET i 13
7777
JMP 12  [WAITING
[[0]+10  OTHER
#2K XSK i 12
[[0]+7  CASE-W
XSK i 12
[[0]+6  CASE-Q
XSK i 12
[[0]+5  CASE-1
XSK i 12
[[0]+4  CASE-0
XSK i 12
[[0]+3  CASE-DEL
XSK i 12
[[0]+2  DEL
XSK i 12
[[0]+1  EOL
XSK i 12
[[0]    WAITING
JMP 12
[
[
[
[RESUME
#9T JMP 2L  [LOOKUP FILES
JMP 2Z  [LOAD COMPILERS
[START 20
#9U JMP 1S-5  [STATE 1
JMP 3S-5  [STATE 2
JMP 4S-5  [STATE 3
JMP 2Z  [LOAD COMPILER
[START 400
#9V JMP 2L  [FILE VALIDATION
JMP 2Y  [LOAD TRANSITION PROGRAM
[
[
[STATE DISPLAY DIRECTORS
#9J -4  [STATE 1
1Q
1M-4000
JMP 7R
#9K -2  [STATE 2
5Q
3N-4000
JMP 4D
#9L -2  [STATE 3
8Q
6N-4000
JMP 4D
[
[XR14 PTS TO FILE
#2S JMP 1S  [STATE DEPENDENT RETURN
[
[
[CASE-1
#1W JMP 9B
LZE i
JMP p+3  [CASE-0
APO i
JMP 2S
[CASE-0
#1V JMP 9A
JMP 2S
[CASE-W
#1Y JMP 9B
LZE
JMP p+3  [CASE-Q
APO i
JMP 2S
JMP 9A-1
JMP 9B
APO
JMP 9B
JMP 2S
[CASE-Q
#1X JMP 9A-1
JMP 2S
[
XSK i 14
#9A XSK i 14
LDA i 14
STC 14
LDA 14
BCL i
1000
STA 14
JMP 0
[
#9B LDA 14
BCO i
1000
STA 14
ROL i 3
JMP 0
[
[DISPLAY STATE INFO
#2D SET i 5
9J
LDA
0
STA i
RETURN
LDA 5  [-#RCDS IN RING
STC 15
LDA i 5  [A[1ST RCD]
STC 16
LDA i
341
STC 5Z  [LINE CDP
STC 4Z  [CHAR #|LINE
LDA i 5  [A[HEADER MSG]
JMP 9N
JMP 5V
[
LDA i 5  [ELEMENT JMP
STC p+1
[
RECORD PROCESSING
XSK i 16
LDA i 16  [SUCCESSOR
STC 16
XSK i 15
JMP p-5
[
JMP 1P  [DISPLAY PTR
JMP 2D+5  [RETURN
[
[NEXT LINE
#5V LDA i
-40
ADD 5Z
STC 5Z
JMP 0
[DISPLAY FILE INFO
#7R SET 17
0  [LINK
JMP 5V  [NEXT LINE
STC 4Z
LDA i
2M-4000  [DESC:
JMP 9N
LDA i
4
ADD 16
STC 1
LDA 1  [DESC PTR-4000
JMP 9N
JMP 7S
[
JMP 5V  [NXT LINE
LDA i 
4  [INDENT LINE 4 SPACES
STC 4Z
LDA i
8M-4000  [NAME
JMP 9N
LDA 16
ROL 4
APO i
JMP p+4  [NOT CM
LDA i
9M-4000  [CURRENT MANUSCRIPT
JMP p+4
LDA i
4000+6
ADD 16
JMP 9N  [FILE NAME
[
JMP 5V  [NXT LINE
LDA i
4
STC 4Z
LDA i
7N-4000  [UNIT 
JMP 9N
LDH i 16
JMP 4Y
JMP 17  [RETURN
[
[DISPLAY X AND|OR NO
#7S LDA
0
STC 7S+17
LDA 16
APO i
JMP p+10
LDA i
24
STC 4Z
LDA i
0053  [X
JMP 4Y
LDA 16
[
ROL 1
APO i
JMP  [RETURN
LDA i
26
STC 4Z
LDA i
p+3-4000
JMP 9N
JMP p-7  [RETURN
"NO;
7777
[
[DISPLAY PTR
#1P SET 17
0
LDA i
30
STC 4Z
LDA i 
5
ADD 14
STC 1
LDA 14
ROL 2
APO
XSK i 1
LDA 1  [V
STC 5Z
LDA i
0077  [PTR
JMP 4Y
JMP 17  [RETURN
[
[
[STATE 1
LDA i
JMP 1S
STC 2S
SET i 14  [PTR PTR
1Q
#1S JMP 2D  [DISPLAY
JMP 1K  [INPUT
JMP p-2  [WAITING
JMP 2L  [EOL
JMP 3L  [DEL
JMP p-5  [CASE-DEL
JMP 1V  [CASE-0
JMP 1W  [CASE-1
JMP 1X  [CASE-Q
JMP 1Y  [CASE-W
[OTHER CHAR RETURN
SAE i
46+44  [CASE-S
APO
JMP 9F  [DEFINE DEFAULT
STA i
#3K 0  [SAVE INPUT CHAR
LDA 14
BCL i
6000  [REMOVE X AND NO
STA 14
ROL 2
APO i
JMP 4K  [INPUT FILE NAME
[NEW UNIT
LDA
3K
SAE i
1
JMP p+12
LDA 
14  [PTR PTR
BSE i
4000
STC 14
LDA
3K
STH 14  [NEW UNIT
JMP 1W  [CASE-1
[
AZE i
JMP 0
JMP 1S  [INVALID UNIT-IGNORE
[INPUT A NEW FILE NAME
#4K SET i 10
5K
LDA
3K
STH 10  [1ST CHAR
SAE i
40+44  [CASE-M
JMP p+12
LDA 14
ROL 5
APO i
JMP p+6  [CM NOT ALLOWED
LDA 14
BSE i
0200
STA 14
JMP 1W  [CASE-1
[
LDA i
4177  [CHAR CNT
STC 6K
JMP 9D  [CLEAR INPUT AREA
[
JMP 2D  [DISPLAY STATE 1
JMP 3D  [DISPLAY INPUT STATUS
JMP 1K  [INPUT TOKEN
JMP p-3  [WAITING
JMP 4L  [EOL
JMP 5L  [DEL
JMP 6L  [CASE-DEL
JMP 1V  [CASE-0
JMP 1W  [CASE-1
JMP 1X  [CASE-Q
JMP 1Y  [CASE-W
[NEXT INPUT CHAR
SRO i
#6K 0377  [CHAR CNTR
STH i 10  [ACCEPT CHAR
LDA
6K
APO
JMP 6K-14
ROL 1  [CHAR IGNORED
STC 6K
JMP 6K-14
[DELETE 1 CHAR
#6L LDA
6K
APO i
JMP 6K-14
ROL 1
STC 6K
COM
STH 10  [REMOVE LAST CHAR
LDA i
-4000
ADD 10
STC 10  [BACKSPACE INPUT
JMP 6K-14
[DELETE
#5L LDA i
0377  [8 INPUT CHAR
STC 6K
COM
STC 5K
SET i 10
5K-4000
JMP 4K+24
[
#4L SET i 6
5K-1
LDA i
6
ADD 14
STC 7
SET i 1
-4
LDA i 6
STA i 7
XSK i 1
JMP p-3
LDA 14
BCL i
0200  [CLEAR CM
STA 14
JMP 1W  [CASE-1
[
#5K 0
0
0
0
7777
[DISPLAY FILENAME INPUT
#3D SET 17
0
LDA i
7410
STC 5Z
STC 4Z
LDA i
13
JMP 4Y
LDA i
5K-4000
JMP 9N  [NAME
LDA i
13
JMP 4Y
JMP 17  [RETURN
[
[
[
[DEL
#3L LDA 14
BSE i
4000  [SET X FLAG
STA 14
JMP 1V  [CASE-0
[EOL
#2L SET i 16  [COUNTER
-4
SET i 10  [FILE PTR
1Q
LDA i
7776
STC 1L  [NO RECORDER
[
LDA 10  [LOAD FILE FLAGS
APO i
JMP p+7  [VALIDATE
[
XSK i 10
LDA i 10  [LOAD SUCCESSOR
STC 10
XSK i 16
JMP 2L+7  [NEXT
JMP 1L+7
[
JMP 7V  [SEARCH
JMP p+6  [NOT FOUND
LDA 10  [FOUND
BCL i
2000
STA 10
JMP 2L+12  [STEP TO NEXT
[
SRO i
#1L 7776  [NO RECORDER
NOP
LDA 10
BSE i
2000  [NO
STA 10
JMP 2L+12  [STEP TO NEXT
[1L+7
SRO 
1L  [NO RECORD
JMP 1S-5  [RETURN TO STATE 1 INIT
[
[
JMP 9S  [NEXT ACTION
[
[
#9D SET i 1
5K
CLR
COM
STH i 1
STA i 1
STA i 1
STA i 1
JMP 0  [RETURN VIA 0
[
[
#7V LDA
0
STC 7W
LMB 9W  [P0
JMP 8U
[SEARCH INDEX
JMP 9H  [CM RETURN
SET i 7
3010-1  [INDEX ADDRESS
LDA i
6
ADD 10
STC 1
SET i 6
-4  [LENGTH OF ENTRY
LDA i 7
SAE i 1
JMP p+4
XSK i 6
JMP p-4
JMP 8Y  [FOUND
LDA i
-3
ADD 6
COM
ADM
7
SAE i
3777
JMP p-24
[
LDA 10
BSE i
2000  [NO
STA 10
#7W RETURN
#8Y SET 6
10
LDA i 6  [FD PTR
STC 6
LDA i 7
SAE i 
5757
JMP p+7
XSK i 7
LDA i 7
SAE i
5757
JMP p+2  [SKIP
JMP 7W-4  [NULL FILE
[
STA i
0  [FB1
ADA i
-1
ADA i 7  [FILE LENGTH
STA i
0  [FB2
LDA
p-7  [FB1
UMB 9W  [P0
STA 6
ADD p-10  [=-1
STA i 6  [CFP
LDH i 10
ROR 3
ADD p-11  [FB2
STA i 6
#9H SET 0
7W
XSK i 0
JMP 0  [RETURN VIA 0
[
[
[STATE 2
#5Q 4600  [FLAGS
JMP 9R  [PRINT PARAMETERS
6Q  [SUCCESSOR
6Q  [PREDECESSOR
1N-4000
200  [V3
[
#6Q 4000  [FLAGS
JMP 9Q  [PRINT SOURCE FILE
5Q  [SUCESSOR
5Q  [PREDECESSOR
2N-4000
40  [V6
1   [V7
0000  [FIRST LINE
3777  [LAST LINE
[FLAG WORD CODE
[B11  N
[B10  Y
[B9  V0
[B8  V1
[B7  ONLY V0 APPLIES,CASE-0==CASE-1
[
[
#8Q 0600  [FLAGS
JMP 2Z  [LOAD COMPILER
1R
1R
7M-4000
200  [V3
[
#1R 0600  [FLAGS
JMP 2Y  [LOAD TRAN PROG
8Q
8Q
7M+6-4000
100  [V5
[
[STATE 2 CODE
LDA i
JMP 3S
STC 2S
SET i 14  [PTR
5Q
#3S SET i 5
9K
JMP 2D+2  [DISPLAY STATE 2
JMP 1K  [INPUT TOKEN
JMP p-4  [WAITING
JMP 7U  [EOL
JMP 8R  [DEL
JMP p-7  [CASE-DEL
JMP 1V  [CASE-0
JMP 1W  [CASE-1
JMP 1X  [CASE-Q
JMP 1Y  [CASE-W
[OTHER RETURN
STA
3K  [SAVE INPUT
SAE i
"0Y;
JMP p+10
LDA 14
BCL i
4000
BSE i
2000
STA 14
JMP 1W  [CASE-0
[
SAE i
"0N;
JMP p+7
LDA 14
BCL i
2000
BSE i
4000
JMP p-12
[
LDA 14  [FLAGS
ROL 4
APO
JMP 3S  [IGNORE INVALID ENTRIES
LDA
3K  [LOAD INPUT
ADA i
-7
APO i
JMP 3S  [IGNORE NON DIGIT
SET i 10
5K
LDA
3K
STH 10
LDA i
4007  [CHAR CNT
STC 6K
JMP 9D  [CLEAR INPUT AREA
#5B SET i 5
9K
JMP 2D+2  [DISPLAY STATE 2
JMP 3D  [DISPLAY INPUT STATUS
JMP 1K  [INPUT TOKEN
JMP 5B  [WAITING
JMP 4J  [EOL
JMP 5I  [DEL
JMP 6L  [CASE-DEL
JMP 1V  [CASE-0
JMP 1W  [CASE-1
JMP 1X  [CASE-Q
JMP 1Y  [CASE-W
[NEXT INPUT CHAR
ADA i
-7
APO i
JMP 5B  [IGNORE NON-DIGIT
ADA i 
7
AZE i
CLR
SRO
6K
STH i 10  [ACCEPT DIGIT
LDA
6K
APO
JMP 5B
ROL 1  [CHAR IGNORED
STC 6K
JMP 5B
[DEL
#5I LDA i
0017  [4 CHAR INPUT
STC 6K
COM
STC 5K
SET i 10
5K-4000
JMP 5B-6  [CLEAR INPUT
[EOL
#4J CLR
STC p+14
SET i 10
5K-4000
LDA
6K
APO i
JMP p+12  [DONE
ROL 1
STC 6K
LDH i 10
ROR 3
ADA i
0
ROL 3
STC p-2
JMP p-14
[
LDA i
7
ADD 14
STC 1
LDA 14
ROL 2
APO
XSK i 1
LDA
p-15
STA 1
JMP 1W  [CASE-1
[
[
#4D SET 17
0  [LINK
JMP 5V  [NXT LN
JMP 5V
STC 4Z
LDA i
4  [INDENT 4 SPACES
ADD 16
STC 1
LDA 1
JMP 9N
JMP 8S  [Y OR N
LDA 16
ROL 4
APO
JMP 17  [RETURN
JMP 5V
ADD p-13  [=4
STC 4Z
LDA i
4N-4000  [FIRST LN #
JMP 9N
LDA i 
7
JMP 8T  [DISPLAY LINE #
JMP 5V
ADD 4D+6  [=4
STC 4Z
LDA i
5N-4000  [MAX LN #
JMP 9N
LDA i 
10
JMP 8T  [DISPLAY LN #
JMP 17  [RETURN
JMP 1P  [DISPLAY PTR
JMP 4D+4  [EXIT
[
[
[
[
[
[DISPLAY Y OR N
#8S LDA
0
STC 8S+16
LDA i
26
STC 4Z
LDA 16
APO i
JMP p+4
LDA i
"0N;
JMP p+6
ROL 1
APO i
RETURN
LDA i
"0Y;
JMP 4Y
JMP p-4
[
[DISPLAY LINE #
#8T ADD 16
STC 1
ADD 0
STC p+14
ADD p+15
STC p+20
LDA i
7760
STC p+6
LDA 1
ROL 3
STA i
0
SRO i
7760  [DIGIT CNTR
RETURN
BCL i
7770
AZE
JMP p+7
SRO i
7770
JMP 4Y
LDA
p-14
JMP 8T+12
[
JMP 4Y
CLR
COM
STC p-10
JMP p-7
[
[DEL-STATE 2
#8R LDA i
-2
ADM 
4
JMP 9S
[EOL-STATE 2
#7U SET i 16
5Q
SET i 15
-2
LDA 16
APO i  [N?
JMP 7T
XSK i 16
LDA i 16  [SUCCESSOR
STC 16
XSK i 15
JMP p-7
JMP 9S  [STATE 2 EXIT
#7T LDA i 16
STC p+4
LDA i
1Q
LMB 9W  [P0
JMP
JMP p-14
[
[
[
[STATE 3
LDA i
JMP 4S
STC 2S
SET i 14
8Q
#4S SET i 5
9L
JMP 2D+2  [DISPLAY STATE 3
JMP 1K  [INPUT TOKEN
JMP p-4  [WAITING
JMP 4H  [EOL
JMP 8R  [DEL
JMP 4S  [CASE-DEL
JMP 1V  [CASE-0
JMP 1W  [CASE-1
JMP 1X  [CASE-Q
JMP 1Y  [CASE-W
[OTHER INPUT
JMP 4S
[EOL
#4H LDA i 14
STC p+1
0  [DO ACTION
[
[ROUTINE TO LOAD 1 BLOCK OF TRANSITION PROGRAM
#2Y SET i 1
6R+2000+3
UMB 9W  [P0
LDA i
6V+12
ADA 1  [FB1[SYSTEM FILE]
STC p+11
XSK i 1
LDA i 1
BCL i
6777
ROR 6
ADD p+2
STC p+1
RDC i
0
JMP 20  [ENTER TRANSITION PROGRAM
[
$1714
#1Q 0300  [FLAGS
1F+2000  [FD PTR
2Q  [SUCCEEDING FILE PTR
4Q  [PRECEDING FILE PTR
3M-4000  [DESC PTR
200  [V3
140  [V4
"CUR.MAN ;
7777
[
#2Q 0
2F+2000
3Q
1Q
4M-4000
41  [V6
1  [V7
"BASIC.F1;
7777
[
#3Q 0
3F+2000
4Q
2Q
5M-4000
7702  [V11
7643  [V12
"BASIC.F2;
7777
[
#4Q 0
4F+2000
1Q
3Q
6M-4000
7545  [V14
7506  [V15
"BASIC.F3;
7777
[FLAG WORD FORMAT
[
[B11  X
[B10  NO
[B9   V0
[B8   V1
[B7   CM
[B6   CM ALLOWED
[B5-B0  UNIT
[
[DEFINE NEW DEFAULT FILE DEFS
#9F WRC
QN|BN
JMP 2S
[
[TO BE USED BY SPP0
1Q
[
[END OF MANUSCRIPT
[10-20-69



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