From 38cbd00f7e4d0a22335c792da034dbe89e767d45 Mon Sep 17 00:00:00 2001 From: burniouf Date: Tue, 15 Mar 2022 20:33:19 +0100 Subject: [PATCH] More BASIC fixes --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BASIC.FX/BASIC.S.A.txt | 118 +++++++++++++++++++++------------------ BASIC.FX/BASIC.S.B.txt | 48 ++++++++-------- BASIC.FX/BASIC.S.C.txt | 114 +++++++++++++++++++------------------ BASIC.FX/BASIC.S.D.txt | 81 +++++++++++++++------------ BASIC.FX/BASIC.S.GP..txt | 12 +++- BASIC.FX/BASIC.S.LDR.txt | 27 +++++---- SYS/PM.VEDRIVE.S.U2.txt | 83 ++++++++++++++------------- SYS/PM.VEDRIVE.S.txt | 14 +++-- 9 files changed, 263 insertions(+), 234 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 1c54c328fe8c90145f0474f8b17aa44e567d1633..cef21312a8c42f8220ba88e3b5d09c3899cc431e 100644 GIT binary patch delta 66903 zcmZrZ2|$#^_p{642e`YiH?YDdpn~GUa$~x>z#`0SlwI;e|i6*XAzYgr8%kI+-J2bNUF#m66zWsL5zlF;;^XAQ)cg>qO?_1aWb6K?p ze%yZt$-}e{Tnb7IT$UWGeIO}#jC_Lja9OZRMjH-a8u5ByU-;~spOf`yvdJ<3k~Mc6@O%Dhtr#0l^yfS(q1E_ux>V5Xv6Pj~k+Q}PkiysU;J@~7!rnlbGUYOCl*wQ{d zqdU%(aW}Uvq&vlh?haiS#{b2;jXXb^A33@sm`@zt@mmf5d}2ospOCcX`GD=bNUTxI4aU+R4*{ zzbD^y3jXh|I<`5!Q#QDM@b^8McG+O}%g4Tn??i9IGmJbD5VsDU2#i}NI}s9Be0kl- z6QK{hbbegu=#0+S-vyB54LuhEou`a7@`>cXCK>r}Qn7&<9auo>b?B>j^_9sE%E$AaYNGw#tcp*zgP!S2ZI`$9+9MKZ;4;? zRZrl@uDGF~)8T)tIlUot-|YwD2IdZikpYT<#zDDD5weCqe+ge}2#Ry=h#L&J&=ps+ zpkPr^#nHIqae499_~Q5;H2Bw|_Qv>4%i?!5#qU@izhgywPxv3o#(49xc&-~I9&3tU z-4x&16wkeMDqwIZ@$}%?_j*uw(21t_q9j#_yK`my`bF2mANuRL_2FOlw!{wwyMlAh zx5PhoY-Rj_dnh=kF$;)SoC+EWadjs*$A^z_xvvA#ZhPre@Zd*6O57s;gG=Ox{MtSz zzP&bnQG0cKd(8u-KkH>F4=nsSo=Zlj!vAg$KlQ+We_n)TCHBk2;AFD3zwP}^_B6h9 zuh8dQVsWqNLHm*Y#NVkebt3z@&qfaZvJu%`sK{k6>VA*uKRWqRqopIH`&;^$Q`6gQ zX-6N@1=d95U2swk{y)!MTVZG&+q2S&+ z%aF{-6#?`sYb=X!db^-^j&ND{XU4d7dxLJDGiJ${HDk7od1%beF}ug?A7iY^so_J$ zx>eno3@CU{Q2R`akv2v=fd(uf-W)34a%jz|=?PBm2~F-%CikexxB!04ScZU~Io2Jz zC%ApFWzUHAdP~jS@^t~-mtQ)B25|o&dFI|H@7ihUdehQ1Ipai~rRyg1{LgW?Y@<*!qC2W5@DNwmc0}HGBw+86z=inIX2Cdaexlnx zARn}KPw5Fb#B~`my5?BcpAP?}+jfW>ly{G!t)ntCb|>5Eu`<` zz%<<0Axw@Ml>x(kuj!V%0*ekIVAf0L7EK!brH20yA2kJ~j$JD*alGhv&}iy+7O4F_ zPXbns3K~;hXBjL4Y`=C#_XGh^aTN6nYGciSY%rxeiOvgtHG#s!_Jjb;D}?IbyZ2u; z3!%5S9N%}J5T8(PDRQB%dr!IKT^mlFXg^hSV&kbIS8$PQLJ_!C;=lK5@b10x*z`(E zSNo}6km<%#E*Tkd9gOImOJ40yo44Ra$OJb_J5wL})#6`DFX$jd;*|-!< zEb6_Syi_(3Pun8Ya+i|{#`b@4*Nt2p2LN@U(2rBL3MTyH79m3B!LkR1Xy@^FhLcr) zhLE-B%oSuUJwwQ9IFs|OynXSR;>+!gXL^^O`4+V=ArH&W>_;E;%0Ae*=AHJ|ce>Gq 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 delta 59733 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 diff --git a/BASIC.FX/BASIC.S.A.txt b/BASIC.FX/BASIC.S.A.txt index daeb94dd..e2438354 100644 --- a/BASIC.FX/BASIC.S.A.txt +++ b/BASIC.FX/BASIC.S.A.txt @@ -106,17 +106,29 @@ BS.SetCSWKSW2VDOS rts *-------------------------------------- BS.IO.IN bit GP.EXECACTV - bpl L9AC5 + bpl .1 jsr BS.SaveAXY jmp BS.IO.IN.EXEC -L9AC5 jsr BS.ResetCSWKSW +.1 jsr BS.ResetCSWKSW + jsr MON.KEYIN0 cmp #$8D - bne L9AEB + beq .5 + + cmp #$FF + bne L9AEB - jsr BS.SaveAXY + lda #$88 + jsr MON.COUT + lda #$A0 + jsr MON.COUT + lda #$88 + + bra L9AEB + +.5 jsr BS.SaveAXY sta IO.LINEBUF,x BS.CheckDOSCMD jsr BS.DOSCMD @@ -131,8 +143,9 @@ BS.CheckDOSCMD jsr BS.DOSCMD beq L9AEB L9AE8 jsr BS.RestoreAXY -L9AEB jmp BS.SaveCSWKSW +L9AEB jmp BS.SaveCSWKSW +*-------------------------------------- BS.NODEVERR lda #$03 BS.ERROUT sta GP.ERRCODE @@ -148,8 +161,7 @@ BS.ERROUT sta GP.ERRCODE stz GP.PFXACTV stz GP.MLICF.REFNUM - lda #MLI.C.CLOSE - jsr GP.GOSYSTEM + jsr BS.MLIClose bcs L9B27 jsr LA004 @@ -191,7 +203,7 @@ L9B4D ldx AS.REMSTK L9B53 lda #$03 jmp AS.BITERRFLG - +*-------------------------------------- L9B58 stz AS.ERRNUM lda #$A3 sta X9F65 @@ -201,7 +213,7 @@ L9B58 stz AS.ERRNUM jsr BS.SetState0 jsr BS.RestoreAXY jmp BS.IO.IN - +*-------------------------------------- BS.IO.IN0 jsr BS.SaveAXY bit GP.PFXACTV bpl L9B7E @@ -236,7 +248,7 @@ L9B94 lda GP.PREGA L9BAA lda #$88 L9BAC jmp BS.SaveCSWKSW - +*-------------------------------------- BS.IO.IN.EXEC sta (ZP.BASL),y lda ZP.PROMPT cmp #$BE @@ -298,7 +310,7 @@ L9C0E lda (ZP.BASL),y jmp (ZP.KSW) L9C13 jmp BS.ERROUT - +*-------------------------------------- BS.IO.IN.FILE lda ZP.PROMPT cmp #$DD bne L9C1F @@ -331,7 +343,7 @@ L9C42 jsr BS.ReadOneByte bcs L9C13 rts - +*-------------------------------------- BS.ReadOneByte lda GP.MLIRW.COUNT sta GP.ParamL lda #$01 @@ -346,7 +358,7 @@ BS.ReadOneByte lda GP.MLIRW.COUNT lda IO.LINEBUF,x L9C66 rts - +*-------------------------------------- L9C67 lda GP.PREGA sta (ZP.BASL),y @@ -488,7 +500,7 @@ L9D5D dec GP.CATFLAG L9D65 jsr LA4D2 jmp L9CF5 - +*-------------------------------------- BS.IO.IN.CAT cmp #$DD bne L9D72 @@ -508,7 +520,7 @@ L9D7F lda BS.CMDBUF.LEN,x ldx BS.CMDBUF.LEN lda #$8D rts - +*-------------------------------------- BS.Setup4readEFBytesAt200 lda XBBFE sta GP.MLIRW.REFNUM @@ -520,16 +532,16 @@ BS.Setup4readEFBytesAt200 stz GP.MLIRW.COUNT+1 stz GP.MLIRW.DATAPTR rts - +*-------------------------------------- BS.VSYSO jsr BS.SaveAXY cmp #$84 bne L9DC5 jsr BS.WriteTBUF - sta GP.INPTR - sta GP.IFILACTV - sta GP.OFILACTV - sta GP.PFXACTV + stz GP.INPTR + stz GP.IFILACTV + stz GP.OFILACTV + stz GP.PFXACTV ldx #$08 jsr BS.SetState jmp BS.RestoreAXY @@ -538,7 +550,7 @@ L9DC5 ldx #$04 jsr BS.SetState jsr BS.RestoreAXY jmp BS.JMP.GP.VSYSO - +*-------------------------------------- BS.IO.OUT.CAT jsr BS.SaveAXY ldx GP.INPTR sta IO.LINEBUF,x @@ -596,7 +608,7 @@ L9E15 ldy GP.TBUFPTR jsr BS.RestoreAXY L9E2F rts - +*-------------------------------------- BS.IO.OUT.TRACE pha stx GP.PREGX tsx @@ -719,35 +731,36 @@ L9EF2 jmp AS.EXECSTMT L9EF5 sta ZP.PROMPT tay - lda BS.BYTES-$80,y + lda BS.AS.KW-$80,y bmi L9EF2 sta X9F00+1 -X9F00 bne L9F02 SELF MODIFIED - -L9F02 sta ZP.PROMPT +X9F00 bne BS.AS.KW0 SELF MODIFIED +BS.AS.KW0 +BS.AS.KW.IF +BS.AS.KW.PRINT + sta ZP.PROMPT sta GP.CHRLAST - lda BS.VSYSO.LO + lda #BS.VSYSO sta GP.VSYSO - lda BS.VSYSO.HI + lda /BS.VSYSO sta GP.VSYSO+1 bne L9F32 - lda #$01 +BS.AS.KW.LIST lda #$01 + .HS 2C BIT ABS +BS.AS.KW.CALL lda #$02 sta ZP.PROMPT bne L9F32 - lda #$02 - sta ZP.PROMPT - bne L9F32 - - tya +BS.AS.KW.LET tya jmp L9ED2 - sty GP.DTRACE +BS.AS.KW.TRACE sty GP.DTRACE bne L9F2E +BS.AS.KW.NOTRACE sta GP.DTRACE dey @@ -757,13 +770,9 @@ L9F2E lda #$4A L9F32 tya jmp AS.EXECSTMT - brk - -* UNREACHABLE CODE ???? -* lda #$00 -* sta AS.ERRNUM -* tya -* bne L9EF0 +BS.AS.KW.RESUME stz AS.ERRNUM + tya + bne L9EF0 L9F3D jsr BS.ResetCSWKSW lda #$A3 @@ -776,30 +785,29 @@ L9F3D jsr BS.ResetCSWKSW jsr BS.SaveCSWKSW sec jmp L9ECA - +BS.AS.KW.FLASH lda #$E3 bne L9F5E - +BS.AS.KW.NORMAL +BS.AS.KW.INVERSE lda #$A3 L9F5E sta X9F65 tya bne L9EF0 - brk - X9F65 .DA #$A3 - +*-------------------------------------- BS.SaveAXY sta GP.PREGA stx GP.PREGX sty GP.PREGY rts - +*-------------------------------------- BS.RestoreAXY lda GP.PREGA ldx GP.PREGX ldy GP.PREGY rts - +*-------------------------------------- BS.SetState stx GP.STATE ldy #$00 @@ -811,7 +819,7 @@ BS.SetState stx GP.STATE bne .1 rts - +*-------------------------------------- BS.PRINTERR tay ldx BS.ERRCODES-1,y @@ -853,7 +861,7 @@ L9FC4 tay bne L9FBA L9FD5 rts - +*-------------------------------------- L9FD6 lda BS.TBL7,x bcs L9FED @@ -879,7 +887,7 @@ L9FED inx *-------------------------------------- BS.WriteTBUF256 lda #$00 ldy #$01 - bne LA00B + bne BS.WriteTBUFAY BS.WriteTBUF jsr LA004 bcc LA020 @@ -889,12 +897,12 @@ BS.WriteTBUF jsr LA004 pla tya jmp BS.ERROUT - +*-------------------------------------- LA004 ldy #$00 lda GP.TBUFPTR beq LA01F -LA00B sta GP.MLIRW.COUNT +BS.WriteTBUFAY sta GP.MLIRW.COUNT sty GP.MLIRW.COUNT+1 lda #MLI.C.WRITE jsr GP.GOSYSTEM @@ -905,7 +913,7 @@ LA00B sta GP.MLIRW.COUNT LA01F clc LA020 rts - +*-------------------------------------- LA021 jsr BS.KW.01 bcs LA047 diff --git a/BASIC.FX/BASIC.S.B.txt b/BASIC.FX/BASIC.S.B.txt index b9fff234..4578e130 100644 --- a/BASIC.FX/BASIC.S.B.txt +++ b/BASIC.FX/BASIC.S.B.txt @@ -5,6 +5,7 @@ BS.WHICHBITS .HS 8040201008040201 BS.GETBUFR jsr LA1FB bcs LA304 + pha sbc #$03 sta XBBB8 @@ -120,7 +121,7 @@ LA376 cpy XBBED bne LA376 LA382 rts - +*-------------------------------------- LA383 ldy XBBED XA386 beq LA38F SELF MODIFIED @@ -133,7 +134,7 @@ LA38F cpy XBBEE dec XBBEE jmp LA388 - +*-------------------------------------- LA39A dey lda (ZP.PCL),y sta (ZP.A1L),y @@ -141,7 +142,7 @@ LA39A dey bne LA39A LA3A2 rts - +*-------------------------------------- LA3A3 lda AS.VARSTART+1 sta ZP.A2H lda AS.VARSTART @@ -823,8 +824,7 @@ LA7ED lda GP.FoundBITS+1 stz BS.CMDBUF lda #$01 - ora GP.FoundBITS - sta GP.FoundBITS + tsb GP.FoundBITS LA806 jsr BS.GetVolAtSxDy bcs LA849 @@ -993,8 +993,7 @@ LA90A lda #$04 and GP.AllowedBITS beq LA931 - ora GP.FoundBITS - sta GP.FoundBITS + tsb GP.FoundBITS stz XBC08 @@ -1031,8 +1030,7 @@ LA935 lda BS.KW.OPT.PBITSLO,y sta GP.ParamD lda #$04 -LA94F ora GP.FoundBITS+1 - sta GP.FoundBITS+1 +LA94F tsb GP.FoundBITS+1 LA955 lda BS.KW.OPT.PBITSHI,y and #$03 @@ -1327,7 +1325,7 @@ BS.IsIntCmd ldx #$1F LAB03 ldy #$08 sty GP.XLEN -LAB08 lda BS.KW.LEN,x +LAB08 lda BS.KW.LEN-1,x bpl LAB13 and #$7F @@ -1383,8 +1381,10 @@ BS.KW.APPEND lda GP.FITYPE LAB63 cmp #$FF beq LAB6F + cmp #$B3 beq LAB6F + lda #$0D sec rts @@ -1517,7 +1517,7 @@ LAC5E lda #$0E jsr BS.ReadXYBytes bcs LAC33 - jsr BS.FileClose + jsr BS.MLIClose bcs LAC33 jsr LAC80 @@ -1626,7 +1626,7 @@ LACFE lda #$02 jsr GP.GOSYSTEM bcs LAD47 - jsr BS.FileClose + jsr BS.MLIClose bcs LAD47 lda AS.PGRMSTART+1 @@ -1646,7 +1646,7 @@ LAD48 stx GP.FIAUXTYPE *-------------------------------------- BS.KW.CREATE stz GP.CRAUXTYPE stz GP.CRAUXTYPE+1 - >DEBUG + lda GP.FoundBITS and #CMDBITS0.T bne BS.CreateFileOrDir @@ -1677,7 +1677,7 @@ LAD82 stx GP.CRACCESS LAD8D lda #$0C rts - +*-------------------------------------- BS.KW.RENAME lda GP.FoundBITS lsr lsr @@ -1685,24 +1685,24 @@ BS.KW.RENAME lda GP.FoundBITS bcs LAD9E jmp BS.ERR10 - +*-------------------------------------- BS.KW.DELETE lda #MLI.C.DESTROY LAD9E jmp GP.GOSYSTEM - +*-------------------------------------- BS.KW.LOCK jsr BS.GetFileInfo lda GP.FIACCESS and #$3C ora #$01 - sta GP.FIACCESS - jmp BS.SetFileInfo - + bra BS.KW.UNLOCK1 +*-------------------------------------- BS.KW.UNLOCK jsr BS.GetFileInfo lda #$C3 ora GP.FIACCESS - sta GP.FIACCESS - jmp BS.SetFileInfo +BS.KW.UNLOCK1 sta GP.FIACCESS + jmp BS.SetFileInfo +*-------------------------------------- BS.KW.PREFIX lda GP.FoundBITS+1 and #$04 sec @@ -1711,7 +1711,7 @@ BS.KW.PREFIX lda GP.FoundBITS+1 lda GP.FoundBITS lsr -LADCB lda #$C6 +LADCB lda #MLI.C.SETPREFIX bcs LAD9E lda ZP.PROMPT @@ -1734,8 +1734,8 @@ LADE8 jsr BS.CROUT clc rts -LADF0 lda #$FF - sta GP.PFXACTV +LADF0 sec + ror GP.PFXACTV clc rts *-------------------------------------- diff --git a/BASIC.FX/BASIC.S.C.txt b/BASIC.FX/BASIC.S.C.txt index d2dd038f..93c98859 100644 --- a/BASIC.FX/BASIC.S.C.txt +++ b/BASIC.FX/BASIC.S.C.txt @@ -35,7 +35,7 @@ LAE31 lda #$06 LAE33 sec rts - +*-------------------------------------- BS.KW.BRUN jsr BS.KW.BLOAD bcs LAE33 @@ -44,7 +44,7 @@ BS.KW.BRUN jsr BS.KW.BLOAD rts LAE3F jmp (GP.MLIRW.DATAPTR) - +*-------------------------------------- BS.KW.BLOAD lda #$01 LAE44 ldx #$06 jsr BS.CheckFTypeXAccessA @@ -152,7 +152,7 @@ LAEDD lda #MLI.C.SETMARK rts LAEF7 ldx GP.XCNUM - lda #$CA + lda #MLI.C.READ cpx #$0F bne LAF24 @@ -182,11 +182,11 @@ LAF24 jsr GP.GOSYSTEM jsr BS.SetFileInfoNoDate -LAF35 jmp BS.FileClose +LAF35 jmp BS.MLIClose LAF38 sec rts - +*-------------------------------------- BS.KW.SAVE bcc LAF4E lda #$FD @@ -230,7 +230,7 @@ LAF4E jsr LA411 jsr BS.SetFileInfoNoDate bcs LAF95 - jsr BS.FileClose + jsr BS.MLIClose LAF95 php pha @@ -238,7 +238,7 @@ LAF95 php pla plp LAF9C rts - +*-------------------------------------- BS.SetupRW5AtBBE4 lda #$E4 sta GP.MLIRW.DATAPTR @@ -247,7 +247,7 @@ BS.SetupRW5AtBBE4 ldy #$00 ldx #$05 rts - +*-------------------------------------- BS.KW.LOAD ldx #$FD lda #$01 jsr BS.CheckFTypeXAccessA @@ -281,29 +281,28 @@ BS.KW.LOAD ldx #$FD jsr BS.ReadXYBytes bcs LAF9C - jsr BS.FileClose + jsr BS.MLIClose jmp LAF95 LAFF3 lda #$0E sec rts - -BS.FileClose lda #MLI.C.CLOSE - bne LB007 - +*-------------------------------------- BS.ReadXYBytes lda #MLI.C.READ - bne LB001 + .HS 2C BIT ABS BS.WriteXYBytes lda #MLI.C.WRITE -LB001 sty GP.MLIRW.COUNT+1 + sty GP.MLIRW.COUNT+1 stx GP.MLIRW.COUNT -LB007 jmp GP.GOSYSTEM - + .HS 2C BIT ABS +BS.MLIClose lda #MLI.C.CLOSE + jmp GP.GOSYSTEM +*-------------------------------------- BS.KW.IN lda #$00 sta BS.GetCharSep beq LB018 - +*-------------------------------------- BS.KW.PR lda #$02 sta BS.GetCharSep lda #$08 @@ -341,7 +340,7 @@ LB04A jsr LB05C lda GP.ParamA sta GP.OUTVECT0,x LB05B rts - +*-------------------------------------- LB05C lda GP.ParamA sta ZP.PCL lda GP.ParamA+1 @@ -447,7 +446,7 @@ LB0FD lda IO.KBD LB10E lda #$FF bne LB0E8 -LB113 jsr BS.FileClose +LB113 jsr BS.MLIClose bcs LB127 jsr BS.CROUT @@ -488,10 +487,7 @@ LB142 lda DIRENTBUF,y rts LB157 ldx #BS.CMDBUF -* sta GP.SBUFADR ldy /BS.CMDBUF -* sta GP.SBUFADR+1 - jsr BS.SetSBUFADRXY lda MLI.DEVNUM @@ -552,7 +548,7 @@ BS.ReadDirEnt lda #$59 sta GP.MLIRW.DATAPTR+1 lda #$2B sta GP.MLIRW.COUNT - + stz GP.MLIRW.COUNT+1 lda #MLI.C.READ jsr GP.GOSYSTEM @@ -568,7 +564,7 @@ LB1EA lda $27C,x sta GP.MLIRW.COUNT lda #$01 sta XBC16 - + stz GP.SBUFADR+1 stz GP.SBUFADR+2 LB203 rts @@ -649,16 +645,18 @@ LB268 adc #$04 lda DIRENTBUF and #$F0 beq LB241 -* BUG on DEC word - dec XBC14 - bne LB28D + + lda XBC14 + bne .1 dec XBC15 +.1 dec XBC14 + LB28D rts BS.JMP.XTRNADDR jmp (GP.XTRNADDR) - +*-------------------------------------- BS.KW.EXEC jsr BS.CheckFilename bcs LB2C0 @@ -666,9 +664,9 @@ BS.KW.EXEC jsr BS.CheckFilename bpl LB2BC sta GP.MLIMRKEOFBUF.REFNUM - + jsr BS.ZeroSBUFADR - + lda #MLI.C.SETMARK jsr GP.GOSYSTEM bcs LB2B5 @@ -704,7 +702,7 @@ LB2D5 jsr LA1F9 bcs LB2D3 stz GP.SBUFADR - + lda XBBE3 sta GP.SBUFADR+1 ldx GP.OPENCNT @@ -716,6 +714,7 @@ LB2D5 jsr LA1F9 asl adc XBBE3 pha + LB2F2 cmp XBBEE,x beq LB2FB @@ -737,9 +736,9 @@ LB2FB tya LB30D pla LB30E sta XBBE3 sta GP.OSYSBUF+1 - + stz MLI.LEVEL - + lda #MLI.C.OPEN jsr GP.GOSYSTEM bcc LB327 @@ -780,7 +779,7 @@ LB364 lda #$FF sta GP.EXECACTV clc rts - +*-------------------------------------- LB36B lda GP.EXECACTV bpl LB37B @@ -1059,9 +1058,8 @@ LB515 sta GP.MLICF.REFNUM sta XBBF6,y LB53F stz MLI.LEVEL - - lda #MLI.C.CLOSE - jsr GP.GOSYSTEM + + jsr BS.MLIClose bcs LB572 jsr LA250 @@ -1090,9 +1088,8 @@ LB573 stz GP.MLICF.REFNUM lda #$07 sta MLI.LEVEL - lda #MLI.C.CLOSE - jmp GP.GOSYSTEM - + jmp BS.MLIClose +*-------------------------------------- BS.KW.CLOSE jsr BS.CheckFilename bcs LB5EF @@ -1100,7 +1097,7 @@ BS.KW.CLOSE jsr BS.CheckFilename sta GP.NEWLREF bit GP.DIRFLG bmi LB5F0 - +*-------------------------------------- LB592 lda GP.FoundBITS+1 and #$03 beq LB5ED @@ -1150,7 +1147,7 @@ LB5CB lda GP.ParamF LB5ED lda #$0B LB5EF sec LB5F0 rts - +*-------------------------------------- LB5F1 lda XBBFF sta BS.TMPBUF4 lda XBC00 @@ -1158,9 +1155,9 @@ LB5F1 lda XBBFF stz BS.TMPBUF4+2 stz BS.TMPBUF4+3 - + jsr BS.ZeroSBUFADR - + LB60E lsr GP.ParamR+1 ror GP.ParamR ldx #$00 @@ -1197,7 +1194,7 @@ LB62F rol BS.TMPBUF4,x LB642 lda #$02 sec rts - +*-------------------------------------- BS.KW.X04 jsr BS.CheckFilename bcs LB69B @@ -1233,7 +1230,7 @@ LB67C sta GP.MLIRW.DATAPTR stx GP.NLINEMASK lda #$02 sta GP.MLIRW.DATAPTR+1 - + stz GP.MLIRW.COUNT+1 lda #MLI.C.NEWLINE @@ -1256,7 +1253,7 @@ LB69C lda #$59 beq LB696 jsr BS.ZeroSBUFADR - + lda #MLI.C.SETMARK jsr GP.GOSYSTEM bcs LB6CA @@ -1270,7 +1267,7 @@ LB6CB lda #$02 tax sec rts - +*-------------------------------------- LB6D0 lda GP.FoundBITS+1 and #$43 beq LB719 @@ -1318,7 +1315,7 @@ LB712 lda #MLI.C.SETMARK LB719 clc LB71A ldx #$00 rts - +*-------------------------------------- BS.KW.X08 jsr BS.CheckFilename bcs LB732 @@ -1360,7 +1357,7 @@ LB757 lda AS.HIMEM sta GP.OFILACTV clc rts - +*-------------------------------------- BS.KW.X09 php jsr BS.CheckFilename bcc LB77A @@ -1394,6 +1391,7 @@ LB78A ldx GP.ParamL ldx GP.FIAUXTYPE ldy GP.FIAUXTYPE+1 + LB79D txa pha jsr BS.GetFTableIdx @@ -1418,7 +1416,7 @@ LB7C8 jsr LB7D0 bcs LB788 LB7CD jmp LB74B - +*-------------------------------------- LB7D0 ldx #$03 LB7D2 lda GP.MLIMRKEOFBUF.REFNUM,x sta XBC09,x @@ -1472,7 +1470,7 @@ LB805 dey lda #$02 LB839 rts - +*-------------------------------------- BS.GetFileInfo lda #$0A sta GP.SSGINFO lda #MLI.C.GETFILEINFO @@ -1495,13 +1493,13 @@ BS.JMP.GP.VSYSI jmp (GP.VSYSI) *-------------------------------------- BS.ToUpper cmp #'a' bcc .9 - + cmp #'z'+1 bcs .9 - + eor #$20 - -.9 rts + +.9 rts *-------------------------------------- BS.GetFTableIdx lda GP.MLIRW.REFNUM lsr @@ -1513,7 +1511,7 @@ BS.GetFTableIdx lda GP.MLIRW.REFNUM *-------------------------------------- BS.SetSBUFADRXY0 stz GP.SBUFADR+2 - + BS.SetSBUFADRXY stx GP.SBUFADR sty GP.SBUFADR+1 rts diff --git a/BASIC.FX/BASIC.S.D.txt b/BASIC.FX/BASIC.S.D.txt index 1fe334bc..d6b2aaf4 100644 --- a/BASIC.FX/BASIC.S.D.txt +++ b/BASIC.FX/BASIC.S.D.txt @@ -12,29 +12,30 @@ BS.SYSIOVECTS .DA BS.IO.OUT .DA BS.IO.IN0 .DA BS.IO.OUT.CAT .DA BS.IO.IN0 -BS.VSYSO.LO .DA #BS.VSYSO -BS.VSYSO.HI .DA /BS.VSYSO -BS.ParamLByte .DA #$A0 - .DA #$AC - .DA #$AF - .DA #$B4 - .DA #$B4 - .DA #$C6 - .DA #$AC - .DA #$AC - .DA #$CB - .DA #$D1 - .DA #$D5 - .DA #$D5 - .DA #$DD - .DA #$DD - .DA #$C6 - .DA #$C6 - .DA #$C6 - .DA #$C6 - .DA #$C6 - .DA #$C6 -BS.BYTES .DA #$80 + .DA BS.VSYSO +*-------------------------------------- +BS.ParamLByte .DA #GP.SCREATE + .DA #GP.SDSTROY + .DA #GP.SRECNAME + .DA #GP.SSGINFO + .DA #GP.SSGINFO + .DA #GP.MLIMRKEOFBUF + .DA #GP.SDSTROY + .DA #GP.SDSTROY + .DA #GP.SOPEN + .DA #GP.SNEWLIN + .DA #GP.MLIRW + .DA #GP.MLIRW + .DA #GP.MLICF + .DA #GP.MLICF + .DA #GP.MLIMRKEOFBUF + .DA #GP.MLIMRKEOFBUF + .DA #GP.MLIMRKEOFBUF + .DA #GP.MLIMRKEOFBUF + .DA #GP.MLIMRKEOFBUF + .DA #GP.MLIMRKEOFBUF +*-------------------------------------- +BS.AS.KW .DA #$80 .DA #$81 .DA #$82 .DA #$83 @@ -46,7 +47,7 @@ BS.BYTES .DA #$80 .DA #$89 .DA #$8A .DA #$8B - .DA #$19 + .DA #BS.AS.KW.CALL-BS.AS.KW0 .DA #$8D .DA #$8E .DA #$8F @@ -61,25 +62,25 @@ BS.BYTES .DA #$80 .DA #$98 .DA #$99 .DA #$9A - .DA #$23 - .DA #$28 - .DA #$5A - .DA #$5A - .DA #$56 + .DA #BS.AS.KW.TRACE-BS.AS.KW0 + .DA #BS.AS.KW.NOTRACE-BS.AS.KW0 + .DA #BS.AS.KW.NORMAL-BS.AS.KW0 + .DA #BS.AS.KW.INVERSE-BS.AS.KW0 + .DA #BS.AS.KW.FLASH-BS.AS.KW0 .DA #$A0 .DA #$A1 .DA #$A2 .DA #$A3 .DA #$A4 .DA #$A5 - .DA #$34 + .DA #BS.AS.KW.RESUME-BS.AS.KW0 .DA #$A7 .DA #$A8 .DA #$A9 - .DA #$1F + .DA #BS.AS.KW.LET-BS.AS.KW0 .DA #$AB .DA #$AC - .DA #$00 + .DA #BS.AS.KW.IF-BS.AS.KW0 .DA #$AE .DA #$AF .DA #$B0 @@ -92,13 +93,14 @@ BS.BYTES .DA #$80 .DA #$B7 .DA #$B8 .DA #$B9 - .DA #$00 + .DA #BS.AS.KW.PRINT-BS.AS.KW0 .DA #$BB - .DA #$13 + .DA #BS.AS.KW.LIST-BS.AS.KW0 .DA #$BD .DA #$BE -BS.KW.LEN .DA #$BF - .DA #$47 + .DA #$BF +*-------------------------------------- +BS.KW.LEN .DA #$47 .DA #$5F .DA #$18 .DA #$30 @@ -129,7 +131,9 @@ BS.KW.LEN .DA #$BF .DA #$1C .DA #$B5 .DA #$D8 +*-------------------------------------- BS.KW.TABLE .AS "BSAVERIFYBLOADELETEBYECATALOGOPENWRITEXECREATEFRESTORENAMEBRUNLOCKCHAIN#FLUSHREADPOSITIONOMONPR#PREFIXCLOSEAPPEND" +*-------------------------------------- BS.KW.JMP .DA BS.JMP.XTRNADDR $00 .DA BS.KW.PR .DA BS.KW.IN @@ -163,6 +167,7 @@ BS.KW.JMP .DA BS.JMP.XTRNADDR $00 .DA BS.KW.LOAD .DA BS.KW.CLOSE .DA BS.KW.APPEND $40 +*-------------------------------------- BS.KW.PBITS .DA $8040 .DA $8040 .DA $0495 @@ -587,15 +592,19 @@ BS.TBL7 .DA #$2A XBBB5 .BS 2 XBBB7 .BS 1 XBBB8 .BS 1 + BS.IsIntCmdMTR ldy #$02 + LBBBB lda BS.CMDBUF,y cmp BS.MTR,y bne LBBCF dey bpl LBBBB + jsr BS.SetState0 jsr MON.CLREOL jmp MON.ENTERMON + LBBCF jmp BS.IsIntCmd BS.MTR .AS "MTR" diff --git a/BASIC.FX/BASIC.S.GP..txt b/BASIC.FX/BASIC.S.GP..txt index 55f757ba..d0dd3b8f 100644 --- a/BASIC.FX/BASIC.S.GP..txt +++ b/BASIC.FX/BASIC.S.GP..txt @@ -100,6 +100,7 @@ LBE97 lda BS.BIERRTBL,x GP.RTS rts *-------------------------------------- GP.CISPARE1 .BS 1 +*-------------------------------------- GP.SCREATE .DA #7 GP.SCREATEPATH .DA BS.CMDBUF.LEN GP.CRACCESS .DA #$C3 @@ -107,11 +108,14 @@ GP.CRTYPE .BS 1 GP.CRAUXTYPE .BS 2 GP.CRSTTYPE .BS 1 GP.DATETIME .BS 4 +*-------------------------------------- GP.SDSTROY .DA #1 GP.SDSTROYPATH .DA BS.CMDBUF.LEN +*-------------------------------------- GP.SRECNAME .DA #2 GP.SRECNAMEOLD .DA BS.CMDBUF.LEN GP.SRECNAMENEW .DA MLI.PATHBUF +*-------------------------------------- GP.SSGINFO .BS 1 GP.SSGINFOPATH .DA BS.CMDBUF.LEN GP.FIACCESS .BS 1 @@ -123,27 +127,33 @@ GP.FIMDATE .BS 2 GP.FICDATE .BS 2 .BS 4 - +*-------------------------------------- GP.MLIMRKEOFBUF .DA #2 GP.MLIMRKEOFBUF.REFNUM .BS 1 GP.SBUFADR .BS 3 +*-------------------------------------- GP.SOPEN .DA #3 GP.TXTBUF .DA BS.CMDBUF.LEN GP.OSYSBUF .BS 2 GP.OREFNUM .BS 1 +*-------------------------------------- GP.SNEWLIN .DA #3 GP.NEWLREF .BS 1 GP.NLINEMASK .DA #$7F GP.NLINECHAR .DA #13 +*-------------------------------------- GP.MLIRW .DA #4 GP.MLIRW.REFNUM .BS 1 GP.MLIRW.DATAPTR .BS 2 GP.MLIRW.COUNT .BS 2 GP.MLIRW.TRANS .BS 2 +*-------------------------------------- GP.MLICF .DA #1 GP.MLICF.REFNUM .BS 1 +*-------------------------------------- GP.CCCSPARE .BS 1 +*-------------------------------------- GP.COPYRIGHT .AS -"COPYRIGHT APPLE, 1983" GP.GETBUFR jmp BS.GETBUFR GP.FREEBUFR jmp BS.FREEBUFR diff --git a/BASIC.FX/BASIC.S.LDR.txt b/BASIC.FX/BASIC.S.LDR.txt index 9aa5d1bc..b483ec12 100644 --- a/BASIC.FX/BASIC.S.LDR.txt +++ b/BASIC.FX/BASIC.S.LDR.txt @@ -26,12 +26,12 @@ LDR.START1 lda #$9A jsr MON.SETNORM jsr MON.INIT jsr MON.MON - ldx #$17 - lda #$00 -L2076 sta MLI.MEMTABL,x + ldx #$17 + +.1 stz MLI.MEMTABL,x dex - bne L2076 + bne .1 lda #$CF sta MLI.MEMTABL @@ -45,33 +45,33 @@ L2076 sta MLI.MEMTABL,x sta MLI.MEMTABL+23 lda AS.COLDBOOT cmp #$4C - bne L20B1 + bne .3 lda MLI.MACHID and #$20 - beq L20B1 + beq .3 ldx #$03 -L20A6 lda LDR.CSWVECT,x +.2 lda LDR.CSWVECT,x sta ZP.CSW,x dex - bpl L20A6 + bpl .2 jmp AS.COLDBOOT -L20B1 ldx #$27 +.3 ldx #$27 -L20B3 lda LDR.UNABLE,x +.4 lda LDR.UNABLE,x sta $628,x dex - bpl L20B3 + bpl .4 sta MON.POWERUPBYTE sta MON.POWERUP+1 -L20C2 bmi L20C2 - + bmi * +*-------------------------------------- LDR.MoveXpages dey lda (Ptr1),y sta (Ptr2),y @@ -272,7 +272,6 @@ LDR.KSW lda GP.INVECT0 LDR.CSWVECT .DA LDR.CSW LDR.KSWVECT .DA LDR.KSW LDR.GFINFO.P .DA #10 -LDR.GFINFO.P.PATHBUF .DA LDR.STARTUP.LEN .BS 16 diff --git a/SYS/PM.VEDRIVE.S.U2.txt b/SYS/PM.VEDRIVE.S.U2.txt index 1090a55c..9832ccc9 100644 --- a/SYS/PM.VEDRIVE.S.U2.txt +++ b/SYS/PM.VEDRIVE.S.U2.txt @@ -271,9 +271,9 @@ DRV.U2.Read php .1 >AR.SELECT S0.RX.RD lda W5100.DR,x get the received ptr HI - sta Offset+1 + sta DRV.Offset+1 ldy W5100.DR,x get the received ptr LO - sty Offset + sty DRV.Offset and /RXTX.MASK ora /RX.BASE @@ -282,50 +282,51 @@ DRV.U2.Read php sta W5100.AR+1,x lda W5100.DR,x get RX.Size HI (Frame size + 2) - sta TotalSize+1 + sta DRV.TotalSize+1 lda W5100.DR,x get RX.Size LO - sta TotalSize + sta DRV.TotalSize +* lda DRV.TotalSize sec sbc #2 MACRAW:strip 2 bytes Header from Size - sta ZPBufCnt + sta DRV.BufSize eor #$ff - sta ZPnCnt + sta DRV.nCnt - lda TotalSize+1 + lda DRV.TotalSize+1 sbc #0 - sta ZPBufCnt + sta DRV.BufSize+1 eor #$ff - sta ZPnCnt+1 + sta DRV.nCnt+1 + + >LDYA DRV.InBuf + >STYA .4+1 - lda ZPBufPtr+1 - pha - ldy #0 -.2 inc ZPnCnt +.2 inc DRV.nCnt bne .3 - inc ZPnCnt+1 + inc DRV.nCnt+1 beq .8 .3 lda W5100.DR,x - sta (ZPBufPtr),y +.4 sta $FFFF,y SELF MODIFIED iny bne .2 - inc ZPBufPtr+1 + inc .4+2 bra .2 .8 >AR.SELECT S0.RX.RD - lda Offset + lda DRV.Offset clc - adc TotalSize + adc DRV.TotalSize pha save LO - lda Offset+1 - adc TotalSize+1 + lda DRV.Offset+1 + adc DRV.TotalSize+1 sta W5100.DR,x write HI pla sta W5100.DR,x write LO @@ -334,9 +335,6 @@ DRV.U2.Read php lda #W5100.AR.Sn.CR.RCVD sta W5100.DR,x - pla - sta ZPBufPtr+1 - plp clc rts @@ -348,17 +346,17 @@ DRV.U2.9 plp DRV.U2.Write php sei - >STYA ZPBufCnt + >STYA DRV.BufSize eor #$ff - sta ZPnCnt+1 + sta DRV.nCnt+1 tya eor #$ff - sta ZPnCnt + sta DRV.nCnt >LDYA DRV.OutBuf - >STYA ZPBufPtr + >STYA .3+1 ldx DRV.START @@ -367,8 +365,8 @@ DRV.U2.Write php nop nop ldy W5100.DR,x LO - cpy ZPBufCnt - sbc ZPBufCnt+1 + cpy DRV.BufSize + sbc DRV.BufSize+1 bcc DRV.U2.9 >AR.SELECT S0.TX.WR @@ -379,34 +377,34 @@ DRV.U2.Write php and /RXTX.MASK ora /TX.BASE sta W5100.AR,x Write HI - sta Offset+1 + sta DRV.Offset+1 tya sta W5100.AR+1,x Write LO - sta Offset + sta DRV.Offset ldy #0 -.2 inc ZPnCnt +.2 inc DRV.nCnt bne .3 - inc ZPnCnt+1 + inc DRV.nCnt+1 beq .8 -.3 lda (ZPBufPtr),y +.3 lda $FFFF,y SELF MODIFIED sta W5100.DR,x iny bne .2 - inc ZPBufPtr+1 + inc .3+2 bra .2 .8 >AR.SELECT S0.TX.WR - lda Offset + lda DRV.Offset clc - adc ZPBufCnt + adc DRV.BufSize pha save LO - lda Offset+1 - adc ZPBufCnt+1 + lda DRV.Offset+1 + adc DRV.BufSize+1 sta W5100.DR,x write HI pla sta W5100.DR,x write LO @@ -418,7 +416,12 @@ DRV.U2.Write php plp clc rts - +*-------------------------------------- +DRV.Offset .BS 2 +DRV.BufSize .BS 2 +DRV.TotalSize .BS 2 +DRV.nCnt .BS 2 +*-------------------------------------- .EP .LIST ON diff --git a/SYS/PM.VEDRIVE.S.txt b/SYS/PM.VEDRIVE.S.txt index 850fc55c..b76b8794 100644 --- a/SYS/PM.VEDRIVE.S.txt +++ b/SYS/PM.VEDRIVE.S.txt @@ -112,6 +112,7 @@ VEDRIVE.Init >LDYAI VEDRIVE.MSG0 jsr PrintFYA * jsr VEDRIVE.SetSlot + sec bcc .8 >LDYAI VEDRIVE.NOSLOT @@ -123,7 +124,7 @@ VEDRIVE.Init >LDYAI VEDRIVE.MSG0 >LDYAI VEDRIVE.DEVOK jsr PrintFYA - jsr VEDRIVE.Install +* jsr VEDRIVE.Install bcc .9 >LDYAI VEDRIVE.DRVIKO @@ -285,10 +286,10 @@ VEDRIVE.SetSlot ldx #2 Starts at Slot1 *-------------------------------------- VEDRIVE.Install ldx #PATCH.SIZE -*.1 lda PATCH-1,x -* sta DRV.EntryPoint-1,x -* dex -* bne .1 +.1 lda PATCH-1,x + sta DRV.EntryPoint-1,x + dex + bne .1 bit RRAMWRAMBNK2 bit RRAMWRAMBNK2 @@ -417,7 +418,7 @@ DRV.InBuf .EQ $DA00 Frame Buffer = 1536 bytes DRV .PH $D001 Main LC Bnk 2 $D001->$DFFF DRV.START .BS 1 SELF MODIFIED slot 0n - + >DEBUG lda DRV.COMMAND S=0,R=1,W=2,F=3 bne .1 @@ -458,6 +459,7 @@ DRV.START .BS 1 SELF MODIFIED slot 0n *-------------------------------------- DRV.DO.CMD.R ldy #S.UDP+5 lda /S.UDP+5 + jsr DRV.Write