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 sta CB.Cache+1,x
rts 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 MAN
SAVE usr/src/lib/libgui.s.draw SAVE usr/src/lib/libgui.s.draw
LOAD usr/src/lib/libgui.s LOAD usr/src/lib/libgui.s

View File

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

View File

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

View File

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

View File

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

View File

@ -240,69 +240,6 @@ LIB.UNLOAD dec LibCount
.8 clc .8 clc
rts 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 SkipAPtr1 clc
adc ZPPtr1 adc ZPPtr1
sta ZPPtr1 sta ZPPtr1
@ -330,6 +267,7 @@ SkipStrZPtr1 ldy #$ff
*-------------------------------------- *--------------------------------------
.INB usr/src/lib/libgui.s.bm .INB usr/src/lib/libgui.s.bm
.INB usr/src/lib/libgui.s.but .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.clip
.INB usr/src/lib/libgui.s.cur .INB usr/src/lib/libgui.s.cur
.INB usr/src/lib/libgui.s.draw .INB usr/src/lib/libgui.s.draw