A2osX/BASIC.FX/BASIC.S.XR.txt

190 lines
3.4 KiB
Plaintext
Raw Normal View History

2024-01-07 12:44:01 +00:00
NEW
AUTO 3,1
*--------------------------------------
* GP.FIAUXTYPE = ORG
* GP.MLIRW.DATAPTR = new ORG
*--------------------------------------
BSX.RelOfs .BS 2
BSX.RelStart .BS 2
BSX.RelEnd .BS 2
BSX.RelStop .BS 2
*--------------------------------------
BSX.Rel lda GP.MLIRW.DATAPTR
sta ZP.A1L
sec
sbc GP.FIAUXTYPE
sta BSX.RelOfs
lda GP.MLIRW.DATAPTR+1
sta ZP.A1L+1
sbc GP.FIAUXTYPE+1
sta BSX.RelOfs+1
lda GP.FIAUXTYPE
2024-01-07 12:44:01 +00:00
sta BSX.RelStart
lda GP.FIAUXTYPE+1
2024-01-07 12:44:01 +00:00
sta BSX.RelStart+1
ldy #10
lda (ZP.A1L),y
sta BSX.RelEnd
iny
lda (ZP.A1L),y
sta BSX.RelEnd+1
ldy #8
lda (ZP.A1L),y
clc
adc BSX.RelOfs
sta BSX.RelStop
iny
lda (ZP.A1L),y
adc BSX.RelOfs+1
sta BSX.RelStop+1
ldy #4
lda (ZP.A1L),y
sta GP.AllowedBITS
iny
lda (ZP.A1L),y
sta GP.AllowedBITS+1
ldy #2
jsr BSX.RelAtA1Y relocate CLD JMP CODE.START
lda #16 skip header
jsr BSX.RelSkipA
.1 ldy #1
lda (ZP.A1L),y
ora (ZP.A1L)
beq .20
dey ldy #0
jsr BSX.RelAtA1Y
lda #2
jsr BSX.RelSkipA
bra .1
.20 lda #2
jsr BSX.RelSkipA
.2 lda (ZP.A1L)
lsr
tax
lda BSX.65R02,x
bcs .3
lsr
lsr
lsr
lsr
.3 and #$0f
bit #$08
beq .7
and #$07
pha
ldy #1
jsr BSX.RelAtA1Y
lda (ZP.A1L)
cmp #$20 JSR
bne .6
ldy #1
lda (ZP.A1L),y
bne .6
iny
lda (ZP.A1L),y
cmp #$BF jsr $BF00 ?
bne .6
pla
lda #6
pha
.6 pla
.7 clc
adc ZP.A1L
sta ZP.A1L
bcc .8
inc ZP.A1L+1
.8 cmp BSX.RelStop
lda ZP.A1L+1
sbc BSX.RelStop+1
bcc .2
clc
rts
*--------------------------------------
BSX.RelAtA1Y lda (ZP.A1L),y
tax
iny
cpx BSX.RelStart
lda (ZP.A1L),y
sbc BSX.RelStart+1
bcc .9
cpx BSX.RelEnd
lda (ZP.A1L),y
sbc BSX.RelEnd+1
bcs .9
dey
lda (ZP.A1L),y
clc
adc BSX.RelOfs
sta (ZP.A1L),y
iny
lda (ZP.A1L),y
adc BSX.RelOfs+1
sta (ZP.A1L),y
.9 rts
*--------------------------------------
BSX.RelSkipA clc
adc ZP.A1L
sta ZP.A1L
bcc .8
inc ZP.A1L+1
.8 rts
*--------------------------------------
* 65R02 OPCODES
*--------------------------------------
* 0.1.2.3.4.5.6.7.8.9.A.B.C.D.E.F
BSX.65R02 .HS 1.2.2.1.2.2.2.2.1.2.1.1.B.B.B.3
.HS 2.2.2.1.2.2.2.2.1.B.1.1.B.B.B.3
.HS B.2.2.1.2.2.2.2.1.2.1.1.B.B.B.3
.HS 2.2.2.1.2.2.2.2.1.B.1.1.B.B.B.3
.HS 1.2.2.1.2.2.2.2.1.2.1.1.B.B.B.3
.HS 2.2.2.1.2.2.2.2.1.B.1.1.1.B.B.3
.HS 1.2.2.1.2.2.2.2.1.2.1.1.B.B.B.3
.HS 2.2.2.1.2.2.2.2.1.B.1.1.B.B.B.3
.HS 2.2.2.1.2.2.2.2.1.2.1.1.B.B.B.3
.HS 2.2.2.1.2.2.2.2.1.B.1.1.B.B.B.3
.HS 2.2.2.1.2.2.2.2.1.2.1.1.B.B.B.3
.HS 2.2.2.1.2.2.2.2.1.B.1.1.B.B.B.3
.HS 2.2.2.1.2.2.2.2.1.2.1.1.B.B.B.3
.HS 2.2.2.1.2.2.2.2.1.B.1.1.1.B.B.3
.HS 2.2.2.1.2.2.2.2.1.2.1.1.B.B.B.3
.HS 2.2.2.1.2.2.2.2.1.B.1.1.1.B.B.3
*--------------------------------------
*--------------------------------------
MAN
SAVE usr/src/basic.fx/basic.s.xr
LOAD usr/src/basic.fx/basic.s
ASM