NEW PREFIX /A2OSX.BUILD AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 .TF BIN/IPCONFIG *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I .INB INC/NIC.I .INB INC/ETH.I .INB INC/LIBTCPIP.I *-------------------------------------- ZPIPCfgPtr .EQ ZPBIN ZPDevPtr .EQ ZPBIN+2 *-------------------------------------- * 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 CS .DA DS.END-DS.START DS .DA #16 SS .DA #6 ZP .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 LoadLib bcs .9 sta hLIBTCPIP clc .9 rts *-------------------------------------- CS.RUN >LDYA L.MSG0 >SYSCALL printf >LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG >STYA ZPIPCfgPtr ldy #S.IPCFG.HDEV lda (ZPIPCfgPtr),y bne .1 >LDYA L.MSG0.NL >SYSCALL printf jmp CS.RUN.DONE .1 >STA.G DevID >SYSCALL GetDevByID >STYA ZPDevPtr S.FD >PUSHEA.G DIB >LDA.G DevID >SYSCALL GetDevStatus >LEA.G DCB.NIC >STYA IOCTL+S.IOCTL.BUFPTR lda S.IOCTL.STATCODE.GETDCB sta S.IOCTL.STATCODE >PUSHEA.G IOCTL >PUSHBI IOCTL.STATUS >LDA.G DevID >SYSCALL IOCTL CS.RUN.DUMP >LDYA L.MSG0.L >SYSCALL printf ldy #5 .1 >PUSHB DCB.NIC+S.DCB.NIC.MAC,y dey bpl .1 >PUSHEA.G DIB+S.DIB.IDS lda #S.FD.DEV.NAME clc adc ZPDevPtr tay lda /S.FD.DEV.NAME adc ZPDevPtr+1 >PUSHYA >PUSHB.G DevID >LDYA L.MSG1.DEV >SYSCALL printf lda DCB.NIC+S.DCB.NIC.FLAGS and #S.DCB.NIC.FLAGS.ARPOFFLOAD beq .2 lda #1 .2 >PUSHA >LDYA L.MSG1.DEV.ARP >SYSCALL printf lda DCB.NIC+S.DCB.NIC.FLAGS and #S.DCB.NIC.FLAGS.IPOFFLOAD beq .3 lda #1 .3 >PUSHA >LDYA L.MSG1.DEV.IP >SYSCALL printf lda DCB.NIC+S.DCB.NIC.LINK and #S.DCB.NIC.LINK.OK bne CS.RUN.LINK >PUSHW L.MSG1.LINK.KO >LDYA L.MSG1.LINK >SYSCALL printf bra CS.RUN.DUMPIP CS.RUN.LINK >PUSHW L.MSG1.LINK.OK >LDYA L.MSG1.LINK >SYSCALL printf >LDYA L.MSG1.LINKSPEED >SYSCALL printf lda DCB.NIC+S.DCB.NIC.SPEED and #$0F tax .4 phx lda #'0' >SYSCALL PutChar plx dex bne .4 lda DCB.NIC+S.DCB.NIC.LINK and #S.DCB.NIC.LINK.FD bne .5 >LDYA L.MSG1.DPLX.HD bra .6 .5 >LDYA L.MSG1.DPLX.FD .6 >SYSCALL printf CS.RUN.DUMPIP >LDYA L.MSG2 >SYSCALL printf lda (ZPIPCfgPtr) and #S.IPCFG.STATUS.OK beq .11 >LDYA L.MSG2.C bra .10 .11 >LDYA L.MSG2.U .10 >SYSCALL printf ldy #S.IPCFG.DHCPSRVR+3 ldx #4 .2 >PUSHB (ZPIPCfgPtr),y dey dex bne .2 >LDYA L.MSG2.DHCPSRVR >SYSCALL printf ldy #S.IPCFG.IP+7 IP/MASK ldx #8 .3 >PUSHB (ZPIPCfgPtr),y dey dex bne .3 >LDYA L.MSG2.IP >SYSCALL printf ldy #S.IPCFG.GW+3 ldx #4 .4 >PUSHB (ZPIPCfgPtr),y dey dex bne .4 >LDYA L.MSG2.GW >SYSCALL printf ldy #S.IPCFG.DNS1+7 ldx #8 .5 >PUSHB (ZPIPCfgPtr),y dey dex bne .5 >LDYA L.MSG2.DNS >SYSCALL 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 >LDYA L.MSG2.HOSTNAME >SYSCALL printf CS.RUN.DONE lda #0 tell TSKMGR that all done ok, but sec we do not want to stay in memory rts *-------------------------------------- CS.DOEVENT sec rts *-------------------------------------- CS.QUIT lda hLIBTCPIP beq .8 >SYSCALL UnloadLib .8 clc rts *-------------------------------------- CS.END LIBTCPIP .AZ "libtcpip.o" *-------------------------------------- MSG0 .AZ "TCP/IP Status : " MSG0.L .AZ "Loaded\r\n" MSG0.NL .AZ "Not Loaded\r\n" *-------------------------------------- MSG1.DEV .AS "\r\nDevice Configuration :\r\n" .AS " DevID : $%h\r\n" .AS " Device Name : %s\r\n" .AS " Device Type : %S\r\n" .AZ " HW Address : %02h:%02h:%02h:%02h:%02h:%02h\r\n" MSG1.DEV.ARP .AZ " ARP Offload : %d\r\n" MSG1.DEV.IP .AZ " IP Offload : %d\r\n" MSG1.LINK .AZ " Link Status : %s\r\n" MSG1.LINK.OK .AZ "OK" MSG1.LINK.KO .AZ "Media Disconnected" MSG1.LINKSPEED .AZ " Link Speed : 1" MSG1.DPLX.FD .AZ " Mbit/s,Full Duplex\r\n" MSG1.DPLX.HD .AZ " Mbit/s,Half Duplex\r\n" *-------------------------------------- MSG2 .AZ "\r\nIP Configuration : " MSG2.C .AZ "Configured\r\n" MSG2.U .AZ "Not Configured\r\n" MSG2.DHCPSRVR .AZ " DHCP Server : %d.%d.%d.%d\r\n" MSG2.IP .AZ " IP/Mask : %d.%d.%d.%d/%d.%d.%d.%d\r\n" MSG2.GW .AZ " Gateway : %d.%d.%d.%d\r\n" MSG2.DNS .AZ " DNS : %d.%d.%d.%d,%d.%d.%d.%d\r\n" MSG2.HOSTNAME .AZ " Hostname : %s.%s\r\n" hLIBTCPIP .BS 1 *-------------------------------------- .DUMMY .OR 0 DS.START DevID .BS 1 IOCTL .BS S.IOCTL DIB .BS S.DIB DCB.NIC .BS S.DCB.NIC DS.END .ED *-------------------------------------- MAN SAVE /A2OSX.SRC/BIN/IPCONFIG.S ASM