From afc4e61dc98dc05783c0f002068da4e0c329c41f Mon Sep 17 00:00:00 2001 From: burniouf Date: Tue, 19 Apr 2022 20:24:34 +0200 Subject: [PATCH] ProDOS.FX:XCLK support, PM.VEDRIVE --- .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 | 14 +- BASIC.FX/BASIC.S.B.txt | 2 +- BASIC.FX/BASIC.S.C.txt | 4 +- BASIC.FX/BASIC.S.X.txt | 1374 +++++++++++++++++++++++++++++++++++ BIN/IRC.S.TLS.txt | 131 ++++ BIN/IRC.S.txt | 85 +-- INC/IO.D2.I.txt | 8 +- LIB/LIBBLKDEV.S.BB.txt | 5 +- LIB/LIBBLKDEV.S.D2.txt | 8 +- ProDOS.FX/ProDOS.S.LDR.txt | 34 +- ProDOS.FX/ProDOS.S.XCLK.txt | 100 +++ ProDOS.FX/ProDOS.S.XRW.txt | 8 +- ProDOS.FX/ProDOS.S.txt | 9 +- SYS/PM.VEDRIVE.S.BK.txt | 408 +++++++++++ SYS/PM.VEDRIVE.S.GS.txt | 46 +- SYS/PM.VEDRIVE.S.IP.txt | 49 +- SYS/PM.VEDRIVE.S.U1.txt | 148 +++- SYS/PM.VEDRIVE.S.U2.txt | 60 +- SYS/PM.VEDRIVE.S.txt | 433 +++-------- SYS/PM.VSDRIVE.S.txt | 4 +- 23 files changed, 2444 insertions(+), 486 deletions(-) create mode 100644 BASIC.FX/BASIC.S.X.txt create mode 100644 BIN/IRC.S.TLS.txt create mode 100644 ProDOS.FX/ProDOS.S.XCLK.txt create mode 100644 SYS/PM.VEDRIVE.S.BK.txt diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 38f30e633c0ad00e7c3d7892d4353073bf711062..6979d4e09eb4c2c6b1eb453baf24cb7c4551f28e 100644 GIT binary patch delta 80485 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 WzXN{&e*%92e*^!--NpZnbNv@Cm$*v+ delta 76824 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 JF9yBy{{TE98>#>R delta 25704 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 Jw#$Fh{|APTyHfxF diff --git a/.Floppies/ProDOSFX.BOOT.po b/.Floppies/ProDOSFX.BOOT.po index 265784494cb296d0521afc66e94ecf8fea706932..bca777065b8fe07bf4d5e25ecc44f028948582b4 100644 GIT binary patch delta 18714 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" +*-------------------------------------- +BSX.MkCatLineF jsr BS.LINEBUFCLR80 + + ldy #$36 + jsr BSX.GetMSGY + + jsr BS.TMPBUF3Reset + lda GP.FIAUXTYPE + ldx GP.FIAUXTYPE+1 + ldy #$3D + jsr BSX.AXDEC2LINEBUFY + lda GP.FIBLOKS + ldx GP.FIBLOKS+1 + ldy #$26 + jsr BSX.AXDEC2LINEBUFY + lda GP.FIAUXTYPE + sec + sbc GP.FIBLOKS + pha + lda GP.FIAUXTYPE+1 + sbc GP.FIBLOKS+1 + tax + pla + ldy #$10 + jsr BSX.AXDEC2LINEBUFY + + clc + rts +*-------------------------------------- +BSX.AHEX2LINEBUFY + pha + and #$0F + jsr LA62B + pla + lsr + lsr + lsr + lsr + +LA62B ora #$B0 + cmp #$BA + bcc LA633 + + adc #$06 + +LA633 sta IO.LINEBUF+1,y + dey + lda #$A4 + sta IO.LINEBUF+1,y + rts +*-------------------------------------- +BSX.AXDEC2LINEBUFY + stx BS.TMPBUF4+1 + sta BS.TMPBUF4 + +.1 jsr .2 + + lda BS.TMPBUF4+3 + ora #$B0 + sta IO.LINEBUF+1,y + dey + lda BS.TMPBUF4 + ora BS.TMPBUF4+1 + ora BS.TMPBUF4+2 + bne .1 + + rts + +.2 ldx #$18 + lda #$00 + sta BS.TMPBUF4+3 + +.3 jsr BS.TMPBUF3x2 + rol BS.TMPBUF4+3 + sec + lda BS.TMPBUF4+3 + sbc #$0A + bcc .4 + + sta BS.TMPBUF4+3 + inc BS.TMPBUF4 + +.4 dex + bne .3 + + rts +*-------------------------------------- +BSX.PRODOSTYPES.H + .DA #$FF + .DA #$FE + .DA #$FD + .DA #$FC + .DA #$FB + .DA #$FA + .DA #$F0 + .DA #$0F + .DA #$06 + .DA #$04 + .DA #$EF + .DA #$1A + .DA #$1B + .DA #$19 + .DA #$B3 +BSX.PRODOSTYPES.ASC + .AS -"S16ADBASPAWPPASTXTBINDIRCMDINTIVRBASVARRELSYS" +*-------------------------------------- +BSX.ToUpper cmp #'a' + bcc .9 + + cmp #'z'+1 + bcs .9 + + eor #$20 + +.9 rts +*-------------------------------------- + .LIST ON +BSX.SIZE .EQ *-BSX.JMPX + .LIST OFF + + .BS $F000-* +*-------------------------------------- +MAN +SAVE usr/src/basic.fx/basic.s.x +LOAD usr/src/basic.fx/basic.s +ASM diff --git a/BIN/IRC.S.TLS.txt b/BIN/IRC.S.TLS.txt new file mode 100644 index 00000000..90ec01fc --- /dev/null +++ b/BIN/IRC.S.TLS.txt @@ -0,0 +1,131 @@ +NEW + AUTO 3,1 +*-------------------------------------- +CS.RUN.TLS jsr CS.RUN.TLS.init + + >PUSHB hSocket + >PUSHW L.TLS.CHELLO + >PUSHWI TLS.CHELLO.L + >LIBCALL hLIBTCPIP,LIBTCPIP.Write + bcs .9 + + lda #TIMEOUT.MAX + sta TimeOut + +.1 jsr CS.RUN.TLS.Read + bcc .2 + + ldx TimeOut + bne .1 + + lda #MLI.E.IO + bra .9 + +.2 + >DEBUG + + bra .1 + + + + + +.9 pha + >LDYA L.MSG.TLSKO + >SYSCALL PutS + pla + sec + rts +*-------------------------------------- +CS.RUN.TLS.init >LDYA L.MSG.TLS + >SYSCALL PutS + + lda A2osX.RANDOM16 + sta ZPPtr1 + lda A2osX.RANDOM16+1 + and #$7F + sta ZPPtr1+1 + + >LDYA L.TLS.CHELLO.UT + >STYA ZPPtr2 + + ldy #31 + +.10 lda (ZPPtr1),y + sta (ZPPtr2),y + dey + bpl .10 + + lda #50 + sta TimeOut + + rts +*-------------------------------------- +CS.RUN.TLS.Read >SLEEP + + >PUSHB hSocket + >PUSHW ZPBufPtr + >PUSHWI 11 + >LIBCALL hLIBTCPIP,LIBTCPIP.Read + bcs .99 + + cpy #11 + bne .9 + + ldy #TLS.HDR.L-1 + +.1 lda (ZPBufPtr),y + cmp TLS.HDR,y + bne .9 + + dey + bpl .1 + + >PUSHW L.MSG.TLS.HDR + ldy #TLS.LENGTH + lda (ZPBufPtr),y + >PUSHA + iny + lda (ZPBufPtr),y + >PUSHA + + ldy #TLS.HS.MT + lda (ZPBufPtr),y + >PUSHA + + >PUSHBI 3 + >SYSCALL PrintF + + >SLEEP + + >PUSHB hSocket + >PUSHW ZPBufPtr + ldy #TLS.LENGTH+1 + lda (ZPBufPtr),y + sec + sbc #6 + tax + + dey + lda (ZPBufPtr),y + sbc #0 + >PUSHA + + txa + >PUSHA + + >LIBCALL hLIBTCPIP,LIBTCPIP.Read + bcs .99 + + >STYA ZPPtr2 RCVD len + +.99 rts + +.9 lda #MLI.E.IO + sec + rts +*-------------------------------------- +MAN +SAVE usr/src/bin/irc.s.tls +LOAD usr/src/bin/irc.s +ASM diff --git a/BIN/IRC.S.txt b/BIN/IRC.S.txt index 1f83b39b..9bc97ea4 100644 --- a/BIN/IRC.S.txt +++ b/BIN/IRC.S.txt @@ -5,11 +5,12 @@ NEW .OR $2000 .TF bin/irc *-------------------------------------- -TLS .EQ 0 +TLS .EQ 1 *-------------------------------------- .INB inc/macros.i .INB inc/a2osx.i .INB inc/mli.i + .INB inc/mli.e.i .INB inc/eth.i .INB inc/libtcpip.i .DO TLS=1 @@ -120,7 +121,7 @@ J.ESC .DA CS.RUN.CHARIN.LEFT .DA CS.RUN.CHARIN.RIGHT .DO TLS=1 L.MSG.TLS .DA MSG.TLS -L.MSG.TLS.1 .DA MSG.TLS.1 +L.MSG.TLS.HDR .DA MSG.TLS.HDR L.MSG.TLSKO .DA MSG.TLSKO L.TLS.CHELLO .DA TLS.CHELLO L.TLS.CHELLO.UT .DA TLS.CHELLO.UT @@ -283,7 +284,7 @@ CS.RUN.CheckArgs rts *-------------------------------------- CS.RUN.GetBuffers - >LDYAI 2048 + >LDYAI 5120 >SYSCALL GetMem bcs .9 @@ -353,73 +354,6 @@ CS.RUN.Connect >PUSHBI S.SOCKET.T.STREAM >PUSHBI 0 >SYSCALL PrintF rts -*-------------------------------------- - .DO TLS=1 -CS.RUN.TLS jsr CS.RUN.TLS.init - - >PUSHB hSocket - >PUSHW L.TLS.CHELLO - >PUSHWI TLS.CHELLO.L - >LIBCALL hLIBTCPIP,LIBTCPIP.Write - bcs .9 - - lda #TIMEOUT.MAX - sta TimeOut - -.1 >SLEEP - - >PUSHB hSocket - >PUSHW ZPBufPtr - >PUSHWI 2048 - >LIBCALL hLIBTCPIP,LIBTCPIP.Read - bcc .2 - - ldx TimeOut - bne .1 - - bra .9 - -.2 >STYA ZPPtr2 RCVD len - >PUSHW L.MSG.TLS.1 - >PUSHW ZPPtr2 - >PUSHBI 2 - >SYSCALL PrintF - - sec - rts - -.9 pha - >LDYA L.MSG.TLSKO - >SYSCALL PutS - pla - sec - rts -*-------------------------------------- -CS.RUN.TLS.init >LDYA L.MSG.TLS - >SYSCALL PutS - - lda A2osX.RANDOM16 - sta ZPPtr1 - lda A2osX.RANDOM16+1 - and #$7F - sta ZPPtr1+1 - - >LDYA L.TLS.CHELLO.UT - >STYA ZPPtr2 - - ldy #31 - -.10 lda (ZPPtr1),y - sta (ZPPtr2),y - dey - bpl .10 - - lda #50 - sta TimeOut - - rts - - .FIN *-------------------------------------- CS.RUN.Register >LDYA L.MSG.REGISTER jsr CS.RUN.STATUSMSG @@ -1091,6 +1025,10 @@ CS.QUIT ldy #hOutputBuf >SYSCALL FreeMem .8 rts +*-------------------------------------- + .DO TLS=1 + .INB usr/src/bin/irc.s.tls + .FIN *-------------------------------------- CS.END LIBTCPIP .AZ "libtcpip" @@ -1104,7 +1042,7 @@ MSG.SKTOK .AZ "Connected\r\n(Exit key is Ctrl-T)\r\n" MSG.SKTERR .AZ "Socket Error : $%h\r\n" .DO TLS=1 MSG.TLS .AZ "TLS:Negociation..." -MSG.TLS.1 .AZ "TLS:Received %D bytes.\r\n" +MSG.TLS.HDR .AZ "TLS:Received %D bytes, Message Type:%h.\r\n" MSG.TLSKO .AZ "TLS:Negotiation failed." .FIN MSG.REGISTER .AZ "Registering User..." @@ -1184,6 +1122,11 @@ TLS.CHELLO.L .EQ *-TLS.CHELLO TLS.CHELLO.L1 .EQ *-TLS.CHELLO.1 TLS.CHELLO.L2 .EQ *-TLS.CHELLO.2 TLS.CHELLO.LE .EQ *-TLS.CHELLO.E +*-------------------------------------- +TLS.HDR .DA #TLS.CT.HS + .DA TLS.LV.TLS12 +TLS.HDR.L .EQ *-TLS.HDR +*-------------------------------------- .FIN *-------------------------------------- .DUMMY diff --git a/INC/IO.D2.I.txt b/INC/IO.D2.I.txt index 58bc5848..df116cb2 100644 --- a/INC/IO.D2.I.txt +++ b/INC/IO.D2.I.txt @@ -2,10 +2,10 @@ NEW AUTO 3,1 *-------------------------------------- IO.D2.SeekTimeR .EQ 45 LIBBLKDEV Recalibration -IO.D2.SeekTimeF .EQ 30 LIBBLKDEV Track Formatter -IO.D2.SeekTimeB .EQ 30 LIBBLKDEV Boot Block -IO.D2.SeekTimeP .EQ 30 ProDOS.FX initial -IO.D2.SeekTimeI .EQ 10 ProDOS.FX increment -> until > 128 +IO.D2.SeekTimeF .EQ 56 LIBBLKDEV Track Formatter +IO.D2.SeekTimeB .EQ 56 LIBBLKDEV Boot Block +IO.D2.SeekTimeP .EQ 28 ProDOS.FX initial +IO.D2.SeekTimeI .EQ 14 ProDOS.FX increment -> until > 128 *-------------------------------------- IO.D2.Ph0Off .EQ $C080 IO.D2.Ph0On .EQ $C081 diff --git a/LIB/LIBBLKDEV.S.BB.txt b/LIB/LIBBLKDEV.S.BB.txt index 1f88a0fe..d2c1792c 100644 --- a/LIB/LIBBLKDEV.S.BB.txt +++ b/LIB/LIBBLKDEV.S.BB.txt @@ -393,12 +393,11 @@ BB.Seek lda BB.HdrTrk get track we're on lda #0 jsr BB.Wait100usecA + lda IO.D2.Ph0Off,y bcc .11 lda IO.D2.Ph0Off,x - nop - nop -.11 lda IO.D2.Ph0Off,y +.11 *-------------------------------------- BB.Read ldx BB.Slotn0 diff --git a/LIB/LIBBLKDEV.S.D2.txt b/LIB/LIBBLKDEV.S.D2.txt index 87800d89..32b38c8b 100644 --- a/LIB/LIBBLKDEV.S.D2.txt +++ b/LIB/LIBBLKDEV.S.D2.txt @@ -136,14 +136,12 @@ D2.MoveHead.SEI lda D2.CurrentQTrack jsr D2.Wait25600usec + lda IO.D2.Ph0Off,y bcc .90 lda IO.D2.Ph0Off,x - nop - nop -.90 lda IO.D2.Ph0Off,y - - rts + +.90 rts *-------------------------------------- D2.SeekPhOnY and #6 ora D2.Slotn0 diff --git a/ProDOS.FX/ProDOS.S.LDR.txt b/ProDOS.FX/ProDOS.S.LDR.txt index 1442427d..3498f309 100644 --- a/ProDOS.FX/ProDOS.S.LDR.txt +++ b/ProDOS.FX/ProDOS.S.LDR.txt @@ -24,7 +24,7 @@ LDR.MSG.IIe .AT "//e" LDR.MSG.IIc .AT "//c" LDR.MSG.IIgs .AT "IIgs" LDR.MSG.Unknown .AT "Unknown" -LDR.MSG.CLK .AT "XClk" +LDR.MSG.CLK .AT "?Clk" LDR.MSG.RAM .AT "/RAM" LDR.MSG.ROOTERR .AT "ERR reading CATALOG" *-------------------------------------- @@ -430,7 +430,7 @@ LDR.ClkDevDCLK php ldy PAKME.DCLK+1 jmp LDR.SetupCLK -.9 cld +.9 cld *-------------------------------------- LDR.ClkDevNCLK php sei @@ -520,7 +520,7 @@ LDR.ClkDevNCLK php bra LDR.SetupCLK *-------------------------------------- LDR.ClkDevTCLK jsr LDR.IsIIc - bcs .9 + bcs LDR.ClkDevXCLK stz idxl lda #$C1 @@ -532,11 +532,6 @@ LDR.ClkDevTCLK jsr LDR.IsIIc .1 jsr LDR.CheckTClkID bcs .7 -* sta SETPAGE2 -* stz $478,x -* stz $7f8,x - -* sta CLRPAGE2 stz $478,x stz $7f8,x @@ -568,8 +563,31 @@ LDR.ClkDevTCLK jsr LDR.IsIIc lda idxl+1 cmp #$C8 bne .1 +*-------------------------------------- +LDR.ClkDevXCLK bit RROMBNK2 + sta $C070 + bit $FACA + bit $FACA + bit $FAFE + + lda $DFFE + cmp #$4A + bne .9 + + lda $DFFF + cmp #$CD + bne .9 + + lda $D8F0 + bit $F851 + cmp #$AD + beq .1 .9 rts + +.1 lda #'X' + ldx PAKME.XCLK + ldy PAKME.XCLK+1 *-------------------------------------- LDR.SetupCLK stx ZPInBufPtr sty ZPInBufPtr+1 diff --git a/ProDOS.FX/ProDOS.S.XCLK.txt b/ProDOS.FX/ProDOS.S.XCLK.txt new file mode 100644 index 00000000..2c20cd1f --- /dev/null +++ b/ProDOS.FX/ProDOS.S.XCLK.txt @@ -0,0 +1,100 @@ +NEW + AUTO 3,1 +*-------------------------------------- +* Driver For ROMXce Clock +*-------------------------------------- +* we can safely use $200, PCL/H, AIL/H (used by TCLK) +*-------------------------------------- +XCLK.API.RTCBUF .EQ $2B0 +XCLK.API.WRCLK .EQ $C803 +XCLK.API.RDCLK .EQ $C806 +*-------------------------------------- +XCLK.START php + sei + ldx #XCLK.START2xx.L + +.1 lda XCLK.START2xx,X + sta XCLK.CODE2xx,X + dex + bpl .1 + + jsr XCLK.CODE2xx +* Minutes + lda XCLK.API.RTCBUF+1 + and #%01111111 59 + jsr XCLK.BCD2BIN + sta TIMELO +* Hour + lda XCLK.API.RTCBUF+2 + and #%00111111 23 + jsr XCLK.BCD2BIN + sta TIMELO+1 +* Day + lda XCLK.API.RTCBUF+4 + and #%00111111 31 + jsr XCLK.BCD2BIN + sta DATELO +* Year + lda XCLK.API.RTCBUF+6 99 + jsr XCLK.BCD2BIN + sta DATELO+1 +* Month + lda XCLK.API.RTCBUF+5 + and #%00011111 12 + jsr XCLK.BCD2BIN + asl + asl + asl + asl + asl + tsb DATELO + rol DATELO+1 + + plp + rts + +XCLK.BCD2BIN tax + and #$F0 + lsr CC + sta PCL temp location + lsr CC + lsr CC + adc PCL + sta PCL + + txa +* clc + and #$0F + adc PCL + + rts + +XCLK.START2xx bit RROMBNK2 + sta $C070 + bit $FACA + bit $FACA + bit $FAFE + jsr XCLK.API.RDCLK + bit $F851 + bit RRAMWRAMBNK1 + bit RRAMWRAMBNK1 + rts + +XCLK.START2xx.L .EQ *-XCLK.START2xx +*-------------------------------------- +XCLK.CODE2xx .EQ XCLK.API.RTCBUF-XCLK.START2xx.L +*-------------------------------------- + .LIST ON +XCLK.LEN .EQ *-XCLK.START + .LIST OFF +*-------------------------------------- +* CONTROL SECTION : +*-------------------------------------- + .DO XCLK.LEN>125 + ERROR:XCLK Driver too big + .FIN +*-------------------------------------- +MAN +SAVE usr/src/prodos.fx/prodos.s.xclk +LOAD usr/src/prodos.fx/prodos.s +ASM diff --git a/ProDOS.FX/ProDOS.S.XRW.txt b/ProDOS.FX/ProDOS.S.XRW.txt index a39c5b37..d74b0515 100644 --- a/ProDOS.FX/ProDOS.S.XRW.txt +++ b/ProDOS.FX/ProDOS.S.XRW.txt @@ -568,7 +568,7 @@ XRW.Wait100usec lda #1 XRW.Wait100usecA phx -.1 ldx #18 (2) +.1 ldx #20 (2) .2 dex (2) bne .2 (3) @@ -836,15 +836,13 @@ XRW.SeekYA sta XRW.D2Trk-1,x will be current track at the end jsr XRW.Wait25600usec + lda IO.D2.Ph0Off,y bcc .90 lda IO.D2.Ph0Off,x - nop clc Exit wit CC (recalibrate) -.90 lda IO.D2.Ph0Off,y - - rts +.90 rts *-------------------------------------- XRW.SeekPhOnY and #6 ora A2L diff --git a/ProDOS.FX/ProDOS.S.txt b/ProDOS.FX/ProDOS.S.txt index 9c52bba7..e64ca3fb 100644 --- a/ProDOS.FX/ProDOS.S.txt +++ b/ProDOS.FX/ProDOS.S.txt @@ -220,6 +220,7 @@ PAKME.RAMX .DA RAMX.PAK PAKME.DCLK .DA DCLK.PAK PAKME.NCLK .DA NCLK.PAK PAKME.TCLK .DA TCLK.PAK +PAKME.XCLK .DA XCLK.PAK PAKME.CCLK .DA CCLK.PAK PAKME.SEL1 .DA SEL1.PAK PAKME.SEL2 .DA SEL2.PAK @@ -289,6 +290,12 @@ TCLK.PAK .DA #0 .INB usr/src/prodos.fx/prodos.s.tclk .EP +XCLK.PAK .DA #0 + .DA XCLK.LEN + .PH XDOS.ClockDrv + .INB usr/src/prodos.fx/prodos.s.xclk + .EP + CCLK.PAK .DA #0 .DA CCLK.LEN .PH XDOS.ClockDrv @@ -309,7 +316,7 @@ SEL2.PAK .DA #0 *-------------------------------------- .AS "PAKME" TAG .DA $2000 BIN ORG - .DA #13 Chunk Count + .DA #14 Chunk Count .DA PAKME.Table Chunks *-------------------------------------- MAN diff --git a/SYS/PM.VEDRIVE.S.BK.txt b/SYS/PM.VEDRIVE.S.BK.txt new file mode 100644 index 00000000..301e8053 --- /dev/null +++ b/SYS/PM.VEDRIVE.S.BK.txt @@ -0,0 +1,408 @@ +NEW + AUTO 3,1 +*-------------------------------------- +* Drivers +*-------------------------------------- +* OP = 2 : Write drv1 +* OP = 3 : Read drv1 +* OP = 4 : Write drv2 +* OP = 5 : Read drv2 +* CMD = $C5+OP+BLKLO+BLKHI+CHKSUM +* DO NOT trash DRV.COMMAND...DRV.BLKNUM as ProDOS +* reuses them after Block operation +* A1,A2 are used by Disk II Driver, +* so we use it safely as Tmp Ptr +*-------------------------------------- +DRV.A1L .EQ $3C +DRV.A1H .EQ $3D +DRV.A2L .EQ $3E +DRV.A2H .EQ $3F +DRV.COMMAND .EQ $42 +DRV.UNITNUM .EQ $43 +DRV.BUFF .EQ $44 +DRV.BLKNUM .EQ $46 +*-------------------------------------- +DRV.BLK .PH DRV.BLK.START Main LC Bnk 2 $D001->$DFFF + +DRV.BLK.1 lda DRV.COMMAND S=0,R=1,W=2,F=3 + bne .1 + + bit DRV.UNITNUM return Status + bmi .3 + + ldx DRV.D1TotalBlks + ldy DRV.D1TotalBlks+1 + bra .8 + +.3 ldx DRV.D2TotalBlks + ldy DRV.D2TotalBlks+1 + +.8 lda #0 + clc + rts + +.1 cmp #3 + beq .8 Format .... + + bcs DRV.BLK.CMD.ERR more....IO error + + ora #2 W=2,R=3 + ldy DRV.UNITNUM + bpl .2 + + adc #2 CC from bcs + +.2 sta DRV.UDPBuf.Cmd store cmd + eor #ADT.CMD.VSD + eor DRV.BLKNUM + eor DRV.BLKNUM+1 + sta DRV.UDPBuf.Sum Compute & store CheckSum + + lda DRV.BLKNUM + sta DRV.UDPBuf.BlkL + lda DRV.BLKNUM+1 + sta DRV.UDPBuf.BlkH +*-------------------------------------- + lda DRV.COMMAND + dec 1-1=0 if read + bne DRV.BLK.CMD.W go write +*-------------------------------------- +* Read block +*-------------------------------------- +DRV.BLK.CMD.R >LDYAI S.UDP+5 + jsr DRV.NIC.SendUDP + bcs DRV.BLK.CMD.ERR + + jsr DRV.BLK.GetFrame + bcs .9 + + ldy #DRV.R200.L + +.6 lda DRV.R200-1,y + sta $200-1,y + dey + bne .6 + + inc DRV.BUFF+1 + + jsr $200 + + dec DRV.R200.DEC + dec DRV.BUFF+1 + + jsr $200 + + + + + + clc +.9 rts + +DRV.BLK.CMD.ERR lda #MLI.E.IO + sec + rts +*-------------------------------------- +* Write Block +*-------------------------------------- +DRV.BLK.CMD.W ldy #DRV.W200.L + +.1 lda DRV.W200-1,y + sta $200-1,y + dey + bne .1 + + inc DRV.BUFF+1 + + stz DRV.UDPBuf.Data+512 + + jsr $200 + + dec DRV.W200.DEC + dec DRV.BUFF+1 + + jsr $200 + + >LDYAI S.UDP+5+512+1 + jsr DRV.NIC.SendUDP + + bcs DRV.BLK.CMD.ERR + + jsr DRV.BLK.GetFrame + bcs .9 + + + + + + + clc +.9 rts +*-------------------------------------- +DRV.BLK.GetFrame + stz DRV.TimeOut + +.1 lda VBL + +.2 pha + jsr DRV.NIC.Rcvd + pla + bcc .3 + + eor VBL + bpl .2 + + dec DRV.TimeOut + bne .1 + + lda #MLI.E.IO +* sec + rts + +.3 jsr DRV.BLK.CheckFrame + bcs .1 + + rts +*-------------------------------------- +DRV.BLK.CheckFrame + lda DRV.InBuf+S.ETH.EII.TYPE + cmp /S.ETH.EII.TYPE.IP + bne .9 + + lda DRV.InBuf+S.ETH.EII.TYPE+1 + cmp #S.ETH.EII.TYPE.IP + beq .4 + + cmp #S.ETH.EII.TYPE.ARP + bne .9 + + lda DRV.InBuf+S.ARP.OPERATION+1 + + cmp #S.ARP.OPERATION.REQ + bne .9 + + ldx #3 + +.1 lda DRV.InBuf+S.ARP.SPA,x + cmp DRV.UDPBuf+S.IP.DST,x + bne .9 + + dex + bpl .1 + + jsr DRV.NIC.SendARP + +.9 sec + rts + +.4 lda DRV.InBuf+S.IP.PROTOCOL + cmp #S.IP.PROTOCOL.UDP + bne .9 + + ldx #3 + +.5 lda DRV.InBuf+S.IP.SRC,x + cmp DRV.UDPBuf+S.IP.DST,x + bne .9 + + lda DRV.InBuf+S.IP.DST,x + cmp DRV.UDPBuf+S.IP.SRC,x + bne .9 + + dex + bpl .5 + + lda DRV.InBuf+S.TCPUDP.SRCPORT + cmp DRV.UDPBuf+S.TCPUDP.DSTPORT + bne .9 + + lda DRV.InBuf+S.TCPUDP.SRCPORT+1 + cmp DRV.UDPBuf+S.TCPUDP.DSTPORT+1 + bne .9 + + clc + rts +*-------------------------------------- +DRV.BLK.IPUDPCheksum + stz DRV.UDPBuf+S.IP.HDR.CHECKSUM + stz DRV.UDPBuf+S.IP.HDR.CHECKSUM+1 + + stz DRV.CheckSum + stz DRV.CheckSum+1 + + lda DRV.FrameSize + sec + sbc #S.ETH.EII + sta DRV.UDPBuf+S.IP.TOTAL.LENGTH+1 + + lda DRV.FrameSize+1 + sbc /S.ETH.EII + sta DRV.UDPBuf+S.IP.TOTAL.LENGTH + + clc + + ldy #S.IP.V.IHL + + ldx #10 10 words for IP Header + +.1 lda DRV.UDPBuf,y + adc DRV.CheckSum + sta DRV.CheckSum + iny + lda DRV.UDPBuf,y + adc DRV.CheckSum+1 + sta DRV.CheckSum+1 + iny + dex + bne .1 + + lda DRV.CheckSum + adc #0 + eor #$FF + sta DRV.UDPBuf+S.IP.HDR.CHECKSUM + + lda DRV.CheckSum+1 + adc #0 + eor #$FF + sta DRV.UDPBuf+S.IP.HDR.CHECKSUM+1 +*-------------------------------------- + stz DRV.UDPBuf+S.UDP.CHECKSUM + stz DRV.UDPBuf+S.UDP.CHECKSUM+1 + + lda DRV.FrameSize + sec + sbc #S.IP + sta DRV.UDPBuf+S.UDP.LENGTH+1 + + pha + + eor #$ff + sta DRV.nCnt + + lda DRV.FrameSize+1 + sbc /S.IP + sta DRV.UDPBuf+S.UDP.LENGTH + + tax + + eor #$ff + sta DRV.nCnt+1 + + clc + + pla A,X = UDP Len + adc #S.IP.PROTOCOL.UDP + sta DRV.CheckSum+1 + + txa + adc /S.IP.PROTOCOL.UDP (all zero) + sta DRV.CheckSum + + ldy #S.IP.SRC + ldx #4 4 words for SRC & DST IP + +.2 lda DRV.UDPBuf,y + adc DRV.CheckSum + sta DRV.CheckSum + iny + lda DRV.UDPBuf,y + adc DRV.CheckSum+1 + sta DRV.CheckSum+1 + iny + dex + bne .2 + + >LDYAI DRV.UDPBuf + >STYA DRV.A1L + + ldy #S.IP + +.3 inc DRV.nCnt + bne .4 + + inc DRV.nCnt+1 + beq .8 + +.4 lda (DRV.A1L),y + adc DRV.CheckSum + sta DRV.CheckSum + + iny + bne .5 + + inc DRV.A1H + +.5 inc DRV.nCnt + bne .6 + + inc DRV.nCnt+1 + beq .7 + +.6 lda (DRV.A1L),y + adc DRV.CheckSum+1 + sta DRV.CheckSum+1 + iny + bne .3 + + inc DRV.A1H + bra .3 + +.7 lda #0 + adc DRV.CheckSum+1 + sta DRV.CheckSum+1 + +.8 lda DRV.CheckSum + adc #0 Don't forget to add last carry!!! + eor #$FF + sta DRV.UDPBuf+S.UDP.CHECKSUM + + lda DRV.CheckSum+1 + adc #0 Don't forget to add last carry!!! + eor #$FF + sta DRV.UDPBuf+S.UDP.CHECKSUM+1 + rts +*-------------------------------------- +DRV.R200 lda DRV.InBuf+S.UDP+10+256,y +DRV.R200.DEC .EQ *-DRV.R200+$1ff + bit RRAMWRAMBNK1 + sta (DRV.BUFF),y + bit RRAMWRAMBNK2 + iny + bne DRV.R200 + + rts + +DRV.R200.L .EQ *-DRV.R200 +*-------------------------------------- +DRV.W200 bit RRAMWRAMBNK1 + lda (DRV.BUFF),y + bit RRAMWRAMBNK2 + sta DRV.UDPBuf.Data+256,y +DRV.W200.DEC .EQ *-DRV.W200+$1ff + eor DRV.UDPBuf.Data+512 + sta DRV.UDPBuf.Data+512 + iny + bne DRV.W200 + + rts + +DRV.W200.L .EQ *-DRV.W200 +*-------------------------------------- +DRV.D1TotalBlks .BS 2 +DRV.D2TotalBlks .BS 2 +DRV.BLK.Slotn0 .BS 1 SELF MODIFIED slot 0n +DRV.TimeOut .BS 1 +DRV.FrameSize .BS 2 +DRV.nCnt .BS 2 +DRV.CheckSum .BS 2 +*-------------------------------------- + .EP +*-------------------------------------- + .LIST ON +DRV.BLK.SIZE .EQ *-DRV.BLK + .LIST OFF +*-------------------------------------- +MAN +SAVE usr/src/sys/pm.vedrive.s.bk +LOAD usr/src/sys/pm.vedrive.s +ASM diff --git a/SYS/PM.VEDRIVE.S.GS.txt b/SYS/PM.VEDRIVE.S.GS.txt index 61a724a2..c59feec4 100644 --- a/SYS/PM.VEDRIVE.S.GS.txt +++ b/SYS/PM.VEDRIVE.S.GS.txt @@ -4,12 +4,54 @@ NEW GS.Init sec rts *-------------------------------------- -DRV.GS .EQ * - .PH $D400 +GS.Read php + sei + ldx Slotn0 +*-------------------------------------- +GS.READWRITE.9 plp + sec + rts +*-------------------------------------- +GS.Write php + sei + + ldx Slotn0 + + plp + sec + rts +*-------------------------------------- +GS.Name >PSTR "LanCEgs" +*-------------------------------------- +DRV.GS .PH DRV.NIC.START + + jmp DRV.GS.Write + +DRV.GS.Read php + sei + + + +*-------------------------------------- +DRV.GS.9 plp + sec + rts +*-------------------------------------- +DRV.GS.Write php + sei + + + plp + sec + rts *-------------------------------------- .EP + + .LIST ON +DRV.GS.SIZE .EQ *-DRV.GS + .LIST OFF *-------------------------------------- MAN SAVE usr/src/sys/pm.vedrive.s.gs diff --git a/SYS/PM.VEDRIVE.S.IP.txt b/SYS/PM.VEDRIVE.S.IP.txt index 980e5361..971e00dd 100644 --- a/SYS/PM.VEDRIVE.S.IP.txt +++ b/SYS/PM.VEDRIVE.S.IP.txt @@ -4,15 +4,21 @@ NEW VEDRIVE.MACInit ldx #5 .1 lda CONF.SRCMAC,x + sta DHCP.DISC.SRCMAC,x sta DHCP.REQ.SRCMAC,x + sta DHCP.DISC.CHADDR,x sta DHCP.REQ.CHADDR,x + sta ARP.REQ.SRCMAC,x sta ARP.REQ.SHA,x + sta ARP.REP.SRCMAC,x sta ARP.REP.SHA,x + sta ADT.REQ.SRCMAC,x + dex bpl .1 @@ -21,13 +27,17 @@ VEDRIVE.MACInit ldx #5 VEDRIVE.IPInit ldx #3 .1 lda CONF.ADDRESS,x + sta ARP.REQ.SPA,x - sta ARP.REP.TPA,x + sta ARP.REP.SPA,x sta ADT.REQ.IP.SRC,x lda CONF.SERVER,x sta ARP.REQ.TPA,x sta ADT.REQ.IP.DST,x + + sta ARP.REP.TPA,x + dex bpl .1 @@ -143,9 +153,22 @@ VEDRIVE.UDPChecksum dey lda (ZPBufPtr),y - adc /S.IP.PROTOCOL.UDP (all zero) + adc /S.IP.PROTOCOL.UDP (all zero) sta ZPCheckSum - jsr VEDRIVE.AddSrcDstIPToChecksum + + ldy #S.IP.SRC + ldx #4 4 words for SRC & DST IP + +.1 lda (ZPBufPtr),y + adc ZPCheckSum + sta ZPCheckSum + iny + lda (ZPBufPtr),y + adc ZPCheckSum+1 + sta ZPCheckSum+1 + iny + dex + bne .1 ldy #S.UDP.LENGTH+1 lda (ZPBufPtr),y @@ -223,23 +246,6 @@ VEDRIVE.ComputeChecksum sta (ZPBufPtr),y rts *-------------------------------------- -VEDRIVE.AddSrcDstIPToChecksum - ldy #S.IP.SRC - ldx #4 4 words for SRC & DST IP - -.1 lda (ZPBufPtr),y - adc ZPCheckSum - sta ZPCheckSum - iny - lda (ZPBufPtr),y - adc ZPCheckSum+1 - sta ZPCheckSum+1 - iny - dex - bne .1 - - rts -*-------------------------------------- VEDRIVE.CheckDHCPOffer >LDYAI FRAMEBUF >STYA ZPBufPtr @@ -459,7 +465,6 @@ VEDRIVE.CheckARPFrame ldy #S.ARP.OPERATION+1 lda (ZPBufPtr),y - cmp #S.ARP.OPERATION.REP bne .5 *-------------------------------------- @@ -479,6 +484,8 @@ VEDRIVE.CheckARPFrame .2 lda (ZPBufPtr),y sta ADT.REQ.DSTMAC,x + sta ARP.REP.DSTMAC,x + sta ARP.REP.THA,x dey dex bpl .2 diff --git a/SYS/PM.VEDRIVE.S.U1.txt b/SYS/PM.VEDRIVE.S.U1.txt index d3400516..a472f7d6 100644 --- a/SYS/PM.VEDRIVE.S.U1.txt +++ b/SYS/PM.VEDRIVE.S.U1.txt @@ -234,10 +234,154 @@ U1.WRITE php *-------------------------------------- U1.Name >PSTR "Uthernet V1" *-------------------------------------- -DRV.U1 .EQ * - .PH $D400 +DRV.U1 .PH DRV.NIC.START + jmp DRV.U1.SendARP + jmp DRV.U1.SendUDP + +DRV.U1.Rcvd php + sei + + ldx DRV.BLK.Slotn0 + + lda /PP.RxEvent + sta PacketPagePTR+1,x + lda #PP.RxEvent + sta PacketPagePTR,x + + lda PacketPageDATA+1,x + ldy PacketPageDATA,x + and /PP.RxEvent.RxOK+PP.RxEvent.IA+PP.RxEvent.Brdcast+PP.RxEvent.Runt + beq DRV.U1.9 + + lda RTDATA+1,x discard RxStatus + lda RTDATA,x + + lda RTDATA+1,x get RxLength + sta DRV.FrameSize+1 + eor #$ff + sta DRV.nCnt+1 + + lda RTDATA,x + sta DRV.FrameSize + eor #$ff + sta DRV.nCnt + + >LDYAI DRV.InBuf + >STYA DRV.A1L + + ldy #0 + +.2 inc DRV.nCnt + bne .3 + + inc DRV.nCnt+1 + beq .8 + +.3 lda RTDATA,x + sta (DRV.A1L),y + iny + + inc DRV.nCnt + bne .4 + + inc DRV.nCnt+1 + beq .8 + +.4 lda RTDATA+1,x + sta (DRV.A1L),y + iny + bne .2 + + inc DRV.A1L+1 + bra .2 + +.8 plp + clc + rts +*-------------------------------------- +DRV.U1.9 plp + sec + rts +*-------------------------------------- +DRV.U1.SendARP >LDYAI S.ARP + >STYA DRV.FrameSize + >LDYAI DRV.ARPBuf + bra DRV.U1.Send +*-------------------------------------- +DRV.U1.SendUDP >STYA DRV.FrameSize + + jsr DRV.BLK.IPUDPCheksum + + >LDYAI DRV.UDPBuf + +DRV.U1.Send >STYA DRV.A1L + + php + sei + + ldx DRV.BLK.Slotn0 + + lda /PP.TxCMD.LID+PP.TxCMD.TxStartFULL + sta TxCMD+1,x + lda #PP.TxCMD.LID+PP.TxCMD.TxStartFULL + sta TxCMD,x + + lda DRV.FrameSize+1 + sta TxLength+1,x + eor #$ff + sta DRV.nCnt+1 + + lda DRV.FrameSize + sta TxLength,x + eor #$ff + sta DRV.nCnt + + lda /PP.BusST + sta PacketPagePTR+1,x + lda #PP.BusST + sta PacketPagePTR,x + + lda PacketPageDATA+1,x + ldy PacketPageDATA,x + bit /PP.BusST.Rdy4TxNOW + beq DRV.U1.9 + + ldy #0 + +.1 inc DRV.nCnt + bne .2 + + inc DRV.nCnt+1 + beq .8 + +.2 lda (DRV.A1L),y + sta RTDATA,x + iny + + inc DRV.nCnt + bne .3 + + inc DRV.nCnt+1 + beq .8 + +.3 lda (DRV.A1L),y + sta RTDATA+1,x + iny + bne .1 + + inc DRV.A1H + bra .1 + +.8 plp + clc + rts +*-------------------------------------- .EP + + .LIST ON +DRV.U1.SIZE .EQ *-DRV.U1 + .LIST OFF *-------------------------------------- MAN SAVE usr/src/sys/pm.vedrive.s.u1 diff --git a/SYS/PM.VEDRIVE.S.U2.txt b/SYS/PM.VEDRIVE.S.U2.txt index 9832ccc9..c3580c8b 100644 --- a/SYS/PM.VEDRIVE.S.U2.txt +++ b/SYS/PM.VEDRIVE.S.U2.txt @@ -250,15 +250,15 @@ U2.Name >PSTR "Uthernet II" Offset .BS 2 TotalSize .BS 2 *-------------------------------------- -DRV.U2 .EQ * - .PH DRV.NIC.START +DRV.U2 .PH DRV.NIC.START -DRV.U2.START jmp DRV.U2.Write + jmp DRV.U2.SendARP + jmp DRV.U2.SendUDP -DRV.U2.Read php +DRV.U2.Rcvd php sei - ldx DRV.START + ldx DRV.BLK.Slotn0 >AR.SELECT S0.RX.RSR lda W5100.DR,x get the received size HI @@ -289,18 +289,18 @@ DRV.U2.Read php * lda DRV.TotalSize sec sbc #2 MACRAW:strip 2 bytes Header from Size - sta DRV.BufSize + sta DRV.FrameSize eor #$ff sta DRV.nCnt lda DRV.TotalSize+1 sbc #0 - sta DRV.BufSize+1 + sta DRV.FrameSize+1 eor #$ff sta DRV.nCnt+1 - >LDYA DRV.InBuf - >STYA .4+1 + >LDYAI DRV.InBuf + >STYA DRV.A1L ldy #0 @@ -311,11 +311,12 @@ DRV.U2.Read php beq .8 .3 lda W5100.DR,x -.4 sta $FFFF,y SELF MODIFIED + + sta (DRV.A1L),y iny bne .2 - inc .4+2 + inc DRV.A1H bra .2 .8 >AR.SELECT S0.RX.RD @@ -343,30 +344,39 @@ DRV.U2.9 plp sec rts *-------------------------------------- -DRV.U2.Write php - sei +DRV.U2.SendARP >LDYAI S.ARP + >STYA DRV.FrameSize + >LDYAI DRV.ARPBuf + bra DRV.U2.Send +*-------------------------------------- +DRV.U2.SendUDP >STYA DRV.FrameSize - >STYA DRV.BufSize + jsr DRV.BLK.IPUDPCheksum + >LDYAI DRV.UDPBuf + +DRV.U2.Send >STYA DRV.A1L + + lda DRV.FrameSize+1 eor #$ff sta DRV.nCnt+1 - tya + lda DRV.FrameSize eor #$ff sta DRV.nCnt - >LDYA DRV.OutBuf - >STYA .3+1 + php + sei - ldx DRV.START + ldx DRV.BLK.Slotn0 >AR.SELECT S0.TX.FSR lda W5100.DR,x get send size HI nop nop ldy W5100.DR,x LO - cpy DRV.BufSize - sbc DRV.BufSize+1 + cpy DRV.FrameSize + sbc DRV.FrameSize+1 bcc DRV.U2.9 >AR.SELECT S0.TX.WR @@ -390,21 +400,21 @@ DRV.U2.Write php inc DRV.nCnt+1 beq .8 -.3 lda $FFFF,y SELF MODIFIED +.3 lda (DRV.A1L),y sta W5100.DR,x iny bne .2 - inc .3+2 + inc DRV.A1H bra .2 .8 >AR.SELECT S0.TX.WR lda DRV.Offset clc - adc DRV.BufSize + adc DRV.FrameSize pha save LO lda DRV.Offset+1 - adc DRV.BufSize+1 + adc DRV.FrameSize+1 sta W5100.DR,x write HI pla sta W5100.DR,x write LO @@ -418,9 +428,7 @@ DRV.U2.Write php rts *-------------------------------------- DRV.Offset .BS 2 -DRV.BufSize .BS 2 DRV.TotalSize .BS 2 -DRV.nCnt .BS 2 *-------------------------------------- .EP diff --git a/SYS/PM.VEDRIVE.S.txt b/SYS/PM.VEDRIVE.S.txt index b76b8794..dffbf6a3 100644 --- a/SYS/PM.VEDRIVE.S.txt +++ b/SYS/PM.VEDRIVE.S.txt @@ -12,9 +12,9 @@ NEW .INB inc/mli.i .INB inc/mli.e.i .INB inc/nic.i + .INB inc/nic.91c96.i .INB inc/nic.8900a.i .INB inc/nic.w5100.i - .INB inc/nic.91c96.i .INB inc/eth.i .INB inc/net.tcpip.i .INB inc/net.dhcp.i @@ -33,16 +33,33 @@ timerC .EQ 17 bRemoteMac .EQ 18 Slotn0 .EQ 19 *-------------------------------------- -ADT.CMD.VSD .EQ $C5 "E": Virtual Drive Command Envelope -ADT.CMD.PING .EQ $D9 "Y": PING -DRV.EntryPoint .EQ $BF41 -DRV.NIC.START .EQ $D500 -*-------------------------------------- CONF.FBUF .EQ $4000 CONF.LBUF .EQ $4400 CONF.FILEPATH .EQ $4500 FRAMEBUF .EQ $4600 *-------------------------------------- +ADT.CMD.VSD .EQ $C5 "E": Virtual Drive Command Envelope +ADT.CMD.PING .EQ $D9 "Y": PING +DRV.EntryPoint .EQ $BF41 +*-------------------------------------- +DRV.BLK.START .EQ $D400 +DRV.NIC.START .EQ $D800 +*-------------------------------------- +DRV.NIC.SendARP .EQ DRV.NIC.START +DRV.NIC.SendUDP .EQ DRV.NIC.START+3 +DRV.NIC.Rcvd .EQ DRV.NIC.START+6 +*-------------------------------------- +DRV.ARPBuf .EQ $DA00-S.UDP-5-S.ARP +DRV.UDPBuf .EQ $DA00-S.UDP-5 Frame Buffer = S.UDP+5+512+1 bytes +DRV.UDPBuf.Env .EQ DRV.UDPBuf+S.UDP +DRV.UDPBuf.Cmd .EQ DRV.UDPBuf+S.UDP+1 +DRV.UDPBuf.BlkL .EQ DRV.UDPBuf+S.UDP+2 +DRV.UDPBuf.BlkH .EQ DRV.UDPBuf+S.UDP+3 +DRV.UDPBuf.Sum .EQ DRV.UDPBuf+S.UDP+4 +DRV.UDPBuf.Data .EQ DRV.UDPBuf+S.UDP+5 +*-------------------------------------- +DRV.InBuf .EQ $DA00 Frame Buffer = 1536 bytes +*-------------------------------------- VEDRIVE.Init >LDYAI VEDRIVE.MSG0 jsr PrintFYA @@ -111,8 +128,7 @@ VEDRIVE.Init >LDYAI VEDRIVE.MSG0 .7 >LDYAI VEDRIVE.SRVOK jsr PrintFYA -* jsr VEDRIVE.SetSlot - sec + jsr VEDRIVE.SetSlot bcc .8 >LDYAI VEDRIVE.NOSLOT @@ -124,7 +140,7 @@ VEDRIVE.Init >LDYAI VEDRIVE.MSG0 >LDYAI VEDRIVE.DEVOK jsr PrintFYA -* jsr VEDRIVE.Install + jsr VEDRIVE.Install bcc .9 >LDYAI VEDRIVE.DRVIKO @@ -133,6 +149,7 @@ VEDRIVE.Init >LDYAI VEDRIVE.MSG0 .9 >LDYAI VEDRIVE.DRVIOK jsr PrintFYA + rts *-------------------------------------- VEDRIVE.CheckDRV @@ -177,11 +194,17 @@ VEDRIVE.Ping lda CONF.PORT .4 jsr VEDRIVE.CheckADTRep bcc .8 - + jsr VEDRIVE.CheckARPFrame bra .3 -.8 +.8 ldy #S.UDP+$29 + lda (ZPBufPtr),y + sta CONF.D1TOTALBLK + iny + lda (ZPBufPtr),y + sta CONF.D1TOTALBLK+1 + * clc .9 rts *-------------------------------------- @@ -198,7 +221,7 @@ VEDRIVE.SendUDP jsr VEDRIVE.IPChecksum VEDRIVE.SendARP ldx CONF.NIC jmp (.1,x) -.1 .DA U1.WRITE +.1 .DA GS.WRITE .DA U1.WRITE .DA U2.WRITE *-------------------------------------- @@ -208,7 +231,7 @@ VEDRIVE.READ >LDYAI FRAMEBUF ldx CONF.NIC jmp (.1,x) -.1 .DA U1.READ +.1 .DA GS.READ .DA U1.READ .DA U2.READ *-------------------------------------- @@ -294,22 +317,26 @@ VEDRIVE.Install ldx #PATCH.SIZE bit RRAMWRAMBNK2 bit RRAMWRAMBNK2 - ldy #DRV.SIZE-1 + >LDYAI DRV.BLK + >STYA ZPPtr1 -.2 lda DRV,y - sta DRV.START,y - dey - bne .2 + lda #DRV.BLK.START + sta ZPPtr2 + lda /DRV.BLK.START + sta ZPPtr2+1 + + lda #DRV.BLK.SIZE + eor #$ff + sta ZPnCnt + + lda /DRV.BLK.SIZE + eor #$ff + sta ZPnCnt+1 + + jsr VEDRIVE.Move lda Slotn0 - sta DRV.START - - ldy #DRV.IP.SIZE-1 - -.3 lda DRV.IP,y - sta DRV.IP.START,y - dey - bne .3 + sta DRV.BLK.Slotn0 ldx CONF.NIC lda .10,x @@ -317,7 +344,7 @@ VEDRIVE.Install ldx #PATCH.SIZE lda .10+1,x sta ZPPtr1+1 - + lda .20,x eor #$ff sta ZPnCnt @@ -325,49 +352,68 @@ VEDRIVE.Install ldx #PATCH.SIZE lda .20+1,x eor #$ff sta ZPnCnt+1 - + lda #DRV.NIC.START sta ZPPtr2 lda /DRV.NIC.START sta ZPPtr2+1 - - ldy #0 - -.4 inc ZPnCnt - bne .5 - - inc ZPnCnt+1 - beq .6 - -.5 lda (ZPPtr1),y - sta (ZPPtr2),y - iny - bne .4 - - inc ZPPtr1+1 - inc ZPPtr2+1 - bra .4 -.6 ldy #S.UDP + jsr VEDRIVE.Move -.7 lda ADT.REQ-1,y - sta DRV.OutBuf-1,y - dey + ldx #S.ARP + +.7 lda ARP.REP-1,x + sta DRV.ARPBuf-1,x + dex bne .7 + + ldx #S.UDP + +.8 lda ADT.REQ-1,x + sta DRV.UDPBuf-1,x + dex + bne .8 + + lda #ADT.CMD.VSD + sta DRV.UDPBuf.Env + + ldx #3 +.80 lda CONF.D1TOTALBLK,x + sta DRV.D1TotalBlks,x + dex + bpl .80 + bit RROMBNK1 clc rts *-------------------------------------- -.10 .DA DRV.U2 - .DA DRV.U2 +.10 .DA DRV.GS + .DA DRV.U1 .DA DRV.U2 *-------------------------------------- -.20 .DA DRV.U2.SIZE - .DA DRV.U2.SIZE +.20 .DA DRV.GS.SIZE + .DA DRV.U1.SIZE .DA DRV.U2.SIZE *-------------------------------------- - .INB usr/src/shared/x.printf.s +VEDRIVE.Move ldy #0 + +.1 inc ZPnCnt + bne .2 + + inc ZPnCnt+1 + beq .8 + +.2 lda (ZPPtr1),y + sta (ZPPtr2),y + iny + bne .1 + + inc ZPPtr1+1 + inc ZPPtr2+1 + bra .1 + +.8 rts *-------------------------------------- * ProDOS $BE41->$BE4B Patch for switching to BANK2 (10 bytes) *-------------------------------------- @@ -375,287 +421,20 @@ COPYRIGHT .AS "(C)APPLE " COPYRIGHT.LEN .EQ *-COPYRIGHT PATCH .PH DRV.EntryPoint bit RRAMWRAMBNK2 - jsr $D002 + jsr DRV.BLK.START bit RRAMWRAMBNK1 rts .EP PATCH.SIZE .EQ *-PATCH *-------------------------------------- -* Drivers -*-------------------------------------- -* OP = 2 : Write drv1 -* OP = 3 : Read drv1 -* OP = 4 : Write drv2 -* OP = 5 : Read drv2 -* CMD = $C5+OP+BLKLO+BLKHI+CHKSUM -* DO NOT trash DRV.COMMAND...DRV.BLKNUM as ProDOS -* reuses them after Block operation -* A1,A2 are used by Disk II Driver, -* so we use it safely as Tmp Ptr -*-------------------------------------- -DRV.A1L .EQ $3C -DRV.A1H .EQ $3D -DRV.A2L .EQ $3E -DRV.A2H .EQ $3F -DRV.COMMAND .EQ $42 -DRV.UNITNUM .EQ $43 -DRV.BUFF .EQ $44 -DRV.BLKNUM .EQ $46 -*-------------------------------------- -DRV.Write .EQ DRV.NIC.START -DRV.Read .EQ DRV.NIC.START+3 -*-------------------------------------- -DRV.OutBuf .EQ $D800-S.UDP-6 Frame Buffer = S.UDP+5+512+1 bytes -DRV.OutBuf.Env .EQ DRV.OutBuf+S.UDP -DRV.OutBuf.Cmd .EQ DRV.OutBuf+S.UDP+1 -DRV.OutBuf.BlkL .EQ DRV.OutBuf+S.UDP+2 -DRV.OutBuf.BlkH .EQ DRV.OutBuf+S.UDP+3 -DRV.OutBuf.Sum .EQ DRV.OutBuf+S.UDP+4 -DRV.OutBuf.Data .EQ DRV.OutBuf+S.UDP+5 -*-------------------------------------- -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 - - ldx #$ff return Status - ldy #$ff - -.8 lda #0 - clc - rts - -.1 cmp #3 - beq .8 Format .... - - bcs DRV.DO.CMD.ERR more....IO error - - ora #2 W=2,R=3 - ldy DRV.UNITNUM - bpl .2 - - adc #2 CC from bcs - -.2 sta DRV.OutBuf.Cmd store cmd - eor #ADT.CMD.VSD - eor DRV.BLKNUM - eor DRV.BLKNUM+1 - sta DRV.OutBuf.Sum Compute & store CheckSum - - lda DRV.BLKNUM - sta DRV.OutBuf.BlkL - lda DRV.BLKNUM+1 - sta DRV.OutBuf.BlkH -*-------------------------------------- - lda DRV.COMMAND - dec 1-1=0 if read - bne DRV.DO.CMD.W go write -*-------------------------------------- -* Read block -*-------------------------------------- -DRV.DO.CMD.R ldy #S.UDP+5 - lda /S.UDP+5 - - jsr DRV.Write - - - -DRV.DO.CMD.ERR - lda #MLI.E.IO - sec - rts -*-------------------------------------- -* Write Block -*-------------------------------------- -DRV.DO.CMD.W lda #$B1 lda (),y - - lda #MLI.E.IO - sec - rts -*-------------------------------------- -DRV.RWBYTE bit RRAMWRAMBNK1 - sta (DRV.BUFF),y - bit RRAMWRAMBNK2 - rts -*-------------------------------------- - .EP -*-------------------------------------- - .LIST ON -DRV.SIZE .EQ *-DRV - .LIST OFF -*-------------------------------------- -DRV.IP .PH $D400 - -DRV.IP.START ldy #S.IP.TOTAL.LENGTH+1 - lda ZPBufCnt - sec - sbc #S.ETH.EII - sta (ZPBufPtr),y - dey - lda ZPBufCnt+1 - sbc /S.ETH.EII - sta (ZPBufPtr),y - lda #0 - ldy #S.IP.HDR.CHECKSUM - sta (ZPBufPtr),y - iny - sta (ZPBufPtr),y - - stz ZPCheckSum RESET IP CHECKSUM - stz ZPCheckSum+1 - - clc - - ldy #S.IP.V.IHL - - ldx #10 10 words for IP Header - -.1 lda (ZPBufPtr),y - adc ZPCheckSum - sta ZPCheckSum - iny - lda (ZPBufPtr),y - adc ZPCheckSum+1 - sta ZPCheckSum+1 - iny - dex - bne .1 - - ldy #S.IP.HDR.CHECKSUM - lda ZPCheckSum - adc #0 - eor #$FF - sta (ZPBufPtr),y - iny - lda ZPCheckSum+1 - adc #0 - eor #$FF - sta (ZPBufPtr),y - rts -*-------------------------------------- - clc - - ldy #S.UDP.LENGTH+1 - lda (ZPBufPtr),y - adc #S.IP.PROTOCOL.UDP - sta ZPCheckSum+1 - - dey - lda (ZPBufPtr),y - adc /S.IP.PROTOCOL.UDP (all zero) - sta ZPCheckSum - - ldy #S.IP.SRC - ldx #4 4 words for SRC & DST IP - -.2 lda (ZPBufPtr),y - adc ZPCheckSum - sta ZPCheckSum - iny - lda (ZPBufPtr),y - adc ZPCheckSum+1 - sta ZPCheckSum+1 - iny - dex - bne .2 - - ldy #S.UDP.LENGTH+1 - lda (ZPBufPtr),y - eor #$ff - tax - - dey - lda (ZPBufPtr),y - eor #$ff - ldy #S.UDP.CHECKSUM - - phy Save Offset - pha Save !ByteCount.HI - - lda #0 Reset Checksum - sta (ZPBufPtr),y - iny - sta (ZPBufPtr),y - - >LDYA ZPBufPtr - >STYA ZPPtr1 - - ldy #S.IP - -.3 inx - bne .4 - - pla - inc - beq .8 - - pha -.4 lda (ZPPtr1),y - adc ZPCheckSum - sta ZPCheckSum - - iny - bne .5 - - inc ZPPtr1+1 -.5 inx - bne .6 - - pla - inc - beq .7 - - pha - -.6 lda (ZPPtr1),y - - adc ZPCheckSum+1 - sta ZPCheckSum+1 - iny - bne .3 - - inc ZPPtr1+1 - bra .3 - -.7 adc ZPCheckSum+1 A=0 from beq .7 - sta ZPCheckSum+1 - -.8 ply - lda ZPCheckSum - adc #0 Don't forget to add last carry!!! - eor #$FF - sta (ZPBufPtr),y - iny - lda ZPCheckSum+1 - adc #0 Don't forget to add last carry!!! - eor #$FF - sta (ZPBufPtr),y - rts -*-------------------------------------- - .EP -*-------------------------------------- - .LIST ON -DRV.IP.SIZE .EQ *-DRV.IP - .LIST OFF -*-------------------------------------- -* CONTROL SECTION : -*-------------------------------------- - .DO DRV.SIZE>255 - ERROR:DRV.SIZE too big - .FIN -*-------------------------------------- - - + .INB usr/src/shared/x.printf.s *-------------------------------------- .INB usr/src/sys/pm.vedrive.s.cf + .INB usr/src/sys/pm.vedrive.s.bk .INB usr/src/sys/pm.vedrive.s.ip + .INB usr/src/sys/pm.vedrive.s.gs .INB usr/src/sys/pm.vedrive.s.u1 .INB usr/src/sys/pm.vedrive.s.u2 - .INB usr/src/sys/pm.vedrive.s.gs *-------------------------------------- VEDRIVE.MSG0 .AZ "VEDRIVE (ADTPro Virtual Ethernet HD) Driver\n" VEDRIVE.DRVKO .AZ "VEDRIVE (Or other custom Driver) Already Installed.\n" @@ -703,6 +482,8 @@ CONF.MASK .HS 00000000 CONF.GATEWAY .HS 00000000 CONF.SERVER .HS 00000000 CONF.PORT .DA /1977,#1977 +CONF.D1TOTALBLK .DA $FFFF +CONF.D2TOTALBLK .DA $FFFF *-------------------------------------- MLIGETPREFIX.P .DA #1 .DA CONF.FILEPATH @@ -829,7 +610,7 @@ DHCP.REQ.OPT.SVRIP .BS 4 DHCP.REQ.END .EQ * DHCP.REQ.LEN .EQ *-DHCP.REQ *-------------------------------------- -ADT.REQ +ADT.REQ ADT.REQ.DSTMAC .BS 6 DST MAC ADT.REQ.SRCMAC .BS 6 .DA /S.ETH.EII.TYPE.IP diff --git a/SYS/PM.VSDRIVE.S.txt b/SYS/PM.VSDRIVE.S.txt index 80133c3e..6acf635c 100644 --- a/SYS/PM.VSDRIVE.S.txt +++ b/SYS/PM.VSDRIVE.S.txt @@ -370,8 +370,8 @@ PATCH.LEN .EQ *-PATCH *-------------------------------------- *DRV.PCL .EQ $3A *DRV.PCH .EQ $3B -*DRV.A1L .EQ $3C -*DRV.A1H .EQ $3D +DRV.A1L .EQ $3C +DRV.A1H .EQ $3D *DRV.A2L .EQ $3E *DRV.A2H .EQ $3F *--------------------------------------