From e146c6086d17c345523e2642614f70aabf0af37f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Tue, 29 Sep 2020 17:37:26 +0200 Subject: [PATCH] Kernel 0.94 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes DRV/DHGR.DRV.S.OSD.txt | 6 +- INC/LIBGUI.I.txt | 34 ++++++---- LIB/LIBGUI.S.FON.txt | 7 +++ LIB/LIBGUI.S.MENU.txt | 91 ++++++++++++++++++++++++--- LIB/LIBGUI.S.WND.txt | 121 ++++++++++++++++++++++++++++++------ LIB/LIBGUI.S.txt | 21 ++++--- SBIN/GUI.S.txt | 130 +++++++++++++++++++++++---------------- 8 files changed, 303 insertions(+), 107 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 99db5132ad63f8e83c2bde5b074878c0c2e6f8d2..3c75fa084f690d7cc466c3738d81061ec5ddc589 100644 GIT binary patch delta 17494 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 S{{Vjg{sdeT4wCCa?*9Ya=Rz(3 delta 14680 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 diff --git a/DRV/DHGR.DRV.S.OSD.txt b/DRV/DHGR.DRV.S.OSD.txt index 6e00c343..74e3a6ee 100644 --- a/DRV/DHGR.DRV.S.OSD.txt +++ b/DRV/DHGR.DRV.S.OSD.txt @@ -213,7 +213,7 @@ OSD.GETTEXTSIZE clc lda CBX.Cache+S.CB.SrcW ldx CBX.Cache+S.CB.SrcW+1 ldy CBX.Cache+S.CB.SrcH - bcc OSD.DRAWTEXT.RTS + bcc OSD.GETRECTBUFSIZE.RTS sta DstBM.Cache+S.BM.W stx DstBM.Cache+S.BM.W+1 @@ -224,7 +224,7 @@ OSD.GETTEXTSIZE clc sta DstBM.Cache+S.BM.F jsr OSD.BM.Create - bcs OSD.DRAWTEXT.RTS + bcs OSD.GETRECTBUFSIZE.RTS sta OSD.DRAWTEXT.END+1 save hBM, ZPDstBMPtr=BMData >LDYA CBX.Cache+S.CB.TxtPtr @@ -263,7 +263,7 @@ OSD.DRAWTEXT.LOOP adc GWORD Update Col Index in BM sta GWORD bra OSD.DRAWTEXT.LOOP -OSD.DRAWTEXT.RTS + OSD.DRAWTEXT.END lda #$FF SELF MODIFIED sta CBX.Cache+S.CB.SrcPtr Save hBM in Src CB diff --git a/INC/LIBGUI.I.txt b/INC/LIBGUI.I.txt index a8d60b8d..57af569e 100644 --- a/INC/LIBGUI.I.txt +++ b/INC/LIBGUI.I.txt @@ -104,9 +104,9 @@ S.WND.F.BORDER .EQ %00100000 S.WND.F.MODAL .EQ %01000000 S.WND.F.SYSMODAL .EQ %10000000 * -S.WND.S.HASTOPBAR .EQ %00000001 -S.WND.S.HASMENUBAR .EQ %00000010 -S.WND.S.HASSTATUSBAR .EQ %00000100 +S.WND.S.HASTBAR .EQ %00000001 +S.WND.S.HASMBAR .EQ %00000010 +S.WND.S.HASSBAR .EQ %00000100 S.WND.S.MAXIMIZED .EQ %00001000 S.WND.S.MINIMIZED .EQ %00010000 S.WND.S.ACTIVE .EQ %01000000 @@ -114,7 +114,7 @@ S.WND.S.ACTIVE .EQ %01000000 S.WND.MinW .EQ S.OBJ S.WND.MinH .EQ S.OBJ+2 S.WND.TITLE .EQ S.OBJ+4 -S.WND.MENUBAR .EQ S.OBJ+6 +S.WND.MBAR .EQ S.OBJ+6 S.WND.STATUS .EQ S.OBJ+8 S.WND.ICON .EQ S.OBJ+10 S.WND.BGCOLOR .EQ S.OBJ+12 @@ -122,17 +122,25 @@ S.WND.BGBM .EQ S.OBJ+14 S.WND.hCUR .EQ S.OBJ+16 S.WND.TitleX1 .EQ S.OBJ+18 S.WND.TitleX2 .EQ S.OBJ+20 -S.WND.InnerW .EQ S.OBJ+22 -S.WND.InnerH .EQ S.OBJ+24 -S.WND.DocW .EQ S.OBJ+26 -S.WND.DocH .EQ S.OBJ+28 -S.WND.DocX .EQ S.OBJ+30 -S.WND.DocY .EQ S.OBJ+32 +S.WND.TBAR.Y2 .EQ S.OBJ+22 +S.WND.MBAR.Y2 .EQ S.OBJ+24 +S.WND.SBAR.Y1 .EQ S.OBJ+26 +S.WND.InnerW .EQ S.OBJ+28 +S.WND.InnerH .EQ S.OBJ+30 +S.WND.DocW .EQ S.OBJ+32 +S.WND.DocH .EQ S.OBJ+34 +S.WND.DocX .EQ S.OBJ+36 +S.WND.DocY .EQ S.OBJ+38 * -S.WND .EQ S.OBJ+34 +S.WND .EQ S.OBJ+40 *-------------------------------------- -S.MBAR.MENULIST .EQ S.OBJ -* ... S.MENUs... +S.MBAR.NEXT .EQ 0 +S.MBAR.S .EQ 1 +S.MBAR.X1 .EQ 2 +S.MBAR.XT .EQ 4 +S.MBAR.X2 .EQ 6 +S.MBAR.MENU .EQ 8 +S.MBAR.TEXT .EQ 10 *-------------------------------------- S.MENU.hSAVEBUF .EQ S.OBJ S.MENU.ITEMLIST .EQ S.OBJ+2 diff --git a/LIB/LIBGUI.S.FON.txt b/LIB/LIBGUI.S.FON.txt index 33218639..8a36dc2a 100644 --- a/LIB/LIBGUI.S.FON.txt +++ b/LIB/LIBGUI.S.FON.txt @@ -33,6 +33,13 @@ FON.Load >PUSHYA >SYSCALL2 LoadStkObj rts *-------------------------------------- +FON.GetTextSize >STYA CB.CACHE+S.CB.TxtPtr + stx CB.CACHE+S.CB.hFont + + lda #S.CB.CMD.GETTEXTSIZE+S.CB.CMD.OSD + sta CB.CACHE+S.CB.CMD + jmp GFXWrite.CB +*-------------------------------------- MAN SAVE usr/src/lib/libgui.s.fon LOAD usr/src/lib/libgui.s diff --git a/LIB/LIBGUI.S.MENU.txt b/LIB/LIBGUI.S.MENU.txt index 64aad8ad..18937320 100644 --- a/LIB/LIBGUI.S.MENU.txt +++ b/LIB/LIBGUI.S.MENU.txt @@ -16,23 +16,98 @@ MENU.New >STYA ZPPtr1 MENU.Paint MENU.Close *-------------------------------------- -MENU.MenubarInit - >STYA ZPPtr1 +MENU.MBarInit >STYA ZPPtr1 + stz DX + stz DX+1 +.1 lda (ZPPtr1) + beq .8 + ldy #S.MBAR.TEXT + lda (ZPPtr1),y + pha + iny + lda (ZPPtr1),y + ply + + ldx hSYSFONB + jsr FON.GetTextSize + + ldy #S.MBAR.X1 + + lda DX + sta (ZPPtr1),y + + iny + + lda DX+1 + sta (ZPPtr1),y + + iny #S.MBAR.XT + + lda DX + clc + adc #PREFS.MBARXMARGIN + sta DX + + sta (ZPPtr1),y + + iny + lda DX+1 + adc #0 + sta DX+1 + sta (ZPPtr1),y + + lda DX + clc + adc CB.CACHE+S.CB.SrcX + sta DX + + lda DX+1 + adc CB.CACHE+S.CB.SrcX+1 + sta DX+1 + + iny #S.MBAR.X2 + + lda DX + clc + adc #PREFS.MBARXMARGIN + sta DX + + sta (ZPPtr1),y + + iny + + lda DX+1 + adc #0 + sta DX+1 + sta (ZPPtr1),y + + lda (ZPPtr1) + sec + adc ZPPtr1 + sta ZPPtr1 + bcc .1 + inc ZPPtr1+1 + bra .1 + +.8 lda #$80 + + ldy #S.MBAR.S + sta (ZPMENUPtr),y clc rts *-------------------------------------- -MENUBAR.New -MENUBAR.Paint -MENUBAR.Close +MBAR.New +MBAR.Paint +MBAR.Close *-------------------------------------- -MENUITEM.New -MENUITEM.Paint -MENUITEM.Close +MITEM.New +MITEM.Paint +MITEM.Close clc rts diff --git a/LIB/LIBGUI.S.WND.txt b/LIB/LIBGUI.S.WND.txt index d4ee1141..66499d4a 100644 --- a/LIB/LIBGUI.S.WND.txt +++ b/LIB/LIBGUI.S.WND.txt @@ -186,7 +186,7 @@ WND.GetProp >PULLA lda (ZPWNDPtr),y ply - rts +WND.GetProp.RTS rts *-------------------------------------- * A = hWND *-------------------------------------- @@ -196,7 +196,19 @@ WND.Show >SYSCALL2 GetMemPtr jsr OBJ.SetX2Y2 jsr GetCBBuf - bcs .9 + bcs WND.GetProp.RTS + + ldy #S.OBJ.Y1 + lda (ZPWNDPtr),y + tax + iny + lda (ZPWNDPtr),y + + ldy #S.WND.TBAR.Y2+1 + sta (ZPWNDPtr),y + txa + dey + sta (ZPWNDPtr),y stz Counter X stz Counter+1 Y @@ -222,13 +234,23 @@ WND.Show >SYSCALL2 GetMemPtr adc SYSFON.Hp2 sta Counter+1 - lda #S.WND.S.HASTOPBAR + ldy #S.WND.TBAR.Y2 + lda (ZPWNDPtr),y + clc + adc SYSFON.Hp2 + sta (ZPWNDPtr),y + iny + lda (ZPWNDPtr),y + adc #0 + sta (ZPWNDPtr),y + + lda #S.WND.S.HASTBAR jsr WND.SetStatus jsr WND.PaintTopBar bcs .9 -.3 ldy #S.WND.MENUBAR+1 +.3 ldy #S.WND.MBAR+1 lda (ZPWNDPtr),y beq .7 @@ -237,10 +259,25 @@ WND.Show >SYSCALL2 GetMemPtr adc SYSFON.Hp2 sta Counter+1 - lda #S.WND.S.HASMENUBAR + ldy #S.WND.TBAR.Y2 + lda (ZPWNDPtr),y + clc + adc SYSFON.Hp2 + tax + + iny + lda (ZPWNDPtr),y + adc #0 + ldy #S.WND.MBAR.Y2+1 + sta (ZPWNDPtr),y + txa + dey + sta (ZPWNDPtr),y + + lda #S.WND.S.HASMBAR jsr WND.SetStatus - jsr WND.PaintMenuBar + jsr WND.PaintMBar .7 ldy #S.WND.STATUS+1 lda (ZPWNDPtr),y @@ -251,10 +288,10 @@ WND.Show >SYSCALL2 GetMemPtr adc SYSFON.Hp2 sta Counter+1 - lda #S.WND.S.HASSTATUSBAR + lda #S.WND.S.HASSBAR jsr WND.SetStatus - jsr WND.PaintStatusBar + jsr WND.PaintSBar .8 lda #0 jsr PutA2CBBuf @@ -377,14 +414,14 @@ WND.PaintTopBar lda #S.CB.CMD.FILLRECT lda #S.CB.M.C16 jsr PutA2CBBuf - ldx PREFS.TOPBARCOLORI + ldx PREFS.TBARCOLORI ldy #S.OBJ.S lda (ZPWNDPtr),y and #S.WND.S.ACTIVE beq .10 - ldx PREFS.TOPBARCOLORA + ldx PREFS.TBARCOLORA .10 txa jsr PutA2CBBuf @@ -661,28 +698,72 @@ WND.PaintTopBarTitle .9 rts *-------------------------------------- -WND.PaintMenuBar - ldy #S.WND.MENUBAR +WND.PaintMBar ldy #S.WND.MBAR lda (ZPWNDPtr),y sta ZPMENUPtr iny lda (ZPWNDPtr),y sta ZPMENUPtr+1 - lda (ZPMENUPtr) - bne .1 + ldy #S.MBAR.S + lda (ZPMENUPtr),y + bmi .1 >LDYA ZPMENUPtr - jsr MENU.MenubarInit + jsr MENU.MBarInit + +.1 jsr CB.Clear + + lda #S.CB.CMD.FILLRECT + 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.MBARCOLOR + sta CB.Cache+S.CB.OP.COLOR + + ldy #S.OBJ.X1 + lda (ZPWNDPtr),y + sta CB.Cache+S.CB.X1 + + iny + lda (ZPWNDPtr),y + sta CB.Cache+S.CB.X1+1 + + ldy #S.OBJ.X2 + lda (ZPWNDPtr),y + sta CB.Cache+S.CB.X2 + + iny + lda (ZPWNDPtr),y + sta CB.Cache+S.CB.X2+1 + + ldy #S.WND.TBAR.Y2 + lda (ZPWNDPtr),y + sta CB.Cache+S.CB.Y1 + + iny + lda (ZPWNDPtr),y + sta CB.Cache+S.CB.Y1+1 + + iny #S.WND.MBAR.Y2 + lda (ZPWNDPtr),y + sta CB.Cache+S.CB.Y2 + + iny + lda (ZPWNDPtr),y + sta CB.Cache+S.CB.Y2+1 + + jsr PutCBCache2CBBuf + -.1 - clc +.8 clc .9 rts *-------------------------------------- -WND.PaintStatusBar - lda #S.CB.CMD.HLINE +WND.PaintSBar lda #S.CB.CMD.HLINE jsr WND.PaintBorders.H ldy #S.OBJ.X1 @@ -760,7 +841,7 @@ WND.PaintStatusBar sta CB.Cache+S.CB.OP lda #S.CB.M.MONO sta CB.Cache+S.CB.M - lda #C.WHITE + lda PREFS.SBARCOLOR sta CB.Cache+S.CB.OP.COLOR lda CB.Cache+S.CB.X1 diff --git a/LIB/LIBGUI.S.txt b/LIB/LIBGUI.S.txt index 7d7adaa9..1f8b30bf 100644 --- a/LIB/LIBGUI.S.txt +++ b/LIB/LIBGUI.S.txt @@ -130,7 +130,7 @@ J.Cmds .DA DrawLine .DA DrawText2 *-------------------------------------- J.OBJ .DA J.WND - .DA J.MENUBAR + .DA J.MBAR .DA J.MENU .DA J.MENUITEM .DA J.BUT @@ -140,17 +140,17 @@ J.WND .DA WND.New .DA WND.Paint .DA WND.Close *-------------------------------------- -J.MENUBAR .DA MENUBAR.New - .DA MENUBAR.Paint - .DA MENUBAR.Close +J.MBAR .DA MBAR.New + .DA MBAR.Paint + .DA MBAR.Close *-------------------------------------- J.MENU .DA MENU.New .DA MENU.Paint .DA MENU.Close *-------------------------------------- -J.MENUITEM .DA MENUITEM.New - .DA MENUITEM.Paint - .DA MENUITEM.Close +J.MENUITEM .DA MITEM.New + .DA MITEM.Paint + .DA MITEM.Close *-------------------------------------- J.BUT .DA BUT.New .DA BUT.Paint @@ -457,9 +457,12 @@ MENU.Sys .DA #2 ID .DA #0 *-------------------------------------- PREFS.BESTVIEWEDX .DA #$FC +PREFS.MBARXMARGIN .DA #10 PREFS.BORDERCOLOR .DA #C.BLACK -PREFS.TOPBARCOLORA .DA #C16.D.BLUE -PREFS.TOPBARCOLORI .DA #C16.L.BLUE +PREFS.TBARCOLORA .DA #C16.D.BLUE +PREFS.TBARCOLORI .DA #C16.L.BLUE +PREFS.MBARCOLOR .DA #C.WHITE +PREFS.SBARCOLOR .DA #C.WHITE *-------------------------------------- MAN SAVE usr/src/lib/libgui.s diff --git a/SBIN/GUI.S.txt b/SBIN/GUI.S.txt index 2a852461..a1b45366 100644 --- a/SBIN/GUI.S.txt +++ b/SBIN/GUI.S.txt @@ -44,7 +44,7 @@ CS.START cld L.LIBGUI .DA LIBGUI L.MouseData .DA MouseData L.WND.TITLE .DA WND.TITLE -L.WND.MENUBAR .DA WND.MENUBAR +L.WND.MBAR .DA WND.MBAR L.WND.STATUS .DA WND.STATUS .DA 0 *-------------------------------------- @@ -128,8 +128,8 @@ WND.Test >PUSHBI S.WND.F.RESIZE+S.WND.F.MOVE+S.WND.F.CLOSE+S.WND.F.MAX+S.WND.F. lda hWND >PUSHA - >PUSHBI S.WND.MENUBAR - >PUSHW L.WND.MENUBAR + >PUSHBI S.WND.MBAR + >PUSHW L.WND.MBAR >LIBCALL hLIBGUI,LIBGUI.WND.SetProp lda hWND @@ -155,63 +155,85 @@ MouseData .BS S.MOUSE hWND .BS 1 WND.TITLE .AZ "Window Title" *-------------------------------------- -WND.MENUBAR .DA #0 - .DA #0 - .DA #.1-* - .AZ "File" - .DA #02 ID - .DA #S.MITEM.KEYMOD.CTRL - .DA #'N' - .AZ "New" - .DA #04 ID - .DA #S.MITEM.KEYMOD.CTRL - .DA #'O' - .AZ "Open..." - .DA #06 ID - .DA #S.MITEM.KEYMOD.CTRL - .DA #'S' - .AZ "Save" - .DA #08 ID - .DA #S.MITEM.KEYMOD.OA+S.MITEM.KEYMOD.CTRL - .DA #'S' - .AZ "Save As..." - .DA #10 ID - .DA #S.MITEM.KEYMOD.CTRL - .DA #'Q' - .AZ "Quit" - .DA #0 -.1 .DA #.2-* +WND.MBAR .DA #.1-* next + .DA #0 status + .DA 0 X1 + .DA 0 XT + .DA 0 X2 + .DA 0 MENU + .AZ "File" +.1 .DA #.2-* next + .DA #0 status + .DA 0 X1 + .DA 0 XT + .DA 0 X2 + .DA 0 MENU .AZ "Edit" - .DA #12 ID - .DA #S.MITEM.KEYMOD.OA - .DA #'X' - .AZ "Cut" - .DA #14 ID - .DA #S.MITEM.KEYMOD.OA - .DA #'C' - .AZ "Copy" - .DA #16 ID - .DA #S.MITEM.KEYMOD.OA - .DA #'V' - .AZ "Paste" - .DA #0 -.2 .DA #.3-* +.2 .DA #.3-* next + .DA #0 status + .DA 0 X1 + .DA 0 XT + .DA 0 X2 + .DA 0 MENU .AZ "Options" - .DA #18 ID - .DA #0 - .DA #0 - .AZ "Check Me" - .DA #0 -.3 .DA #.4-* +.3 .DA #.4-* next + .DA #0 status + .DA 0 X1 + .DA 0 XT + .DA 0 X2 + .DA 0 MENU .AZ "?" - .DA #20 ID - .DA #0 - .DA #0 - .AZ "About..." - .DA #0 .4 .DA #0 *-------------------------------------- WND.STATUS .AZ "Window status bar message" +*-------------------------------------- +WND.MENU.FILE .DA #02 ID + .DA #S.MITEM.KEYMOD.CTRL + .DA #'N' + .AZ "New" + .DA #04 ID + .DA #S.MITEM.KEYMOD.CTRL + .DA #'O' + .AZ "Open..." + .DA #06 ID + .DA #S.MITEM.KEYMOD.CTRL + .DA #'S' + .AZ "Save" + .DA #08 ID + .DA #S.MITEM.KEYMOD.OA+S.MITEM.KEYMOD.CTRL + .DA #'S' + .AZ "Save As..." + .DA #10 ID + .DA #S.MITEM.KEYMOD.CTRL + .DA #'Q' + .AZ "Quit" + .DA #0 +*-------------------------------------- +WND.MENU.EDIT .DA #12 ID + .DA #S.MITEM.KEYMOD.OA + .DA #'X' + .AZ "Cut" + .DA #14 ID + .DA #S.MITEM.KEYMOD.OA + .DA #'C' + .AZ "Copy" + .DA #16 ID + .DA #S.MITEM.KEYMOD.OA + .DA #'V' + .AZ "Paste" + .DA #0 +*-------------------------------------- +WND.MENU.OPTIONS .DA #18 ID + .DA #0 + .DA #0 + .AZ "Check Me" + .DA #0 +*-------------------------------------- +WND.MENU.HELP .DA #20 ID + .DA #0 + .DA #0 + .AZ "About..." + .DA #0 *-------------------------------------- .DUMMY .OR 0