PR#3 PREFIX /A2OSX.SRC NEW INC 1 AUTO 6 .LIST OFF .OP 65C02 .OR $2000 .TF /A2OSX.BOOT/SBIN/TCPIP *-------------------------------------- .INB /A2OSX.DEV/INC/MACROS.I .INB /A2OSX.DEV/INC/A2OSX.I .INB /A2OSX.DEV/INC/LIBTCPIP.I *-------------------------------------- ZPIPCfgPtr .EQ ZPBIN ZPIPDevPtr .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 Code Length To Relocate .DA 0 .DA 0 .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 LoadLibYA 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 #0 .2 lda DefaultHostName,y beq .3 sta IPCFG+S.IPCFG.HOSTNAME,y iny bne .2 .3 lda A2osX.TIMER16 jsr A2CharAX sta IPCFG+S.IPCFG.HOSTNAME,y iny txa sta IPCFG+S.IPCFG.HOSTNAME,y iny lda A2osX.TIMER16+1 jsr A2CharAX sta IPCFG+S.IPCFG.HOSTNAME,y iny txa sta IPCFG+S.IPCFG.HOSTNAME,y iny lda #0 sta IPCFG+S.IPCFG.HOSTNAME,y .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 >SYSCALL GetDevByNameYA bcc .1 inc DEVNAME+4 lda DEVNAME+4 cmp #'8' bne CS.INIT.DEV >LDYA L.MSG.DEV.KO >SYSCALL PrintFYA lda #DEVMGR.ERRDNF sec rts .1 >STYA pNetDevJmp+1 txa sta hNetDev sta IPCFG+S.IPCFG.HDEV >PUSHW L.DEVNAME >LDYA L.MSG.DEV.OK >SYSCALL PrintFYA ldx #DEVMGR.OPEN jsr pNetDevJmp bcs .9 ldx #DEVMGR.GETINFO jsr pNetDevJmp bcs .9 >STYA ZPIPDevPtr ldy #S.DEVINFO.NET.MAC ldx #S.IPCFG.MAC .2 lda (ZPIPDevPtr),y sta IPCFG,x iny inx cpx #S.IPCFG.MAC+6 bne .2 clc rts .9 sec rts *-------------------------------------- CS.RUN clc rts *-------------------------------------- CS.DOEVENT clc lda (pEvent) bit #S.EVT.F.NET beq .1 ldy #S.EVT.hDEV lda (pEvent),y cmp hNetDev bne .9 ldy #S.EVT.DATALO Get Frame hMem lda (pEvent),y >LIBCALL hLIBTCPIP,LIBTCPIP.RCVD.FRAMEA rts .1 bit #S.EVT.F.T10TH beq .9 S.EVT.F.T1SEC >LIBCALL hLIBTCPIP,LIBTCPIP.PULSEA .9 sec never discard TIME event rts *-------------------------------------- CS.QUIT lda IPCFG+S.IPCFG.HDEV beq .1 ldx #DEVMGR.CLOSE jsr pNetDevJmp .1 lda hLIBTCPIP >SYSCALL UnloadLibA clc rts *-------------------------------------- A2CharAX pha lsr lsr lsr lsr and #$0F 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 *-------------------------------------- pNetDevJmp jmp * *-------------------------------------- .INB SBIN/TCPIP.S.CFG *-------------------------------------- CS.END *-------------------------------------- LIBTCPIP >PSTR "libtcpip.o" DEVNAME >PSTR "ETH1" MSG.DEV.KO >CSTR "TCPIP:No Device Found, exiting.\n" MSG.DEV.OK >CSTR "TCPIP:Bound To Device : %S\n" MSG.CFG >CSTR "TCPIP:Reading %S..." MSG.CFG.KO >CSTR "Failed!!! [%h]\n" MSG.CFG.OK >CSTR "OK.\n" *-------------------------------------- HOSTNAME >PSTR "${A2OSX}ETC/HOSTNAME" TCPIP.CONF >PSTR "${A2OSX}ETC/TCPIP.CONF" HOSTS >PSTR "${A2OSX}ETC/HOSTS" DefaultHostName >CSTR "a2osx-" 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 hNetDev .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 *-------------------------------------- MAN SAVE SBIN/TCPIP.S ASM