PR#3
PREFIX /A2OSX.SRC
NEW
INC 1
AUTO 6
				.LIST OFF
				.OP	65C02
				.OR	$2000
				.TF /A2OSX.BOOT/BIN/NETSTAT
*--------------------------------------
				.INB INC/MACROS.I
				.INB INC/A2OSX.I
				.INB INC/LIBTCPIP.I
*--------------------------------------
ZPPTR1			.EQ ZPBIN
*--------------------------------------
*			File Header (16 Bytes)
*--------------------------------------
CS.START		cld
				jmp (.1,x)
				.DA #$61				6502,Level 1 (65c02)
				.DA #1					BIN Layout Version 1
				.DA 0
				.DA CS.END-CS.START		Code Length To Relocate
				.DA 0					Data Segment to Allocate
				.DA 0
				.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
				.DA MSG1.UDP
				.DA MSG1.TCP
				.DA MSG1.RAW
				.DA MSG1.RDM
				.DA MSG1.SEQ
				.DA MSG1.INV
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
				.DA 0
*--------------------------------------
CS.INIT			>LDYA L.LIBTCPIP
				>SYSCALL SYS.LoadLibYA
				sta hLIBTCPIP

				>LDYA L.MSG0
				>SYSCALL SYS.PRINTFYA
				
				>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.GETTABLE
				>STYA ZPPTR1
				
				lda #K.SKTTABLE.SIZE
				sta SocketCount

.1				lda (ZPPTR1)
				beq .7
				
				ldy #S.SOCKET.STATUS
				lda (ZPPTR1),y
				asl
				tax
				>PUSHB L.MSG1.S+1,x
				>PUSHB L.MSG1.S,x
				
				ldy #S.SOCKET.SO
				>PUSHB (ZPPTR1),y
				
				ldy #S.SOCKET.DST.PORT+1
.2				>PUSHB (ZPPTR1),y
				dey
				cpy #S.SOCKET.SRC.ADDR-1
				bne .2
				
				lda (ZPPTR1)
				cmp #S.SOCKET.SOCK.STREAM
				bcc .3
				lda #S.SOCKET.SOCK.STREAM
.3				asl
				tax
				>PUSHB L.MSG1+1,x
				>PUSHB L.MSG1,x
				>LDYA L.MSG1
				>SYSCALL SYS.PRINTFYA
				
.7				clc
				lda ZPPTR1
				adc #S.SOCKET
				sta ZPPTR1
				lda ZPPTR1+1
				adc /S.SOCKET
				sta ZPPTR1+1
				dec SocketCount
				bne .1
				
CS.INIT.DONE	lda #0					tell TSKMGR that all done ok, but 
				sec						we do not want to stay in memory
				rts
*--------------------------------------
CS.RUN
CS.DOEVENT		clc
				rts
*--------------------------------------
CS.QUIT			lda hLIBTCPIP
				>SYSCALL SYS.FreeMemA
				clc
				rts
*--------------------------------------
CS.END
LIBTCPIP		>PSTRING "libtcpip.o"
MSG0			>CSTRING "Proto Local                 Remote                Options  Status\n"
MSG1			>CSTRING "%s   %03d.%03d.%03d.%03d:%05D %03d.%03d.%03d.%03d:%05D %b %s\n"
MSG1.UDP		>CSTRING "UDP"
MSG1.TCP		>CSTRING "TCP"
MSG1.RAW		>CSTRING "RAW"
MSG1.RDM		>CSTRING "RDM"
MSG1.SEQ		>CSTRING "SEQ"
MSG1.INV		>CSTRING "???"
MSG1.S.0		>CSTRING "*"
MSG1.S.1		>CSTRING "LISTENING"
MSG1.S.2		>CSTRING "SYN-SENT"
MSG1.S.3		>CSTRING "SYN-RECEIVED"
MSG1.S.4		>CSTRING "ESTABLISHED"
MSG1.S.5		>CSTRING "CLOSE-WAIT"
MSG1.S.6		>CSTRING "LAST-ACK"
MSG1.S.7		>CSTRING "FIN-WAIT-1"
MSG1.S.8		>CSTRING "FIN-WAIT-2"
MSG1.S.9		>CSTRING "CLOSING"
MSG1.S.10		>CSTRING "TIME-WAIT"
hLIBTCPIP		.BS	1
SocketCount		.BS 1
MAN
SAVE BIN/NETSTAT.S
ASM
