diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 810982b9..6734d59b 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BIN/MAN.S.txt b/BIN/MAN.S.txt index fb90ebcc..1adb0668 100644 --- a/BIN/MAN.S.txt +++ b/BIN/MAN.S.txt @@ -190,11 +190,11 @@ CS.Scr.Init >LIBCALL hLIBTUI,LIBTUI.Init >PUSHBI 0 Y1 >PUSHBI 80 W >PUSHBI 22 H - >PUSHBI 0 F lda hFileBuf >SYSCALL GetMemPtr >PUSHYA >PUSHW BufSize + >PUSHBI 0 F >LIBCALL hLIBTUI,LIBTUI.NewTBox .99 bcs .9 @@ -347,7 +347,7 @@ hLIBTUI .BS 1 ENV.MANPATH .AZ "MANPATH" FILE.INDEX .AZ "index" *-------------------------------------- -MSG.ScrTitle .CZ "A2osX-MAN - uit" +MSG.ScrTitle .CZ "A2osX-MAN - UP/DOWN : Scroll, LEFT/RIGHT : Prev/Next link, uit" *-------------------------------------- MSG.USAGE .CS "Usage : MAN [#htag]" MSG.CRLF .CS "\r\n" diff --git a/BIN/NETCONFIG.S.txt b/BIN/NETCONFIG.S.txt index d0482d90..2d9b29b3 100644 --- a/BIN/NETCONFIG.S.txt +++ b/BIN/NETCONFIG.S.txt @@ -1,1000 +1,1130 @@ -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 -L.NS.Uth .DA NS.Uth -L.NS.Lanc .DA NS.Lanc -L.NS.U2 .DA NS.U2 -L.NS.Dan2Eth .DA NS.Dan2Eth -L.NS.Udeth .DA NS.Udeth -L.NS.Udeth.D .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 >LDYA 80 - >SYSCALL GetMem -* bcs CS.RUN.RTS - >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 - 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 -CS.RUN.QUIT lda hSCRN - >LIBCALL hLIBTUI,LIBTUI.Destroy -CS.RUN.QUIT2 lda hBuf1 - >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 - 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 ldy #0 Copy setting to correct var -CS.IPR.Copy.L lda (ZPTmpPtr3),y - beq .9 - sta (ZPTmpPtr4),y - iny - cpy #$10 - bcc CS.IPR.Copy.L -.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 - jsr CS.IPR.Copy - 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.Write >PUSHB hFile - >PUSHW ZPTmpPtr1 - >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 - >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 - >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 - >LIBCALL hLIBTUI,LIBTUI.NewLabel - bcs .9 - >PUSHB hSCRN hParent - >PUSHBI SCR.X1 - >PUSHBI SCR.Y1+3 - >PUSHBI 0 HK - >PUSHBI 0 EV - >PUSHW L.IFACE.List - >PUSHEA.G IFACE.Var - >LIBCALL hLIBTUI,LIBTUI.NewRadio -.9 rts -*-------------------------------------- -CS.AUTOIP.Init >PUSHB hSCRN hParent - >PUSHBI SCR.X2 - >PUSHBI SCR.Y1+2 - >PUSHW L.AUTOIP.Label - >LIBCALL hLIBTUI,LIBTUI.NewLabel - bcs .9 - >PUSHB hSCRN hParent - >PUSHBI SCR.X2 - >PUSHBI SCR.Y1+3 - >PUSHBI 0 HK - >PUSHBI 0 EV - >PUSHW L.AUTOIP.List - >PUSHEA.G AUTOIP.Var - >LIBCALL hLIBTUI,LIBTUI.NewRadio -.9 rts - -CS.PROTO.Init >PUSHB hSCRN hParent - >PUSHBI SCR.X2 - >PUSHBI SCR.Y1+6 - >PUSHW L.PROTO.Label - >LIBCALL hLIBTUI,LIBTUI.NewLabel - bcs .1 - >PUSHB hSCRN hParent - >PUSHBI SCR.X2 - >PUSHBI SCR.Y1+7 - >PUSHBI 0 HK - >PUSHBI 0 EV - >PUSHW L.LIBTCPIP.Label - >PUSHEA.G LIBTCPIP.Var - >LIBCALL hLIBTUI,LIBTUI.NewCBox -.1 bcs .9 - >PUSHB hSCRN hParent - >PUSHBI SCR.X2 - >PUSHBI SCR.Y1+8 - >PUSHBI 0 HK - >PUSHBI 0 EV - >PUSHW L.LIBETALK.Label - >PUSHEA.G LIBETALK.Var - >LIBCALL hLIBTUI,LIBTUI.NewCBox -.9 rts - -CS.SERV.Init >PUSHB hSCRN hParent - >PUSHBI SCR.X3 - >PUSHBI SCR.Y1+2 - >PUSHW L.SERV.Label - >LIBCALL hLIBTUI,LIBTUI.NewLabel - bcc .1 - rts -.1 >PUSHB hSCRN hParent - >PUSHBI SCR.X3 - >PUSHBI SCR.Y1+3 - >PUSHBI 0 - >PUSHBI 0 - >PUSHW L.TELNET.Label - >PUSHEA.G TELNET.Var - >LIBCALL hLIBTUI,LIBTUI.NewCBox - bcc .2 - rts -.2 >PUSHB hSCRN hParent - >PUSHBI SCR.X3 - >PUSHBI SCR.Y1+4 - >PUSHBI 0 - >PUSHBI 0 - >PUSHW L.HTTPD.Label - >PUSHEA.G HTTPD.Var - >LIBCALL hLIBTUI,LIBTUI.NewCBox - bcc .3 - rts -.3 >PUSHB hSCRN hParent - >PUSHBI SCR.X3 - >PUSHBI SCR.Y1+5 - >PUSHBI 0 - >PUSHBI 0 - >PUSHW L.BBSD.Label - >PUSHEA.G BBSD.Var - >LIBCALL hLIBTUI,LIBTUI.NewCBox - rts - -CS.IP.Init >PUSHB hSCRN hParent - >PUSHBI SCR.X1 - >PUSHBI SCR.Y2 - >PUSHW L.MANUAL.Label - >LIBCALL hLIBTUI,LIBTUI.NewLabel - - >PUSHB hSCRN hParent - >PUSHBI SCR.X1 - >PUSHBI SCR.Y2+2 - >PUSHW L.IPADDR.Label - >LIBCALL hLIBTUI,LIBTUI.NewLabel - >PUSHB hSCRN hParent - >PUSHBI SCR.X1 - >PUSHBI SCR.Y2+3 - >PUSHBI 18 W - >PUSHEA.G IPADDR.Buf - >PUSHWI 15 Len - >LIBCALL hLIBTUI,LIBTUI.NewTLine - - >PUSHB hSCRN hParent - >PUSHBI SCR.X2 - >PUSHBI SCR.Y2+2 - >PUSHW L.MASK.Label - >LIBCALL hLIBTUI,LIBTUI.NewLabel - >PUSHB hSCRN hParent - >PUSHBI SCR.X2 - >PUSHBI SCR.Y2+3 - >PUSHBI 18 W - >PUSHEA.G MASK.Buf - >PUSHWI 15 Len - >LIBCALL hLIBTUI,LIBTUI.NewTLine - - >PUSHB hSCRN hParent - >PUSHBI SCR.X3 - >PUSHBI SCR.Y2+2 - >PUSHW L.GATEWAY.Label - >LIBCALL hLIBTUI,LIBTUI.NewLabel - >PUSHB hSCRN hParent - >PUSHBI SCR.X3 - >PUSHBI SCR.Y2+3 - >PUSHBI 18 W - >PUSHEA.G GATEWAY.Buf - >PUSHWI 15 Len - >LIBCALL hLIBTUI,LIBTUI.NewTLine - - >PUSHB hSCRN hParent - >PUSHBI SCR.X1 - >PUSHBI SCR.Y2+5 - >PUSHW L.NS1.Label - >LIBCALL hLIBTUI,LIBTUI.NewLabel - >PUSHB hSCRN hParent - >PUSHBI SCR.X1 - >PUSHBI SCR.Y2+6 - >PUSHBI 18 W - >PUSHEA.G NS1.Buf - >PUSHWI 15 Len - >LIBCALL hLIBTUI,LIBTUI.NewTLine - - >PUSHB hSCRN hParent - >PUSHBI SCR.X2 - >PUSHBI SCR.Y2+5 - >PUSHW L.NS2.Label - >LIBCALL hLIBTUI,LIBTUI.NewLabel - >PUSHB hSCRN hParent - >PUSHBI SCR.X2 - >PUSHBI SCR.Y2+6 - >PUSHBI 18 W - >PUSHEA.G NS2.Buf - >PUSHWI 15 Len - >LIBCALL hLIBTUI,LIBTUI.NewTLine - - >PUSHB hSCRN hParent - >PUSHBI SCR.X3 - >PUSHBI SCR.Y2+5 - >PUSHW L.DOM.Label - >LIBCALL hLIBTUI,LIBTUI.NewLabel - >PUSHB hSCRN hParent - >PUSHBI SCR.X3 - >PUSHBI SCR.Y2+6 - >PUSHBI 25 W - >PUSHEA.G DOM.Buf - >PUSHWI 65 Len - >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 - >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 - >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 - >LIBCALL hLIBTUI,LIBTUI.NewLabel - bcs .9 - >PUSHB hDLGS hParent - >PUSHBI 2 - >PUSHBI 4 Y1 - >PUSHBI 0 - >PUSHBI 0 - >PUSHW L.DLGS.Label - >PUSHEA.G DLGS.Var - >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 - >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 - >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 >PUSHB hFile - >PUSHW L.HOST.Hdr - >SYSCALL FPutS - >PUSHB hFile - >PUSHEA.G HOST.Buf - >SYSCALL FPutS - >PUSHB hFile - >PUSHW L.EOL - >SYSCALL FPutS - 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 - >PUSHB hFile - >PUSHW L.IP.Hash - >SYSCALL FPutS -CS.IPW.addr >PUSHB hFile - >PUSHW L.IPADDR.Label - >SYSCALL FPutS - >PUSHB hFile - >PUSHEA.G IPADDR.Buf - >SYSCALL FPutS - >PUSHB hFile - >PUSHW L.EOL - >SYSCALL FPutS - >LDA.G AUTOIP.Var - bne CS.IPW.mask - >PUSHB hFile - >PUSHW L.IP.Hash - >SYSCALL FPutS -CS.IPW.mask >PUSHB hFile - >PUSHW L.MASK.Label - >SYSCALL FPutS - >PUSHB hFile - >PUSHEA.G MASK.Buf - >SYSCALL FPutS - >PUSHB hFile - >PUSHW L.EOL - >SYSCALL FPutS - >LDA.G AUTOIP.Var - bne CS.IPW.gway - >PUSHB hFile - >PUSHW L.IP.Hash - >SYSCALL FPutS -CS.IPW.gway >PUSHB hFile - >PUSHW L.GATEWAY.Label - >SYSCALL FPutS - >PUSHB hFile - >PUSHEA.G GATEWAY.Buf - >SYSCALL FPutS - >PUSHB hFile - >PUSHW L.EOL - >SYSCALL FPutS - >LDA.G AUTOIP.Var - bne CS.IPW.ns1 - >PUSHB hFile - >PUSHW L.IP.Hash - >SYSCALL FPutS -CS.IPW.ns1 >PUSHB hFile - >PUSHW L.NS1.Label - >SYSCALL FPutS - >PUSHB hFile - >PUSHEA.G NS1.Buf - >SYSCALL FPutS - >PUSHB hFile - >PUSHW L.EOL - >SYSCALL FPutS - >LDA.G AUTOIP.Var - bne CS.IPW.ns2 - >PUSHB hFile - >PUSHW L.IP.Hash - >SYSCALL FPutS -CS.IPW.ns2 >PUSHB hFile - >PUSHW L.NS1.Label Must use NS1 label again - >SYSCALL FPutS - >PUSHB hFile - >PUSHEA.G NS2.Buf - >SYSCALL FPutS - >PUSHB hFile - >PUSHW L.EOL - >SYSCALL FPutS - >LDA.G AUTOIP.Var - bne CS.IPW.dom - >PUSHB hFile - >PUSHW L.IP.Hash - >SYSCALL FPutS -CS.IPW.dom >PUSHB hFile - >PUSHW L.DOM.Label - >SYSCALL FPutS - >PUSHB hFile - >PUSHEA.G DOM.Buf - >SYSCALL FPutS - >PUSHB hFile - >PUSHW L.EOL - >SYSCALL FPutS - jmp CS.File.Close -*-------------------------------------- -CS.SHW >LDYA L.Netstart Write network startup shell script - jsr CS.File.OpenWR - bcc .0 - rts -.0 >PUSHB hFile - >PUSHW L.NS.Hdr - >SYSCALL FPutS - >LDA.G IFACE.var - cmp #0 - bne .1 - >PUSHB hFile - >PUSHW L.NS.Uth - >SYSCALL FPutS - bra .3 -.1 cmp #1 - bne .2 - >PUSHB hFile - >PUSHW L.NS.Lanc - >SYSCALL FPutS - bra .3 -.2 cmp #2 - bne .4 - >PUSHB hFile - >PUSHW L.NS.U2 - >SYSCALL FPutS -.3 bra CS.SHW.netd -.4 cmp #3 - bne .5 - >PUSHB hFile - >PUSHW L.NS.Dan2Eth - >SYSCALL FPutS - bra CS.SHW.netd -.5 cmp #4 - bne .6 - >PUSHB hFile - >PUSHW L.NS.UdEth - >SYSCALL FPutS - bra CS.SHW.netd -.6 cmp #5 - bne CS.SHW.netd - >PUSHB hFile - >PUSHW L.NS.UdEth.D - >SYSCALL FPutS - -CS.SHW.netd >PUSHB hFile - >PUSHW L.NS.networkd - >SYSCALL FPutS - >LDA.G LIBTCPIP.Var - beq CS.SHW.etalk - >PUSHB hFile - >PUSHW L.NS.libtcpip - >SYSCALL FPutS -CS.SHW.etalk >LDA.G LIBETALK.Var - beq CS.SHW.amper - >PUSHB hFile - >PUSHW L.NS.libetalk - >SYSCALL FPutS -cs.SHW.amper >PUSHB hFile - >PUSHW L.NS.amper - >SYSCALL FPutS - >LDA.G TELNET.Var - beq CS.SHW.httpd - >PUSHB hFile - >PUSHW L.NS.telnetd - >SYSCALL FPutS -CS.SHW.httpd >LDA.G HTTPD.Var - beq CS.SHW.bbsd - >PUSHB hFile - >PUSHW L.NS.httpd - >SYSCALL FPutS -CS.SHW.bbsd >LDA.G BBSD.Var - beq CS.SHW.close - >PUSHB hFile - >PUSHW L.NS.bbsd - >SYSCALL FPutS -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 - >PUSHB hFile - >PUSHW L.NETWORKIP - >SYSCALL FPutS -CS.NETW.etalk >LDA.G LIBETALK.Var - bpl .9 - >PUSHB hFile - >PUSHW L.NETWORKET - >SYSCALL FPutS -.9 jmp CS.File.Close - -*-------------------------------------- -CS.DOEVENT sec do not discard TIMER event - rts -*-------------------------------------- -CS.QUIT >LDA.G 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 - ldy #S.OBJ.X1 -.1 lda (ZPPtr1),y - >PUSHA - iny - cpy #S.OBJ.InnerH+1 - bne .1 - >PUSHBI 10 - >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 16 -SCRN.TitleBuf .BS 10 -Overflow.Buf .BS 80 -DS.END .ED -*-------------------------------------- -MAN -SAVE usr/src/bin/netconfig.s -ASM \ No newline at end of file +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 diff --git a/BIN/TUITEST.S.txt b/BIN/TUITEST.S.txt index aa475b82..d33eeb6b 100644 --- a/BIN/TUITEST.S.txt +++ b/BIN/TUITEST.S.txt @@ -10,6 +10,7 @@ NEW .INB inc/libtui.i *-------------------------------------- EV.SAVE .EQ $C0 +EV.CHECKBOX .EQ $C1 EV.OK .EQ $CE EV.CANCEL .EQ $CF *-------------------------------------- @@ -20,8 +21,11 @@ ZPPtr1 .BS 2 hCTX .BS 1 hSCRN .BS 1 + hTBOX1 .BS 1 -hDLGS .BS 1 +hRADIO1 .BS 1 + +hDLGSAVE .BS 1 ZS.END .ED *-------------------------------------- * File Header (16 Bytes) @@ -53,11 +57,11 @@ L.TBOX1.Status .DA TBOX1.Status L.LBOX1.List .DA LBOX1.List L.LABEL.Label .DA LABEL.Label L.TLINE.Default .DA TLINE.Default -L.RADIO1.List .DA RADIO1.List L.CBOX1.Label .DA CBOX1.Label +L.RADIO1.List .DA RADIO1.List L.BUTQ.Label .DA BUTQ.Label L.BUTS.Label .DA BUTS.Label -L.DLGS.Title .DA DLGS.Title +L.DLGSAVE.Title .DA DLGSAVE.Title L.BUT.OK .DA BUT.OK L.BUT.Cancel .DA BUT.Cancel .DA 0 @@ -73,30 +77,30 @@ CS.INIT >LDYA L.LIBTUI CS.INIT.RTS rts *-------------------------------------- CS.RUN >LIBCALL hLIBTUI,LIBTUI.Init - bcs CS.RUN.RTS + bcs CS.INIT.RTS sta hCTX jsr CS.SCRN.Init - bcs CS.RUN.RTS + bcs CS.INIT.RTS jsr CS.TBOX1.Init - bcs CS.RUN.RTS + bcs CS.INIT.RTS jsr CS.LBOX1.Init - bcs CS.RUN.RTS + bcs CS.INIT.RTS - jsr CS.TLINE.Init - bcs CS.RUN.RTS + jsr CS.TLINE1.Init + bcs CS.INIT.RTS - jsr CS.RADIO.Init - bcs CS.RUN.RTS + jsr CS.CBOX1.Init + bcs CS.INIT.RTS - jsr CS.CBOX.Init - bcs CS.RUN.RTS + jsr CS.RADIO1.Init + bcs CS.INIT.RTS jsr CS.BUT.Init - bcs CS.RUN.RTS + bcs CS.INIT.RTS jsr CS.SCRN.Draw Will Call SCRN.Draw @@ -121,7 +125,25 @@ CS.RUN.LOOP lda hSCRN jsr CS.RUN.DLGSAVE bcc CS.RUN.LOOP -.2 cmp #EV.QUIT +.2 cmp #EV.CHECKBOX + bne .8 + + >LDA.G CBOX1.Var + bne .20 + + lda hRADIO1 + >LIBCALL hLIBTUI,LIBTUI.Hide + bcc CS.RUN.LOOP + + rts + +.20 lda hRADIO1 + >LIBCALL hLIBTUI,LIBTUI.Show + bcc CS.RUN.LOOP + + rts + +.8 cmp #EV.QUIT bne CS.RUN.LOOP lda hSCRN @@ -168,11 +190,11 @@ CS.TBOX1.Init >LDYAI 1024 >PUSHBI 1 Y1 >PUSHBI 44 W >PUSHBI 20 H - >PUSHBI S.OBJ.F.bHBorder+S.OBJ.F.bVBorder+S.OBJ.F.bTitle+S.OBJ.F.bStatus >LDA.G TBOX1.hBuf >SYSCALL GetMemPtr >PUSHYA >PUSHWI 1024 + >PUSHBI S.OBJ.F.bHBorder+S.OBJ.F.bVBorder+S.OBJ.F.bTitle+S.OBJ.F.bStatus+S.OBJ.F.bEdit >LIBCALL hLIBTUI,LIBTUI.NewTBox bcs .9 @@ -195,16 +217,17 @@ CS.LBOX1.Init >PUSHB hSCRN hParent >PUSHBI 1 Y1 >PUSHBI 20 W >PUSHBI 9 H - >PUSHBI S.OBJ.F.bHBorder+S.OBJ.F.bVBorder >PUSHW L.LBOX1.List >PUSHEA.G LBOX1.Var + >PUSHBI S.OBJ.F.bHBorder+S.OBJ.F.bVBorder >LIBCALL hLIBTUI,LIBTUI.NewLBox rts *-------------------------------------- -CS.TLINE.Init >PUSHB hSCRN hParent +CS.TLINE1.Init >PUSHB hSCRN hParent >PUSHBI 50 X1 >PUSHBI 11 Y1 >PUSHW L.LABEL.Label + >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewLabel bcs .9 @@ -214,6 +237,7 @@ CS.TLINE.Init >PUSHB hSCRN hParent >PUSHBI 25 W >PUSHEA.G TLINE.Buf >PUSHWI 65 Len + >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewTLine >PUSHEA.G TLINE.Buf @@ -222,25 +246,33 @@ CS.TLINE.Init >PUSHB hSCRN hParent .9 rts *-------------------------------------- -CS.RADIO.Init >PUSHB hSCRN hParent +CS.CBOX1.Init >PUSHB hSCRN hParent >PUSHBI 50 X1 >PUSHBI 14 Y1 >PUSHBI 0 + >PUSHBI EV.CHECKBOX + >PUSHW L.CBOX1.Label + >PUSHEA.G CBOX1.Var + >PUSHBI 0 + >LIBCALL hLIBTUI,LIBTUI.NewCBox + rts +*-------------------------------------- +CS.RADIO1.Init >PUSHB hSCRN hParent + >PUSHBI 50 X1 + >PUSHBI 16 Y1 + >PUSHBI 0 >PUSHBI 0 >PUSHW L.RADIO1.List >PUSHEA.G RADIO1.Var - >LIBCALL hLIBTUI,LIBTUI.NewRadio - rts -*-------------------------------------- -CS.CBOX.Init >PUSHB hSCRN hParent - >PUSHBI 50 X1 - >PUSHBI 18 Y1 - >PUSHBI 0 >PUSHBI 0 - >PUSHW L.CBOX1.Label - >PUSHEA.G CBOX1.Var - >LIBCALL hLIBTUI,LIBTUI.NewCBox - rts + >LIBCALL hLIBTUI,LIBTUI.NewRadio + bcs .9 + + sta hRADIO1 + + >LIBCALL hLIBTUI,LIBTUI.Hide + +.9 rts *-------------------------------------- CS.BUT.Init >PUSHB hSCRN hParent >PUSHBI 50 X1 @@ -248,6 +280,7 @@ CS.BUT.Init >PUSHB hSCRN hParent >PUSHBI 19 Ctrl-S >PUSHBI EV.SAVE >PUSHW L.BUTS.Label + >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewBut bcs .9 @@ -257,6 +290,7 @@ CS.BUT.Init >PUSHB hSCRN hParent >PUSHBI 17 Ctrl-Q >PUSHBI EV.QUIT >PUSHW L.BUTQ.Label + >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewBut .9 CS.BUT.Init.RTS rts @@ -264,45 +298,49 @@ CS.BUT.Init.RTS rts CS.RUN.DLGSAVE >PUSHB hCTX hParent >PUSHBI 70 W >PUSHBI 11 H - >PUSHW L.DLGS.Title + >PUSHW L.DLGSAVE.Title + >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewDlg bcs CS.BUT.Init.RTS - sta hDLGS + sta hDLGSAVE - >PUSHB hDLGS hParent + >PUSHA +* >PUSHB hDLGSAVE hParent >PUSHBI 50 X1 >PUSHBI 7 Y1 >PUSHBI C.CR >PUSHBI EV.OK >PUSHW L.BUT.OK + >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewBut bcs .9 sta ZPPtr1 - >PUSHB hDLGS hParent + >PUSHB hDLGSAVE hParent >PUSHBI 57 X1 >PUSHBI 7 Y1 >PUSHBI 3 Ctrl-C >PUSHBI EV.CANCEL >PUSHW L.BUT.Cancel + >PUSHBI 0 >LIBCALL hLIBTUI,LIBTUI.NewBut bcs .9 - lda hDLGS + lda hDLGSAVE >LIBCALL hLIBTUI,LIBTUI.Draw bcs .9 lda ZPPtr1 >LIBCALL hLIBTUI,LIBTUI.Activate -.1 lda hDLGS +.1 lda hDLGSAVE >LIBCALL hLIBTUI,LIBTUI.Exec .9 php pha - lda hDLGS + lda hDLGSAVE >LIBCALL hLIBTUI,LIBTUI.Destroy lda hSCRN @@ -392,7 +430,7 @@ CBOX1.Label .AZ "Check Me" *-------------------------------------- BUTS.Label .AZ "(^S)ave..." BUTQ.Label .AZ "(^Q)uit" -DLGS.Title .AZ "Save As..." +DLGSAVE.Title .AZ "Save As..." BUT.OK .AZ " OK " BUT.Cancel .AZ "Cancel" *-------------------------------------- @@ -400,8 +438,8 @@ BUT.Cancel .AZ "Cancel" .OR 0 DS.START SCRN.TitleBuf .BS 80 -CBOX1.Var .BS 1 TLINE.Buf .BS 65 +CBOX1.Var .BS 1 RADIO1.Var .BS 1 LBOX1.Var .BS 1 TBOX1.hBuf .BS 1 diff --git a/INC/LIBTUI.I.txt b/INC/LIBTUI.I.txt index beb8fb78..d0cb2163 100644 --- a/INC/LIBTUI.I.txt +++ b/INC/LIBTUI.I.txt @@ -20,6 +20,9 @@ LIBTUI.GetProp .EQ 34 LIBTUI.SetProp .EQ 36 LIBTUI.Activate .EQ 38 LIBTUI.Deactivate .EQ 40 +LIBTUI.FindActive .EQ 42 +LIBTUI.Show .EQ 44 +LIBTUI.Hide .EQ 46 *-------------------------------------- S.CTX.hSCRN .EQ 0 S.CTX.hClipBrd .EQ 1 @@ -58,7 +61,8 @@ S.OBJ.F.bEdit .EQ %00000001 S.OBJ.S .EQ 2 S.OBJ.S.bActive .EQ %10000000 S.OBJ.S.bDisabled .EQ %01000000 -S.OBJ.S.bHasChilds .EQ %00100000 +S.OBJ.S.bHidden .EQ %00100000 +S.OBJ.S.bHasChilds .EQ %00010000 S.OBJ.S.bCurOn .EQ %00000001 S.OBJ.hParent .EQ 3 S.OBJ.X1 .EQ 4 diff --git a/LIB/LIBTUI.S.BUT.txt b/LIB/LIBTUI.S.BUT.txt index 82e9a366..2f7e6613 100644 --- a/LIB/LIBTUI.S.BUT.txt +++ b/LIB/LIBTUI.S.BUT.txt @@ -2,11 +2,15 @@ NEW AUTO 3,1 .LIST OFF *-------------------------------------- -* BUT.New hParent,X1,Y1,HK,EV,pLabel 7 +* BUT.New hParent,X1,Y1,HK,EV,pLabel,F 8 *-------------------------------------- BUT.New lda #S.OBJ.T.BUT jsr OBJ.Create bcs .9 + + >PULLA + ldy #S.OBJ.F + sta (ZPObjPtr),y ldy #S.BUT.pLabel jsr OBJ.PullWordY diff --git a/LIB/LIBTUI.S.CBOX.txt b/LIB/LIBTUI.S.CBOX.txt index 15bc1d8c..7af8ebe3 100644 --- a/LIB/LIBTUI.S.CBOX.txt +++ b/LIB/LIBTUI.S.CBOX.txt @@ -2,12 +2,16 @@ NEW AUTO 3,1 .LIST OFF *-------------------------------------- -* CBOX.New hParent,X1,Y1,HK,EV,pLabel,pVar 9 +* CBOX.New hParent,X1,Y1,HK,EV,pLabel,pVar,F 10 *-------------------------------------- CBOX.New lda #S.OBJ.T.CBOX jsr OBJ.Create bcs .9 + >PULLA + ldy #S.OBJ.F + sta (ZPObjPtr),y + ldy #S.OBJ.pVar jsr OBJ.PullWordY @@ -52,7 +56,7 @@ CBOX.New lda #S.OBJ.T.CBOX * clc rts -.9 >POP 9 +.9 >POP 10 .99 rts *-------------------------------------- @@ -85,12 +89,16 @@ CBOX.Run ldy #S.BUT.HotKey >PUSHA jsr OBJ.Draw.Body inc pStack - + bcs .99 + + ldy #S.CBOX.EV + lda (ZPObjPtr),y +* clc rts .9 lda #0 sec - rts +.99 rts *-------------------------------------- CBOX.Draw ldx #'<' diff --git a/LIB/LIBTUI.S.CONT.txt b/LIB/LIBTUI.S.CONT.txt index 54e7c9fe..28cea2ba 100644 --- a/LIB/LIBTUI.S.CONT.txt +++ b/LIB/LIBTUI.S.CONT.txt @@ -114,7 +114,7 @@ CONT.Run lda (pStack) Event ldy #S.OBJ.S lda (ZPPtr2),y - and #S.OBJ.S.bDisabled + and #S.OBJ.S.bDisabled+S.OBJ.S.bHidden bne .10 ply diff --git a/LIB/LIBTUI.S.DLG.txt b/LIB/LIBTUI.S.DLG.txt index dafc6914..0914905d 100644 --- a/LIB/LIBTUI.S.DLG.txt +++ b/LIB/LIBTUI.S.DLG.txt @@ -2,12 +2,16 @@ NEW AUTO 3,1 .LIST OFF *-------------------------------------- -* DLG.New hParent,W,H,pTitle 5 +* DLG.New hParent,W,H,pTitle,F 6 *-------------------------------------- DLG.New lda #S.OBJ.T.DLG jsr OBJ.Create bcs .9 + >PULLA + ldy #S.OBJ.F + sta (ZPObjPtr),y + ldy #S.OBJ.pTitle jsr OBJ.PullWordY @@ -48,7 +52,7 @@ DLG.New lda #S.OBJ.T.DLG * clc rts -.9 >POP 5 +.9 >POP 6 rts *-------------------------------------- MAN diff --git a/LIB/LIBTUI.S.LABEL.txt b/LIB/LIBTUI.S.LABEL.txt index abfdbaca..f2a32bcb 100644 --- a/LIB/LIBTUI.S.LABEL.txt +++ b/LIB/LIBTUI.S.LABEL.txt @@ -2,12 +2,16 @@ NEW AUTO 3,1 .LIST OFF *-------------------------------------- -* LABEL.New hParent,X1,Y1,pLabel 5 +* LABEL.New hParent,X1,Y1,pLabel,F 6 *-------------------------------------- LABEL.New lda #S.OBJ.T.LABEL jsr OBJ.Create bcs .9 + >PULLA + ldy #S.OBJ.F + sta (ZPObjPtr),y + ldy #S.OBJ.S lda #S.OBJ.S.bDisabled sta (ZPObjPtr),y @@ -28,7 +32,7 @@ LABEL.New lda #S.OBJ.T.LABEL * clc rts -.9 >POP 5 +.9 >POP 6 .99 rts *-------------------------------------- LABEL.Draw ldy #S.LABEL.pLabel diff --git a/LIB/LIBTUI.S.LBOX.txt b/LIB/LIBTUI.S.LBOX.txt index e6eb26fc..4d6cf567 100644 --- a/LIB/LIBTUI.S.LBOX.txt +++ b/LIB/LIBTUI.S.LBOX.txt @@ -2,22 +2,22 @@ NEW AUTO 3,1 .LIST OFF *-------------------------------------- -* LBOX.New hParent,X1,Y1,W,H,F,pList,pVar 10 +* LBOX.New hParent,X1,Y1,W,H,pList,pVar,F 10 *-------------------------------------- LBOX.New lda #S.OBJ.T.LBOX jsr OBJ.Create bcs .9 + >PULLA + ldy #S.OBJ.F + sta (ZPObjPtr),y + ldy #S.OBJ.pVar jsr OBJ.PullWordY ldy #S.OBJ.pBuf jsr OBJ.PullWordY - >PULLA - ldy #S.OBJ.F - sta (ZPObjPtr),y - jsr OBJ.PullHW jsr OBJ.PullY1X1hParent diff --git a/LIB/LIBTUI.S.OBJ.txt b/LIB/LIBTUI.S.OBJ.txt index 46d75807..1c4c35cd 100644 --- a/LIB/LIBTUI.S.OBJ.txt +++ b/LIB/LIBTUI.S.OBJ.txt @@ -219,7 +219,7 @@ OBJ.Run ldx ZPObjPtr ldy #S.OBJ.S lda (ZPObjPtr),y - and #S.OBJ.S.bDisabled + and #S.OBJ.S.bDisabled+S.OBJ.S.bHidden bne .9 ldy #1 @@ -280,7 +280,54 @@ OBJ.Run ldx ZPObjPtr *-------------------------------------- OBJ.Draw >PUSHA hObj - jsr OBJ.Draw.Top + lda (pStack) + jsr LIB.GetOBJ + + ldy #S.OBJ.S + lda (ZPObjPtr),y + and #S.OBJ.S.bHidden + beq .5 + + ldy #S.OBJ.Y1 + lda (ZPObjPtr),y + >PUSHA + +.1 jsr LB.Init + + jsr LB.SetColor + + ldy #S.OBJ.X1 + lda (ZPObjPtr),y + tax + lda (pStack) + tay + jsr LB.GotoXY + + ldy #S.OBJ.W + lda (ZPObjPtr),y + + tax + + lda #C.SPACE + +.2 jsr LB.COut + iny + dex + bne .2 + + jsr IO.LBWrite + bcs .98 + + lda (pStack) + ldy #S.OBJ.Y2 + cmp (ZPObjPtr),y + inc + sta (pStack) + bcc .1 + + bra .8 +*-------------------------------------- +.5 jsr OBJ.Draw.Top bcs .99 jsr OBJ.Draw.Body @@ -316,7 +363,7 @@ OBJ.Draw >PUSHA hObj cmp #S.OBJ bne .6 - clc +.8 clc .98 inc pStack @@ -727,6 +774,36 @@ OBJ.FindActive ldx ZPObjPtr rts *-------------------------------------- +OBJ.Show pha + + jsr LIB.GetOBJ + + jsr OBJ.CurOff + + ldy #S.OBJ.S + lda (ZPObjPtr),y + and #S.OBJ.S.bHidden^$ff + sta (ZPObjPtr),y + + pla + + jmp OBJ.Draw +*-------------------------------------- +OBJ.Hide pha + + jsr LIB.GetOBJ + + jsr OBJ.CurOff + + ldy #S.OBJ.S + lda (ZPObjPtr),y + ora #S.OBJ.S.bHidden + sta (ZPObjPtr),y + + pla + + jmp OBJ.Draw +*-------------------------------------- OBJ.CurUpdPos ldy #S.OBJ.F lda (ZPObjPtr),y and #S.OBJ.F.bEdit diff --git a/LIB/LIBTUI.S.RADIO.txt b/LIB/LIBTUI.S.RADIO.txt index a0008498..11db7651 100644 --- a/LIB/LIBTUI.S.RADIO.txt +++ b/LIB/LIBTUI.S.RADIO.txt @@ -2,12 +2,16 @@ NEW AUTO 3,1 .LIST OFF *-------------------------------------- -* RADIO.New hParent,X1,Y1,HK,EV,pList,pVar 9 +* RADIO.New hParent,X1,Y1,HK,EV,pList,pVar,F 10 *-------------------------------------- RADIO.New lda #S.OBJ.T.RADIO jsr OBJ.Create bcs .9 + >PULLA + ldy #S.OBJ.F + sta (ZPObjPtr),y + ldy #S.OBJ.pVar jsr OBJ.PullWordY @@ -74,7 +78,7 @@ RADIO.New lda #S.OBJ.T.RADIO * clc rts -.9 >POP 9 +.9 >POP 10 rts *-------------------------------------- diff --git a/LIB/LIBTUI.S.TBOX.txt b/LIB/LIBTUI.S.TBOX.txt index e71f02b5..a2339422 100644 --- a/LIB/LIBTUI.S.TBOX.txt +++ b/LIB/LIBTUI.S.TBOX.txt @@ -2,23 +2,24 @@ NEW AUTO 3,1 .LIST OFF *-------------------------------------- -* TBOX.New hParent,X1,Y1,W,H,F,pBuf,BufSize 10 +* TBOX.New hParent,X1,Y1,W,H,pBuf,BufSize,F 10 *-------------------------------------- TBOX.New lda #S.OBJ.T.TBOX jsr OBJ.Create bcs .9 - jsr OBJ.PullBuf - >PULLA ldy #S.OBJ.F sta (ZPObjPtr),y + jsr OBJ.PullBuf + jsr OBJ.PullHW jsr OBJ.PullY1X1hParent jsr CONT.Insert + bcs .99 lda hObj diff --git a/LIB/LIBTUI.S.TLINE.txt b/LIB/LIBTUI.S.TLINE.txt index 2e3409d2..4f00b332 100644 --- a/LIB/LIBTUI.S.TLINE.txt +++ b/LIB/LIBTUI.S.TLINE.txt @@ -2,18 +2,19 @@ NEW AUTO 3,1 .LIST OFF *-------------------------------------- -* TLINE.New hParent,X1,Y1,W,pBuf,MaxLen 8 +* TLINE.New hParent,X1,Y1,W,pBuf,MaxLen,F 8 *-------------------------------------- TLINE.New lda #S.OBJ.T.TLINE jsr OBJ.Create bcs .9 - jsr OBJ.PullBuf - + >PULLA ldy #S.OBJ.F - lda #S.OBJ.F.bHScroll+S.OBJ.F.bEdit + ora #S.OBJ.F.bHScroll+S.OBJ.F.bEdit sta (ZPObjPtr),y + jsr OBJ.PullBuf + >PULLA ldy #S.OBJ.W sta (ZPObjPtr),y @@ -34,7 +35,7 @@ TLINE.New lda #S.OBJ.T.TLINE * clc rts -.9 >POP 7 +.9 >POP 8 .99 rts *-------------------------------------- diff --git a/LIB/LIBTUI.S.txt b/LIB/LIBTUI.S.txt index 6329ea06..0431853d 100644 --- a/LIB/LIBTUI.S.txt +++ b/LIB/LIBTUI.S.txt @@ -70,6 +70,9 @@ CS.START cld .DA LIB.SetProp .DA OBJ.Activate .DA OBJ.Deactivate + .DA OBJ.FindActive + .DA OBJ.Show + .DA OBJ.Hide *-------------------------------------- J.ObjDestroy .DA OBJ.Destroy .DA OBJ.Destroy