A2osX/BIN/IPCONFIG.S.txt

307 lines
6.3 KiB
Plaintext
Raw Normal View History

NEW
2017-12-22 21:24:30 +00:00
PREFIX /A2OSX.BUILD
AUTO 4,1
.LIST OFF
.OP 65C02
.OR $2000
2018-07-23 15:28:42 +00:00
.TF BIN/IPCONFIG
*--------------------------------------
2018-07-23 15:28:42 +00:00
.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
2016-04-18 20:17:28 +00:00
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
2018-07-19 15:33:55 +00:00
>SYSCALL LoadLib
bcs .9
sta hLIBTCPIP
clc
.9 rts
*--------------------------------------
CS.RUN >LDYA L.MSG0
2018-06-21 15:12:10 +00:00
>SYSCALL printf
>LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG
>STYA ZPIPCfgPtr
ldy #S.IPCFG.HDEV
lda (ZPIPCfgPtr),y
2018-07-23 15:28:42 +00:00
bne .1
>LDYA L.MSG0.NL
2018-06-21 15:12:10 +00:00
>SYSCALL printf
jmp CS.RUN.DONE
2018-07-23 15:28:42 +00:00
.1 >STA.G DevID
2018-07-18 15:30:42 +00:00
>SYSCALL GetDevByID
2018-07-23 15:28:42 +00:00
>STYA ZPDevPtr S.FD
2018-07-23 15:28:42 +00:00
>PUSHEA.G DIB
>LDA.G DevID
2018-07-18 15:30:42 +00:00
>SYSCALL GetDevStatus
2018-07-23 15:28:42 +00:00
>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
2018-06-21 15:12:10 +00:00
>SYSCALL printf
2018-07-23 15:28:42 +00:00
ldy #5
2018-07-23 15:28:42 +00:00
.1 >PUSHB DCB.NIC+S.DCB.NIC.MAC,y
dey
2018-07-23 15:28:42 +00:00
bpl .1
2018-07-23 15:28:42 +00:00
>PUSHEA.G DIB+S.DIB.IDS
lda #S.FD.DEV.NAME
clc
adc ZPDevPtr
tay
2018-07-23 15:28:42 +00:00
lda /S.FD.DEV.NAME
adc ZPDevPtr+1
>PUSHYA
>PUSHB.G DevID
>LDYA L.MSG1.DEV
2018-06-21 15:12:10 +00:00
>SYSCALL printf
2018-07-23 15:28:42 +00:00
lda DCB.NIC+S.DCB.NIC.FLAGS
and #S.DCB.NIC.FLAGS.ARPOFFLOAD
beq .2
2018-07-23 15:28:42 +00:00
lda #1
2018-07-23 15:28:42 +00:00
.2 >PUSHA
>LDYA L.MSG1.DEV.ARP
2018-06-21 15:12:10 +00:00
>SYSCALL printf
2018-07-23 15:28:42 +00:00
lda DCB.NIC+S.DCB.NIC.FLAGS
and #S.DCB.NIC.FLAGS.IPOFFLOAD
2016-04-18 20:17:28 +00:00
beq .3
2018-07-23 15:28:42 +00:00
2016-04-18 20:17:28 +00:00
lda #1
2018-07-23 15:28:42 +00:00
.3
>PUSHA
>LDYA L.MSG1.DEV.IP
2018-06-21 15:12:10 +00:00
>SYSCALL printf
2016-04-18 20:17:28 +00:00
2018-07-23 15:28:42 +00:00
lda DCB.NIC+S.DCB.NIC.LINK
and #S.DCB.NIC.LINK.OK
bne CS.RUN.LINK
2018-07-23 15:28:42 +00:00
>PUSHW L.MSG1.LINK.KO
>LDYA L.MSG1.LINK
2018-06-21 15:12:10 +00:00
>SYSCALL printf
bra CS.RUN.DUMPIP
CS.RUN.LINK >PUSHW L.MSG1.LINK.OK
>LDYA L.MSG1.LINK
2018-06-21 15:12:10 +00:00
>SYSCALL printf
>LDYA L.MSG1.LINKSPEED
2018-06-21 15:12:10 +00:00
>SYSCALL printf
2018-07-23 15:28:42 +00:00
lda DCB.NIC+S.DCB.NIC.SPEED
and #$0F
tax
.4 phx
lda #'0'
2018-07-18 15:30:42 +00:00
>SYSCALL PutChar
plx
dex
bne .4
2018-07-23 15:28:42 +00:00
lda DCB.NIC+S.DCB.NIC.LINK
and #S.DCB.NIC.LINK.FD
bne .5
2018-07-23 15:28:42 +00:00
>LDYA L.MSG1.DPLX.HD
bra .6
2018-07-23 15:28:42 +00:00
.5 >LDYA L.MSG1.DPLX.FD
2018-06-21 15:12:10 +00:00
.6 >SYSCALL printf
CS.RUN.DUMPIP >LDYA L.MSG2
2018-06-21 15:12:10 +00:00
>SYSCALL printf
lda (ZPIPCfgPtr)
and #S.IPCFG.STATUS.OK
beq .11
2018-07-23 15:28:42 +00:00
>LDYA L.MSG2.C
bra .10
2018-07-23 15:28:42 +00:00
.11 >LDYA L.MSG2.U
2018-06-21 15:12:10 +00:00
.10 >SYSCALL printf
ldy #S.IPCFG.DHCPSRVR+3
ldx #4
.2 >PUSHB (ZPIPCfgPtr),y
dey
dex
bne .2
>LDYA L.MSG2.DHCPSRVR
2018-06-21 15:12:10 +00:00
>SYSCALL printf
ldy #S.IPCFG.IP+7 IP/MASK
ldx #8
.3 >PUSHB (ZPIPCfgPtr),y
dey
dex
bne .3
>LDYA L.MSG2.IP
2018-06-21 15:12:10 +00:00
>SYSCALL printf
ldy #S.IPCFG.GW+3
ldx #4
.4 >PUSHB (ZPIPCfgPtr),y
dey
dex
bne .4
>LDYA L.MSG2.GW
2018-06-21 15:12:10 +00:00
>SYSCALL printf
ldy #S.IPCFG.DNS1+7
ldx #8
.5 >PUSHB (ZPIPCfgPtr),y
dey
dex
bne .5
>LDYA L.MSG2.DNS
2018-06-21 15:12:10 +00:00
>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
2018-06-21 15:12:10 +00:00
>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
2018-07-20 14:10:10 +00:00
>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"
*--------------------------------------
2018-07-23 15:28:42 +00:00
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"
2018-07-23 15:28:42 +00:00
MSG2.HOSTNAME .AZ " Hostname : %s.%s\r\n"
hLIBTCPIP .BS 1
*--------------------------------------
.DUMMY
.OR 0
DS.START
DevID .BS 1
2018-07-23 15:28:42 +00:00
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