Directory of image this file is from
This file as a plain text file
*20
SEGMNT 2
*20
CLR
PDP
PMODE
JMP I .+1
20
LMODE
SEGMNT 1
PMODE
*2020
MAJORD,0
SKP CLA
PCHECK
TAD I .-1
SZA CLA
TAD FUDGE
TAD PSTRING
DCA QP1
LINC
LMODE
LIF 1
LDF 1
SET I 17
-10
JMP QAINIT
QP1,0
DUMMY
NOP
NOP
XSK I 17
JMP QARFSH
LIF 0
LDF 0
CLR
PDP
PMODE
JMP I MAJORD
FUDGE,FIRST-LAST
PSTRING,LAST
LMODE
FIRST,TEXT 6F*** CHECKSUM ERROR ***
FALL BINARY DATA LOST
6
LAST,TEXT 6
F OPTIONS
HD---RETURN TO DIAL
HH---READ IN TAPE ON HIGH SPEED READER
HL---READ IN TAPE ON LOW SPEED READER
\6
DUMMY,0
0
0
0
*.+DUMMY-FIRST
/Q AND A PROGRAM
/
/PDP-12
/REMOVE *1000 BELOW IF
/INSERTING SOURCE DIRECTLY
/INTO YOUR PROGRAM SOURCE
/
/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
BSE I
200
MSC 4
SET I 1
100
LDA I
-40
ADM I
0
QAH,LDH I 3
JMP QAO+1
JMP QAZ
JMP QAJ
SHD I
4300
JMP QAG
JMP QAP
JMP QAH
JMP QAP
SRO I
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 IODE
ISZ BLOCK /INCREMENT RETURN
JMP I BLOCK /OR BACK
COUNTA, 0 /COUNTER NO OF DATA WRDS
COUNTB, 0 /COUNTER 1ST 12 WORDS
TEMPA, 0 /RANDOM USAGE
BKBNS, 0000 /SAVE BKWD BN AS CALLED
BKBNA, 0000 /FORM BKBWD BN THAT
/WILL BE WRITTEN ON TAPE
B1TAB, 0400 /TABLE USED TO FORM
1000 /BACKWARD BLOCK NO.
2000
4000
0020
0040
0100
0200
0001
0002
0004
0010
K0016, 0016 /CONSTANTS
K7764, 7764
KB1TAB, B1TAB
KWAIT, WAIT
KWMKWD, WMKWD
K5252, 5252
*4600
/SUBROUTINE TO WAIT FOR COMPLETION
/OF/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
/
/
GETKBD,CLR
JMP 0
/
/
SEGMNT 0
/
/
PMODE
*600 /BINARY LOADER ADDRESS
SWITCH,0
MEMTEM,0
CHAR,0
CHKSUM,0
ORIGIN,0
BEGG,0
DCA SWITCH
JMS READ
TAD M376
SPA SNA CLA
JMP .+4
ISZ SWITCH
CMA
JMP BEGG+1
TAD SWITCH
SZA CLA
JMP BEGG+2
TAD CHAR
AND MASK
TAD M200
SPA
ISZ BEGG
SPA SNA CLA
JMP I BEGG
TAD CHAR
AND FMASK
TAD CHANGE
DCA MEMTEM
JMP BEGG+2
FMASK,70
CHANGE,CDF
READ,0
0
LOR,KSF
JMS DILLYDALLY
KRB
DCA CHAR
TAD CHAR
JMP I READ
HIR,6011
JMS DILLYDALLY
6016
JMP LOR+3
MASK,300
BEND,JMS ASSEMB
CIA
TAD CHKSUM
JMP I .+1
DONE
M376,HLT
BEGIN,KCC
6014
6214
TAD CHANGE
DCA MEMTEM
TAD I GETRED
SMA CLA
TAD HIRI
TAD LORI
DCA READ+1
JMS BEGG
JMP .-1
GO,DCA CHKSUM
TAD MEMTEM
SKP
DOMEMF
JMS I .-1
TAD CHAR
DCA WORD1
JMS READ
DCA WORD2
JMS BEGG
JMP BEND
JMS ASSEMB
SNL
JMP MEMFLD
DCA ORIGIN
CHEX,TAD WORD1
TAD WORD2
TAD CHKSUM
JMP GO
MEMFLD,NOP
JMS I .+2
SKP
PUTW
ISZ ORIGIN
M200,7600
JMP CHEX
ASSEMB,0
TAD WORD1
CLL RTL
RTL
RTL
TAD WORD2
JMP I ASSEMB
LORI,JMP LOR
HIRI,HIR-LOR
0
WORD1,0
WORD2,0
GETRED,HORLOW
DILLYDALLY,0
CLA CMA CLL RAL/-2
TAD DILLYDALLY
DCA DILLYDALLY
TAD I 14
CMA RTR
TAD I 14
DCA 17
TAD I 17
TAD I 14
CML IAC RTL
TAD I 14
DCA 17
TAD I 17
TAD I 14
LINC
LMODE
DIS I 17
PDP
PMODE
TAD I 17
CMA RTL
TAD I 14
LINC
LMODE
DIS I 14
PDP
PMODE
CLA CLL
JMP I DILLYDALLY
/
/
/
/
/
/
/
*20
0002 / COMMON START FOR EITHER
CLA CLL / 8 OR LINC MODE
JMP I .+1 /MAJOR START
START / MAIN STARTING ADDRESS
JMP 177 /MAJOR START
MESS,0
CLA CLL
TAD I MESS
ISZ MESS
SNA
JMP I MESS
6046
6041
JMP .-1
JMP MESS+1
INBUF,0
CLA CLL
TAD I INBUF
ISZ INBUF
SNA
JMP I INBUF
JMS BUF
JMP INBUF+1
BUF,0
LINC
LMODE
WHERE,0
BUF1,STH I 15
XSK I 12
JMP OUTBUF
SET I 12
-1000
SET I 15
BUFF1-1+4000
LDA I
JMP BUF2
STC WHERE
ADD 10
BCL I
7000
BSE I
2000
STD
JMP .-1
STC .+2
WRC
0
XSK I 10
XSK I 10
JMP OUTBUF
BUF2,STH I 16
XSK I 13
JMP OUTBUF
SET I 13
-1000
SET I 16
BUFF2-1+4000
LDA I
JMP BUF1
STC WHERE
ADD 11
BCL I
7000
BSE I
3000
STD
JMP .-1
STC .+2
WRC
0
XSK I 11
XSK I 11
JMP OUTBUF
/
OUTBUF,PDP
PMODE
CLA CLL
JMP I BUF
LINBUF,0
JMS INBUF
252
262
260
43
320
315
317
304
305
43
306
311
305
314
304
240
260
43
0
JMP I LINBUF
A1,701
A2,7300
B1,4016
B2,4017
*200
PUTW,0
DCA HUMPH
TAD ORG
CMA
TAD I PORIGIN
SZA CLA
JMP NOTOK
BACK1,TAD HUMPH
JMS PUTO
TAD I PORIGIN
DCA ORG
JMP I PUTW
NOTOK,JMS INBUF
252
0
TAD I PORIGIN
JMS PUTO
JMP BACK1
HUMPH,0
PORIGIN,ORIGIN
ORG,0
PUTO,0
SNA
JMP PZERO
DCA 1
DCA TEST
TAD 1
RTL
RTL
JMS PUTWO
TAD 1
RTR
RTR
RTR
JMS PUTWO
TAD 1
RTR
RAR
JMS PUTWO
TAD 1
JMS PUTWO
JMS INBUF
43
0
JMP I PUTO
PZERO,JMS INBUF
60
43
0
JMP I PUTO
PUTWO,0
AND L7
SNA
JMP PUTT
PUTENT,TAD L260
DCA OUTP
ISZ TEST
JMS INBUF
OUTP,0
0
JMP I PUTWO
L7,7
L260,260
TEST,0
PUTT,TAD TEST
SNA CLA
JMP I PUTWO
JMP PUTENT
DOMEMF,0
LINC
LMODE
BCL I
7707
ROR 3
STA
FIELD3
PDP
PMODE
CIA
TAD FIELD2
SNA CLA
JMP I DOMEMF
JMS INBUF
306
311
305
314
304
240
0
TAD FIELD3
DCA FIELD2
TAD FIELD2
JMS PUTO
JMP I DOMEMF
FIELD2,-1
FIELD3,-1
*400
START,0
LINC
LMODE
LIF 0
LDF 0
RDC
6300
RDC
7301
LDA I
3002
STA
1002
LDA I
7776
STA
1524
STA
1522
LDA I
6450
STA
1527
WRC
6300
WRC I
7301
LDA I
10
AXO
RDC /MAIN UNIT=0
3360
SET I 10
360
SET I 11
361
SET I 12
-1000
SET I 13
-1000
SET I 15
BUFF1-1+4000
SET I 16
BUFF2-1+4000
LDA I
JMP BUF1
STC WHERE
LDA I
-1
STA
FIELD
STC ORG
PDP
PMODE
JMS LINBUF
JMP MORE
DONE,DCA PCHECK
TAD PCHECK
SNA CLA
JMP MORE
JMS MESS
207
207
207
0
JMP START+1
MORE=.
MLOOP,6031
SKP
JMP .+3
JMS I DUPPY
JMP .-4
6036
TAD M304
SNA
JMP END
TAD M4
SNA
JMP RHIGH
TAD M4
SNA
JMP RLOW
TAD M11
SNA
JMP I PBEGIN
JMP MLOOP
PBEGIN,BEGIN
M304,-304
M4,-4
M11,-11
M1001,-1001
PCHECK,0
DUPPY,MAJORD
RLOW,CLA CMA
RHIGH,DCA HORLOW
JMP I PBEGIN
HORLOW,-1
END,CLA CLL
TAD M1001
DCA 3
JMS INBUF
44
43
43
44
43
0
JMS INBUF
44
0
ISZ 3
JMP .-4
TAD A1
DCA I B1
TAD A2
DCA I B2
LINC
LMODE
STD
JMP .-1
CLR
AXO
LDF 3
LIF 2
JMP 16/RESTART DIAL
AAALOC=.-1
BUFF1=1000
BUFF2=BUFF1+400