diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index dcd00bce..b28b3a2d 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 4e6c1609..e6ccd491 100644 --- a/LIB/LIBGUI.S.DRAW.txt +++ b/LIB/LIBGUI.S.DRAW.txt @@ -3,21 +3,13 @@ NEW *-------------------------------------- * drawline(short int hWND, short int OP, short int COLOR, int X1, int Y1, int X2, int X2) *-------------------------------------- -DrawLine >PULLW CB.Cache+S.CB.Y2 - >PULLW CB.Cache+S.CB.X2 - >PULLW CB.Cache+S.CB.Y1 - >PULLW CB.Cache+S.CB.X1 +DrawLine jsr DRAW.PullY2X2Y1X1 >PULLB CB.Cache+S.CB.COLOR >PULLB CB.Cache+S.CB.OP - >PULLA hWND - >SYSCALL2 GetMemPtr - >STYA ZPWNDPtr - - jsr DRAW.ToGlobal - - jsr DRAW.GetInnerWND for clipping - + + jsr DRAW.PullWND + lda CB.Cache+S.CB.X2 sec sbc CB.Cache+S.CB.X1 @@ -266,14 +258,45 @@ DrawLine.IncX lda DX .8 rts *-------------------------------------- -* drawrectangle (short int OP, short int M, int X1, int Y1, int X2, int Y2) +* fillrectangle (short int hWND, short int OP, short int COLOR, int X1, int Y1, int X2, int Y2) *-------------------------------------- +FillRectangle jsr DRAW.PullY2X2Y1X1 + >PULLB CB.Cache+S.CB.COLOR + >PULLB CB.Cache+S.CB.OP + + jsr DRAW.PullWND + + lda #S.CB.CMD.FILLRECT + sta CB.Cache+S.CB.CMD + + jsr CLIP.CB.Cache + bcs .8 + + jmp GFXWrite.CB + +.8 rts *-------------------------------------- -* drawbitmap (short int OP, short int M, S.BM *bitmap, int X1, int Y1) +* drawbitmap (short int hWND, short int OP, short int M, S.BM *bitmap, int X1, int Y1) *-------------------------------------- -DrawBitMap clc - rts +DrawBitMap lda #S.CB.CMD.BITBLT + jsr CB.InitCacheA + + jsr DRAW.PullY1X1 + + >PULLW CB.Cache+S.CB.SrcPtr + + >PULLB CB.Cache+S.CB.M + >PULLB CB.Cache+S.CB.OP + + jsr DRAW.PullWND + + jsr CLIP.CB.Cache + bcs .8 + + jmp GFXWrite.CB + +.8 rts *-------------------------------------- DRAW.xBMAtDXDY >LDYA L.BMs,x DRAW.yaBMAtDXDY >STYA ZPBMPtr Src BM @@ -312,10 +335,26 @@ DRAW.yaBMAtDXDY >STYA ZPBMPtr Src BM jmp PutCBCache2CBBuf *-------------------------------------- -* drawtext (short int OP, short int hFONT, int X1, int Y1) +* drawtext (short int hWND, short int OP, short int hFONT, int X1, int Y1, char *str) *-------------------------------------- -DrawText clc - rts +DrawText lda #S.CB.CMD.DRAWTEXT2 + jsr CB.InitCacheA + + >PULLW CB.Cache+S.CB.TxtPtr + + jsr DRAW.PullY1X1 + + >PULLB CB.Cache+S.CB.hFont + >PULLB CB.Cache+S.CB.OP + + jsr DRAW.PullWND + + jsr CLIP.CB.Cache + bcs .8 + + jmp GFXWrite.CB + +.8 rts *-------------------------------------- DRAW.YATextAtDXDY phx @@ -347,6 +386,60 @@ DRAW.YATextAtDXDY jmp PutCBCache2CBBuf *-------------------------------------- +DRAW.PullY2X2Y1X1 + ldx #7 + bra DRAW.PullX + +DRAW.PullY1X1 ldx #3 + +DRAW.PullX >PULLA + sta CB.Cache+S.CB.X1,x + dex + bpl DRAW.PullX + + rts +*-------------------------------------- +DRAW.PullWND >PULLA hWND + >SYSCALL2 GetMemPtr + >STYA ZPWNDPtr + + jsr DRAW.ToGlobal set CB.Cache to global coord. +*-------------------------------------- +DRAW.GetInnerWND + ldy #S.OBJ.X1 + + lda (ZPWNDPtr),y + sta OBJ.Cache+S.OBJ.X1 + iny + lda (ZPWNDPtr),y + sta OBJ.Cache+S.OBJ.X1+1 + + ldy #S.WND.InnerY1 + + lda (ZPWNDPtr),y + sta OBJ.Cache+S.OBJ.Y1 + iny + lda (ZPWNDPtr),y + sta OBJ.Cache+S.OBJ.Y1+1 + + ldy #S.WND.InnerW + + lda (ZPWNDPtr),y + sta OBJ.Cache+S.OBJ.W + iny + lda (ZPWNDPtr),y + sta OBJ.Cache+S.OBJ.W+1 + + iny #S.WND.InnerH + lda (ZPWNDPtr),y + sta OBJ.Cache+S.OBJ.H + iny + lda (ZPWNDPtr),y + sta OBJ.Cache+S.OBJ.H+1 + + >LDYA L.OBJ.Cache + jmp OBJ.SetX2Y2 +*-------------------------------------- DRAW.ToGlobal >LDYA ZPWNDPtr >STYA ZPPtr1 @@ -392,41 +485,6 @@ DRAW.AddP1YtoCBX sta CB.Cache+1,x rts *-------------------------------------- -DRAW.GetInnerWND - ldy #S.OBJ.X1 - - lda (ZPWNDPtr),y - sta OBJ.Cache+S.OBJ.X1 - iny - lda (ZPWNDPtr),y - sta OBJ.Cache+S.OBJ.X1+1 - - ldy #S.WND.InnerY1 - - lda (ZPWNDPtr),y - sta OBJ.Cache+S.OBJ.Y1 - iny - lda (ZPWNDPtr),y - sta OBJ.Cache+S.OBJ.Y1+1 - - ldy #S.WND.InnerW - - lda (ZPWNDPtr),y - sta OBJ.Cache+S.OBJ.W - iny - lda (ZPWNDPtr),y - sta OBJ.Cache+S.OBJ.W+1 - - iny #S.WND.InnerH - lda (ZPWNDPtr),y - sta OBJ.Cache+S.OBJ.H - iny - lda (ZPWNDPtr),y - sta OBJ.Cache+S.OBJ.H+1 - - >LDYA L.OBJ.Cache - jmp OBJ.SetX2Y2 -*-------------------------------------- DrawCBBufToYA pha phy diff --git a/LIB/LIBGUI.S.EVT.txt b/LIB/LIBGUI.S.EVT.txt index 8d167081..c3d5a15f 100644 --- a/LIB/LIBGUI.S.EVT.txt +++ b/LIB/LIBGUI.S.EVT.txt @@ -1,7 +1,46 @@ NEW AUTO 3,1 *-------------------------------------- -EVT.Get +EVT.GetMsg >PULLW ZPPtr1 + + lda A2osX.ASCREEN GUI screen active ? + cmp DCB.GFX+S.DCB.GFX.DEVID + bne .9 no, exit.... + +* sec + + lda hDevMouse + beq .2 + + >PUSHA + >PUSHBI IOCTL.READ + >PUSHW L.MouseData + >SYSCALL2 IOCTL + bcs .2 + + ldy #S.MOUSE-1 + +.1 lda MouseData,y + sta (ZPPtr1),y + dey + bpl .1 + +* clc + +.2 lda KBD + bmi .3 + + rts + +.3 sta KBDSTROBE + and #$7F + + +.8 clc + rts + +.9 sec + rts *-------------------------------------- MAN SAVE usr/src/lib/libgui.s.evt diff --git a/LIB/LIBGUI.S.MENU.txt b/LIB/LIBGUI.S.MENU.txt index 9a6c316c..5cd95c35 100644 --- a/LIB/LIBGUI.S.MENU.txt +++ b/LIB/LIBGUI.S.MENU.txt @@ -237,7 +237,7 @@ MENU.Enter jsr MENU.GetDX bit #S.MOUSE.S.CLK beq .90 - >DEBUG +* >DEBUG jmp MENU.DestroyAll diff --git a/LIB/LIBGUI.S.MOU.txt b/LIB/LIBGUI.S.MOU.txt index cd9e8c53..fff24ebd 100644 --- a/LIB/LIBGUI.S.MOU.txt +++ b/LIB/LIBGUI.S.MOU.txt @@ -119,7 +119,9 @@ MOU.CheckOverMenu jsr MOU.InRectYA bcs .2 - jmp MENU.Enter + jsr MENU.Enter + clc + rts .2 lda ZPMENUPtr clc diff --git a/SBIN/GUI.S.txt b/SBIN/GUI.S.txt index 2283e0b2..8078ee5d 100644 --- a/SBIN/GUI.S.txt +++ b/SBIN/GUI.S.txt @@ -16,7 +16,7 @@ NEW .DUMMY .OR ZPBIN ZS.START -* MyPtr .BS 2 +hWND .BS 1 ZS.END .ED *-------------------------------------- @@ -42,11 +42,9 @@ CS.START cld .DA CS.QUIT L.LIBGUI .DA LIBGUI L.MouseData .DA MouseData -L.LOGOFILE .DA LOGOFILE L.WND.TITLE .DA WND.TITLE L.WND.MBAR .DA WND.MBAR L.WND.STATUS .DA WND.STATUS -L.WND.Test.fPaint .DA WND.Test.fPaint .DA 0 *-------------------------------------- CS.INIT >LDYA L.LIBGUI @@ -59,20 +57,11 @@ CS.INIT >LDYA L.LIBGUI .9 CS.INIT.RTS rts *-------------------------------------- -CS.RUN >PUSHW L.LOGOFILE - >PUSHBI O.RDONLY - >PUSHBI $CB Type - >PUSHWZ Aux type - >SYSCALL LoadStkObj - bcs CS.INIT.RTS - - stx hLogo - -CS.RUN.LOOP >SLEEP +CS.RUN >SLEEP >PUSHW L.MouseData >LIBCALL hLIBGUI,LIBGUI.ReadMouse - bcs CS.RUN.LOOP + bcs CS.RUN lda MouseData+S.MOUSE.S bit #S.MOUSE.S.MOVE @@ -83,18 +72,12 @@ CS.RUN.LOOP >SLEEP lda MouseData+S.MOUSE.S -.1 bit #S.MOUSE.S.CLK - beq .2 - - - bra CS.RUN.LOOP - -.2 bit #S.MOUSE.S.DCLK - beq CS.RUN.LOOP +.1 bit #S.MOUSE.S.DCLK + beq CS.RUN jsr WND.Test - bra CS.RUN.LOOP + bra CS.RUN clc rts @@ -125,11 +108,6 @@ WND.Test >PUSHBI S.WND.F.RESIZE+S.WND.F.MOVE+S.WND.F.CLOSE+S.WND.F.MAX+S.WND.F. >PUSHWI C.WHITE >LIBCALL hLIBGUI,LIBGUI.OBJ.SetProp - >PUSHB hWND - >PUSHBI S.WND.BGBM - >PUSHW hLogo - >LIBCALL hLIBGUI,LIBGUI.OBJ.SetProp - >PUSHB hWND >PUSHBI S.WND.TITLE >PUSHW L.WND.TITLE @@ -145,42 +123,17 @@ WND.Test >PUSHBI S.WND.F.RESIZE+S.WND.F.MOVE+S.WND.F.CLOSE+S.WND.F.MAX+S.WND.F. >PUSHW L.WND.STATUS >LIBCALL hLIBGUI,LIBGUI.OBJ.SetProp - >PUSHB hWND - >PUSHBI S.WND.fPaint - >PUSHW L.WND.Test.fPaint - >LIBCALL hLIBGUI,LIBGUI.OBJ.SetProp - >STYA WND.Test.fPaint1+1 - lda hWND >LIBCALL hLIBGUI,LIBGUI.WND.Show rts *-------------------------------------- -WND.Test.fPaint sta hWND - -WND.Test.fPaint1 - jsr $ffff Default WND.fPaint - -* >PUSHB hWND -* >PUSHBI S.CB.OP.SET -* >PUSHBI C.BLACK -* >PUSHWI 10 -* >PUSHWI 10 -* >PUSHWI 200 -* >PUSHWI 60 -* >LIBCALL hLIBGUI,LIBGUI.DrawLine - - rts -*-------------------------------------- CS.END LIBGUI .AZ "libgui" hLIBGUI .BS 1 *-------------------------------------- MouseData .BS S.MOUSE *-------------------------------------- -hLogo .BS 2 00xx -LOGOFILE .AZ "${ROOT}root/bmp/A2OSX.LOGO" -hWND .BS 1 WND.TITLE .AZ "Window Title" *-------------------------------------- WND.MBAR .DA #.1-* next