diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index fbdff32a..c5bf8b48 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BIN/NETSTAT.S.txt b/BIN/NETSTAT.S.txt index 9340cf7c..35c7eddf 100644 --- a/BIN/NETSTAT.S.txt +++ b/BIN/NETSTAT.S.txt @@ -11,8 +11,13 @@ AUTO 4,1 .INB INC/ETH.I .INB INC/LIBTCPIP.I *-------------------------------------- -ZPPTR1 .EQ ZPBIN -ZPPTR2 .EQ ZPBIN+2 + .DUMMY + .OR ZPBIN +ZS.START +ZPPTR1 .BS 2 +ZPPTR2 .BS 2 +SocketIndex .BS 1 +ZS.END .ED *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -21,10 +26,10 @@ CS.START cld .DA #$61 6502,Level 1 (65c02) .DA #1 BIN Layout Version 1 .DA 0 - .DA CS.END-CS.START CS - .DA DS.END-DS.START DS - .DA #64 SS - .DA #4 ZP + .DA CS.END-CS.START Code Size (without Constants) + .DA DS.END-DS.START Data SegmentSize + .DA #32 Stack Size + .DA #ZS.END-ZS.START Zero Page Size .DA 0 *-------------------------------------- * Relocation Table @@ -73,10 +78,9 @@ CS.RUN >LDYA L.MSG0 >LIBCALL hLIBTCPIP,LIBTCPIP.GetTable >STYA ZPPTR1 - >STZ.G SocketCount + ldy SocketIndex -.1 tay - lda (ZPPTR1),y +.1 lda (ZPPTR1),y beq .7 >SYSCALL GetMemPtr @@ -84,34 +88,37 @@ CS.RUN >LDYA L.MSG0 lda (ZPPTR2) cmp #AF.INET -* bne .7 + bne .7 - jsr CS.RUN.S + jsr CS.RUN.S 2 bytes ldy #S.SOCKET.O - >PUSHB (ZPPTR2),y + >PUSHB (ZPPTR2),y ..3 ldy #S.SOCKET.REM.PORT+1 -.2 >PUSHB (ZPPTR2),y +.2 >PUSHB (ZPPTR2),y ..15 dey cpy #S.SOCKET.LOC.ADDR-1 bne .2 - jsr CS.RUN.P - jsr CS.RUN.T + jsr CS.RUN.P ..17 + jsr CS.RUN.T ..19 >PUSHBI 19 >LDYA L.MSG1 + >DEBUG >SYSCALL printf + bcs .9 -.7 >INC.G SocketCount - cmp #K.SKTTABLE.SIZE +.7 inc SocketIndex + ldy SocketIndex + cpy #K.SKTTABLE.SIZE bne .1 lda #0 tell TSKMGR that all done ok, but sec we do not want to stay in memory - rts +.9 rts *-------------------------------------- CS.RUN.S ldy #S.SOCKET.TCP.S lda (ZPPTR2),y @@ -202,7 +209,6 @@ MSG1.S.INV .AZ "???" .DUMMY .OR 0 DS.START -SocketCount .BS 1 DS.END .ED *-------------------------------------- diff --git a/DRV/UTHERNET.DRV.S.txt b/DRV/UTHERNET.DRV.S.txt index 1b205205..2e78afef 100644 --- a/DRV/UTHERNET.DRV.S.txt +++ b/DRV/UTHERNET.DRV.S.txt @@ -475,17 +475,22 @@ WRITE php lda #PP.BusST sta PacketPagePTR,x - ldy #16 + lda #16 -.1 lda PacketPageDATA+1,x +.1 pha + + lda PacketPageDATA+1,x + ldy PacketPageDATA,x and /PP.BusST.Rdy4TxNOW bne WRITE.1 - lda PacketPageDATA,x - and #PP.BusST.TxBidErr - bne .9 + tya +* and #PP.BusST.TxBidErr +* bne .9 + bmi .9 - dey + pla + dec bne .1 .9 lda #E.NODATA diff --git a/LIB/LIBTCPIP.S.SKT.txt b/LIB/LIBTCPIP.S.SKT.txt index c946712b..b76760ea 100644 --- a/LIB/LIBTCPIP.S.SKT.txt +++ b/LIB/LIBTCPIP.S.SKT.txt @@ -397,12 +397,12 @@ SKT.Read jsr SKT.PullhFDDataInPtrLen jsr SKT.CheckStream bcs .99 I/O error - ldy #S.SOCKET.TCP.O - lda (ZPPtrSKT),y - bit #S.TCP.OPTIONS.ACK - beq .8 +* ldy #S.SOCKET.TCP.O +* lda (ZPPtrSKT),y +* bit #S.TCP.OPTIONS.ACK +* beq .8 - jsr TCP.OUT.SendOptA +* jsr TCP.OUT.SendOptA .8 lda #E.NODATA sec @@ -514,9 +514,12 @@ SKT.GetDataFromSktIn .80 jsr SKT.StoreTCB - jsr TCP.SetSocketTCPO.ACK Send the new WSIZE + lda #S.TCP.OPTIONS.ACK + jsr TCP.OUT.SendOptA + +* jsr TCP.SetSocketTCPO.ACK - jsr TCP.OUT.I SKT.GetTCB already called +* jsr TCP.OUT.I SKT.GetTCB already called >LDYA ZPTmpPtr3 clc @@ -1053,13 +1056,31 @@ SKT.AddToQueueA pha * Dst : hInMem/INHEAD *-------------------------------------- SKT.AddDataToSktIn + .DO IPDEBUG=2 + ldx #3 +.91 lda SKT.Cache+S.SOCKET.TCP.INLASTSEQNUM,x + >PUSHA + dex + bpl .91 + + ldy #S.TCP.SEQNUM+3 +.92 lda (ZPFrameInPtr),y + >PUSHA + dey + cpy #S.TCP.SEQNUM-1 + bne .92 + >PUSHBI 8 + >LDYA L.MSG.SEQNUM + >SYSCALL printf + .FIN + ldx SKT.Cache+S.SOCKET.TCP.INFREE cpx ZPDataInLen lda SKT.Cache+S.SOCKET.TCP.INFREE+1 sbc ZPDataInLen+1 bcc .9 Not enough room in Q - ldy #S.TCP.SEQNUM+3 +.66 ldy #S.TCP.SEQNUM+3 ldx #3 .10 lda (ZPFrameInPtr),y diff --git a/LIB/LIBTCPIP.S.txt b/LIB/LIBTCPIP.S.txt index 7a852d7f..561a3978 100644 --- a/LIB/LIBTCPIP.S.txt +++ b/LIB/LIBTCPIP.S.txt @@ -158,6 +158,9 @@ J.SKT.send .DA SKT.send.RAW .DO IPDEBUG=1 L.MSG.FRM.Dump .DA MSG.FRM.Dump L.MSG.SKT.Dump .DA MSG.SKT.Dump + .FIN + .DO IPDEBUG=2 +L.MSG.SEQNUM .DA MSG.SEQNUM .FIN .DA 0 *-------------------------------------- @@ -464,6 +467,9 @@ IP.CHECKSUM .BS 2 MSG.FRM.Dump .AZ "FRM:SRC=%d.%d.%d.%d:%D DST=%d.%d.%d.%d:%D\r\n" MSG.SKT.Dump .AZ "SKT:LOC=%d.%d.%d.%d:%D REM=%d.%d.%d.%d:%D\r\n" .FIN + .DO IPDEBUG=2 +MSG.SEQNUM .AZ "FRM:%h%h%h%h,SKT:%h%h%h%h\r\n" + .FIN *-------------------------------------- MAN SAVE USR/SRC/LIB/LIBTCPIP.S diff --git a/SBIN/GETTY.S.txt b/SBIN/GETTY.S.txt index f195170d..b7ff0a7d 100644 --- a/SBIN/GETTY.S.txt +++ b/SBIN/GETTY.S.txt @@ -59,15 +59,6 @@ L.ENV.TERM .DA ENV.TERM *-------------------------------------- CS.INIT clc rts - -TEST lda ArgProg - >SYSCALL ArgV - >PUSHYA - lda hErr - >SYSCALL fputs - rts - - *-------------------------------------- CS.RUN ldy #S.PS.ARGC lda (pPs),y @@ -208,7 +199,8 @@ CS.RUN.IACMODE >SYSCALL GetChar Wait for IAC CMD (or SB) >SYSCALL GetChar Wait for IAC SUBCMD bcs CS.RUN.9 - ldx IAC.SUBCMD + sta IAC.SUBCMD + tax lda IAC.CMD cmp #SB diff --git a/SYS/KERNEL.S.TERM.txt b/SYS/KERNEL.S.TERM.txt index 5f75d01e..0414e36c 100644 --- a/SYS/KERNEL.S.TERM.txt +++ b/SYS/KERNEL.S.TERM.txt @@ -1245,22 +1245,29 @@ DRV.TERM.Title.ON ldy #0 .1 lda (ZPTmpWord),y - beq .2 + beq .3 + cmp #$40 + bcc .2 - phy + cmp #$60 + bcs .2 + + and #$1F remap UPPERCASE + +.2 phy jsr SetCharAtY.SCR ply iny bne .1 -.2 lda #C.SPACE +.3 lda #C.SPACE -.3 phy +.4 phy jsr SetCharAtY.SCR ply iny cpy #80 - bne .3 + bne .4 DRV.TERM.Title.RTS rts