A2osX/BIN/NETSTAT.S.txt

212 lines
4.2 KiB
Plaintext
Raw Normal View History

2016-02-24 20:00:42 +00:00
NEW
2018-11-17 17:17:13 +00:00
PREFIX
2017-12-22 21:24:30 +00:00
AUTO 4,1
2016-02-24 20:00:42 +00:00
.LIST OFF
.OP 65C02
.OR $2000
2018-07-23 15:28:42 +00:00
.TF BIN/NETSTAT
2016-02-24 20:00:42 +00:00
*--------------------------------------
2018-07-23 15:28:42 +00:00
.INB INC/MACROS.I
.INB INC/A2OSX.I
.INB INC/ETH.I
.INB INC/LIBTCPIP.I
2016-02-24 20:00:42 +00:00
*--------------------------------------
ZPPTR1 .EQ ZPBIN
2018-10-10 06:24:38 +00:00
ZPPTR2 .EQ ZPBIN+2
2016-02-24 20:00:42 +00:00
*--------------------------------------
* File Header (16 Bytes)
*--------------------------------------
CS.START cld
jmp (.1,x)
.DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1
.DA 0
2018-06-15 15:15:48 +00:00
.DA CS.END-CS.START CS
.DA DS.END-DS.START DS
.DA #64 SS
2018-10-10 06:24:38 +00:00
.DA #4 ZP
2016-02-24 20:00:42 +00:00
.DA 0
*--------------------------------------
* Relocation Table
*--------------------------------------
.1 .DA CS.INIT
.DA CS.RUN
.DA CS.DOEVENT
.DA CS.QUIT
L.LIBTCPIP .DA LIBTCPIP
L.MSG0 .DA MSG0
L.MSG1 .DA MSG1
2018-10-10 15:39:22 +00:00
L.MSG1.T .DA MSG1.T.RAW
.DA MSG1.T.DGRAM
.DA MSG1.T.SEQPKT
.DA MSG1.T.STREAM
.DA MSG1.T.INV
L.MSG1.P .DA MSG1.P.ICMP
.DA MSG1.P.TCP
.DA MSG1.P.UDP
.DA MSG1.P.INV
2016-02-24 20:00:42 +00:00
L.MSG1.S .DA MSG1.S.0
.DA MSG1.S.1
.DA MSG1.S.2
.DA MSG1.S.3
.DA MSG1.S.4
.DA MSG1.S.5
.DA MSG1.S.6
.DA MSG1.S.7
.DA MSG1.S.8
.DA MSG1.S.9
.DA MSG1.S.10
2018-10-10 15:39:22 +00:00
.DA MSG1.S.INV
2016-02-24 20:00:42 +00:00
.DA 0
*--------------------------------------
CS.INIT >LDYA L.LIBTCPIP
2018-07-19 15:33:55 +00:00
>SYSCALL LoadLib
bcs .9
2016-02-24 20:00:42 +00:00
sta hLIBTCPIP
2018-11-12 09:22:06 +00:00
.9 rts
*--------------------------------------
CS.RUN >LDYA L.MSG0
2018-08-23 15:16:20 +00:00
>SYSCALL puts
2016-02-24 20:00:42 +00:00
2018-10-10 15:39:22 +00:00
>LIBCALL hLIBTCPIP,LIBTCPIP.GetTable
2016-02-24 20:00:42 +00:00
>STYA ZPPTR1
2018-10-10 06:24:38 +00:00
>STZ.G SocketCount
2017-03-09 07:11:44 +00:00
2018-10-10 06:24:38 +00:00
.1 tay
lda (ZPPTR1),y
2016-02-24 20:00:42 +00:00
beq .7
2018-10-10 15:39:22 +00:00
2018-10-10 06:24:38 +00:00
>SYSCALL GetMemPtr
>STYA ZPPTR2
2018-10-10 15:39:22 +00:00
lda (ZPPTR2)
cmp #AF.INET
* bne .7
jsr CS.RUN.S
2016-02-24 20:00:42 +00:00
2018-09-28 15:24:44 +00:00
ldy #S.SOCKET.O
2018-10-10 06:24:38 +00:00
>PUSHB (ZPPTR2),y
2016-02-24 20:00:42 +00:00
2018-10-10 06:24:38 +00:00
ldy #S.SOCKET.REM.PORT+1
2018-09-13 06:22:07 +00:00
2018-10-10 06:24:38 +00:00
.2 >PUSHB (ZPPTR2),y
2016-02-24 20:00:42 +00:00
dey
2018-10-10 06:24:38 +00:00
cpy #S.SOCKET.LOC.ADDR-1
2016-02-24 20:00:42 +00:00
bne .2
2018-10-10 15:39:22 +00:00
jsr CS.RUN.P
jsr CS.RUN.T
>PUSHBI 19
>LDYA L.MSG1
2018-06-21 15:12:10 +00:00
>SYSCALL printf
2016-02-24 20:00:42 +00:00
2018-10-10 06:24:38 +00:00
.7 >INC.G SocketCount
cmp #K.SKTTABLE.SIZE
bne .1
2016-02-24 20:00:42 +00:00
2018-10-10 06:24:38 +00:00
lda #0 tell TSKMGR that all done ok, but
2016-02-24 20:00:42 +00:00
sec we do not want to stay in memory
rts
*--------------------------------------
2018-10-10 15:39:22 +00:00
CS.RUN.S ldy #S.SOCKET.TCP.S
lda (ZPPTR2),y
cmp #S.SOCKET.TCP.S.TIMEWT+1
bcc .1
lda #S.SOCKET.TCP.S.TIMEWT+1
.1 asl
tax
>PUSHB L.MSG1.S+1,x
>PUSHB L.MSG1.S,x
rts
*--------------------------------------
CS.RUN.P ldy #S.SOCKET.PROTO
lda (ZPPTR2),y
ldx #0
.3 cmp PROTO,x
beq .4
inx
cpx #PROTO.Cnt
bne .3
.4 txa
asl
tax
>PUSHB L.MSG1.P+1,x
>PUSHB L.MSG1.P,x
rts
*--------------------------------------
CS.RUN.T ldy #S.SOCKET.T
lda (ZPPTR2),y
tax
cpx #S.SOCKET.T.STREAM+1
bcc .5
ldx #S.SOCKET.T.STREAM+1
.5 >PUSHB L.MSG1.T+1,x
>PUSHB L.MSG1.T,x
rts
*--------------------------------------
CS.DOEVENT sec
2016-02-24 20:00:42 +00:00
rts
*--------------------------------------
CS.QUIT lda hLIBTCPIP
beq .8
2018-07-20 14:10:10 +00:00
>SYSCALL UnloadLib
.8 clc
2016-02-24 20:00:42 +00:00
rts
*--------------------------------------
CS.END
2018-10-10 06:24:38 +00:00
LIBTCPIP .AZ "libtcpip"
2019-01-17 15:05:48 +00:00
hLIBTCPIP .BS 1
2018-10-10 15:39:22 +00:00
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.T.RAW .AZ "RAW "
MSG1.T.DGRAM .AZ "DGRAM "
MSG1.T.SEQPKT .AZ "SEQPKT"
MSG1.T.STREAM .AZ "STREAM"
MSG1.T.INV .AZ "??? "
PROTO .DA #S.IP.PROTOCOL.ICMP,#S.IP.PROTOCOL.TCP,#S.IP.PROTOCOL.UDP
PROTO.Cnt .EQ *-PROTO
MSG1.P.ICMP .AZ "ICMP"
MSG1.P.TCP .AZ "TCP "
MSG1.P.UDP .AZ "UDP "
MSG1.P.INV .AZ "??? "
MSG1.S.0 .AZ "*"
MSG1.S.1 .AZ "LISTENING"
MSG1.S.2 .AZ "SYN-SENT"
MSG1.S.3 .AZ "SYN-RECEIVED"
MSG1.S.4 .AZ "ESTABLISHED"
MSG1.S.5 .AZ "CLOSE-WAIT"
MSG1.S.6 .AZ "LAST-ACK"
MSG1.S.7 .AZ "FIN-WAIT-1"
MSG1.S.8 .AZ "FIN-WAIT-2"
MSG1.S.9 .AZ "CLOSING"
MSG1.S.10 .AZ "TIME-WAIT"
2018-10-10 15:39:22 +00:00
MSG1.S.INV .AZ "???"
2018-06-15 15:15:48 +00:00
*--------------------------------------
.DUMMY
.OR 0
DS.START
2016-02-24 20:00:42 +00:00
SocketCount .BS 1
2018-06-15 15:15:48 +00:00
DS.END
.ED
*--------------------------------------
2016-02-24 20:00:42 +00:00
MAN
2019-01-16 21:51:57 +00:00
SAVE USR/SRC/BIN/NETSTAT.S
2016-02-24 20:00:42 +00:00
ASM