diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index affb6080..21393b1b 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BASIC.FX/BASIC.S.A.txt b/BASIC.FX/BASIC.S.A.txt index 74cbd94e..13f56e29 100644 --- a/BASIC.FX/BASIC.S.A.txt +++ b/BASIC.FX/BASIC.S.A.txt @@ -870,7 +870,8 @@ BS.WriteTBUF jsr LA004 *-------------------------------------- LA004 ldy #$00 lda GP.TBUFPTR - beq LA01F + clc + beq LA020 BS.WriteTBUFAY sta GP.MLIRW.COUNT sty GP.MLIRW.COUNT+1 @@ -879,9 +880,6 @@ BS.WriteTBUFAY sta GP.MLIRW.COUNT stz GP.TBUFPTR - bcs LA020 - -LA01F clc LA020 rts *-------------------------------------- LA021 jsr BS.KW.FRE @@ -922,9 +920,11 @@ BS.KW.FRE stz BS.TXTTAB sbc #$03 sta XBBD9 + lda AS.ARRAYEND+1 adc #$00 sta XBBD8 + lda AS.HIMEM+1 sbc AS.STRINGSTART+1 adc #$01 @@ -935,6 +935,7 @@ BS.KW.FRE stz BS.TXTTAB LA07D lda AS.HIMEM+1 sta BS.MEMSIZE+1 + lda AS.HIMEM sta BS.MEMSIZE sta AS.STRINGSTART @@ -1173,7 +1174,8 @@ LA1F2 clc sbc AS.STRINGSTART+1 rts *-------------------------------------- -LA1F9 lda #$04 +BS.GetSysBuf lda #$04 + LA1FB sta XBBB5 jsr BS.KW.FRE bcs LA24E @@ -1181,7 +1183,7 @@ LA1FB sta XBBB5 lda AS.STRINGSTART+1 sbc AS.ARRAYEND+1 cmp XBBB5 - lda #$0C + lda #BS.E.NOBUFFER bcc LA24E lda AS.STRINGSTART+1 @@ -1189,15 +1191,19 @@ LA1FB sta XBBB5 sbc XBBB5 sta ZP.A1H sta AS.STRINGSTART+1 + lda AS.STRINGSTART sta ZP.PCL sta ZP.A1L + lda AS.HIMEM sbc ZP.PCL sta XBBED + lda AS.HIMEM+1 sbc ZP.PCH - sta XBBEE + sta BS.BUFPAGEs + jsr BS.MoveMemUp lda #$00 sec @@ -1216,6 +1222,8 @@ LA1FB sta XBBB5 LA24E sec rts + +XBBB5 .BS 1 *-------------------------------------- LA250 jsr BS.KW.FRE bcs LA29D @@ -1234,7 +1242,7 @@ LA250 jsr BS.KW.FRE sta XBBED lda AS.HIMEM+1 sbc AS.STRINGSTART+1 - sta XBBEE + sta BS.BUFPAGEs jsr BS.MoveMemDown lda #$04 @@ -1254,7 +1262,7 @@ LA250 jsr BS.KW.FRE lda AS.HIMEM+1 -LA293 cmp XBBEE,x +LA293 cmp BS.BUFPAGEs,x beq LA29E dex @@ -1265,9 +1273,9 @@ LA29B pla LA29D rts LA29E pla - -LA29F sta GP.SBUFADR+1 - sta XBBEE,x +*-------------------------------------- +BS.SetFileBuf sta GP.SBUFADR+1 + sta BS.BUFPAGEs,x stz GP.SBUFADR lda BS.REFNUMs,x diff --git a/BASIC.FX/BASIC.S.B.txt b/BASIC.FX/BASIC.S.B.txt index 8114a171..a654b607 100644 --- a/BASIC.FX/BASIC.S.B.txt +++ b/BASIC.FX/BASIC.S.B.txt @@ -18,12 +18,12 @@ LA2C5 sta GP.SBUFADR+1 adc #$04 sta XBBB7 -LA2D6 cmp XBBEE,x +LA2D6 cmp BS.BUFPAGEs,x bne LA2EB lda GP.SBUFADR+1 jsr LA356 - jsr LA29F + jsr BS.SetFileBuf lda GP.SBUFADR+1 adc #$04 bcc LA2C5 @@ -37,7 +37,7 @@ LA2EE lda GP.SBUFADR+1 LA2F6 ldx #$08 jsr LA356 - jsr LA29F + jsr BS.SetFileBuf lda GP.SBUFADR+1 adc #$04 @@ -49,6 +49,7 @@ BS.FREEBUFR lda GP.OPENCNT asl adc AS.HIMEM+1 sta XBBB7 + lda AS.HIMEM+1 sta XBBB8 lda GP.RSHIMEM @@ -66,12 +67,12 @@ LA327 lda XBBB7 ldx GP.OPENCNT beq LA351 -LA32F cmp XBBEE,x +LA32F cmp BS.BUFPAGEs,x bne LA34E lda AS.HIMEM+1 jsr LA356 - jsr LA29F + jsr BS.SetFileBuf sec lda XBBB7 sbc #$04 @@ -92,12 +93,12 @@ LA354 clc LA356 pha lda XBBB8 - jsr LA29F + jsr BS.SetFileBuf pla rts *-------------------------------------- BS.MoveMemUp ldy #$00 - cpy XBBEE + cpy BS.BUFPAGEs beq .2 .1 lda (ZP.PCL),y @@ -107,7 +108,7 @@ BS.MoveMemUp ldy #$00 inc ZP.PCH inc ZP.A1H - dec XBBEE + dec BS.BUFPAGEs bne .1 .2 cpy XBBED @@ -127,10 +128,10 @@ LA388 jsr LA39A dec ZP.A1H dec ZP.PCH -LA38F cpy XBBEE +LA38F cpy BS.BUFPAGEs beq LA3A2 - dec XBBEE + dec BS.BUFPAGEs bra LA388 *-------------------------------------- LA39A dey @@ -231,7 +232,7 @@ LA411 jsr LA021 lda AS.ARRAYEND+1 sbc AS.VARSTART+1 sta BS.BAS.HDR+1 - sta XBBEE + sta BS.BUFPAGEs lda AS.ARRAYSTART sbc AS.VARSTART @@ -289,7 +290,7 @@ LA480 lda BS.BAS.HDR sta AS.ARRAYEND lda BS.BAS.HDR+1 - sta XBBEE + sta BS.BUFPAGEs adc AS.VARSTART+1 sta AS.ARRAYEND+1 @@ -317,7 +318,6 @@ LA480 lda BS.BAS.HDR lda ZP.PCH adc #$00 sta AS.STRINGSTART+1 - sec lda AS.HIMEM+1 sbc BS.BAS.HDR+4 @@ -435,7 +435,7 @@ LA70B dex bcs LA73A dex -* >DEBUG + jsr BS.GetCharSpaceSep bne LA73A @@ -467,7 +467,9 @@ LA747 jsr BS.GetKWInCmdBuf ldy #$40 sty GP.FoundBITS - jsr LA96E + stx BS.ToAUXSaveX + ldx #BSX.GetDecNum.X + jsr BS.ToAUX bcs LA76F lda GP.ParamINPR @@ -503,7 +505,9 @@ LA770 lsr LA795 jsr BS.GetCharSpaceSep beq LA73A -LA79A jsr BS.CheckCmdOpt +LA79A stx BS.ToAUXSaveX + ldx #BSX.CheckOpt.X + jsr BS.ToAUX bcs LA76F LA79F jsr BS.GetCharSpaceSep @@ -710,134 +714,6 @@ LA8F4 clc LA8F5 rts *-------------------------------------- -BS.CheckCmdOpt jsr BS.TMPBUF3Reset - ldy #$09 - - jsr BS.ToUpper - -LA8FB cmp BS.KW.OPT,y - beq LA935 - - dey - bpl LA8FB - - cmp #'T' - beq LA90A - -LA907 jmp BS.SYNERR - -LA90A lda #$04 - and GP.AllowedBITS - beq LA931 - - tsb GP.FoundBITS - - stz XBC08 - - lda #$12 - sta XBC09 - jsr BS.GetCharSpaceSep - beq LA907 - - cmp #'$' - beq LA984 - - cmp #'A' - bcc LA96E - - ldx #BSX.GetFTypeASC.X - jmp BS.ToAUX - -LA931 sec - lda #BS.E.INVOPT - rts - -LA935 lda BS.KW.OPT.PBITSLO,y - beq LA955 - - and GP.AllowedBITS+1 - beq LA931 - - cmp #$04 - bne LA94F - - and GP.FoundBITS+1 - bne LA955 - - lda #$01 - sta GP.ParamD - lda #$04 - -LA94F tsb GP.FoundBITS+1 - -LA955 lda BS.KW.OPT.PBITSHI,y - and #$03 - sta XBC08 - - lda BS.KW.OPT.PBITSHI,y - lsr - lsr - sta XBC09 - jsr BS.GetCharSpaceSep - beq LA9BE - - cmp #'$' - beq LA984 - -LA96E stx GP.INPTR - jsr BS.GetDecDigit - bcc LA97A - - bmi LA9C1 - - bcs LA9BE - -LA97A ldx GP.INPTR - jsr BS.GetCharSpaceSep - bne LA96E - - beq LA99D - -LA984 jsr BS.GetCharSpaceSep - beq LA9BE - -LA989 stx GP.INPTR - jsr BS.GetHexDigit - bcc LA995 - - bmi LA9C1 - - bcs LA9BE - -LA995 ldx GP.INPTR - jsr BS.GetCharSpaceSep - bne LA989 - -LA99D ldx #$02 -LA99F cpx XBC08 - beq LA9AC - - lda BS.TMPBUF4,x - bne LA9C1 - - dex - bne LA99F - -LA9AC ldy XBC09 -LA9AF lda BS.TMPBUF4,x - sta GP.ParamA,y - dey - dex - bpl LA9AF - - ldx GP.INPTR - clc - rts - -LA9C1 jmp LA76C - -LA9BE jmp BS.SYNERR -*-------------------------------------- BS.GetPathInPathBuf jsr BS.GetChar UC sta MLI.PATHBUF,y @@ -902,93 +778,6 @@ BS.GetChar lda IO.LINEBUF,x rts *-------------------------------------- -BS.GetDecDigit cmp #'0' - bcc LAA72 - - cmp #'9'+1 - bcc LAA76 - -LAA72 sec - ora #$00 - rts - -LAA76 and #$0F - pha - lda BS.TMPBUF4+2 - cmp #$1A - bcs LAAA2 - - ldx #$02 - -LAA82 lda BS.TMPBUF4,x - pha - dex - bpl LAA82 - - jsr BS.TMPBUF3x2 - jsr BS.TMPBUF3x2 - ldx #$00 - clc - -LAA92 pla - adc BS.TMPBUF4,x - sta BS.TMPBUF4,x - inx - txa - eor #$03 - bne LAA92 - - jsr BS.TMPBUF3x2 - -LAAA2 pla - bcs LAAB8 - - adc BS.TMPBUF4 - sta BS.TMPBUF4 - bcc LAABB - - clc - inc BS.TMPBUF4+1 - bne LAABB - - inc BS.TMPBUF4+2 - bne LAABB - -LAAB8 lda #$FF - sec -LAABB rts -*-------------------------------------- -BS.GetHexDigit cmp #'0' - bcc LAACC - - cmp #'9'+1 - bcc LAAD2 - - cmp #'A' - bcc LAACC - - cmp #'F'+1 - bcc LAAD0 - -LAACC sec - ora #$00 - rts - -LAAD0 sbc #$06 - -LAAD2 and #$0F - ldx #$03 - -LAAD6 jsr BS.TMPBUF3x2 - bcs LAAB8 - - dex - bpl LAAD6 - - ora BS.TMPBUF4 - sta BS.TMPBUF4 - rts -*-------------------------------------- BS.TMPBUF3x2 asl BS.TMPBUF4 rol BS.TMPBUF4+1 rol BS.TMPBUF4+2 @@ -1130,7 +919,7 @@ LAC22 jsr LAC34 stx AS.ARRAYEND+1 LAC33 rts -*-------------------------------------- + LAC34 lda #$01 ldx #$FC jsr BS.CheckFTypeXAccessA @@ -1229,15 +1018,12 @@ BS.KW.SAVE bcc LACFE sta GP.FITYPE lda #$C3 sta GP.FIACCESS - lda AS.PGRMSTART sta GP.CRAUXTYPE sta GP.FIAUXTYPE - lda AS.PGRMSTART+1 sta GP.CRAUXTYPE+1 sta GP.FIAUXTYPE+1 - jsr BS.CreateFileOrDir bcs LAD47 @@ -1250,10 +1036,13 @@ LACFE lda #$02 sec sbc AS.PGRMSTART tax - +* sta GP.SBUFADR lda AS.PGRMEND+1 sbc AS.PGRMSTART+1 tay +* sta GP.SBUFADR+1 +* lda #$00 +* sta GP.SBUFADR+2 jsr BS.SetSBUFADRXY0 diff --git a/BASIC.FX/BASIC.S.C.txt b/BASIC.FX/BASIC.S.C.txt index 938cd875..4c069d0e 100644 --- a/BASIC.FX/BASIC.S.C.txt +++ b/BASIC.FX/BASIC.S.C.txt @@ -714,7 +714,7 @@ LB2CA lda GP.FITYPE LB2D3 sec rts -LB2D5 jsr LA1F9 +LB2D5 jsr BS.GetSysBuf bcs LB2D3 stz GP.SBUFADR @@ -731,7 +731,7 @@ LB2D5 jsr LA1F9 adc XBBE3 pha -LB2F2 cmp XBBEE,x +LB2F2 cmp BS.BUFPAGEs,x beq LB2FB dex @@ -740,7 +740,7 @@ LB2F2 cmp XBBEE,x brk LB2FB tya - sta XBBEE,x + sta BS.BUFPAGEs,x lda BS.REFNUMs,x sta GP.MLIMRKEOFBUF.REFNUM lda #MLI.C.SETBUF @@ -773,11 +773,12 @@ LB327 ldx GP.OSYSBUF+1 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 + jsr BS.AddOpenFile lda #$7F sta GP.NLINEMASK @@ -853,15 +854,15 @@ LB3BB plp ldx #$00 ldy #$00 lda GP.FoundBITS+1 - and #$10 + and #CMDBITS1.L bne LB3CD stx GP.ParamL+1 sty GP.ParamL LB3CD lda GP.FoundBITS - and #$04 - eor #$04 + and #CMDBITS0.T + eor #CMDBITS0.T beq LB3DB lda #$04 @@ -894,13 +895,13 @@ LB3FE lda GP.FITYPE ldx GP.FIAUXTYPE+1 ldy GP.FIAUXTYPE lda GP.FoundBITS+1 - and #$10 + and #CMDBITS1.L bne LB41D stx GP.ParamL+1 sty GP.ParamL -LB41D jsr LA1F9 +LB41D jsr BS.GetSysBuf bcs LB3B9 lda XBBE3 @@ -928,12 +929,12 @@ LB443 lda #$00 sta GP.DIRFLG ldx GP.OPENCNT lda XBBE3 - sta XBBEF,x + sta BS.BUFPAGEs+1,x lda GP.OREFNUM sta BS.REFNUMs+1,x inc GP.OPENCNT *-------------------------------------- -LB45B asl +BS.AddOpenFile asl asl asl asl @@ -950,6 +951,7 @@ LB45B asl lda #$1D LB473 sta ZP.PCL + lda GP.ParamL sta XBC5A,x lda GP.ParamL+1 @@ -967,7 +969,7 @@ BS.KW.NOMON clc *-------------------------------------- BS.CheckFilename lda GP.FoundBITS - and #$01 + and #CMDBITS0.FN1 bne LB49A lda #BS.E.SYNTAX @@ -981,7 +983,7 @@ LB49A ldx GP.OPENCNT LB4A2 stx ZP.PCH lda BS.REFNUMs,x - jsr LB4D2 + jsr BS.FindOpenFile bne LB4B3 ldx ZP.PCH @@ -998,7 +1000,7 @@ LB4B8 lda GP.EXECACTV bpl LB4CE lda XBBFE - jsr LB4D2 + jsr BS.FindOpenFile bne LB4CE lda #$FF @@ -1010,7 +1012,7 @@ LB4CE lda #BS.E.FNOTOPEN sec rts *-------------------------------------- -LB4D2 asl +BS.FindOpenFile asl asl asl asl @@ -1029,6 +1031,7 @@ LB4D2 asl lda #$1D LB4EC sta ZP.PCL + lda XBC5A,x sta XBBFF lda XBC5B,x @@ -1053,17 +1056,17 @@ BS.KW.CLOSE lda GP.FoundBITS bcs LB4B1 LB515 sta GP.MLICF.REFNUM - lda XBBEE,x + lda BS.BUFPAGEs,x sta XBBE3 bit GP.EXECFILE bmi LB53F ldy GP.OPENCNT pha - lda XBBEE,y - sta XBBEE,x + lda BS.BUFPAGEs,y + sta BS.BUFPAGEs,x pla - sta XBBEE,y + sta BS.BUFPAGEs,y lda BS.REFNUMs,x pha lda BS.REFNUMs,y @@ -1633,15 +1636,7 @@ BS.ToAUX stx .1+1 plp rts *-------------------------------------- -BS.ToUpper cmp #'a' - bcc .9 - - cmp #'z'+1 - bcs .9 - - eor #$20 - -.9 rts +BS.ToAUXSaveX .BS 1 *-------------------------------------- BS.GetFTableIdx lda GP.MLIRW.REFNUM lsr diff --git a/BASIC.FX/BASIC.S.D.txt b/BASIC.FX/BASIC.S.D.txt index 533ad5d6..8e73b274 100644 --- a/BASIC.FX/BASIC.S.D.txt +++ b/BASIC.FX/BASIC.S.D.txt @@ -95,33 +95,6 @@ BS.AS.KW .DA #$80 .DA #$BE .DA #$BF *-------------------------------------- -BS.KW.OPT .AS "ABELS@FRVD" -*-------------------------------------- -BS.WHICHBITS -* .HS 8040201008040201 -BS.KW.OPT.PBITSLO - .DA #$80 - .DA #$40 - .DA #$20 - .DA #$10 - .DA #$08 - .DA #$04 - .DA #$02 - .DA #$01 - .DA #$00 - .DA #$04 -BS.KW.OPT.PBITSHI - .DA #$05 - .DA #$12 - .DA #$19 - .DA #$21 - .DA #$24 - .DA #$28 - .DA #$31 - .DA #$39 - .DA #$40 - .DA #$45 -*-------------------------------------- BS.MLIERTBL .DA #$28 .DA #$2B .DA #$40 @@ -163,7 +136,6 @@ BS.BIERRTBL .DA #$03 .DA #$0C .DA #$08 *-------------------------------------- -XBBB5 .BS 2 XBBB7 .BS 1 XBBB8 .BS 1 *-------------------------------------- @@ -191,8 +163,7 @@ XBBEA .BS 1 XBBEB .BS 1 XBBEC .BS 1 XBBED .BS 1 -XBBEE .BS 1 -XBBEF .BS 7 +BS.BUFPAGEs .BS 8 BS.REFNUMs .BS 8 XBBFE .BS 1 XBBFF .BS 1 diff --git a/BASIC.FX/BASIC.S.LDR.txt b/BASIC.FX/BASIC.S.LDR.txt index 86376931..40b449c8 100644 --- a/BASIC.FX/BASIC.S.LDR.txt +++ b/BASIC.FX/BASIC.S.LDR.txt @@ -57,16 +57,15 @@ LDR.START1 ldx #$FF ldx #$01 jsr LDR.MoveXpages - ldx #$17 + lda #$CF page 0,1,4,5,6,7 + sta MLI.MEMTABL + + ldx #19 HIMEM=$A000 .1 stz MLI.MEMTABL,x dex bne .1 - lda #$CF - sta MLI.MEMTABL - lda #$03 HIMEM=$9E00 - sta MLI.MEMTABL+19 lda #$FF sta MLI.MEMTABL+20 sta MLI.MEMTABL+21 diff --git a/BASIC.FX/BASIC.S.txt b/BASIC.FX/BASIC.S.txt index 7290a3d8..b009c3ea 100644 --- a/BASIC.FX/BASIC.S.txt +++ b/BASIC.FX/BASIC.S.txt @@ -11,7 +11,7 @@ NEW sta $C010 .EM *-------------------------------------- -HIMEM .EQ $9E00 +HIMEM .EQ $A000 LOWERCASE .EQ 1 *-------------------------------------- BS.E.RANGE .EQ $02 @@ -44,7 +44,7 @@ CMDBITS0.T .EQ $04 ;File type CMDBITS0.FN2 .EQ $02 ;Filename '2' for RENAME CMDBITS0.FN1 .EQ $01 ;Filename expected -CMDBITS1.AD .EQ $80 ;Address +CMDBITS1.A .EQ $80 ;Address CMDBITS1.B .EQ $40 ;Byte CMDBITS1.E .EQ $20 ;End address CMDBITS1.L .EQ $10 ;Length