diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index ddaa3e2c..31098df0 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/LIB/LIBGUI.S.DRAW.txt b/LIB/LIBGUI.S.DRAW.txt index fd178815..3d2b5b37 100644 --- a/LIB/LIBGUI.S.DRAW.txt +++ b/LIB/LIBGUI.S.DRAW.txt @@ -298,18 +298,13 @@ DrawBitMap lda #S.CB.CMD.BITBLT .8 rts *-------------------------------------- +DRAW.xBM >LDYA L.BMs,x +DRAW.yaBM >STYA ZPBMPtr + bra DRAW.BM + DRAW.xBMAtDXDY >LDYA L.BMs,x DRAW.yaBMAtDXDY >STYA ZPBMPtr Src BM - lda #S.CB.CMD.BITBLT - jsr CB.InitCacheA - - lda #S.CB.OP.MASK+S.CB.OP.ORA+S.CB.OP.COLOR - sta CB.Cache+S.CB.OP - - lda #S.CB.M.C16 - sta CB.Cache+S.CB.M - ldx #3 .1 lda DX,x @@ -317,6 +312,15 @@ DRAW.yaBMAtDXDY >STYA ZPBMPtr Src BM dex bpl .1 +DRAW.BM lda #S.CB.CMD.BITBLT + sta CB.Cache+S.CB.CMD + + lda #S.CB.OP.MASK+S.CB.OP.ORA+S.CB.OP.COLOR + sta CB.Cache+S.CB.OP + + lda #S.CB.M.C16 + sta CB.Cache+S.CB.M + ldx #3 ldy #S.BM.W+3 @@ -356,6 +360,10 @@ DrawText lda #S.CB.CMD.DRAWTEXT2 .8 rts *-------------------------------------- +DRAW.YAText >STYA CB.Cache+S.CB.TxtPtr + stx CB.Cache+S.CB.hFont + bra DRAW.Text +*-------------------------------------- DRAW.YATextAtDXDY phx jsr CB.ClearCache @@ -363,11 +371,18 @@ DRAW.YATextAtDXDY plx stx CB.Cache+S.CB.hFont - lda #S.CB.CMD.DRAWTEXT2 + ldx #3 + +.1 lda DX,x DX,DY -> S.CB.X1,S.CB.Y1 + sta CB.Cache+S.CB.X1,x + dex + bpl .1 + +DRAW.Text lda #S.CB.CMD.DRAWTEXT2 sta CB.Cache+S.CB.CMD lda #0 - ror + ror CS = inverse eor #S.CB.OP.INVERSE ora #S.CB.OP.SET @@ -377,13 +392,6 @@ DRAW.YATextAtDXDY lda #S.CB.M.MONO sta CB.Cache+S.CB.M - ldx #3 - -.1 lda DX,x DX,DY -> S.CB.X1,S.CB.Y1 - sta CB.Cache+S.CB.X1,x - dex - bpl .1 - jmp CB.Cache2CBBuf *-------------------------------------- DRAW.PullY2X2Y1X1 @@ -485,7 +493,8 @@ DRAW.AddP1YtoCBX sta CB.Cache+1,x rts *-------------------------------------- -DrawCBBufToYA ldx hCBBuf +DRAW.FlushBufToYA + ldx hCBBuf beq .80 pha diff --git a/LIB/LIBGUI.S.MENU.txt b/LIB/LIBGUI.S.MENU.txt index 727dc9dd..97594f66 100644 --- a/LIB/LIBGUI.S.MENU.txt +++ b/LIB/LIBGUI.S.MENU.txt @@ -418,8 +418,7 @@ MENU.FindMItemByID .9 sec rts *-------------------------------------- -MENU.Enter jsr MENU.GetDXWIE X1,W,X2 - jsr MENU.GetDY Y1 +MENU.Enter jsr MENU.GETX1X2WDY jsr MENU.GetMItems @@ -430,6 +429,8 @@ MENU.Enter jsr MENU.GetDXWIE X1,W,X2 cmp #S.MITEM.T.SEP beq .2 + jsr MENU.ResetDX + lda DY Y1 sec adc SYSFON.H @@ -474,7 +475,7 @@ MENU.Enter jsr MENU.GetDXWIE X1,W,X2 bne .1 >LDYA L.WND.Screen - jsr DrawCBBufToYA + jsr DRAW.FlushBufToYA jsr MENU.NewSubMenu bcs .9 @@ -482,7 +483,7 @@ MENU.Enter jsr MENU.GetDXWIE X1,W,X2 bra .1 .4 >LDYA L.WND.Screen - jmp DrawCBBufToYA + jmp DRAW.FlushBufToYA lda MSG+S.MSG.S bit #S.MSG.S.CLK @@ -545,20 +546,20 @@ MENU.Draw >SYSCALL2 GetMemPtr jsr MENU.DrawBorders - jsr MENU.GetDXWIE - jsr MENU.GetDY + jsr MENU.GETX1X2WDY jsr MENU.GetMItems .1 lda (ZPPtr1) beq .8 + jsr MENU.ResetDX jsr MENU.DrawMItem jsr MENU.NextMItemDY bra .1 .8 >LDYA L.WND.Screen - jsr DrawCBBufToYA + jsr DRAW.FlushBufToYA >DEBUG @@ -630,41 +631,24 @@ MENU.DrawBorders jmp CB.Cache2CBBuf *-------------------------------------- -MENU.DrawMItem jsr MENU.GetDX - - lda (ZPPtr1) +MENU.DrawMItem lda (ZPPtr1) cmp #S.MITEM.T.SEP bne MENU.DrawMItem1 lda #S.CB.CMD.HLINE - jsr CB.InitCacheA - + sta CB.Cache+S.CB.CMD lda #S.CB.OP.SET sta CB.Cache+S.CB.OP lda #S.CB.M.MONO sta CB.Cache+S.CB.M + lda PREFS.BORDERCOLOR sta CB.Cache+S.CB.COLOR - ldx #3 - -.1 lda DX,x - sta CB.Cache+S.CB.X1,x - dex - bpl .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 jmp CB.Cache2CBBuf *-------------------------------------- MENU.DrawMItem1 lda #S.CB.CMD.FILLRECT - jsr CB.InitCacheA - + sta CB.Cache+S.CB.CMD lda #S.CB.OP.SET sta CB.Cache+S.CB.OP lda #S.CB.M.MONO @@ -680,109 +664,91 @@ MENU.DrawMItem1 lda #S.CB.CMD.FILLRECT .15 stx CB.Cache+S.CB.COLOR - ldx #3 - -.10 lda DX,x - sta CB.Cache+S.CB.X1,x - dex - bpl .10 - - lda DX - clc - adc Counter - sta CB.Cache+S.CB.X2 - lda DX+1 - adc Counter+1 - sta CB.Cache+S.CB.X2+1 - lda DY + sta CB.Cache+S.CB.Y1 sec adc SYSFON.H sta CB.Cache+S.CB.Y2 lda DY+1 + sta CB.Cache+S.CB.Y1+1 adc #0 sta CB.Cache+S.CB.Y2+1 jsr CB.Cache2CBBuf - - inc DY +*-------------------------------------- + inc CB.Cache+S.CB.Y1 Y1:1px margin bne .12 - inc DY+1 - -.12 lda DX + inc CB.Cache+S.CB.Y1+1 +.12 lda CB.Cache+S.CB.X1 clc - adc #MENU.LMargin TODO : Checked - sta DX + sta CB.Cache+S.CB.X1 bcc .11 - sta DX+1 + + inc CB.Cache+S.CB.X1+1 .11 jsr MENU.GetIcon beq .2 - jsr DRAW.yaBMAtDXDY + jsr DRAW.yaBM -.2 lda DX +.2 lda CB.Cache+S.CB.X1 clc ldy #S.MENU.iW adc (ZPMENUPtr),y - sta DX + sta CB.Cache+S.CB.X1 bcc .21 - inc DX+1 + inc CB.Cache+S.CB.X1+1 .21 jsr MENU.GetText jsr MENU.IsSelected ldx hSYSFON - jsr DRAW.YATextAtDXDY + jsr DRAW.YAText - lda DX + lda CB.Cache+S.CB.X1 sec ldy #S.MENU.tW adc (ZPMENUPtr),y - sta DX - lda DX+1 + sta CB.Cache+S.CB.X1 + lda CB.Cache+S.CB.X1+1 iny adc (ZPMENUPtr),y - sta DX+1 + sta CB.Cache+S.CB.X1+1 + lda (ZPPtr1) + cmp #S.MITEM.T.ITEM + bne .3 + jsr MENU.GetKeyString bcs .3 jsr MENU.IsSelected ldx hSYSFON - jsr DRAW.YATextAtDXDY + jsr DRAW.YAText .3 lda (ZPPtr1) cmp #S.MITEM.T.SUBMENU bne .8 - lda DX + lda CB.Cache+S.CB.X1 sec ldy #S.MENU.kW adc (ZPMENUPtr),y - sta DX + sta CB.Cache+S.CB.X1 - lda DX+1 + lda CB.Cache+S.CB.X1+1 iny adc (ZPMENUPtr),y - sta DX+1 + sta CB.Cache+S.CB.X1+1 ldx #BM.ID.RIGHT - jsr DRAW.xBMAtDXDY + jmp DRAW.xBM -.8 -* lda DY -* bne .80 - -* dec DY+1 - -*.80 dec DY - - clc +.8 clc rts *-------------------------------------- MENU.GetIcon ldy #S.MITEM.pICON+1 @@ -944,9 +910,7 @@ MENU.Destroy clc jsr PTR.Hide.I -.1 jsr CB.ClearCache - - lda #S.CB.CMD.BITBLT +.1 lda #S.CB.CMD.BITBLT jsr CB.InitCacheA lda #S.CB.OP.RESTORE @@ -1008,26 +972,7 @@ MENU.Destroy clc .8 clc rts *-------------------------------------- -MENU.GetDXWIE ldy #S.OBJ.W - lda (ZPMENUPtr),y - sec - sbc #3 2Px border + correction from W - sta Counter - iny - lda (ZPMENUPtr),y - sbc #0 - sta Counter+1 - - lda Counter W - clc - adc DX - sta IE IE = X2 - - lda Counter+1 - adc DX+1 - sta IE+1 - -MENU.GetDX ldy #S.OBJ.X1 +MENU.GETX1X2WDY ldy #S.OBJ.X1 lda (ZPMENUPtr),y clc adc #1 @@ -1037,9 +982,25 @@ MENU.GetDX ldy #S.OBJ.X1 adc #0 sta DX+1 - rts -*-------------------------------------- -MENU.GetDY ldy #S.OBJ.Y1 + ldy #S.OBJ.W + lda (ZPMENUPtr),y + sec + sbc #3 2Px border + correction from W + sta Counter W + iny + lda (ZPMENUPtr),y + 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 adc #1 @@ -1051,6 +1012,13 @@ MENU.GetDY ldy #S.OBJ.Y1 rts *-------------------------------------- +MENU.ResetDX lda DX + sta CB.Cache+S.CB.X1 + lda DX+1 + sta CB.Cache+S.CB.X1+1 + + rts +*-------------------------------------- MENU.FindSelected >LDYA ZPPtr1 >STYA D diff --git a/LIB/LIBGUI.S.SYSBAR.txt b/LIB/LIBGUI.S.SYSBAR.txt index fb01e070..0936d1ba 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 DrawCBBufToYA + jsr DRAW.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 DrawCBBufToYA + jmp DRAW.FlushBufToYA .8 clc .9 rts @@ -52,7 +52,7 @@ SYSBAR.Show jsr CB.GetBuf >LDYA L.WND.SysBar - jmp DrawCBBufToYA + jmp DRAW.FlushBufToYA .9 rts *-------------------------------------- diff --git a/LIB/LIBGUI.S.WND.txt b/LIB/LIBGUI.S.WND.txt index e639b625..21853e37 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 DrawCBBufToYA + jsr DRAW.FlushBufToYA lda WND.hWND pha @@ -505,7 +505,7 @@ WND.fPaint >SYSCALL2 GetMemPtr jsr CB.Cache2CBBuf .8 >LDYA L.WND.Desktop - jmp DrawCBBufToYA + jmp DRAW.FlushBufToYA *-------------------------------------- WND.ShowBorders sta IY