From 60620b33f5f994e2e8aae23aef91023b21a3be83 Mon Sep 17 00:00:00 2001 From: burniouf Date: Sun, 27 Mar 2022 14:59:32 +0200 Subject: [PATCH] BASIC:Use AUX Mem, CD .. --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes .Floppies/A2OSX.TEST.po | Bin 819200 -> 819200 bytes .Floppies/ProDOSFX.BOOT.po | Bin 143360 -> 143360 bytes BASIC.FX/BASIC.S.A.txt | 59 ++------ BASIC.FX/BASIC.S.B.txt | 89 ++++-------- BASIC.FX/BASIC.S.C.txt | 176 ++++++++++++------------ BASIC.FX/BASIC.S.D.txt | 22 +-- BASIC.FX/BASIC.S.LDR.txt | 266 ++++++++++++++++++++++++++++-------- BASIC.FX/BASIC.S.txt | 37 ++++- DRV/UTHER2.AI.DRV.S.txt | 83 ++++++----- INC/NIC.W5100.I.txt | 4 +- ProDOS.FX/ProDOS.S.RAM.txt | 4 +- ProDOS.FX/ProDOS.S.RAMX.txt | 61 ++++++++- 13 files changed, 488 insertions(+), 313 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 1b5f256bb82c3ee8eb1b09917d2e69790b6c2da8..4605536743ba474cb4ed472237f7d18bf9af5733 100644 GIT binary patch delta 75576 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 delta 61584 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 QPe7AmJkQl%bCdCL9Jr|GqBcGGm% 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 diff --git a/.Floppies/ProDOSFX.BOOT.po b/.Floppies/ProDOSFX.BOOT.po index fc3c7ff02dbdfbd4b9edbedcb4123652fde15191..8e1459399b820573feb2f13f60392ffab8f64708 100644 GIT binary patch delta 5039 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 EAFb{WcK`qY delta 5044 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 H{Mf$%q6RBy diff --git a/BASIC.FX/BASIC.S.A.txt b/BASIC.FX/BASIC.S.A.txt index 13c3709e..75e95d2f 100644 --- a/BASIC.FX/BASIC.S.A.txt +++ b/BASIC.FX/BASIC.S.A.txt @@ -443,8 +443,10 @@ L9CDF lda GP.CATFLAG beq L9CD3 jsr BS.LINEBUFCLR80 - ldx #$10 - jsr BS.PRINTERRMSGX + + ldy #$10 + ldx #BSX.GetMSGY.X + jsr BS.ToAUX L9CF5 ldx #$50 bne L9CD3 @@ -830,10 +832,11 @@ BS.SetState stx GP.STATE rts *-------------------------------------- -BS.PRINTERR tay - ldx BS.ERRCODES-2,y +BS.PRINTERR ldx #BSX.GetErrA.X + .HS 2C BIT ABS +BS.GetMsgY ldx #BSX.GetMsgY.X + jsr BS.ToAUX -BS.PRINTERRX jsr BS.PRINTERRMSGX ldx GP.INPTR stx BS.CATWIDTH jsr MON.CROUT @@ -850,50 +853,6 @@ BS.LINEBUFOUT ldx #$00 jmp MON.CROUT *-------------------------------------- -BS.PRINTERRMSGX ldy #$00 - clc - sty GP.INPTR - -L9FBA jsr L9FD6 - bne L9FC4 - - jsr L9FD6 - ora #$10 - -L9FC4 tay - lda BS.TBL6-1,y - beq L9FD5 - - ldy GP.INPTR - sta IO.LINEBUF+1,y - inc GP.INPTR - bne L9FBA - -L9FD5 rts -*-------------------------------------- -L9FD6 lda BS.TBL7,x - bcs L9FED - - beq L9FE3 - - lsr - lsr - lsr - lsr - sec - rts - -L9FE3 inx - lda BS.TBL7,x - sta GP.INPTR - inx - bne L9FD6 - -L9FED inx - and #$0F - clc - rts -*-------------------------------------- BS.WriteTBUF256 lda #$00 ldy #$01 bne BS.WriteTBUFAY @@ -1252,7 +1211,7 @@ LA1FB sta XBBB5 LA24E sec rts - +*-------------------------------------- LA250 jsr BS.KW.FRE bcs LA29D diff --git a/BASIC.FX/BASIC.S.B.txt b/BASIC.FX/BASIC.S.B.txt index 396d581b..8b717092 100644 --- a/BASIC.FX/BASIC.S.B.txt +++ b/BASIC.FX/BASIC.S.B.txt @@ -227,28 +227,36 @@ LA411 jsr LA021 sbc AS.VARSTART sta BS.BAS.HDR sta XBBED + lda AS.ARRAYEND+1 sbc AS.VARSTART+1 sta BS.BAS.HDR+1 sta XBBEE + lda AS.ARRAYSTART sbc AS.VARSTART sta BS.BAS.HDR+2 + lda AS.ARRAYSTART+1 sbc AS.VARSTART+1 sta BS.BAS.HDR+3 + lda AS.STRINGSTART sbc XBBED sta ZP.A1L + lda AS.STRINGSTART+1 sbc #$00 sta ZP.A1H + lda AS.ARRAYEND sbc XBBED sta ZP.PCL + lda AS.ARRAYEND+1 sbc #$00 sta ZP.PCH + lda #$03 sta XA386+1 jsr BS.MoveMemDown @@ -260,14 +268,17 @@ LA411 jsr LA021 inc ZP.A1H lda ZP.A1H sta XBBEA + lda AS.HIMEM sec sbc ZP.A1L sta XBBEB + lda AS.HIMEM+1 sta BS.BAS.HDR+4 sbc ZP.A1H sta XBBEC + clc LA47F rts @@ -618,7 +629,7 @@ BS.DOSCMD lda #$FF LA6A2 jmp BS.SYNERR -LA6A5 jsr BS.IsIntCmdMTR +LA6A5 jsr BS.IsIntCmd bcs LA6A2 lda GP.STATE @@ -835,25 +846,18 @@ LA806 jsr BS.GetVolAtSxDy bcs LA849 LA80B lda GP.XCNUM - asl - tax + beq .8 - lda BS.KW.JMP,x - sta BS.KW.JMPADDR - lda BS.KW.JMP+1,x - sta BS.KW.JMPADDR+1 + cmp #25 PREFIX + beq .8 - clc - txa - beq LA844 - - eor #$32 - beq LA844 + cmp #34 CD + beq .8 lda GP.AllowedBITS+1 and #$04 - - beq LA844 + beq .8 + lda GP.FoundBITS lsr bcc LA844 @@ -871,6 +875,7 @@ LA80B lda GP.XCNUM lda #BS.E.PATHNFND6 rts +.8 clc LA844 jmp (BS.KW.JMPADDR) BS.SYNERR lda #BS.E.SYNTAX @@ -1100,7 +1105,7 @@ LA9AF lda BS.TMPBUF4,x rts LA9C1 jmp LA76C - +*-------------------------------------- BS.GetFTypeASC ldy #$00 LA9C6 sta BS.TMPBUF4,y @@ -1317,56 +1322,16 @@ BS.TMPBUF3x2 asl BS.TMPBUF4 rol BS.TMPBUF4+2 rts *-------------------------------------- -BS.IsIntCmd ldx #$1F - stx GP.XCNUM - lda BS.CMDBUF - eor #'-' - bne LAB03 +BS.IsIntCmd ldx #BSX.IsIntCmd.X + jsr BS.ToAUX - inc GP.XCNUM - sta GP.XLEN - bne LAB20 + bcc .8 -LAB03 ldy #$08 - sty GP.XLEN - -LAB08 lda BS.KW.LEN-1,x - bpl LAB13 - - and #$7F - dey - dec GP.XLEN - -LAB13 tax - -LAB14 lda BS.CMDBUF,y - jsr BS.ToUpper - cmp BS.KW.TABLE,x - bne LAB33 - - dex - dey - bpl LAB14 - -LAB20 lda GP.XCNUM - asl - tax - - lda BS.KW.PBITS-1,x - sta GP.AllowedBITS+1 - lda BS.KW.PBITS-2,x - sta GP.AllowedBITS - clc - rts - -LAB33 ldy GP.XLEN - dec GP.XCNUM - ldx GP.XCNUM - bne LAB08 - - dec GP.XCNUM + dec GP.XCNUM $ff sec jmp GP.EXTRNCMD + +.8 rts *-------------------------------------- BS.TMPBUF3Reset stz BS.TMPBUF4 stz BS.TMPBUF4+1 diff --git a/BASIC.FX/BASIC.S.C.txt b/BASIC.FX/BASIC.S.C.txt index 831eeadf..fce04986 100644 --- a/BASIC.FX/BASIC.S.C.txt +++ b/BASIC.FX/BASIC.S.C.txt @@ -377,12 +377,14 @@ LB087 lda #BS.E.NODEV *-------------------------------------- BS.KW.BYE jsr LB562 jsr LB36B + jsr BS.RAMReset * lda #$65 jsr MLI .DA #MLI.C.QUIT .DA GP.MLIRW *-------------------------------------- -BS.QUIT.IIgs jsr MLI +BS.QUIT.IIgs jsr BS.RAMReset + jsr MLI .DA #MLI.C.QUIT .DA .1 @@ -392,6 +394,25 @@ BS.QUIT.IIgs jsr MLI .DA #0 .DA 0 *-------------------------------------- +BS.RAMReset bit GP.CISPARE1 + bpl .8 + + php + sei + + sta IO.SETWRITEAUX + + lda #$FF + sta AUX.RAMSIG + dec + sta AUX.RAMSIG+1 Set $E000-$FEFF as BLOCK FREE + + sta IO.CLRWRITEAUX + + plp + +.8 rts +*-------------------------------------- BS.KW.CAT lda #$27 .HS 2C BIT ABS BS.KW.CATALOG lda #$4F @@ -417,8 +438,11 @@ LB0C1 jsr LB1BA jsr BS.LINEBUFOUT jsr MON.CROUT jsr BS.LINEBUFCLR80 - ldx #$10 - jsr BS.PRINTERRMSGX + + ldy #$10 + ldx #BSX.GetMSGY.X + jsr BS.ToAUX + jsr BS.LINEBUFOUT jsr MON.CROUT lda XBC14 @@ -510,8 +534,11 @@ LB157 ldx #BS.CMDBUF bcs LB127 jsr BS.LINEBUFCLR80 - ldx #$36 - jsr BS.PRINTERRMSGX + + ldy #$36 + ldx #BSX.GetMSGY.X + jsr BS.ToAUX + jsr BS.TMPBUF3Reset lda GP.FIAUXTYPE ldx GP.FIAUXTYPE+1 @@ -794,8 +821,8 @@ BS.KW.VERIFY bcs LB3B7 and #$01 bne LB38D - ldx #$00 - jsr BS.PRINTERRX + ldy #0 + jsr BS.GetMSGY jsr MON.CROUT LB38D clc @@ -944,7 +971,7 @@ LB481 inx BS.KW.NOMON clc rts - +*-------------------------------------- BS.CheckFilename lda GP.FoundBITS and #$01 @@ -1067,7 +1094,7 @@ LB53F stz MLI.LEVEL LB55E dec GP.OPENCNT rts - +*-------------------------------------- LB562 ldx GP.OPENCNT beq LB573 @@ -1479,101 +1506,66 @@ LB858 stx GP.SSGINFO BS.JMP.GP.VSYSO jmp (GP.VSYSO) BS.JMP.GP.VSYSI jmp (GP.VSYSI) *-------------------------------------- +BS.KW.MTR jsr BS.SetState0 + jsr MON.CLREOL + jmp MON.ENTERMON +*-------------------------------------- +BS.Expand2.P .DA #1 + .DA MLI.PATHBUF +*-------------------------------------- BS.Expand2PATHBUF - lda #1 - sta MLI.PATHBUF - lda #'/' set target path = 1/ - sta MLI.PATHBUF+1 -* >DEBUG - cmp BS.CMDBUF new path is absolute ? + stz MLI.PATHBUF reset target path + + lda BS.CMDBUF + cmp #'/' 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 +.1 ldx #BSX.Expand.X +*-------------------------------------- +BS.ToAUX stx .1+1 -.2 jsr BS.Expand.GetN - beq .8 + sei + + tsx + sta IO.SETALTZP + stx $100 + ldx $101 + txs - cmp #'.' - bne .6 + bit IO.RRAMWRAMBNK1 + bit IO.RRAMWRAMBNK1 - jsr BS.Expand.GetN - beq .9 + cli - 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 +.1 ldx #$FF SELF MODIFIED + jsr BSX.JMPX + + stx .3+1 + php + plx + stx .2+1 + + sei + + tsx + stx $101 + ldx $100 + txs + sta IO.CLRALTZP + + bit IO.RROMBNK1 + + cli + +.2 ldx #$FF SELF MODIFIED + phx +.3 ldx #$FF SELF MODIFIED + plp 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' bcc .9 diff --git a/BASIC.FX/BASIC.S.D.txt b/BASIC.FX/BASIC.S.D.txt index 2a889186..10c771f0 100644 --- a/BASIC.FX/BASIC.S.D.txt +++ b/BASIC.FX/BASIC.S.D.txt @@ -100,7 +100,7 @@ BS.AS.KW .DA #$80 .DA #$BE .DA #$BF *-------------------------------------- -BS.KW.LEN .DA #$47 +BS.KW.LEN.OLD .DA #$47 .DA #$5F .DA #$18 .DA #$30 @@ -132,9 +132,9 @@ BS.KW.LEN .DA #$47 .DA #$B5 .DA #$D8 *-------------------------------------- -BS.KW.TABLE .AS "BSAVERIFYBLOADELETEBYECATALOGOPENWRITEXECREATEFRESTORENAMEBRUNLOCKCHAIN#FLUSHREADPOSITIONOMONPR#PREFIXCLOSEAPPEND" +BS.KW.TABLE.OLD .AS "BSAVERIFYBLOADELETEBYECATALOGOPENWRITEXECREATEFRESTORENAMEBRUNLOCKCHAIN#FLUSHREADPOSITIONOMONPR#PREFIXCLOSEAPPEND" *-------------------------------------- -BS.KW.JMP .DA BS.JMP.XTRNADDR $00 +BS.KW.JMP.OLD .DA BS.JMP.XTRNADDR $00 .DA BS.KW.IN .DA BS.KW.PR .DA BS.KW.CAT @@ -168,7 +168,7 @@ BS.KW.JMP .DA BS.JMP.XTRNADDR $00 .DA BS.KW.POSITION .DA BS.KW.DASH $40 *-------------------------------------- -BS.KW.PBITS .DA $8040 IN +BS.KW.PBITS.OLD .DA $8040 IN .DA $8040 PR .DA $0495 CAT .DA $0000 FRE @@ -200,6 +200,7 @@ BS.KW.PBITS .DA $8040 IN .DA $0401 RESTORE .DA $0321 POSITION .DA $0401 DASH +*-------------------------------------- BS.KW.OPT .AS "ABELS@FRVD" *-------------------------------------- BS.WHICHBITS @@ -288,7 +289,11 @@ BS.BIERRTBL .DA #$03 .DA #$0C .DA #$08 *-------------------------------------- -BS.ERRCODES .DA #$54 +* .DA #$00 "Copyright..." (VERIFY with no arg) +* .DA #$10 CATALOG header +* .DA #$36 CATALOG footer +*-------------------------------------- +BS.TBL7.IDX.OLD .DA #$54 .DA #$5B .DA #$66 .DA #$6F @@ -309,13 +314,13 @@ BS.ERRCODES .DA #$54 .DA #$EC .DA #$F3 *-------------------------------------- -BS.TBL6 .AS -"ACDEFILMNORTU " +BS.TBL6.OLD .AS -"ACDEFILMNORTU " .DA #$00 *-------------------------------------- .DA #$00 .AS -"BGHKPSVWXY/().:" *-------------------------------------- -BS.TBL7 .DA #$2A +BS.TBL7.OLD .DA #$2A .DA #$05 .DA #$0A .DA #$B6 @@ -575,7 +580,7 @@ XBBB5 .BS 2 XBBB7 .BS 1 XBBB8 .BS 1 *-------------------------------------- -BS.IsIntCmdMTR ldy #$02 +BS.IsIntCmdMTR.OLD ldy #$02 LBBBB lda BS.CMDBUF,y cmp BS.MTR,y @@ -591,6 +596,7 @@ LBBBB lda BS.CMDBUF,y LBBCF jmp BS.IsIntCmd BS.MTR .AS "MTR" +*-------------------------------------- BS.IVERSION .DA #5 BS.AS.HIMEMSave .BS 1 diff --git a/BASIC.FX/BASIC.S.LDR.txt b/BASIC.FX/BASIC.S.LDR.txt index 9dd22e7f..4aa3bb0f 100644 --- a/BASIC.FX/BASIC.S.LDR.txt +++ b/BASIC.FX/BASIC.S.LDR.txt @@ -7,25 +7,51 @@ LDR.SIG .DA $EEEE LDR.STARTUP.LEN .DA #7 LDR.STARTUP .AS "STARTUP" .BS MLI.MAXPATH-7 -LDR.START1 lda #$9A - sta Ptr2+1 - lda #$24 - sta Ptr1+1 - lda #$00 - sta Ptr1 - sta Ptr2 - ldx #$23 - tay - jsr LDR.MoveXpages - ldx #$01 - lda #$BE - sta Ptr2+1 - jsr LDR.MoveXpages - lda #$15 - jsr MON.COUT +*-------------------------------------- +LDR.START1 ldx #$FF + txs + sta IO.SETALTZP + + stx $100 + stx $101 + + sta IO.CLRALTZP + + sta IO.CLR80DISP + sta IO.CLR80STORE + + bit IO.RROMBNK1 + + jsr MON.INIT + jsr MON.SETVID + jsr MON.SETKBD jsr MON.SETNORM - jsr MON.INIT - jsr MON.MON + jsr MON.HOME + + stz Ptr1 + stz Ptr2 + + lda /LDR.MAIN.SRC + sta Ptr1+1 + lda /LDR.MAIN.DST + sta Ptr2+1 + + ldx #$23 + jsr LDR.MoveXpages + + lda /LDR.GP.SRC + sta Ptr1+1 + lda /LDR.GP.DST + sta Ptr2+1 + + ldx #$01 + jsr LDR.MoveXpages + +* lda #$15 +* jsr MON.COUT +* jsr MON.SETNORM +* jsr MON.INIT +* jsr MON.HOME ldx #$17 @@ -43,13 +69,36 @@ LDR.START1 lda #$9A sta MLI.MEMTABL+22 lda #$C3 sta MLI.MEMTABL+23 - lda AS.COLDBOOT - cmp #$4C - bne .3 + +* lda AS.COLDBOOT +* cmp #$4C +* bne .3 lda MLI.MACHID - and #$20 - beq .3 + and #$30 + cmp #$30 128k Only + bne .3 + + jsr LDR.ShrinkRAM + bcs .3 + + bit IO.RRAMWRAMBNK2 + bit IO.RRAMWRAMBNK2 + sta IO.SETALTZP + + stz Ptr1 + stz Ptr2 + + lda /LDR.AUX.SRC + sta Ptr1+1 + lda /LDR.AUX.DST + sta Ptr2+1 + + ldx #$10 + jsr LDR.MoveXpages + + sta IO.CLRALTZP + bit IO.RROMBNK2 ldx #$03 @@ -59,8 +108,8 @@ LDR.START1 lda #$9A bpl .2 jmp AS.COLDBOOT - -.3 ldx #$27 +*-------------------------------------- +.3 ldx #LDR.UNABLE.L-1 .4 lda LDR.UNABLE,x sta $628,x @@ -72,19 +121,20 @@ LDR.START1 lda #$9A bmi * *-------------------------------------- -LDR.MoveXpages dey - lda (Ptr1),y +LDR.MoveXpages ldy #0 + +.1 lda (Ptr1),y sta (Ptr2),y - tya - bne LDR.MoveXpages + iny + bne .1 inc Ptr1+1 inc Ptr2+1 dex - bne LDR.MoveXpages + bne .1 L20D3 rts - +*-------------------------------------- LDR.CSW cmp #$DD bne L20D3 @@ -133,6 +183,7 @@ L2115 iny sta AS.HIMEM+1 sta AS.STRINGSTART+1 sta GP.RSHIMEM + lda MLI.PFIXPTR beq L214E @@ -142,7 +193,7 @@ L2115 iny bne L218B ldx MLI.PATHBUF - lda #$2F + lda #'/' L2136 cmp MLI.PATHBUF,x bne L213E @@ -164,7 +215,7 @@ L214E jsr MLI .DA #MLI.C.ONLINE .DA LDR.ONLINE.P bne L218B - + lda MLI.PATHBUF+1 and #$0F beq L218B @@ -207,17 +258,18 @@ L2198 lda LDR.STARTUP.LEN1 bne L21C1 jsr LDR.KSW - ldx #$1C + + ldx #LDR.PRODOSBASIC.L-1 L21A2 lda LDR.PRODOSBASIC,x - sta $400,x + sta $400+12,x dex bpl L21A2 - ldx #$1F + ldx #LDR.COPYRIGHT.L-1 L21AD lda LDR.COPYRIGHT,x - sta $480,x + sta $480+9,x dex bpl L21AD @@ -227,6 +279,7 @@ L21AD lda LDR.COPYRIGHT,x jsr MON.COUT1 L21C1 ldx #$02 + L21C3 lda LDR.JMP.GP.ENTRY,x sta DOS.WARMSTART,x sta DOS.COLDSTART,x @@ -236,30 +289,28 @@ L21C3 lda LDR.JMP.GP.ENTRY,x dex bpl L21C3 - lda LDR.BRKVECT + lda #MON.BREAKV sta MON.BRKVECT - lda LDR.BRKVECT+1 + lda /MON.BREAKV sta MON.BRKVECT+1 - lda LDR.POWERUP + lda #GP.ENTRY sta MON.POWERUP - lda LDR.POWERUP+1 + lda /GP.ENTRY sta MON.POWERUP+1 eor #$A5 sta MON.POWERUPBYTE + lda #$A5 sta AS.TRCFLG + lda BS.IVERSION sta MLI.IVERSION LDR.JMP.GP.ENTRY jmp GP.ENTRY - -LDR.BRKVECT .DA MON.BREAKV -LDR.POWERUP .DA GP.ENTRY - LDR.AMPERSANDJMP jmp GP.DOSCMD - +*-------------------------------------- LDR.KSW lda GP.INVECT0 sta ZP.KSW lda GP.INVECT0+1 @@ -268,14 +319,114 @@ LDR.KSW lda GP.INVECT0 inx lda #$8D rts +*-------------------------------------- +LDR.ShrinkRAM lda MLI.DEVPTRS3D2 + ldx MLI.DEVPTRS3D2+1 + cmp MLI.DEVPTRS S0D1=NOVEV + bne .1 + + cpx MLI.DEVPTRS+1 S0D1=NODEV + beq .8 S3D2=NODEV, nothing to do + +.1 cmp #$00 $FF00 = ProODS /RAM driver + bne .8 + + cpx #$FF + bne .8 + + ldx MLI.DEVCNT + +.2 lda MLI.DEVLST,x LOOKING FOR $BF + cmp #$BF + beq .3 + + dex + bpl .2 + +.9 sec No $BF device found at S3D2 + rts dont use LC !!!! + +.8 clc + rts + +.3 cpx MLI.DEVCNT + beq .5 + +.4 lda MLI.DEVLST+1,x + sta MLI.DEVLST,x + inx + cpx MLI.DEVCNT + bne .4 + + ldx MLI.DEVCNT + +.5 stz MLI.DEVLST,x + dec MLI.DEVCNT + + jsr LDR.ONLINE + + ldx #LDR.ZPCODE.L-1 + +.6 lda LDR.ZPCODE,x + sta ZPCode,x + dex + bpl .6 + + ldx #LDR.RAMSIG.L-1 + +.7 jsr ZPCode + cmp LDR.RAMSIG,x + bne .9 Bad signature !!!! + + dex + bpl .7 + + dec GP.CISPARE1 Tell BYE to reset that... + + php + sei + + sta IO.SETWRITEAUX + + stz AUX.RAMSIG + stz AUX.RAMSIG+1 Set $E000-$FFFF as BLOCK USED + + sta IO.CLRWRITEAUX + + plp + + ldx MLI.DEVCNT + lda #$BF + sta MLI.DEVLST,x + inc MLI.DEVCNT +*-------------------------------------- +LDR.ONLINE jsr MLI + .DA #MLI.C.ONLINE + .DA .1 + rts + +.1 .DA #2 + .DA #0 + .DA $1F00 +*-------------------------------------- +LDR.ZPCODE sta IO.SETREADAUX + lda AUX.RAMSIG,x + sta IO.CLRREADAUX + rts +LDR.ZPCODE.L .EQ *-LDR.ZPCODE +*-------------------------------------- +LDR.RAMSIG .HS FFFE BITMAP for Blocks $70-$7F (LC $D000-FFFF) + .HS F3 storage type = F, name length = 3 + .AS "RAM" +LDR.RAMSIG.L .EQ *-LDR.RAMSIG +*-------------------------------------- LDR.CSWVECT .DA LDR.CSW LDR.KSWVECT .DA LDR.KSW LDR.GFINFO.P .DA #10 .DA LDR.STARTUP.LEN - .BS 16 - +*-------------------------------------- LDR.GETSETPFX1.P .DA #1 .DA LDR.GETSETPFX1.SLASH @@ -284,20 +435,27 @@ LDR.GETSETPFX1.SLASH .AS "/" LDR.STARTUP.LEN1 .DA #0 -LDR.ONLINE.P - .DA #2 +*-------------------------------------- +LDR.ONLINE.P .DA #2 LDR.ONLINE.P.DEVNUM .DA #$70 -LDR.ONLINE.P.BUF .DA MLI.PATHBUF+1 +*-------------------------------------- LDR.GETSETPFX2.P .DA #1 .DA MLI.PATHBUF LDR.PFXLEN .DA #0 - +*-------------------------------------- LDR.UNABLE .AS -"*** UNABLE TO EXECUTE BASIC SYSTEM ***" -LDR.PRODOSBASIC .AS -" PRODOS BASIC FX" -LDR.COPYRIGHT .AS -" COPYRIGHT APPLE 1983-92" +LDR.UNABLE.L .EQ *-LDR.UNABLE +LDR.PRODOSBASIC .AS -"PRODOS BASIC FX" +LDR.PRODOSBASIC.L .EQ *-LDR.PRODOSBASIC +LDR.COPYRIGHT .AS -"COPYRIGHT APPLE 1983-92" +LDR.COPYRIGHT.L .EQ *-LDR.COPYRIGHT + + .LIST ON +LDR.SIZE .EQ *-LDR.START + .LIST OFF .BS $2400-* *-------------------------------------- MAN diff --git a/BASIC.FX/BASIC.S.txt b/BASIC.FX/BASIC.S.txt index 9b0efa3e..2fc0b212 100644 --- a/BASIC.FX/BASIC.S.txt +++ b/BASIC.FX/BASIC.S.txt @@ -55,6 +55,7 @@ CMDBITS1.V .EQ $00 ;Volume number ignored *-------------------------------------- Ptr1 .EQ 0 Ptr2 .EQ 2 +ZPCode .EQ 4 ZP.WNDLFT .EQ $20 ZP.WNDWDT .EQ $21 @@ -108,6 +109,8 @@ DIRENTBUF.AUXT .EQ $278 MLI.PATHBUF .EQ $280 *-------------------------------------- +AUX.RAMSIG .EQ $3D0 FFFEF3+"RAM" +*-------------------------------------- DOS.WARMSTART .EQ $03D0 DOS.COLDSTART .EQ $03D3 DOS.FILEMGR .EQ $03D6 @@ -155,6 +158,8 @@ MLI.C.SETBUF .EQ $D2 MLI.C.GETBUF .EQ $D3 *-------------------------------------- MLI .EQ $BF00 +MLI.DEVPTRS .EQ $BF10 +MLI.DEVPTRS3D2 .EQ $BF26 MLI.DEVNUM .EQ $BF30 MLI.DEVCNT .EQ $BF31 MLI.DEVLST .EQ $BF32 @@ -166,8 +171,22 @@ MLI.PFIXPTR .EQ $BF9A MLI.MLIACTV .EQ $BF9B MLI.IVERSION .EQ $BFFD *-------------------------------------- -IO.KBD .EQ $C000 -IO.KSTROBE .EQ $C010 +IO.KBD .EQ $C000 R +IO.CLR80STORE .EQ $C000 W +IO.SET80STORE .EQ $C001 W +IO.CLRREADAUX .EQ $C002 W +IO.SETREADAUX .EQ $C003 W +IO.CLRWRITEAUX .EQ $C004 W +IO.SETWRITEAUX .EQ $C005 W +IO.CLRALTZP .EQ $C008 W +IO.SETALTZP .EQ $C009 W +IO.CLR80DISP .EQ $C00C W +IO.SET80DISP .EQ $C00D W +IO.KSTROBE .EQ $C010 W +IO.RROMBNK2 .EQ $C082 R +IO.RRAMWRAMBNK2 .EQ $C083 RR +IO.RROMBNK1 .EQ $C08A R +IO.RRAMWRAMBNK1 .EQ $C08B RR *-------------------------------------- AS.RESTART .EQ $D43C AS.RESTART1 .EQ $D43F @@ -182,7 +201,7 @@ AS.INTPRINTAX .EQ $ED24 *-------------------------------------- MON.BREAKV .EQ $FA59 MON.INIT .EQ $FB2F -MON.MON .EQ $FC58 +MON.HOME .EQ $FC58 MON.CLREOL .EQ $FC9C MON.RDKEY .EQ $FD0C MON.KEYIN0 .EQ $FD10 @@ -194,18 +213,26 @@ MON.COUT1 .EQ $FDF0 MON.IIGSID .EQ $FE1F MON.SETINV .EQ $FE80 MON.SETNORM .EQ $FE84 +MON.SETKBD .EQ $FE89 +MON.SETVID .EQ $FE93 MON.ENTERMON .EQ $FF69 *-------------------------------------- .INB usr/src/basic.fx/basic.s.ldr -LDR.9A00.CODE .PH $9A00 +LDR.MAIN.SRC .PH $9A00 +LDR.MAIN.DST .EQ * .INB usr/src/basic.fx/basic.s.a .INB usr/src/basic.fx/basic.s.b .INB usr/src/basic.fx/basic.s.c .INB usr/src/basic.fx/basic.s.d .EP -LDR.BE00.CODE .PH $BE00 +LDR.GP.SRC .PH $BE00 +LDR.GP.DST .EQ * .INB usr/src/basic.fx/basic.s.gp .EP +LDR.AUX.SRC .PH $E000 +LDR.AUX.DST .EQ * + .INB usr/src/basic.fx/basic.s.x + .EP *-------------------------------------- MAN SAVE usr/src/basic.fx/basic.s diff --git a/DRV/UTHER2.AI.DRV.S.txt b/DRV/UTHER2.AI.DRV.S.txt index 34f647b8..1af87ab1 100644 --- a/DRV/UTHER2.AI.DRV.S.txt +++ b/DRV/UTHER2.AI.DRV.S.txt @@ -299,7 +299,7 @@ OPEN.I jsr CLOSE cpy #4 bne .2 -* >AR.SELECT SUBR Implicit, next to GAR + >AR.SELECT SUBR Implicit, next to GAR ldy #0 @@ -340,12 +340,12 @@ OPEN.I jsr CLOSE inc Sn.IO - ldy #S.IP.PROTOCOL.UDP + ldy #S.IP.PROTOCOL.TCP jsr OPEN.SnY inc Sn.IO - ldy #S.IP.PROTOCOL.TCP + ldy #S.IP.PROTOCOL.UDP jsr OPEN.SnY lda #S.DIB.S.OPENED @@ -354,43 +354,53 @@ OPEN.I jsr CLOSE clc rts *-------------------------------------- -OPEN.SnY >AR.Sn.SELECT S0.MR +OPEN.SnY phy + >AR.Sn.SELECT S0.MR lda #W5100.AR.Sn.MR.IPRAW sta W5100.DR,x + >AR.Sn.SELECT S0.PORT + stz W5100.DR,x + stz W5100.DR,x + + >AR.Sn.SELECT S0.DHAR + + ldy #6 DHAR + lda #$EE + +.1 sta W5100.DR,x + dey + bne .1 + + >AR.Sn.SELECT S0.DIPR + + ldy #4 DIPR + lda #10 + +.2 sta W5100.DR,x + dey + bne .2 + + >AR.Sn.SELECT S0.DPORT + stz W5100.DR,x + stz W5100.DR,x + >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 + >AR.Sn.SELECT S0.PROTO + pla sta W5100.DR,x -* >AR.Sn.SELECT Sn.TOS + >AR.Sn.SELECT S0.TOS stz W5100.DR,x -* >AR.Sn.SELECT Sn.TTL + >AR.Sn.SELECT S0.TTL lda #K.IP.TTL 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 lda #W5100.AR.Sn.CR.OPEN @@ -753,6 +763,17 @@ WRITE php ldx DEVSLOTx0 + >AR.Sn.SELECT S0.DIPR + + ldy #S.IP.DST + +.1 lda (ZPBufPtr),y + lda #10 + sta W5100.DR,x + iny + cpy #S.IP.DST+4 + bne .1 + >AR.Sn.SELECT S0.TX.FSR lda W5100.DR,x get send size HI ldy W5100.DR,x LO @@ -760,16 +781,6 @@ WRITE php sbc RXTX.Size+1 bcc READWRITE.NODATA - >AR.Sn.SELECT S0.DIPR - - ldy #S.IP.DST - -.1 lda (ZPBufPtr),y - sta W5100.DR,x - iny - cpy #S.IP.DST+4 - bne .1 - >AR.Sn.SELECT S0.TX.WR lda W5100.DR,x Get HI ldy W5100.DR,x Get LO @@ -827,7 +838,7 @@ GET.IOCTLBUFPTR >STYA ZPIOCTL *-------------------------------------- DRV.CS.END Sn.cnt .EQ 4 -Sn.IP.PROTOCOL .DA #0,#S.IP.PROTOCOL.ICMP,#S.IP.PROTOCOL.UDP,#S.IP.PROTOCOL.TCP +Sn.IP.PROTOCOL .DA #0,#S.IP.PROTOCOL.ICMP,#S.IP.PROTOCOL.TCP,#S.IP.PROTOCOL.UDP Sn.IO.BASE .DA /W5100.AR.S0.MR,/W5100.AR.S1.MR,/W5100.AR.S2.MR,/W5100.AR.S3.MR Sn.TX.BASE .DA /TX.BASE,/TX.BASE+$800,/TX.BASE+$1000,/TX.BASE+$1800 Sn.RX.BASE .DA /RX.BASE,/RX.BASE+$800,/RX.BASE+$1000,/RX.BASE+$1800 diff --git a/INC/NIC.W5100.I.txt b/INC/NIC.W5100.I.txt index d0e4c691..7ec0ebb4 100644 --- a/INC/NIC.W5100.I.txt +++ b/INC/NIC.W5100.I.txt @@ -70,8 +70,8 @@ W5100.AR.S0.DIPR .EQ $040C W5100.AR.S0.DPORT .EQ $0410 W5100.AR.S0.MSSR .EQ $0412 W5100.AR.S0.PROTO .EQ $0414 -*W5100.AR.S0.TOS .EQ $0415 -*W5100.AR.S0.TTL .EQ $0416 +W5100.AR.S0.TOS .EQ $0415 +W5100.AR.S0.TTL .EQ $0416 W5100.AR.S0.TX.FSR .EQ $0420 W5100.AR.S0.TX.RD .EQ $0422 W5100.AR.S0.TX.WR .EQ $0424 diff --git a/ProDOS.FX/ProDOS.S.RAM.txt b/ProDOS.FX/ProDOS.S.RAM.txt index fc0cd41f..eddbea02 100644 --- a/ProDOS.FX/ProDOS.S.RAM.txt +++ b/ProDOS.FX/ProDOS.S.RAM.txt @@ -76,6 +76,6 @@ a1l1 .BS 13 13 bytes of storage *-------------------------------------- RAM.LEN .EQ *-RAM.START MAN -SAVE USR/SRC/PRODOS.FX/PRODOS.S.RAM -LOAD USR/SRC/PRODOS.FX/PRODOS.S +SAVE usr/src/prodos.fx/prodos.s.ram +LOAD usr/src/prodos.fx/prodos.s ASM diff --git a/ProDOS.FX/ProDOS.S.RAMX.txt b/ProDOS.FX/ProDOS.S.RAMX.txt index 5953f599..d9ab032d 100644 --- a/ProDOS.FX/ProDOS.S.RAMX.txt +++ b/ProDOS.FX/ProDOS.S.RAMX.txt @@ -20,35 +20,45 @@ RAMX.START lda RD80STORE read 80 store pha save for later sta CLR80STORE turn off 80 store ldx #$04 move the parameters for use: + L5109 lda A4L,x cmd, unit, bufptr and block (lo) sta tcmd,x -> tcmd, tunit, R2L, R2H, R01 dex bpl L5109 + and formatflg format the volume first time bne L514F thru, or when requested. + ldx bloknml save R01 during format. lda /vblock1 block to be cleared. jsr clrbuf1 clears all buffers. ldy #$03 format volume in 2 chunks. + L511F lda VDIR,y sta vblock1+4,y dey bpl L511F + lda #$FE set last block as unusable sta BITMAP+15 to protect vectors. tya set bitmap bits to $FF. ldy #$0E 15 bytes to set + L5130 sta BITMAP,y dey bne L5130 + sty BITMAP first byte = 0. ldy #$07 do other chunk + L513B lda access,y sta vblock1+34,y dey bpl L513B + lda formatflg if 0, set to $FF bne L51AA else exitcard. + sty formatflg y = $FF, won't format next time. stx R01 restore R01 @@ -59,9 +69,12 @@ L514F asl R01 block requested -> page requested. lda R01 get page requested. cmp #$BF in language card ? bcs L5163 yes, do it. + cmp #$06 bitmap ? bne L5160 + jmp tbmap yes, transfer bitmap + L5160 jmp treg else normal transfer. * when a block between $60 and $7F is requested, it must be spirited into/from @@ -72,13 +85,17 @@ L5163 tax save R1 for later. jsr setptr get direction php and save it. bcs L51B8 if it's a write. + lcrd txa get R1 back cmp #$CF which bank is it in ? bcs L5173 in main bank. + ora #$10 in secondary bank. bne L5179 branch always. + L5173 sta RRAMWRAMBNK2 turn on main $D000 sta RRAMWRAMBNK2 + L5179 sta R01 restore R1. lda R2H save R2 for later pha @@ -90,22 +107,28 @@ L5179 sta R01 restore R1. sta R2L jsr setptr set pointers tay A > 0 from setptr + L5194 lda (A1L),y move A1,A2 to A4,A3 sta (A4L),y lda (A2L),y sta (A3L),y dey bne L5194 + sta CLRALTZP use main zero page/stack + L51A2 stx R2L pla restore R2 sta R2H plp get direction. L51AA bcs L51B5 write, done with move. + sta RRAMWRAMBNK1 switch in MLI part of LC sta RRAMWRAMBNK1 jsr blockdo0 read, transfer dbuf to main + L51B5 jmp exitcard + L51B8 jsr blockdo0 transfer main to dbuf. jmp lcrd transfer dbuf to language card @@ -116,18 +139,24 @@ L51B8 jsr blockdo0 transfer main to dbuf. * write is done (R2->R1); if cmd is 1, a read is done (R1->R2). blockdo0 lda /dbuf set up R1 = dbuf + blockdo1 sta R01 + blockdo jsr setptr set pointers. bcs L51DB it's a write. + sta CLRWRITEAUX transfer buffer directly to main. tay 0 left from setptr. + L51CC lda (A1L),y transfer A1,A2 to A4,A3 sta (A4L),y lda (A2L),y sta (A3L),y dey bne L51CC + sta SETWRITEAUX back the way it was. + donewrt rts mainwrt returns here L51DB lda #mainwrt pointers set up, @@ -140,6 +169,7 @@ L51DB lda #mainwrt pointers set up, setptr lda tcmd is it read or write ? lsr bcs L5208 taken if write. + lda R2H destination page sta A4L+1 sta A3L+1 @@ -153,6 +183,7 @@ setptr lda tcmd is it read or write ? sta A1L sta A2L beq L5223 + L5208 lda R2H source page sta A1L+1 sta A2L+1 @@ -165,6 +196,7 @@ L5208 lda R2H source page lda #$00 destination page aligned sta A4L sta A3L + L5223 inc A2L+1 inc A3L+1 rts @@ -180,13 +212,17 @@ tzip jsr clrbuf0 fill dbuf with 0's * should only be called on a read or format. clrbuf0 lda /dbuf dbuf is temp buffer. + clrbuf1 sta R01 assign to block. + clrbuf2 jsr setptr set pointers tay acc = 0 + L523A sta (A1L),y sta (A2L),y dey bne L523A + rts * treg maps the requested block into the aux card @@ -195,14 +231,18 @@ L523A sta (A1L),y treg cmp #$04 page 4 = vdir bne L524A not vdir, continue + lda #$07 else transfer block 7 bne L5258 + L524A cmp #$0F if any page < $F (block 8) requested, bcc tzip it is invalid. + ldx #$00 x = # of iterations. lda bloknml use true block #. cmp #$5D beyond 8k blocks ? bcc L525B no, do normal + sbc #$50 else subtract offset L5258 jmp times2 and multiply by 2 @@ -211,12 +251,16 @@ L5258 jmp times2 and multiply by 2 L525B sec sbc #$08 block=block-6 + L525E cmp #$11 if <=17 then done bcc L5268 + sbc #$11 else block=block-17. inx iteration count. bpl L525E should branch always + brk otherwise crash !!! + L5268 tay remainder in y * if remainder is 1 then it's an index block: @@ -228,10 +272,12 @@ L5268 tay remainder in y cpy #$01 is it index block ? bne L5273 no. + txa index = 2 * (8 + x) clc adc #$08 bne times2 multiply by 2. + L5273 inx iteration + 1. txa page = 2 * (16 + 8x) asl @@ -241,10 +287,13 @@ L5273 inx iteration + 1. sta R01 tya get offset into 8k chunk beq L5281 if 0, no offset + dey else offset = 2 * y tya + L5281 clc adc R01 + times2 asl acc = 2 * acc jsr blockdo1 store in R01 and transfer jmp exitcard and return @@ -257,21 +306,27 @@ tbmap lda /dbuf use temp buffer as block sta R01 jsr setptr set pointers, test read/write. bcs L52A9 branch if it's write. + jsr clrbuf2 ldy #$0F put real bitmap there + L529B lda BITMAP,y sta (A1L),y dey bpl L529B + jsr blockdo move temp buf to user buf jmp exitcard + L52A9 jsr blockdo move user buf to temp buf jsr setptr ldy #$0F move temp buf to bitmap. + L52B1 lda (A4L),y (pointer set by setptr) sta BITMAP,y dey bpl L52B1 + jmp exitcard formatflg .HS 00 not formatted yet @@ -297,8 +352,10 @@ exitcard lda RRAMWRAMBNK1 restore language card lda RRAMWRAMBNK1 pla get 80store bpl L52EA 80store wasn't on + sta SET80STORE enable 80store L52EA jmp bypass jump around passit + passit .HS 0000 bypass lda #noerr set up return to noerr sta passit @@ -310,6 +367,6 @@ ex1 sta passit+1 also used by blockwrite *-------------------------------------- RAMX.LEN .EQ *-RAMX.START MAN -SAVE USR/SRC/PRODOS.FX/PRODOS.S.RAMX -LOAD USR/SRC/PRODOS.FX/PRODOS.S +SAVE usr/src/prodos.fx/prodos.s.ramx +LOAD usr/src/prodos.fx/prodos.s ASM