BASICFX: .. implementation, EDIT bug fixes

This commit is contained in:
burniouf 2022-03-24 21:24:26 +01:00
parent 447ce4b142
commit 340ce51779
16 changed files with 498 additions and 367 deletions

Binary file not shown.

Binary file not shown.

View File

@ -122,21 +122,23 @@ BS.IO.IN bit GP.EXECACTV
jsr MON.KEYIN0 jsr MON.KEYIN0
cmp #$8D cmp #$8D
beq .5 beq .5
cmp #$88
beq .2
cmp #$FF cmp #$FF
bne BS.SaveCSWKSW bne BS.SaveCSWKSW
* lda ZP.PROMPT
* >DEBUG .2 txa
txa
beq BS.IO.IN.BS beq BS.IO.IN.BS
lda #$88 .3 lda #$88
jsr MON.COUT jsr MON.COUT
lda #$A0 lda #$A0
jsr MON.COUT jsr MON.COUT
bra BS.IO.IN.BS bra BS.IO.IN.BS
.5 jsr BS.SaveAXY .5 jsr BS.SaveAXY
sta IO.LINEBUF,x sta IO.LINEBUF,x
@ -154,7 +156,7 @@ BS.IO.IN.BS lda #$88
bra BS.SaveCSWKSW bra BS.SaveCSWKSW
L9AE8 jsr BS.RestoreAXY L9AE8 jsr BS.RestoreAXY
bra BS.SaveCSWKSW jmp BS.SaveCSWKSW
*-------------------------------------- *--------------------------------------
BS.NODEVERR lda #$03 BS.NODEVERR lda #$03
@ -169,7 +171,7 @@ BS.ERROUT sta GP.ERRCODE
stz GP.IFILACTV stz GP.IFILACTV
stz GP.OFILACTV stz GP.OFILACTV
stz GP.PFXACTV stz GP.PFXACTV
stz GP.MLICF.REFNUM stz GP.MLICF.REFNUM Close All
jsr BS.MLIClose jsr BS.MLIClose
bcs L9B27 bcs L9B27
@ -202,7 +204,7 @@ L9B30 php
plp plp
bcs L9B53 bcs L9B53
jsr BS.CROUT jsr MON.CROUT
jmp AS.RESTART1 jmp AS.RESTART1
L9B4D ldx AS.REMSTK L9B4D ldx AS.REMSTK
@ -358,8 +360,8 @@ BS.ReadOneByte lda GP.MLIRW.COUNT
sta GP.ParamL sta GP.ParamL
lda #$01 lda #$01
sta GP.MLIRW.COUNT sta GP.MLIRW.COUNT
lda #MLI.C.READ
jsr GP.GOSYSTEM jsr BS.MLIRead
bcs L9C66 bcs L9C66
lda GP.ParamL lda GP.ParamL
@ -372,8 +374,7 @@ L9C66 rts
L9C67 lda GP.PREGA L9C67 lda GP.PREGA
sta (ZP.BASL),y sta (ZP.BASL),y
L9C6C lda #MLI.C.READ L9C6C jsr BS.MLIRead
jsr GP.GOSYSTEM
bcs L9C66 bcs L9C66
lda GP.MLIRW.TRANS lda GP.MLIRW.TRANS
@ -405,8 +406,7 @@ L9C95 cmp #$BE
sta (ZP.BASL),y sta (ZP.BASL),y
lda #$4F lda #$4F
sta BS.CATWIDTH sta BS.CATWIDTH
lda #MLI.C.GETMARK jsr BS.MLIGetMark
jsr GP.GOSYSTEM
bcs L9D1F bcs L9D1F
lda GP.SBUFADR lda GP.SBUFADR
@ -457,8 +457,7 @@ L9CF9 cmp #$FF
stz GP.MLIRW.COUNT stz GP.MLIRW.COUNT
stz GP.MLIRW.COUNT+1 stz GP.MLIRW.COUNT+1
lda #MLI.C.READ jsr BS.MLIRead
jsr GP.GOSYSTEM
jsr LB157 jsr LB157
pha pha
lda GP.MLIRW.REFNUM lda GP.MLIRW.REFNUM
@ -545,20 +544,17 @@ BS.Setup4readEFBytesAt200
*-------------------------------------- *--------------------------------------
BS.VSYSO jsr BS.SaveAXY BS.VSYSO jsr BS.SaveAXY
cmp #$84 cmp #$84
bne L9DC5 bne .1
jsr BS.WriteTBUF jsr BS.WriteTBUF
stz GP.INPTR stz GP.INPTR
stz GP.IFILACTV stz GP.IFILACTV
stz GP.OFILACTV stz GP.OFILACTV
stz GP.PFXACTV stz GP.PFXACTV
ldx #$08 jmp BS.SetState8RestAXY
jsr BS.SetState
jmp BS.RestoreAXY .1 jsr BS.SetState4RestAXY
L9DC5 ldx #$04
jsr BS.SetState
jsr BS.RestoreAXY
jmp BS.JMP.GP.VSYSO jmp BS.JMP.GP.VSYSO
*-------------------------------------- *--------------------------------------
BS.IO.OUT.CAT jsr BS.SaveAXY BS.IO.OUT.CAT jsr BS.SaveAXY
@ -579,7 +575,7 @@ L9DE7 ldx GP.PREGX
L9DEB inx L9DEB inx
dex dex
beq L9DFA beq BS.SetState4RestAXY
jsr BS.ResetCSWKSW jsr BS.ResetCSWKSW
jsr BS.DOSCMD jsr BS.DOSCMD
@ -587,8 +583,12 @@ L9DEB inx
jsr BS.SaveCSWKSW jsr BS.SaveCSWKSW
L9DFA ldx #$04 BS.SetState4RestAXY
jsr BS.SetState ldx #$04
.HS 2C BIT ABS
BS.SetState8RestAXY
ldx #$08
jsr BS.SetState
jmp BS.RestoreAXY jmp BS.RestoreAXY
L9E02 sty GP.PREGY L9E02 sty GP.PREGY
@ -681,7 +681,7 @@ L9E8A jsr BS.SaveAXY
jsr BS.WriteTBUF jsr BS.WriteTBUF
sta GP.OFILACTV sta GP.OFILACTV
jsr BS.ResetCSWKSW jsr BS.ResetCSWKSW
lda #$15 lda #BS.E.FSTILLOPEN
jsr GP.PRINTERR jsr GP.PRINTERR
L9EA0 jsr BS.RestoreAXY L9EA0 jsr BS.RestoreAXY
@ -728,7 +728,7 @@ L9ED2 dec GP.STRINGS
bcs L9EE9 bcs L9EE9
jsr BS.WriteTBUF jsr BS.WriteTBUF
jsr BS.KW.01 jsr BS.KW.FRE
lda AS.STRINGSTART+1 lda AS.STRINGSTART+1
sbc AS.ARRAYEND+1 sbc AS.ARRAYEND+1
@ -765,7 +765,7 @@ BS.AS.KW.CALL lda #$02
bne L9F32 bne L9F32
BS.AS.KW.LET tya BS.AS.KW.LET tya
jmp L9ED2 bra L9ED2
BS.AS.KW.TRACE sty GP.DTRACE BS.AS.KW.TRACE sty GP.DTRACE
bne L9F2E bne L9F2E
@ -779,7 +779,7 @@ L9F2E lda #$4A
L9F32 tya L9F32 tya
jmp AS.EXECSTMT jmp AS.EXECSTMT
*--------------------------------------
BS.AS.KW.RESUME stz AS.ERRNUM BS.AS.KW.RESUME stz AS.ERRNUM
tya tya
bne L9EF0 bne L9EF0
@ -797,7 +797,7 @@ L9F3D jsr BS.ResetCSWKSW
jmp L9ECA jmp L9ECA
BS.AS.KW.FLASH BS.AS.KW.FLASH
lda #$E3 lda #$E3
bne L9F5E .HS 2C BIT ABS
BS.AS.KW.NORMAL BS.AS.KW.NORMAL
BS.AS.KW.INVERSE BS.AS.KW.INVERSE
lda #$A3 lda #$A3
@ -831,25 +831,24 @@ BS.SetState stx GP.STATE
rts rts
*-------------------------------------- *--------------------------------------
BS.PRINTERR tay BS.PRINTERR tay
ldx BS.ERRCODES-1,y ldx BS.ERRCODES-2,y
BS.PRINTERRX jsr BS.PRINTERRMSGX BS.PRINTERRX jsr BS.PRINTERRMSGX
ldx GP.INPTR ldx GP.INPTR
stx BS.CATWIDTH stx BS.CATWIDTH
jsr BS.CROUT jsr MON.CROUT
lda #$87 lda #$87
jsr BS.COUT jsr MON.COUT
BS.LINEBUFOUT ldx #$00 BS.LINEBUFOUT ldx #$00
.1 lda IO.LINEBUF+1,x .1 lda IO.LINEBUF+1,x
jsr BS.COUT jsr MON.COUT
inx inx
cpx BS.CATWIDTH cpx BS.CATWIDTH
bcc .1 bcc .1
BS.CROUT lda #$8D jmp MON.CROUT
BS.COUT jmp MON.COUT
*-------------------------------------- *--------------------------------------
BS.PRINTERRMSGX ldy #$00 BS.PRINTERRMSGX ldy #$00
clc clc
@ -862,7 +861,7 @@ L9FBA jsr L9FD6
ora #$10 ora #$10
L9FC4 tay L9FC4 tay
lda BS.TBL6,y lda BS.TBL6-1,y
beq L9FD5 beq L9FD5
ldy GP.INPTR ldy GP.INPTR
@ -914,8 +913,8 @@ 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
lda #MLI.C.WRITE
jsr GP.GOSYSTEM jsr BS.MLIWrite
stz GP.TBUFPTR stz GP.TBUFPTR
@ -924,7 +923,7 @@ BS.WriteTBUFAY sta GP.MLIRW.COUNT
LA01F clc LA01F clc
LA020 rts LA020 rts
*-------------------------------------- *--------------------------------------
LA021 jsr BS.KW.01 LA021 jsr BS.KW.FRE
bcs LA047 bcs LA047
lda AS.PGRMSTART+1 lda AS.PGRMSTART+1
@ -943,12 +942,14 @@ LA021 jsr BS.KW.01
jsr LA089 Z jsr LA089 Z
LA047 rts LA047 rts
*--------------------------------------
BS.KW.FRE stz BS.TXTTAB
BS.KW.01 stz BS.TXTTAB
lda #$03 lda #$03
sta XBBD9 sta XBBD9
lda AS.HIMEM+1 lda AS.HIMEM+1
sta XBBD8 sta XBBD8
lda AS.STRINGSTART+1 lda AS.STRINGSTART+1
sta BS.TXTTAB+1 sta BS.TXTTAB+1
sec sec
@ -993,9 +994,11 @@ LA08D lda BS.MEMSIZE+1
LA0A3 lda AS.VARSTART LA0A3 lda AS.VARSTART
sbc #$06 sbc #$06
sta ZP.A2L sta ZP.A2L
lda AS.VARSTART+1 lda AS.VARSTART+1
sbc #$00 sbc #$00
sta ZP.A2H sta ZP.A2H
lda AS.ARRAYSTART lda AS.ARRAYSTART
sta XBBDC sta XBBDC
lda XBBDA lda XBBDA
@ -1031,7 +1034,7 @@ LA0E0 sta XBBDA
sta XBBDB sta XBBDB
bcc LA0A3 bcc LA0A3
LA0F8 lda #$0C LA0F8 lda #BS.E.NOBUFFER
LA0FA rts LA0FA rts
LA0FB clc LA0FB clc
@ -1142,7 +1145,7 @@ LA170 ldy #$02
clc clc
LA198 rts LA198 rts
*--------------------------------------
LA199 lda XBBD7 LA199 lda XBBD7
sta ZP.PCH sta ZP.PCH
lda XBBD8 lda XBBD8
@ -1164,7 +1167,7 @@ LA1AD lda (ZP.PCL),y
bne LA1AD bne LA1AD
rts rts
*--------------------------------------
LA1BC cmp XBBD7 LA1BC cmp XBBD7
bcc LA1C8 bcc LA1C8
@ -1205,10 +1208,10 @@ LA1F2 clc
lda XBBDD lda XBBDD
sbc AS.STRINGSTART+1 sbc AS.STRINGSTART+1
rts rts
*--------------------------------------
LA1F9 lda #$04 LA1F9 lda #$04
LA1FB sta XBBB5 LA1FB sta XBBB5
jsr BS.KW.01 jsr BS.KW.FRE
bcs LA24E bcs LA24E
lda AS.STRINGSTART+1 lda AS.STRINGSTART+1
@ -1231,7 +1234,7 @@ LA1FB sta XBBB5
lda AS.HIMEM+1 lda AS.HIMEM+1
sbc ZP.PCH sbc ZP.PCH
sta XBBEE sta XBBEE
jsr LA35F jsr BS.MoveMemUp
lda #$00 lda #$00
sec sec
sbc XBBB5 sbc XBBB5
@ -1250,7 +1253,7 @@ LA1FB sta XBBB5
LA24E sec LA24E sec
rts rts
LA250 jsr BS.KW.01 LA250 jsr BS.KW.FRE
bcs LA29D bcs LA29D
lda AS.HIMEM+1 lda AS.HIMEM+1
@ -1268,13 +1271,15 @@ LA250 jsr BS.KW.01
lda AS.HIMEM+1 lda AS.HIMEM+1
sbc AS.STRINGSTART+1 sbc AS.STRINGSTART+1
sta XBBEE sta XBBEE
jsr LA383 jsr BS.MoveMemDown
lda #$04 lda #$04
sta XBBE2 sta XBBE2
clc clc
adc AS.HIMEM+1 adc AS.HIMEM+1
sta AS.HIMEM+1 sta AS.HIMEM+1
jsr LA3A3 jsr LA3A3
lda XBBE3 lda XBBE3
cmp AS.HIMEM+1 cmp AS.HIMEM+1
beq LA2B7 beq LA2B7

View File

@ -1,8 +1,6 @@
NEW NEW
AUTO 3,1 AUTO 3,1
*-------------------------------------- *--------------------------------------
BS.WHICHBITS .HS 8040201008040201
BS.GETBUFR jsr LA1FB BS.GETBUFR jsr LA1FB
bcs LA304 bcs LA304
@ -45,7 +43,7 @@ LA2F6 ldx #$08
LA303 clc LA303 clc
LA304 rts LA304 rts
*--------------------------------------
BS.FREEBUFR lda GP.OPENCNT BS.FREEBUFR lda GP.OPENCNT
asl asl
asl asl
@ -88,7 +86,7 @@ LA345 lda AS.HIMEM+1
LA34E dex LA34E dex
bne LA32F bne LA32F
LA351 jsr BS.KW.01 LA351 jsr BS.KW.FRE
LA354 clc LA354 clc
rts rts
@ -97,32 +95,32 @@ LA356 pha
jsr LA29F jsr LA29F
pla pla
rts rts
*--------------------------------------
LA35F ldy #$00 BS.MoveMemUp ldy #$00
cpy XBBEE cpy XBBEE
beq LA376 beq .2
LA366 lda (ZP.PCL),y .1 lda (ZP.PCL),y
sta (ZP.A1L),y sta (ZP.A1L),y
iny iny
bne LA366 bne .1
inc ZP.PCH inc ZP.PCH
inc ZP.A1H inc ZP.A1H
dec XBBEE dec XBBEE
bne LA366 bne .1
LA376 cpy XBBED .2 cpy XBBED
beq LA382 beq .8
lda (ZP.PCL),y lda (ZP.PCL),y
sta (ZP.A1L),y sta (ZP.A1L),y
iny iny
bne LA376 bne .2
LA382 rts .8 rts
*-------------------------------------- *--------------------------------------
LA383 ldy XBBED BS.MoveMemDown ldy XBBED
XA386 beq LA38F SELF MODIFIED XA386 beq LA38F SELF MODIFIED
LA388 jsr LA39A LA388 jsr LA39A
@ -133,7 +131,7 @@ LA38F cpy XBBEE
beq LA3A2 beq LA3A2
dec XBBEE dec XBBEE
jmp LA388 bra LA388
*-------------------------------------- *--------------------------------------
LA39A dey LA39A dey
lda (ZP.PCL),y lda (ZP.PCL),y
@ -178,7 +176,7 @@ LA3BF clc
iny iny
jsr LA3FD jsr LA3FD
jmp LA3AE bra LA3AE
LA3D6 lda ZP.A2L LA3D6 lda ZP.A2L
sta XBBDC sta XBBDC
@ -253,7 +251,8 @@ LA411 jsr LA021
sta ZP.PCH sta ZP.PCH
lda #$03 lda #$03
sta XA386+1 sta XA386+1
jsr LA383 jsr BS.MoveMemDown
lda #$07 lda #$07
sta XA386+1 sta XA386+1
lda ZP.A1L lda ZP.A1L
@ -293,7 +292,8 @@ LA480 lda BS.BAS.HDR
sta ZP.PCL sta ZP.PCL
lda XBBEA lda XBBEA
sta ZP.PCH sta ZP.PCH
jsr LA35F jsr BS.MoveMemUp
lda XBBED lda XBBED
clc clc
adc ZP.PCL adc ZP.PCL
@ -398,7 +398,7 @@ LA508 lda BS.PRODOSTYPES.ASC,y
lda DIRENTBUF.AUXT lda DIRENTBUF.AUXT
ldx DIRENTBUF.AUXT+1 ldx DIRENTBUF.AUXT+1
jsr BS.AXDEC2LINEBUFY jsr BS.AXDEC2LINEBUFY
jmp LA544 bra LA544
LA533 lda #$C1 LA533 lda #$C1
sta $249 sta $249
@ -616,7 +616,7 @@ BS.DOSCMD lda #$FF
eor #'-' eor #'-'
beq LA6A5 beq LA6A5
LA6A2 jmp BS.ERR10 LA6A2 jmp BS.SYNERR
LA6A5 jsr BS.IsIntCmdMTR LA6A5 jsr BS.IsIntCmdMTR
bcs LA6A2 bcs LA6A2
@ -628,7 +628,7 @@ LA6A5 jsr BS.IsIntCmdMTR
bne LA6BA bne LA6BA
jsr MON.CLREOL jsr MON.CLREOL
jsr BS.CROUT jsr MON.CROUT
LA6BA stz GP.FoundBITS LA6BA stz GP.FoundBITS
stz GP.FoundBITS+1 stz GP.FoundBITS+1
@ -670,7 +670,10 @@ LA6F8 pla
LA703 cmp #'/' LA703 cmp #'/'
beq LA70B beq LA70B
cmp #'.' .. or ../
beq LA70B
cmp #'A' cmp #'A'
bcc LA73D bcc LA73D
@ -679,17 +682,19 @@ LA70B dex
sta BS.GetCharSep sta BS.GetCharSep
lsr lsr
sta BS.GetCharMax sta BS.GetCharMax
ldy #$00
jsr LAA2D * ldy #$00
jsr BS.GetKWInCmdBufAtX
dey dey
sty BS.CMDBUF.LEN sty BS.CMDBUF.LEN
lda #CMDBITS0.FN1 lda #CMDBITS0.FN1
sta GP.FoundBITS sta GP.FoundBITS
LA723 lda BS.CMDBUF.LEN,y phx
sta MLI.PATHBUF,y jsr BS.Expand2PATHBUF
dey plx
bpl LA723 bcs LA73A
dex dex
jsr BS.GetCharSpaceSep jsr BS.GetCharSpaceSep
@ -701,13 +706,13 @@ LA723 lda BS.CMDBUF.LEN,y
lsr lsr
bcs LA770 bcs LA770
LA73A jmp BS.ERR10 LA73A jmp BS.SYNERR
LA73D lda GP.XCNUM LA73D lda GP.XCNUM
cmp #$06 cmp #$06 RUN ????
bne LA73A bne LA73A
LA744 jmp LA7A6 LA744 bra LA7A6
LA747 jsr BS.GetKWInCmdBuf LA747 jsr BS.GetKWInCmdBuf
beq LA73A beq LA73A
@ -730,7 +735,7 @@ LA747 jsr BS.GetKWInCmdBuf
cmp #$08 cmp #$08
bcc LA79F bcc LA79F
LA76C lda #$02 LA76C lda #BS.E.RANGE
sec sec
LA76F rts LA76F rts
@ -755,7 +760,7 @@ LA770 lsr
bne LA73A bne LA73A
bcc LA7A6 bcc LA7A6
*--------------------------------------
LA795 jsr BS.GetCharSpaceSep LA795 jsr BS.GetCharSpaceSep
beq LA73A beq LA73A
@ -787,7 +792,7 @@ LA7A6 lda GP.ParamS
lda GP.STATE lda GP.STATE
bne LA7C9 bne LA7C9
lda #$0F lda #BS.E.NODIRECT
sec sec
rts rts
@ -803,12 +808,12 @@ LA7C9 bcc LA80B
lda GP.AllowedBITS lda GP.AllowedBITS
and #$90 and #$90
beq BS.ERR10 beq BS.SYNERR
bpl LA80B bpl LA80B
LA7E1 lda BS.CMDBUF LA7E1 lda BS.CMDBUF
eor #$2F eor #'/'
beq LA7ED beq LA7ED
lda MLI.PFIXPTR lda MLI.PFIXPTR
@ -837,7 +842,6 @@ LA80B lda GP.XCNUM
sta BS.KW.JMPADDR sta BS.KW.JMPADDR
lda BS.KW.JMP+1,x lda BS.KW.JMP+1,x
sta BS.KW.JMPADDR+1 sta BS.KW.JMPADDR+1
* >DEBUG
clc clc
txa txa
@ -864,12 +868,12 @@ LA80B lda GP.XCNUM
and #$08 and #$08
bne LA844 bne LA844
lda #$06 lda #BS.E.PATHNFND6
rts rts
LA844 jmp (BS.KW.JMPADDR) LA844 jmp (BS.KW.JMPADDR)
BS.ERR10 lda #$10 BS.SYNERR lda #BS.E.SYNTAX
LA849 sec LA849 sec
rts rts
*-------------------------------------- *--------------------------------------
@ -900,7 +904,7 @@ BS.GetVolAtSxDy lda GP.ParamS
lda GP.ParamS lda GP.ParamS
sta GP.VDEFSLT sta GP.VDEFSLT
lda BS.CMDBUF lda BS.CMDBUF
eor #$2F eor #'/'
beq LA8F4 beq LA8F4
lda IO.LINEBUF+1 lda IO.LINEBUF+1
@ -922,9 +926,9 @@ LA89D dex
lda BS.CMDBUF,y lda BS.CMDBUF,y
sta BS.CMDBUF,x sta BS.CMDBUF,x
jmp LA89D bra LA89D
LA8AA lda #$2F LA8AA lda #'/'
sta BS.CMDBUF sta BS.CMDBUF
LA8AF sta BS.CMDBUF,x LA8AF sta BS.CMDBUF,x
@ -959,9 +963,9 @@ LA8D9 dex
lda MLI.PATHBUF+1,y lda MLI.PATHBUF+1,y
sta MLI.PATHBUF+1,x sta MLI.PATHBUF+1,x
jmp LA8D9 bra LA8D9
LA8E6 lda #$2F LA8E6 lda #'/'
sta MLI.PATHBUF+1 sta MLI.PATHBUF+1
LA8EB sta MLI.PATHBUF+1,x LA8EB sta MLI.PATHBUF+1,x
@ -987,7 +991,7 @@ LA8FB cmp BS.KW.OPT,y
cmp #'T' cmp #'T'
beq LA90A beq LA90A
LA907 jmp BS.ERR10 LA907 jmp BS.SYNERR
LA90A lda #$04 LA90A lda #$04
and GP.AllowedBITS and GP.AllowedBITS
@ -1011,7 +1015,7 @@ LA90A lda #$04
jmp BS.GetFTypeASC jmp BS.GetFTypeASC
LA931 sec LA931 sec
lda #$0B lda #BS.E.INVOPT
rts rts
LA935 lda BS.KW.OPT.PBITSLO,y LA935 lda BS.KW.OPT.PBITSLO,y
@ -1095,7 +1099,6 @@ LA9AF lda BS.TMPBUF4,x
clc clc
rts rts
LA9BE jmp BS.ERR10
LA9C1 jmp LA76C LA9C1 jmp LA76C
BS.GetFTypeASC ldy #$00 BS.GetFTypeASC ldy #$00
@ -1108,7 +1111,7 @@ LA9C6 sta BS.TMPBUF4,y
jsr BS.GetCharSpaceSep jsr BS.GetCharSpaceSep
bne LA9C6 bne LA9C6
beq LA9BE LA9BE jmp BS.SYNERR
LA9D5 stx GP.INPTR LA9D5 stx GP.INPTR
LA9D8 ldx #$00 LA9D8 ldx #$00
@ -1149,7 +1152,7 @@ BS.GetPathInPathBuf
jsr BS.GetChar UC jsr BS.GetChar UC
sta MLI.PATHBUF,y sta MLI.PATHBUF,y
iny iny
cmp #$2C cmp #','
beq LAA45 beq LAA45
cmp #$20 cmp #$20
@ -1166,6 +1169,8 @@ BS.GetPathInPathBuf
*-------------------------------------- *--------------------------------------
BS.GetKWInCmdBuf BS.GetKWInCmdBuf
ldx #$00 ldx #$00
BS.GetKWInCmdBufAtX
ldy #$00 ldy #$00
LAA2D jsr BS.GetChar UC LAA2D jsr BS.GetChar UC
@ -1198,18 +1203,18 @@ BS.GetCharSpaceSep
LAA56 clc LAA56 clc
LAA57 rts LAA57 rts
*-------------------------------------- *--------------------------------------
BS.GetCharUC lda IO.LINEBUF,x *BS.GetCharUC lda IO.LINEBUF,x
and #$7F * and #$7F
cmp #$61 * cmp #$61
bcc .1 * bcc .1
and #$5F * and #$5F
.1 inx *.1 inx
cmp BS.GetCharSep * cmp BS.GetCharSep
beq BS.GetCharUC * beq BS.GetCharUC
rts * rts
*-------------------------------------- *--------------------------------------
BS.GetChar lda IO.LINEBUF,x BS.GetChar lda IO.LINEBUF,x
and #$7F and #$7F
@ -1220,10 +1225,10 @@ BS.GetChar lda IO.LINEBUF,x
rts rts
*-------------------------------------- *--------------------------------------
BS.GetDecDigit cmp #$30 BS.GetDecDigit cmp #'0'
bcc LAA72 bcc LAA72
cmp #$3A cmp #'9'+1
bcc LAA76 bcc LAA76
LAA72 sec LAA72 sec
@ -1276,16 +1281,16 @@ LAAB8 lda #$FF
sec sec
LAABB rts LAABB rts
*-------------------------------------- *--------------------------------------
BS.GetHexDigit cmp #$30 BS.GetHexDigit cmp #'0'
bcc LAACC bcc LAACC
cmp #$3A cmp #'9'+1
bcc LAAD2 bcc LAAD2
cmp #$41 cmp #'A'
bcc LAACC bcc LAACC
cmp #$47 cmp #'F'+1
bcc LAAD0 bcc LAAD0
LAACC sec LAACC sec
@ -1346,6 +1351,7 @@ LAB14 lda BS.CMDBUF,y
LAB20 lda GP.XCNUM LAB20 lda GP.XCNUM
asl asl
tax tax
lda BS.KW.PBITS-1,x lda BS.KW.PBITS-1,x
sta GP.AllowedBITS+1 sta GP.AllowedBITS+1
lda BS.KW.PBITS-2,x lda BS.KW.PBITS-2,x
@ -1367,7 +1373,7 @@ BS.TMPBUF3Reset stz BS.TMPBUF4
stz BS.TMPBUF4+2 stz BS.TMPBUF4+2
rts rts
*-------------------------------------- *--------------------------------------
BS.KW.APPEND lda GP.FITYPE BS.KW.DASH lda GP.FITYPE
cmp #$FC cmp #$FC
beq BS.KW.RUN beq BS.KW.RUN
@ -1385,7 +1391,7 @@ LAB63 cmp #$FF
cmp #$B3 cmp #$B3
beq LAB6F beq LAB6F
lda #$0D lda #BS.E.MISMATCH
sec sec
rts rts
@ -1419,8 +1425,8 @@ LABA6 sec
bcs LABA3 bcs LABA3
jmp BS.QUIT.IIgs jmp BS.QUIT.IIgs
*--------------------------------------
BS.KW.X05 jsr LA411 BS.KW.CHAIN jsr LA411
lda AS.HIMEM+1 lda AS.HIMEM+1
sta BS.AS.HIMEMSave sta BS.AS.HIMEMSave
ldx XBBEA ldx XBBEA
@ -1435,7 +1441,7 @@ BS.KW.X05 jsr LA411
jsr LA480 jsr LA480
lda #$00 lda #$00
beq LABE6 beq LABE6
*--------------------------------------
BS.KW.RUN stz GP.IFILACTV BS.KW.RUN stz GP.IFILACTV
stz AS.ERRNUM stz AS.ERRNUM
@ -1462,15 +1468,15 @@ LABF4 jsr AS.NORMAL
sta ZP.PROMPT sta ZP.PROMPT
ldx #$04 ldx #$04
jsr BS.SetState jsr BS.SetState
jmp BS.ERR10 jmp BS.SYNERR
*--------------------------------------
BS.KW.RESTORE jsr LAC1D BS.KW.LOAD jsr LAC1D
bcs LAC33 bcs LAC33
BS.ENTRY jsr AS.CLEAR1 BS.ENTRY jsr AS.CLEAR1
jsr BS.SetState0 jsr BS.SetState0
lda #$00
sta ZP.CH stz ZP.CH
jmp AS.RESTART1 jmp AS.RESTART1
LAC1D jsr LB562 LAC1D jsr LB562
@ -1493,8 +1499,7 @@ LAC34 lda #$01
jsr BS.CheckFTypeXAccessA jsr BS.CheckFTypeXAccessA
bcs LAC33 bcs LAC33
lda #MLI.C.GETEOF jsr BS.MLIGetEOF
jsr GP.GOSYSTEM
bcs LAC33 bcs LAC33
lda AS.PGRMSTART lda AS.PGRMSTART
@ -1509,7 +1514,7 @@ LAC34 lda #$01
cmp AS.HIMEM+1 cmp AS.HIMEM+1
LAC5E lda #$0E LAC5E lda #BS.E.TOOLARGE
bcs LAC33 bcs LAC33
ldx GP.SBUFADR ldx GP.SBUFADR
@ -1580,7 +1585,7 @@ LACB6 lda GP.FoundBITS+1
clc clc
LACD9 rts LACD9 rts
*-------------------------------------- *--------------------------------------
BS.KW.STORE bcc LACFE BS.KW.SAVE bcc LACFE
lda #$FC lda #$FC
sta GP.ParamT sta GP.ParamT
@ -1622,8 +1627,7 @@ LACFE lda #$02
jsr BS.WriteXYBytes jsr BS.WriteXYBytes
bcs LAD47 bcs LAD47
lda #MLI.C.SETEOF jsr BS.MLISetEOF
jsr GP.GOSYSTEM
bcs LAD47 bcs LAD47
jsr BS.MLIClose jsr BS.MLIClose
@ -1675,7 +1679,7 @@ LAD82 stx GP.CRACCESS
lda #MLI.C.CREATE lda #MLI.C.CREATE
jmp GP.GOSYSTEM jmp GP.GOSYSTEM
LAD8D lda #$0C LAD8D lda #BS.E.NOBUFFER
rts rts
*-------------------------------------- *--------------------------------------
BS.KW.RENAME lda GP.FoundBITS BS.KW.RENAME lda GP.FoundBITS
@ -1684,10 +1688,12 @@ BS.KW.RENAME lda GP.FoundBITS
lda #MLI.C.RENAME lda #MLI.C.RENAME
bcs LAD9E bcs LAD9E
jmp BS.ERR10 jmp BS.SYNERR
*-------------------------------------- *--------------------------------------
BS.KW.DELETE lda #MLI.C.DESTROY BS.KW.DELETE lda #MLI.C.DESTROY
.HS 2C BIT ABS
BS.SETPREFIX lda #MLI.C.SETPREFIX
LAD9E jmp GP.GOSYSTEM LAD9E jmp GP.GOSYSTEM
*-------------------------------------- *--------------------------------------
BS.KW.LOCK jsr BS.GetFileInfo BS.KW.LOCK jsr BS.GetFileInfo
@ -1704,20 +1710,18 @@ BS.KW.UNLOCK1 sta GP.FIACCESS
jmp BS.SetFileInfo jmp BS.SetFileInfo
*-------------------------------------- *--------------------------------------
BS.KW.PREFIX lda GP.FoundBITS+1 BS.KW.PREFIX lda GP.FoundBITS+1
and #$04 and #CMDBITS1.SD
sec
bne LADCB bne BS.SETPREFIX
lda GP.FoundBITS lda GP.FoundBITS
lsr lsr
bcs BS.SETPREFIX
LADCB lda #MLI.C.SETPREFIX BS.GETPREFIX lda ZP.PROMPT
bcs LAD9E
lda ZP.PROMPT
beq LADF0 beq LADF0
jsr BS.CROUT jsr MON.CROUT
ldx #$00 ldx #$00
LADD8 cpx BS.CMDBUF.LEN LADD8 cpx BS.CMDBUF.LEN
@ -1725,12 +1729,12 @@ LADD8 cpx BS.CMDBUF.LEN
lda BS.CMDBUF,x lda BS.CMDBUF,x
ora #$80 ora #$80
jsr BS.COUT jsr MON.COUT
inx inx
bne LADD8 bne LADD8
LADE8 jsr BS.CROUT LADE8 jsr MON.CROUT
jsr BS.CROUT jsr MON.CROUT
clc clc
rts rts

View File

@ -102,16 +102,14 @@ LAE80 ldx GP.ParamL
LAEA5 bcs LAEC5 LAEA5 bcs LAEC5
lda #$02 lda #BS.E.RANGE
.HS 2C BIT ABS
LAEAB lda #BS.E.INVOPT
sec sec
rts rts
LAEAB lda #$0B LAEAF jsr BS.MLIGetEOF
sec
rts
LAEAF lda #MLI.C.GETEOF
jsr GP.GOSYSTEM
bcs LAEC3 bcs LAEC3
ldx GP.SBUFADR ldx GP.SBUFADR
@ -119,7 +117,7 @@ LAEAF lda #MLI.C.GETEOF
lda GP.SBUFADR+2 lda GP.SBUFADR+2
beq LAEC5 beq LAEC5
lda #$0E lda #BS.E.TOOLARGE
LAEC3 sec LAEC3 sec
rts rts
@ -135,8 +133,7 @@ LAED4 lda GP.ParamB,x
dex dex
bpl LAED4 bpl LAED4
LAEDD lda #MLI.C.SETMARK LAEDD jsr BS.MLISetMark
jsr GP.GOSYSTEM
ldx GP.XCNUM ldx GP.XCNUM
bcc LAEF7 bcc LAEF7
@ -146,8 +143,7 @@ LAEDD lda #MLI.C.SETMARK
cpx #$0F cpx #$0F
bne LAEC3 bne LAEC3
lda #MLI.C.SETEOF jsr BS.MLISetEOF
jsr GP.GOSYSTEM
bcc LAEDD bcc LAEDD
rts rts
@ -166,8 +162,7 @@ LAEF7 ldx GP.XCNUM
ldx GP.MLIRW.COUNT ldx GP.MLIRW.COUNT
ldy GP.MLIRW.COUNT+1 ldy GP.MLIRW.COUNT+1
jsr BS.SetSBUFADRXY0 jsr BS.SetSBUFADRXY0
lda #MLI.C.SETEOF jsr BS.MLISetEOF
jsr GP.GOSYSTEM
LAF22 lda #MLI.C.WRITE LAF22 lda #MLI.C.WRITE
@ -184,10 +179,9 @@ LAF24 jsr GP.GOSYSTEM
LAF35 jmp BS.MLIClose LAF35 jmp BS.MLIClose
LAF38 sec LAF38 rts
rts
*-------------------------------------- *--------------------------------------
BS.KW.SAVE bcc LAF4E BS.KW.STORE bcc LAF4E
lda #$FD lda #$FD
sta GP.ParamT sta GP.ParamT
@ -205,7 +199,7 @@ LAF4E jsr LA411
jsr BS.CheckFTypeXAccessA jsr BS.CheckFTypeXAccessA
bcs LAF95 bcs LAF95
jsr BS.SetupRW5AtBBE4 jsr BS.SetupRWBASHDR
jsr BS.WriteXYBytes jsr BS.WriteXYBytes
bcs LAF95 bcs LAF95
@ -220,17 +214,15 @@ LAF4E jsr LA411
jsr BS.WriteXYBytes jsr BS.WriteXYBytes
bcs LAF95 bcs LAF95
lda #MLI.C.GETMARK jsr BS.MLIGetMark
jsr GP.GOSYSTEM
lda #MLI.C.SETEOF jsr BS.MLISetEOF
jsr GP.GOSYSTEM
bcs LAF95 bcs LAF95
jsr BS.SetFileInfoNoDate jsr BS.SetFileInfoNoDate
bcs LAF95 bcs LAF95
jsr BS.MLIClose LAF92 jsr BS.MLIClose
LAF95 php LAF95 php
pha pha
@ -239,21 +231,21 @@ LAF95 php
plp plp
LAF9C rts LAF9C rts
*-------------------------------------- *--------------------------------------
BS.SetupRW5AtBBE4 BS.SetupRWBASHDR
lda #$E4 lda #BS.BAS.HDR
sta GP.MLIRW.DATAPTR sta GP.MLIRW.DATAPTR
lda #$BB lda /BS.BAS.HDR
sta GP.MLIRW.DATAPTR+1 sta GP.MLIRW.DATAPTR+1
ldy #$00 ldy #$00
ldx #$05 ldx #$05
rts rts
*-------------------------------------- *--------------------------------------
BS.KW.LOAD ldx #$FD BS.KW.RESTORE ldx #$FD
lda #$01 lda #$01
jsr BS.CheckFTypeXAccessA jsr BS.CheckFTypeXAccessA
bcs LAF9C bcs LAF9C
jsr BS.SetupRW5AtBBE4 jsr BS.SetupRWBASHDR
jsr BS.ReadXYBytes jsr BS.ReadXYBytes
bcs LAF9C bcs LAF9C
@ -281,33 +273,44 @@ BS.KW.LOAD ldx #$FD
jsr BS.ReadXYBytes jsr BS.ReadXYBytes
bcs LAF9C bcs LAF9C
jsr BS.MLIClose bra LAF92
jmp LAF95
LAFF3 lda #$0E LAFF3 lda #BS.E.TOOLARGE
sec sec
rts rts
*-------------------------------------- *--------------------------------------
BS.ReadXYBytes lda #MLI.C.READ BS.ReadXYBytes clc
.HS 2C BIT ABS .HS B0 BCS
BS.WriteXYBytes sec
BS.WriteXYBytes lda #MLI.C.WRITE
sty GP.MLIRW.COUNT+1 sty GP.MLIRW.COUNT+1
stx GP.MLIRW.COUNT stx GP.MLIRW.COUNT
bcc BS.MLIRead
BS.MLIWrite lda #MLI.C.WRITE
.HS 2C BIT ABS
BS.MLIRead lda #MLI.C.READ
.HS 2C BIT ABS .HS 2C BIT ABS
BS.MLIClose lda #MLI.C.CLOSE BS.MLIClose lda #MLI.C.CLOSE
.HS 2C BIT ABS
BS.MLIGetEOF lda #MLI.C.GETEOF
.HS 2C BIT ABS
BS.MLISetEOF lda #MLI.C.SETEOF
.HS 2C BIT ABS
BS.MLIGetMark lda #MLI.C.GETMARK
.HS 2C BIT ABS
BS.MLISetMark lda #MLI.C.SETMARK
jmp GP.GOSYSTEM jmp GP.GOSYSTEM
*-------------------------------------- *--------------------------------------
BS.KW.IN lda #$00 BS.KW.PR lda #$00
sta BS.GetCharSep tax
beq LB018 beq LB018
*-------------------------------------- *--------------------------------------
BS.KW.PR lda #$02 BS.KW.IN ldx #$02
sta BS.GetCharSep
lda #$08 lda #$08
LB018 ora GP.ParamINPR LB018 stx BS.GetCharSep
ora GP.ParamINPR
asl asl
tax tax
lda GP.FoundBITS lda GP.FoundBITS
@ -368,13 +371,13 @@ LB081 lda (ZP.PCL),y
cmp #$D8 cmp #$D8
beq LB07F beq LB07F
LB087 lda #$03 LB087 lda #BS.E.NODEV
sec sec
rts rts
*-------------------------------------- *--------------------------------------
BS.KW.BYE jsr LB562 BS.KW.BYE jsr LB562
jsr LB36B jsr LB36B
lda #$65 * lda #$65
jsr MLI jsr MLI
.DA #MLI.C.QUIT .DA #MLI.C.QUIT
.DA GP.MLIRW .DA GP.MLIRW
@ -409,15 +412,15 @@ LB0BA bcs LB0C1
LB0C1 jsr LB1BA LB0C1 jsr LB1BA
bcs LB127 bcs LB127
jsr BS.CROUT jsr MON.CROUT
jsr LB128 jsr LB128
jsr BS.LINEBUFOUT jsr BS.LINEBUFOUT
jsr BS.CROUT jsr MON.CROUT
jsr BS.LINEBUFCLR80 jsr BS.LINEBUFCLR80
ldx #$10 ldx #$10
jsr BS.PRINTERRMSGX jsr BS.PRINTERRMSGX
jsr BS.LINEBUFOUT jsr BS.LINEBUFOUT
jsr BS.CROUT jsr MON.CROUT
lda XBC14 lda XBC14
ora XBC15 ora XBC15
@ -449,12 +452,12 @@ LB10E lda #$FF
LB113 jsr BS.MLIClose LB113 jsr BS.MLIClose
bcs LB127 bcs LB127
jsr BS.CROUT jsr MON.CROUT
jsr LB157 jsr LB157
bcs LB127 bcs LB127
jsr BS.LINEBUFOUT jsr BS.LINEBUFOUT
jsr BS.CROUT jsr MON.CROUT
clc clc
LB127 rts LB127 rts
@ -462,7 +465,7 @@ LB127 rts
LB128 jsr BS.LINEBUFCLR80 LB128 jsr BS.LINEBUFCLR80
ldx #$01 ldx #$01
ldy DIRENTBUF.STNL ldy DIRENTBUF.STNL
lda #$AF lda #"/"
cpy #$F0 cpy #$F0
bcc LB13A bcc LB13A
@ -501,7 +504,7 @@ LB157 ldx #BS.CMDBUF
tax tax
inx inx
stx BS.CMDBUF.LEN stx BS.CMDBUF.LEN
lda #$AF lda #"/"
sta BS.CMDBUF sta BS.CMDBUF
jsr BS.GetFileInfo jsr BS.GetFileInfo
bcs LB127 bcs LB127
@ -550,8 +553,7 @@ BS.ReadDirEnt lda #$59
sta GP.MLIRW.COUNT sta GP.MLIRW.COUNT
stz GP.MLIRW.COUNT+1 stz GP.MLIRW.COUNT+1
lda #MLI.C.READ jsr BS.MLIRead
jsr GP.GOSYSTEM
bcs LB203 bcs LB203
ldx #$03 ldx #$03
@ -600,11 +602,10 @@ LB210 cpx GP.FITYPE
LB238 rts LB238 rts
LB239 lda #$0D LB239 lda #BS.E.MISMATCH
sec .HS 2C BIT ABS
rts
LB23D lda #$0A LB23D lda #BS.E.LOCKED
sec sec
rts rts
*-------------------------------------- *--------------------------------------
@ -633,12 +634,10 @@ LB25D dey
LB268 adc #$04 LB268 adc #$04
sta GP.SBUFADR sta GP.SBUFADR
lda #MLI.C.SETMARK jsr BS.MLISetMark
jsr GP.GOSYSTEM
bcs LB28D bcs LB28D
lda #MLI.C.READ jsr BS.MLIRead
jsr GP.GOSYSTEM
bcs LB28D bcs LB28D
inc XBC16 inc XBC16
@ -667,8 +666,7 @@ BS.KW.EXEC jsr BS.CheckFilename
jsr BS.ZeroSBUFADR jsr BS.ZeroSBUFADR
lda #MLI.C.SETMARK jsr BS.MLISetMark
jsr GP.GOSYSTEM
bcs LB2B5 bcs LB2B5
lda GP.MLIMRKEOFBUF.REFNUM lda GP.MLIMRKEOFBUF.REFNUM
@ -680,7 +678,7 @@ LB2B5 pha
sec sec
rts rts
LB2BC lda #$14 LB2BC lda #BS.E.FBUSTY
sec sec
rts rts
@ -694,7 +692,7 @@ LB2CA lda GP.FITYPE
cmp #$04 cmp #$04
beq LB2D5 beq LB2D5
lda #$0D lda #BS.E.MISMATCH
LB2D3 sec LB2D3 sec
rts rts
@ -789,8 +787,8 @@ LB36B lda GP.EXECACTV
jsr LB515 jsr LB515
LB37B rts LB37B rts
*--------------------------------------
BS.KW.X10 bcs LB3B7 BS.KW.VERIFY bcs LB3B7
lda GP.FoundBITS lda GP.FoundBITS
and #$01 and #$01
@ -798,7 +796,7 @@ BS.KW.X10 bcs LB3B7
ldx #$00 ldx #$00
jsr BS.PRINTERRX jsr BS.PRINTERRX
jsr BS.CROUT jsr MON.CROUT
LB38D clc LB38D clc
rts rts
@ -818,21 +816,17 @@ LB39F sta GP.MLICF.REFNUM
jsr GP.GOSYSTEM jsr GP.GOSYSTEM
LB3A7 rts LB3A7 rts
*--------------------------------------
BS.KW.03 php BS.KW.OPEN php
jsr BS.CheckFilename jsr BS.CheckFilename
bcs LB3BB bcs LB3BB
plp plp
lda #$14 lda #BS.E.FBUSTY
sec .HS 2C BIT ABS
rts LB3B3 lda #BS.E.MISMATCH
.HS 2C BIT ABS
LB3B3 lda #$0D LB3B7 lda #BS.E.PATHNFND6
sec
rts
LB3B7 lda #$06
LB3B9 sec LB3B9 sec
rts rts
@ -948,7 +942,7 @@ LB481 inx
dec ZP.PCL dec ZP.PCL
bne LB481 bne LB481
BS.KW.X07 clc BS.KW.NOMON clc
rts rts
BS.CheckFilename BS.CheckFilename
@ -956,7 +950,7 @@ BS.CheckFilename
and #$01 and #$01
bne LB49A bne LB49A
lda #$10 lda #BS.E.SYNTAX
sec sec
rts rts
@ -992,7 +986,7 @@ LB4B8 lda GP.EXECACTV
ldx #$08 ldx #$08
bne LB4AE bne LB4AE
LB4CE lda #$12 LB4CE lda #BS.E.FNOTOPEN
sec sec
rts rts
@ -1030,8 +1024,8 @@ LB4FA inx
bne LB4FA bne LB4FA
LB508 rts LB508 rts
*--------------------------------------
BS.KW.X06 lda GP.FoundBITS BS.KW.CLOSE lda GP.FoundBITS
and #$01 and #$01
beq LB562 beq LB562
@ -1090,7 +1084,7 @@ LB573 stz GP.MLICF.REFNUM
sta MLI.LEVEL sta MLI.LEVEL
jmp BS.MLIClose jmp BS.MLIClose
*-------------------------------------- *--------------------------------------
BS.KW.CLOSE jsr BS.CheckFilename BS.KW.POSITION jsr BS.CheckFilename
bcs LB5EF bcs LB5EF
sta GP.MLIRW.REFNUM sta GP.MLIRW.REFNUM
@ -1132,8 +1126,7 @@ LB5CB lda GP.ParamF
clc clc
beq LB5F0 beq LB5F0
lda #MLI.C.READ jsr BS.MLIRead
jsr GP.GOSYSTEM
bcs LB5EF bcs LB5EF
lda GP.ParamF lda GP.ParamF
@ -1144,7 +1137,7 @@ LB5CB lda GP.ParamF
sta GP.ParamF+1 sta GP.ParamF+1
bcs LB5CB bcs LB5CB
LB5ED lda #$0B LB5ED lda #BS.E.INVOPT
LB5EF sec LB5EF sec
LB5F0 rts LB5F0 rts
*-------------------------------------- *--------------------------------------
@ -1191,11 +1184,11 @@ LB62F rol BS.TMPBUF4,x
clc clc
rts rts
LB642 lda #$02 LB642 lda #BS.E.RANGE
sec sec
rts rts
*-------------------------------------- *--------------------------------------
BS.KW.X04 jsr BS.CheckFilename BS.KW.READ jsr BS.CheckFilename
bcs LB69B bcs LB69B
sta GP.MLIRW.REFNUM sta GP.MLIRW.REFNUM
@ -1254,16 +1247,12 @@ LB69C lda #$59
jsr BS.ZeroSBUFADR jsr BS.ZeroSBUFADR
lda #MLI.C.SETMARK jsr BS.MLISetMark
jsr GP.GOSYSTEM bcc LB696
bcs LB6CA
lda #$FF
sta GP.IFILACTV
LB6CA rts LB6CA rts
LB6CB lda #$02 LB6CB lda #BS.E.RANGE
tax tax
sec sec
rts rts
@ -1292,8 +1281,7 @@ LB6F1 lda GP.FoundBITS+1
and #$40 and #$40
beq LB719 beq LB719
lda #MLI.C.GETMARK jsr BS.MLIGetMark
jsr GP.GOSYSTEM
bcs LB71A bcs LB71A
ldx #$00 ldx #$00
@ -1308,15 +1296,14 @@ LB703 lda GP.ParamB,x
bcs LB6CB bcs LB6CB
LB712 lda #MLI.C.SETMARK LB712 jsr BS.MLISetMark
jsr GP.GOSYSTEM
bcs LB71A bcs LB71A
LB719 clc LB719 clc
LB71A ldx #$00 LB71A ldx #$00
rts rts
*-------------------------------------- *--------------------------------------
BS.KW.X08 jsr BS.CheckFilename BS.KW.WRITE jsr BS.CheckFilename
bcs LB732 bcs LB732
sta GP.MLIRW.REFNUM sta GP.MLIRW.REFNUM
@ -1325,7 +1312,7 @@ BS.KW.X08 jsr BS.CheckFilename
bit GP.DIRFLG bit GP.DIRFLG
bpl LB734 bpl LB734
lda #$0A lda #BS.E.LOCKED
LB732 sec LB732 sec
rts rts
@ -1342,8 +1329,7 @@ LB734 stz GP.MLIRW.DATAPTR
cpx #$02 cpx #$02
beq LB732 beq LB732
LB74B lda #MLI.C.SETEOF LB74B jsr BS.MLISetEOF
jsr GP.GOSYSTEM
bcs LB732 bcs LB732
jsr LB6E0 jsr LB6E0
@ -1358,12 +1344,12 @@ LB757 lda AS.HIMEM
clc clc
rts rts
*-------------------------------------- *--------------------------------------
BS.KW.X09 php BS.KW.APPEND php
jsr BS.CheckFilename jsr BS.CheckFilename
bcc LB77A bcc LB77A
plp plp
jsr BS.KW.03 jsr BS.KW.OPEN
bcs LB788 bcs LB788
lda GP.OREFNUM lda GP.OREFNUM
@ -1378,7 +1364,7 @@ LB77B sta GP.MLIRW.REFNUM
bit GP.DIRFLG bit GP.DIRFLG
bpl LB78A bpl LB78A
lda #$0A lda #BS.E.LOCKED
LB788 sec LB788 sec
rts rts
@ -1401,8 +1387,7 @@ LB79D txa
tya tya
sta XBC5B,x sta XBC5B,x
sta XBC00 sta XBC00
lda #MLI.C.GETEOF jsr BS.MLIGetEOF
jsr GP.GOSYSTEM
bcs LB788 bcs LB788
lda XBC00 lda XBC00
@ -1418,13 +1403,15 @@ LB7C8 jsr LB7D0
LB7CD jmp LB74B LB7CD jmp LB74B
*-------------------------------------- *--------------------------------------
LB7D0 ldx #$03 LB7D0 ldx #$03
LB7D2 lda GP.MLIMRKEOFBUF.REFNUM,x LB7D2 lda GP.MLIMRKEOFBUF.REFNUM,x
sta XBC09,x sta XBC09,x
dex dex
bne LB7D2 bne LB7D2
stx BS.TMPBUF4+3 stz BS.TMPBUF4+3
stx XBC0E stz XBC0E
ldy #$18 ldy #$18
LB7E3 jsr BS.TMPBUF3x2 LB7E3 jsr BS.TMPBUF3x2
@ -1464,33 +1451,130 @@ LB805 dey
tya tya
adc GP.SBUFADR+1 adc GP.SBUFADR+1
sta GP.SBUFADR+1 sta GP.SBUFADR+1
lda GP.SBUFADR+2 bcc .1
adc #$00
sta GP.SBUFADR+2 inc GP.SBUFADR+2
lda #$02
.1 lda #$02
LB839 rts LB839 rts
*-------------------------------------- *--------------------------------------
BS.GetFileInfo lda #$0A BS.GetFileInfo ldx #$0A
sta GP.SSGINFO
lda #MLI.C.GETFILEINFO lda #MLI.C.GETFILEINFO
bne LB858 bne LB858
BS.SetFileInfoNoDate BS.SetFileInfoNoDate
stz GP.FIMDATE ldx #7
stz GP.FIMDATE+1
stz GP.FICDATE
stz GP.FICDATE+1
BS.SetFileInfo lda #$07 .1 stz GP.FIMDATE,x
sta GP.SSGINFO dex
bpl .1
BS.SetFileInfo ldx #$07
lda #MLI.C.SETFILEINFO lda #MLI.C.SETFILEINFO
LB858 jmp GP.GOSYSTEM LB858 stx GP.SSGINFO
jmp GP.GOSYSTEM
BS.JMP.GP.VSYSO jmp (GP.VSYSO) BS.JMP.GP.VSYSO jmp (GP.VSYSO)
BS.JMP.GP.VSYSI jmp (GP.VSYSI) BS.JMP.GP.VSYSI jmp (GP.VSYSI)
*-------------------------------------- *--------------------------------------
BS.Expand2PATHBUF
lda #1
sta MLI.PATHBUF
lda #'/' set target path = 1/
sta MLI.PATHBUF+1
* >DEBUG
cmp BS.CMDBUF new path is absolute ?
beq .1
jsr MLI no, get current path as a base
.DA #MLI.C.GETPREFIX
.DA BS.Expand2.P
.1 stz BS.Expand.Ptr
.2 jsr BS.Expand.GetN
beq .8
cmp #'.'
bne .6
jsr BS.Expand.GetN
beq .9
cmp #'/' /./ ???? discard
beq .2
cmp #'.' /.DIR....
bne .5
jsr BS.Expand.GetN
beq .3 /..
cmp #'/'
bne .9
ldy MLI.PATHBUF remove /DIR/..
cpy #1
beq .9 only /
.3 dey
lda MLI.PATHBUF,y
cmp #'/'
bne .3
sty MLI.PATHBUF
bra .2
.5 pha
lda #'.'
jsr BS.Expand.PutN
pla
.6 jsr BS.Expand.PutN
.7 jsr BS.Expand.GetN
beq .8
jsr BS.Expand.PutN
cmp #'/'
bne .7
bra .2
.8 ldy MLI.PATHBUF
.80 lda MLI.PATHBUF,y
sta BS.CMDBUF.LEN,y
dey
bpl .80
clc
rts
.9 sec
rts
BS.Expand.GetN ldx BS.Expand.Ptr
cpx BS.CMDBUF.LEN
beq .8
inc BS.Expand.Ptr
lda BS.CMDBUF,x NZ
.8 rts
BS.Expand.PutN inc MLI.PATHBUF
ldy MLI.PATHBUF
sta MLI.PATHBUF,y
rts
BS.Expand.Ptr .BS 1
BS.Expand2.P .DA #1
.DA MLI.PATHBUF
*--------------------------------------
BS.ToUpper cmp #'a' BS.ToUpper cmp #'a'
bcc .9 bcc .9

View File

@ -135,83 +135,86 @@ BS.KW.LEN .DA #$47
BS.KW.TABLE .AS "BSAVERIFYBLOADELETEBYECATALOGOPENWRITEXECREATEFRESTORENAMEBRUNLOCKCHAIN#FLUSHREADPOSITIONOMONPR#PREFIXCLOSEAPPEND" BS.KW.TABLE .AS "BSAVERIFYBLOADELETEBYECATALOGOPENWRITEXECREATEFRESTORENAMEBRUNLOCKCHAIN#FLUSHREADPOSITIONOMONPR#PREFIXCLOSEAPPEND"
*-------------------------------------- *--------------------------------------
BS.KW.JMP .DA BS.JMP.XTRNADDR $00 BS.KW.JMP .DA BS.JMP.XTRNADDR $00
.DA BS.KW.PR
.DA BS.KW.IN .DA BS.KW.IN
.DA BS.KW.PR
.DA BS.KW.CAT .DA BS.KW.CAT
.DA BS.KW.01 .DA BS.KW.FRE
.DA BS.KW.BYE .DA BS.KW.BYE
.DA BS.KW.RUN .DA BS.KW.RUN
.DA BS.KW.BRUN .DA BS.KW.BRUN
.DA BS.KW.EXEC $10 .DA BS.KW.EXEC $10
.DA BS.KW.RESTORE .DA BS.KW.LOAD
.DA BS.KW.LOCK .DA BS.KW.LOCK
.DA BS.KW.03 .DA BS.KW.OPEN
.DA BS.KW.X04 .DA BS.KW.READ
.DA BS.KW.STORE .DA BS.KW.SAVE
.DA BS.KW.BLOAD .DA BS.KW.BLOAD
.DA BS.KW.BSAVE .DA BS.KW.BSAVE
.DA BS.KW.X05 $20 .DA BS.KW.CHAIN $20
.DA BS.KW.X06 .DA BS.KW.CLOSE
.DA BS.KW.FLUSH .DA BS.KW.FLUSH
.DA BS.KW.X07 .DA BS.KW.NOMON
.DA BS.KW.SAVE .DA BS.KW.STORE
.DA BS.KW.X08 .DA BS.KW.WRITE
.DA BS.KW.X09 .DA BS.KW.APPEND
.DA BS.KW.CREATE .DA BS.KW.CREATE
.DA BS.KW.DELETE $30 .DA BS.KW.DELETE $30
.DA BS.KW.PREFIX .DA BS.KW.PREFIX
.DA BS.KW.RENAME .DA BS.KW.RENAME
.DA BS.KW.UNLOCK .DA BS.KW.UNLOCK
.DA BS.KW.X10 .DA BS.KW.VERIFY
.DA BS.KW.CATALOG .DA BS.KW.CATALOG
.DA BS.KW.LOAD .DA BS.KW.RESTORE
.DA BS.KW.CLOSE .DA BS.KW.POSITION
.DA BS.KW.APPEND $40 .DA BS.KW.DASH $40
*-------------------------------------- *--------------------------------------
BS.KW.PBITS .DA $8040 BS.KW.PBITS .DA $8040 IN
.DA $8040 .DA $8040 PR
.DA $0495 .DA $0495 CAT
.DA $0000 .DA $0000 FRE
.DA $0000 .DA $0000 BYE
.DA $0C11 .DA $0C11 RUN
.DA $F401 .DA $F401 BRUN
.DA $0701 .DA $0701 EXEC
.DA $0401 .DA $0401 LOAD
.DA $0401 .DA $0401 LOCK
.DA $142D .DA $142D OPEN
.DA $5321 .DA $5321 READ
.DA $0409 .DA $0409 SAVE
.DA $F405 .DA $F405 BLOAD
.DA $F40D .DA $F40D BSAVE
.DA $0C01 .DA $0C01 CHAIN
.DA $0001 .DA $0001 CLOSE
.DA $0001 .DA $0001 FLUSH
.DA $0000 .DA $0000 NOMON
.DA $0409 .DA $0409 STORE
.DA $4321 .DA $4321 WRITE
.DA $142D .DA $142D APPEND
.DA $040D .DA $040D CREATE
.DA $0401 .DA $0401 DELETE
.DA $0491 .DA $0491 PREFIX
.DA $0403 .DA $0403 RENAME
.DA $0401 .DA $0401 UNLOCK
.DA $0411 .DA $0411 VERIFY
.DA $0495 .DA $0495 CATALOG
.DA $0401 .DA $0401 RESTORE
.DA $0321 .DA $0321 POSITION
.DA $0401 .DA $0401 DASH
BS.KW.OPT .AS "ABELSDFRV@" BS.KW.OPT .AS "ABELS@FRVD"
*--------------------------------------
BS.WHICHBITS
* .HS 8040201008040201
BS.KW.OPT.PBITSLO BS.KW.OPT.PBITSLO
.DA #$80 .DA #$80
.DA #$40 .DA #$40
.DA #$20 .DA #$20
.DA #$10 .DA #$10
.DA #$04 .DA #$08
.DA #$04 .DA #$04
.DA #$02 .DA #$02
.DA #$01 .DA #$01
.DA #$00 .DA #$00
.DA #$08 .DA #$04
BS.KW.OPT.PBITSHI BS.KW.OPT.PBITSHI
.DA #$05 .DA #$05
.DA #$12 .DA #$12
@ -283,9 +286,9 @@ BS.BIERRTBL .DA #$03
.DA #$14 .DA #$14
.DA #$0B .DA #$0B
.DA #$0C .DA #$0C
.DA #$08
*-------------------------------------- *--------------------------------------
BS.ERRCODES .DA #$08 BS.ERRCODES .DA #$54
.DA #$54
.DA #$5B .DA #$5B
.DA #$66 .DA #$66
.DA #$6F .DA #$6F
@ -304,39 +307,13 @@ BS.ERRCODES .DA #$08
.DA #$D9 .DA #$D9
.DA #$E1 .DA #$E1
.DA #$EC .DA #$EC
.DA #$F3
*-------------------------------------- *--------------------------------------
BS.TBL6 .DA #$F3 BS.TBL6 .AS -"ACDEFILMNORTU "
.DA #$C1
.DA #$C3
.DA #$C4
.DA #$C5
.DA #$C6
.DA #$C9
.DA #$CC
.DA #$CD
.DA #$CE
.DA #$CF
.DA #$D2
.DA #$D4
.DA #$D5
.DA #$A0
.DA #$00 .DA #$00
*--------------------------------------
.DA #$00 .DA #$00
.DA #$C2 .AS -"BGHKPSVWXY/().:"
.DA #$C7
.DA #$C8
.DA #$CB
.DA #$D0
.DA #$D3
.DA #$D6
.DA #$D7
.DA #$D8
.DA #$D9
.DA #$AF
.DA #$A8
.DA #$A9
.DA #$AE
.DA #$BA
*-------------------------------------- *--------------------------------------
BS.TBL7 .DA #$2A BS.TBL7 .DA #$2A
.DA #$05 .DA #$05

View File

@ -123,10 +123,8 @@ GP.FITYPE .BS 1
GP.FIAUXTYPE .BS 2 GP.FIAUXTYPE .BS 2
GP.STTYPE .BS 1 GP.STTYPE .BS 1
GP.FIBLOKS .BS 2 GP.FIBLOKS .BS 2
GP.FIMDATE .BS 2 GP.FIMDATE .BS 4
GP.FICDATE .BS 2 GP.FICDATE .BS 4
.BS 4
*-------------------------------------- *--------------------------------------
GP.MLIMRKEOFBUF .DA #2 GP.MLIMRKEOFBUF .DA #2
GP.MLIMRKEOFBUF.REFNUM GP.MLIMRKEOFBUF.REFNUM

View File

@ -172,7 +172,7 @@ L214E jsr MLI
tax tax
inx inx
stx MLI.PATHBUF stx MLI.PATHBUF
lda #$2F lda #'/'
sta MLI.PATHBUF+1 sta MLI.PATHBUF+1
jsr MLI jsr MLI
.DA #MLI.C.SETPREFIX .DA #MLI.C.SETPREFIX

View File

@ -13,6 +13,27 @@ NEW
*-------------------------------------- *--------------------------------------
LOWERCASE .EQ 1 LOWERCASE .EQ 1
*-------------------------------------- *--------------------------------------
BS.E.RANGE .EQ $02
BS.E.NODEV .EQ $03
BS.E.WPROT .EQ $04
BS.E.ENDOFDATA .EQ $05
BS.E.PATHNFND6 .EQ $06
BS.E.PATHNFND7 .EQ $07
BS.E.IO .EQ $08
BS.E.DISKFULL .EQ $09
BS.E.LOCKED .EQ $0A
BS.E.INVOPT .EQ $0B
BS.E.NOBUFFER .EQ $0C
BS.E.MISMATCH .EQ $0D
BS.E.TOOLARGE .EQ $0E
BS.E.NODIRECT .EQ $0F
BS.E.SYNTAX .EQ $10
BS.E.DIRFULL .EQ $11
BS.E.FNOTOPEN .EQ $12
BS.E.DUPFILE .EQ $13
BS.E.FBUSTY .EQ $14
BS.E.FSTILLOPEN .EQ $15
*--------------------------------------
CMDBITS0.PFIX .EQ $80 ;Prefix needs fetching, pathname optional CMDBITS0.PFIX .EQ $80 ;Prefix needs fetching, pathname optional
CMDBITS0.SLOT .EQ $40 ;No parameters to be processed CMDBITS0.SLOT .EQ $40 ;No parameters to be processed
CMDBITS0.RRUN .EQ $20 ;Command only valid during program CMDBITS0.RRUN .EQ $20 ;Command only valid during program
@ -167,6 +188,7 @@ MON.RDKEY .EQ $FD0C
MON.KEYIN0 .EQ $FD10 MON.KEYIN0 .EQ $FD10
MON.KEYIN .EQ $FD1B MON.KEYIN .EQ $FD1B
MON.GETLN .EQ $FD6A MON.GETLN .EQ $FD6A
MON.CROUT .EQ $FD8E
MON.COUT .EQ $FDED MON.COUT .EQ $FDED
MON.COUT1 .EQ $FDF0 MON.COUT1 .EQ $FDF0
MON.IIGSID .EQ $FE1F MON.IIGSID .EQ $FE1F

View File

@ -265,9 +265,10 @@ Ctrl.CR lda #C.CR
>CMP.G ViewPortHm1 >CMP.G ViewPortHm1
bne .1 bne .1
jsr SCRN.LineBufOut Bottom line, all done, just CEOL jsr SCRN.LineBufOut Bottom line, CEOL...
bcs .99 bcs .99
jmp SCRN.GotoCurXCurY
jmp SCRN.UpdateViewPort ...and scroll
.1 dec .1 dec
>CMP.G ViewPortHm1 >CMP.G ViewPortHm1

View File

@ -807,7 +807,7 @@ DLG.CTRL.CharIn.BUT
rts rts
*-------------------------------------- *--------------------------------------
DLG.DrawBar phy DLG.DrawBar phy
jsr SCRN.LineBufInitBar jsr SCRN.LineBufInitDLGBar
ldy #S.DLG.W ldy #S.DLG.W
lda (ZPPTR1),y lda (ZPPTR1),y
@ -840,15 +840,14 @@ DLG.DrawBar phy
iny iny
bra .3 bra .3
.4 jsr DLG.VBarToLineBuf .4 jmp SCRN.LineBufOut
jmp SCRN.LineBufOut
*-------------------------------------- *--------------------------------------
DLG.VBarToLineBuf DLG.VBarToLineBuf
ldy #0 ldy #0
.1 lda SEQ.DLG.RIGHT,y .1 lda SEQ.DLG.VBAR,y
beq .8 beq .8
jsr SCRN.ToLineBuf jsr SCRN.ToLineBuf
iny iny
bra .1 bra .1

View File

@ -551,6 +551,10 @@ SCRN.LineBufInitBar
phx phx
ldx #SEQ.BAR-SEQS ldx #SEQ.BAR-SEQS
bra SCRN.LineBufInit bra SCRN.LineBufInit
SCRN.LineBufInitDLGBar
phx
ldx #SEQ.DLG.BAR-SEQS
bra SCRN.LineBufInit
SCRN.LineBufInitDLG SCRN.LineBufInitDLG
phx phx
ldx #SEQ.DLG-SEQS ldx #SEQ.DLG-SEQS

View File

@ -460,10 +460,13 @@ CharIn.TmpByte10pA
CS.END CS.END
SEQS .EQ * SEQS .EQ *
SEQ.BAR .AZ "\e[7m\e[37;40m" SEQ.BAR .AZ "\e[7m\e[37;40m"
SEQ.DLG.BAR .AS "\e[0m\e[37;40m"
.DA #C.SO,#'x',#C.SI
.AZ "\e[7m\e[37;40m"
SEQ.DLG .AS "\e[30;46m" SEQ.DLG .AS "\e[30;46m"
.DA #C.SO,#'x',#C.SI .DA #C.SO,#'x',#C.SI
.DA #0 .DA #0
SEQ.DLG.RIGHT .AS "\e[37;40m" SEQ.DLG.VBAR .AS "\e[37;40m"
.DA #C.SO,#'x',#C.SI .DA #C.SO,#'x',#C.SI
.DA #0 .DA #0
SEQ.DLG.LBL .AZ "\e[0m\e[30;46m" SEQ.DLG.LBL .AZ "\e[0m\e[30;46m"

View File

@ -358,7 +358,13 @@ OPEN.SnY >AR.Sn.SELECT S0.MR
lda #W5100.AR.Sn.MR.IPRAW lda #W5100.AR.Sn.MR.IPRAW
sta W5100.DR,x sta W5100.DR,x
>AR.Sn.SELECT S0.PROTO >AR.Sn.SELECT S0.MSSR
lda /K.ETH.FRAME.LEN
sta W5100.DR,x
lda #K.ETH.FRAME.LEN
sta W5100.DR,x
* >AR.Sn.SELECT S0.PROTO
tya tya
sta W5100.DR,x sta W5100.DR,x
@ -368,6 +374,23 @@ OPEN.SnY >AR.Sn.SELECT S0.MR
* >AR.Sn.SELECT Sn.TTL * >AR.Sn.SELECT Sn.TTL
lda #K.IP.TTL lda #K.IP.TTL
sta W5100.DR,x sta W5100.DR,x
>AR.Sn.SELECT S0.PORT
stz W5100.DR,x
stz W5100.DR,x
* >AR.Sn.SELECT S0.DHAR
ldy #10 DHAR+DIPR
lda #$ff
.1 sta W5100.DR,x
dey
bpl .1
* >AR.Sn.SELECT S0.DPORT
stz W5100.DR,x
stz W5100.DR,x
>AR.Sn.SELECT S0.CR >AR.Sn.SELECT S0.CR
lda #W5100.AR.Sn.CR.OPEN lda #W5100.AR.Sn.CR.OPEN
@ -721,6 +744,8 @@ WRITE php
.11 lda Sn.IO.BASE,y .11 lda Sn.IO.BASE,y
sta Sn.IO sta Sn.IO
ora #$30
sta $426
lda Sn.TX.BASE,y lda Sn.TX.BASE,y
sta Sn.BASE sta Sn.BASE
lda Sn.RXTX.MASK,y lda Sn.RXTX.MASK,y

View File

@ -268,7 +268,16 @@ SCAN.COMMAND.TABLE
.2 INY next byte in command table .2 INY next byte in command table
JSR GET.NEXT.NONBLANK JSR GET.NEXT.NONBLANK
BEQ .4 ...end of WBUF contents BEQ .4 ...end of WBUF contents
EOR COMMAND.TABLE,Y
cmp #'a'
bcc .20
cmp #'z'+1
bcs .20
eor #$20
.20 EOR COMMAND.TABLE,Y
BEQ .2 ...same so far BEQ .2 ...same so far
ASL Might be last char ASL Might be last char
BNE .4 ...No, try next command BNE .4 ...No, try next command

View File

@ -112,7 +112,7 @@ ERRORX.MSG .AT "Bad MLI Call"
.AT "Dup. Filename" .AT "Dup. Filename"
.AT "Vol Is Full" .AT "Vol Is Full"
.AT "Dir Is Full" .AT "Dir Is Full"
.AT "Incompatible File Format" .AT "Incomp. File Format"
.AT "Unsupp. Storage" .AT "Unsupp. Storage"
.AT "End Of File" .AT "End Of File"
.AT "File Locked" .AT "File Locked"