diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index bb8ced2b..993fb87f 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/LIB/LIBTCPIP.S.IP.txt b/LIB/LIBTCPIP.S.IP.txt index 9acf6a5d..58562b4e 100644 --- a/LIB/LIBTCPIP.S.IP.txt +++ b/LIB/LIBTCPIP.S.IP.txt @@ -8,6 +8,7 @@ IP.IN ldy #S.IP.PROTOCOL bne .2 jmp ICMP.IN + .2 cmp #S.IP.PROTOCOL.UDP bne .3 diff --git a/LIB/LIBTCPIP.S.SKT.txt b/LIB/LIBTCPIP.S.SKT.txt index 8b3124a5..b25dd308 100644 --- a/LIB/LIBTCPIP.S.SKT.txt +++ b/LIB/LIBTCPIP.S.SKT.txt @@ -864,10 +864,14 @@ SKT.Recv clc ldy #S.SOCKET.T lda (ZPPtrSKT),y - cmp #S.SOCKET.T.STREAM - beq .99 + cmp #S.SOCKET.T.SEQPKT + bcc .10 + bne .99 STREAM + + jsr SKT.CheckTCP + bcs .91 - ldy #S.SOCKET.HQ.TAIL +.10 ldy #S.SOCKET.HQ.TAIL lda (ZPPtrSKT),y tax @@ -878,6 +882,7 @@ SKT.Recv clc inc cmp #S.SOCKET.HQ.MAX bne .1 + lda #0 .1 ldy #S.SOCKET.HQ.TAIL @@ -936,13 +941,13 @@ SKT.Recv clc clc .9 rts -.99 plp - lda #ERR.SKT.BAD +.99 lda #ERR.SKT.BAD +.91 plp sec rts -.90 plp - lda #0 no data +.90 lda #0 no data + plp sec rts */-------------------------------------- @@ -996,7 +1001,9 @@ SKT.Send.8 jsr SKT.SetFrameOutDstIP clc Queue if fail jmp FRM.SendIP *-------------------------------------- -SKT.Send.SEQPKT +SKT.Send.SEQPKT jsr SKT.CheckTCP + bcs SKT.Send.9 + >LDYA ZPDataInLen jsr TCP.NewFrame bcs SKT.Send.9 @@ -1076,12 +1083,13 @@ SKT.EOF.I ldy #S.SOCKET.TCP.INUSED * clc .9 rts *-------------------------------------- -SKT.CheckStream ldy #S.SOCKET.T - lda (ZPPtrSKT),y - cmp #S.SOCKET.T.STREAM - bne .99 +SKT.CheckStream lda #S.SOCKET.T.STREAM + + ldy #S.SOCKET.T + cmp (ZPPtrSKT),y + bne SKT.BAD - ldy #S.SOCKET.O +SKT.CheckTCP ldy #S.SOCKET.O lda (ZPPtrSKT),y and #S.SOCKET.O.ACCEPTCONN bne .99 @@ -1103,6 +1111,7 @@ SKT.CheckStream ldy #S.SOCKET.T .90 lda #ERR.SKT.NOCONN sec rts + .99 SKT.BAD lda #ERR.SKT.BAD sec @@ -1266,6 +1275,7 @@ SKT.AddToQueueA pha inc cmp #S.SOCKET.HQ.MAX bne .1 + lda #0 .1 ldy #S.SOCKET.HQ.TAIL diff --git a/LIB/LIBTCPIP.S.TCP.txt b/LIB/LIBTCPIP.S.TCP.txt index e6261664..acc78e2e 100644 --- a/LIB/LIBTCPIP.S.TCP.txt +++ b/LIB/LIBTCPIP.S.TCP.txt @@ -204,14 +204,16 @@ TCP.IN.JMP.ESTBLSH bne .52 jsr SKT.AddDataToSktIn yes, queue data if there is room for.... - bcs .9 - - bra .6 + bcc .6 + + rts .52 lda hFrameIn jsr SKT.AddToQueueA bcs .9 + stz hFrameIn DON'T DISCARD + .6 lda ZPDataInLen ldy ZPDataInLen+1 ldx #S.SOCKET.TCP.INSEQNUM diff --git a/SBIN/HTTPD.S.txt b/SBIN/HTTPD.S.txt index edf2b3d8..15d836d9 100644 --- a/SBIN/HTTPD.S.txt +++ b/SBIN/HTTPD.S.txt @@ -165,7 +165,7 @@ CS.RUN.INIT ldx #3 bcs CS.RUN.RTS >PUSHBI 0 no protocol - lda #S.SOCKET.T.SEQPACKET + lda #S.SOCKET.T.SEQPKT >LIBCALL hLIBTCPIP,LIBTCPIP.Socket bcs CS.RUN.RTS @@ -345,7 +345,7 @@ CS.RUN.CLIENT >LDYAI 1024 >STYA ZPRepPtr txa - >STA.G REQ.hBuf + >STA.G REP.hBuf .10 >STZ.G REQ.FullPath >STA.G REQ.hReq @@ -386,20 +386,16 @@ CS.RUN.CLIENT >LDYAI 1024 bcs .9 jsr CS.RUN.SendFile - bcc .5 - bra .90 + bcs .5 + + bcc .6 .9 >PUSHWI HTTP.404.len >PUSHW L.HTTP.404 >LDA.G CLN.hSocket >LIBCALL hLIBTCPIP,LIBTCPIP.Send - >STZ.G REQ.KeepAlive - -.5 >LDA.G REQ.hFile - beq .6 - - >SYSCALL FClose +.5 >STZ.G REQ.KeepAlive .6 >LDA.G REQ.hReq beq .8 @@ -410,12 +406,10 @@ CS.RUN.CLIENT >LDYAI 1024 beq .90 jmp .10 -.90 >LDA.G REQ.hBuf - beq .91 - +.90 >LDA.G REP.hBuf >SYSCALL freemem -.91 >PUSHW L.MSG.SKTCLOSE + >PUSHW L.MSG.SKTCLOSE >PUSHB.G CLN.hSocket >PUSHBI 1 >SYSCALL printf @@ -423,7 +417,7 @@ CS.RUN.CLIENT >LDYAI 1024 >LDA.G CLN.hSocket >LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown -.99 rts + rts *-------------------------------------- CS.RUN.REQ.GetReq >STA.G REQ.hReq @@ -577,15 +571,22 @@ CS.RUN.SendFile >PUSHW ZPRepPtr bcs .8 jsr CS.RUN.SendBuf - bcc .1 + bcs .9 - rts + bra .1 .8 cmp #MLI.E.EOF bne .9 clc -.9 rts + +.9 php + pha + >LDA.G REQ.hFile + >SYSCALL FClose + pla + plp + rts *-------------------------------------- CS.RUN.SendBuf >PUSHYA >PUSHW ZPRepPtr @@ -807,6 +808,7 @@ REQ.hFile .BS 1 REQ.hBuf .BS 1 REQ.MimeType .BS 1 REQ.KeepAlive .BS 1 +REP.hBuf .BS 1 CLN.hSocket .BS 1 DS.END .ED