A2osX/LIB/LIBTUI.S.CTX.txt

106 lines
1.7 KiB
Plaintext
Raw Permalink 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
*/--------------------------------------
* # tuiInit
* Initialize screen & create a new context
* ## C
* `short int hCTX tuiInit();`
* ## ASM
* `>LIBCALL hLIBTUI,LIBTUI.Init`
* ## RETURN VALUE
* CC = success, A = hCTX
*\--------------------------------------
CTX.Init >LDYA L.SEQ.INIT
jsr IO.fputs
bcs .99
>LDYAI S.CTX
>SYSCALL2 GetMem
bcs .99
>STYA ZPCtxPtr
txa
>PUSHA hCTX
lda #0
>PUSHA Init Counter
ldy #S.CTX-1
.10 sta (ZPCtxPtr),y
dey
bpl .10
jsr IO.GetC.Reset
.1 jsr IO.GetC
bcs .98
.2 ldy #S.CTX.W
lda (ZPCtxPtr),y
bne .8
.3 lda (pStack)
dec
sta (pStack)
bne .1
lda #80
ldy #S.CTX.W
sta (ZPCtxPtr),y
lda #24
iny S.CTX.H
sta (ZPCtxPtr),y
.8 inc pStack Discard counter
>PULLA hCTX
clc
.99 rts
.98 pha
inc pStack Discard counter
>PULLA hCTX
>SYSCALL2 FreeMem
pla
sec
rts
*/--------------------------------------
* # tuiClose
* destroy context
* ## C
* `void fastcall tuiClose(short int hCTX);`
* ## ASM
* `lda hCTX`
* `>LIBCALL hLIBTUI,LIBTUI.Close`
* ## RETURN VALUE
* CC = success
*\--------------------------------------
CTX.Close pha
>SYSCALL2 GetMemPtr
>STYA ZPCtxPtr
lda (ZPCtxPtr) S.CTX.hSCRN
beq .1
jsr LIB.Destroy
.1 pla
>SYSCALL2 FreeMem
>LDYA L.SEQ.CLOSE
jsr IO.fputs
clc
CTX.Close.RTS rts
*--------------------------------------
MAN
SAVE usr/src/lib/libtui.s.ctx
LOAD usr/src/lib/libtui.s
ASM