A2osX/BIN/NETCONFIG.S.txt

1131 lines
23 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

NEW
AUTO 3,1
.LIST OFF
.OP 65C02
.OR $2000
.TF bin/netconfig
*--------------------------------------
.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.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
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 !!! >LDYAI immediate value of 80, not >LDYA content of memory location 80
>SYSCALL GetMem
bcs CS.INIT.RTS
>STYA ZPTmpPtr1
stx hBuf1 !!! don't forget to free() it in CS.QUIT
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
bcs CS.RUN.RTS
sta hCTX
jsr CS.SCRN.Init
bcs CS.RUN.RTS
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 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.SAVE
bne .2
jsr CS.DLG.SAVE
bcc CS.RUN.LOOP2
.2 cmp #EV.QUIT
bne CS.RUN.LOOP2
lda hSCRN
>LIBCALL hLIBTUI,LIBTUI.Destroy
*CS.RUN.QUIT2 lda hBuf1 !!! All done by CS.QUIT
* >SYSCALL FreeMem
* lda hLIBTUI
* >SYSCALL UnloadLib
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
* cmp #0 !!! not required
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 CS.IPR.Loop
rts
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 #1
>STA.G AUTOIP.Var Preselect Manual IP radio
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
* >PUSHBI 0 HK
* >PUSHBI 0 EV
>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
>PUSHWZ
* >PUSHBI 0 HK
* >PUSHBI 0 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
* >PUSHBI 0 HK
* >PUSHBI 0 EV
>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
* >PUSHBI 0 HK
* >PUSHBI 0 EV
>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
* >PUSHBI 0 HK
* >PUSHBI 0 EV
>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
* >PUSHBI 0 HK
* >PUSHBI 0 EV
>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
* >PUSHBI 0 HK
* >PUSHBI 0 EV
>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
>PUSHB hSCRN hParent
>PUSHBI SCR.X1
>PUSHBI SCR.Y2+2
>PUSHW L.IPADDR.Label
>PUSHBI 0
>LIBCALL hLIBTUI,LIBTUI.NewLabel
>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
>PUSHB hSCRN hParent
>PUSHBI SCR.X2
>PUSHBI SCR.Y2+2
>PUSHW L.MASK.Label
>PUSHBI 0
>LIBCALL hLIBTUI,LIBTUI.NewLabel
>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
>PUSHB hSCRN hParent
>PUSHBI SCR.X3
>PUSHBI SCR.Y2+2
>PUSHW L.GATEWAY.Label
>PUSHBI 0
>LIBCALL hLIBTUI,LIBTUI.NewLabel
>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
>PUSHB hSCRN hParent
>PUSHBI SCR.X1
>PUSHBI SCR.Y2+5
>PUSHW L.NS1.Label
>PUSHBI 0
>LIBCALL hLIBTUI,LIBTUI.NewLabel
>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
>PUSHB hSCRN hParent
>PUSHBI SCR.X2
>PUSHBI SCR.Y2+5
>PUSHW L.NS2.Label
>PUSHBI 0
>LIBCALL hLIBTUI,LIBTUI.NewLabel
>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
>PUSHB hSCRN hParent
>PUSHBI SCR.X3
>PUSHBI SCR.Y2+5
>PUSHW L.DOM.Label
>PUSHBI 0
>LIBCALL hLIBTUI,LIBTUI.NewLabel
>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
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.DLG.SAVE >PUSHB hCTX hParent
>PUSHBI 70 W
>PUSHBI 11 H
>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
* >PUSHBI 0
* >PUSHBI 0
>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 #0
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 .0
rts
.0 >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 .0
rts
.0 >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 !!! ZP, ....
* >LDA.G hBuf1 !!! ...not in DS
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 !!! NO %d....
* ldy #S.OBJ.X1
*.1 lda (ZPPtr1),y
* >PUSHA
* iny
* cpy #S.OBJ.InnerH+1
* bne .1
* >PUSHBI 10 !!! .... so DATA byte count = 0
>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 .CS "Uthernet\r"
.CS "LanCeGS\r"
.CS "Uthernet2\r"
.CS "Dan2Eth\r"
.CS "UdEth\r"
.CZ "UdEth.D (DMA)"
*--------------------------------------
AUTOIP.Label .AZ "Auto or Manual IP"
AUTOIP.List .CS "Auto/DHCP\r"
.CZ "Manual/Static"
*--------------------------------------
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 (Ignored for Auto/DHCP)"
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 1
AUTOIP.Var .BS 1
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 !!! enough room for ending \0
SCRN.TitleBuf .BS 81 !!! maximum screen width + \0
DS.END .ED
*--------------------------------------
MAN
SAVE usr/src/bin/netconfig.s
ASM