A2osX/SBIN/TCPIPD.S.txt
2018-07-23 17:28:42 +02:00

174 lines
3.8 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

NEW
PREFIX /A2OSX.BUILD
AUTO 4,1
.LIST OFF
.OP 65C02
.OR $2000
.TF SBIN/TCPIPD
*--------------------------------------
.INB INC/MACROS.I
.INB INC/A2OSX.I
.INB INC/ETH.I
.INB INC/LIBTCPIP.I
.INB INC/MLI.ERR.I
*--------------------------------------
ZPIPCfgPtr .EQ ZPBIN
ZPDevStatusPtr .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 #4 ZP
.DA 0
*--------------------------------------
* Relocation Table
*--------------------------------------
.1 .DA CS.INIT
.DA CS.RUN
.DA CS.DOEVENT
.DA CS.QUIT
L.LIBTCPIP .DA LIBTCPIP
L.DEVNAME .DA DEVNAME
L.MSG.DEV.KO .DA MSG.DEV.KO
L.MSG.DEV.OK .DA MSG.DEV.OK
L.MSG.CFG .DA MSG.CFG
L.MSG.CFG.KO .DA MSG.CFG.KO
L.MSG.CFG.OK .DA MSG.CFG.OK
L.HOSTNAME .DA HOSTNAME
L.TCPIP.CONF .DA TCPIP.CONF
L.HOSTS .DA HOSTS
L.IPCFG .DA IPCFG
.DA 0
*--------------------------------------
CS.INIT >LDYA L.LIBTCPIP
>SYSCALL LoadLib
bcs .99
sta hLIBTCPIP
jsr CS.INIT.DEV
bcs .99
jsr CFG.Read continue even if error opening CFG file
>PUSHW L.IPCFG
>LIBCALL hLIBTCPIP,LIBTCPIP.SET.IPCFG
lda (pPs)
ora #S.PS.F.EVENT Now accept events
sta (pPs)
clc
.99 rts
*--------------------------------------
CS.INIT.DEV >LDYA L.DEVNAME
>SYSCALL GetDevByName
bcc .1
inc DEVNAME+3
lda DEVNAME+3
cmp #'8'
bne CS.INIT.DEV
>LDYA L.MSG.DEV.KO
>SYSCALL printf
lda #MLI.E.NODEV
sec
rts
.1 txa
>STA.G hDev
sta IPCFG+S.IPCFG.HDEV
>PUSHW L.DEVNAME
>LDYA L.MSG.DEV.OK
>SYSCALL printf
>PUSHWI 0
>PUSHBI IOCTL.OPEN
>LDA.G hDev
>SYSCALL IOCTL
rts
.9 sec
rts
*--------------------------------------
CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.POLL
clc
rts
*--------------------------------------
CS.DOEVENT lda (pEvent)
bpl .9
>LIBCALL hLIBTCPIP,LIBTCPIP.PULSE
.9 sec never discard TIME event
rts
*--------------------------------------
CS.QUIT >LDA.G hDev
beq .1
>PUSHWI 0
>PUSHBI IOCTL.CLOSE
>LDA.G hDev
>SYSCALL IOCTL
.1 lda hLIBTCPIP
>SYSCALL UnloadLib
clc
rts
*--------------------------------------
.INB /A2OSX.SRC/SBIN/TCPIPD.S.CFG
*--------------------------------------
CS.END
*--------------------------------------
LIBTCPIP .AZ "libtcpip.o"
DEVNAME .AZ "ETH1"
MSG.DEV.KO .AZ "TCPIPD:No Device Found, exiting.\r\n"
MSG.DEV.OK .AZ "TCPIPD:Bound To Device : %s\r\n"
MSG.CFG .AZ "TCPIPD:Reading %s..."
MSG.CFG.KO .AZ "Failed!!! [%h]\r\n"
MSG.CFG.OK .AZ "OK.\r\n"
*--------------------------------------
HOSTNAME .AZ "${A2OSX}ETC/HOSTNAME"
TCPIP.CONF .AZ "${A2OSX}ETC/TCPIP.CONF"
HOSTS .AZ "${A2OSX}ETC/HOSTS"
DefaultHostName >PSTR "a2osx-XXXX"
CFG.Keywords >PSTR "DOMAIN"
>PSTR "IP"
>PSTR "MASK"
>PSTR "GW"
>PSTR "DNS1"
>PSTR "DNS2"
CFG.Keyword.Map .DA #0 End Of Keyword table and NA Keyword
.DA #S.IPCFG.IP
.DA #S.IPCFG.MASK
.DA #S.IPCFG.GW
.DA #S.IPCFG.DNS1
.DA #S.IPCFG.DNS2
hLIBTCPIP .BS 1
IPCFG .BS S.IPCFG
CFG.hCfgFile .BS 1
CFG.hCfgPath .BS 1
CFG.FileLen .BS 2
CFG.Keyword .BS 1
CFG.StrBuf .BS 4
CFG.HexByte .BS 1
CFG.IP .BS 5
UsrBuf256 .BS 256
*--------------------------------------
.DUMMY
.OR 0
DS.START
hDev .BS 1
DS.END .ED
*--------------------------------------
MAN
SAVE /A2OSX.SRC/SBIN/TCPIPD.S
ASM