mirror of
https://github.com/kenrector/sds-kit.git
synced 2026-01-25 19:46:17 +00:00
91 lines
2.6 KiB
Plaintext
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
|