A2osX/BASIC.FX/BASIC.S.C.txt

1531 lines
21 KiB
Plaintext
Raw Normal View History

NEW
AUTO 3,1
*--------------------------------------
BS.KW.BSAVE bcc LAE2D
2022-03-13 12:52:24 +00:00
lda GP.FoundBITS+1
and #$B0
cmp #$90
XAE00 bcc LAE31
2022-03-13 12:52:24 +00:00
lda GP.ParamA
sta GP.CRAUXTYPE
sta GP.FIAUXTYPE
2022-03-13 12:52:24 +00:00
lda GP.ParamA+1
sta GP.CRAUXTYPE+1
sta GP.FIAUXTYPE+1
2022-03-13 12:52:24 +00:00
lda #$06
sta GP.ParamT
sta GP.FITYPE
2022-03-13 12:52:24 +00:00
lda GP.FoundBITS
and #$04
bne LAE31
jsr BS.CreateFileOrDir
bcs LAE33
jsr BS.GetFileInfo
bcs LAE33
2022-03-13 12:52:24 +00:00
LAE2D lda #$02
bne LAE44
2022-03-13 12:52:24 +00:00
LAE31 lda #$06
LAE33 sec
rts
BS.KW.BRUN jsr BS.KW.BLOAD
bcs LAE33
jsr LAE3F
clc
rts
LAE3F jmp (GP.MLIRW.DATAPTR)
2022-03-13 12:52:24 +00:00
BS.KW.BLOAD lda #$01
LAE44 ldx #$06
jsr BS.CheckFTypeXAccessA
bcs LAE33
ldx GP.ParamA
ldy GP.ParamA+1
2022-03-13 12:52:24 +00:00
lda GP.FoundBITS+1
bmi LAE66
ldx GP.FIAUXTYPE
ldy GP.FIAUXTYPE+1
2022-03-13 12:52:24 +00:00
lda GP.FoundBITS
and #$04
bne LAEAB
2022-03-13 12:52:24 +00:00
lda GP.FoundBITS+1
LAE66 stx GP.MLIRW.DATAPTR
sty GP.MLIRW.DATAPTR+1
bit GP.FoundBITS+1
bvs LAE80
pha
2022-03-13 12:52:24 +00:00
lda GP.FITYPE
cmp #$06
bne LAE7F
stx GP.FIAUXTYPE
sty GP.FIAUXTYPE+1
LAE7F pla
LAE80 ldx GP.ParamL
ldy GP.ParamL+1
and #$30
beq LAEAF
eor #$30
beq LAEAB
and #$10
beq LAEC5
2022-03-13 12:52:24 +00:00
lda GP.ParamE
sec
sbc GP.ParamA
tax
2022-03-13 12:52:24 +00:00
lda GP.ParamE+1
sbc GP.ParamA+1
tay
inx
bne LAEA5
iny
LAEA5 bcs LAEC5
2022-03-13 12:52:24 +00:00
lda #$02
sec
rts
2022-03-13 12:52:24 +00:00
LAEAB lda #$0B
sec
rts
2022-03-13 12:52:24 +00:00
LAEAF lda #MLI.C.GETEOF
jsr GP.GOSYSTEM
bcs LAEC3
ldx GP.SBUFADR
ldy GP.SBUFADR+1
2022-03-13 12:52:24 +00:00
lda GP.SBUFADR+2
beq LAEC5
2022-03-13 12:52:24 +00:00
lda #$0E
LAEC3 sec
rts
LAEC5 stx GP.MLIRW.COUNT
sty GP.MLIRW.COUNT+1
2022-03-13 12:52:24 +00:00
lda GP.FoundBITS+1
and #$40
beq LAEF7
ldx #$02
2022-03-13 12:52:24 +00:00
LAED4 lda GP.ParamB,x
sta GP.SBUFADR,x
dex
bpl LAED4
2022-03-13 12:52:24 +00:00
LAEDD lda #MLI.C.SETMARK
jsr GP.GOSYSTEM
ldx GP.XCNUM
bcc LAEF7
cmp #$02
bne LAEC3
cpx #$0F
bne LAEC3
2022-03-13 12:52:24 +00:00
lda #MLI.C.SETEOF
jsr GP.GOSYSTEM
bcc LAEDD
rts
LAEF7 ldx GP.XCNUM
2022-03-13 12:52:24 +00:00
lda #$CA
cpx #$0F
bne LAF24
bit GP.FoundBITS+1
bvs LAF22
2022-03-13 12:52:24 +00:00
lda GP.FoundBITS+1
and #$30
beq LAF22
2022-03-13 12:52:24 +00:00
ldx GP.MLIRW.COUNT
ldy GP.MLIRW.COUNT+1
jsr BS.SetSBUFADRXY0
lda #MLI.C.SETEOF
jsr GP.GOSYSTEM
2022-03-13 12:52:24 +00:00
LAF22 lda #MLI.C.WRITE
LAF24 jsr GP.GOSYSTEM
bcs LAF38
2022-03-13 12:52:24 +00:00
bit GP.FoundBITS+1
bvs LAF35
cpx #$0F
bne LAF35
jsr BS.SetFileInfoNoDate
LAF35 jmp BS.FileClose
LAF38 sec
rts
BS.KW.SAVE bcc LAF4E
2022-03-13 12:52:24 +00:00
lda #$FD
sta GP.ParamT
sta GP.FITYPE
2022-03-13 12:52:24 +00:00
lda #$C3
sta GP.FIACCESS
jsr BS.CreateFileOrDir
bcs LAF9C
LAF4E jsr LA411
bcs LAF9C
ldx #$FD
2022-03-13 12:52:24 +00:00
lda #$02
jsr BS.CheckFTypeXAccessA
bcs LAF95
jsr BS.SetupRW5AtBBE4
jsr BS.WriteXYBytes
bcs LAF95
2022-03-13 12:52:24 +00:00
lda XBBE9
sta GP.MLIRW.DATAPTR
sta GP.FIAUXTYPE
2022-03-13 12:52:24 +00:00
lda XBBEA
sta GP.MLIRW.DATAPTR+1
sta GP.FIAUXTYPE+1
ldy XBBEC
ldx XBBEB
jsr BS.WriteXYBytes
bcs LAF95
2022-03-13 12:52:24 +00:00
lda #MLI.C.GETMARK
jsr GP.GOSYSTEM
2022-03-13 12:52:24 +00:00
lda #MLI.C.SETEOF
jsr GP.GOSYSTEM
bcs LAF95
jsr BS.SetFileInfoNoDate
bcs LAF95
jsr BS.FileClose
LAF95 php
pha
jsr LA480
pla
plp
LAF9C rts
BS.SetupRW5AtBBE4
2022-03-13 12:52:24 +00:00
lda #$E4
sta GP.MLIRW.DATAPTR
2022-03-13 12:52:24 +00:00
lda #$BB
sta GP.MLIRW.DATAPTR+1
ldy #$00
ldx #$05
rts
BS.KW.LOAD ldx #$FD
2022-03-13 12:52:24 +00:00
lda #$01
jsr BS.CheckFTypeXAccessA
bcs LAF9C
jsr BS.SetupRW5AtBBE4
jsr BS.ReadXYBytes
bcs LAF9C
2022-03-13 12:52:24 +00:00
lda GP.FIAUXTYPE
sta XBBE9
sta GP.MLIRW.DATAPTR
2022-03-13 12:52:24 +00:00
lda AS.HIMEM+1
sec
sbc BS.BAS.HDR+4
clc
adc GP.FIAUXTYPE+1
sta GP.MLIRW.DATAPTR+1
sta XBBEA
cmp AS.PGRMEND+1
bcc LAFF3
beq LAFF3
2022-03-13 12:52:24 +00:00
lda #$00
sbc XBBE9
tax
2022-03-13 12:52:24 +00:00
lda AS.HIMEM+1
sbc XBBEA
tay
jsr BS.ReadXYBytes
bcs LAF9C
jsr BS.FileClose
jmp LAF95
2022-03-13 12:52:24 +00:00
LAFF3 lda #$0E
sec
rts
2022-03-13 12:52:24 +00:00
BS.FileClose lda #MLI.C.CLOSE
bne LB007
2022-03-13 12:52:24 +00:00
BS.ReadXYBytes lda #MLI.C.READ
bne LB001
2022-03-13 12:52:24 +00:00
BS.WriteXYBytes lda #MLI.C.WRITE
LB001 sty GP.MLIRW.COUNT+1
stx GP.MLIRW.COUNT
LB007 jmp GP.GOSYSTEM
2022-03-13 12:52:24 +00:00
BS.KW.IN lda #$00
sta BS.GetCharSep
beq LB018
2022-03-13 12:52:24 +00:00
BS.KW.PR lda #$02
sta BS.GetCharSep
2022-03-13 12:52:24 +00:00
lda #$08
LB018 ora GP.ParamINPR
asl
tax
2022-03-13 12:52:24 +00:00
lda GP.FoundBITS
and #$40
beq LB035
2022-03-13 12:52:24 +00:00
lda GP.FoundBITS+1
bmi LB04A
2022-03-13 12:52:24 +00:00
lda GP.OUTVECT0,x
sta GP.ParamA
2022-03-13 12:52:24 +00:00
lda GP.OUTVECT0+1,x
sta GP.ParamA+1
LB035 jsr LB05C
bcs LB049
ldy BS.GetCharSep
2022-03-13 12:52:24 +00:00
lda GP.ParamA
sta ZP.CSW,y
2022-03-13 12:52:24 +00:00
lda GP.ParamA+1
sta ZP.CSW+1,y
LB049 rts
LB04A jsr LB05C
bcs LB05B
2022-03-13 12:52:24 +00:00
lda GP.ParamA+1
sta GP.OUTVECT0+1,x
2022-03-13 12:52:24 +00:00
lda GP.ParamA
sta GP.OUTVECT0,x
LB05B rts
2022-03-13 12:52:24 +00:00
LB05C lda GP.ParamA
sta ZP.PCL
2022-03-13 12:52:24 +00:00
lda GP.ParamA+1
sta ZP.PCH
ldy #$00
cmp #$C0
bcc LB081
2022-03-13 12:52:24 +00:00
lda $CFFF
sty ZP.A1L
2022-03-13 12:52:24 +00:00
lda (ZP.PCL),y
cmp #$FF
beq LB087
LB077 cmp (ZP.PCL),y
bne LB087
dec ZP.A1L
bne LB077
LB07F clc
rts
2022-03-13 12:52:24 +00:00
LB081 lda (ZP.PCL),y
cmp #$D8
beq LB07F
2022-03-13 12:52:24 +00:00
LB087 lda #$03
sec
rts
2022-03-13 12:52:24 +00:00
*--------------------------------------
BS.KW.BYE jsr LB562
jsr LB36B
2022-03-13 12:52:24 +00:00
lda #$65
jsr MLI
.DA #MLI.C.QUIT
.DA GP.MLIRW
2022-03-13 12:52:24 +00:00
*--------------------------------------
BS.QUIT.IIgs jsr MLI
.DA #MLI.C.QUIT
2022-03-13 12:52:24 +00:00
.DA .1
.1 .DA #4
.DA #$EE
.DA MLI.PATHBUF
.DA #0
.DA 0
2022-03-13 12:52:24 +00:00
*--------------------------------------
BS.KW.CAT lda #$27
.HS 2C BIT ABS
BS.KW.CATALOG lda #$4F
2022-03-13 12:52:24 +00:00
sta BS.CATWIDTH
lda GP.FoundBITS
and #$05
lsr
bne LB0BA
sta GP.ParamT
LB0BA bcs LB0C1
jsr BS.GetFileInfo
bcs LB127
LB0C1 jsr LB1BA
bcs LB127
jsr BS.CROUT
jsr LB128
jsr BS.LINEBUFOUT
jsr BS.CROUT
jsr BS.LINEBUFCLR80
ldx #$10
jsr BS.PRINTERRMSGX
jsr BS.LINEBUFOUT
jsr BS.CROUT
2022-03-13 12:52:24 +00:00
lda XBC14
ora XBC15
LB0E8 jsr LB241
bcs LB113
2022-03-13 12:52:24 +00:00
lda GP.ParamT
beq LB0F7
cmp DIRENTBUF.TYPE
bne LB0FD
LB0F7 jsr LA4D2
jsr BS.LINEBUFOUT
2022-03-13 12:52:24 +00:00
LB0FD lda IO.KBD
cmp #$83
bne LB10E
2022-03-13 12:52:24 +00:00
lda GP.STATE
bne LB113
bit IO.KSTROBE
bcs LB113
2022-03-13 12:52:24 +00:00
LB10E lda #$FF
bne LB0E8
LB113 jsr BS.FileClose
bcs LB127
jsr BS.CROUT
jsr LB157
bcs LB127
jsr BS.LINEBUFOUT
jsr BS.CROUT
clc
LB127 rts
2022-03-13 12:52:24 +00:00
*--------------------------------------
LB128 jsr BS.LINEBUFCLR80
ldx #$01
ldy DIRENTBUF.STNL
2022-03-13 12:52:24 +00:00
lda #$AF
cpy #$F0
bcc LB13A
sta IO.LINEBUF,x
inx
LB13A tya
and #$0F
sta IO.LINEBUF
ldy #$05
2022-03-13 12:52:24 +00:00
LB142 lda DIRENTBUF,y
ora #$80
sta IO.LINEBUF,x
iny
inx
dec IO.LINEBUF
bne LB142
2022-03-13 12:52:24 +00:00
lda #$A2
sta IO.LINEBUF
rts
2022-03-13 12:52:24 +00:00
LB157 ldx #BS.CMDBUF
* sta GP.SBUFADR
ldy /BS.CMDBUF
* sta GP.SBUFADR+1
jsr BS.SetSBUFADRXY
lda MLI.DEVNUM
sta GP.MLIMRKEOFBUF.REFNUM
2022-03-13 12:52:24 +00:00
lda #MLI.C.ONLINE
jsr GP.GOSYSTEM
bcs LB127
2022-03-13 12:52:24 +00:00
lda BS.CMDBUF
and #$0F
tax
inx
stx BS.CMDBUF.LEN
2022-03-13 12:52:24 +00:00
lda #$AF
sta BS.CMDBUF
jsr BS.GetFileInfo
bcs LB127
jsr BS.LINEBUFCLR80
ldx #$36
jsr BS.PRINTERRMSGX
jsr BS.TMPBUF3Reset
2022-03-13 12:52:24 +00:00
lda GP.FIAUXTYPE
ldx GP.FIAUXTYPE+1
ldy #$3D
jsr BS.AXDEC2LINEBUFY
2022-03-13 12:52:24 +00:00
lda GP.FIBLOKS
ldx GP.FIBLOKS+1
ldy #$26
jsr BS.AXDEC2LINEBUFY
2022-03-13 12:52:24 +00:00
lda GP.FIAUXTYPE
sec
sbc GP.FIBLOKS
pha
2022-03-13 12:52:24 +00:00
lda GP.FIAUXTYPE+1
sbc GP.FIBLOKS+1
tax
pla
ldy #$10
jsr BS.AXDEC2LINEBUFY
clc
rts
2022-03-13 12:52:24 +00:00
*--------------------------------------
LB1BA lda #$01
ldx #$0F
ldy GP.STTYPE
cpy #$0F
bne LB1C8
stx GP.FITYPE
LB1C8 jsr LB210
bcs LB203
2022-03-13 12:52:24 +00:00
BS.ReadDirEnt lda #$59
sta GP.MLIRW.DATAPTR
2022-03-13 12:52:24 +00:00
lda #$02
sta GP.MLIRW.DATAPTR+1
2022-03-13 12:52:24 +00:00
lda #$2B
sta GP.MLIRW.COUNT
2022-03-13 12:52:24 +00:00
stz GP.MLIRW.COUNT+1
lda #MLI.C.READ
jsr GP.GOSYSTEM
bcs LB203
ldx #$03
2022-03-13 12:52:24 +00:00
LB1EA lda $27C,x
sta XBC12,x
dex
bpl LB1EA
sta GP.MLIRW.COUNT
2022-03-13 12:52:24 +00:00
lda #$01
sta XBC16
2022-03-13 12:52:24 +00:00
stz GP.SBUFADR+1
stz GP.SBUFADR+2
LB203 rts
BS.CheckFTypeXAccessA
pha
2022-03-13 12:52:24 +00:00
lda GP.FoundBITS
and #$04
beq LB20F
ldx GP.ParamT
LB20F pla
LB210 cpx GP.FITYPE
bne LB239
and GP.FIACCESS
beq LB23D
2022-03-13 12:52:24 +00:00
lda XBBE3
sta GP.OSYSBUF+1
2022-03-13 12:52:24 +00:00
lda #$0F
sta MLI.LEVEL
2022-03-13 12:52:24 +00:00
lda #MLI.C.OPEN
jsr GP.GOSYSTEM
bcs LB238
2022-03-13 12:52:24 +00:00
lda GP.OREFNUM
sta GP.MLIRW.REFNUM
sta GP.MLICF.REFNUM
sta GP.MLIMRKEOFBUF.REFNUM
LB238 rts
2022-03-13 12:52:24 +00:00
LB239 lda #$0D
sec
rts
2022-03-13 12:52:24 +00:00
LB23D lda #$0A
sec
rts
2022-03-13 12:52:24 +00:00
*--------------------------------------
LB241 lda GP.SBUFADR+1
and #$FE
sta GP.SBUFADR+1
ldy XBC16
2022-03-13 12:52:24 +00:00
lda #$00
cpy XBC13
bcc LB25D
tay
sty XBC16
inc GP.SBUFADR+1
LB25A inc GP.SBUFADR+1
LB25D dey
clc
bmi LB268
adc XBC12
bcc LB25D
bcs LB25A
LB268 adc #$04
sta GP.SBUFADR
2022-03-13 12:52:24 +00:00
lda #MLI.C.SETMARK
jsr GP.GOSYSTEM
bcs LB28D
2022-03-13 12:52:24 +00:00
lda #MLI.C.READ
jsr GP.GOSYSTEM
bcs LB28D
inc XBC16
2022-03-13 12:52:24 +00:00
lda DIRENTBUF
and #$F0
beq LB241
2022-03-13 12:52:24 +00:00
* BUG on DEC word
dec XBC14
bne LB28D
dec XBC15
LB28D rts
2022-03-13 12:52:24 +00:00
BS.JMP.XTRNADDR jmp (GP.XTRNADDR)
BS.KW.EXEC jsr BS.CheckFilename
bcs LB2C0
bit GP.EXECFILE
bpl LB2BC
sta GP.MLIMRKEOFBUF.REFNUM
2022-03-13 12:52:24 +00:00
jsr BS.ZeroSBUFADR
lda #MLI.C.SETMARK
jsr GP.GOSYSTEM
bcs LB2B5
2022-03-13 12:52:24 +00:00
lda GP.MLIMRKEOFBUF.REFNUM
bne LB333
LB2B5 pha
jsr LB36B
pla
sec
rts
2022-03-13 12:52:24 +00:00
LB2BC lda #$14
sec
rts
LB2C0 bit GP.EXECACTV
bpl LB2CA
jsr LB36B
bcs LB2D3
2022-03-13 12:52:24 +00:00
LB2CA lda GP.FITYPE
cmp #$04
beq LB2D5
2022-03-13 12:52:24 +00:00
lda #$0D
LB2D3 sec
rts
LB2D5 jsr LA1F9
bcs LB2D3
2022-03-13 12:52:24 +00:00
stz GP.SBUFADR
lda XBBE3
sta GP.SBUFADR+1
ldx GP.OPENCNT
beq LB30E
tay
txa
asl
asl
adc XBBE3
pha
LB2F2 cmp XBBEE,x
beq LB2FB
dex
bne LB2F2
brk
LB2FB tya
sta XBBEE,x
2022-03-13 12:52:24 +00:00
lda XBBF6,x
sta GP.MLIMRKEOFBUF.REFNUM
2022-03-13 12:52:24 +00:00
lda #MLI.C.SETBUF
jsr GP.GOSYSTEM
bcc LB30D
brk
LB30D pla
LB30E sta XBBE3
sta GP.OSYSBUF+1
2022-03-13 12:52:24 +00:00
stz MLI.LEVEL
lda #MLI.C.OPEN
jsr GP.GOSYSTEM
bcc LB327
pha
jsr LA250
pla
sec
rts
LB327 ldx GP.OSYSBUF+1
stx XBBF6
2022-03-13 12:52:24 +00:00
lda GP.OREFNUM
sta XBBFE
2022-03-13 12:52:24 +00:00
LB333 sta GP.MLIRW.REFNUM
sta GP.MLIMRKEOFBUF.REFNUM
sta GP.NEWLREF
ldx GP.FIAUXTYPE
stx GP.ParamL
ldx GP.FIAUXTYPE+1
stx GP.ParamL+1
jsr LB45B
2022-03-13 12:52:24 +00:00
lda #$7F
sta GP.NLINEMASK
2022-03-13 12:52:24 +00:00
lda #MLI.C.NEWLINE
jsr GP.GOSYSTEM
2022-03-13 12:52:24 +00:00
lda GP.FoundBITS+1
and #$03
beq LB364
jsr LB592
bcc LB364
jmp LB2B5
2022-03-13 12:52:24 +00:00
LB364 lda #$FF
sta GP.EXECACTV
clc
rts
2022-03-13 12:52:24 +00:00
LB36B lda GP.EXECACTV
bpl LB37B
sta GP.EXECFILE
ldx #$08
2022-03-13 12:52:24 +00:00
lda XBBF6,x
jsr LB515
LB37B rts
BS.KW.X10 bcs LB3B7
2022-03-13 12:52:24 +00:00
lda GP.FoundBITS
and #$01
bne LB38D
ldx #$00
jsr BS.PRINTERRX
jsr BS.CROUT
LB38D clc
rts
2022-03-13 12:52:24 +00:00
* lda #$00
* beq LB39F
2022-03-13 12:52:24 +00:00
BS.KW.FLUSH lda GP.FoundBITS
and #$01
beq LB39F
jsr BS.CheckFilename
bcs LB3A7
LB39F sta GP.MLICF.REFNUM
2022-03-13 12:52:24 +00:00
lda #MLI.C.FLUSH
jsr GP.GOSYSTEM
LB3A7 rts
BS.KW.03 php
jsr BS.CheckFilename
bcs LB3BB
plp
2022-03-13 12:52:24 +00:00
lda #$14
sec
rts
2022-03-13 12:52:24 +00:00
LB3B3 lda #$0D
sec
rts
2022-03-13 12:52:24 +00:00
LB3B7 lda #$06
LB3B9 sec
rts
LB3BB plp
ldx #$00
ldy #$00
2022-03-13 12:52:24 +00:00
lda GP.FoundBITS+1
and #$10
bne LB3CD
stx GP.ParamL+1
sty GP.ParamL
2022-03-13 12:52:24 +00:00
LB3CD lda GP.FoundBITS
and #$04
eor #$04
beq LB3DB
2022-03-13 12:52:24 +00:00
lda #$04
sta GP.ParamT
LB3DB bcc LB3FE
beq LB3B7
sta GP.FITYPE
2022-03-13 12:52:24 +00:00
lda #$C3
sta GP.FIACCESS
ldx GP.ParamL+1
ldy GP.ParamL
stx GP.CRAUXTYPE+1
stx GP.FIAUXTYPE+1
sty GP.CRAUXTYPE
sty GP.FIAUXTYPE
jsr BS.CreateFileOrDir
bcs LB3B9
2022-03-13 12:52:24 +00:00
LB3FE lda GP.FITYPE
cmp GP.ParamT
bne LB3B3
cmp #$04
bne LB41D
ldx GP.FIAUXTYPE+1
ldy GP.FIAUXTYPE
2022-03-13 12:52:24 +00:00
lda GP.FoundBITS+1
and #$10
bne LB41D
stx GP.ParamL+1
sty GP.ParamL
LB41D jsr LA1F9
bcs LB3B9
2022-03-13 12:52:24 +00:00
lda XBBE3
sta GP.OSYSBUF+1
2022-03-13 12:52:24 +00:00
lda #$07
sta MLI.LEVEL
2022-03-13 12:52:24 +00:00
lda #MLI.C.OPEN
jsr GP.GOSYSTEM
bcc LB43B
pha
jsr LA250
pla
sec
rts
2022-03-13 12:52:24 +00:00
LB43B lda GP.FITYPE
cmp #$0F
beq LB443
clc
2022-03-13 12:52:24 +00:00
LB443 lda #$00
ror
sta GP.DIRFLG
ldx GP.OPENCNT
2022-03-13 12:52:24 +00:00
lda XBBE3
sta XBBEF,x
2022-03-13 12:52:24 +00:00
lda GP.OREFNUM
sta XBBF7,x
inc GP.OPENCNT
2022-03-13 12:52:24 +00:00
LB45B asl
asl
asl
asl
asl
tax
2022-03-13 12:52:24 +00:00
lda MLI.PATHBUF
ora GP.DIRFLG
sta XBC59,x
and #$7F
tay
cmp #$1E
bcc LB473
2022-03-13 12:52:24 +00:00
lda #$1D
LB473 sta ZP.PCL
2022-03-13 12:52:24 +00:00
lda GP.ParamL
sta XBC5A,x
2022-03-13 12:52:24 +00:00
lda GP.ParamL+1
sta XBC5B,x
LB481 inx
2022-03-13 12:52:24 +00:00
lda MLI.PATHBUF,y
sta XBC5B,x
dey
dec ZP.PCL
bne LB481
BS.KW.X07 clc
rts
BS.CheckFilename
2022-03-13 12:52:24 +00:00
lda GP.FoundBITS
and #$01
bne LB49A
2022-03-13 12:52:24 +00:00
lda #$10
sec
rts
LB49A ldx GP.OPENCNT
beq LB4B8
stx GP.EXECFILE
LB4A2 stx ZP.PCH
2022-03-13 12:52:24 +00:00
lda XBBF6,x
jsr LB4D2
bne LB4B3
ldx ZP.PCH
2022-03-13 12:52:24 +00:00
LB4AE lda XBBF6,x
LB4B1 clc
rts
LB4B3 ldx ZP.PCH
dex
bne LB4A2
2022-03-13 12:52:24 +00:00
LB4B8 lda GP.EXECACTV
bpl LB4CE
2022-03-13 12:52:24 +00:00
lda XBBFE
jsr LB4D2
bne LB4CE
2022-03-13 12:52:24 +00:00
lda #$FF
sta GP.EXECFILE
ldx #$08
bne LB4AE
2022-03-13 12:52:24 +00:00
LB4CE lda #$12
sec
rts
LB4D2 asl
asl
asl
asl
asl
tax
2022-03-13 12:52:24 +00:00
lda XBC59,x
sta GP.DIRFLG
and #$7F
cmp MLI.PATHBUF
bne LB508
tay
cmp #$1E
bcc LB4EC
2022-03-13 12:52:24 +00:00
lda #$1D
LB4EC sta ZP.PCL
2022-03-13 12:52:24 +00:00
lda XBC5A,x
sta XBBFF
2022-03-13 12:52:24 +00:00
lda XBC5B,x
sta XBC00
LB4FA inx
2022-03-13 12:52:24 +00:00
lda MLI.PATHBUF,y
cmp XBC5B,x
bne LB508
dey
dec ZP.PCL
bne LB4FA
LB508 rts
2022-03-13 12:52:24 +00:00
BS.KW.X06 lda GP.FoundBITS
and #$01
beq LB562
jsr BS.CheckFilename
bcs LB4B1
LB515 sta GP.MLICF.REFNUM
2022-03-13 12:52:24 +00:00
lda XBBEE,x
sta XBBE3
bit GP.EXECFILE
bmi LB53F
ldy GP.OPENCNT
pha
2022-03-13 12:52:24 +00:00
lda XBBEE,y
sta XBBEE,x
pla
sta XBBEE,y
2022-03-13 12:52:24 +00:00
lda XBBF6,x
pha
2022-03-13 12:52:24 +00:00
lda XBBF6,y
sta XBBF6,x
pla
sta XBBF6,y
2022-03-13 12:52:24 +00:00
LB53F stz MLI.LEVEL
lda #MLI.C.CLOSE
jsr GP.GOSYSTEM
bcs LB572
jsr LA250
bit GP.EXECFILE
bpl LB55E
2022-03-13 12:52:24 +00:00
stz GP.EXECACTV
stz GP.EXECFILE
rts
LB55E dec GP.OPENCNT
rts
LB562 ldx GP.OPENCNT
beq LB573
stx GP.EXECFILE
2022-03-13 12:52:24 +00:00
lda XBBF6,x
jsr LB515
bcc LB562
LB572 rts
2022-03-13 12:52:24 +00:00
LB573 stz GP.MLICF.REFNUM
lda #$07
sta MLI.LEVEL
2022-03-13 12:52:24 +00:00
lda #MLI.C.CLOSE
jmp GP.GOSYSTEM
BS.KW.CLOSE jsr BS.CheckFilename
bcs LB5EF
sta GP.MLIRW.REFNUM
sta GP.NEWLREF
bit GP.DIRFLG
bmi LB5F0
2022-03-13 12:52:24 +00:00
LB592 lda GP.FoundBITS+1
and #$03
beq LB5ED
cmp #$03
beq LB5ED
and #$01
beq LB5AD
2022-03-13 12:52:24 +00:00
lda GP.ParamR
sta GP.ParamF
2022-03-13 12:52:24 +00:00
lda GP.ParamR+1
sta GP.ParamF+1
2022-03-13 12:52:24 +00:00
LB5AD lda #$EF
sta GP.MLIRW.COUNT
2022-03-13 12:52:24 +00:00
stz GP.MLIRW.COUNT+1
stz GP.MLIRW.DATAPTR
lda #$02
sta GP.MLIRW.DATAPTR+1
2022-03-13 12:52:24 +00:00
lda #$7F
sta GP.NLINEMASK
2022-03-13 12:52:24 +00:00
lda #MLI.C.NEWLINE
jsr GP.GOSYSTEM
bcs LB5EF
2022-03-13 12:52:24 +00:00
LB5CB lda GP.ParamF
ora GP.ParamF+1
clc
beq LB5F0
2022-03-13 12:52:24 +00:00
lda #MLI.C.READ
jsr GP.GOSYSTEM
bcs LB5EF
2022-03-13 12:52:24 +00:00
lda GP.ParamF
sbc #$00
sta GP.ParamF
2022-03-13 12:52:24 +00:00
lda GP.ParamF+1
sbc #$00
sta GP.ParamF+1
bcs LB5CB
2022-03-13 12:52:24 +00:00
LB5ED lda #$0B
LB5EF sec
LB5F0 rts
2022-03-13 12:52:24 +00:00
LB5F1 lda XBBFF
sta BS.TMPBUF4
2022-03-13 12:52:24 +00:00
lda XBC00
sta BS.TMPBUF4+1
2022-03-13 12:52:24 +00:00
stz BS.TMPBUF4+2
stz BS.TMPBUF4+3
jsr BS.ZeroSBUFADR
LB60E lsr GP.ParamR+1
ror GP.ParamR
ldx #$00
bcc LB62F
clc
2022-03-13 12:52:24 +00:00
LB619 lda BS.TMPBUF4,x
adc GP.SBUFADR,x
sta GP.SBUFADR,x
inx
txa
eor #$03
bne LB619
bcs LB642
ldx BS.TMPBUF4+3
bne LB642
LB62F rol BS.TMPBUF4,x
inx
txa
eor #$04
bne LB62F
2022-03-13 12:52:24 +00:00
lda GP.ParamR
ora GP.ParamR+1
bne LB60E
clc
rts
2022-03-13 12:52:24 +00:00
LB642 lda #$02
sec
rts
BS.KW.X04 jsr BS.CheckFilename
bcs LB69B
sta GP.MLIRW.REFNUM
sta GP.MLIMRKEOFBUF.REFNUM
sta GP.NEWLREF
bit GP.DIRFLG
bmi LB69C
jsr LB6D0
bcs LB69B
ldx #$7F
ldy #$EF
2022-03-13 12:52:24 +00:00
lda GP.FoundBITS+1
and #$10
beq LB67C
ldy GP.ParamL
ldx GP.ParamL+1
bne LB6CB
cpy #$EF
bcs LB6CB
2022-03-13 12:52:24 +00:00
lda #$22
sta IO.LINEBUF
2022-03-13 12:52:24 +00:00
lda #$01
LB67C sta GP.MLIRW.DATAPTR
sty GP.MLIRW.COUNT
stx GP.NLINEMASK
2022-03-13 12:52:24 +00:00
lda #$02
sta GP.MLIRW.DATAPTR+1
2022-03-13 12:52:24 +00:00
stz GP.MLIRW.COUNT+1
lda #MLI.C.NEWLINE
jsr GP.GOSYSTEM
bcs LB69B
2022-03-13 12:52:24 +00:00
LB696 lda #$FF
sta GP.IFILACTV
LB69B rts
2022-03-13 12:52:24 +00:00
LB69C lda #$59
sta GP.MLIRW.DATAPTR
2022-03-13 12:52:24 +00:00
lda #$02
sta GP.MLIRW.DATAPTR+1
2022-03-13 12:52:24 +00:00
lda #$01
sta GP.CATFLAG
2022-03-13 12:52:24 +00:00
lda GP.FoundBITS+1
and #$01
clc
beq LB696
2022-03-13 12:52:24 +00:00
jsr BS.ZeroSBUFADR
lda #MLI.C.SETMARK
jsr GP.GOSYSTEM
bcs LB6CA
2022-03-13 12:52:24 +00:00
lda #$FF
sta GP.IFILACTV
LB6CA rts
2022-03-13 12:52:24 +00:00
LB6CB lda #$02
tax
sec
rts
2022-03-13 12:52:24 +00:00
LB6D0 lda GP.FoundBITS+1
and #$43
beq LB719
and #$01
beq LB6E5
jsr LB5F1
bcs LB6CB
LB6E0 jsr LB712
bcs LB71A
LB6E5
2022-03-13 12:52:24 +00:00
lda GP.FoundBITS+1
and #$02
beq LB6F1
jsr LB5AD
bcs LB71A
2022-03-13 12:52:24 +00:00
LB6F1 lda GP.FoundBITS+1
and #$40
beq LB719
2022-03-13 12:52:24 +00:00
lda #MLI.C.GETMARK
jsr GP.GOSYSTEM
bcs LB71A
ldx #$00
ldy #$02
2022-03-13 12:52:24 +00:00
LB703 lda GP.ParamB,x
adc GP.SBUFADR,x
sta GP.SBUFADR,x
inx
dey
bpl LB703
bcs LB6CB
2022-03-13 12:52:24 +00:00
LB712 lda #MLI.C.SETMARK
jsr GP.GOSYSTEM
bcs LB71A
LB719 clc
LB71A ldx #$00
rts
BS.KW.X08 jsr BS.CheckFilename
bcs LB732
sta GP.MLIRW.REFNUM
sta GP.MLIMRKEOFBUF.REFNUM
sta GP.NEWLREF
bit GP.DIRFLG
bpl LB734
2022-03-13 12:52:24 +00:00
lda #$0A
LB732 sec
rts
2022-03-13 12:52:24 +00:00
LB734 stz GP.MLIRW.DATAPTR
lda #$02
sta GP.MLIRW.DATAPTR+1
jsr LB6D0
bcc LB757
cmp #$02
bne LB732
cpx #$02
beq LB732
2022-03-13 12:52:24 +00:00
LB74B lda #MLI.C.SETEOF
jsr GP.GOSYSTEM
bcs LB732
jsr LB6E0
bcs LB732
2022-03-13 12:52:24 +00:00
LB757 lda AS.HIMEM
sta GP.MLIRW.DATAPTR
2022-03-13 12:52:24 +00:00
lda AS.HIMEM+1
sta GP.MLIRW.DATAPTR+1
2022-03-13 12:52:24 +00:00
lda #$FF
sta GP.OFILACTV
clc
rts
BS.KW.X09 php
jsr BS.CheckFilename
bcc LB77A
plp
jsr BS.KW.03
bcs LB788
2022-03-13 12:52:24 +00:00
lda GP.OREFNUM
bne LB77B
brk
LB77A plp
LB77B sta GP.MLIRW.REFNUM
sta GP.MLIMRKEOFBUF.REFNUM
bit GP.DIRFLG
bpl LB78A
2022-03-13 12:52:24 +00:00
lda #$0A
LB788 sec
rts
LB78A ldx GP.ParamL
ldy GP.ParamL+1
2022-03-13 12:52:24 +00:00
lda GP.FoundBITS+1
and #$10
bne LB79D
ldx GP.FIAUXTYPE
ldy GP.FIAUXTYPE+1
LB79D txa
pha
2022-03-13 12:52:24 +00:00
jsr BS.GetFTableIdx
pla
sta XBC5A,x
sta XBBFF
tya
sta XBC5B,x
sta XBC00
2022-03-13 12:52:24 +00:00
lda #MLI.C.GETEOF
jsr GP.GOSYSTEM
bcs LB788
2022-03-13 12:52:24 +00:00
lda XBC00
bne LB7C8
2022-03-13 12:52:24 +00:00
lda XBBFF
cmp #$02
bcc LB7CD
LB7C8 jsr LB7D0
bcs LB788
LB7CD jmp LB74B
LB7D0 ldx #$03
2022-03-13 12:52:24 +00:00
LB7D2 lda GP.MLIMRKEOFBUF.REFNUM,x
sta XBC09,x
dex
bne LB7D2
stx BS.TMPBUF4+3
stx XBC0E
ldy #$18
LB7E3 jsr BS.TMPBUF3x2
rol BS.TMPBUF4+3
rol XBC0E
sec
2022-03-13 12:52:24 +00:00
lda BS.TMPBUF4+3
sbc XBBFF
tax
2022-03-13 12:52:24 +00:00
lda XBC0E
sbc XBC00
bcc LB805
stx BS.TMPBUF4+3
sta XBC0E
inc BS.TMPBUF4
LB805 dey
bne LB7E3
2022-03-13 12:52:24 +00:00
lda BS.TMPBUF4+3
ora XBC0E
clc
beq LB839
2022-03-13 12:52:24 +00:00
lda XBBFF
sec
sbc BS.TMPBUF4+3
tax
2022-03-13 12:52:24 +00:00
lda XBC00
sbc XBC0E
tay
txa
clc
adc GP.SBUFADR
sta GP.SBUFADR
tya
adc GP.SBUFADR+1
sta GP.SBUFADR+1
2022-03-13 12:52:24 +00:00
lda GP.SBUFADR+2
adc #$00
sta GP.SBUFADR+2
2022-03-13 12:52:24 +00:00
lda #$02
LB839 rts
2022-03-13 12:52:24 +00:00
BS.GetFileInfo lda #$0A
sta GP.SSGINFO
2022-03-13 12:52:24 +00:00
lda #MLI.C.GETFILEINFO
bne LB858
BS.SetFileInfoNoDate
2022-03-13 12:52:24 +00:00
stz GP.FIMDATE
stz GP.FIMDATE+1
stz GP.FICDATE
stz GP.FICDATE+1
2022-03-13 12:52:24 +00:00
BS.SetFileInfo lda #$07
sta GP.SSGINFO
2022-03-13 12:52:24 +00:00
lda #MLI.C.SETFILEINFO
LB858 jmp GP.GOSYSTEM
BS.JMP.GP.VSYSO jmp (GP.VSYSO)
BS.JMP.GP.VSYSI jmp (GP.VSYSI)
*--------------------------------------
2022-03-13 12:52:24 +00:00
BS.ToUpper cmp #'a'
bcc .9
cmp #'z'+1
bcs .9
eor #$20
.9 rts
*--------------------------------------
BS.GetFTableIdx lda GP.MLIRW.REFNUM
lsr
ror
ror
ror
tax
rts
*--------------------------------------
BS.SetSBUFADRXY0
stz GP.SBUFADR+2
BS.SetSBUFADRXY stx GP.SBUFADR
sty GP.SBUFADR+1
rts
*--------------------------------------
BS.ZeroSBUFADR lda #0
sta GP.SBUFADR
sta GP.SBUFADR+1
sta GP.SBUFADR+2
rts
*--------------------------------------
MAN
SAVE usr/src/basic.fx/basic.s.c
LOAD usr/src/basic.fx/basic.s
ASM