A2osX/BASIC.FX/BASIC.S.XM.txt
2022-05-25 20:46:02 +02:00

314 lines
4.4 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

NEW
AUTO 3,1
*--------------------------------------
XBBD7 .BS 1
XBBD8 .BS 1
XBBD9 .BS 1 .DA #4 ????
XBBDA .BS 1
XBBDB .BS 1
XBBDD .BS 1
*--------------------------------------
BSX.FRE0 jsr BSX.FRE1
bcs .9
lda ASX.PGRMSTART+1
sta BS.TXTTAB+1
lda ASX.PGRMSTART
sta BS.TXTTAB
lda ASX.HIMEM+1
sta XBBD8
lda #$03
sta XBBD9
lda ASX.STRINGSTART+1
sta BS.MEMSIZE+1
lda #$00
sta BS.MEMSIZE
bra BSX.FRE2 Z
.9 rts
*--------------------------------------
BSX.FRE1 stz BS.TXTTAB
lda ASX.HIMEM+1
sta XBBD8
lda #$03
sta XBBD9
lda ASX.STRINGSTART+1
sta BS.TXTTAB+1
sec
sbc ASX.ARRAYEND+1
cmp #$07
bcc .1
sbc #$03
sta XBBD9
lda ASX.ARRAYEND+1
adc #$00
sta XBBD8
lda ASX.HIMEM+1
sbc ASX.STRINGSTART+1
adc #$01
cmp XBBD9
bcs .1
sta XBBD9
.1 lda ASX.HIMEM+1
sta BS.MEMSIZE+1
lda ASX.HIMEM
sta BS.MEMSIZE
sta ASX.STRINGSTART
*--------------------------------------
BSX.FRE2 clc
beq .1
sec
.1 lda BS.MEMSIZE+1
sta ASX.STRINGSTART+1
sbc #$00
sta XBBDA
adc #$00
sta XBBDB
lda ASX.ARRAYEND+1
adc #$01
sta XBBDD
.2 lda ASX.VARSTART
sbc #$06
sta ZP.A2L
lda ASX.VARSTART+1
sbc #$00
sta ZP.A2H
lda ASX.ARRAYSTART
sta XBBDC
lda XBBDA
cmp BS.TXTTAB+1
bcc .9
sbc XBBD9
sta XBBD7
lda ASX.STRINGSTART+1
sbc XBBDA
sbc XBBD7
eor #$FF
adc #$02
cmp XBBD7
bcc .3
lda XBBD7
.3 cmp BS.TXTTAB+1
bcs .4
lda BS.TXTTAB+1
sbc #$00
.4 sta XBBDA
jsr BSX.LA199
ldx ASX.ARRAYSTART+1
jsr BSX.LA0FB
bcs .5
jsr BSX.LA131
lda XBBDA
sta XBBDB
bcc .2
.5 lda #BS.E.NOBUFFER
.9 rts
*--------------------------------------
BSX.LA0FB clc
.1 lda ZP.A2L
adc #$07
sta ZP.A2L
bcc .2
inc ZP.A2H
.2 eor ASX.ARRAYSTART
bne .3
cpx ZP.A2H
beq BSX.LA12F
.3 ldy #$00
lda (ZP.A2L),y
iny
eor (ZP.A2L),y
bpl BSX.LA0FB
lda (ZP.A2L),y
bpl BSX.LA0FB
ldy #$04
lda (ZP.A2L),y
cmp XBBDA
bcc .1
cmp XBBDB
bcs BSX.LA0FB
jsr BSX.LA1BC
bcc .1
rts
BSX.LA12F clc
rts
*--------------------------------------
BSX.LA131 jsr BSX.LA160
bcs BSX.LA12F
.1 ldy #$02
lda (ZP.A2L),y
cmp XBBDA
bcc .2
cmp XBBDB
bcs .2
jsr BSX.LA1BC
bcc .3
rts
.2 clc
.3 lda #$03
adc ZP.A2L
sta ZP.A2L
bcc .4
inc ZP.A2H
.4 cmp XBBDC
bne .1
cpx ZP.A2H
bne .1
beq BSX.LA131
*--------------------------------------
BSX.LA160 clc
lda XBBDC
sta ZP.A2L
stx ZP.A2H
eor ASX.ARRAYEND
bne .1
cpx ASX.ARRAYEND+1
beq .9
.1 ldy #$02
lda (ZP.A2L),y
adc ZP.A2L
sta XBBDC
iny
lda (ZP.A2L),y
adc ZP.A2H
tax
ldy #$00
lda (ZP.A2L),y
iny
eor (ZP.A2L),y
bpl BSX.LA160
ldy #$04
lda (ZP.A2L),y
asl
adc #$05
adc ZP.A2L
sta ZP.A2L
bcc .9
inc ZP.A2H
clc
.9 rts
*--------------------------------------
BSX.LA199 lda XBBD7
sta ZP.PCH
lda XBBD8
sta ZP.A1H
ldy #$00
sty ZP.PCL
sty ZP.A1L
ldx XBBD9
inx
.1 lda (ZP.PCL),y
sta (ZP.A1L),y
iny
bne .1
inc ZP.A1H
inc ZP.PCH
dex
bne .1
rts
*--------------------------------------
BSX.LA1BC cmp XBBD7
bcc .1
sbc XBBD7
clc
adc XBBD8
.1 sta ZP.PCH
dey
lda (ZP.A2L),y
sta ZP.PCL
dey
sec
lda ASX.STRINGSTART
sbc (ZP.A2L),y
sta ASX.STRINGSTART
sta .3+1
iny
sta (ZP.A2L),y
lda ASX.STRINGSTART+1
sbc #$00
sta ASX.STRINGSTART+1
sta .3+2
iny
sta (ZP.A2L),y
dey
dey
lda (ZP.A2L),y
beq .8
tay
.2 dey
lda (ZP.PCL),y
.3 sta $FFFF,y SELF MODIFIED
tya
bne .2
.8 clc
lda XBBDD
sbc ASX.STRINGSTART+1
rts
*--------------------------------------
*--------------------------------------
MAN
SAVE usr/src/basic.fx/basic.s.xm
LOAD usr/src/basic.fx/basic.s
ASM