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/LIBSTR.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.LIBSTR .DA LIBSTR 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.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.LIBSTR >SYSCALL SYS.LoadLibYA sta hLIBSTR >LDYA L.LIBTCPIP >SYSCALL SYS.LoadLibYA sta hLIBTCPIP >PUSHW L.MSG0 >LIBCALL hLIBSTR,LIBSTR.PRINTF >LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG >STYA ZPIPCfgPtr ldy #S.IPCFG.HDEV lda (ZPIPCfgPtr),y bne CS.INIT.DUMPDEV >PUSHW L.MSG0.NL >LIBCALL hLIBSTR,LIBSTR.PRINTF jmp CS.INIT.DONE CS.INIT.DUMPDEV sta DevID >SYSCALL SYS.GetDevByIDA >STYA ZPDevPtr lda DevID >SYSCALL SYS.GetDevInfoA >STYA ZPDevInfoPtr >PUSHW L.MSG0.L >LIBCALL hLIBSTR,LIBSTR.PRINTF 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 >PUSHW L.MSG1.DEV >LIBCALL hLIBSTR,LIBSTR.PRINTF ldy #S.DEVINFO.FLAGS lda (ZPDevInfoPtr),y and #S.DEVINFO.NET.FLAGS.ARPOFFLOAD beq .2 lda #1 .2 >PUSHA >PUSHW L.MSG1.DEV.ARP >LIBCALL hLIBSTR,LIBSTR.PRINTF ldy #S.DEVINFO.NET.STATUS lda (ZPDevInfoPtr),y and #S.DEVINFO.NET.STATUS.OK bne CS.INIT.LINK >PUSHW L.MSG1.LINK.KO >PUSHW L.MSG1.LINK >LIBCALL hLIBSTR,LIBSTR.PRINTF bra CS.INIT.DUMPIP CS.INIT.LINK >PUSHW L.MSG1.LINK.OK >PUSHW L.MSG1.LINK >LIBCALL hLIBSTR,LIBSTR.PRINTF >PUSHW L.MSG1.LINKSPEED >LIBCALL hLIBSTR,LIBSTR.PRINTF 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 >PUSHW L.MSG1.DPLX.HD bra .6 .5 >PUSHW L.MSG1.DPLX.FD .6 >LIBCALL hLIBSTR,LIBSTR.PRINTF CS.INIT.DUMPIP >PUSHW L.MSG2 >LIBCALL hLIBSTR,LIBSTR.PRINTF lda (ZPIPCfgPtr) and #S.IPCFG.STATUS.OK beq .11 >LDYA L.MSG2.C bra .10 .11 >LDYA L.MSG2.U .10 >PUSHYA >LIBCALL hLIBSTR,LIBSTR.PRINTF ldy #S.IPCFG.DHCPSRVR+3 ldx #4 .2 >PUSHB (ZPIPCfgPtr),y dey dex bne .2 >PUSHW L.MSG2.DHCPSRVR >LIBCALL hLIBSTR,LIBSTR.PRINTF ldy #S.IPCFG.IP+7 IP/MASK ldx #8 .3 >PUSHB (ZPIPCfgPtr),y dey dex bne .3 >PUSHW L.MSG2.IP >LIBCALL hLIBSTR,LIBSTR.PRINTF ldy #S.IPCFG.GW+3 ldx #4 .4 >PUSHB (ZPIPCfgPtr),y dey dex bne .4 >PUSHW L.MSG2.GW >LIBCALL hLIBSTR,LIBSTR.PRINTF ldy #S.IPCFG.DNS1+7 ldx #8 .5 >PUSHB (ZPIPCfgPtr),y dey dex bne .5 >PUSHW L.MSG2.DNS >LIBCALL hLIBSTR,LIBSTR.PRINTF 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 >PUSHW L.MSG2.HOSTNAME >LIBCALL hLIBSTR,LIBSTR.PRINTF 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 lda hLIBSTR >SYSCALL SYS.FreeMemA clc rts *-------------------------------------- CS.END LIBSTR >PSTRING "libstr.o" 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.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" hLIBSTR .BS 1 hLIBTCPIP .BS 1 DevID .BS 1 MAN SAVE BIN/IPCONFIG.S ASM