diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 31098df0..31a9b1f3 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/LIB/LIBGUI.S.CB.txt b/LIB/LIBGUI.S.CB.txt new file mode 100644 index 00000000..ad3ad5e4 --- /dev/null +++ b/LIB/LIBGUI.S.CB.txt @@ -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 diff --git a/LIB/LIBGUI.S.DRAW.txt b/LIB/LIBGUI.S.DRAW.txt index 3d2b5b37..42aeafe6 100644 --- a/LIB/LIBGUI.S.DRAW.txt +++ b/LIB/LIBGUI.S.DRAW.txt @@ -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 diff --git a/LIB/LIBGUI.S.MENU.txt b/LIB/LIBGUI.S.MENU.txt index 97594f66..cbe7eadc 100644 --- a/LIB/LIBGUI.S.MENU.txt +++ b/LIB/LIBGUI.S.MENU.txt @@ -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 *-------------------------------------- diff --git a/LIB/LIBGUI.S.MOU.txt b/LIB/LIBGUI.S.MOU.txt index efb2b6d9..47fe2e9b 100644 --- a/LIB/LIBGUI.S.MOU.txt +++ b/LIB/LIBGUI.S.MOU.txt @@ -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 diff --git a/LIB/LIBGUI.S.SYSBAR.txt b/LIB/LIBGUI.S.SYSBAR.txt index 0936d1ba..90307ae7 100644 --- a/LIB/LIBGUI.S.SYSBAR.txt +++ b/LIB/LIBGUI.S.SYSBAR.txt @@ -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 *-------------------------------------- diff --git a/LIB/LIBGUI.S.WND.txt b/LIB/LIBGUI.S.WND.txt index 21853e37..65ca9076 100644 --- a/LIB/LIBGUI.S.WND.txt +++ b/LIB/LIBGUI.S.WND.txt @@ -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 diff --git a/LIB/LIBGUI.S.txt b/LIB/LIBGUI.S.txt index ef686f26..1efbb76a 100644 --- a/LIB/LIBGUI.S.txt +++ b/LIB/LIBGUI.S.txt @@ -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