PR#3
PREFIX /A2OSX.SRC
NEW
INC 1
AUTO 6
				.LIST OFF
				.OP	65C02
				.OR	$2000
				.TF /A2OSX.BOOT/BIN/IPCONFIG
*--------------------------------------
				.INB INC/MACROS.I
				.INB INC/A2OSX.I
				.INB INC/LIBTCPIP.I
*--------------------------------------
ZPIPCfgPtr		.EQ ZPBIN
ZPDevPtr		.EQ ZPBIN+2
ZPDevInfoPtr	.EQ ZPBIN+4
*--------------------------------------
*			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.MSG0.NL		.DA MSG0.NL
L.MSG0.L		.DA MSG0.L
L.MSG1.DEV		.DA MSG1.DEV
L.MSG1.DEV.ARP	.DA MSG1.DEV.ARP
L.MSG1.DEV.IP	.DA MSG1.DEV.IP
L.MSG1.LINK		.DA MSG1.LINK
L.MSG1.LINK.OK	.DA MSG1.LINK.OK
L.MSG1.LINK.KO	.DA MSG1.LINK.KO
L.MSG1.LINKSPEED .DA MSG1.LINKSPEED
L.MSG1.DPLX.FD	.DA MSG1.DPLX.FD
L.MSG1.DPLX.HD	.DA MSG1.DPLX.HD
L.MSG2			.DA MSG2
L.MSG2.C		.DA MSG2.C
L.MSG2.U		.DA MSG2.U
L.MSG2.DHCPSRVR	.DA MSG2.DHCPSRVR
L.MSG2.IP		.DA MSG2.IP
L.MSG2.GW		.DA MSG2.GW
L.MSG2.DNS		.DA MSG2.DNS
L.MSG2.HOSTNAME	.DA MSG2.HOSTNAME
				.DA 0
*--------------------------------------
CS.INIT			>LDYA L.LIBTCPIP
				>SYSCALL SYS.LoadLibYA
				sta hLIBTCPIP

				>LDYA L.MSG0
				>SYSCALL SYS.PrintFYA
				
				>LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG
				>STYA ZPIPCfgPtr

				ldy #S.IPCFG.HDEV
				lda (ZPIPCfgPtr),y
				bne CS.INIT.DUMPDEV
				
				>LDYA L.MSG0.NL
				>SYSCALL SYS.PrintFYA
				jmp CS.INIT.DONE
				
CS.INIT.DUMPDEV	sta DevID
				>SYSCALL SYS.GetDevByIDA
				>STYA ZPDevPtr
				
				lda DevID
				>SYSCALL SYS.GetDevInfoA
				>STYA ZPDevInfoPtr

				>LDYA L.MSG0.L
				>SYSCALL SYS.PrintFYA

				ldy #S.DEVINFO.NET.MAC+6
.1				dey
				>PUSHB (ZPDevInfoPtr),y
				cpy #S.DEVINFO.NET.MAC
				bne .1

				lda ZPDevPtr
				clc
				adc #S.DEV.NAME
				tay
				lda ZPDevPtr+1
				adc #0
				>PUSHYA
				
				>PUSHB DevID
				
				>LDYA L.MSG1.DEV
				>SYSCALL SYS.PrintFYA
				
				ldy #S.DEVINFO.FLAGS
				lda (ZPDevInfoPtr),y
				and #S.DEVINFO.NET.FLAGS.ARPOFFLOAD
				beq .2
				lda #1
.2				>PUSHA		
				>LDYA L.MSG1.DEV.ARP
				>SYSCALL SYS.PrintFYA
				
				ldy #S.DEVINFO.FLAGS
				lda (ZPDevInfoPtr),y
				and #S.DEVINFO.NET.FLAGS.IPOFFLOAD
				beq .3
				lda #1
.3				>PUSHA		
				>LDYA L.MSG1.DEV.IP
				>SYSCALL SYS.PrintFYA
				
				ldy #S.DEVINFO.NET.STATUS
				lda (ZPDevInfoPtr),y
				and #S.DEVINFO.NET.STATUS.OK
				bne CS.INIT.LINK
				>PUSHW L.MSG1.LINK.KO
				>LDYA L.MSG1.LINK
				>SYSCALL SYS.PrintFYA
				bra CS.INIT.DUMPIP
				
CS.INIT.LINK	>PUSHW L.MSG1.LINK.OK
				>LDYA L.MSG1.LINK
				>SYSCALL SYS.PrintFYA
				
				>LDYA L.MSG1.LINKSPEED
				>SYSCALL SYS.PrintFYA
				
				ldy #S.DEVINFO.NET.STATUS
				lda (ZPDevInfoPtr),y
				and #$0F
				tax
				
.4				phx
				lda #'0'
				>SYSCALL SYS.COutA
				plx
				dex
				bne .4
				
				ldy #S.DEVINFO.NET.STATUS
				lda (ZPDevInfoPtr),y
				and #S.DEVINFO.NET.STATUS.FD
				bne .5
				>LDYA L.MSG1.DPLX.HD
				bra .6
.5				>LDYA L.MSG1.DPLX.FD
.6				>SYSCALL SYS.PrintFYA

CS.INIT.DUMPIP	>LDYA L.MSG2
				>SYSCALL SYS.PrintFYA
				lda (ZPIPCfgPtr)
				and #S.IPCFG.STATUS.OK
				beq .11
				>LDYA L.MSG2.C
				bra .10
.11				>LDYA L.MSG2.U
				
.10				>SYSCALL SYS.PrintFYA

				ldy #S.IPCFG.DHCPSRVR+3
				ldx #4
.2				>PUSHB (ZPIPCfgPtr),y
				dey
				dex
				bne .2
				>LDYA L.MSG2.DHCPSRVR
				>SYSCALL SYS.PrintFYA
				
				ldy #S.IPCFG.IP+7				IP/MASK
				ldx #8
.3				>PUSHB (ZPIPCfgPtr),y
				dey
				dex
				bne .3
				>LDYA L.MSG2.IP
				>SYSCALL SYS.PrintFYA
				
				ldy #S.IPCFG.GW+3
				ldx #4
.4				>PUSHB (ZPIPCfgPtr),y
				dey
				dex
				bne .4
				>LDYA L.MSG2.GW
				>SYSCALL SYS.PrintFYA
				
				ldy #S.IPCFG.DNS1+7
				ldx #8
.5				>PUSHB (ZPIPCfgPtr),y
				dey
				dex
				bne .5
				>LDYA L.MSG2.DNS
				>SYSCALL SYS.PrintFYA
				
				lda ZPIPCfgPtr
				clc
				adc #S.IPCFG.DOMAIN
				tay
				lda ZPIPCfgPtr+1
				adc #0
				>PUSHYA

				lda ZPIPCfgPtr
				clc
				adc #S.IPCFG.HOSTNAME
				tay
				lda ZPIPCfgPtr+1
				adc #0
				>PUSHYA

				>LDYA L.MSG2.HOSTNAME
				>SYSCALL SYS.PrintFYA
				
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 "TCP/IP Status : "
MSG0.L			>CSTRING "Loaded\n"
MSG0.NL			>CSTRING "Not Loaded\n"
*--------------------------------------
MSG1.DEV		>CSTRING "\nDevice Configuration :\n DevID       : $%h\n Device Name : %s\n HW Address  : %02h:%02h:%02h:%02h:%02h:%02h\n"
MSG1.DEV.ARP	>CSTRING " ARP Offload : %d\n"
MSG1.DEV.IP		>CSTRING " IP Offload  : %d\n"
MSG1.LINK		>CSTRING " Link Status : %s\n"
MSG1.LINK.OK	>CSTRING "OK"
MSG1.LINK.KO	>CSTRING "Media Disconnected"
MSG1.LINKSPEED	>CSTRING " Link Speed  : 1"
MSG1.DPLX.FD	>CSTRING " Mbit/s,Full Duplex\n"
MSG1.DPLX.HD	>CSTRING " Mbit/s,Half Duplex\n"
*--------------------------------------
MSG2			>CSTRING "\nIP Configuration : "
MSG2.C			>CSTRING "Configured\n"
MSG2.U			>CSTRING "Not Configured\n"
MSG2.DHCPSRVR	>CSTRING " DHCP Server : %d.%d.%d.%d\n"
MSG2.IP			>CSTRING " IP/Mask     : %d.%d.%d.%d/%d.%d.%d.%d\n"
MSG2.GW			>CSTRING " Gateway     : %d.%d.%d.%d\n"
MSG2.DNS		>CSTRING " DNS         : %d.%d.%d.%d,%d.%d.%d.%d\n"
MSG2.HOSTNAME	>CSTRING " Hostname    : %s.%s\n"
hLIBTCPIP		.BS	1
DevID			.BS 1
MAN
SAVE BIN/IPCONFIG.S
ASM
