NEW AUTO 3,1 .LIST OFF .OP 65C02 .OR $2000 .TF bin/netconfig *-------------------------------------- * for build 2666 onwards *-------------------------------------- .INB inc/macros.i .INB inc/a2osx.i .INB inc/mli.i .INB inc/mli.e.i .INB inc/libtui.i *-------------------------------------- * Constants *-------------------------------------- EV.SAVE .EQ $C0 EV.QUIT .EQ $C1 EV.AUTOIP .EQ $C2 EV.OK .EQ $CE EV.CANCEL .EQ $CF SCR.X1 .EQ 3 SCR.X2 .EQ 27 SCR.X3 .EQ 52 SCR.Y1 .EQ 1 SCR.Y2 .EQ 12 *-------------------------------------- * Zero Page Segment, up to 32 bytes *-------------------------------------- .DUMMY .OR ZPBIN ZS.START hFile .BS 1 hBuf1 .BS 1 hCTX .BS 1 hSCRN .BS 1 hItem1 .BS 1 hIPLabel .BS 1 hIPaddrL .BS 1 hIPaddrV .BS 1 hIPmaskL .BS 1 hIPmaskV .BS 1 hIPgwayL .BS 1 hIPgwayV .BS 1 hIPns1L .BS 1 hIPns1V .BS 1 hIPns2L .BS 1 hIPns2V .BS 1 hIPdomL .BS 1 hIPdomV .BS 1 hDLGS .BS 1 hDLGitem .BS 1 ZPPtr1 .BS 2 ZPTmpPtr1 .BS 2 ZPTmpPtr2 .BS 2 ZPTmpPtr3 .BS 2 ZPTmpPtr4 .BS 2 ZPBufPtr .BS 1 ZS.END .ED *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- CS.START cld jmp (.1,x) .DA #$61 6502,Level 1 (65c02) .DA #1 BIN Layout Version 1 .DA #0 S.PS.F .DA #0 .DA CS.END-CS.START Code Length To Relocate .DA DS.END-DS.START Data Segment to Allocate .DA #16 Stack Size .DA #ZS.END-ZS.START Zero Page Size .DA 0 *-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT .DA CS.QUIT L.LIBTUI .DA LIBTUI *-------------------------------------- L.NETSTART .DA NETSTART L.HOSTNAME .DA HOSTNAME L.NETWORK .DA NETWORK L.NETWORKIP .DA NETWORKIP L.NETWORKET .DA NETWORKET L.TCPIP.CONF .DA TCPIP.CONF L.SCRN.Title .DA SCRN.Title L.SCRN.Status .DA SCRN.Status L.SCRN.StatusSv .DA SCRN.StatusSv L.HOST.Label .DA HOST.Label L.IFACE.Label .DA IFACE.Label L.IFACE.List .DA IFACE.List L.AUTOIP.Label .DA AUTOIP.Label L.AUTOIP.List .DA AUTOIP.List L.PROTO.Label .DA PROTO.Label L.LIBTCPIP.Label .DA LIBTCPIP.Label L.LIBETALK.Label .DA LIBETALK.Label L.SERV.Label .DA SERV.Label L.TELNET.Label .DA TELNET.Label L.HTTPD.Label .DA HTTPD.Label L.BBSD.Label .DA BBSD.Label L.MANUAL.Label .DA MANUAL.Label L.IPADDR.Label .DA IPADDR.Label L.MASK.Label .DA MASK.Label L.GATEWAY.Label .DA GATEWAY.Label L.NS1.Label .DA NS1.Label L.NS2.Label .DA NS2.Label L.DOM.Label .DA DOM.Label L.BUTQ.Label .DA BUTQ.Label L.BUTS.Label .DA BUTS.Label L.DLGS.Title .DA DLGS.Title L.DLGS.Text .DA DLGS.Text L.DLGS.Label .DA DLGS.Label L.BUT.OK .DA BUT.OK L.BUT.Cancel .DA BUT.Cancel L.NS.Hdr .DA NS.Hdr T.NICs .DA NS.Uth Table of 6 ptrs -> NIC lines .DA NS.Lanc .DA NS.U2 .DA NS.Dan2Eth .DA NS.Udeth .DA NS.Udeth.D L.NS.networkd .DA NS.networkd L.NS.libtcpip .DA NS.libtcpip L.NS.libetalk .DA NS.libetalk L.NS.amper .DA NS.amper L.NS.telnetd .DA NS.telnetd L.NS.httpd .DA NS.httpd L.NS.bbsd .DA NS.bbsd L.IP.Hash .DA IP.Hash L.Host.Hdr .DA Host.Hdr L.EOL .DA EOL *L.Str.debug .DA Str.debug L.IP.Keywords .DA IP.Keywords J.IP.Keywords .DA CS.IPR.addr .DA CS.IPR.mask .DA CS.IPR.gway .DA CS.IPR.ns1 .DA CS.IPR.dom .DA 0 *-------------------------------------- CS.INIT >LDYA L.LIBTUI >SYSCALL LoadLib bcs CS.INIT.RTS sta hLIBTUI * clc CS.INIT.RTS rts *-------------------------------------- CS.RUN >LDYAI 80 >SYSCALL GetMem bcc .1 rts .1 >STYA ZPTmpPtr1 stx hBuf1 jsr CS.HOSTR Read HOSTNAME file jsr CS.IPR Read TCPIP.CONF file jsr CS.File.Close CS.IPR doesn't close the file >LIBCALL hLIBTUI,LIBTUI.Init bcc .2 rts .2 sta hCTX jsr CS.SCRN.Init bcc .3 rts .3 jsr CS.HOST.INIT bcs CS.RUN.RTS jsr CS.IFACE.Init bcs CS.RUN.RTS jsr CS.AUTOIP.Init bcs CS.RUN.RTS jsr CS.PROTO.Init bcs CS.RUN.RTS jsr CS.SERV.Init bcs CS.RUN.RTS jsr CS.IP.Init bcs CS.RUN.RTS jsr CS.BUT.Init bcs CS.RUN.RTS jsr CS.SCRN.Draw Will Call SCRN.Draw >LDA.G AUTOIP.Var bne .4 jsr CS.AUTOIP.Hide .4 lda hItem1 >LIBCALL hLIBTUI,LIBTUI.Activate *-------------------------------------- CS.RUN.LOOP2 lda hSCRN >LIBCALL hLIBTUI,LIBTUI.Exec bcs CS.RUN.RTS cmp #EV.RESIZE bne .1 jsr CS.SCRN.Draw bcs CS.RUN.RTS bra CS.RUN.LOOP2 .1 cmp #EV.AUTOIP bne .2 >LDA.G AUTOIP.Var bne .11 jsr CS.AUTOIP.Hide bra CS.RUN.LOOP2 .11 jsr CS.AUTOIP.Show bra CS.RUN.LOOP2 .2 cmp #EV.SAVE bne .3 jsr CS.DLG.SAVE bcc CS.RUN.LOOP2 .3 cmp #EV.QUIT bne CS.RUN.LOOP2 lda hSCRN >LIBCALL hLIBTUI,LIBTUI.Destroy lda #0 sec CS.RUN.RTS rts *-------------------------------------- CS.HOSTR >LDYA L.HOSTNAME etc/hostname JSR CS.File.OpenRD bcc CS.HOSTR.Loop rts CS.HOSTR.Loop jsr CS.File.Read bcs .1 lda (ZPTmpPtr1) beq CS.HOSTR.Loop cmp #'#' beq CS.HOSTR.Loop .1 >LEA.G HOST.Buf >STYA ZPTmpPtr4 ldy #0 Copy setting to var string CS.HOSTR.Loop2 lda (ZPTmpPtr1),y beq .2 sta (ZPTmpPtr4),y iny cpy #$0F bcc CS.HOSTR.Loop2 .2 lda #0 sta (ZPTmpPtr4),y * clc jmp CS.File.Close *-------------------------------------- CS.IPR >LDYA L.TCPIP.CONF etc/tcpip.conf JSR CS.File.OpenRD bcc .1 rts .1 lda #1 >STA.G AUTOIP.Var Preselect manual IP CS.IPR.Loop jsr CS.File.Read bcs .8 .1 ldy #$ff .2 iny .21 lda (ZPTmpPtr1),y cmp #C.SPACE beq .3 cmp #'#' bne .2 lda #0 >STA.G AUTOIP.Var Any hash found preselects autoip/dhcp inc ZPTmpPtr1 bcc .21 inc ZPTmpPtr2+1 bra .21 .3 lda L.IP.Keywords Whole word, check sta ZPTmpPtr2 lda L.IP.Keywords+1 sta ZPTmpPtr2+1 ldx #0 .4 phy save keyword len tya cmp (ZPTmpPtr2) bne .6 empty .5 lda (ZPTmpPtr2),y check next char dey cmp (ZPTmpPtr1),y bne .6 no match tya bne .5 ply discard keyword len jsr CS.IPR.Keyword keyword matched - action it bcc CS.IPR.Loop rts .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 CS.IPR.Loop .8 clc jmp CS.File.Close CS.IPR.Keyword lda ZPTmpPtr1+1 Move ptr to after keyword+space sta ZPTmpPtr3+1 iny clc tya adc ZPTmpPtr1 sta ZPTmpPtr3 bcc .81 inc ZPTmpPtr3+1 .81 jmp (J.IP.Keywords,x) CS.IPR.addr >LEA.G IPADDR.Buf >STYA ZPTmpPtr4 CS.IPR.Copy ldx #15 "255.255.255.255" + \0 = 16 CS.IPR.CopyX ldy #0 Copy setting to correct var .1 lda (ZPTmpPtr3),y beq .9 sta (ZPTmpPtr4),y iny dex bne .1 .9 lda #0 sta (ZPTmpPtr4),y clc rts CS.IPR.mask >LEA.G MASK.Buf >STYA ZPTmpPtr4 jmp CS.IPR.Copy CS.IPR.gway >LEA.G GATEWAY.Buf >STYA ZPTmpPtr4 jmp CS.IPR.Copy CS.IPR.ns1 >LEA.G NS1.Buf >STYA ZPTmpPtr4 lda (ZPTmpPtr4) bne CS.IPR.ns2 NS1 already populated jmp CS.IPR.Copy CS.IPR.ns2 >LEA.G NS2.Buf >STYA ZPTmpPtr4 jmp CS.IPR.Copy CS.IPR.dom >LEA.G DOM.Buf >STYA ZPTmpPtr4 ldx #31 !!! max 32 for domain name jsr CS.IPR.CopyX sec last one so sec rts *-------------------------------------- CS.File.OpenRD stz hFile >PUSHYA >PUSHBI O.RDONLY >PUSHBI 0 Type >PUSHWZ Aux type >SYSCALL FOpen bcs .9 sta hFile .9 rts *-------------------------------------- CS.File.Read >PUSHB hFile >PUSHW ZPTmpPtr1 >PUSHWI 80 >SYSCALL FGetS bcs .9 lda (ZPTmpPtr1) beq CS.File.Read * clc .9 rts *-------------------------------------- CS.File.OpenWR >PUSHYA >PUSHBI O.CREATE+O.WRONLY+O.TRUNC >PUSHBI $04 Type Text >PUSHWZ Aux type >SYSCALL FOpen bcs .9 sta hFile .9 rts *-------------------------------------- CS.File.FPutSYA pha >PUSHB hFile pla >PUSHYA >SYSCALL FPutS rts *-------------------------------------- CS.File.Close php pha lda hFile beq .8 >SYSCALL FClose .8 pla plp rts *-------------------------------------- CS.SCRN.Init >PUSHB hCTX hParent >PUSHBI S.OBJ.F.bTitle+S.OBJ.F.bStatus >LIBCALL hLIBTUI,LIBTUI.NewScrn bcs .9 sta hSCRN >PUSHA >PUSHBI S.OBJ.pTITLE >PUSHEA.G SCRN.TitleBuf >LIBCALL hLIBTUI,LIBTUI.SetProp >PUSHB hSCRN >PUSHBI S.OBJ.pSTATUS >PUSHW L.SCRN.Status >LIBCALL hLIBTUI,LIBTUI.SetProp .9 rts *-------------------------------------- CS.HOST.INIT >PUSHB hSCRN hParent >PUSHBI SCR.X1 >PUSHBI SCR.Y1 >PUSHW L.HOST.Label >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewLabel bcs .9 >PUSHB hSCRN hParent >PUSHBI SCR.X1+9 >PUSHBI SCR.Y1 >PUSHBI 18 W >PUSHEA.G HOST.Buf >PUSHWI 15 Len >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewTLine sta hItem1 .9 rts *-------------------------------------- CS.IFACE.Init >PUSHB hSCRN hParent >PUSHBI SCR.X1 >PUSHBI SCR.Y1+2 >PUSHW L.IFACE.Label >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewLabel bcs .9 >PUSHB hSCRN hParent >PUSHBI SCR.X1 >PUSHBI SCR.Y1+3 >PUSHWZ >PUSHW L.IFACE.List >PUSHEA.G IFACE.Var >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewRadio .9 rts *-------------------------------------- CS.AUTOIP.Init >PUSHB hSCRN hParent >PUSHBI SCR.X2 >PUSHBI SCR.Y1+2 >PUSHW L.AUTOIP.Label >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewLabel bcs .9 >PUSHB hSCRN hParent >PUSHBI SCR.X2 >PUSHBI SCR.Y1+3 >PUSHBI 0 HK >PUSHBI EV.AUTOIP EV >PUSHW L.AUTOIP.List >PUSHEA.G AUTOIP.Var >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewRadio .9 rts CS.PROTO.Init >PUSHB hSCRN hParent >PUSHBI SCR.X2 >PUSHBI SCR.Y1+6 >PUSHW L.PROTO.Label >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewLabel bcs .1 >PUSHB hSCRN hParent >PUSHBI SCR.X2 >PUSHBI SCR.Y1+7 >PUSHWZ >PUSHW L.LIBTCPIP.Label >PUSHEA.G LIBTCPIP.Var >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewCBox .1 bcs .9 >PUSHB hSCRN hParent >PUSHBI SCR.X2 >PUSHBI SCR.Y1+8 >PUSHWZ >PUSHW L.LIBETALK.Label >PUSHEA.G LIBETALK.Var >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewCBox .9 rts CS.SERV.Init >PUSHB hSCRN hParent >PUSHBI SCR.X3 >PUSHBI SCR.Y1+2 >PUSHW L.SERV.Label >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewLabel bcc .1 rts .1 >PUSHB hSCRN hParent >PUSHBI SCR.X3 >PUSHBI SCR.Y1+3 >PUSHWZ >PUSHW L.TELNET.Label >PUSHEA.G TELNET.Var >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewCBox bcc .2 rts .2 >PUSHB hSCRN hParent >PUSHBI SCR.X3 >PUSHBI SCR.Y1+4 >PUSHWZ >PUSHW L.HTTPD.Label >PUSHEA.G HTTPD.Var >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewCBox bcc .3 rts .3 >PUSHB hSCRN hParent >PUSHBI SCR.X3 >PUSHBI SCR.Y1+5 >PUSHWZ >PUSHW L.BBSD.Label >PUSHEA.G BBSD.Var >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewCBox rts CS.IP.Init >PUSHB hSCRN hParent >PUSHBI SCR.X1 >PUSHBI SCR.Y2 >PUSHW L.MANUAL.Label >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewLabel sta hIPLabel >PUSHB hSCRN hParent >PUSHBI SCR.X1 >PUSHBI SCR.Y2+2 >PUSHW L.IPADDR.Label >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewLabel sta hIPaddrL >PUSHB hSCRN hParent >PUSHBI SCR.X1 >PUSHBI SCR.Y2+3 >PUSHBI 18 W >PUSHEA.G IPADDR.Buf >PUSHWI 15 Len >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewTLine sta hIPaddrV >PUSHB hSCRN hParent >PUSHBI SCR.X2 >PUSHBI SCR.Y2+2 >PUSHW L.MASK.Label >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewLabel sta hIPmaskL >PUSHB hSCRN hParent >PUSHBI SCR.X2 >PUSHBI SCR.Y2+3 >PUSHBI 18 W >PUSHEA.G MASK.Buf >PUSHWI 15 Len >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewTLine sta hIPmaskV >PUSHB hSCRN hParent >PUSHBI SCR.X3 >PUSHBI SCR.Y2+2 >PUSHW L.GATEWAY.Label >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewLabel sta hIPgwayL >PUSHB hSCRN hParent >PUSHBI SCR.X3 >PUSHBI SCR.Y2+3 >PUSHBI 18 W >PUSHEA.G GATEWAY.Buf >PUSHWI 15 Len >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewTLine sta hIPgwayV >PUSHB hSCRN hParent >PUSHBI SCR.X1 >PUSHBI SCR.Y2+5 >PUSHW L.NS1.Label >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewLabel sta hIPns1L >PUSHB hSCRN hParent >PUSHBI SCR.X1 >PUSHBI SCR.Y2+6 >PUSHBI 18 W >PUSHEA.G NS1.Buf >PUSHWI 15 Len >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewTLine sta hIPns1V >PUSHB hSCRN hParent >PUSHBI SCR.X2 >PUSHBI SCR.Y2+5 >PUSHW L.NS2.Label >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewLabel sta hIPns2L >PUSHB hSCRN hParent >PUSHBI SCR.X2 >PUSHBI SCR.Y2+6 >PUSHBI 18 W >PUSHEA.G NS2.Buf >PUSHWI 15 Len >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewTLine sta hIPns2V >PUSHB hSCRN hParent >PUSHBI SCR.X3 >PUSHBI SCR.Y2+5 >PUSHW L.DOM.Label >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewLabel sta hIPdomL >PUSHB hSCRN hParent >PUSHBI SCR.X3 >PUSHBI SCR.Y2+6 >PUSHBI 25 W >PUSHEA.G DOM.Buf >PUSHWI 65 Len >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewTLine sta hIPdomV rts *-------------------------------------- CS.BUT.Init >PUSHB hSCRN hParent >PUSHBI 50 X1 >PUSHBI 20 Y1 >PUSHBI 19 Ctrl-S >PUSHBI EV.SAVE >PUSHW L.BUTS.Label >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewBut bcs .9 >PUSHB hSCRN hParent >PUSHBI 65 X1 >PUSHBI 20 Y1 >PUSHBI 17 Ctrl-Q >PUSHBI EV.QUIT >PUSHW L.BUTQ.Label >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewBut .9 rts *-------------------------------------- CS.AUTOIP.Hide lda hIPLabel >LIBCALL hLIBTUI,LIBTUI.Hide lda hIPaddrL >LIBCALL hLIBTUI,LIBTUI.Hide lda hIPaddrV >LIBCALL hLIBTUI,LIBTUI.Hide lda hIPmaskL >LIBCALL hLIBTUI,LIBTUI.Hide lda hIPmaskV >LIBCALL hLIBTUI,LIBTUI.Hide lda hIPgwayL >LIBCALL hLIBTUI,LIBTUI.Hide lda hIPgwayV >LIBCALL hLIBTUI,LIBTUI.Hide lda hIPns1L >LIBCALL hLIBTUI,LIBTUI.Hide lda hIPns1V >LIBCALL hLIBTUI,LIBTUI.Hide lda hIPns2L >LIBCALL hLIBTUI,LIBTUI.Hide lda hIPns2V >LIBCALL hLIBTUI,LIBTUI.Hide lda hIPdomL >LIBCALL hLIBTUI,LIBTUI.Hide lda hIPdomV >LIBCALL hLIBTUI,LIBTUI.Hide rts *-------------------------------------- CS.AUTOIP.Show lda hIPLabel >LIBCALL hLIBTUI,LIBTUI.Show lda hIPaddrL >LIBCALL hLIBTUI,LIBTUI.Show lda hIPaddrV >LIBCALL hLIBTUI,LIBTUI.Show lda hIPmaskL >LIBCALL hLIBTUI,LIBTUI.Show lda hIPmaskV >LIBCALL hLIBTUI,LIBTUI.Show lda hIPgwayL >LIBCALL hLIBTUI,LIBTUI.Show lda hIPgwayV >LIBCALL hLIBTUI,LIBTUI.Show lda hIPns1L >LIBCALL hLIBTUI,LIBTUI.Show lda hIPns1V >LIBCALL hLIBTUI,LIBTUI.Show lda hIPns2L >LIBCALL hLIBTUI,LIBTUI.Show lda hIPns2V >LIBCALL hLIBTUI,LIBTUI.Show lda hIPdomL >LIBCALL hLIBTUI,LIBTUI.Show lda hIPdomV >LIBCALL hLIBTUI,LIBTUI.Show rts *-------------------------------------- CS.DLG.SAVE >PUSHB hCTX hParent >PUSHBI 70 W >PUSHBI 11 H >PUSHBI 0 >PUSHW L.DLGS.Title >LIBCALL hLIBTUI,LIBTUI.NewDlg bcs .9 sta hDLGS >PUSHB hDLGS hParent >PUSHBI 2 X1 >PUSHBI 2 Y1 >PUSHW L.DLGS.Text >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewLabel bcs .9 >PUSHB hDLGS hParent >PUSHBI 2 >PUSHBI 4 Y1 >PUSHWZ HotKey, EV >PUSHW L.DLGS.Label >PUSHEA.G DLGS.Var >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewCBox bcc CS.DLG.SAVE2 .9 rts CS.DLG.SAVE2 sta hDLGitem >PUSHB hDLGS hParent >PUSHBI 48 X1 >PUSHBI 7 Y1 >PUSHBI C.CR Hotkey ENTER >PUSHBI EV.OK >PUSHW L.BUT.OK >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewBut bcs .8 >PUSHB hDLGS hParent >PUSHBI 57 X1 >PUSHBI 7 Y1 >PUSHBI 3 Hotkey Ctrl-C >PUSHBI EV.CANCEL >PUSHW L.BUT.Cancel >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewBut bcs .8 lda hDLGS >LIBCALL hLIBTUI,LIBTUI.Draw bcc .9 .8 rts .9 lda hDLGitem >LIBCALL hLIBTUI,LIBTUI.Activate CS.DLG.Loop lda hDLGS >LIBCALL hLIBTUI,LIBTUI.Exec cmp #EV.OK bne .1 >PUSHB hSCRN >PUSHBI S.OBJ.pSTATUS >PUSHW L.SCRN.StatusSv >LIBCALL hLIBTUI,LIBTUI.SetProp jsr CS.IPW write tcpip.conf jsr CS.HOSTW write hostname jsr CS.NETW write startup system script >LDA.G DLGS.Var cmp #1 beq .1 jsr CS.SHW write startup shell script bra .2 .1 cmp #EV.CANCEL bne CS.DLG.Loop .2 php pha lda hDLGS >LIBCALL hLIBTUI,LIBTUI.Destroy lda hSCRN >LIBCALL hLIBTUI,LIBTUI.Draw pla plp .9 rts *-------------------------------------- CS.HOSTW >LDYA L.HOSTNAME jsr CS.File.OpenWR bcc .1 rts .1 >LDYA L.HOST.Hdr jsr CS.File.FPutSYA >LEA.G HOST.Buf jsr CS.File.FPutSYA >LDYA L.EOL jsr CS.File.FPutSYA jmp CS.File.Close *-------------------------------------- CS.IPW >LDYA L.TCPIP.CONF jsr CS.File.OpenWR bcc .1 rts .1 >LDA.G AUTOIP.Var bne CS.IPW.addr >LDYA L.IP.Hash jsr CS.File.FPutSYA CS.IPW.addr >LDYA L.IPADDR.Label jsr CS.File.FPutSYA >LEA.G IPADDR.Buf jsr CS.File.FPutSYA >LDYA L.EOL jsr CS.File.FPutSYA >LDA.G AUTOIP.Var bne CS.IPW.mask >LDYA L.IP.Hash jsr CS.File.FPutSYA CS.IPW.mask >LDYA L.MASK.Label jsr CS.File.FPutSYA >LEA.G MASK.Buf jsr CS.File.FPutSYA >LDYA L.EOL jsr CS.File.FPutSYA >LDA.G AUTOIP.Var bne CS.IPW.gway >LDYA L.IP.Hash jsr CS.File.FPutSYA CS.IPW.gway >LDYA L.GATEWAY.Label jsr CS.File.FPutSYA >LEA.G GATEWAY.Buf jsr CS.File.FPutSYA >LDYA L.EOL jsr CS.File.FPutSYA >LDA.G AUTOIP.Var bne CS.IPW.ns1 >LDYA L.IP.Hash jsr CS.File.FPutSYA CS.IPW.ns1 >LDYA L.NS1.Label jsr CS.File.FPutSYA >LEA.G NS1.Buf jsr CS.File.FPutSYA >LDYA L.EOL jsr CS.File.FPutSYA >LDA.G AUTOIP.Var bne CS.IPW.ns2 >LDYA L.IP.Hash jsr CS.File.FPutSYA CS.IPW.ns2 >LDYA L.NS1.Label Must use NS1 label again jsr CS.File.FPutSYA >LEA.G NS2.Buf jsr CS.File.FPutSYA >LDYA L.EOL jsr CS.File.FPutSYA >LDA.G AUTOIP.Var bne CS.IPW.dom >LDYA L.IP.Hash jsr CS.File.FPutSYA CS.IPW.dom >LDYA L.DOM.Label jsr CS.File.FPutSYA >LEA.G DOM.Buf jsr CS.File.FPutSYA >LDYA L.EOL jsr CS.File.FPutSYA jmp CS.File.Close *-------------------------------------- CS.SHW >LDYA L.Netstart Write network startup shell script jsr CS.File.OpenWR bcc .1 rts .1 >LDYA L.NS.Hdr jsr CS.File.FPutSYA >LDA.G IFACE.var range = 0..5 asl tax X = 0..10 >LDYA T.NICs,x jsr CS.File.FPutSYA CS.SHW.netd >LDYA L.NS.networkd jsr CS.File.FPutSYA >LDA.G LIBTCPIP.Var beq CS.SHW.etalk >LDYA L.NS.libtcpip jsr CS.File.FPutSYA CS.SHW.etalk >LDA.G LIBETALK.Var beq CS.SHW.amper >LDYA L.NS.libetalk jsr CS.File.FPutSYA cs.SHW.amper >LDYA L.NS.amper jsr CS.File.FPutSYA >LDA.G TELNET.Var beq CS.SHW.httpd >LDYA L.NS.telnetd jsr CS.File.FPutSYA CS.SHW.httpd >LDA.G HTTPD.Var beq CS.SHW.bbsd >LDYA L.NS.httpd jsr CS.File.FPutSYA CS.SHW.bbsd >LDA.G BBSD.Var beq CS.SHW.close >LDYA L.NS.bbsd jsr CS.File.FPutSYA CS.SHW.close jmp CS.File.Close *.9 rts *-------------------------------------- CS.NETW >LDYA L.NETWORK Write network startup system script jsr CS.File.OpenWR bcc .1 rts .1 >LDA.G LIBTCPIP.Var bpl CS.NETW.etalk >LDYA L.NETWORKIP jsr CS.File.FPutSYA CS.NETW.etalk >LDA.G LIBETALK.Var bpl .9 >LDYA L.NETWORKET jsr CS.File.FPutSYA .9 jmp CS.File.Close *-------------------------------------- CS.DOEVENT sec do not discard TIMER event rts *-------------------------------------- CS.QUIT lda hBuf1 beq .1 >SYSCALL FreeMem .1 lda hCTX beq .2 >LIBCALL hLIBTUI,LIBTUI.Close .2 lda hLIBTUI beq .8 >SYSCALL UnloadLib .8 clc rts *-------------------------------------- CS.SCRN.Draw lda hSCRN >SYSCALL GetMemPtr >STYA ZPPtr1 >PUSHEA.G SCRN.TitleBuf >PUSHW L.SCRN.Title >PUSHBI 0 >SYSCALL sprintf lda hSCRN >LIBCALL hLIBTUI,LIBTUI.Draw rts *-------------------------------------- CS.END *-------------------------------------- LIBTUI .AZ "libtui" hLIBTUI .BS 1 *-------------------------------------- NETSTART .AZ "${HOME}netstart" HOSTNAME .AZ "${ROOT}etc/hostname" TCPIP.CONF .AZ "${ROOT}etc/tcpip.conf" NETWORK .AZ "${ROOT}etc/network" NETWORKIP .CZ "ipconfig\r" NETWORKET .CZ "etconfig\r" *-------------------------------------- IP.Keywords .PS "address" .PS "netmask" .PS "gateway" .PS "nameserver" .PS "dnsdomain" .DA #0 *-------------------------------------- SCRN.Title .AZ " NetConfig" SCRN.Status .AZ " " SCRN.StatusSv .AZ " Settings saved successfully" *-------------------------------------- HOST.Label .AZ "Hostname:" *Host.Text .BS 16 *-------------------------------------- IFACE.Label .AZ "Interface" IFACE.List .AZ "Uthernet" .AZ "LanCeGS" .AZ "Uthernet2" .AZ "Dan2Eth" .AZ "UdEth" .AZ "UdEth.D (DMA)" .DA 0 *-------------------------------------- AUTOIP.Label .AZ "Auto or Manual IP" AUTOIP.List .AZ "Auto/DHCP" .AZ "Manual/Static" .DA 0 *-------------------------------------- PROTO.Label .AZ "Protocol" LIBTCPIP.Label .AZ "TCP/IP" LIBETALK.Label .AZ "Ethertalk" *-------------------------------------- SERV.Label .AZ "Services" TELNET.Label .AZ "telnetd" HTTPD.Label .AZ "httpd" BBSD.Label .AZ "bbsd" *-------------------------------------- MANUAL.Label .AZ "MANUAL IP SETTINGS" IPADDR.Label .AZ "address " MASK.Label .AZ "netmask " GATEWAY.Label .AZ "gateway " NS1.Label .AZ "nameserver " NS2.Label .AZ "nameserver 2" DOM.Label .AZ "dnsdomain " *-------------------------------------- BUTS.Label .AZ "(^S)ave..." BUTQ.Label .AZ "(^Q)uit" DLGS.Title .AZ "Save Config" DLGS.Text .AZ "Save the system config files?" DLGS.Label .AZ "Create NETSTART script in user home directory" BUT.OK .AZ " OK " BUT.Cancel .AZ "Cancel" *-------------------------------------- EOL .CZ "\r" NS.Hdr .CZ "#!/bin/sh\r" NS.Uth .CZ "insdrv uthernet.drv 00:0E:3A:12:34:56\r" NS.Lanc .CZ "insdrv lancegs.drv 00:0E:3A:12:34:56\r" NS.U2 .CZ "insdrv uthernet2.drv 00:08:DC:12:34:56\r" NS.Dan2Eth .CZ "insdrv dan2eth.drv 00:08:DC:12:34:56\r" NS.Udeth .CZ "insdrv udeth.drv 00:08:DC:12:34:56\r" NS.Udeth.D .CZ "insdrv udeth.d.drv 00:08:DC:12:34:56\r" NS.networkd .CZ "NOHUP networkd " NS.libtcpip .CZ "libtcpip " NS.libetalk .CZ "libetalk " NS.amper .CZ "&\r" NS.telnetd .CZ "NOHUP telnetd 6502 &\r" NS.httpd .CZ "NOHUP httpd &\r" NS.bbsd .CZ "NOHUP bbsd &\r" *Str.debug .AZ "var = " IP.Hash .AZ "#" HOST.Hdr .CZ "# Put hostname here (max 15 characters)\r" *-------------------------------------- .DUMMY .OR 0 DS.START IFACE.Var .BS 2 AUTOIP.Var .BS 2 LIBTCPIP.Var .BS 1 LIBETALK.Var .BS 1 TELNET.Var .BS 1 HTTPD.Var .BS 1 BBSD.Var .BS 1 DLGS.Var .BS 1 HOST.Buf .BS 16 IPADDR.Buf .BS 16 MASK.Buf .BS 16 GATEWAY.Buf .BS 16 NS1.Buf .BS 16 NS2.Buf .BS 16 DOM.Buf .BS 32 SCRN.TitleBuf .BS 81 DS.END .ED *-------------------------------------- MAN SAVE usr/src/bin/netconfig.s ASM