diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 1c54c328..cef21312 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 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