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 CPrintFYA lda #$28 MLI.ERR.NODEV sec rts .1 >STYA ZPIPDevPtr stx hNetDev stx IPCFG+S.IPCFG.HDEV lda (ZPIPDevPtr) sta NetDevJmp+1 ldy #1 lda (ZPIPDevPtr),y sta NetDevJmp+2 >PUSHW L.DEVNAME >LDYA L.MSG.DEV.OK >SYSCALL CPrintFYA ldx #DEVMGR.OPEN jsr NetDevJmp bcs .9 ldx #DEVMGR.STATUS jsr NetDevJmp bcs .9 >STYA ZPIPDevPtr ldy #S.DEVSTAT+2 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 ldx #DEVMGR.READBLOCK jsr NetDevJmp bcs .8 >LIBCALL hLIBTCPIP,LIBTCPIP.RCVD.FRAMEA .8 clc rts *-------------------------------------- CS.DOEVENT lda (pEvent) 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 NetDevJmp .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 *-------------------------------------- NetDevJmp 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