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

471 lines
13 KiB
Plaintext

* S3
S9300 EQU 0
X0 EQU S9300
X2 EQU 2-S9300
CAB OPD 010400000
CBA OPD 016500000
GAX OPD 016600000
CXA OPD 016700000
GBX OPD 017000000
GNA OPD 017100000
SKE OPD 017200000
SKR OPD 017000000
MUL OPD 017400000
DIV OPD 017500000
ADM OPD 017600000
XMA OPD 017700000
AORG 2
$CW RES 1
DW1 RES 31
ORG 0
$CHR RES 1
$EDCT RES 1
$ALN RES 1
$DWC RES 1
CHAR RES 1
IFRM FORM 3,6,1,14
EDWE HLT LBUF
EDWL BRU LBUF+1
EDWV HLT LBUF+3
$EDW RES 1
TEMP RES 1
PTYP RES 1
PLOC RES 1
QLOC RES 1
$ICW RES 1
CHKS RES 1
REL RES 1
SREL RES 1
PREL RES 1
$LBUF RES 0
RES 3
$EREF1 RES 0
RES 1
$EREF2 RES 0
RES 4
$CBUF RES 0
RES 12
$TBFE RES 0
RES 8
$CBFE RES 0
$DLY1 DATA 060606060
ERRA DATA 054
DATA 'O'
DATA 024
DATA 025
DATA 031
DATA 043
DATA 047
DATA 051
DATA 063
DATA 064
$ERRC DATA ERRA-ERRC+0200000
DATA 060000000
DATA 0600000
DATA 06000
DATA 017000000
DATA 0170000
DATA 01700
ETBL RES 0
$EDC HLT 0
SUB =060
LDB Z
EDC1 EXU EDCS EXECLUTE SHIFT
MIN EDC1 STEP SHIFT
ADM *EDW ADD CHARACTER TO MEMORY
BRR EDC EXIT
EDCS LSH 18 1ST CHAR
LSH 12 2ND CHAR
LSH 6 3RD CHAR
BRU EDC2 LAST CHAR IN WORD
EDC2 LDB EDCX RESET EXC
STB EDC1
ADM *EDW STORE LAST CHAR
MIN EDW STEP WORD
BRR EDC EAT
EDCX EXU EDCS
$EDS HLT 0
STA EDW WORD POSITION
RSH 15
ADD EDCX
STA EDC1 CHAR POSITION
BRR EDS EXIT
ELN HLT 0
LDA ALN ALPNABETIC LINE NO.
ADD =0666667
STA ALN
ETR DLY1
RSH 3
CNA
ADD ALN SUBTRACT ZONE FROM NON-ZONEBITS
ETR =017171717
STA ALN SAVE ALPHANUMERIC LINE NUMBER
LDX =00200000-3,X0
ELN1 SKA ETBL,X2 TEST FOR 0
BRU ELN2
MRG ETBL-3,X2 REPLACE0WITHBLANK
BRX ELN1,X0
ELN2 LDB DLY1
RCY 12
STA CBUF-2
STB CBUF-1
BRR ELN EXIT
* RELOCATABLE B1NARY OUTPUT
*
$OUTP HLT 0
LDX CTYP,X0
LDA DWC
ETR =077777
SKG Z
BRU OUTP2 (DWC) = 0, RESET ONLY
CXA
SKE PTYP
BRU OUTP1 TYPE CHANGE, FLUSH AND RESET
LDA =24
SKG DWC
BRU OUTP1 (DWC) = 24, FLUSH AND RESET
LDA PTYP
SKE Z
BRU *TYP,X2 (PTYP) + 0
LDA PLOC (PIYP) = 0
ADD =1
SKE LOC
BRU OUTP1 (PLOC)+1NOT = (LOC), FLUSH AA
BRU *TYP,X2 (PLOC)+1= (LOC)
OUTP1 BRM FLUSH
OUTP2 BRM RESET
BRU *TYP,X2
ENDM LDA WORD
ETR =077777
MRG LBRU
STA WORD (WORD):= BRU0,0++(WORD)
LDA MLOC
STA QLOC (QLOC) := (MLOC)
*
DATA LDX DWC,X0
LDA LOC
STA PLOC (PLOC) := (LOC)
LDA WORD
STA DW1+1,X2 (DW1(DWC+1)) := (WORD)
LDA WMOD
ETR =2
LDB Z
RSH 2,X2 B22(WMOD)*2**(22-(DWC))
CBA
MRG REL
STA REL (KEL) :=IREL)++(A)
SKN STYP SKIP IF SPECIAL IY WORD
BRU $+5
LDB =1
LDA Z
RCY 0,X2
ADM SREL (SKEL) := I**(24-DWC)++(SREL)
CLR
SKE PMOD
LDB =1
RCY 1,X2
ADM PREL
MIN DWC (DWC):=(DWC)+1
BRR OUTP EXI1
*
FLUSH HLT ENTRY
LDA PTYP RECORD TYPE OF RECORD BEING FLUSHED
SKG Z
BRU $+3 (PTYP) =0
SKE =3
BRU FLUSH1 (PTYP) = 1 OR 2
MIN DWC INCLUDE LOAD-ADDRESS WORD IN COUNT
LDA QLOC
STA DW1 STORE LOAD ADDRESS
LDX DWC,X0
LDA REL
SKE Z
BRU $+2
BRU FLSH2
STA DW1,X2 STORE RELOCATION INDICATOR WRD
EAX 1,X2
MIN DWC INCLUDE LOAD-RELOCAT1ON WORD IN COUNT
LDA =02000000
ADM DW1 (M) := 1, (RELOCATION WORD PRESENT)
FLSH2 LDA SREL
SKE Z
BRU $+2
BRU FLSH3
STA DW1,X2
EAX 1,X2
MIN DWC INCLLUDE SPECIAL RELOC W0R0 IN COUNT
LDA =020000000
ADM DW1 (M) := 8+ (M)
FLSH3 LDA PREL
SKE Z
BRU $+2
BRU FLUSH1
STA DW1,X2
EAX 1,X2
MIN DWC
LDA =010000000
ADM DW1
* FORM RECORD CONTROL WDRD
FLUSH1 LDA PTYP RECORD TYPE
LDB Z
LSH 6
ADD =1 INDLUDE CONTROL WORD IN COUNT
ADD DWC NR OF WORDS IN RECORD
LSH 15
MRG =050000 RECORD MODE (BINARY)
STA CW
* COMPUTE CHECKSUM AND WR1TE RECORD
BRM CHKSUM CDMPUTE FOLDED CHECKSUM
MRG CW INSERT CHECKSUM IN CONTROL WORD
STA CW STORE COMPLETED RECORD CONTROL WORD
BRM WRITR WRITE ONE RECORD
LDA Z
STA DWC (DWC) :=0
BRR FLUSH EXIT
*
* SUBROUTINE TO COMPUTE FOLDED CHECKSUM
CHKSUM HLT ENYRY
LDA CW
RSH 15
ETR =077 (A) = NR WORDS IN RECORD
SUB =2
STA ICN
LDA =DW1 ADDRESS OF 2D WORD
STA ICW
LDA CW
ETR =077770000 EXTRACT CHECKSUM
EOR =077770000 ODD PARITY CHECKSUM
EOR *ICW
MIN ICW INCREMENT ADDRESS
SKR ICN
BRU $-3
LDB Z (A) = 24-BIT CHECKSUM OF WORDS 1 THRU
LCY 12
STB CHKS
LDB Z
RCY 12
EOR CHKS (A) = COMPLETED 12-BIT CHECKSUM
BRR CHKSUM EXIT
ICN DATA 0
*
*
*
RESET HLT ENTRY
LDA LOC
STA QLOC (QLOC):=(LOC)
LDA Z
STA REL (KEL) :=0
STA SREL (SREL) T=0
STA PREL
LDX CTYP,X0
STX PTYP,X0
BRR RESET EXIT
*
ENDN LDA Z
LDB CW
LSH 3
SKE =3
BRU $+2
BRR OUTP
LDA =3
STA PTYP
LDA MLOC
STA QLOC
BRM FLUSH
BRR OUTP
*
* INSERT 3 WORD REF OR DEF ITEM IN CURRENT OUTPUT RECORD
DEF LDX DWC,X0 ENTRY
LDA *WORD
STA DW1,X2 STORE 1ST 4 CHARS OF LABEL
MIN WORD
LDA *WORD
ETR =077770000
MRG =06060
STA DW1+1,X2 STORE LAST .2 CHARS OF LABEL
LDB Z
LDA STYP
LSH 22
STA ICN
LDA *WORD
ETR =2
XAB
MIN WORD
LDA *WORD
ETR =077777
BRM SKB
HLT =2
MRG =0100000 SET ADDRESS RELOCATION FLAG
MRG ICN SET SUB-TYPE
DEF1 STA DW1+2,X2
LDA =3
ADM DWC (DWC) := (DWC)+3
BRR OUTP EXIT
*
REF EQU DEF
* CURRENT RECORD IMAGE
TYP HLT DATA
HLT DEF EXTERNAL REF OR DEF
HLT POP
HLT ENDM
HLT ENDN
LBRU BRU 0
POP LDX DWC,X0
LDA CNTR
STA WORD
LDA *WORD
STA DW1,X2
MIN WORD
LDA *WORD
* blank card in tech manual
ETR =077770000
MRG =' '
STA DW1+1,X2
MIN WORD
LDA *WORD
BRU DEF1
$READ HLT 0
BRM INPUT
LDA =CBUF
STA CHAR SETBEGINNINGOFLIPE
LDA GETX
STA GETS SET BEGINNINGOF WORD
BRM ELN
BRM GET GET 1STCHARACTEROFLINE
BRR READ EXIT
$FLD HLT 0
LDA =7
STA TEMP
FLD1 BRM GET
SKE =' '
BRR FLD
SKR TEMP
BRU FLD1
BRR FLD EXIT
$GET HLT 0
LDA *CHAR LOAD CHARACTER
GETS EXU GETT EXECUTE SHIFT
MIN GETS
GET1 ETR =077
STA CHR
CAX
BRR GET
GETT RSH 18 1ST CMAR
RSH 12 2ND CHAR
RSH 6 3RD CHAR
BRU GET2 END WORD
$GET2 LDB GETX
STB GETS RESET EXU
MIN CHAR STEP WORD
BRU GET1
GETX EXU GETT
$TCHR HLT 0
STB TEMP
BRM GET GET CHAR
LDB TEMP
BRM SKB
HLT CTT,X2 TEST FOR MATCM
MIN TCHR CHARACTER IS O.K.
BRR TCHR EXIT
$EDIT HLT 0
BRM EDE EDIT ERRORS
BRM EDL EDIT LOCATION
LDA EDWV
BRM EDS
LDA WORD
STA WRD1 DATA WORD
BRM EDR EDIT BY FORM
BRM PRNT PRINT LINE
BRM OUTP OUTPUT WORD
BRR EDIT EXIT
$EDTV HLT 0
BRM EDE EDIT ERRORS
LDA EDWV VALUE WORD POSITON
BRM EDS
LDA =7
STA CNTR 7 CHARACTERS LEFT IN B
LDA WORD DATA
RSH 21 LEAVE 1ST CHAR IN A
ETR =7
BRM EDF EDIT FIELD
BRM PRNT PR1NT LINE
BRR EDTV EXIT
$EDTL HLT 0
BRM EDE ED1T ERRORS
BRM EDL EDIT LOCATION
BRM PRNT PRINT LINE
BRR EDTL EXIT
$EDE HLT 0
LDA EDWE ERRORWORD POSITION
BRM EDS
LDA Z
XMA VERR RESET V ERRORFLAG
ADM UERR U SET IF V SET
LDX ERRC,X0 ERROR COUNT
EDE1 LDA ERRC,X2 ERROR LISTING CHAR
LDB VERR,X2
BRM SKB
HLT M1
BRM EDC INSERT ERRORCODE
LDB Z
STB VERR,X2 RESET FLAG
BRX EDE1,X0 TEST NEXTFLAG
BRR EDE EXIT
EDL HLT 0
LDA EDWL LOC WORD POS1TION
BRM EDS
LDA =4
STA CNTR MORE CHARACTERS INB
LDA LOC
ETR ADDR
RSH 12
BRM EDF EDIT LOC
BRR EDL EXIT
EDR HLT 0
LDB =040000000
EDR3 BRM FLDC CDUNT BITS FIELD
BRU EDR1 NO MORE FIELDS
RSH 23
DIV =3
BRM SKB
HLT =3
BRU EDR2
SUB =1
LDB =3
EDR2 STA CNTR OCTAL CHARACTERS IN FIELD
CBX BITS IN 1ST CHAR
LDA Z
LDB WRD1 DATA WORD
LSH 0,X2 1ST CHAR IN A
BRM EDF EDIT FIELD
LDA =060
BRM EDC INSERT TRAILING BLANK
LDB Z
BRU EDR3 D0 NEXT FIELD
EDR1 BRR EDR EXIT
EDF HLT 0
BRU EDF1
EDF2 LDA Z
LSH 3 NEW OCTAL CHAR
EDF1 STB WRD1
BRM EDC INSERT CHAR INIMAGE
LDB WRD1
SKR CNTR TLST FOREND FIELD
BRU EDF2
BRR EDF EXIT
$FLDC HLT 0
LDA WRD2 FORM WORD
EOR =040000000
LDX =22,X0
NOD 24 CDUNT BITS IN FIELD
LSH 1
STA WRD2 NEW FORM WORD
STX CNTR,X0
LDA =23
SUB CNTR
ETR =077777
SKG =24
MIN FLDC
FLC1 BRR FLDC EXIT
END