LIBGUI:reorg

This commit is contained in:
burniouf 2022-10-20 08:07:40 +02:00
parent 5fa429c326
commit d2fa558510
8 changed files with 183 additions and 173 deletions

Binary file not shown.

144
LIB/LIBGUI.S.CB.txt Normal file
View File

@ -0,0 +1,144 @@
NEW
AUTO 3,1
*--------------------------------------
CB.InitCacheA sta CB.Cache+S.CB.CMD
*--------------------------------------
CB.ClearCache ldx #S.CB-1
.1 stz CB.Cache,x
dex
bne .1
rts
*--------------------------------------
CB.GetInCache >STYA .1+1
ldx #S.CB-1
.1 lda $ffff,x SELF MODIFIED
sta CB.Cache,x
dex
bpl .1
rts
*--------------------------------------
CB.GetBuf clc
ldx hCBBuf
bne .9
>LDYAI 512
>SYSCALL2 GetMem
bcs .9
stx hCBBuf
>STYA ZPCBPtr
>STYA ZPCBBufPtr
.9 rts
*--------------------------------------
CB.Cache2CBBuf
lda CB.Cache
lsr
tax
ldy CB.CmdLen-1,x
ldx #0
.1 lda CB.Cache,x
sta (ZPCBBufPtr)
inc ZPCBBufPtr
bne .2
inc ZPCBBufPtr+1
.2 inx
dey
bpl .1
rts
*--------------------------------------
CB.FlushBufToYA ldx hCBBuf
beq .8
pha
phy
bit PTR.bVisible
bpl .1
jsr PTR.Hide.I
.1 lda #0
sta (ZPCBBufPtr)
ply
pla
jsr OBJ.GetInCache
.2 lda (ZPCBPtr)
beq .7
>LDYA ZPCBPtr
jsr CB.GetInCache A = CB.CMD
cmp #S.CB.CMD.DRAWTEXT2
bne .4
lda #S.CB.CMD.DRAWTEXT+S.CB.CMD.OSD
sta CB.Cache+S.CB.CMD
jsr CB.GFXWrite
bcs .9
jsr CLIP.CB.Cache
bcs .3
jsr CB.GFXWrite
.3 lda CB.Cache+S.CB.SrcPtr
>SYSCALL2 FreeStkObj
bra .5
.4 jsr CLIP.CB.Cache
bcs .5
jsr CB.GFXWrite
.5 lda (ZPCBPtr) Get Cmd
lsr
tax
lda CB.CmdLen-1,x
sec +1
adc ZPCBPtr
sta ZPCBPtr
bcc .2
inc ZPCBPtr+1
bra .2
.7 lda hCBBuf
stz hCBBuf
>SYSCALL2 FreeMem
bit PTR.bVisible
bpl .8
jmp PTR.Show.I
.8 clc
.9 rts
*--------------------------------------
CB.GFXWrite >PUSHB WND.Screen+S.OBJ.hPARENT
>PUSHBI IOCTL.WRITE
>PUSHW L.CB.Cache
>SYSCALL2 IOCTL
rts
*--------------------------------------
*--------------------------------------
MAN
SAVE usr/src/lib/libgui.s.cb
LOAD usr/src/lib/libgui.s
ASM

View File

@ -493,78 +493,6 @@ DRAW.AddP1YtoCBX
sta CB.Cache+1,x
rts
*--------------------------------------
DRAW.FlushBufToYA
ldx hCBBuf
beq .80
pha
phy
bit PTR.bVisible
bpl .1
jsr PTR.Hide.I
.1 lda #0
sta (ZPCBBufPtr)
ply
pla
jsr OBJ.GetInCache
.2 lda (ZPCBPtr)
beq .8
>LDYA ZPCBPtr
jsr CB.GetInCache A = CB.CMD
cmp #S.CB.CMD.DRAWTEXT2
bne .6
lda #S.CB.CMD.DRAWTEXT+S.CB.CMD.OSD
sta CB.Cache+S.CB.CMD
jsr CB.GFXWrite
bcs .9
jsr CLIP.CB.Cache
bcs .3
jsr CB.GFXWrite
.3 lda CB.Cache+S.CB.SrcPtr
>SYSCALL2 FreeStkObj
bra .7
.6 jsr CLIP.CB.Cache
bcs .7
jsr CB.GFXWrite
.7 lda (ZPCBPtr) Get Cmd
lsr
tax
lda CB.CmdLen-1,x
sec +1
adc ZPCBPtr
sta ZPCBPtr
bcc .2
inc ZPCBPtr+1
bra .2
.8 lda hCBBuf
stz hCBBuf
>SYSCALL2 FreeMem
bit PTR.bVisible
bpl .80
jmp PTR.Show.I
.80 clc
.9 rts
*--------------------------------------
MAN
SAVE usr/src/lib/libgui.s.draw
LOAD usr/src/lib/libgui.s

View File

@ -129,7 +129,7 @@ MENU.GetData lda ZPMENUPtr
bne .2
inc ZPPtr1 skip 1 byte
bne .1
bne .5
inc ZPPtr1+1
bra .5
@ -183,7 +183,7 @@ MENU.GetData lda ZPMENUPtr
lda #2 skip pICON
jsr SkipAPtr1
.5 ldy #S.MITEM.pTEXT
ldy #S.MITEM.pTEXT
lda ZPPtr1
sta (ZPMENUPtr),y
iny
@ -196,7 +196,7 @@ MENU.GetData lda ZPMENUPtr
lda #0
sta (ZPMENUPtr),y
lda ZPMENUPtr
.5 lda ZPMENUPtr
clc
adc #S.MITEM
sta ZPMENUPtr
@ -418,19 +418,16 @@ MENU.FindMItemByID
.9 sec
rts
*--------------------------------------
MENU.Enter jsr MENU.GETX1X2WDY
MENU.Enter jsr MENU.GetDXDYW
jsr MENU.GetMItems
.1 lda (ZPPtr1)
beq .4
lda (ZPPtr1)
cmp #S.MITEM.T.SEP
beq .2
jsr MENU.ResetDX
lda DY Y1
sec
adc SYSFON.H
@ -448,11 +445,12 @@ MENU.Enter jsr MENU.GETX1X2WDY
bpl .2
eor #S.MITEM.S.SELECTED
sta (ZPPtr1),y
sta (ZPPtr1),y was selected before...
jsr CB.GetBuf
bcs .9
jsr MENU.ResetX1Y1X2
jsr MENU.DrawMItem
.2 jsr MENU.NextMItemDY
@ -461,29 +459,30 @@ MENU.Enter jsr MENU.GETX1X2WDY
.3 ldy #S.MITEM.S
lda (ZPPtr1),y
bmi .8 already selected, nothing to do
>DEBUG
eor #S.MITEM.S.SELECTED
sta (ZPPtr1),y
jsr CB.GetBuf
bcs .9
jsr MENU.ResetX1Y1X2
jsr MENU.DrawMItem
lda (ZPPtr1)
cmp #S.MITEM.T.SUBMENU
bne .1
>LDYA L.WND.Screen
jsr DRAW.FlushBufToYA
* >LDYA L.WND.Screen
* jsr CB.FlushBufToYA
jsr MENU.NewSubMenu
bcs .9
* jsr MENU.NewSubMenu
* bcs .9
bra .1
.4 >LDYA L.WND.Screen
jmp DRAW.FlushBufToYA
jmp CB.FlushBufToYA
lda MSG+S.MSG.S
bit #S.MSG.S.CLK
@ -546,22 +545,20 @@ MENU.Draw >SYSCALL2 GetMemPtr
jsr MENU.DrawBorders
jsr MENU.GETX1X2WDY
jsr MENU.GetDXDYW
jsr MENU.GetMItems
.1 lda (ZPPtr1)
beq .8
jsr MENU.ResetDX
jsr MENU.ResetX1Y1X2
jsr MENU.DrawMItem
jsr MENU.NextMItemDY
bra .1
.8 >LDYA L.WND.Screen
jsr DRAW.FlushBufToYA
>DEBUG
jsr CB.FlushBufToYA
.9 rts
*--------------------------------------
@ -972,7 +969,7 @@ MENU.Destroy clc
.8 clc
rts
*--------------------------------------
MENU.GETX1X2WDY ldy #S.OBJ.X1
MENU.GetDXDYW ldy #S.OBJ.X1
lda (ZPMENUPtr),y
clc
adc #1
@ -992,14 +989,6 @@ MENU.GETX1X2WDY ldy #S.OBJ.X1
sbc #0
sta Counter+1
lda DX
clc
adc Counter
sta CB.Cache+S.CB.X2
lda DX+1
adc Counter+1
sta CB.Cache+S.CB.X2+1
ldy #S.OBJ.Y1
lda (ZPMENUPtr),y
clc
@ -1012,10 +1001,21 @@ MENU.GETX1X2WDY ldy #S.OBJ.X1
rts
*--------------------------------------
MENU.ResetDX lda DX
MENU.ResetX1Y1X2
lda DX
sta CB.Cache+S.CB.X1
clc
adc Counter
sta CB.Cache+S.CB.X2
lda DX+1
sta CB.Cache+S.CB.X1+1
adc Counter+1
sta CB.Cache+S.CB.X2+1
lda DY
sta CB.Cache+S.CB.Y1
lda DY+1
sta CB.Cache+S.CB.Y1+1
rts
*--------------------------------------

View File

@ -121,11 +121,11 @@ MOU.CheckOverMenu
* TODO:destroy from TOP to current, then enter current
inx
phx
* inx
* phx
jsr MENU.Destroy
bra .3
* jsr MENU.Destroy
* bra .3
.7 jmp MENU.Enter

View File

@ -10,7 +10,7 @@ SYSBUT.Enter sec
jsr SYSBAR.ShowSysBut
>LDYA L.WND.SysBar
jsr DRAW.FlushBufToYA
jsr CB.FlushBufToYA
>PUSHW L.MENU.Sys
>PUSHW WND.SysBar+S.OBJ.X1
@ -36,7 +36,7 @@ SYSBUT.Leave bit WND.SYSBAR.bSysBut
>LDYA L.WND.SysBar
jmp DRAW.FlushBufToYA
jmp CB.FlushBufToYA
.8 clc
.9 rts
@ -52,7 +52,7 @@ SYSBAR.Show jsr CB.GetBuf
>LDYA L.WND.SysBar
jmp DRAW.FlushBufToYA
jmp CB.FlushBufToYA
.9 rts
*--------------------------------------

View File

@ -394,7 +394,7 @@ WND.Show2 jsr CB.GetBuf
>LDYA L.WND.Desktop
jsr DRAW.FlushBufToYA
jsr CB.FlushBufToYA
lda WND.hWND
pha
@ -505,7 +505,7 @@ WND.fPaint >SYSCALL2 GetMemPtr
jsr CB.Cache2CBBuf
.8 >LDYA L.WND.Desktop
jmp DRAW.FlushBufToYA
jmp CB.FlushBufToYA
*--------------------------------------
WND.ShowBorders sta IY

View File

@ -240,69 +240,6 @@ LIB.UNLOAD dec LibCount
.8 clc
rts
*--------------------------------------
CB.InitCacheA sta CB.Cache+S.CB.CMD
*--------------------------------------
CB.ClearCache ldx #S.CB-1
.1 stz CB.Cache,x
dex
bne .1
rts
*--------------------------------------
CB.GetInCache >STYA .1+1
ldx #S.CB-1
.1 lda $ffff,x SELF MODIFIED
sta CB.Cache,x
dex
bpl .1
rts
*--------------------------------------
CB.GetBuf clc
ldx hCBBuf
bne .9
>LDYAI 512
>SYSCALL2 GetMem
bcs .9
stx hCBBuf
>STYA ZPCBPtr
>STYA ZPCBBufPtr
.9 rts
*--------------------------------------
CB.Cache2CBBuf
lda CB.Cache
lsr
tax
ldy CB.CmdLen-1,x
ldx #0
.1 lda CB.Cache,x
sta (ZPCBBufPtr)
inc ZPCBBufPtr
bne .2
inc ZPCBBufPtr+1
.2 inx
dey
bpl .1
rts
*--------------------------------------
CB.GFXWrite >PUSHB WND.Screen+S.OBJ.hPARENT
>PUSHBI IOCTL.WRITE
>PUSHW L.CB.Cache
>SYSCALL2 IOCTL
rts
*--------------------------------------
SkipAPtr1 clc
adc ZPPtr1
sta ZPPtr1
@ -330,6 +267,7 @@ SkipStrZPtr1 ldy #$ff
*--------------------------------------
.INB usr/src/lib/libgui.s.bm
.INB usr/src/lib/libgui.s.but
.INB usr/src/lib/libgui.s.cb
.INB usr/src/lib/libgui.s.clip
.INB usr/src/lib/libgui.s.cur
.INB usr/src/lib/libgui.s.draw