NEW PREFIX AUTO 4,1 .LIST OFF *-------------------------------------- CFG.EtcFiles >LDYAI 256 >SYSCALL GetMem bcc .1 rts .1 >STYA ZPTmpPtr1 stx CFG.hBuf1 >LDYA L.HOSTNAME jsr CFG.Read.PrintF jsr CFG.Read.HOSTNAME lda IPCFG+S.IPCFG.HOSTNAME bne .4 >PUSHW A2osX.TIMER16 >PUSHBI 2 >PUSHW L.CFG.DefaultHost >LDYA L.IPCFG.HOSTNAME >SYSCALL sprintf .4 >LDYA L.TCPIP.CONF jsr CFG.Read.PrintF jsr CFG.Read.TCPIP.CONF lda IPCFG+S.IPCFG.IP beq .5 lda #S.IPCFG.STATUS.OK sta IPCFG+S.NETCFG.STATUS .5 >LDYA L.HOSTS jsr CFG.Read.PrintF jsr CFG.Read.HOSTS >PUSHW L.IPCFG >LIBCALL hLIBTCPIP,LIBTCPIP.SETCFG lda CFG.hBuf1 >SYSCALL freemem .9 rts *-------------------------------------- CFG.Read.PrintF >PUSHYA >PUSHBI 2 >LDYA L.MSG.CFG >SYSCALL printf rts *-------------------------------------- CFG.Read.HOSTNAME >LDYA L.HOSTNAME jsr CFG.Read.Open jsr CFG.Read.Result bcs .9 .1 jsr CFG.Read.GetS bcs .8 lda (ZPTmpPtr1) beq .1 empty line... cmp #'# beq .1 comment... ldy #0 .2 lda (ZPTmpPtr1),y sta IPCFG+S.IPCFG.HOSTNAME,y beq .8 end of name iny cpy #15 bne .2 .8 clc .HS B0 BCS .9 sec jmp CFG.Read.Close *-------------------------------------- CFG.Read.TCPIP.CONF >LDYA L.TCPIP.CONF jsr CFG.Read.Open jsr CFG.Read.Result bcs .9 .1 jsr CFG.Read.GetS bcs .8 lda (ZPTmpPtr1) beq .1 empty line... cmp #'# beq .1 comment... ldy #$ff .2 iny lda (ZPTmpPtr1),y beq .3 cmp #' ' bne .2 .3 lda L.CFG.Keywords sta ZPTmpPtr2 lda L.CFG.Keywords+1 sta ZPTmpPtr2+1 ldx #0 .4 phy save keyword len tya cmp (ZPTmpPtr2) bne .6 .5 lda (ZPTmpPtr2),y dey cmp (ZPTmpPtr1),y bne .6 tya bne .5 ply discard keyword len jsr .80 bra .1 .6 lda (ZPTmpPtr2) sec adc ZPTmpPtr2 sta ZPTmpPtr2 bcc .7 inc ZPTmpPtr2+1 .7 inx inx ply reset keyword len lda (ZPTmpPtr2) bne .4 bra .1 .8 clc .HS B0 BCS .9 sec jmp CFG.Read.Close .80 jmp (J.CFG.Keywords,x) *-------------------------------------- CFG.Read.address ldx #S.IPCFG.IP+3 bra CFG.Read.IP CFG.Read.netmask ldx #S.IPCFG.MASK+3 bra CFG.Read.IP CFG.Read.gateway ldx #S.IPCFG.GW+3 bra CFG.Read.IP CFG.Read.nameserver ldx #S.IPCFG.DNS1+3 lda IPCFG,x beq CFG.Read.IP ldx #S.IPCFG.DNS2+3 CFG.Read.IP ldy #3 .1 txa clc adc L.IPCFG pha lda L.IPCFG+1 adc #0 >PUSHA @IP[3][2][1][0] pla >PUSHA dex dey bpl .1 >PUSHBI 8 4 PTRs on stack >PUSHW L.CFG.IP.SScanF lda (ZPTmpPtr2) sec adc ZPTmpPtr1 tay lda ZPTmpPtr1+1 adc #0 >SYSCALL SScanF rts CFG.Read.dnsdomain lda (ZPTmpPtr2) sec adc ZPTmpPtr1 sta ZPTmpPtr1 bcc .1 inc ZPTmpPtr1+1 .1 ldy #$ff .2 iny lda (ZPTmpPtr1),y sta IPCFG+S.IPCFG.DOMAIN,y beq .8 cpy #K.DNS.MAXLEN bne .2 lda #0 sta IPCFG+S.IPCFG.DOMAIN,y .8 rts *-------------------------------------- CFG.Read.HOSTS stz CFG.hBuf2 stz CFG.hBuf3 >LDYA L.HOSTS jsr CFG.Read.Open jsr CFG.Read.Result bcs .9 >LDYAI 256 >SYSCALL GetMem bcs .9 >STYA ZPTmpPtr2 stx CFG.hBuf2 >LDYAI 256 >SYSCALL GetMem bcs .9 >STYA ZPTmpPtr3 stx CFG.hBuf3 .1 jsr CFG.Read.GetS bcs .8 lda (ZPTmpPtr1) beq .1 empty line... cmp #'# beq .1 comment... jsr CFG.Read.HOSTS.Scan bcs .1 cmp #5 bcc .1 less than 5 parameters, ignore beq .2 no alias >LDYA ZPTmpPtr3 jsr CFG.DNS.Add .2 >LDYA ZPTmpPtr2 jsr CFG.DNS.Add bra .1 .8 clc .HS B0 BCS .9 sec php pha lda CFG.hBuf3 beq .90 >SYSCALL freemem .90 lda CFG.hBuf2 beq .91 >SYSCALL freemem .91 jmp CFG.Read.Close2 *-------------------------------------- CFG.Read.HOSTS.Scan >PUSHW ZPTmpPtr3 >PUSHW ZPTmpPtr2 ldx #3 .2 txa clc adc L.CFG.IP tay lda L.CFG.IP+1 adc #0 >PUSHYA @IP[3][2][1][0] dex bpl .2 >PUSHBI 12 6 PTRs on stack >PUSHW L.CFG.HOST.SScanF >LDYA ZPTmpPtr1 >SYSCALL SScanF rts *-------------------------------------- CFG.DNS.ADD >STYA ZPTmpPtr1 >LDYA L.CFG.IP >PUSHYA >PUSHW ZPTmpPtr1 >LIBCALL hLIBTCPIP,LIBTCPIP.DNS.Add *-------------------------------------- CFG.Read.Result bcc .1 >PUSHA >PUSHBI 1 >LDYA L.MSG.CFG.KO >SYSCALL printf sec rts .1 >LDYA L.MSG.CFG.OK >SYSCALL puts rts *-------------------------------------- CFG.Read.Open stz CFG.hCfgFile stz CFG.hCfgPath >SYSCALL ExpandStr bcs .9 stx CFG.hCfgPath pha >PUSHWI 0 >PUSHBI S.FI.T.TXT >PUSHBI O.RDONLY pla >SYSCALL fopen bcs .9 sta CFG.hCfgFile * clc .9 rts *-------------------------------------- CFG.Read.Close php pha CFG.Read.Close2 lda CFG.hCfgPath beq .1 >SYSCALL FreeMem .1 lda CFG.hCfgFile beq .8 >SYSCALL fclose .8 pla plp rts *-------------------------------------- CFG.Read.GetS >PUSHWI 255 >PUSHW ZPTmpPtr1 lda CFG.hCfgFile >SYSCALL fgets rts *-------------------------------------- MAN SAVE USR/SRC/SBIN/IPCONFIG.S.ETC LOAD USR/SRC/SBIN/IPCONFIG.S ASM