diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 7e7e92b7..87d36f4e 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 bc07d945..e535d002 100644 --- a/BIN/NETSTAT.S.txt +++ b/BIN/NETSTAT.S.txt @@ -162,7 +162,7 @@ CS.END libtcpip .az "libtcpip" hLIBTCPIP .BS 1 MSG0 .AZ "Type Prot Local Remote Options Status" -MSG1 .AZ "%s %s %03d.%03d.%03d.%03d:%05D %03d.%03d.%03d.%03d:%05D %b %s\r\n" +MSG1 .AZ "%s %s %3d.%3d.%3d.%3d:%5D %3d.%3d.%3d.%3d:%5D %b %s\r\n" MSG1.T.RAW .AZ "RAW " MSG1.T.DGRAM .AZ "DGRAM " MSG1.T.SEQPKT .AZ "SEQPKT" diff --git a/BIN/PING.S.txt b/BIN/PING.S.txt index 1779e70a..af803567 100644 --- a/BIN/PING.S.txt +++ b/BIN/PING.S.txt @@ -28,6 +28,8 @@ hFrame .BS 1 PingCount .BS 1 TimeOut .BS 1 +IP.Remote .BS 4 + ZS.END .ED *-------------------------------------- * File Header (16 Bytes) @@ -49,9 +51,6 @@ CS.START cld .DA CS.DOEVENT .DA CS.QUIT L.LIBTCPIP .DA LIBTCPIP -L.SA.LOCAL .DA SA.LOCAL -L.SA.REMOTE .DA SA.REMOTE -L.SA.REMOTE.AD .DA SA.REMOTE+S.SOCKADDR.ADDR L.MSG.IPKO .DA MSG.IPKO L.MSG.USAGE .DA MSG.USAGE L.MSG.UNKNOWN .DA MSG.UNKNOWN @@ -71,7 +70,7 @@ CS.INIT >LDYA L.LIBTCPIP CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ? >STYA ZPIPCfgPtr lda (ZPIPCfgPtr) Configured ? - bmi CS.RUN.IPOK + bmi .1 >LDYA L.MSG.IPKO >SYSCALL puts @@ -79,6 +78,14 @@ CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ? sec rts +.1 ldy #DATA.Len-1 + +.2 lda ICMP.Request,y + sta (pData),y + dey + bpl .2 + + CS.RUN.IPOK inc ArgIndex lda ArgIndex >SYSCALL ArgV @@ -106,7 +113,7 @@ CS.RUN.IPOK inc ArgIndex .1 lda #TIMEOUT.MAX sta Timeout -.2 >PUSHW L.SA.REMOTE.AD +.2 >PUSHEA.G SA.REMOTE+S.SOCKADDR.ADDR >PUSHW ZPTmpPtr >LIBCALL hLIBTCPIP,LIBTCPIP.HST.GETBYNAME bcc .3 @@ -124,7 +131,7 @@ CS.RUN.IPOK inc ArgIndex sta ArgHostName bra CS.RUN.IPOK -.8 lda SA.REMOTE+S.SOCKADDR.ADDR +.8 >LDA.G SA.REMOTE+S.SOCKADDR.ADDR bne CS.RUN.ARGSOK .9 >PUSHBI 0 @@ -140,9 +147,11 @@ CS.RUN.ARGSOK lda ArgHostName >PUSHYA ldx #3 + ldy #SA.REMOTE+S.SOCKADDR.ADDR+3 -.1 lda SA.REMOTE+S.SOCKADDR.ADDR,x +.1 lda (pData),y >PUSHA + dey dex bpl .1 @@ -154,19 +163,30 @@ CS.RUN.OPENSKT ldx #3 ldy #S.IPCFG.IP+3 .1 lda (ZPIPCfgPtr),y - sta SA.LOCAL+S.SOCKADDR.ADDR,x + sta IP.Remote,x dey dex bpl .1 + ldx #3 + ldy #SA.LOCAL+S.SOCKADDR.ADDR+3 + +.2 lda IP.Remote,x + sta (pData),y + dey + dex + bpl .2 + lda A2OSX.RANDOM16 - sta SA.LOCAL+S.SOCKADDR.PORT - sta SA.REMOTE+S.SOCKADDR.PORT + eor A2osX.TIMER16+1 + >STA.G SA.LOCAL+S.SOCKADDR.PORT + >STA.G SA.REMOTE+S.SOCKADDR.PORT sta Identifier lda A2OSX.RANDOM16+1 - sta SA.LOCAL+S.SOCKADDR.PORT+1 - sta SA.REMOTE+S.SOCKADDR.PORT+1 + eor A2osX.TIMER16 + >STA.G SA.LOCAL+S.SOCKADDR.PORT+1 + >STA.G SA.REMOTE+S.SOCKADDR.PORT+1 sta Identifier+1 >PUSHBI S.IP.PROTOCOL.ICMP @@ -176,30 +196,25 @@ CS.RUN.OPENSKT ldx #3 sta hSocket - >PUSHW L.SA.LOCAL + >PUSHEA.G SA.LOCAL lda hSocket >LIBCALL hLIBTCPIP,LIBTCPIP.Bind bcs .9 - >PUSHW L.SA.REMOTE + >PUSHEA.G SA.REMOTE lda hSocket >LIBCALL hLIBTCPIP,LIBTCPIP.Connect - bcc CS.RUN.SEND + bcc CS.RUN.SEND.ECHO .9 >LDYA L.MSG.SKTKO >SYSCALL puts lda #E.SYN sec rts - -CS.RUN.SEND ldy #ICMP.RequestLen-1 - -.1 lda ICMP.Request,y - sta (pData),y - dey - bpl .1 CS.RUN.SEND.ECHO + >SLEEP + lda Identifier >STA.G Request-S.IP+S.ICMP.IDENTIFIER+1 @@ -288,8 +303,11 @@ CS.DOEVENT lda (pEvent) *-------------------------------------- CS.Print.UNREACH ldx #3 + ldy #SA.REMOTE+S.SOCKADDR.ADDR+3 -.1 >PUSHB SA.REMOTE+S.SOCKADDR.ADDR,x +.1 lda (pData),y + >PUSHA + dey dex bpl .1 @@ -367,16 +385,6 @@ 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 *-------------------------------------- -SA.LOCAL .DA #AF.INET S.SOCKADDR.AF - .BS 1 - .BS 4 S.SOCKADDR.ADDR - .BS 2 S.SOCKADDR.PORT -*-------------------------------------- -SA.REMOTE .DA #AF.INET S.SOCKADDR.AF - .BS 1 - .BS 4 S.SOCKADDR.ADDR - .BS 2 -*-------------------------------------- ICMP.Request .DA #S.ICMP.TYPE.ECHOREQ .DA #0 CODE .DA 0 CHECKSUM @@ -385,13 +393,25 @@ ICMP.Request .DA #S.ICMP.TYPE.ECHOREQ .AS "ABCDEFGHIJKLMNOP" .AS "QRSTUVWXYZ012345" ICMP.RequestLen .EQ *-ICMP.Request +*-------------------------------------- + .DA #AF.INET S.SOCKADDR.AF + .BS 1 + .BS 4 S.SOCKADDR.ADDR + .BS 2 S.SOCKADDR.PORT +*-------------------------------------- + .DA #AF.INET S.SOCKADDR.AF + .BS 1 + .BS 4 S.SOCKADDR.ADDR + .BS 2 +DATA.Len .EQ *-ICMP.Request *-------------------------------------- .DUMMY .OR 0 DS.START Request .BS ICMP.RequestLen -DS.END - .ED +SA.LOCAL .BS S.SOCKADDR +SA.REMOTE .BS S.SOCKADDR +DS.END .ED *-------------------------------------- MAN SAVE USR/SRC/BIN/PING.S diff --git a/LIB/LIBTCPIP.S.FRM.txt b/LIB/LIBTCPIP.S.FRM.txt index e308f750..f8d0cd36 100644 --- a/LIB/LIBTCPIP.S.FRM.txt +++ b/LIB/LIBTCPIP.S.FRM.txt @@ -19,18 +19,22 @@ FRM.GetTargetSKT.TCPUDP FRM.GetTargetSKT.RAW ldy #S.IP.SRC+3 ldx #3 + .1 lda (ZPFrameInPtr),y sta SKT.REM.ADDR+S.SOCKADDR.ADDR,x dey dex bpl .1 + ldy #S.IP.DST+3 ldx #3 + .2 lda (ZPFrameInPtr),y sta SKT.LOC.ADDR+S.SOCKADDR.ADDR,x dey dex bpl .2 + rts *-------------------------------------- * FRM.NewIP diff --git a/LIB/LIBTCPIP.S.ICMP.txt b/LIB/LIBTCPIP.S.ICMP.txt index b684ed2f..96fc1aa2 100644 --- a/LIB/LIBTCPIP.S.ICMP.txt +++ b/LIB/LIBTCPIP.S.ICMP.txt @@ -41,12 +41,13 @@ ICMP.IN.ECHOREQ ldy #S.IP.DST+3 ICMP.IN.EXIT jmp FRM.DiscardIn *-------------------------------------- ICMP.IN.ECHOREP jsr FRM.GetTargetSKT.RAW + ldy #S.ICMP.IDENTIFIER lda (ZPFrameInPtr),y - sta SKT.LOC.ADDR+S.SOCKADDR.PORT+1 + sta SKT.REM.ADDR+S.SOCKADDR.PORT+1 iny lda (ZPFrameInPtr),y - sta SKT.LOC.ADDR+S.SOCKADDR.PORT + sta SKT.REM.ADDR+S.SOCKADDR.PORT jsr SKT.FindMatchingLocRem bcs ICMP.IN.EXIT diff --git a/LIB/LIBTCPIP.S.SKT.txt b/LIB/LIBTCPIP.S.SKT.txt index 8cd69c86..71b75dc2 100644 --- a/LIB/LIBTCPIP.S.SKT.txt +++ b/LIB/LIBTCPIP.S.SKT.txt @@ -1235,12 +1235,14 @@ SKT.FindMatchingLocRem lda (ZPPtrSKT),y bne .44 + .43 ldy #S.SOCKET.REM.PORT Frame is Broadcast, or listening is 0.0.0.0 check port only .42 lda (ZPPtrSKT),y .44 cmp SKT.REM.ADDR+S.SOCKADDR.ADDR-S.SOCKET.REM.ADDR,y bne .8 wrong remote host, exit.... + iny cpy #S.SOCKET.REM.PORT+2 bne .42 @@ -1253,7 +1255,7 @@ SKT.FindMatchingLocRem cpx #K.SKTTABLE.SIZE bne .1 -.9 sec +* sec rts *-------------------------------------- SKT.AddToQueueA pha diff --git a/SBIN/TELNETD.S.txt b/SBIN/TELNETD.S.txt index 40af3d04..a5fa0f9e 100644 --- a/SBIN/TELNETD.S.txt +++ b/SBIN/TELNETD.S.txt @@ -243,7 +243,7 @@ MSG.INCOMING .AZ "TELNETD:Incoming Connection [SKT=%h] From : %d.%d.%d.%d\r\n" MSG.EXECERR .AZ "TELNETD:ExecL failed $%h." *-------------------------------------- NOD.Template .AZ "/dev/tty%h" -CMD.Template .AZ "${ROOT}SBIN/GETTY -E %s ${ROOT}SBIN/LOGIN" +CMD.Template .AZ "${ROOT}sbin/getty -E %s ${ROOT}sbin/login" *-------------------------------------- SA.LOCAL .DA #AF.INET S.SOCKADDR.AF .BS 1 diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index 248b349c..cd973f9e 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -971,9 +971,9 @@ EvtMgrInit >LDYAI MSG.EVT >SYSCALL2 puts stz CORE.EvtCount lda #$A5 - sta A2osX.TIMER16 + sta A2osX.RANDOM16 lda #$9B - sta A2osX.TIMER16+1 + sta A2osX.RANDOM16+1 lda /Evt.Table sta pEvent+1 diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index 5a1be2ae..5ceb14bc 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -404,9 +404,9 @@ PrintF.ESC jmp (.1,x) *-------------------------------------- PrintFTBL1 .AS "bdDuefhHiILsS" PrintFTBL1.Cnt .EQ *-PrintFTBL1 -PrintFTBL2 .AS "befnrtv\%" +PrintFTBL2 .AS "abefnrtv\%" PrintFTBL2.Cnt .EQ *-PrintFTBL2 -PrintFTBL2.OUT .HS 08.1B.0C.0A.0D.09.0B \b\e\f\n\r\t\v +PrintFTBL2.OUT .HS 07.08.1B.0C.0A.0D.09.0B \a\b\e\f\n\r\t\v .DA #'\' \\ .DA #'%' \% *-------------------------------------- diff --git a/SYS/KERNEL.S.TERM.txt b/SYS/KERNEL.S.TERM.txt index aacf6a18..c80b53f7 100644 --- a/SYS/KERNEL.S.TERM.txt +++ b/SYS/KERNEL.S.TERM.txt @@ -180,14 +180,15 @@ DRV.TERM.READ jsr DRV.TERM.GetIOCTLBufCntDCB lda OPENAPPLE bpl .1 - lda KBD - bmi .6 Open apple key, not for us... jsr DRV.TERM.Title.ON - bra .6 + + bra .6 Open apple key, not for us... + .1 jsr DRV.TERM.Title.OFF lda KBD + sta A2osX.RANDOM16 bpl .6 sta KBDSTROBE diff --git a/SYS/KERNEL.S.TERMLC.txt b/SYS/KERNEL.S.TERMLC.txt index d495c40b..ccbf4e71 100644 --- a/SYS/KERNEL.S.TERMLC.txt +++ b/SYS/KERNEL.S.TERMLC.txt @@ -149,7 +149,8 @@ SetCharAtCurPos pha cpy #80 bcs SetCharAtYX.8 *-------------------------------------- -SetCharAtYX cmp #$40 +SetCharAtYX ror A2osX.RANDOM16+1 + cmp #$40 bcc .1 cmp #$60 bcs .1