NEW AUTO 3,1 *-------------------------------------- ETC.ReadFiles >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 L.IPCFG.HOSTNAME >PUSHW L.CFG.DefaultHost >PUSHW A2osX.T16 >PUSHBI 2 >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 stz bDHCP .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 pha >PUSHW L.MSG.CFG pla >PUSHYA >PUSHBI 2 >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 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 ldy #$ff .2 iny lda (ZPTmpPtr1),y beq .3 cmp #C.SPACE 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 bra CFG.Read.IP CFG.Read.netmask ldx #S.IPCFG.MASK bra CFG.Read.IP CFG.Read.gateway ldx #S.IPCFG.GW bra CFG.Read.IP CFG.Read.nameserver ldx #S.IPCFG.DNS1 lda IPCFG,x beq CFG.Read.IP ldx #S.IPCFG.DNS2 lda IPCFG,x beq CFG.Read.IP clc rts CFG.Read.IP lda (ZPTmpPtr2) sec adc ZPTmpPtr1 tay lda ZPTmpPtr1+1 adc #0 >PUSHYA >PUSHW L.CFG.IP.SScanF ldy #4 .1 txa clc adc L.IPCFG pha lda L.IPCFG+1 adc #0 >PUSHA @IP[0][1][2][3] pla >PUSHA inx dey bne .1 >PUSHBI 8 4 PTRs on stack >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 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 L.CFG.HOST.SScanF >LDYA ZPTmpPtr1 ldx #0 .2 txa clc adc L.CFG.IP tay lda L.CFG.IP+1 adc #0 >PUSHYA @IP[]..... inx cpx #4 bne .2 >PUSHW ZPTmpPtr2 >PUSHW ZPTmpPtr3 >PUSHBI 12 6 PTRs on stack >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 pha >PUSHW L.MSG.CFG.KO pla >PUSHA >PUSHBI 1 >SYSCALL PrintF sec rts .1 >LDYA L.MSG.CFG.OK >SYSCALL PutS rts *-------------------------------------- CFG.Read.Open stz CFG.hCfgFile >PUSHYA >PUSHBI O.RDONLY >PUSHBI 0 >PUSHWZ >SYSCALL FOpen bcs .9 sta CFG.hCfgFile * clc .9 rts *-------------------------------------- CFG.Read.Close php pha CFG.Read.Close2 lda CFG.hCfgFile beq .8 >SYSCALL FClose .8 pla plp rts *-------------------------------------- CFG.Read.GetS >PUSHB CFG.hCfgFile >PUSHW ZPTmpPtr1 >PUSHWI 255 >SYSCALL FGetS bcs .9 lda (ZPTmpPtr1) beq CFG.Read.GetS empty line... cmp #'#' beq CFG.Read.GetS comment... clc .9 rts *-------------------------------------- MAN SAVE usr/src/bin/ipconfig.s.etc LOAD usr/src/bin/ipconfig.s ASM