Files
kenrector.sds-kit/symbol/section-2a.si
2021-02-15 21:10:40 -08:00

91 lines
2.6 KiB
Plaintext

AORG 03000
S9300 EQU 0
X0 EQU S9300
X2 EQU 2-S9300
CH EQU 0
U EQU 1
START LDB =-1 COMPUTE MAXIMUM MEMORY ADDR
LDA =040000*/S9300+2047
LOOP1 SUB =04000
STA BIAS
STA *BIAS
SKM *BIAS
BRU LOOP1
SUB =4095 SUBTRACT 07777
STA BIAS BiAS=MEMORY SIIE+4K
BPT BRTW
BRU BPT
BPT 1
BRU CARDS
RPT CH,U,4
BRU READ
CARDS CRT CH,U
BRU CARDS
RCB CH,U,4
READ WIM CW CONTROL WORD
LDA CW
ROV
LSH 3 END RECORD TURNSONOYERFLO1
RSH 18
STA COUNT WORD COUNT
BRTW CHECK FOR CARD FEED ERROR
BRU $+2 NO
BRU ERROR YES
WIM LOC RECORD ORIGIN
LDA LOC
SKA =01700000 IS RECORD RELOCATABLE
ADD BIAS YES
OVT NO, CHECK FOR END RECORD
LDA BRUX YES
STA T1 T1,T2 NOW POINT EITHER TO RECORD
STA T2 ORIGIN OR TO EX1T
LDA LOC
RSH 19 (A)=1 IF REL WORD PRESENT
ADD =00200001 COMPUTE XREG CONSTANT CORRESPONDING
SUB COUNT TO NUMBER OF DATA WORDS TO READ
STA COUNT
LDA CW BEGIN CHECKSUM
EOR LOC
LDX COUNT,X0
BRU BRX1
LOOP2 WIM *T1 READ RECORD
EOR *T1
MIN T1
BRX1 BRX LOOP2,X0
WIM REL READ IN REL WORD IF ANY
EOR REL
BPT 1
SRC CH,U
BETW CHECK FOR BUFFER ERROR
BRU ERROR
STA CS FOLD CHECKSLUM
RSH 12
EOR CS
LDB ERROR
SKM ERROR
BRU ERROR CHECKSUM FAILS
LDX COUNT,X0
LDB REL
BRU BRX2
LOOP3 STB T1 RELOCATION LOOP
LDA *T2
ADD BIAS
SKN T1
BRU MIN
STA *T2
MIN MIN T2
LSH 1
BRX2 BRX LOOP3,X0
EXIT BRU BPT
ERROR HLT 07777
BRUX BRU EXIT
BIAS RES 1
CW RES 1
LOC RES 1
COUNT RES 1
T1 RES 1
T2 RES 1
REL EQU CW
CS EQU LOC
END START