diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index abdb7136..241e0cd9 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index 437fc3f3..6d3dca31 100644 Binary files a/.Floppies/A2OSX.SRC.po and b/.Floppies/A2OSX.SRC.po differ diff --git a/BIN/PING.S.txt b/BIN/PING.S.txt index 93821309..ec06ee29 100644 --- a/BIN/PING.S.txt +++ b/BIN/PING.S.txt @@ -35,7 +35,9 @@ CS.START cld .DA CS.DOEVENT .DA CS.QUIT L.LIBTCPIP .DA LIBTCPIP -L.Socket .DA Socket +L.SA.LOCAL .DA SA.LOCAL +L.SA.REMOTE .DA SA.REMOTE +L.SA.REMOTE.AD .DA SA.REMOTE+S.SOCKADDR.ADDR L.ICMP.Request .DA ICMP.Request L.MSG.IPKO .DA MSG.IPKO L.MSG.USAGE .DA MSG.USAGE @@ -71,10 +73,11 @@ CS.RUN.IPOK >SYSCALL ArgV bcs .8 >STYA ZPTmpPtr + >SYSCALL puts lda (ZPTmpPtr) cmp #'-' - bne .2 + bne .21 ldy #1 lda (ZPTmpPtr),y @@ -89,9 +92,9 @@ CS.RUN.IPOK >STA.G PingCount bra .1 - jsr Init.Timeout +.21 jsr Init.Timeout -.2 >PUSHEA.G DST.IP +.2 >PUSHW L.SA.REMOTE.AD >PUSHW ZPTmpPtr >LIBCALL hLIBTCPIP,LIBTCPIP.HST.GETBYNAME bcc .3 @@ -108,7 +111,7 @@ CS.RUN.IPOK >STA.G ArgHostName jmp .1 -.8 >LDA.G DST.IP +.8 lda SA.REMOTE+S.SOCKADDR.ADDR bne CS.RUN.ARGSOK .9 >PUSHBI 0 @@ -124,13 +127,10 @@ CS.RUN.ARGSOK >LDA.G ArgHostName >SYSCALL ArgV >PUSHYA - ldy #DST.IP+3 ldx #3 -.1 lda (pData),y - sta Socket.Dst.Addr,x +.1 lda SA.REMOTE+S.SOCKADDR.ADDR,x >PUSHA - dey dex bpl .1 @@ -142,21 +142,22 @@ CS.RUN.OPENSKT ldx #3 ldy #S.IPCFG.IP+3 .1 lda (ZPIPCfgPtr),y - sta Socket.Src.Addr,x + sta SA.LOCAL+S.SOCKADDR.ADDR,x dey dex bpl .1 ldy #Identifier lda A2OSX.RANDOM16 - sta Socket.Dst.Port + sta SA.REMOTE+S.SOCKADDR.PORT sta (pData),y iny lda A2OSX.RANDOM16+1 - sta Socket.Dst.Port+1 + sta SA.REMOTE+S.SOCKADDR.PORT+1 sta (pData),y - >PUSHW L.Socket + >PUSHBI S.IP.PROTOCOL.ICMP + lda #S.SOCKET.T.RAW >LIBCALL hLIBTCPIP,LIBTCPIP.socket bcc .2 @@ -167,6 +168,12 @@ CS.RUN.OPENSKT ldx #3 rts .2 >STA.G hSocket + pha + >PUSHW L.SA.LOCAL + pla + >LIBCALL hLIBTCPIP,LIBTCPIP.Bind + bcc CS.RUN.SEND.ECHO + rts CS.RUN.SEND.ECHO ldy #Identifier @@ -251,13 +258,11 @@ CS.DOEVENT lda (pEvent) rts *-------------------------------------- CS.Print.UNREACH - ldx #4 - ldy #DST.IP+3 + ldx #3 -.1 >PUSHB (pData),y - dey +.1 >PUSHB SA.LOCAL+S.SOCKADDR.ADDR,x dex - bne .1 + bpl .1 >PUSHBI 4 >LDYA L.MSG.UNREACH @@ -349,14 +354,15 @@ MSG.UNREACH .AZ "%d.%d.%d.%d: TimeOut/Host unreachable\r\n" MSG.REPLY .AZ "32 bytes from %d.%d.%d.%d, icmp_seq=%D, ttl=%d, time=%D ms\r\n" hLIBTCPIP .BS 1 *-------------------------------------- -Socket .DA #S.SOCKET.T.RAW +SA.LOCAL .DA #AF.INET S.SOCKADDR.AF .BS 1 - .DA #S.IP.PROTOCOL.ICMP + .BS 4 S.SOCKADDR.ADDR + .BS 2 S.SOCKADDR.PORT +*-------------------------------------- +SA.REMOTE .DA #AF.INET S.SOCKADDR.AF .BS 1 -Socket.Src.Addr .BS 4 -Socket.Src.Port .DA 0 Dynamic -Socket.Dst.Addr .BS 4 -Socket.Dst.Port .DA 0 Identifier + .BS 4 S.SOCKADDR.ADDR + .BS 2 *-------------------------------------- ICMP.Request .DA #S.ICMP.TYPE.ECHOREQ .DA #0 CODE @@ -373,7 +379,6 @@ DS.START ArgIndex .BS 1 PingCount .BS 1 ArgHostName .BS 1 -DST.IP .BS 4 hSocket .BS 1 hFrame .BS 1 Identifier .BS 2