NEW AUTO 3,1 .LIST OFF .OP 65C02 .OR $2000 .TF bin/man *-------------------------------------- .INB inc/macros.i .INB inc/mli.i .INB inc/a2osx.i .INB inc/libtui.i *-------------------------------------- TIMEOUT.MAX .EQ 250 25 sec. BUFSIZE .EQ 4096 *-------------------------------------- .DUMMY .OR ZPBIN ZS.START hBuf .BS 1 TimeOut .BS 1 hCTX .BS 1 hSCR .BS 1 hTBOX .BS 1 ZPPtr1 .BS 2 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 #S.PS.F.EVENT S.PS.F .DA #0 .DA CS.END-CS.START Code Size (without Constants) .DA DS.END-DS.START Data Segment Size .DA #64 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.MSG.ScrTitle .DA MSG.ScrTitle L.MSG.USAGE .DA MSG.USAGE L.MSG.CRLF .DA MSG.CRLF L.MSG.NULL .DA MSG.NULL L.MSG.GOTO .DA MSG.GOTO L.MSG.OK .DA MSG.OK L.MSG.ERROR .DA MSG.ERROR .DA 0 *-------------------------------------- CS.INIT >LDYA L.LIBTUI >SYSCALL LoadLib bcs .9 sta hLIBTUI .9 CS.INIT.RTS rts *-------------------------------------- CS.RUN.USAGE >LDYA L.MSG.USAGE >SYSCALL PutS lda #E.SYN sec rts *-------------------------------------- CS.RUN lda #1 >SYSCALL ArgV bcs CS.RUN.USAGE phy pha >PUSHEA.G NET.HyperLink+1 pla >PUSHA pla >PUSHA >SYSCALL strcpy >LDYAI BUFSIZE >SYSCALL GetMem bcs CS.INIT.RTS stx hBuf >LDYAI 256 >SYSCALL GetMem bcs CS.INIT.RTS >STYA ZPLinePtr stx hLine jsr CS.Scr.Init bcs CS.INIT.RTS *-------------------------------------- CS.RUN.LOOP0 jsr CS.Scr.SetTitle jsr CS.Scr.SetBuf jsr CS.Scr.SetStatusOkErr *-------------------------------------- CS.RUN.LOOP >SLEEP lda hSCR >LIBCALL hLIBTUI,LIBTUI.Exec bcs CS.RUN.LOOP.9 tay beq CS.RUN.LOOP No Event cmp #3 beq CS.RUN.LOOP.9 cmp #EV.HL.SELECTED bne .1 jsr CS.Scr.SetStatusGoto bcc CS.RUN.LOOP rts .1 cmp #EV.HL.PRESSED bne CS.RUN.LOOP jsr CS.Net.GetHL bcc CS.RUN.LOOP0 tay beq CS.RUN.LOOP CS.RUN.LOOP.9 rts *-------------------------------------- CS.DOEVENT lda (pEvent) bpl .9 is it a TIMER event? lda TimeOut beq .9 dec TimeOut .9 sec do not discard TIMER event rts *-------------------------------------- CS.QUIT lda hCTX beq .1 >LIBCALL hLIBTUI,LIBTUI.Close .1 lda hLIBTUI beq .8 >SYSCALL UnloadLib .8 clc rts *-------------------------------------- CS.Scr.Init >LIBCALL hLIBTUI,LIBTUI.Init bcs .99 sta hCTX >PUSHA hCTX >PUSHBI S.OBJ.F.bTitle+S.OBJ.F.bStatus >LIBCALL hLIBTUI,LIBTUI.NewScrn bcs .99 sta hSCR jsr CS.Scr.SetTitle0 jsr CS.Scr.SetStatus >PUSHB hSCR >PUSHBI 0 X1 >PUSHBI 0 Y1 >PUSHBI 80 W >PUSHBI 22 H >PUSHBI 0 F lda hBuf >SYSCALL GetMemPtr >PUSHYA >PUSHWI BUFSIZE >LIBCALL hLIBTUI,LIBTUI.NewTBox .99 bcs .9 sta hTBOX >LIBCALL hLIBTUI,LIBTUI.Activate bcs .9 >PUSHB hTBOX >PUSHBI S.OBJ.pVar >PUSHEA.G NET.HyperLink >LIBCALL hLIBTUI,LIBTUI.SetProp .9 rts *-------------------------------------- CS.Scr.SetTitle >PUSHB hSCR >PUSHBI S.OBJ.pTITLE >PUSHW L.MSG.ScrTitle >LIBCALL hLIBTUI,LIBTUI.SetProp rts *-------------------------------------- CS.Scr.SetBuf >PUSHB hTBOX >PUSHBI S.OBJ.pBuf lda hBuf >SYSCALL GetMemPtr >PUSHYA >LIBCALL hLIBTUI,LIBTUI.SetProp rts *-------------------------------------- CS.Scr.SetStatusGoto >PUSHEA.G SCR.StatusBuf skip type >PUSHW L.MSG.GOTO >PUSHEA.G NET.HyperLink+1 >PUSHBI 2 >SYSCALL SPrintF bra CS.Scr.SetStatus *-------------------------------------- CS.Scr.SetStatusOkErr bcc .1 pha >PUSHEA.G SCR.StatusBuf >PUSHW L.MSG.ERROR pla pha >PUSHA >PUSHBI 1 >SYSCALL SPrintF jsr CS.Scr.SetStatus pla sec rts .1 >PUSHEA.G SCR.StatusBuf >PUSHW L.MSG.OK >PUSHBI 0 >SYSCALL SPrintF *-------------------------------------- CS.Scr.SetStatus >PUSHB hSCR >PUSHBI S.OBJ.pSTATUS >PUSHEA.G SCR.StatusBuf >LIBCALL hLIBTUI,LIBTUI.SetProp rts *-------------------------------------- * [[text]host:port/path#htag] *-------------------------------------- CS.GetHLink CS.SplitLink *-------------------------------------- CS.END LIBTUI .AZ "libtui" hLIBTUI .BS 1 ENV.MANPATH .AZ "${MANPATH}" *-------------------------------------- MSG.ScrTitle .CZ "A2osX-MAN - uit" *-------------------------------------- MSG.USAGE .CS "Usage : MAN [#htag]" MSG.CRLF .CS "\r\n" MSG.NULL .HS 00 MSG.GOTO .CZ "Goto: %s" MSG.OK .CZ "Ok" MSG.ERROR .CZ "Error: $%h" *-------------------------------------- .DUMMY .OR 0 DS.START TextBuf .BS 32 HostBuf .BS 32 PortBuf .BS 2 PathBuf .BS MLI.MAXPATH+1 HTagBuf .BS 80 SCR.StatusBuf .BS 80 DS.END .ED *-------------------------------------- MAN SAVE usr/src/bin/man.s ASM