2021-04-15 20:52:08 +00:00
|
|
|
|
NEW
|
|
|
|
|
AUTO 3,1
|
|
|
|
|
.LIST OFF
|
|
|
|
|
.OP 65C02
|
|
|
|
|
.OR $2000
|
|
|
|
|
.TF lib/libtui
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
.INB inc/macros.i
|
|
|
|
|
.INB inc/a2osx.i
|
2021-12-02 21:28:26 +00:00
|
|
|
|
.INB inc/kernel.i
|
2021-08-13 18:34:20 +00:00
|
|
|
|
.INB inc/net.telnet.i
|
2021-04-15 20:52:08 +00:00
|
|
|
|
.INB inc/libtui.i
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
.DUMMY
|
|
|
|
|
.OR ZPLIB
|
2021-09-07 12:32:31 +00:00
|
|
|
|
|
2021-12-02 21:28:26 +00:00
|
|
|
|
ZPCtxPtr .BS 2
|
2021-04-15 20:52:08 +00:00
|
|
|
|
ZPObjPtr .BS 2
|
2021-09-07 12:32:31 +00:00
|
|
|
|
|
|
|
|
|
ZPLineBufPtr .BS 2
|
|
|
|
|
ZPLineBufCnt .BS 2
|
|
|
|
|
|
2021-04-15 20:52:08 +00:00
|
|
|
|
ZPPtr1 .BS 2
|
2021-09-07 12:32:31 +00:00
|
|
|
|
ZPPtr2 .BS 2
|
2021-12-02 21:28:26 +00:00
|
|
|
|
ZPPtr3 .BS 2
|
|
|
|
|
|
2021-09-07 12:32:31 +00:00
|
|
|
|
TempW .BS 2
|
|
|
|
|
TempC .BS 2
|
|
|
|
|
TempI .BS 2
|
2021-12-02 21:28:26 +00:00
|
|
|
|
|
|
|
|
|
bRepaintAll .BS 1
|
|
|
|
|
hObj .BS 1
|
2021-09-07 12:32:31 +00:00
|
|
|
|
|
2021-04-15 20:52:08 +00:00
|
|
|
|
.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
|
|
|
|
|
.DA CS.END-CS.START
|
|
|
|
|
.DA 0
|
|
|
|
|
.DA 0
|
|
|
|
|
.DA 0
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
* Relocation Table
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
.1 .DA LIB.LOAD
|
|
|
|
|
.DA LIB.UNLOAD
|
2021-12-02 21:28:26 +00:00
|
|
|
|
.DA CTX.Init
|
|
|
|
|
.DA CTX.Close
|
|
|
|
|
*--------------------------------------
|
2021-09-07 12:32:31 +00:00
|
|
|
|
.DA OBJ.New
|
2021-12-02 21:28:26 +00:00
|
|
|
|
.DA OBJ.Exec
|
2021-09-07 12:32:31 +00:00
|
|
|
|
.DA OBJ.Destroy
|
|
|
|
|
.DA OBJ.Run
|
|
|
|
|
.DA OBJ.Draw
|
|
|
|
|
.DA OBJ.GetProp
|
|
|
|
|
.DA OBJ.SetProp
|
|
|
|
|
.DA OBJ.Activate
|
|
|
|
|
.DA OBJ.Deactivate
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
J.ObjNew .DA SCRN.New
|
2021-12-02 21:28:26 +00:00
|
|
|
|
.DA DLG.New
|
|
|
|
|
.DA LABEL.New
|
|
|
|
|
.DA TLINE.New
|
2021-09-07 12:32:31 +00:00
|
|
|
|
.DA TBOX.New
|
|
|
|
|
.DA LBOX.New
|
2021-12-02 21:28:26 +00:00
|
|
|
|
.DA CBOX.New
|
|
|
|
|
.DA BUT.New
|
|
|
|
|
.DA RADIO.New
|
2021-09-07 12:32:31 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
J.ObjDestroy .DA SCRN.Destroy
|
2021-12-02 21:28:26 +00:00
|
|
|
|
.DA DLG.Destroy
|
|
|
|
|
.DA LABEL.Destroy
|
|
|
|
|
.DA TLINE.Destroy
|
2021-09-07 12:32:31 +00:00
|
|
|
|
.DA TBOX.Destroy
|
|
|
|
|
.DA LBOX.Destroy
|
2021-12-02 21:28:26 +00:00
|
|
|
|
.DA CBOX.Destroy
|
|
|
|
|
.DA BUT.Destroy
|
|
|
|
|
.DA RADIO.Destroy
|
2021-09-07 12:32:31 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
J.ObjRun .DA SCRN.Run
|
2021-12-02 21:28:26 +00:00
|
|
|
|
.DA DLG.Run
|
|
|
|
|
.DA LABEL.Run
|
|
|
|
|
.DA TLINE.Run
|
2021-09-07 12:32:31 +00:00
|
|
|
|
.DA TBOX.Run
|
|
|
|
|
.DA LBOX.Run
|
2021-12-02 21:28:26 +00:00
|
|
|
|
.DA CBOX.Run
|
|
|
|
|
.DA BUT.Run
|
|
|
|
|
.DA RADIO.Run
|
2021-09-07 12:32:31 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
J.ObjDraw .DA SCRN.Draw
|
2021-12-02 21:28:26 +00:00
|
|
|
|
.DA DLG.Draw
|
|
|
|
|
.DA LABEL.Draw
|
|
|
|
|
.DA TLINE.Draw
|
2021-09-07 12:32:31 +00:00
|
|
|
|
.DA TBOX.Draw
|
|
|
|
|
.DA LBOX.Draw
|
2021-12-02 21:28:26 +00:00
|
|
|
|
.DA CBOX.Draw
|
|
|
|
|
.DA BUT.Draw
|
|
|
|
|
.DA RADIO.Draw
|
2021-09-07 12:32:31 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
J.ObjActivate .DA SCRN.Activate
|
2021-12-02 21:28:26 +00:00
|
|
|
|
.DA DLG.Activate
|
|
|
|
|
.DA LABEL.Activate
|
|
|
|
|
.DA TLINE.Activate
|
2021-09-07 12:32:31 +00:00
|
|
|
|
.DA TBOX.Activate
|
|
|
|
|
.DA LBOX.Activate
|
2021-12-02 21:28:26 +00:00
|
|
|
|
.DA CBOX.Activate
|
|
|
|
|
.DA BUT.Activate
|
|
|
|
|
.DA RADIO.Activate
|
2021-09-07 12:32:31 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
J.ObjDeactivate .DA SCRN.Deactivate
|
2021-12-02 21:28:26 +00:00
|
|
|
|
.DA DLG.Deactivate
|
|
|
|
|
.DA LABEL.Deactivate
|
|
|
|
|
.DA TLINE.Deactivate
|
2021-09-07 12:32:31 +00:00
|
|
|
|
.DA TBOX.Deactivate
|
|
|
|
|
.DA LBOX.Deactivate
|
2021-12-02 21:28:26 +00:00
|
|
|
|
.DA CBOX.Deactivate
|
|
|
|
|
.DA BUT.Deactivate
|
|
|
|
|
.DA RADIO.Deactivate
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
J.TBOX.RUN .DA TBOX.RUN.Ignore
|
|
|
|
|
.DA TBOX.RUN.Ignore
|
|
|
|
|
.DA TBOX.RUN.SelBegin Ctrl-B
|
|
|
|
|
.DA TBOX.RUN.Ignore Ctrl-C
|
|
|
|
|
.DA TBOX.RUN.Ignore
|
|
|
|
|
.DA TBOX.RUN.SelEnd Ctrl-E
|
|
|
|
|
.DA TBOX.RUN.Ignore
|
|
|
|
|
.DA TBOX.RUN.SOL Ctrl-G
|
|
|
|
|
.DA TBOX.RUN.BS
|
|
|
|
|
.DA TBOX.RUN.Ignore TAB
|
|
|
|
|
.DA TBOX.RUN.LF
|
|
|
|
|
.DA TBOX.RUN.VT
|
|
|
|
|
.DA TBOX.RUN.EOL Ctrl-L
|
|
|
|
|
.DA TBOX.RUN.CR
|
|
|
|
|
.DA TBOX.RUN.Ignore
|
|
|
|
|
.DA TBOX.RUN.PGUP Ctrl-O
|
|
|
|
|
.DA TBOX.RUN.PGDN Ctrl-P
|
|
|
|
|
.DA TBOX.RUN.Ignore
|
|
|
|
|
.DA TBOX.RUN.Ignore
|
|
|
|
|
.DA TBOX.RUN.Ignore
|
|
|
|
|
.DA TBOX.RUN.Home Ctrl-T
|
|
|
|
|
.DA TBOX.RUN.FS
|
|
|
|
|
.DA TBOX.RUN.Ignore
|
|
|
|
|
.DA TBOX.RUN.EraseCL Ctrl-W
|
|
|
|
|
.DA TBOX.RUN.Ignore
|
|
|
|
|
.DA TBOX.RUN.EOF Ctrl-Y
|
|
|
|
|
.DA TBOX.RUN.Ignore
|
|
|
|
|
.DA TBOX.RUN.Ignore
|
|
|
|
|
.DA TBOX.RUN.Ignore
|
|
|
|
|
.DA TBOX.RUN.Ignore
|
|
|
|
|
.DA TBOX.RUN.Ignore
|
|
|
|
|
.DA TBOX.RUN.Ignore
|
2021-04-29 11:56:34 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
L.SEQ.INIT .DA SEQ.INIT
|
2021-09-07 12:32:31 +00:00
|
|
|
|
L.SEQ.GOTOXY .DA SEQ.GOTOXY
|
|
|
|
|
L.SEQ.COLOR .DA SEQ.COLOR
|
|
|
|
|
L.SEQ.CLOSE .DA SEQ.CLOSE
|
2021-08-13 18:34:20 +00:00
|
|
|
|
L.FMT.ESCCSI.R .DA FMT.ESCCSI.R
|
2021-04-15 20:52:08 +00:00
|
|
|
|
.DA 0
|
|
|
|
|
*--------------------------------------
|
2021-08-13 18:34:20 +00:00
|
|
|
|
LIB.LOAD lda LibCnt
|
|
|
|
|
bne .8
|
|
|
|
|
|
2021-09-07 12:32:31 +00:00
|
|
|
|
>LDYAI 512
|
2021-08-13 18:34:20 +00:00
|
|
|
|
>SYSCALL2 GetMem
|
|
|
|
|
bcs .9
|
|
|
|
|
|
2021-09-07 12:32:31 +00:00
|
|
|
|
>STYA LineBuf
|
2021-08-13 18:34:20 +00:00
|
|
|
|
stx hLineBuf
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.8 inc LibCnt
|
|
|
|
|
clc
|
|
|
|
|
.9 rts
|
2021-04-15 20:52:08 +00:00
|
|
|
|
*--------------------------------------
|
2021-08-13 18:34:20 +00:00
|
|
|
|
LIB.UNLOAD dec LibCnt
|
|
|
|
|
bne .8
|
|
|
|
|
|
|
|
|
|
lda hLineBuf
|
|
|
|
|
>SYSCALL2 FreeMem
|
|
|
|
|
|
|
|
|
|
.8 clc
|
2021-04-15 20:52:08 +00:00
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
2021-12-02 21:28:26 +00:00
|
|
|
|
LIB.GetCTX >SYSCALL2 GetMemPtr
|
|
|
|
|
>STYA ZPCtxPtr
|
2021-09-07 12:32:31 +00:00
|
|
|
|
rts
|
2021-04-15 20:52:08 +00:00
|
|
|
|
*--------------------------------------
|
2021-12-02 21:28:26 +00:00
|
|
|
|
LIB.GetOBJ >SYSCALL2 GetMemPtr
|
2021-09-07 12:32:31 +00:00
|
|
|
|
>STYA ZPObjPtr
|
2021-04-15 20:52:08 +00:00
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
2021-12-02 21:28:26 +00:00
|
|
|
|
.INB usr/src/lib/libtui.s.lb
|
|
|
|
|
.INB usr/src/lib/libtui.s.ctx
|
|
|
|
|
.INB usr/src/lib/libtui.s.cont
|
2021-09-07 12:32:31 +00:00
|
|
|
|
.INB usr/src/lib/libtui.s.obj
|
|
|
|
|
.INB usr/src/lib/libtui.s.scrn
|
2021-12-02 21:28:26 +00:00
|
|
|
|
.INB usr/src/lib/libtui.s.dlg
|
|
|
|
|
.INB usr/src/lib/libtui.s.label
|
|
|
|
|
.INB usr/src/lib/libtui.s.tline
|
2021-09-07 12:32:31 +00:00
|
|
|
|
.INB usr/src/lib/libtui.s.tbox
|
2021-12-02 21:28:26 +00:00
|
|
|
|
.INB usr/src/lib/libtui.s.lbox
|
|
|
|
|
.INB usr/src/lib/libtui.s.cbox
|
|
|
|
|
.INB usr/src/lib/libtui.s.but
|
|
|
|
|
.INB usr/src/lib/libtui.s.radio
|
2021-04-15 20:52:08 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
CS.END
|
|
|
|
|
*--------------------------------------
|
2021-08-13 18:34:20 +00:00
|
|
|
|
LibCnt .BS 1
|
|
|
|
|
hLineBuf .BS 1
|
2021-09-07 12:32:31 +00:00
|
|
|
|
LineBuf .BS 2
|
2021-08-13 18:34:20 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
ESC.In .AS "DBAC"
|
2021-09-07 12:32:31 +00:00
|
|
|
|
ESC.Out .DA #C.BS,#C.LF,#C.VT,#C.FS
|
2021-08-13 18:34:20 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
FMT.ESCCSI.R .AZ "%d;%d"
|
|
|
|
|
*--------------------------------------
|
2021-12-02 21:28:26 +00:00
|
|
|
|
OBJ.SIZES .DA S.SCRN,S.DLG,S.LABEL,S.TLINE,S.TBOX,S.LBOX,S.CBOX,S.BUT,S.RADIO
|
2021-09-07 12:32:31 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
OBJ.COLORS .DA #93,#44 SCRN
|
2021-12-02 21:28:26 +00:00
|
|
|
|
.DA #93,#46 DLG
|
|
|
|
|
.DA #93,#0 LABEL
|
|
|
|
|
.DA #93,#104 TLINE
|
2021-09-07 12:32:31 +00:00
|
|
|
|
.DA #93,#104 TBOX
|
|
|
|
|
.DA #93,#104 LBOX
|
2021-12-02 21:28:26 +00:00
|
|
|
|
.DA #93,#0 CBOX
|
|
|
|
|
.DA #92,#100 BUT
|
|
|
|
|
.DA #93,#0 RADIO
|
2021-09-07 12:32:31 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
SEQ.INIT .DA #C.ESC
|
|
|
|
|
.AS "c" FF
|
|
|
|
|
.DA #C.ESC
|
2021-08-13 18:34:20 +00:00
|
|
|
|
.AS "[999;999H" Set Cursor Pos to 999,999
|
|
|
|
|
.DA #C.ESC
|
2021-09-07 12:32:31 +00:00
|
|
|
|
.AS "[6n" then query Cursor Pos
|
|
|
|
|
.DA #C.ESC
|
|
|
|
|
.AS "(B" font select
|
|
|
|
|
.DA #C.ESC
|
|
|
|
|
.AS ")0" font select
|
|
|
|
|
.DA #C.ESC
|
|
|
|
|
.AS "[?7l" Disable Line Wrap
|
|
|
|
|
.DA #C.ESC
|
|
|
|
|
.AS "[?25l" Hide Cursor
|
|
|
|
|
.DA #0
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
SEQ.GOTOXY .AZ "\e[%d;%dH"
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
SEQ.COLOR .AZ "\e[%d;%dm"
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
SEQS .EQ *
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
SEQ.CURON .DA #C.ESC
|
|
|
|
|
.AS "[?25h" Show Cursor
|
|
|
|
|
.DA #0
|
|
|
|
|
SEQ.CUROFF .DA #C.ESC
|
|
|
|
|
.AS "[?25l" Hide Cursor
|
|
|
|
|
.DA #0
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
SEQ.BAR .DA #C.ESC
|
|
|
|
|
.AS "[1m" BOLD
|
|
|
|
|
.DA #C.ESC
|
|
|
|
|
.AS "[7m" INVERSE
|
|
|
|
|
.DA #C.ESC
|
|
|
|
|
.AS "[37;40m"
|
|
|
|
|
.DA #0
|
|
|
|
|
SEQ.BAREND .DA #C.ESC
|
|
|
|
|
.AS "[0m"
|
|
|
|
|
.DA #0
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
SEQ.BORDERTL .DA #C.SO,#'l'
|
|
|
|
|
.DA #0
|
|
|
|
|
SEQ.BORDERTR .DA #C.SO,#'k',#C.SI
|
|
|
|
|
.DA #0
|
|
|
|
|
SEQ.BORDERBL .DA #C.SO,#'m'
|
|
|
|
|
.DA #0
|
|
|
|
|
SEQ.BORDERBR .DA #C.SO,#'j',#C.SI
|
|
|
|
|
.DA #0
|
|
|
|
|
*SEQ.BORDERH .DA #C.SO,#'q',#C.SI
|
|
|
|
|
* .DA #0
|
|
|
|
|
SEQ.BORDERV .DA #C.SO,#'x',#C.SI
|
|
|
|
|
.DA #0
|
|
|
|
|
SEQ.INVERSE .DA #C.ESC
|
|
|
|
|
.AS "[7m"
|
|
|
|
|
.DA #0
|
|
|
|
|
SEQ.NORMAL .DA #C.ESC
|
|
|
|
|
.AS "[0m"
|
|
|
|
|
.DA #0
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
*SEQ.SCROLLCURUP .AS "\e[?7l\e[%d;%dr"
|
|
|
|
|
*SEQ.SCROLLUP .AZ "\eD"
|
|
|
|
|
*SEQ.SCROLLCURDN .AS "\e[?7l\e[%d;%dr"
|
|
|
|
|
*SEQ.SCROLLDN .AZ "\eM"
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
SEQ.CLOSE .DA #C.ESC
|
|
|
|
|
.AS "c"
|
|
|
|
|
.DA #C.ESC
|
|
|
|
|
.AZ "[?7h" Enable Line Wrap
|
2021-04-15 20:52:08 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
MAN
|
|
|
|
|
SAVE usr/src/lib/libtui.s
|
|
|
|
|
ASM
|