BASIC:bugfix in Laoder

This commit is contained in:
burniouf 2022-04-03 23:25:00 +02:00
parent d573012ecb
commit 905ebf9a2b
7 changed files with 198 additions and 194 deletions

Binary file not shown.

View File

@ -3,14 +3,14 @@ NEW
*-------------------------------------- *--------------------------------------
BS.ResetCSWKSW pha BS.ResetCSWKSW pha
phx phx
ldx #3 ldx #3
.1 lda GP.VECTOUT,x .1 lda GP.VECTOUT,x
sta ZP.CSW,x sta ZP.CSW,x
dex dex
bpl .1 bpl .1
plx plx
pla pla
rts rts
@ -85,14 +85,14 @@ L9A8B lda #$8D
BS.SaveCSWKSW pha BS.SaveCSWKSW pha
phx phx
ldx #3 ldx #3
.1 lda ZP.CSW,x .1 lda ZP.CSW,x
sta GP.VECTOUT,x sta GP.VECTOUT,x
dex dex
bpl .1 bpl .1
plx plx
pla pla
@ -101,12 +101,12 @@ BS.SetCSWKSW2VDOS
phx phx
ldx #3 ldx #3
.1 lda GP.VDOSO,x .1 lda GP.VDOSO,x
sta ZP.CSW,x sta ZP.CSW,x
dex dex
bpl .1 bpl .1
plx plx
pla pla
rts rts
@ -125,7 +125,7 @@ BS.IO.IN bit GP.EXECACTV
cmp #$88 cmp #$88
beq .2 beq .2
cmp #$FF cmp #$FF
bne BS.SaveCSWKSW bne BS.SaveCSWKSW
@ -167,7 +167,7 @@ BS.ERROUT sta GP.ERRCODE
php php
lda #$0F lda #$0F
sta MLI.LEVEL sta MLI.LEVEL
stz GP.IFILACTV stz GP.IFILACTV
stz GP.OFILACTV stz GP.OFILACTV
stz GP.PFXACTV stz GP.PFXACTV
@ -389,7 +389,7 @@ L9C6C jsr BS.MLIRead
bne L9C8E bne L9C8E
lda GP.FoundBITS+1 lda GP.FoundBITS+1
and #$10 and #CMDBITS1.L
bne L9C8E bne L9C8E
dex dex
@ -419,11 +419,11 @@ L9C95 cmp #$BE
bcs L9D1F bcs L9D1F
jsr BS.GetFTableIdx jsr BS.GetFTableIdx
lda XBC12 lda BS.CAT.EL
sta XBC5A,x sta BS.OpenFiles+1,x
lda XBC13 lda BS.CAT.EPB
sta XBC5B,x sta BS.OpenFiles+2,x
jsr BS.Filename2LineBuf jsr BS.Filename2LineBuf
L9CD3 lda #$A2 L9CD3 lda #$A2
@ -455,7 +455,7 @@ L9CF9 cmp #$FF
bne L9D1C bne L9D1C
dec GP.CATFLAG dec GP.CATFLAG
stz GP.MLIRW.COUNT stz GP.MLIRW.COUNT
stz GP.MLIRW.COUNT+1 stz GP.MLIRW.COUNT+1
@ -475,22 +475,22 @@ L9D1C lda #$05
L9D1F jmp BS.ERROUT L9D1F jmp BS.ERROUT
L9D22 lda #$FF L9D22 lda #$FF
sta XBC16 sta BS.CAR.EICB
jsr BS.GetFTableIdx jsr BS.GetFTableIdx
lda XBC5A,x lda BS.OpenFiles+1,x
sta XBC12 sta BS.CAT.EL
lda XBC5B,x lda BS.OpenFiles+2,x
sta XBC13 sta BS.CAT.EPB
lda GP.SBUFADR+1 lda GP.SBUFADR+1
and #$01 and #$01
tax tax
lda GP.SBUFADR lda GP.SBUFADR
sec sec
L9D45 inc XBC16 L9D45 inc BS.CAR.EICB
sbc XBC12 sbc BS.CAT.EL
bcs L9D45 bcs L9D45
dex dex
@ -521,7 +521,7 @@ BS.IO.IN.CAT cmp #$DD
L9D72 lda GP.PREGA L9D72 lda GP.PREGA
sta (ZP.BASL),y sta (ZP.BASL),y
stz GP.PFXACTV stz GP.PFXACTV
ldx BS.CMDBUF.LEN ldx BS.CMDBUF.LEN
@ -535,13 +535,13 @@ L9D7F lda BS.CMDBUF.LEN,x
rts rts
*-------------------------------------- *--------------------------------------
BS.Setup4readEFBytesAt200 BS.Setup4readEFBytesAt200
lda XBBFE lda BS.REFNUM
sta GP.MLIRW.REFNUM sta GP.MLIRW.REFNUM
lda #$02 lda #$02
sta GP.MLIRW.DATAPTR+1 sta GP.MLIRW.DATAPTR+1
lda #$EF lda #$EF
sta GP.MLIRW.COUNT sta GP.MLIRW.COUNT
stz GP.MLIRW.COUNT+1 stz GP.MLIRW.COUNT+1
stz GP.MLIRW.DATAPTR stz GP.MLIRW.DATAPTR
rts rts
@ -875,15 +875,15 @@ LA004 ldy #$00
BS.WriteTBUFAY sta GP.MLIRW.COUNT BS.WriteTBUFAY sta GP.MLIRW.COUNT
sty GP.MLIRW.COUNT+1 sty GP.MLIRW.COUNT+1
jsr BS.MLIWrite jsr BS.MLIWrite
stz GP.TBUFPTR stz GP.TBUFPTR
LA020 rts LA020 rts
*-------------------------------------- *--------------------------------------
LA021 jsr BS.KW.FRE LA021 jsr BS.KW.FRE
bcs LA047 bcs LA020
lda AS.PGRMSTART+1 lda AS.PGRMSTART+1
sta BS.TXTTAB+1 sta BS.TXTTAB+1
@ -897,12 +897,10 @@ LA021 jsr BS.KW.FRE
lda AS.STRINGSTART+1 lda AS.STRINGSTART+1
sta BS.MEMSIZE+1 sta BS.MEMSIZE+1
lda #$00 lda #$00
sta BS.MEMSIZE sta BS.MEMSIZE
jsr LA089 Z jmp LA089 Z
LA047 rts
*-------------------------------------- *--------------------------------------
BS.KW.FRE stz BS.TXTTAB BS.KW.FRE stz BS.TXTTAB
@ -1217,13 +1215,13 @@ LA1FB sta XBBB5
sta AS.HIMEM+1 sta AS.HIMEM+1
clc clc
adc #$04 adc #$04
sta XBBE3 sta BS.BUFPAGE
rts rts
LA24E sec LA24E sec
rts rts
XBBB5 .BS 1 XBBB5 .BS 1
*-------------------------------------- *--------------------------------------
LA250 jsr BS.KW.FRE LA250 jsr BS.KW.FRE
bcs LA29D bcs LA29D
@ -1252,7 +1250,7 @@ LA250 jsr BS.KW.FRE
sta AS.HIMEM+1 sta AS.HIMEM+1
jsr LA3A3 jsr LA3A3
lda XBBE3 lda BS.BUFPAGE
cmp AS.HIMEM+1 cmp AS.HIMEM+1
beq LA2B7 beq LA2B7
@ -1276,13 +1274,12 @@ LA29E pla
*-------------------------------------- *--------------------------------------
BS.SetFileBuf sta GP.SBUFADR+1 BS.SetFileBuf sta GP.SBUFADR+1
sta BS.BUFPAGEs,x sta BS.BUFPAGEs,x
stz GP.SBUFADR stz GP.SBUFADR
lda BS.REFNUMs,x lda BS.REFNUMs,x
sta GP.MLIMRKEOFBUF.REFNUM sta GP.MLIMRKEOFBUF.REFNUM
lda #MLI.C.SETBUF lda #MLI.C.SETBUF
jsr GP.GOSYSTEM jmp GP.GOSYSTEM
bcs LA29D
LA2B7 clc LA2B7 clc
rts rts

View File

@ -376,7 +376,7 @@ LA6BA stz GP.FoundBITS
lda GP.VDEFDRV lda GP.VDEFDRV
sta GP.ParamD sta GP.ParamD
lda AS.HIMEM+1 lda AS.HIMEM+1
sta XBBE3 sta BS.BUFPAGE
ldx GP.XLEN ldx GP.XLEN
inx inx
@ -464,7 +464,8 @@ LA747 jsr BS.GetKWInCmdBuf
ldy #$13 ldy #$13
sty XBC09 sty XBC09
ldy #$40
ldy #CMDBITS0.SLOT
sty GP.FoundBITS sty GP.FoundBITS
stx BS.ToAUXSaveX stx BS.ToAUXSaveX
@ -494,7 +495,7 @@ LA770 lsr
dey dey
dey dey
sty MLI.PATHBUF sty MLI.PATHBUF
lda #$03 lda #CMDBITS0.FN1+CMDBITS0.FN2
sta GP.FoundBITS sta GP.FoundBITS
dex dex
jsr BS.GetCharSpaceSep jsr BS.GetCharSpaceSep
@ -528,7 +529,7 @@ LA7A6 lda GP.ParamS
bcs LA76C bcs LA76C
lda GP.AllowedBITS lda GP.AllowedBITS
and #$21 and #CMDBITS0.RRUN+CMDBITS0.FN1
lsr lsr
beq LA7C9 beq LA7C9
@ -542,7 +543,7 @@ LA7A6 lda GP.ParamS
LA7C9 bcc LA80B LA7C9 bcc LA80B
lda GP.AllowedBITS+1 lda GP.AllowedBITS+1
and #$04 and #CMDBITS1.SD
beq LA80B beq LA80B
lda GP.FoundBITS lda GP.FoundBITS
@ -550,7 +551,7 @@ LA7C9 bcc LA80B
bcs LA7E1 bcs LA7E1
lda GP.AllowedBITS lda GP.AllowedBITS
and #$90 and #CMDBITS0.PFIX+CMDBITS0.FNOPT
beq BS.SYNERR beq BS.SYNERR
bpl LA80B bpl LA80B
@ -563,7 +564,7 @@ LA7E1 lda BS.CMDBUF
beq LA806 beq LA806
LA7ED lda GP.FoundBITS+1 LA7ED lda GP.FoundBITS+1
and #$04 and #CMDBITS1.SD
beq LA80B beq LA80B
bcs LA806 bcs LA806
@ -571,7 +572,7 @@ LA7ED lda GP.FoundBITS+1
stz BS.CMDBUF.LEN stz BS.CMDBUF.LEN
stz BS.CMDBUF stz BS.CMDBUF
lda #$01 lda #CMDBITS0.FN1
tsb GP.FoundBITS tsb GP.FoundBITS
LA806 jsr BS.GetVolAtSxDy LA806 jsr BS.GetVolAtSxDy
@ -587,7 +588,7 @@ LA80B lda GP.XCNUM
beq .8 beq .8
lda GP.AllowedBITS+1 lda GP.AllowedBITS+1
and #$04 and #CMDBITS1.SD
beq .8 beq .8
lda GP.FoundBITS lda GP.FoundBITS
@ -651,7 +652,7 @@ BS.GetVolAtSxDy lda GP.ParamS
adc BS.CMDBUF.LEN adc BS.CMDBUF.LEN
cmp #$40 cmp #$40
tax tax
lda #$10 lda #BS.E.SYNTAX
bcs LA8F5 bcs LA8F5
ldy BS.CMDBUF.LEN ldy BS.CMDBUF.LEN
@ -674,13 +675,13 @@ LA8AF sta BS.CMDBUF,x
bne LA8AF bne LA8AF
lda GP.XCNUM lda GP.XCNUM
cmp #$0B cmp #$0B OPEN
beq LA8F4 beq LA8F4
cmp #$16 cmp #$16 DELETE
beq LA8F4 beq LA8F4
cmp #$08 cmp #$08 EXEC
beq LA8F4 beq LA8F4
lda MLI.PATHBUF lda MLI.PATHBUF
@ -689,7 +690,7 @@ LA8AF sta BS.CMDBUF,x
adc IO.LINEBUF+1 adc IO.LINEBUF+1
cmp #$40 cmp #$40
tax tax
lda #$10 lda #BS.E.SYNTAX
bcs LA8F5 bcs LA8F5
stx MLI.PATHBUF stx MLI.PATHBUF
@ -781,18 +782,17 @@ BS.GetChar lda IO.LINEBUF,x
BS.TMPBUF3x2 asl BS.TMPBUF4 BS.TMPBUF3x2 asl BS.TMPBUF4
rol BS.TMPBUF4+1 rol BS.TMPBUF4+1
rol BS.TMPBUF4+2 rol BS.TMPBUF4+2
BS.TMPBUF3x2.RTS
rts rts
*-------------------------------------- *--------------------------------------
BS.IsIntCmd ldx #BSX.IsIntCmd.X BS.IsIntCmd ldx #BSX.IsIntCmd.X
jsr BS.ToAUX jsr BS.ToAUX
bcc .8 bcc BS.TMPBUF3x2.RTS
dec GP.XCNUM $ff dec GP.XCNUM $ff
sec sec
jmp GP.EXTRNCMD jmp GP.EXTRNCMD
.8 rts
*-------------------------------------- *--------------------------------------
BS.TMPBUF3Reset stz BS.TMPBUF4 BS.TMPBUF3Reset stz BS.TMPBUF4
stz BS.TMPBUF4+1 stz BS.TMPBUF4+1
@ -826,7 +826,7 @@ LAB6F pha
jsr LB36B jsr LB36B
stz GP.ParamA stz GP.ParamA
stz MLI.MEMTABL+19
stz MLI.MEMTABL+20 stz MLI.MEMTABL+20
stz MLI.MEMTABL+21 stz MLI.MEMTABL+21
stz MLI.MEMTABL+22 stz MLI.MEMTABL+22
@ -840,10 +840,11 @@ LAB6F pha
bne LABA6 bne LABA6
sta GP.ParamT sta GP.ParamT
lda #$80 lda #CMDBITS1.A
sta GP.FoundBITS+1 sta GP.FoundBITS+1
lda #$05 lda #CMDBITS0.T+CMDBITS0.FN1
sta GP.FoundBITS sta GP.FoundBITS
LABA3 jmp BS.KW.BRUN LABA3 jmp BS.KW.BRUN
LABA6 sec LABA6 sec
@ -992,7 +993,7 @@ LAC98 stx ZP.PCL
bcc LAC98 bcc LAC98
LACB6 lda GP.FoundBITS+1 LACB6 lda GP.FoundBITS+1
and #$08 and #CMDBITS1.LINE
clc clc
beq LACD9 beq LACD9
@ -1036,13 +1037,10 @@ LACFE lda #$02
sec sec
sbc AS.PGRMSTART sbc AS.PGRMSTART
tax tax
* sta GP.SBUFADR
lda AS.PGRMEND+1 lda AS.PGRMEND+1
sbc AS.PGRMSTART+1 sbc AS.PGRMSTART+1
tay tay
* sta GP.SBUFADR+1
* lda #$00
* sta GP.SBUFADR+2
jsr BS.SetSBUFADRXY0 jsr BS.SetSBUFADRXY0

View File

@ -4,8 +4,8 @@ NEW
BS.KW.BSAVE bcc LAE2D BS.KW.BSAVE bcc LAE2D
lda GP.FoundBITS+1 lda GP.FoundBITS+1
and #$B0 and #CMDBITS1.A+CMDBITS1.E+CMDBITS1.L
cmp #$90 cmp #CMDBITS1.A+CMDBITS1.L
XAE00 bcc LAE31 XAE00 bcc LAE31
@ -22,7 +22,7 @@ XAE00 bcc LAE31
sta GP.FITYPE sta GP.FITYPE
lda GP.FoundBITS lda GP.FoundBITS
and #$04 and #CMDBITS0.T
bne LAE31 bne LAE31
jsr BS.CreateFileOrDir jsr BS.CreateFileOrDir
@ -61,7 +61,7 @@ LAE44 ldx #$06
ldx GP.FIAUXTYPE ldx GP.FIAUXTYPE
ldy GP.FIAUXTYPE+1 ldy GP.FIAUXTYPE+1
lda GP.FoundBITS lda GP.FoundBITS
and #$04 and #CMDBITS0.T
bne LAEAB bne LAEAB
lda GP.FoundBITS+1 lda GP.FoundBITS+1
@ -126,8 +126,9 @@ LAEC3 sec
LAEC5 stx GP.MLIRW.COUNT LAEC5 stx GP.MLIRW.COUNT
sty GP.MLIRW.COUNT+1 sty GP.MLIRW.COUNT+1
lda GP.FoundBITS+1 lda GP.FoundBITS+1
and #$40 and #CMDBITS1.B
beq LAEF7 beq LAEF7
ldx #$02 ldx #$02
@ -160,7 +161,7 @@ LAEF7 ldx GP.XCNUM
bvs LAF22 bvs LAF22
lda GP.FoundBITS+1 lda GP.FoundBITS+1
and #$30 and #CMDBITS1.E+CMDBITS1.L
beq LAF22 beq LAF22
ldx GP.MLIRW.COUNT ldx GP.MLIRW.COUNT
@ -318,7 +319,7 @@ LB018 stx BS.GetCharSep
asl asl
tax tax
lda GP.FoundBITS lda GP.FoundBITS
and #$40 and #CMDBITS0.SLOT
beq LB035 beq LB035
lda GP.FoundBITS+1 lda GP.FoundBITS+1
@ -403,27 +404,28 @@ BS.RAMReset bit GP.CISPARE1
php php
sei sei
sta IO.SETWRITEAUX sta IO.SETWRITEAUX
lda #$FF lda #$FF
sta AUX.RAMSIG sta AUX.RAMSIG
dec dec
sta AUX.RAMSIG+1 Set $E000-$FEFF as BLOCK FREE sta AUX.RAMSIG+1 Set $E000-$FEFF as BLOCK FREE
sta IO.CLRWRITEAUX sta IO.CLRWRITEAUX
plp plp
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
BS.KW.CAT lda #$27 BS.KW.CAT lda #$27
.HS 2C BIT ABS .HS 2C BIT ABS
BS.KW.CATALOG lda #$4F BS.KW.CATALOG lda #$4F
sta BS.CATWIDTH sta BS.CATWIDTH
lda GP.FoundBITS lda GP.FoundBITS
and #$05 and #CMDBITS0.T+CMDBITS0.FN1
lsr lsr
bne LB0BA bne LB0BA
@ -452,8 +454,8 @@ LB0C1 jsr BS.OpenDir
jsr BS.LINEBUFOUT jsr BS.LINEBUFOUT
jsr MON.CROUT jsr MON.CROUT
lda XBC14 * lda BS.CAT.FileCnt
ora XBC15 * ora BS.CAT.FileCnt+1
LB0E8 jsr LB241 LB0E8 jsr LB241
bcs LB113 bcs LB113
@ -466,7 +468,7 @@ LB0E8 jsr LB241
LB0F7 ldx #BSX.MkCatLine.X LB0F7 ldx #BSX.MkCatLine.X
jsr BS.ToAUX jsr BS.ToAUX
jsr BS.LINEBUFOUT jsr BS.LINEBUFOUT
LB0FD lda IO.KBD LB0FD lda IO.KBD
@ -525,9 +527,7 @@ LB142 lda DIRENTBUF,y
sta IO.LINEBUF sta IO.LINEBUF
rts rts
*-------------------------------------- *--------------------------------------
BS.MkCatLineF ldx #BS.CMDBUF BS.MkCatLineF jsr BS.SetSBUFADRCMDBUF
ldy /BS.CMDBUF
jsr BS.SetSBUFADRXY
lda MLI.DEVNUM lda MLI.DEVNUM
sta GP.MLIMRKEOFBUF.REFNUM sta GP.MLIMRKEOFBUF.REFNUM
@ -576,13 +576,13 @@ BS.ReadDirEnt lda #$59
ldx #$03 ldx #$03
LB1EA lda $27C,x LB1EA lda $27C,x
sta XBC12,x sta BS.CAT.EL,x
dex dex
bpl LB1EA bpl LB1EA
sta GP.MLIRW.COUNT sta GP.MLIRW.COUNT
lda #$01 lda #$01
sta XBC16 sta BS.CAR.EICB
stz GP.SBUFADR+1 stz GP.SBUFADR+1
stz GP.SBUFADR+2 stz GP.SBUFADR+2
@ -591,7 +591,7 @@ LB203 rts
BS.CheckFTypeXAccessA BS.CheckFTypeXAccessA
pha pha
lda GP.FoundBITS lda GP.FoundBITS
and #$04 and #CMDBITS0.T
beq LB20F beq LB20F
ldx GP.ParamT ldx GP.ParamT
@ -605,7 +605,7 @@ BS.OpenTypeXAccessA
and GP.FIACCESS and GP.FIACCESS
beq LB23D beq LB23D
lda XBBE3 lda BS.BUFPAGE
sta GP.OSYSBUF+1 sta GP.OSYSBUF+1
lda #$0F lda #$0F
sta MLI.LEVEL sta MLI.LEVEL
@ -630,13 +630,13 @@ LB23D lda #BS.E.LOCKED
LB241 lda GP.SBUFADR+1 LB241 lda GP.SBUFADR+1
and #$FE and #$FE
sta GP.SBUFADR+1 sta GP.SBUFADR+1
ldy XBC16 ldy BS.CAR.EICB
lda #$00 lda #$00
cpy XBC13 cpy BS.CAT.EPB
bcc LB25D bcc LB25D
tay tay
sty XBC16 sty BS.CAR.EICB
inc GP.SBUFADR+1 inc GP.SBUFADR+1
LB25A inc GP.SBUFADR+1 LB25A inc GP.SBUFADR+1
@ -645,7 +645,7 @@ LB25D dey
clc clc
bmi LB268 bmi LB268
adc XBC12 adc BS.CAT.EL
bcc LB25D bcc LB25D
bcs LB25A bcs LB25A
@ -658,17 +658,17 @@ LB268 adc #$04
jsr BS.MLIRead jsr BS.MLIRead
bcs LB28D bcs LB28D
inc XBC16 inc BS.CAR.EICB
lda DIRENTBUF lda DIRENTBUF
and #$F0 and #$F0
beq LB241 beq LB241
lda XBC14 lda BS.CAT.FileCnt
bne .1 bne .1
dec XBC15 dec BS.CAT.FileCnt+1
.1 dec XBC14 .1 dec BS.CAT.FileCnt
LB28D rts LB28D rts
*-------------------------------------- *--------------------------------------
@ -719,7 +719,7 @@ LB2D5 jsr BS.GetSysBuf
stz GP.SBUFADR stz GP.SBUFADR
lda XBBE3 lda BS.BUFPAGE
sta GP.SBUFADR+1 sta GP.SBUFADR+1
ldx GP.OPENCNT ldx GP.OPENCNT
beq LB30E beq LB30E
@ -728,7 +728,7 @@ LB2D5 jsr BS.GetSysBuf
txa txa
asl asl
asl asl
adc XBBE3 adc BS.BUFPAGE
pha pha
LB2F2 cmp BS.BUFPAGEs,x LB2F2 cmp BS.BUFPAGEs,x
@ -750,7 +750,7 @@ LB2FB tya
brk brk
LB30D pla LB30D pla
LB30E sta XBBE3 LB30E sta BS.BUFPAGE
sta GP.OSYSBUF+1 sta GP.OSYSBUF+1
stz MLI.LEVEL stz MLI.LEVEL
@ -768,7 +768,7 @@ LB30E sta XBBE3
LB327 ldx GP.OSYSBUF+1 LB327 ldx GP.OSYSBUF+1
stx BS.REFNUMs stx BS.REFNUMs
lda GP.OREFNUM lda GP.OREFNUM
sta XBBFE sta BS.REFNUM
LB333 sta GP.MLIRW.REFNUM LB333 sta GP.MLIRW.REFNUM
sta GP.MLIMRKEOFBUF.REFNUM sta GP.MLIMRKEOFBUF.REFNUM
@ -785,7 +785,7 @@ LB333 sta GP.MLIRW.REFNUM
lda #MLI.C.NEWLINE lda #MLI.C.NEWLINE
jsr GP.GOSYSTEM jsr GP.GOSYSTEM
lda GP.FoundBITS+1 lda GP.FoundBITS+1
and #$03 and #CMDBITS1.F+CMDBITS1.R
beq LB364 beq LB364
jsr LB592 jsr LB592
@ -811,7 +811,7 @@ LB37B rts
BS.KW.VERIFY bcs LB3B7 BS.KW.VERIFY bcs LB3B7
lda GP.FoundBITS lda GP.FoundBITS
and #$01 and #CMDBITS1.R
bne LB38D bne LB38D
ldy #0 ldy #0
@ -825,7 +825,7 @@ LB38D clc
* beq LB39F * beq LB39F
BS.KW.FLUSH lda GP.FoundBITS BS.KW.FLUSH lda GP.FoundBITS
and #$01 and #CMDBITS1.R
beq LB39F beq LB39F
jsr BS.CheckFilename jsr BS.CheckFilename
@ -904,7 +904,7 @@ LB3FE lda GP.FITYPE
LB41D jsr BS.GetSysBuf LB41D jsr BS.GetSysBuf
bcs LB3B9 bcs LB3B9
lda XBBE3 lda BS.BUFPAGE
sta GP.OSYSBUF+1 sta GP.OSYSBUF+1
lda #$07 lda #$07
sta MLI.LEVEL sta MLI.LEVEL
@ -928,7 +928,7 @@ LB443 lda #$00
ror ror
sta GP.DIRFLG sta GP.DIRFLG
ldx GP.OPENCNT ldx GP.OPENCNT
lda XBBE3 lda BS.BUFPAGE
sta BS.BUFPAGEs+1,x sta BS.BUFPAGEs+1,x
lda GP.OREFNUM lda GP.OREFNUM
sta BS.REFNUMs+1,x sta BS.REFNUMs+1,x
@ -942,7 +942,7 @@ BS.AddOpenFile asl
tax tax
lda MLI.PATHBUF lda MLI.PATHBUF
ora GP.DIRFLG ora GP.DIRFLG
sta XBC59,x sta BS.OpenFiles,x
and #$7F and #$7F
tay tay
cmp #$1E cmp #$1E
@ -953,13 +953,13 @@ BS.AddOpenFile asl
LB473 sta ZP.PCL LB473 sta ZP.PCL
lda GP.ParamL lda GP.ParamL
sta XBC5A,x sta BS.OpenFiles+1,x
lda GP.ParamL+1 lda GP.ParamL+1
sta XBC5B,x sta BS.OpenFiles+2,x
LB481 inx LB481 inx
lda MLI.PATHBUF,y lda MLI.PATHBUF,y
sta XBC5B,x sta BS.OpenFiles+2,x
dey dey
dec ZP.PCL dec ZP.PCL
bne LB481 bne LB481
@ -999,7 +999,7 @@ LB4B3 ldx ZP.PCH
LB4B8 lda GP.EXECACTV LB4B8 lda GP.EXECACTV
bpl LB4CE bpl LB4CE
lda XBBFE lda BS.REFNUM
jsr BS.FindOpenFile jsr BS.FindOpenFile
bne LB4CE bne LB4CE
@ -1018,7 +1018,7 @@ BS.FindOpenFile asl
asl asl
asl asl
tax tax
lda XBC59,x lda BS.OpenFiles,x
sta GP.DIRFLG sta GP.DIRFLG
and #$7F and #$7F
cmp MLI.PATHBUF cmp MLI.PATHBUF
@ -1032,14 +1032,14 @@ BS.FindOpenFile asl
LB4EC sta ZP.PCL LB4EC sta ZP.PCL
lda XBC5A,x lda BS.OpenFiles+1,x
sta XBBFF sta BS.RecordSize
lda XBC5B,x lda BS.OpenFiles+2,x
sta XBC00 sta BS.RecordSize+1
LB4FA inx LB4FA inx
lda MLI.PATHBUF,y lda MLI.PATHBUF,y
cmp XBC5B,x cmp BS.OpenFiles+2,x
bne LB508 bne LB508
dey dey
@ -1049,7 +1049,7 @@ LB4FA inx
LB508 rts LB508 rts
*-------------------------------------- *--------------------------------------
BS.KW.CLOSE lda GP.FoundBITS BS.KW.CLOSE lda GP.FoundBITS
and #$01 and #CMDBITS0.FN1
beq LB562 beq LB562
jsr BS.CheckFilename jsr BS.CheckFilename
@ -1057,7 +1057,7 @@ BS.KW.CLOSE lda GP.FoundBITS
LB515 sta GP.MLICF.REFNUM LB515 sta GP.MLICF.REFNUM
lda BS.BUFPAGEs,x lda BS.BUFPAGEs,x
sta XBBE3 sta BS.BUFPAGE
bit GP.EXECFILE bit GP.EXECFILE
bmi LB53F bmi LB53F
@ -1116,7 +1116,7 @@ BS.KW.POSITION jsr BS.CheckFilename
bmi LB5F0 bmi LB5F0
*-------------------------------------- *--------------------------------------
LB592 lda GP.FoundBITS+1 LB592 lda GP.FoundBITS+1
and #$03 and #CMDBITS1.F+CMDBITS1.R
beq LB5ED beq LB5ED
cmp #$03 cmp #$03
@ -1164,9 +1164,9 @@ LB5ED lda #BS.E.INVOPT
LB5EF sec LB5EF sec
LB5F0 rts LB5F0 rts
*-------------------------------------- *--------------------------------------
LB5F1 lda XBBFF LB5F1 lda BS.RecordSize
sta BS.TMPBUF4 sta BS.TMPBUF4
lda XBC00 lda BS.RecordSize+1
sta BS.TMPBUF4+1 sta BS.TMPBUF4+1
stz BS.TMPBUF4+2 stz BS.TMPBUF4+2
@ -1220,13 +1220,13 @@ BS.KW.READ jsr BS.CheckFilename
bit GP.DIRFLG bit GP.DIRFLG
bmi LB69C bmi LB69C
jsr LB6D0 jsr BS.CheckBFR
bcs LB69B bcs LB69B
ldx #$7F ldx #$7F
ldy #$EF ldy #$EF
lda GP.FoundBITS+1 lda GP.FoundBITS+1
and #$10 and #CMDBITS1.L
beq LB67C beq LB67C
ldy GP.ParamL ldy GP.ParamL
@ -1264,7 +1264,7 @@ LB69C lda #$59
lda #$01 lda #$01
sta GP.CATFLAG sta GP.CATFLAG
lda GP.FoundBITS+1 lda GP.FoundBITS+1
and #$01 and #CMDBITS1.R
clc clc
beq LB696 beq LB696
@ -1280,11 +1280,11 @@ LB6CB lda #BS.E.RANGE
sec sec
rts rts
*-------------------------------------- *--------------------------------------
LB6D0 lda GP.FoundBITS+1 BS.CheckBFR lda GP.FoundBITS+1
and #$43 and #CMDBITS1.B+CMDBITS1.F+CMDBITS1.R
beq LB719 beq LB719
and #$01 and #CMDBITS1.R
beq LB6E5 beq LB6E5
jsr LB5F1 jsr LB5F1
@ -1292,16 +1292,16 @@ LB6D0 lda GP.FoundBITS+1
LB6E0 jsr LB712 LB6E0 jsr LB712
bcs LB71A bcs LB71A
LB6E5
lda GP.FoundBITS+1 LB6E5 lda GP.FoundBITS+1
and #$02 and #CMDBITS1.F
beq LB6F1 beq LB6F1
jsr LB5AD jsr LB5AD
bcs LB71A bcs LB71A
LB6F1 lda GP.FoundBITS+1 LB6F1 lda GP.FoundBITS+1
and #$40 and #CMDBITS1.B
beq LB719 beq LB719
jsr BS.MLIGetMark jsr BS.MLIGetMark
@ -1343,7 +1343,7 @@ LB732 sec
LB734 stz GP.MLIRW.DATAPTR LB734 stz GP.MLIRW.DATAPTR
lda #$02 lda #$02
sta GP.MLIRW.DATAPTR+1 sta GP.MLIRW.DATAPTR+1
jsr LB6D0 jsr BS.CheckBFR
bcc LB757 bcc LB757
cmp #$02 cmp #$02
@ -1388,64 +1388,63 @@ LB77B sta GP.MLIRW.REFNUM
bpl LB78A bpl LB78A
lda #BS.E.LOCKED lda #BS.E.LOCKED
sec
LB788 sec LB788 rts
rts
LB78A ldx GP.ParamL LB78A ldx GP.ParamL
ldy GP.ParamL+1 ldy GP.ParamL+1
lda GP.FoundBITS+1 lda GP.FoundBITS+1
and #$10 and #CMDBITS1.L
bne LB79D bne LB79D
ldx GP.FIAUXTYPE ldx GP.FIAUXTYPE
ldy GP.FIAUXTYPE+1 ldy GP.FIAUXTYPE+1
LB79D txa LB79D phx
pha
jsr BS.GetFTableIdx jsr BS.GetFTableIdx
pla pla
sta XBC5A,x sta BS.OpenFiles+1,x
sta XBBFF sta BS.RecordSize
tya tya
sta XBC5B,x sta BS.OpenFiles+2,x
sta XBC00 sta BS.RecordSize+1
jsr BS.MLIGetEOF jsr BS.MLIGetEOF
bcs LB788 bcs LB788
lda XBC00 lda BS.RecordSize+1
bne LB7C8 bne LB7C8
lda XBBFF lda BS.RecordSize
cmp #$02 cmp #$02
bcc LB7CD bcc LB7CD
LB7C8 jsr LB7D0 LB7C8 jsr BS.FileLenDivRS
bcs LB788 bcs LB788
LB7CD jmp LB74B LB7CD jmp LB74B
*-------------------------------------- *--------------------------------------
LB7D0 ldx #$03 BS.FileLenDivRS ldx #$03
LB7D2 lda GP.MLIMRKEOFBUF.REFNUM,x LB7D2 lda GP.SBUFADR-1,x
sta XBC09,x sta BS.TMPBUF4-1,x
dex dex
bne LB7D2 bne LB7D2
stz BS.TMPBUF4+3 stz BS.TMPBUF4+3
stz XBC0E stz XBC0E
ldy #$18 ldy #24
LB7E3 jsr BS.TMPBUF3x2 LB7E3 jsr BS.TMPBUF3x2
rol BS.TMPBUF4+3 rol BS.TMPBUF4+3
rol XBC0E rol XBC0E
sec sec
lda BS.TMPBUF4+3 lda BS.TMPBUF4+3
sbc XBBFF sbc BS.RecordSize
tax tax
lda XBC0E lda XBC0E
sbc XBC00 sbc BS.RecordSize+1
bcc LB805 bcc LB805
stx BS.TMPBUF4+3 stx BS.TMPBUF4+3
@ -1460,11 +1459,11 @@ LB805 dey
clc clc
beq LB839 beq LB839
lda XBBFF lda BS.RecordSize
sec sec
sbc BS.TMPBUF4+3 sbc BS.TMPBUF4+3
tax tax
lda XBC00 lda BS.RecordSize+1
sbc XBC0E sbc XBC0E
tay tay
txa txa
@ -1475,10 +1474,10 @@ LB805 dey
adc GP.SBUFADR+1 adc GP.SBUFADR+1
sta GP.SBUFADR+1 sta GP.SBUFADR+1
bcc .1 bcc .1
inc GP.SBUFADR+2 inc GP.SBUFADR+2
.1 lda #$02 .1 lda #BS.E.RANGE
LB839 rts LB839 rts
*-------------------------------------- *--------------------------------------
@ -1514,7 +1513,7 @@ BS.KW.MEM jsr MON.CROUT
sta $260,x sta $260,x
dex dex
bpl .1 bpl .1
lda AS.HIMEM lda AS.HIMEM
sta $260+10 sta $260+10
lda AS.HIMEM+1 lda AS.HIMEM+1
@ -1531,18 +1530,19 @@ BS.KW.MEM jsr MON.CROUT
lda XBC10 lda XBC10
cmp #6 cmp #6
bne .2 bne .2
jsr MON.CROUT jsr MON.CROUT
clc clc
rts rts
*-------------------------------------- *--------------------------------------
BS.KW.ONLINE jsr MON.CROUT BS.KW.ONLINE jsr MON.CROUT
ldx #BS.CMDBUF jsr BS.SetSBUFADRCMDBUF
ldy /BS.CMDBUF
jsr BS.SetSBUFADRXY lda MLI.DEVNUM
pha
lda #$10 lda #$10
.1 sta GP.MLIMRKEOFBUF.REFNUM .1 sta GP.MLIMRKEOFBUF.REFNUM
@ -1550,32 +1550,35 @@ BS.KW.ONLINE jsr MON.CROUT
lda #MLI.C.ONLINE lda #MLI.C.ONLINE
jsr GP.GOSYSTEM jsr GP.GOSYSTEM
bcs .7 bcs .7
lda BS.CMDBUF lda BS.CMDBUF
and #$0F and #$0F
inc inc
sta BS.CMDBUF.LEN sta BS.CMDBUF.LEN
lda #'/' lda #'/'
sta BS.CMDBUF sta BS.CMDBUF
jsr BS.GetFileInfo jsr BS.GetFileInfo
bcs .7 bcs .7
ldx #BSX.Online.X ldx #BSX.Online.X
jsr BS.ToAUX jsr BS.ToAUX
jsr BS.LINEBUFOUT jsr BS.LINEBUFOUT
.7 lda GP.MLIMRKEOFBUF.REFNUM .7 lda GP.MLIMRKEOFBUF.REFNUM
eor #$80 eor #$80
bmi .1 bmi .1
clc clc
adc #$10 adc #$10
bpl .1 bpl .1
jsr MON.CROUT jsr MON.CROUT
pla
sta MLI.DEVNUM
clc clc
rts rts
*-------------------------------------- *--------------------------------------
@ -1598,7 +1601,7 @@ BS.Expand2PATHBUF
BS.ToAUX stx .1+1 BS.ToAUX stx .1+1
sei sei
tsx tsx
sta IO.SETALTZP sta IO.SETALTZP
stx $100 stx $100
@ -1612,24 +1615,24 @@ BS.ToAUX stx .1+1
.1 ldx #$FF SELF MODIFIED .1 ldx #$FF SELF MODIFIED
jsr BSX.JMPX jsr BSX.JMPX
stx .3+1 stx .3+1
php php
plx plx
stx .2+1 stx .2+1
sei sei
tsx tsx
stx $101 stx $101
ldx $100 ldx $100
txs txs
sta IO.CLRALTZP sta IO.CLRALTZP
bit IO.RROMBNK1 bit IO.RROMBNK1
cli cli
.2 ldx #$FF SELF MODIFIED .2 ldx #$FF SELF MODIFIED
phx phx
.3 ldx #$FF SELF MODIFIED .3 ldx #$FF SELF MODIFIED
@ -1646,6 +1649,9 @@ BS.GetFTableIdx lda GP.MLIRW.REFNUM
tax tax
rts rts
*-------------------------------------- *--------------------------------------
BS.SetSBUFADRCMDBUF
ldx #BS.CMDBUF
ldy /BS.CMDBUF
BS.SetSBUFADRXY0 BS.SetSBUFADRXY0
stz GP.SBUFADR+2 stz GP.SBUFADR+2

View File

@ -155,7 +155,7 @@ BS.TXTTAB .DA $0800
BS.MEMSIZE .DA HIMEM-$400 BS.MEMSIZE .DA HIMEM-$400
XBBE2 .BS 1 XBBE2 .BS 1
XBBE3 .BS 1 BS.BUFPAGE .BS 1
BS.BAS.HDR .BS 5 BS.BAS.HDR .BS 5
XBBE9 .BS 1 XBBE9 .BS 1
@ -165,9 +165,9 @@ XBBEC .BS 1
XBBED .BS 1 XBBED .BS 1
BS.BUFPAGEs .BS 8 BS.BUFPAGEs .BS 8
BS.REFNUMs .BS 8 BS.REFNUMs .BS 8
XBBFE .BS 1 BS.REFNUM .BS 1
XBBFF .BS 1 BS.RecordSize .BS 2
XBC00 .BS 3 .BS 2
BS.CALLX .BS 1 BS.CALLX .BS 1
BS.GetCharSep .BS 1 BS.GetCharSep .BS 1
BS.GetCharMax .BS 1 BS.GetCharMax .BS 1
@ -183,11 +183,10 @@ XBC10 .BS 1
BS.CATWIDTH .BS 1 BS.CATWIDTH .BS 1
XBC12 .BS 1 BS.CAT.EL .BS 1
XBC13 .BS 1 BS.CAT.EPB .BS 1
XBC14 .BS 1 BS.CAT.FileCnt .BS 2
XBC15 .BS 1 BS.CAR.EICB .BS 1
XBC16 .BS 1
*-------------------------------------- *--------------------------------------
.LIST ON .LIST ON
BS.FREESPACE .EQ $BC17-* BS.FREESPACE .EQ $BC17-*
@ -197,10 +196,7 @@ BS.FREESPACE .EQ $BC17-*
BS.CMDBUF.LEN .BS 1 keep this in $BC page, flagged in MLI.MEMTABL BS.CMDBUF.LEN .BS 1 keep this in $BC page, flagged in MLI.MEMTABL
BS.CMDBUF .BS 65 BS.CMDBUF .BS 65
*-------------------------------------- *--------------------------------------
XBC59 .BS 1 BS.OpenFiles .BS 167
XBC5A .BS 1
XBC5B .BS 165
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE usr/src/basic.fx/basic.s.d SAVE usr/src/basic.fx/basic.s.d

View File

@ -56,21 +56,25 @@ LDR.START1 ldx #$FF
ldx #$01 ldx #$01
jsr LDR.MoveXpages jsr LDR.MoveXpages
lda bRAMFlag
sta GP.CISPARE1
lda #$CF page 0,1,4,5,6,7 lda #%11001111 pages 0,1,...,4,5,6,7 protected
sta MLI.MEMTABL sta MLI.MEMTABL
ldx #19 HIMEM=$A000 ldx #19
.1 stz MLI.MEMTABL,x .1 stz MLI.MEMTABL,x
dex dex
bne .1 bne .1
lda #$FF lda #$FF
sta MLI.MEMTABL+20 sta MLI.MEMTABL+20 HIMEM=$A000
sta MLI.MEMTABL+21 sta MLI.MEMTABL+21
sta MLI.MEMTABL+22 sta MLI.MEMTABL+22
lda #$C3
lda #%11000011 pages $B8,$B9,...,$BE,$BF protected
sta MLI.MEMTABL+23 sta MLI.MEMTABL+23
bit IO.RRAMWRAMBNK2 bit IO.RRAMWRAMBNK2
@ -313,7 +317,9 @@ LDR.KSW lda GP.INVECT0
lda #$8D lda #$8D
rts rts
*-------------------------------------- *--------------------------------------
LDR.ShrinkRAM lda MLI.DEVPTRS3D2 LDR.ShrinkRAM stz bRAMFlag
lda MLI.DEVPTRS3D2
ldx MLI.DEVPTRS3D2+1 ldx MLI.DEVPTRS3D2+1
cmp MLI.DEVPTRS S0D1=NOVEV cmp MLI.DEVPTRS S0D1=NOVEV
@ -362,7 +368,7 @@ LDR.ShrinkRAM lda MLI.DEVPTRS3D2
dex dex
bpl .7 bpl .7
dec GP.CISPARE1 Tell BYE to reset that... dec bRAMFlag Tell BYE to reset that...
php php
sei sei

View File

@ -57,6 +57,7 @@ CMDBITS1.V .EQ $00 ;Volume number ignored
Ptr1 .EQ 0 Ptr1 .EQ 0
Ptr2 .EQ 2 Ptr2 .EQ 2
ZPCode .EQ 4 ZPCode .EQ 4
bRAMFlag .EQ 6
ZP.WNDLFT .EQ $20 ZP.WNDLFT .EQ $20
ZP.WNDWDT .EQ $21 ZP.WNDWDT .EQ $21