diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index b4f5d0f4..ae3a1607 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BIN/GTEST.S.txt b/BIN/GTEST.S.txt index ff64ad19..a34b8627 100644 --- a/BIN/GTEST.S.txt +++ b/BIN/GTEST.S.txt @@ -135,16 +135,18 @@ CS.RUN jsr GFX.Open lda #0 sec -.9 rts +.9 +CS.RUN.RTS rts *-------------------------------------- CS.RUN.LOGO.SHOW - lda #S.CB.CMD.GETRECTBUFSIZE - sta CB.LOGO+S.CB.CMD +* lda #S.CB.CMD.GETRECTBUFSIZE +* sta CB.LOGO+S.CB.CMD >LDYA L.CB.LOGO jsr GFX.Write.YA >SYSCALL NewStkObj + bcs CS.RUN.RTS stx CB.LOGO+S.CB.DstPtr lda #S.CB.CMD.BITBLT @@ -160,7 +162,7 @@ CS.RUN.LOGO.SHOW lda (pPS),y >SYSCALL FEOF - bcs .99 + bcs CS.RUN.RTS tay beq .80 @@ -171,7 +173,7 @@ CS.RUN.LOGO.SHOW stz bVBL - lda #S.CB.OP.SET+S.CB.OP.COLOR+S.CB.OP.RESTORE + lda #S.CB.OP.RESTORE sta CB.LOGO+S.CB.OP >LDYA L.CB.LOGO @@ -208,29 +210,26 @@ CS.RUN.LOGO.SHOW .5 sty CB.LOGO+S.CB.X1 sta CB.LOGO+S.CB.X1+1 - .6 lda CB.LOGO+S.CB.Y1 bit yDir bmi .8 inc - cmp #152 - bne .7 - -.60 lda yDir + sta CB.LOGO+S.CB.Y1 + cmp #151 + bne .1 + +.7 lda yDir eor #$ff sta yDir - bra .1 - -.7 sta CB.LOGO+S.CB.Y1 - bra .1 + jmp .1 .8 sec sbc #1 - bcc .60 - sta CB.LOGO+S.CB.Y1 + beq .7 + jmp .1 .80 >SYSCALL GetChar @@ -238,8 +237,7 @@ CS.RUN.LOGO.SHOW lda CB.LOGO+S.CB.DstPtr >SYSCALL FreeStkObj - -.99 rts + rts *-------------------------------------- CS.DOEVENT lda (pEvent) bpl .9 @@ -468,14 +466,14 @@ BM.Apple.AND .HS FFF0 .HS 0000 .HS 0FF0 *-------------------------------------- -CB.LOGO .DA #S.CB.CMD.BITBLT +CB.LOGO .DA #S.CB.CMD.GETRECTBUFSIZE .DA #S.CB.OP.SET+S.CB.OP.COLOR+S.CB.OP.SAVE .DA #S.CB.M.C16 .DA #0 .DA 200 X1 .DA 50 Y1 - .DA 200+320 X2 For GETRECTBUFSIZE - .DA 50+40 XZ For GETRECTBUFSIZE + .DA 200+319 X2 For GETRECTBUFSIZE + .DA 50+39 Y2 For GETRECTBUFSIZE .DA 0 SrcX .DA 0 SrcY .DA 320 SrcW diff --git a/DRV/DHGR.DRV.S.BLT.txt b/DRV/DHGR.DRV.S.BLT.txt index e5ce92d5..0f6c435f 100644 --- a/DRV/DHGR.DRV.S.BLT.txt +++ b/DRV/DHGR.DRV.S.BLT.txt @@ -87,7 +87,10 @@ BITBLT >LDYA CB.Cache+S.CB.X1 BITBLT.0 bit #S.CB.OP.SAVE beq BITBLT.1 - ldy CB.Cache+S.CB.DstPtr + and #$f + bne .66 + +.66 ldy CB.Cache+S.CB.DstPtr lda CB.Cache+S.CB.DstPtr+1 bne .1 diff --git a/DRV/DHGR.DRV.S.RECT.txt b/DRV/DHGR.DRV.S.RECT.txt index af234caa..b29e29d9 100644 --- a/DRV/DHGR.DRV.S.RECT.txt +++ b/DRV/DHGR.DRV.S.RECT.txt @@ -32,15 +32,23 @@ FILLRECT jsr HLINE * 18 : S.CB.DstPtr = Size in Bytes to save this RECT *-------------------------------------- GETRECTBUFSIZE >LDYA CB.Cache+S.CB.X1 + jsr DIVMOD7YA - sta ZPTmpByte + sta ZPTmpByte A = X1 div 7 + >LDYA CB.Cache+S.CB.X2 jsr DIVMOD7YA - inc COL2 + 1 + inc A = (X2 mod 7) + 1 sec sbc ZPTmpByte (COL2+1)-COL1 tax - >LDYA CB.Cache+S.CB.SrcH + + lda CB.Cache+S.CB.Y2 + sec + sbc CB.Cache+S.CB.Y1 + tay + lda #0 + jmp YAMultX *-------------------------------------- MAN diff --git a/INC/LIBGUI.I.txt b/INC/LIBGUI.I.txt index b67823a7..acfc9c29 100644 --- a/INC/LIBGUI.I.txt +++ b/INC/LIBGUI.I.txt @@ -167,8 +167,8 @@ S.MITEM.KEYMOD.CA .EQ 2 S.MITEM.KEYMOD.OA .EQ 4 S.MITEM.KEYMOD.CTRL .EQ 8 S.MITEM.KEY .EQ 7 - -S.MITEM.TEXT .EQ 8 CSTR +S.MITEM.KEYSTR .EQ 8 +S.MITEM.TEXT .EQ 9 CSTR * ... *-------------------------------------- BM.ID.APPLE .EQ 2 diff --git a/LIB/LIBGUI.S.MENU.txt b/LIB/LIBGUI.S.MENU.txt index fe54d76c..0e5f4336 100644 --- a/LIB/LIBGUI.S.MENU.txt +++ b/LIB/LIBGUI.S.MENU.txt @@ -91,7 +91,11 @@ MENU.MBarInit >STYA ZPMENUPtr *-------------------------------------- * MENU.New(int X, int Y, *MITEM mitems) *-------------------------------------- -MENU.New >LDYAI S.MENU +MENU.New ldy MENU.Stack.Top + cpy #MENU.MAX + bcs .90 + + >LDYAI S.MENU >SYSCALL2 getmem bcs .9 @@ -131,13 +135,17 @@ MENU.New >LDYAI S.MENU txa hMenu + ldx MENU.Stack.Top + sta MENU.Stack,x + inc MENU.Stack.Top + * clc rts - -.9 >POP 6 +.90 lda #E.OOH + sec +.9 >POP 6 MENU.New.RTS rts -*-------------------------------------- * ---------------------------------------------- * |Icon ChkMrk "Menu Item" KEYMOD1-KEYMOD2-KEY>| * ---------------------------------------------- @@ -188,7 +196,7 @@ MENU.Show >SYSCALL2 GetMemPtr inc ZPPtr1+1 bra .1 -.3 lda #12 2px Borders+5 LMARGIN (Checked) +5 RMARGIN (SubMenu) +.3 lda #2+MENU.LMargin+MENU.RMargin 2px Borders+5 LMARGIN (Checked) +5 RMARGIN (SubMenu) clc adc IY sta DX @@ -335,7 +343,6 @@ MENU.Show.GetW ldy #S.MITEM.F .2 jsr MENU.GetKeyString beq .8 - >LDYA L.KEYSTRING ldx hSYSFON jsr FON.GetTextSize @@ -354,20 +361,22 @@ MENU.Save jsr CB.ClearCache ldy #S.OBJ.X1 ldx #0 - + .1 lda (ZPMENUPtr),y - sta CB.Cache+S.CB.X1 + sta CB.Cache+S.CB.X1,x iny inx cpx #8 X1,Y1,X2,Y2 bne .1 jsr GFXWrite.CB + >SYSCALL NewStkObj bcs .9 stx CB.Cache+S.CB.DstPtr + txa ldy #S.MENU.hSAVEBUF sta (ZPMENUPtr),y @@ -376,20 +385,20 @@ MENU.Save jsr CB.ClearCache lda #S.CB.OP.SAVE sta CB.Cache+S.CB.OP - + ldy #S.OBJ.W ldx #0 - + .2 lda (ZPMENUPtr),y - sta CB.Cache+S.CB.SrcW + sta CB.Cache+S.CB.SrcW,x iny inx cpx #4 W,H bne .2 - >DEBUG + jsr GFXWrite.CB -* clc + clc .9 rts *-------------------------------------- @@ -506,7 +515,7 @@ MENU.Show.Item ldy #S.MITEM.F sec +1px Border - adc #5 TODO : Checked + adc #MENU.LMargin TODO : Checked sta DX iny lda (ZPMENUPtr),y @@ -532,9 +541,6 @@ MENU.Show.Item ldy #S.MITEM.F ldx hSYSFON jsr DRAW.YATextAtDXDY - jsr MENU.GetKeyString - beq .3 - lda DX sec adc IE @@ -543,7 +549,9 @@ MENU.Show.Item ldy #S.MITEM.F adc IE+1 sta DX+1 - >LDYA L.KEYSTRING + jsr MENU.GetKeyString + beq .3 + ldx hSYSFON jsr DRAW.YATextAtDXDY @@ -582,56 +590,17 @@ MENU.GetText lda #S.MITEM.TEXT rts *-------------------------------------- MENU.GetKeyString - ldx #0 + ldy #S.MITEM.KEYSTR + lda (ZPPtr1),y + beq .8 - ldy #S.MITEM.KEYMOD - lda (ZPPtr1),y - beq .6 - - bit #S.MITEM.KEYMOD.CTRL - beq .4 - -.3 lda KEY.Ctrl,x - sta KEYSTRING,x - inx - cpx #6 - bne .3 - - lda (ZPPtr1),y - -.4 bit #S.MITEM.KEYMOD.OA - beq .5 - - lda #1 - sta KEYSTRING,x - inx - lda #'-' - sta KEYSTRING,x - inx - - lda (ZPPtr1),y - -.5 bit #S.MITEM.KEYMOD.CA - beq .6 - - lda #2 - sta KEYSTRING,x - inx - lda #'-' - sta KEYSTRING,x - inx - -.6 iny - lda (ZPPtr1),y - beq .7 - - sta KEYSTRING,x - inx + clc + adc ZPPtr1 + tay + lda ZPPtr1+1 + adc #0 !0 -.7 stz KEYSTRING,x - - txa - rts +.8 rts *-------------------------------------- MENU.Destroy diff --git a/LIB/LIBGUI.S.MOU.txt b/LIB/LIBGUI.S.MOU.txt index c846b4d2..6405a98b 100644 --- a/LIB/LIBGUI.S.MOU.txt +++ b/LIB/LIBGUI.S.MOU.txt @@ -79,22 +79,68 @@ MOU.ReadMouse >PULLW ZPPtr1 bit #S.MOUSE.S.MOVE beq .8 - lda WND.SysBar+S.OBJ.Y1 + ldx WND.Stack.Top + beq .2 + +* lda WND.Stack-1,x +* jsr MOU.InObjA + + + +.2 lda WND.SysBar+S.OBJ.Y1 ldy #S.MOUSE.Y1 cmp (ZPPtr1),y lda WND.SysBar+S.OBJ.Y1+1 iny sbc (ZPPtr1),y - bcs .1 + bcs .7 jmp SYSBAR.Enter -.1 jmp SYSBAR.Leave +.7 jmp SYSBAR.Leave .8 clc rts +.9 sec +.99 rts +*-------------------------------------- +MOU.InObjA >SYSCALL GetMemPtr +MOU.InObjyA jsr OBJ.GetInCache + + ldy #S.MOUSE.X1 + lda (ZPPtr1),y + cmp OBJ.Cache+S.OBJ.X1 + iny + lda (ZPPtr1),y + cmp OBJ.Cache+S.OBJ.X1+1 + bcc .9 + + iny #S.MOUSE.Y1 + lda (ZPPtr1),y + cmp OBJ.Cache+S.OBJ.Y1 + iny + lda (ZPPtr1),y + cmp OBJ.Cache+S.OBJ.Y1+1 + bcc .9 + + iny #S.MOUSE.X2 + lda (ZPPtr1),y + cmp OBJ.Cache+S.OBJ.X2 + iny + lda (ZPPtr1),y + cmp OBJ.Cache+S.OBJ.X2+1 + bcs .99 + + iny #S.MOUSE.Y2 + lda (ZPPtr1),y + cmp OBJ.Cache+S.OBJ.Y2 + iny + lda (ZPPtr1),y + cmp OBJ.Cache+S.OBJ.Y2+1 + rts + .9 sec .99 rts *-------------------------------------- diff --git a/LIB/LIBGUI.S.txt b/LIB/LIBGUI.S.txt index 8609e6d5..be6188c0 100644 --- a/LIB/LIBGUI.S.txt +++ b/LIB/LIBGUI.S.txt @@ -12,6 +12,9 @@ NEW .INB inc/libgui.i *-------------------------------------- WND.MAX .EQ 64 +MENU.MAX .EQ 4 +MENU.LMargin .EQ 3 +MENU.RMargin .EQ 3 *-------------------------------------- .MA SWAP16 lda ]1 @@ -135,7 +138,6 @@ L.SYSX7 .DA SYSX7 L.SYSX7B .DA SYSX7B L.IOCTL .DA IOCTL L.DCB.GFX .DA DCB.GFX -L.KEYSTRING .DA KEYSTRING L.MouseClamp .DA MouseClamp L.CB.PTR .DA CB.PTR L.CB.Buf .DA CB.Buf @@ -391,7 +393,6 @@ IOCTL .BS S.IOCTL DCB.GFX .BS S.DCB.GFX MOUSEDATA .BS S.MOUSE *-------------------------------------- -KEYSTRING .BS 11 Ctrl-O-C-K\0 (11 max) MouseClamp .BS 8 *-------------------------------------- CB.PTR .DA #S.CB.CMD.BITBLT @@ -404,6 +405,9 @@ CB.Buf .BS S.CB+1 +Ending 0 CB.Cache .BS S.CB OBJ.Cache .BS S.OBJ *-------------------------------------- +MENU.Stack.Top .BS 1 +MENU.Stack .BS MENU.MAX +*-------------------------------------- WND.Stack.Top .BS 1 WND.Stack .BS WND.MAX *-------------------------------------- @@ -422,58 +426,64 @@ WND.SysBar.Time.X1 .BS 2 WND.SysBar.bA2osX .BS 1 WND.SysBar.2osX .AZ "2osX" *-------------------------------------- -KEY.Ctrl .AZ "Ctrl-" -*-------------------------------------- -MENU.Sys .DA #.1-* next +MENU.Sys +.1 .DA #.2-* next .DA #S.MITEM.F.ITEM F .DA #0 S .DA #2 ID .DA BM.ID.APPLE pICON - .DA #S.MITEM.KEYMOD.CA+S.MITEM.KEYMOD.OA+S.MITEM.KEYMOD.CTRL + .DA #S.MITEM.KEYMOD.CTRL+S.MITEM.KEYMOD.OA+S.MITEM.KEYMOD.CA .DA #'A' + .DA #.11-.1 .AZ "About..." - -.1 .DA #.2-* next - .DA #S.MITEM.F.SEP +.11 .AS "Ctrl-" + .DA #1,#'-',#2,#'-',#'A',#0 .2 .DA #.3-* next - .DA #S.MITEM.F.SUBMENU F - .DA #0 S - .DA #0 ID - .DA 0 pICON - .DA 0 pMENU - .AZ "Programs" - + .DA #S.MITEM.F.SEP + .3 .DA #.4-* next .DA #S.MITEM.F.SUBMENU F .DA #0 S .DA #0 ID .DA 0 pICON .DA 0 pMENU - .AZ "Settings" + .DA #0 + .AZ "Programs" .4 .DA #.5-* next + .DA #S.MITEM.F.SUBMENU F + .DA #0 S + .DA #0 ID + .DA 0 pICON + .DA 0 pMENU + .DA #0 KEYSTR + .AZ "Settings" + +.5 .DA #.6-* next .DA #S.MITEM.F.SEP -.5 .DA #.6-* next +.6 .DA #.7-* next .DA #S.MITEM.F.ITEM F .DA #0 S .DA #8 ID .DA 0 pICON .DA #0 .DA #0 + .DA #0 KEYSTR .AZ "Search..." -.6 .DA #.7-* next +.7 .DA #.8-* next .DA #S.MITEM.F.ITEM F .DA #0 S .DA #10 ID .DA 0 pICON - .DA #S.MITEM.KEYMOD.OA + .DA #S.MITEM.KEYMOD.CTRL+S.MITEM.KEYMOD.OA .DA #'R' + .DA #.77-.7 .AZ "Run..." - -.7 .DA #0 +.77 .AZ "Ctrl-R" +.8 .DA #0 *-------------------------------------- PREFS.BESTVIEWEDX .DA #$FC PREFS.MENUCOLOR .DA #C.WHITE