diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 68315ff1..72955802 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/INC/LIBGUI.I.txt b/INC/LIBGUI.I.txt index bfd2232a..130b7d49 100644 --- a/INC/LIBGUI.I.txt +++ b/INC/LIBGUI.I.txt @@ -153,9 +153,9 @@ S.MENU.pY1 .EQ S.OBJ+6 S.MENU.pX2 .EQ S.OBJ+8 S.MENU.pY2 .EQ S.OBJ+10 S.MENU.Selected .EQ S.OBJ+12 -S.MENU.tOffset .EQ S.OBJ+13 -S.MENU.kOffset .EQ S.OBJ+14 -S.MENU.rOffset .EQ S.OBJ+16 +S.MENU.iW .EQ S.OBJ+13 +S.MENU.tW .EQ S.OBJ+14 +S.MENU.kW .EQ S.OBJ+16 * S.MENU .EQ S.OBJ+18 *-------------------------------------- diff --git a/LIB/LIBGUI.S.MENU.txt b/LIB/LIBGUI.S.MENU.txt index 398fa24b..fab8b010 100644 --- a/LIB/LIBGUI.S.MENU.txt +++ b/LIB/LIBGUI.S.MENU.txt @@ -279,6 +279,10 @@ MENU.Enter jsr MENU.GetDX jsr MOU.InRectYA bcs .7 + ldy #S.MENU.Selected + lda (ZPMENUPtr),y + pha + ldy #S.MITEM.ID lda (ZPPtr1),y @@ -287,7 +291,16 @@ MENU.Enter jsr MENU.GetDX jsr GetCBBuf jsr MENU.ShowMItem1 - >LDYA L.WND.Screen + + plx + beq .6 + + jsr MENU.FindMItemByID + bcs .6 + + jsr MENU.ShowMItem1 + +.6 >LDYA L.WND.Screen jmp DrawCBPtrToYA1 .7 jsr MENU.NextMItem @@ -353,18 +366,18 @@ MENU.SetMenuSizePos lda DY+1 sta (ZPMENUPtr),y - ldy #S.MENU.tOffset + ldy #S.MENU.iW lda IY sta (ZPMENUPtr),y - - iny #S.MENU.kOffset + + iny #S.MENU.tW lda IE sta (ZPMENUPtr),y iny lda IE+1 sta (ZPMENUPtr),y - iny #S.MENU.rOffset + iny #S.MENU.kW lda INE sta (ZPMENUPtr),y iny @@ -481,6 +494,34 @@ MENU.ShowBorders sta CB.Cache+S.CB.Y1+1 sta CB.Cache+S.CB.Y2+1 bottom X1,Y2,X2,Y2 + jsr PutCBCache2CBBuf + + lda #S.CB.CMD.VLINE + sta CB.Cache+S.CB.CMD + + ldy #S.OBJ.Y1 + lda (ZPMENUPtr),y + sta CB.Cache+S.CB.Y1 + iny + lda (ZPMENUPtr),y + sta CB.Cache+S.CB.Y1+1 + + lda CB.Cache+S.CB.X1 + sta CB.Cache+S.CB.X2 + lda CB.Cache+S.CB.X1+1 + sta CB.Cache+S.CB.X2+1 left X1,Y1,X1,Y2 + + jsr PutCBCache2CBBuf + + ldy #S.OBJ.X2 + lda (ZPMENUPtr),y + sta CB.Cache+S.CB.X1 + sta CB.Cache+S.CB.X2 + iny + lda (ZPMENUPtr),y + sta CB.Cache+S.CB.X1+1 + sta CB.Cache+S.CB.X2+1 right X2,Y1,X2,Y2 + jmp PutCBCache2CBBuf *-------------------------------------- MENU.ShowMItem ldy #S.MITEM.F @@ -580,8 +621,8 @@ MENU.ShowMItem1 lda #S.CB.CMD.FILLRECT .2 lda DX clc - ldy #S.MENU.tOffset - adc (ZPPtr1),y + ldy #S.MENU.iW + adc (ZPMENUPtr),y sta DX bcc .21 @@ -595,12 +636,12 @@ MENU.ShowMItem1 lda #S.CB.CMD.FILLRECT lda DX sec - ldy #S.MENU.tOffset - adc (ZPPtr1),y + ldy #S.MENU.tW + adc (ZPMENUPtr),y sta DX lda DX+1 iny - adc (ZPPtr1),y + adc (ZPMENUPtr),y sta DX+1 jsr MENU.GetKeyString @@ -616,12 +657,12 @@ MENU.ShowMItem1 lda #S.CB.CMD.FILLRECT lda DX sec - ldy #S.MENU.rOffset - adc (ZPPtr1),y + ldy #S.MENU.kW + adc (ZPMENUPtr),y sta DX lda DX+1 iny - adc (ZPPtr1),y + adc (ZPMENUPtr),y sta DX+1 ldx #BM.ID.RIGHT @@ -821,6 +862,8 @@ MENU.GetDYW ldy #S.OBJ.Y1 *-------------------------------------- MENU.FindMItemByID jsr MENU.GetMItems + jsr MENU.GetDX + jsr MENU.GetDYW .1 lda (ZPPtr1) beq .9