A2osX/SBIN/TCPIPD.S.txt

230 lines
4.8 KiB
Plaintext
Raw Normal View History

NEW
PREFIX /A2OSX.BUILD
AUTO 4,1
.LIST OFF
.OP 65C02
.OR $2000
.TF /A2OSX.BUILD/SBIN/TCPIPD
*--------------------------------------
.INB /A2OSX.BUILD/INC/MACROS.I
.INB /A2OSX.BUILD/INC/A2OSX.I
2018-07-23 06:28:47 +00:00
.INB /A2OSX.BUILD/INC/ETH.I
.INB /A2OSX.BUILD/INC/LIBTCPIP.I
.INB /A2OSX.BUILD/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
2018-07-19 15:33:55 +00:00
>SYSCALL LoadLib
bcs .99
sta hLIBTCPIP
jsr CS.INIT.DEV
bcs .99
jsr CFG.Read continue even if error opening CFG file
lda IPCFG+S.IPCFG.HOSTNAME
bne .4
ldy DefaultHostName
.2 lda DefaultHostName,y
sta IPCFG+S.IPCFG.HOSTNAME,y
dey
bpl .2
.3 lda A2osX.TIMER16
jsr A2CharAX
sta IPCFG+S.IPCFG.HOSTNAME+7
stx IPCFG+S.IPCFG.HOSTNAME+8
lda A2osX.TIMER16+1
jsr A2CharAX
sta IPCFG+S.IPCFG.HOSTNAME+9
stx IPCFG+S.IPCFG.HOSTNAME+10
.4 >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
2018-07-23 06:28:47 +00:00
>SYSCALL GetDevByName
bcc .1
inc DEVNAME+3
lda DEVNAME+3
cmp #'8'
bne CS.INIT.DEV
>LDYA L.MSG.DEV.KO
2018-06-21 15:12:10 +00:00
>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
2018-06-21 15:12:10 +00:00
>SYSCALL printf
>PUSHWI 0
2018-07-23 06:28:47 +00:00
>PUSHBI IOCTL.OPEN
>LDA.G hDev
>SYSCALL IOCTL
bcs .9
>LDA.G hDev
2018-07-23 06:28:47 +00:00
sdfsdfsdfsf >SYSCALL GetDevStatus
bcs .9
>STYA ZPDevStatusPtr
2018-07-19 15:33:55 +00:00
ldy #S.DIB+2 MAC
ldx #S.IPCFG.MAC
.2 lda (ZPDevStatusPtr),y
sta IPCFG,x
iny
inx
cpx #S.IPCFG.MAC+6
bne .2
clc
rts
.9 sec
rts
*--------------------------------------
CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.POLL
clc
rts
*--------------------------------------
CS.DOEVENT lda (pEvent)
bpl .9
>LIBCALL hLIBTCPIP,LIBTCPIP.PULSEA
.9 sec never discard TIME event
rts
*--------------------------------------
CS.QUIT >LDA.G hDev
beq .1
>PUSHWI 0
2018-07-23 06:28:47 +00:00
>PUSHBI IOCTL.CLOSE
>LDA.G hDev
>SYSCALL IOCTL
.1 lda hLIBTCPIP
2018-07-20 14:10:10 +00:00
>SYSCALL UnloadLib
clc
rts
*--------------------------------------
A2CharAX pha
lsr
lsr
lsr
lsr
ora #$30
cmp #'9'+1
bcc .1
adc #6
.1 tax
pla
and #$0F
ora #$30
cmp #'9'+1
bcc .8
adc #6
.8 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