From 0b1112e5a2e2ebb90bdcdbaee0916d510b3afe25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Thu, 10 Jan 2019 16:26:58 +0000 Subject: [PATCH] Kernel 0.92 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes DRV/DHGR.DRV.S.txt | 45 +++++++- DRV/MOUSE.DRV.S.txt | 5 +- INC/GUI.I.txt | 231 --------------------------------------- INC/LIBGUI.I.txt | 217 +++++++++++++++++++++++++++++++++++- LIB/LIBGUI.G.WND.txt | 1 - LIB/LIBGUI.S.BUT.txt | 4 +- LIB/LIBGUI.S.CLIP.txt | 46 ++++---- LIB/LIBGUI.S.CUR.txt | 12 +- LIB/LIBGUI.S.DRAW.txt | 18 +-- LIB/LIBGUI.S.MENU.txt | 16 +-- LIB/LIBGUI.S.WND.txt | 62 ++++++----- LIB/LIBGUI.S.txt | 112 ++++++++++++++----- SBIN/GUI.S.txt | 1 - 14 files changed, 431 insertions(+), 339 deletions(-) delete mode 100644 INC/GUI.I.txt diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 60b3bf24906417ee81a863ba0bb7633e3a582a2e..c3392e4fb4f0863752c7bb2f6214b7efcf11c0b8 100644 GIT binary patch delta 443994 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 delta 235850 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 L.MSG.DETECT .1 php sei - + sta SET80STORE sta SETPAGE2 ldx $400 Save Aux $400 @@ -85,7 +86,6 @@ Dev.Detect >LDYA L.MSG.DETECT plp - >LDYA L.MSG.DETECT.EVE bit DCB+S.DCB.GFX.S @@ -106,6 +106,45 @@ Dev.Detect >LDYA L.MSG.DETECT >PUSHW L.FD.DEV.NAME >LDYA L.FD.DEV >SYSCALL MKDEV + bcs .9 + + php + sei + >LDYAI $4000 + >STYA $800 + sta SETWRITEAUX + >STYA $800 + sta CLRWRITEAUX + + sta SET80STORE + ldx #191 + lda #0 + +.4 ldy BASEL,x + sty ZPPtr + ldy BASEH,x + sty ZPPtr+1 + + sta SETPAGE2 + + ldy #39 + +.5 sta (ZPPtr),y + dey + bpl .5 + + sta CLRPAGE2 + + ldy #39 + +.6 sta (ZPPtr),y + dey + bpl .6 + + dex + bpl .4 + + plp .9 rts *-------------------------------------- diff --git a/DRV/MOUSE.DRV.S.txt b/DRV/MOUSE.DRV.S.txt index d6900868..6d8e7ce4 100644 --- a/DRV/MOUSE.DRV.S.txt +++ b/DRV/MOUSE.DRV.S.txt @@ -8,9 +8,9 @@ AUTO 4,1 *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I + .INB INC/IO.I .INB INC/MLI.E.I .INB INC/XY.MOUSE.I - .INB INC/GUI.I .INB INC/LIBGUI.I *-------------------------------------- ZPSlotPtr .EQ ZPDRV @@ -234,6 +234,9 @@ READ >STYA ZPBufPtr NON STANDARD php sei + sta SET80STORE + sta CLRPAGE2 + * ldy #READMOUSE DONE BY IRQ MANAGER * jsr GOMOUSE diff --git a/INC/GUI.I.txt b/INC/GUI.I.txt deleted file mode 100644 index 8d4cc905..00000000 --- a/INC/GUI.I.txt +++ /dev/null @@ -1,231 +0,0 @@ -NEW -PREFIX -AUTO 4,1 - .LIST OFF -*-------------------------------------- -* GC : Graphic Context -*-------------------------------------- -S.GC.hParentGC .EQ 0 -S.GC.hDev .EQ 1 -S.GC.hMem .EQ 2 -* -S.GC.X1 .EQ 4 -S.GC.Y1 .EQ 6 -S.GC.X2 .EQ 8 -S.GC.Y2 .EQ 10 -S.GC.W .EQ 12 -S.GC.H .EQ 14 - -S.GC.Cursor .EQ 15 -S.GC.Color .EQ 16 -S.GC.hFont .EQ 17 -S.GC.hBrush .EQ 18 -* -S.GC .EQ 20 -*-------------------------------------- -S.CB.CMD .EQ 0 -S.CB.CMD.SETPIXEL .EQ 0 -S.CB.CMD.GETPIXEL .EQ 2 -S.CB.CMD.HLINE .EQ 4 -S.CB.CMD.VLINE .EQ 6 -S.CB.CMD.FILLRECT .EQ 8 -S.CB.CMD.BITBLT .EQ 10 -S.CB.CMD.GETRECTBUFSIZE .EQ 12 -S.CB.CMD.DRAWLINE .EQ 14 -S.CB.CMD.DRAWTEXT .EQ 16 -S.CB.CMD.GETTEXTSIZE .EQ 18 -S.CB.OP .EQ 1 -S.CB.OP.XOR .EQ 0 screen EOR bitmap -> Screen -S.CB.OP.SET .EQ 2 replace screen with bitmap -S.CB.OP.ORA .EQ 4 combine screen & bitmap -> Screen -S.CB.OP.MASK .EQ %00001000 Apply BitMap mask before painting -S.CB.OP.SAVE .EQ %00010000 Save Screen to DstPtr before painting -S.CB.OP.RESTORE .EQ %00100000 Restore Screen From DstPtr -S.CB.OP.COLOR .EQ %01000000 Assume BitMap is COLOR - -S.CB.OP.F.B .EQ %00010000 -S.CB.OP.F.I .EQ %00100000 -S.CB.OP.F.U .EQ %01000000 -S.CB.OP.F.G .EQ %10000000 -S.CB.M .EQ 2 -S.CB.M.MONO .EQ %00000001 b/w (1 bit/pixel) -*S.CB.M.C4 .EQ %00000010 -*S.CB.M.C8 .EQ %00000100 -S.CB.M.C16 .EQ %00001000 16 colors (4 bits/pixel) -*S.CB.M.C256 .EQ %00010000 256 colors (8 bits/pixel) -S.CB.COLOR .EQ 3 xPIXEL,xLINE,FILLRECT -S.CB.hFont .EQ 3 DRAWTEXT -S.CB.X1 .EQ 4 xPIXEL,xLINE,FILLRECT,BITBLT,GETRECTBUFSIZE,DRAWLINE -S.CB.Y1 .EQ 6 xPIXEL,xLINE,FILLRECT,BITBLT,GETRECTBUFSIZE,DRAWLINE -S.CB.X2 .EQ 8 VLINE,FILLRECT,DRAWLINE -S.CB.Y2 .EQ 10 HLINE,FILLRECT,DRAWLINE -S.CB.SrcW .EQ 8 BITBLT,GETRECTBUFSIZE -S.CB.SrcH .EQ 10 BITBLT,GETRECTBUFSIZE -S.CB.DstX .EQ 12 BITBLT,DRAWTEXT -S.CB.DstY .EQ 14 BITBLT,DRAWTEXT -S.CB.SrcPtr .EQ 16 BITBLT -S.CB.TxtPtr .EQ 16 DRAWTEXT -S.CB.DstPtr .EQ 18 BITBLT -* -S.CB .EQ 20 -*-------------------------------------- -CUR.T.ARROW .EQ 0 -CUR.T.RESIZEX .EQ 2 -CUR.T.RESIZEY .EQ 4 -CUR.T.RESIZEXY1 .EQ 6 -CUR.T.RESIZEXY2 .EQ 8 -CUR.T.CROSS .EQ 10 -CUR.T.TEXT .EQ 12 -CUR.T.WAIT .EQ 14 -*-------------------------------------- -S.MOUSE.X1 .EQ 0 -S.MOUSE.Y1 .EQ 2 -S.MOUSE.X2 .EQ 4 -S.MOUSE.Y2 .EQ 6 -S.MOUSE.S .EQ 8 -S.MOUSE.S.UP .EQ %00000001 -S.MOUSE.S.DOWN .EQ %00000010 -S.MOUSE.S.MOVE .EQ %00000100 -S.MOUSE.S.DRAGSTART .EQ %00001000 -S.MOUSE.S.DRAGEND .EQ %00010000 -S.MOUSE.S.CLK .EQ %00100000 -S.MOUSE.S.DCLK .EQ %01000000 -S.MOUSE.KEYMOD .EQ 9 -S.MOUSE.KEYMOD.OA .EQ %00000001 -S.MOUSE.KEYMOD.CA .EQ %00000010 -* -S.MOUSE .EQ 10 -*-------------------------------------- -S.POINT.X .EQ 0 -S.POINT.Y .EQ 2 -* -S.POINT .EQ 4 -*-------------------------------------- -S.RECT.X1 .EQ 0 -S.RECT.Y1 .EQ 2 -S.RECT.X2 .EQ 4 -S.RECT.Y2 .EQ 6 -* -S.RECT .EQ 8 -*-------------------------------------- -S.OBJ.T .EQ 0 -S.OBJ.T.SCREEN .EQ 0 -S.OBJ.T.WND .EQ 2 -S.OBJ.T.MENUBAR .EQ 4 -S.OBJ.T.MENU .EQ 6 -S.OBJ.T.MITEM .EQ 8 -S.OBJ.T.BUT .EQ 10 -S.OBJ.T.TEXT .EQ 12 - -S.OBJ.F .EQ 1 -S.OBJ.S .EQ 2 -S.OBJ.ID .EQ 3 -S.OBJ.hOWNER .EQ 4 -S.OBJ.hPARENT .EQ 6 - -S.OBJ.X .EQ 8 -S.OBJ.Y .EQ 10 -S.OBJ.W .EQ 12 -S.OBJ.H .EQ 14 -*-------------------------------------- -S.WND.F.RESIZE .EQ %00000001 -S.WND.F.MOVE .EQ %00000010 -S.WND.F.CLOSE .EQ %00000100 -S.WND.F.MAX .EQ %00001000 -S.WND.F.MIN .EQ %00010000 -S.WND.F.NOBORDER .EQ %00100000 -S.WND.F.MODAL .EQ %01000000 -S.WND.F.SYSMODAL .EQ %10000000 -* -S.WND.S.MAX .EQ %00001000 -S.WND.S.MIN .EQ %00010000 -* -S.WND.MinW .EQ 16 -S.WND.MinH .EQ 18 - -S.WND.hTITLE .EQ 20 -S.WND.hMENUBAR .EQ 22 -S.WND.hBKCOLOR .EQ 24 -S.WND.hBKBM .EQ 26 -S.WND.hCUR .EQ 28 -S.WND.hSTATUS .EQ 30 -S.WND.hICON .EQ 32 -* -S.WND .EQ 34 -*-------------------------------------- -S.MENUBAR -*-------------------------------------- -S.MENU.hSAVEBUF .EQ 2 -* ... S.MITEMs... -*-------------------------------------- -*S.MITEM.F. .EQ %00000001 -*S.MITEM.F. .EQ %00000010 -*S.MITEM.F. .EQ %00000100 -*S.MITEM.F. .EQ %00001000 -*S.MITEM.F. .EQ %00010000 -S.MITEM.F.SEP .EQ %00100000 -S.MITEM.F.CHECKED .EQ %01000000 -S.MITEM.F.DISABLED .EQ %10000000 -S.MITEM.ID .EQ 1 -S.MITEM.hSUBM .EQ 2 -S.MITEM.hBM .EQ 3 -S.MITEM.HOTKEY .EQ 4 -S.MITEM.HOTKEY.CTRL .EQ %10000000 -S.MITEM.HOTKEY.OA .EQ %01000000 -S.MITEM.HOTKEY.CA .EQ %00100000 -S.MITEM.TEXTLEN .EQ 5 -S.MITEM.TEXT .EQ 6 CSTR -* ... -*-------------------------------------- -S.BUT.T .EQ 0 -S.BUT.F .EQ 1 -S.BUT.F.DISABLED .EQ %10000000 -S.BUT.S .EQ 2 -S.BUT.S.PUSHED .EQ %10000000 -S.BUT.ID .EQ 3 -S.BUT.hOWNER .EQ 4 -S.BUT.hPARENT .EQ 6 -S.BUT.X .EQ 8 -S.BUT.Y .EQ 10 -S.BUT.W .EQ 12 -S.BUT.H .EQ 14 -S.BUT.hBM .EQ 16 -S.BUT.TEXTX .EQ 18 -S.BUT.TEXTY .EQ 20 -S.BUT.TEXTLEN .EQ 22 -S.BUT.TEXT .EQ 23 -* ... -*-------------------------------------- -S.TEXT.T .EQ 0 -S.TEXT.F .EQ 1 -S.TEXT.F.DISABLED .EQ %10000000 -S.TEXT.ID .EQ 2 -S.TEXT.hBM .EQ 3 -S.TEXT.TEXTLEN .EQ 5 -S.TEXT.TEXT .EQ 6 -*-------------------------------------- -S.BM.F .EQ 0 -S.BM.F.BBP1 .EQ %00000001 -S.BM.F.BBP2 .EQ %00000010 -S.BM.F.BBP4 .EQ %00000100 -S.BM.F.BBP8 .EQ %00001000 -S.BM.RowBytes .EQ 1 -S.BM.W .EQ 2 -S.BM.H .EQ 4 -S.BM.MASK.OFS .EQ 6 -* -S.BM .EQ 8 -*-------------------------------------- -S.FON.F .EQ 0 -S.FON.Ascent .EQ 1 -S.FON.PixW .EQ 2 if 0, variable W -S.FON.PixH .EQ 3 -S.FON.First .EQ 4 -S.FON.Last .EQ 5 -S.FON.Default .EQ 6 -S.FON.Break .EQ 7 -* -S.FON .EQ 8 -*-------------------------------------- -MAN -SAVE INC/GUI.I diff --git a/INC/LIBGUI.I.txt b/INC/LIBGUI.I.txt index 856b8535..a33e78db 100644 --- a/INC/LIBGUI.I.txt +++ b/INC/LIBGUI.I.txt @@ -11,7 +11,222 @@ LIBGUI.HideCursor .EQ 10 LIBGUI.ShowCursor .EQ 12 LIBGUI.UpdateCursor .EQ 14 LIBGUI.ReadMouse .EQ 16 -LIBGUI.GetScreenGC .EQ 18 +*-------------------------------------- +* Resource Headers +*-------------------------------------- +S.BM.F .EQ 0 +S.BM.F.BBP1 .EQ %00000001 +S.BM.F.BBP2 .EQ %00000010 +S.BM.F.BBP4 .EQ %00000100 +S.BM.F.BBP8 .EQ %00001000 +S.BM.RowBytes .EQ 1 +S.BM.W .EQ 2 +S.BM.H .EQ 4 +S.BM.MASK.OFS .EQ 6 +* +S.BM .EQ 8 +*-------------------------------------- +S.FON.F .EQ 0 +S.FON.Ascent .EQ 1 +S.FON.PixW .EQ 2 if 0, variable W +S.FON.PixH .EQ 3 +S.FON.First .EQ 4 +S.FON.Last .EQ 5 +S.FON.Default .EQ 6 +S.FON.Break .EQ 7 +* +S.FON .EQ 8 +*-------------------------------------- +* Command Block +*-------------------------------------- +S.CB.CMD .EQ 0 +S.CB.CMD.SETPIXEL .EQ 0 +S.CB.CMD.GETPIXEL .EQ 2 +S.CB.CMD.HLINE .EQ 4 +S.CB.CMD.VLINE .EQ 6 +S.CB.CMD.FILLRECT .EQ 8 +S.CB.CMD.BITBLT .EQ 10 +S.CB.CMD.GETRECTBUFSIZE .EQ 12 +S.CB.CMD.DRAWLINE .EQ 14 +S.CB.CMD.DRAWTEXT .EQ 16 +S.CB.CMD.GETTEXTSIZE .EQ 18 +S.CB.OP .EQ 1 +S.CB.OP.XOR .EQ 0 screen EOR bitmap -> Screen +S.CB.OP.SET .EQ 2 replace screen with bitmap +S.CB.OP.ORA .EQ 4 combine screen & bitmap -> Screen +S.CB.OP.MASK .EQ %00001000 Apply BitMap mask before painting +S.CB.OP.SAVE .EQ %00010000 Save Screen to DstPtr before painting +S.CB.OP.RESTORE .EQ %00100000 Restore Screen From DstPtr +S.CB.OP.COLOR .EQ %01000000 Assume BitMap is COLOR + +S.CB.OP.F.B .EQ %00010000 +S.CB.OP.F.I .EQ %00100000 +S.CB.OP.F.U .EQ %01000000 +S.CB.OP.F.G .EQ %10000000 +S.CB.M .EQ 2 +S.CB.M.MONO .EQ %00000001 b/w (1 bit/pixel) +*S.CB.M.C4 .EQ %00000010 +*S.CB.M.C8 .EQ %00000100 +S.CB.M.C16 .EQ %00001000 16 colors (4 bits/pixel) +*S.CB.M.C256 .EQ %00010000 256 colors (8 bits/pixel) +S.CB.COLOR .EQ 3 xPIXEL,xLINE,FILLRECT +S.CB.hFont .EQ 3 DRAWTEXT +S.CB.X1 .EQ 4 xPIXEL,xLINE,FILLRECT,BITBLT,GETRECTBUFSIZE,DRAWLINE +S.CB.Y1 .EQ 6 xPIXEL,xLINE,FILLRECT,BITBLT,GETRECTBUFSIZE,DRAWLINE +S.CB.X2 .EQ 8 VLINE,FILLRECT,DRAWLINE +S.CB.Y2 .EQ 10 HLINE,FILLRECT,DRAWLINE +S.CB.SrcW .EQ 8 BITBLT,GETRECTBUFSIZE +S.CB.SrcH .EQ 10 BITBLT,GETRECTBUFSIZE +S.CB.DstX .EQ 12 BITBLT,DRAWTEXT +S.CB.DstY .EQ 14 BITBLT,DRAWTEXT +S.CB.SrcPtr .EQ 16 BITBLT +S.CB.TxtPtr .EQ 16 DRAWTEXT +S.CB.DstPtr .EQ 18 BITBLT +* +S.CB .EQ 20 +*-------------------------------------- +CUR.T.ARROW .EQ 0 +CUR.T.RESIZEX .EQ 2 +CUR.T.RESIZEY .EQ 4 +CUR.T.RESIZEXY1 .EQ 6 +CUR.T.RESIZEXY2 .EQ 8 +CUR.T.CROSS .EQ 10 +CUR.T.TEXT .EQ 12 +CUR.T.WAIT .EQ 14 +*-------------------------------------- +S.MOUSE.X1 .EQ 0 +S.MOUSE.Y1 .EQ 2 +S.MOUSE.X2 .EQ 4 +S.MOUSE.Y2 .EQ 6 +S.MOUSE.S .EQ 8 +S.MOUSE.S.UP .EQ %00000001 +S.MOUSE.S.DOWN .EQ %00000010 +S.MOUSE.S.MOVE .EQ %00000100 +S.MOUSE.S.DRAGSTART .EQ %00001000 +S.MOUSE.S.DRAGEND .EQ %00010000 +S.MOUSE.S.CLK .EQ %00100000 +S.MOUSE.S.DCLK .EQ %01000000 +S.MOUSE.KEYMOD .EQ 9 +S.MOUSE.KEYMOD.OA .EQ %00000001 +S.MOUSE.KEYMOD.CA .EQ %00000010 +* +S.MOUSE .EQ 10 +*-------------------------------------- +S.POINT.X .EQ 0 +S.POINT.Y .EQ 2 +* +S.POINT .EQ 4 +*-------------------------------------- +S.RECT.X1 .EQ 0 +S.RECT.Y1 .EQ 2 +S.RECT.X2 .EQ 4 +S.RECT.Y2 .EQ 6 +* +S.RECT .EQ 8 +*-------------------------------------- +S.OBJ.T .EQ 0 +S.OBJ.T.SCREEN .EQ 0 +S.OBJ.T.WND .EQ 2 +S.OBJ.T.MENUBAR .EQ 4 +S.OBJ.T.MENU .EQ 6 +S.OBJ.T.MITEM .EQ 8 +S.OBJ.T.BUT .EQ 10 +S.OBJ.T.TEXT .EQ 12 + +S.OBJ.F .EQ 1 +S.OBJ.S .EQ 2 +S.OBJ.ID .EQ 3 +S.OBJ.hOWNER .EQ 4 +S.OBJ.hPARENT .EQ 6 + +S.OBJ.X1 .EQ 8 +S.OBJ.Y1 .EQ 10 +S.OBJ.X2 .EQ 12 +S.OBJ.Y2 .EQ 14 +S.OBJ.W .EQ 16 +S.OBJ.H .EQ 18 +S.OBJ.Childs .EQ 20 +* +S.OBJ .EQ 22 +*-------------------------------------- +S.SCREEN.hDEV .EQ S.OBJ +* +S.SCREEN .EQ S.OBJ+1 +*-------------------------------------- +S.WND.F.RESIZE .EQ %00000001 +S.WND.F.MOVE .EQ %00000010 +S.WND.F.CLOSE .EQ %00000100 +S.WND.F.MAX .EQ %00001000 +S.WND.F.MIN .EQ %00010000 +S.WND.F.BORDER .EQ %00100000 +S.WND.F.MODAL .EQ %01000000 +S.WND.F.SYSMODAL .EQ %10000000 +* +S.WND.S.MAX .EQ %00001000 +S.WND.S.MIN .EQ %00010000 +* +S.WND.MinW .EQ S.OBJ +S.WND.MinH .EQ S.OBJ+2 +S.WND.hTITLE .EQ S.OBJ+4 +S.WND.hMENUBAR .EQ S.OBJ+6 +S.WND.hBKCOLOR .EQ S.OBJ+8 +S.WND.hBKBM .EQ S.OBJ+10 +S.WND.hCUR .EQ S.OBJ+12 +S.WND.hSTATUS .EQ S.OBJ+14 +S.WND.hICON .EQ S.OBJ+16 +S.WND.InnerW .EQ S.OBJ+18 +S.WND.InnerH .EQ S.OBJ+20 +* +S.WND .EQ S.OBJ+22 +*-------------------------------------- +S.MBAR.MENULIST .EQ S.OBJ +* ... S.MENUs... +*-------------------------------------- +S.MENU.hSAVEBUF .EQ S.OBJ +S.MENU.ITEMLIST .EQ S.OBJ+2 +* ... S.MITEMs... +*-------------------------------------- +*S.MITEM.F. .EQ %00000001 +*S.MITEM.F. .EQ %00000010 +*S.MITEM.F. .EQ %00000100 +*S.MITEM.F. .EQ %00001000 +*S.MITEM.F. .EQ %00010000 +S.MITEM.F.SEP .EQ %00100000 +* +S.MITEM.S +S.MITEM.S.CHECKED .EQ %01000000 +S.MITEM.S.DISABLED .EQ %10000000 +* +S.MITEM.hSUBM .EQ S.OBJ +S.MITEM.hBM .EQ S.OBJ+2 +S.MITEM.HOTKEY .EQ S.OBJ+4 +S.MITEM.KEYMOD .EQ S.OBJ+5 +S.MITEM.KEYMOD.CTRL .EQ %10000000 +S.MITEM.KEYMOD.OA .EQ %01000000 +S.MITEM.KEYMOD.CA .EQ %00100000 +S.MITEM.TEXTLEN .EQ S.OBJ+6 +S.MITEM.TEXT .EQ S.OBJ+8 CSTR +* ... +*-------------------------------------- +S.BUT.F.DISABLED .EQ %10000000 +* +S.BUT.S.PUSHED .EQ %10000000 +* +S.BUT.hBM .EQ S.OBJ +S.BUT.TEXTX .EQ S.OBJ+2 +S.BUT.TEXTY .EQ S.OBJ+4 +S.BUT.TEXTLEN .EQ S.OBJ+6 +S.BUT.TEXT .EQ S.OBJ+8 +* ... +*-------------------------------------- +S.TEXT.F.DISABLED .EQ %10000000 +* +S.TEXT.hBM .EQ S.OBJ +S.TEXT.TEXTX .EQ S.OBJ+2 +S.TEXT.TEXTY .EQ S.OBJ+4 +S.TEXT.TEXTLEN .EQ S.OBJ+6 +S.TEXT.TEXT .EQ S.OBJ+8 +* ... *-------------------------------------- MAN SAVE /A2OSX.BUILD/INC/LIBGUI.I diff --git a/LIB/LIBGUI.G.WND.txt b/LIB/LIBGUI.G.WND.txt index 0da7c3ab..37e23c77 100644 --- a/LIB/LIBGUI.G.WND.txt +++ b/LIB/LIBGUI.G.WND.txt @@ -5,7 +5,6 @@ AUTO 4,1 WND.TB.H .BS 1 WND.Stack.Top .BS 1 WND.Stack .BS WND.MAX -WND.Cache .BS S.WND *-------------------------------------- MAN SAVE USR/SRC/LIB/LIBGUI.G.WND diff --git a/LIB/LIBGUI.S.BUT.txt b/LIB/LIBGUI.S.BUT.txt index 21453d64..cb072fe6 100644 --- a/LIB/LIBGUI.S.BUT.txt +++ b/LIB/LIBGUI.S.BUT.txt @@ -4,7 +4,7 @@ AUTO 4,1 *-------------------------------------- BUT.New >STYA ZPPtr1 - ldy #S.BUT.W + ldy #S.OBJ.W lda (ZPPtr1),y iny ora (ZPPtr1),y @@ -18,7 +18,7 @@ BUT.New >STYA ZPPtr1 >SYSCALL GetStkObjProp phy - ldy #S.BUT.W+1 + ldy #S.OBJ.W+1 sta (ZPPtr1),y dey pla diff --git a/LIB/LIBGUI.S.CLIP.txt b/LIB/LIBGUI.S.CLIP.txt index e3b02e62..ab6e24a5 100644 --- a/LIB/LIBGUI.S.CLIP.txt +++ b/LIB/LIBGUI.S.CLIP.txt @@ -4,7 +4,7 @@ AUTO 4,1 *-------------------------------------- * CLIPPING Functions: * In: -* Graphic Context in GC.Cache +* Graphic Context in OBJ.Cache * YA = Control Block * Out: * CC : CB.Cache clipped & visible @@ -31,20 +31,20 @@ CLIP.BitBlt lda CB.Cache+S.CB.DstX ldx CB.Cache+S.CB.DstX+1 pha - >SCMPAX GC.Cache+S.GC.X2 + >SCMPAX OBJ.Cache+S.OBJ.X2 bpl CLIP.BitBlt.9 DestX after X2....exit pla - >SCMPAX GC.Cache+S.GC.X1 + >SCMPAX OBJ.Cache+S.OBJ.X1 bpl .1 DestX Inside X1-X2, go check if X1+W fit in -* S.CB.DstX before S.GC.X1: D=S.GC.X1-S.CB.DstX, S.CB.SrcW-=D, S.CB.DstX=+=D, S.CB.X1+=D +* S.CB.DstX before S.OBJ.X1: D=S.OBJ.X1-S.CB.DstX, S.CB.SrcW-=D, S.CB.DstX=+=D, S.CB.X1+=D - lda GC.Cache+S.GC.X1 Compute D.... + lda OBJ.Cache+S.OBJ.X1 Compute D.... sec sbc CB.Cache+S.CB.DstX sta D - lda GC.Cache+S.GC.X1+1 + lda OBJ.Cache+S.OBJ.X1+1 sbc CB.Cache+S.CB.DstX+1 sta D+1 ....always positive @@ -71,15 +71,15 @@ CLIP.BitBlt lda CB.Cache+S.CB.DstX sta CB.Cache+S.CB.X1 lda CB.Cache+S.CB.X1+1 adc D+1 - sta CB.Cache+S.CB.X1+1 S.CB.DstX=0, new between S.GC.X1 & S.GC.X2.... + sta CB.Cache+S.CB.X1+1 S.CB.DstX=0, new between S.OBJ.X1 & S.OBJ.X2.... -* S.CB.DstX between S.GC.X1 & S.GC.X2: D=(S.GC.X2+1)-S.CB.DstX +* S.CB.DstX between S.OBJ.X1 & S.OBJ.X2: D=(S.OBJ.X2+1)-S.CB.DstX -.1 lda GC.Cache+S.GC.X2 Compute D in X,Y +.1 lda OBJ.Cache+S.OBJ.X2 Compute D in X,Y sec sbc CB.Cache+S.CB.DstX tax - lda GC.Cache+S.GC.X2+1 + lda OBJ.Cache+S.OBJ.X2+1 sbc CB.Cache+S.CB.DstX+1 inx @@ -98,23 +98,23 @@ CLIP.BitBlt lda CB.Cache+S.CB.DstX CLIP.BitBlt.Y lda CB.Cache+S.CB.DstY ldx CB.Cache+S.CB.DstY+1 pha - >SCMPAX GC.Cache+S.GC.Y2 DestY after Y2....exit + >SCMPAX OBJ.Cache+S.OBJ.Y2 DestY after Y2....exit bmi .10 pla sec rts .10 pla - >SCMPAX GC.Cache+S.GC.Y1 + >SCMPAX OBJ.Cache+S.OBJ.Y1 bpl .1 DestY Inside Y1-Y2, go check if Y1+H fit in -* S.CB.DstY above S.GC.Y1: D=S.GC.Y1-S.CB.DstY, S.CB.SrcH-=D, S.CB.DstY=0, S.CB.Y1+=D +* S.CB.DstY above S.OBJ.Y1: D=S.OBJ.Y1-S.CB.DstY, S.CB.SrcH-=D, S.CB.DstY=0, S.CB.Y1+=D - lda GC.Cache+S.GC.Y1 Compute D.... + lda OBJ.Cache+S.OBJ.Y1 Compute D.... sec sbc CB.Cache+S.CB.DstY sta D - lda GC.Cache+S.GC.Y1+1 + lda OBJ.Cache+S.OBJ.Y1+1 sbc CB.Cache+S.CB.DstY+1 sta D+1 ....always positive @@ -141,15 +141,15 @@ CLIP.BitBlt.Y lda CB.Cache+S.CB.DstY sta CB.Cache+S.CB.Y1 lda CB.Cache+S.CB.Y1+1 adc D+1 - sta CB.Cache+S.CB.Y1+1 S.CB.DstY=0, new between S.GC.Y1 & S.GC.Y2.... + sta CB.Cache+S.CB.Y1+1 S.CB.DstY=0, new between S.OBJ.Y1 & S.OBJ.Y2.... -* S.CB.DstY between S.GC.Y1 & S.GC.Y2: D=(S.GC.Y2+1)-S.CB.DstY +* S.CB.DstY between S.OBJ.Y1 & S.OBJ.Y2: D=(S.OBJ.Y2+1)-S.CB.DstY -.1 lda GC.Cache+S.GC.Y2 Compute D in X,Y +.1 lda OBJ.Cache+S.OBJ.Y2 Compute D in X,Y sec sbc CB.Cache+S.CB.DstY tax - lda GC.Cache+S.GC.Y2+1 + lda OBJ.Cache+S.OBJ.Y2+1 sbc CB.Cache+S.CB.DstY+1 inx @@ -280,7 +280,7 @@ CLIP.Line.EncodeP2 *-------------------------------------- CLIP.Line.EncodeX.AX pha - >SCMPAX GC.Cache+S.GC.X1 + >SCMPAX OBJ.Cache+S.OBJ.X1 bmi .1 tya ora #CLIP.Line.LEFT @@ -288,7 +288,7 @@ CLIP.Line.EncodeX.AX rts .1 pla - >SCMPAX GC.Cache+S.GC.X1 + >SCMPAX OBJ.Cache+S.OBJ.X1 bpl .8 tya ora #CLIP.Line.RIGHT @@ -296,7 +296,7 @@ CLIP.Line.EncodeX.AX *-------------------------------------- CLIP.Line.EncodeY.AX pha - >SCMPAX GC.Cache+S.GC.Y1 + >SCMPAX OBJ.Cache+S.OBJ.Y1 bmi .1 tya ora #CLIP.Line.TOP @@ -304,7 +304,7 @@ CLIP.Line.EncodeY.AX rts .1 pla - >SCMPAX GC.Cache+S.GC.Y1 + >SCMPAX OBJ.Cache+S.OBJ.Y1 bpl .8 tya ora #CLIP.Line.BOTTOM diff --git a/LIB/LIBGUI.S.CUR.txt b/LIB/LIBGUI.S.CUR.txt index 218d87bf..87885f33 100644 --- a/LIB/LIBGUI.S.CUR.txt +++ b/LIB/LIBGUI.S.CUR.txt @@ -120,14 +120,12 @@ ShowCursor.I lda #S.CB.OP.ORA+S.CB.OP.MASK+S.CB.OP.SAVE sbc #0 sta CUR.CB+S.CB.DstY+1 -DrawCursor.I - -* >LDYA L.GC.Screen -* jsr GC.Get +DrawCursor.I >LDYA L.SCR + jsr OBJ.Get -* >LDYA L.CUR.CB -* jsr CLIP.YA -* bcs .9 + >LDYA L.CUR.CB + jsr CLIP.YA + bcs .9 >LDYA L.CUR.CB jmp GFXWrite.YA diff --git a/LIB/LIBGUI.S.DRAW.txt b/LIB/LIBGUI.S.DRAW.txt index c3f6cef3..35b50ebf 100644 --- a/LIB/LIBGUI.S.DRAW.txt +++ b/LIB/LIBGUI.S.DRAW.txt @@ -5,7 +5,7 @@ AUTO 4,1 Draw >PULLW ZPCBPtr Get CB >PULLYA Get GC - jsr GC.Get + jsr OBJ.Get .1 >LDYA ZPCBPtr jsr CB.Get @@ -23,7 +23,7 @@ Draw >PULLW ZPCBPtr Get CB jsr Draw.Jmp bra .7 -.2 jsr GoDevGfx +.2 jsr GFXWrite.CB .7 lda (ZPCBPtr) Get Cmd tax @@ -66,7 +66,7 @@ DrawLine lda CB.Cache+S.CB.X2 lda #S.CB.CMD.VLINE sta CB.Cache+S.CB.CMD - jmp GoDevGfx DX=0 : VLIN Y1,Y2 At X1 + jmp GFXWrite.CB DX=0 : VLIN Y1,Y2 At X1 .1 >SWAP16 CB.Cache+S.CB.X1,CB.Cache+S.CB.X2 * >SWAP16 CB.Cache+S.CB.Y1,CB.Cache+S.CB.Y2 @@ -98,7 +98,7 @@ DrawLine lda CB.Cache+S.CB.X2 lda #S.CB.CMD.HLINE sta CB.Cache+S.CB.CMD - jmp GoDevGfx DY=0 : HLIN X1,X2 At Y1 + jmp GFXWrite.CB DY=0 : HLIN X1,X2 At Y1 .3 >NOT16 DY set DY=-DY lda #$ff @@ -106,7 +106,7 @@ DrawLine lda CB.Cache+S.CB.X2 .4 lda #S.CB.CMD.SETPIXEL sta CB.Cache+S.CB.CMD - jsr GoDevGfx + jsr GFXWrite.CB lda DX sec @@ -144,7 +144,7 @@ DrawLine.IncXY lda DX DX=DY adc IY sta CB.Cache+S.CB.Y1 - jsr GoDevGfx + jsr GFXWrite.CB bra .1 .8 rts @@ -227,7 +227,7 @@ DrawLine.IncY lda DY adc IY sta CB.Cache+S.CB.Y1 - jsr GoDevGfx + jsr GFXWrite.CB bra .1 .8 rts @@ -311,7 +311,7 @@ DrawLine.IncX lda DX bne .6 inc CB.Cache+S.CB.X1+1 -.6 jsr GoDevGfx +.6 jsr GFXWrite.CB bra .1 .8 rts @@ -322,7 +322,7 @@ DrawText >LDYA L.CB.Cache jsr SYS.GuiOSD.JMP bcs .9 - jsr GoDevGfx + jsr GFXWrite.CB lda CB.Cache+S.CB.SrcPtr >SYSCALL FreeStkObj diff --git a/LIB/LIBGUI.S.MENU.txt b/LIB/LIBGUI.S.MENU.txt index 26758e8e..13326dfd 100644 --- a/LIB/LIBGUI.S.MENU.txt +++ b/LIB/LIBGUI.S.MENU.txt @@ -20,37 +20,37 @@ MENU.SysMenu *-------------------------------------- MENU.MenuEditor .AZ "File" .DA #02 ID - .DA #S.MITEM.HOTKEY.CTRL + .DA #S.MITEM.KEYMOD.CTRL .DA #'N' .AZ "New" .DA #04 ID - .DA #S.MITEM.HOTKEY.CTRL + .DA #S.MITEM.KEYMOD.CTRL .DA #'O' .AZ "Open..." .DA #06 ID - .DA #S.MITEM.HOTKEY.CTRL + .DA #S.MITEM.KEYMOD.CTRL .DA #'S' .AZ "Save" .DA #08 ID - .DA #S.MITEM.HOTKEY.OA+S.MITEM.HOTKEY.CTRL + .DA #S.MITEM.KEYMOD.OA+S.MITEM.KEYMOD.CTRL .DA #'S' .AZ "Save As..." .DA #10 ID - .DA #S.MITEM.HOTKEY.CTRL + .DA #S.MITEM.KEYMOD.CTRL .DA #'Q' .AZ "Quit" .DA #0 .AZ "Edit" .DA #12 ID - .DA #S.MITEM.HOTKEY.OA + .DA #S.MITEM.KEYMOD.OA .DA #'X' .AZ "Cut" .DA #14 ID - .DA #S.MITEM.HOTKEY.OA + .DA #S.MITEM.KEYMOD.OA .DA #'C' .AZ "Copy" .DA #16 ID - .DA #S.MITEM.HOTKEY.OA + .DA #S.MITEM.KEYMOD.OA .DA #'V' .AZ "Paste" .DA #0 diff --git a/LIB/LIBGUI.S.WND.txt b/LIB/LIBGUI.S.WND.txt index 12ea3dba..f294f061 100644 --- a/LIB/LIBGUI.S.WND.txt +++ b/LIB/LIBGUI.S.WND.txt @@ -7,7 +7,7 @@ WND.Init >PUSHBI 0 >SYSCALL open bcs .9 - sta hDevGFX + sta SCR+S.SCREEN.hDEV >LDYA L.DCB.GFX >STYA IOCTL+S.IOCTL.BUFPTR @@ -16,44 +16,53 @@ WND.Init >PUSHBI 0 >PUSHW L.IOCTL >PUSHBI IOCTL.STATUS - lda hDevGFX + lda SCR+S.SCREEN.hDEV >SYSCALL IOCTL - - bcs .9 - - lda DCB.GFX+S.DCB.GFX.W - sta WND.Cache+S.OBJ.W - lda DCB.GFX+S.DCB.GFX.W+1 - sta WND.Cache+S.OBJ.W+1 + +.9 rts +*-------------------------------------- +WND.Setup >LDYA DCB.GFX+S.DCB.GFX.W + >STYA SCR+S.OBJ.W + >STYA WND.Desktop+S.OBJ.W + >STYA WND.SysBar+S.OBJ.W lda SYSFON.H clc adc #6 - sta WND.TB.H + sta WND.SysBar+S.OBJ.H lda DCB.GFX+S.DCB.GFX.H + sta SCR+S.OBJ.H sec - sbc SYSFON.H - sta WND.Cache+S.OBJ.H + sbc WND.SysBar+S.OBJ.H + sta WND.Desktop+S.OBJ.H + sta WND.SysBar+S.OBJ.X1 - lda DCB.GFX+S.DCB.GFX.H+1 + lda DCB.GFX+S.DCB.GFX.H+1 + sta WND.SysBar+S.OBJ.H+1 sbc #0 - sta WND.Cache+S.OBJ.H+1 + sta WND.Desktop+S.OBJ.H+1 + sta WND.SysBar+S.OBJ.X1+1 + + >LDYA L.SCR + jsr OBJ.SetX2Y2 - lda #S.WND.F.NOBORDER - sta WND.Cache+S.OBJ.F + >LDYA L.WND.Desktop + >STYA SCR.Childs + jsr OBJ.SetX2Y2 + >LDYA L.WND.SysBar + jsr OBJ.SetX2Y2 + >STYA SCR.Childs+2 + + >LDYA L.WND.Desktop + lda #CUR.T.ARROW - sta WND.Cache+S.WND.hCUR - >LDYA L.WND.CACHE - jsr WND.New - bcs .9 - - stx WND.Stack - -.9 rts + sta WND.Desktop+S.WND.hCUR + sta WND.SysBar+S.WND.hCUR + rts *-------------------------------------- -WND.Quit lda hDevGFX +WND.Quit lda SCR+S.SCREEN.hDEV beq .8 pha @@ -88,7 +97,8 @@ WND.Paint >STYA ZPPtr1 clc rts *-------------------------------------- -WND.Close +WND.Close clc + rts *-------------------------------------- MAN SAVE USR/SRC/LIB/LIBGUI.S.WND diff --git a/LIB/LIBGUI.S.txt b/LIB/LIBGUI.S.txt index c8f30af7..061d16db 100644 --- a/LIB/LIBGUI.S.txt +++ b/LIB/LIBGUI.S.txt @@ -10,7 +10,6 @@ AUTO 4,1 .INB INC/A2OSX.I .INB INC/KERNEL.I .INB INC/GFX.I - .INB INC/GUI.I .INB INC/LIBGUI.I *-------------------------------------- WND.MAX .EQ 64 @@ -45,8 +44,8 @@ WND.MAX .EQ 64 .EM *-------------------------------------- ZPPtr1 .EQ ZPLIB -ZPPtr2 .EQ ZPLIB+2 -ZPGCPtr .EQ ZPLIB+4 + +ZPObjPtr .EQ ZPLIB+4 ZPCBPtr .EQ ZPLIB+6 ZPWNDPtr .EQ ZPLIB+8 @@ -74,7 +73,6 @@ CS.START cld .DA ShowCursor .DA UpdateCursor .DA MOU.ReadMouse - .DA GetScreenGC *-------------------------------------- J.Cmds .DA DrawLine .DA DrawText @@ -86,10 +84,12 @@ L.SYSX7B .DA SYSX7B L.IOCTL .DA IOCTL L.DCB.GFX .DA DCB.GFX L.MouseClamp .DA MouseClamp -L.GC.Screen .DA GC.Screen -L.GC.Desktop .DA GC.Desktop -L.GC.SysBar .DA GC.SysBar L.CB.Cache .DA CB.Cache +L.SCR .DA SCR +L.WND.Desktop .DA WND.Desktop +L.WND.SysBar .DA WND.SysBar +*-------------------------------------- +L.BM.Apple .DA BM.Apple *-------------------------------------- L.CUR.CB .DA CUR.CB L.CUR.SaveBuf .DA CUR.SaveBuf @@ -114,8 +114,7 @@ J.Clip .DA CLIP.Point SETPIXEL .DA CLIP.BitBlt .DA CLIP.Rect GETRECTBUFSIZE .DA CLIP.Line - .DA CLIP.Text -L.WND.CACHE .DA WND.CACHE + .DA CLIP.Text .DA 0 *-------------------------------------- LIB.LOAD lda LibCount @@ -130,6 +129,8 @@ LIB.LOAD lda LibCount jsr WND.Init bcs .9 + jsr WND.Setup + lda hDevMouse beq .8 @@ -150,17 +151,71 @@ LIB.UNLOAD dec LibCount .8 clc rts *-------------------------------------- -GC.Get >STYA .1+1 +OBJ.Get >STYA .1+1 - ldx #S.GC-1 + ldx #S.OBJ-1 .1 lda $ffff,x SELF MODIFIED - sta GC.Cache,x + sta OBJ.Cache,x dex bpl .1 rts *-------------------------------------- +OBJ.SetX2Y2 >STYA ZPObjPtr + + ldy #S.OBJ.W + lda (ZPObjPtr),y + clc + sbc #0 + pha + iny + lda (ZPObjPtr),y + sbc #0 + tax + + pla + clc + ldy #S.OBJ.X1 + adc (ZPObjPtr),y + pha + txa + iny + adc (ZPObjPtr),y + + ldy #S.OBJ.X2+1 + sta (ZPObjPtr),y + dey + pla + sta (ZPObjPtr),y + + ldy #S.OBJ.H + lda (ZPObjPtr),y + clc + sbc #0 + pha + iny + lda (ZPObjPtr),y + sbc #0 + tax + + pla + clc + ldy #S.OBJ.Y1 + adc (ZPObjPtr),y + pha + txa + iny + adc (ZPObjPtr),y + + ldy #S.OBJ.Y2+1 + sta (ZPObjPtr),y + dey + pla + sta (ZPObjPtr),y + + rts +*-------------------------------------- CB.Get >STYA .1+1 ldx #S.CB-1 @@ -172,14 +227,11 @@ CB.Get >STYA .1+1 rts *-------------------------------------- -GetScreenGC >LDYA L.GC.Screen - rts -*-------------------------------------- -GoDevGfx >LDYA L.CB.Cache +GFXWrite.CB >LDYA L.CB.Cache GFXWrite.YA >PUSHYA >PUSHBI IOCTL.WRITE - lda hDevGFX + lda SCR+S.SCREEN.hDEV >SYSCALL IOCTL rts *-------------------------------------- @@ -208,7 +260,6 @@ SYSX7 .AZ "/A2OSX.BUILD/SBIN/GUI/SYSX7" SYSX7B .AZ "/A2OSX.BUILD/SBIN/GUI/SYSX7B" *-------------------------------------- LibCount .BS 1 -hDevGFX .BS 1 hDevMouse .BS 1 *-------------------------------------- DX .BS 2 @@ -231,8 +282,6 @@ CB.CmdLen .DA S.CB.Y1+1 SETPIXEL .DA S.CB.Y2+1 DRAWLINE .DA S.CB.TxtPtr+1 DRAWTEXT *-------------------------------------- -MouseClamp .BS 8 -*-------------------------------------- PAT.Buf .BS 1 S.BM.F .DA #1 S.BM.RowBytes .DA 8 S.BM.W @@ -243,13 +292,24 @@ PAT.Buf .BS 1 S.BM.F IOCTL .BS S.IOCTL DCB.GFX .BS S.DCB.GFX *-------------------------------------- -GC.Cache .BS S.GC -CB.Cache .BS S.CB -BM.Cache .BS S.BM +MouseClamp .BS 8 *-------------------------------------- -GC.Screen .BS S.GC -GC.Desktop .BS S.GC -GC.SysBar .BS S.GC +CB.Cache .BS S.CB +OBJ.Cache .BS S.OBJ +*-------------------------------------- +SCR .BS S.SCREEN S.OBJ.T.SCREEN +SCR.Childs .BS 2 WND.Desktop + .BS 2 WND.SysBar + .DA 0 +*-------------------------------------- +WND.Desktop .DA #S.OBJ.T.WND + .BS S.WND-1 +*-------------------------------------- +WND.SysBar .DA #S.OBJ.T.WND + .BS S.WND-1 +WND.SysBar.Childs + .BS 2 BUT.Sys + .DA 0 *-------------------------------------- BUT.Sys .DA #S.OBJ.T.BUT .DA #0 F diff --git a/SBIN/GUI.S.txt b/SBIN/GUI.S.txt index 4094a66a..40aae62f 100644 --- a/SBIN/GUI.S.txt +++ b/SBIN/GUI.S.txt @@ -9,7 +9,6 @@ AUTO 4,1 .INB INC/IO.I .INB INC/MACROS.I .INB INC/A2OSX.I - .INB INC/GUI.I .INB INC/LIBGUI.I *-------------------------------------- * Zero Page Segment, up to 32 bytes