mirror of
https://github.com/PDP-10/its.git
synced 2026-03-03 02:08:00 +00:00
NOVCON .008 has an assembler error: NOROOM+5 17011 0 1 19 TMC 4357 TMC supposedly means Too Many Constants.
546 lines
6.2 KiB
Groff
Executable File
546 lines
6.2 KiB
Groff
Executable File
TITLE NDTEST
|
||
A==1
|
||
B==2
|
||
C==3
|
||
XMT==41
|
||
|
||
DEFINE NEXT A,B
|
||
DSZ NTIMES
|
||
JMP .+10
|
||
SUBZL 0,0 ;R0 _ 1
|
||
STA 0,NTIMES
|
||
READS 0,
|
||
MOVZL% 0,0(SZR)
|
||
JMP B
|
||
MOVL% 0,0(SNC)
|
||
JMP A
|
||
TERMIN
|
||
|
||
DEFINE PAUSE A
|
||
LDA C,A
|
||
STA C,PTIMES
|
||
LDA B,CADDR
|
||
JSR SDLIST
|
||
DSZ PTIMES
|
||
JMP .-2
|
||
TERMIN
|
||
LOC 40
|
||
SDLIST: STA A,SVA
|
||
LDA A,BUSYSW
|
||
MOV A,A(SNR)
|
||
JMP TDS
|
||
SKPBZ XMT
|
||
JMP .-1
|
||
TDS: LDA A,DELSW
|
||
MOV A,A(SNR)
|
||
JMP SDL
|
||
LDA A,DEL1
|
||
STA A,D1
|
||
LDA A,DEL2
|
||
STA A,D2
|
||
DSZ D2
|
||
JMP .-1
|
||
DSZ D1
|
||
JMP .-5
|
||
SDL: LDA A,(B)
|
||
DOB A,XMT
|
||
LDA A,1(B)
|
||
NEG A,A
|
||
DOCS A,XMT
|
||
LDA A,SVA
|
||
JMP (C)
|
||
SVA: 0
|
||
BDL: STA 0,@27 ;BUILD DISPLAY LIST
|
||
ISZ @BDLIA ;STORE WORD THEN INC. THE WORD COUNT
|
||
JMP (C)
|
||
IBDL: LDA A,(B) ;INIT BDL
|
||
STA A,27
|
||
DSZ 27
|
||
STA B,BDLIA
|
||
ISZ BDLIA
|
||
SUBC A,A
|
||
STA A,@BDLIA
|
||
JMP (C)
|
||
D1: 0
|
||
D2: 0
|
||
DEL1: 190
|
||
LLSP==40_10
|
||
DEL2: 1
|
||
BUSYSW: 1
|
||
DELSW: 0
|
||
SWSW: 0
|
||
RSP: 40
|
||
FFC: 14
|
||
LSP: 40_10
|
||
CRC: 15
|
||
LFC: 12
|
||
SPSP: 40_10+40
|
||
RQUES: "?_10
|
||
NLPS: 10 ;NO. LINES PER SENT.
|
||
NCPL: 20 ;NO. CHARS PER LINE
|
||
NL: 0
|
||
NC: 0
|
||
NCHR: 0
|
||
RETADD: 0
|
||
CADDR: CADD1
|
||
BADDR: BADD1
|
||
BDLIA: 0 ;BDL INCR ADDR, POINTS TO WORD COUNT
|
||
XST: 101000
|
||
YST: 121000
|
||
ARCNT: 777
|
||
HDCNT: 77
|
||
FLSTAD: CMALST-1
|
||
NSEG: -4
|
||
SEGCNT: 1
|
||
SVB: 0
|
||
REM: 0
|
||
CXYB: 142200
|
||
CIB: 146000
|
||
4INC: 177700
|
||
N7: 7
|
||
ONES: -1
|
||
SV27: 0
|
||
NIX: IX
|
||
NIY: IY
|
||
INCS: 0
|
||
RTBOX: 0
|
||
RTADGN: 0
|
||
M02.15: 037777
|
||
M14.15: 3
|
||
XLBOX: 0
|
||
YLBOX: 0
|
||
ADC1: ADC1L-1
|
||
ADC2: ADC2L-1
|
||
ADC3: ADC3L-1
|
||
NTIMES: 0 ;FOR NEXT
|
||
PTIMES: 0 ;FOR PAUSE
|
||
ISTART: 10000 ;FOR START
|
||
ASTART: START
|
||
APMTST: PMTST
|
||
|
||
LOC 400
|
||
START: LDA A,ISTART
|
||
STA A,NTIMES
|
||
START1: LDA A,SWSW
|
||
READS 0,
|
||
MOV A,A(SZR)
|
||
STA 0,DLIST
|
||
LDA B,BADDR
|
||
JSR SDLIST
|
||
MOV A,A(SZR)
|
||
JMP START1
|
||
NEXT BCDL,START
|
||
JMP START1
|
||
BADD1: DLIST
|
||
|
||
13.
|
||
CRLF==15_8+12
|
||
LFCR=12_8+15
|
||
AB="A_8+"B
|
||
DLIST: 14_8+14
|
||
77_8+77
|
||
CRLF
|
||
AB
|
||
CRLF
|
||
AB
|
||
LFCR
|
||
AB
|
||
LFCR
|
||
AB
|
||
CRLF
|
||
AB
|
||
CRLF
|
||
BCDL: LDA A,NLPS ;BUILD CHAR DISPLAY LIST
|
||
STA A,NL
|
||
LDA B,CADDR
|
||
JSR IBDL
|
||
LDA 0,FFC
|
||
JSR BDL
|
||
LDA A,LSP
|
||
STA A,NCHR
|
||
BCDL1: LDA A,NCPL
|
||
STA A,NC
|
||
BCDL2: LDA 0,NCHR
|
||
JSR CKCHR
|
||
JSR BDL
|
||
PAUSE BCDLP
|
||
ISZ NCHR
|
||
DSZ NC
|
||
JMP BCDL2
|
||
LDA 0,CRC
|
||
JSR BDL
|
||
LDA 0,LFC
|
||
JSR BDL
|
||
JSR BDL
|
||
DSZ NL
|
||
JMP BCDL1
|
||
LDA A,BCDLN
|
||
STA A,NTIMES
|
||
BCDL3: JSR SDLIST
|
||
NEXT @APMTST,BCDL
|
||
JMP BCDL3
|
||
CKCHR: STA C,RETADD
|
||
LDA A,NQC
|
||
STA A,NQCC
|
||
LDA A,AQCL
|
||
STA A,20
|
||
CK1: LDA A,@20
|
||
SUB% 0,A(SNR)
|
||
JMP CKEQ
|
||
DSZ NQCC
|
||
JMP CK1
|
||
JMP @RETADD
|
||
CKEQ: LDA C,20
|
||
LDA A,RSP
|
||
ADD A,C
|
||
JMP @(C)
|
||
BCDLN: 400
|
||
BCDLP: 10 ;FOR PAUSE
|
||
NQC: 14.
|
||
AQCL: QCL-1
|
||
NQCC: 0
|
||
QCL: LLSP+1 ;COMPL CHAR SET
|
||
LLSP+16
|
||
LLSP+17
|
||
LLSP+14
|
||
LLSP+12
|
||
LLSP+15
|
||
LLSP+5
|
||
LLSP+35
|
||
LLSP+36
|
||
LLSP+177
|
||
LLSP+10
|
||
LLSP+34
|
||
LLSP+137
|
||
LLSP+0 ;NULL
|
||
LOC QCL+40
|
||
REPEAT 10.,SIN
|
||
BOX
|
||
BOX
|
||
UNLN
|
||
NULLC
|
||
BLOCK 100
|
||
SIN: LDA 0,SPSP
|
||
JMP @RETADD
|
||
UNLN: JSR BDL
|
||
LDA 0,RBKQ
|
||
JMP @RETADD
|
||
BOX: JSR BDL
|
||
LDA 0,RQUES
|
||
JMP @RETADD
|
||
NULLC: JSR BDL
|
||
JMP @RETADD
|
||
RBKQ: 10_10+"?
|
||
PMTST: LDA A,PMIST
|
||
STA A,NTIMES
|
||
PMT3: LDA B,CADDR
|
||
JSR IBDL
|
||
LDA 0,XST
|
||
JSR BDL
|
||
LDA 0,YST
|
||
JSR BDL
|
||
LDA 0,ARCNT
|
||
STA 0,NL
|
||
PMT1: JSR SDLIST
|
||
ISZ 2(B)
|
||
ISZ 3(B)
|
||
DSZ NL
|
||
JMP PMT1
|
||
LDA 0,2(B)
|
||
JSR BDL
|
||
LDA 0,3(B)
|
||
JSR BDL
|
||
LDA 0,HDCNT
|
||
STA 0,NL
|
||
PMT2: DSZ 3(B)
|
||
DSZ 4(B)
|
||
JSR SDLIST
|
||
DSZ NL
|
||
JMP PMT2
|
||
NEXT CMAR,PMTST
|
||
JMP PMT3
|
||
PMIST: 400
|
||
CMAR: LDA B,CADDR
|
||
JSR IBDL
|
||
SUBC 0,0 ;START OFF WITH TWO NULLS
|
||
JSR BDL
|
||
LDA 0,XST
|
||
JSR BDL
|
||
LDA 0,YST
|
||
JSR BDL
|
||
LDA 0,FLSTAD
|
||
STA 0,20
|
||
SUBZL 0,0
|
||
STA 0,SEGCNT
|
||
CMAR1: LDA B,M14.15
|
||
JSR GNSEG
|
||
AND% 0,B(SNR)
|
||
JMP CMAR2
|
||
LDA A,NSEG
|
||
CMAR4: JSR BDL
|
||
PAUSE CMARP
|
||
INC A,A(SZR)
|
||
JMP CMAR4
|
||
JMP CMAR1
|
||
CMAR2: JSR BDL
|
||
PAUSE CMARP
|
||
MOV 0,0(SZR)
|
||
JMP CMAR1
|
||
LDA A,CMAST
|
||
STA A,NTIMES
|
||
CMAR3: LDA B,CADDR
|
||
JSR SDLIST
|
||
NEXT CPASA,CMAR
|
||
JMP CMAR3
|
||
GNSEG: DSZ SEGCNT
|
||
JMP (C)
|
||
SUBZL 0,0
|
||
STA 0,SEGCNT
|
||
LDA 0,@20
|
||
MOVL% 0,0(SZC)
|
||
JMP (C)
|
||
STA 0,SEGCNT
|
||
LDA 0,@20
|
||
JMP (C)
|
||
CMARP: 100 ;FOR PAUSE
|
||
CMAST: 2000
|
||
IX==152525
|
||
IY==165252
|
||
IB==177777
|
||
CX==142000
|
||
CY==144000
|
||
CI==146000
|
||
CXYI==142214
|
||
CYI==144300
|
||
|
||
CMALST: CI
|
||
IB
|
||
IX
|
||
2
|
||
IY
|
||
2
|
||
IX
|
||
2
|
||
IY
|
||
2
|
||
IX
|
||
CX
|
||
IB
|
||
2
|
||
IX
|
||
CY
|
||
IB
|
||
2
|
||
IY
|
||
CX
|
||
IB
|
||
2
|
||
IX
|
||
CY
|
||
IB
|
||
4
|
||
IY
|
||
IX
|
||
IB
|
||
CX
|
||
IX
|
||
CXYI
|
||
IB
|
||
CYI
|
||
IY
|
||
CI
|
||
0
|
||
0
|
||
CPASA: LDA 0,ADC1
|
||
JSR CPAS0
|
||
LDA 0,CPAAD
|
||
STA 0,NTIMES
|
||
CPASA1: JSR SDLIST
|
||
NEXT CPASB,CPASA
|
||
JMP CPASA1
|
||
CPASB: LDA 0,ADC2
|
||
JSR CPAS0
|
||
LDA 0,CPABD
|
||
STA 0,NTIMES
|
||
CPASB1: JSR SDLIST
|
||
NEXT CPASC,CPASB
|
||
JMP CPASB1
|
||
CPASC: LDA 0,ADC3
|
||
JSR CPAS0
|
||
LDA 0,CPACD
|
||
STA 0,NTIMES
|
||
CPASC1: JSR SDLIST
|
||
NEXT @ASTART,CPASC
|
||
JMP CPASC1
|
||
CPAAD: 10000
|
||
CPABD: 100000
|
||
CPACD: 10000
|
||
CPAS0: STA C,RTCPA
|
||
STA 0,25
|
||
LDA B,CADDR
|
||
JSR IBDL
|
||
JMP CPAS3
|
||
CPAS1: PAUSE CPAP
|
||
CPAS3: SUBZR 1,1
|
||
MOVOR 1,1 ;SET TWO HIGH BITS OF R1
|
||
LDA 0,@25
|
||
MOVL% 0,0(SNC)
|
||
JMP CPAS2 ;CHARS
|
||
ANDL% 0,1(SNR)
|
||
JMP CPAS2 ;;POINT
|
||
LDA 1,M02.15
|
||
AND 1,0(SNR) ;DONE
|
||
JMP @RTCPA ;YES
|
||
STA 0,XLBOX
|
||
LDA 0,@25
|
||
STA 0,YLBOX
|
||
JSR RBOX
|
||
JMP CPAS1
|
||
CPAS2: JSR BDL
|
||
JMP CPAS1
|
||
CPAP: 400
|
||
RTCPA: 0
|
||
RBOX: STA C,RTBOX ;GET X LENGTH
|
||
LDA A,XLBOX
|
||
LDA 0,CXYB ;MOVE SW
|
||
JSR BDL
|
||
LDA 0,4INC
|
||
JSR BDL
|
||
LDA 0,CXYB
|
||
JSR BDL
|
||
LDA CIB
|
||
JSR BDL
|
||
LDA 0,27
|
||
STA 0,SV27
|
||
LDA 0,NIX
|
||
STA 0,INCS
|
||
JSR GENSID
|
||
LDA 0,NIY
|
||
STA 0,INCS
|
||
LDA A,YLBOX
|
||
JSR GENSID
|
||
BOX2: LDA 0,SV27 ;CODE FOR FIRST TWO SIDES WILL DO FOR
|
||
STA 0,26 ;3RD AND 4TH IF X AND Y DIRECTIONS ARE CHANGED
|
||
LDA 1,27
|
||
SUB 0,1
|
||
STA 1,REM
|
||
LDA 0,CXYB ;CHANGE A AND Y DIR'S
|
||
JSR BDL
|
||
LDA 0,@26
|
||
JSR BDL
|
||
DSZ REM
|
||
JMP .-3
|
||
LDA 0,CIB
|
||
JSR BDL
|
||
LDA 0,CXYB
|
||
JSR BDL
|
||
LDA 0,4INC
|
||
JSR BDL
|
||
JMP @RTBOX
|
||
GENSID: STA C,RTADGN ;R1=LENGTH OF SIDE
|
||
SUBO 0,0
|
||
STA B,SVB
|
||
LDA B,N7
|
||
DIV ;R0,,R1/R2 ANSWER IN R1, REMAINDER IN R0
|
||
SUB 0,B
|
||
MOV 0,0(SNR)
|
||
SUB B,B
|
||
STA B,REM
|
||
LDA B,SVB
|
||
LDA 0,INCS
|
||
NEGZ A,A(SZC) ;NEGATE ANSWER
|
||
JMP GENS1 ;ANS WAS ZERO
|
||
JSR BDL
|
||
INC A,A(SZR)
|
||
JMP .-2
|
||
GENS1: LDA A,REM ;GET REMAINDER
|
||
MOV A,A(SNR)
|
||
JMP @RTADGN ;WAS ZERO
|
||
LDA A,ONES ;GENERATE MASK
|
||
MOVZL A,A
|
||
MOVZL A,A
|
||
DSZ REM
|
||
JMP .-3
|
||
AND A,0
|
||
JSR BDL
|
||
JMP @RTADGN
|
||
XPT==100000
|
||
YPT==122000
|
||
YPTI==120000
|
||
CODEM==140000
|
||
BX==CODEM
|
||
ADC1L: XPT+776
|
||
YPT+1574
|
||
BX+13
|
||
15
|
||
"N
|
||
XPT+1423
|
||
YPT+1427
|
||
BX+22
|
||
15
|
||
0
|
||
"N_10+"E
|
||
XPT+1574
|
||
YPT+775
|
||
BX+13
|
||
15
|
||
"E
|
||
XPT+1423
|
||
YPT+346
|
||
BX+22
|
||
15
|
||
0
|
||
"S_10+"E
|
||
XPT+776
|
||
YPT+165
|
||
BX+13
|
||
15
|
||
"S
|
||
XPT+335
|
||
YPT+346
|
||
BX+22
|
||
15
|
||
0
|
||
"S_10+"W
|
||
XPT+165
|
||
YPT+775
|
||
BX+13
|
||
15
|
||
"W
|
||
XPT+335
|
||
YPT+1427
|
||
BX+22
|
||
15
|
||
0
|
||
"N_10+"W
|
||
BX+00
|
||
ADC2L: XPT+1000
|
||
YPTI+1600
|
||
XPT+1417
|
||
YPTI+1417
|
||
XPT+1600
|
||
YPTI+1000
|
||
XPT+1417
|
||
YPTI+361
|
||
XPT+1000
|
||
YPTI+200
|
||
XPT+361
|
||
YPTI+361
|
||
XPT+200
|
||
YPTI+1000
|
||
XPT+361
|
||
YPTI+1417
|
||
BX+00
|
||
ADC3L: XPT+200
|
||
YPT+1600
|
||
BX+40
|
||
20
|
||
XPT+1400
|
||
YPT+400
|
||
ASCII / |