diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 5cbf9027..87d59b71 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/.Floppies/A2OSX.TEST.po b/.Floppies/A2OSX.TEST.po index af3fafcf..6e773cea 100644 Binary files a/.Floppies/A2OSX.TEST.po and b/.Floppies/A2OSX.TEST.po differ diff --git a/INC/LIBGUI.I.txt b/INC/LIBGUI.I.txt index 69d508be..e4fc9c09 100644 --- a/INC/LIBGUI.I.txt +++ b/INC/LIBGUI.I.txt @@ -8,10 +8,10 @@ LIBGUI.ShowCursor .EQ 10 LIBGUI.UpdateCursor .EQ 12 LIBGUI.ReadMouse .EQ 14 LIBGUI.DrawLine .EQ 16 -LIBGUI.WND.New .EQ 18 -LIBJUI.WND.Destroy .EQ 20 -LIBGUI.WND.SetProp .EQ 22 -LIBGUI.WND.GetProp .EQ 24 +LIBGUI.OBJ.SetProp .EQ 18 +LIBGUI.OBJ.GetProp .EQ 20 +LIBGUI.WND.New .EQ 22 +LIBJUI.WND.Destroy .EQ 24 LIBGUI.WND.Show .EQ 26 LIBGUI.WND.Paint .EQ 28 *-------------------------------------- diff --git a/LIB/LIBGUI.G.CUR.txt b/LIB/LIBGUI.G.CUR.txt index cfad155a..086987f7 100644 --- a/LIB/LIBGUI.G.CUR.txt +++ b/LIB/LIBGUI.G.CUR.txt @@ -6,6 +6,7 @@ CUR.bVisible .BS 1 CUR.Pos .BS S.POINT *-------------------------------------- CUR.HotPoints .DA #0,#0 CUR.T.ARROW + .DA #6,#6 CUR.T.MOVE .DA #7,#4 CUR.ResizeX .DA #6,#5 CUR.ResizeY .DA #5,#5 CUR.ResizeXY1 diff --git a/LIB/LIBGUI.S.CLIP.txt b/LIB/LIBGUI.S.CLIP.txt index 2750c156..9c0814b4 100644 --- a/LIB/LIBGUI.S.CLIP.txt +++ b/LIB/LIBGUI.S.CLIP.txt @@ -227,9 +227,7 @@ CLIP.Line.RIGHT .EQ 2 CLIP.Line.BOTTOM .EQ 4 CLIP.Line.TOP .EQ 8 *-------------------------------------- -CLIP.Line -* >DEBUG - jsr CLIP.Line.EncodeP1 +CLIP.Line jsr CLIP.Line.EncodeP1 jsr CLIP.Line.EncodeP2 .1 lda CLIP.Line.P1 @@ -340,7 +338,7 @@ CLIP.Line.EncodeP2 CLIP.Line.EncodeX.AX pha >SCMPAX OBJ.Cache+S.OBJ.X1 - bmi .1 + bpl .1 tya ora #CLIP.Line.LEFT @@ -349,17 +347,18 @@ CLIP.Line.EncodeX.AX .1 pla >SCMPAX OBJ.Cache+S.OBJ.X2 - bpl .8 + bmi .8 tya ora #CLIP.Line.RIGHT -.8 rts +.8 tya + rts *-------------------------------------- CLIP.Line.EncodeY.AX pha >SCMPAX OBJ.Cache+S.OBJ.Y1 - bmi .1 + bpl .1 tya ora #CLIP.Line.TOP @@ -368,12 +367,13 @@ CLIP.Line.EncodeY.AX .1 pla >SCMPAX OBJ.Cache+S.OBJ.Y2 - bpl .8 + bmi .8 tya ora #CLIP.Line.BOTTOM -.8 rts +.8 tya + rts *-------------------------------------- CB.Cache.SetX2Y2 lda CB.Cache+S.CB.SrcW diff --git a/LIB/LIBGUI.S.CUR.txt b/LIB/LIBGUI.S.CUR.txt index 06428a17..ecd3f609 100644 --- a/LIB/LIBGUI.S.CUR.txt +++ b/LIB/LIBGUI.S.CUR.txt @@ -8,6 +8,7 @@ UpdateCursor lda CUR.T inc cmp #CUR.T.WAIT+12 bne SetCursor + lda #CUR.T.WAIT *-------------------------------------- * Set X2,Y2,SrcPtr diff --git a/LIB/LIBGUI.S.DRAW.txt b/LIB/LIBGUI.S.DRAW.txt index d3bc2b77..1ef5ebbb 100644 --- a/LIB/LIBGUI.S.DRAW.txt +++ b/LIB/LIBGUI.S.DRAW.txt @@ -15,7 +15,8 @@ DrawLine >PULLW CB.Cache+S.CB.Y2 >STYA ZPWNDPtr jsr DRAW.ToGlobal - jsr DRAW.GetInnerW + + jsr DRAW.GetInnerWND for clipping lda CB.Cache+S.CB.X2 sec @@ -265,12 +266,17 @@ DrawLine.IncX lda DX .8 rts *-------------------------------------- -* drawbitmap (short int OP, S.BM *bitmap, int X1, int Y1) +* drawrectangle (short int OP, short int M, int X1, int Y1, int X2, int Y2) +*-------------------------------------- + +*-------------------------------------- +* drawbitmap (short int OP, short int M, S.BM *bitmap, int X1, int Y1) *-------------------------------------- DrawBitMap clc rts *-------------------------------------- -DRAW.YABMAtDXDY >STYA ZPBMPtr Src BM +DRAW.xBMAtDXDY >LDYA L.BMs,x +DRAW.yaBMAtDXDY >STYA ZPBMPtr Src BM lda #S.CB.CMD.BITBLT jsr CB.InitCacheA @@ -386,7 +392,9 @@ DRAW.AddP1YtoCBX sta CB.Cache+1,x rts *-------------------------------------- -DRAW.GetInnerW ldy #S.OBJ.X1 +DRAW.GetInnerWND + ldy #S.OBJ.X1 + lda (ZPWNDPtr),y sta OBJ.Cache+S.OBJ.X1 iny @@ -394,6 +402,7 @@ DRAW.GetInnerW ldy #S.OBJ.X1 sta OBJ.Cache+S.OBJ.X1+1 ldy #S.WND.InnerY1 + lda (ZPWNDPtr),y sta OBJ.Cache+S.OBJ.Y1 iny @@ -401,6 +410,7 @@ DRAW.GetInnerW ldy #S.OBJ.X1 sta OBJ.Cache+S.OBJ.Y1+1 ldy #S.WND.InnerW + lda (ZPWNDPtr),y sta OBJ.Cache+S.OBJ.W iny @@ -410,7 +420,6 @@ DRAW.GetInnerW ldy #S.OBJ.X1 iny #S.WND.InnerH lda (ZPWNDPtr),y sta OBJ.Cache+S.OBJ.H - iny lda (ZPWNDPtr),y sta OBJ.Cache+S.OBJ.H+1 @@ -428,14 +437,10 @@ DrawCBPtrToYA1 pha jsr DrawCBPtrToYA lda hCBBuf + stz hCBBuf >SYSCALL FreeMem rts *-------------------------------------- -DrawCBBufToYA ldx L.CB.Buf - stx ZPCBPtr - ldx L.CB.Buf+1 - stx ZPCBPtr+1 - DrawCBPtrToYA bit CUR.bVisible bpl .10 diff --git a/LIB/LIBGUI.S.MENU.txt b/LIB/LIBGUI.S.MENU.txt index fad05c1f..d54246b0 100644 --- a/LIB/LIBGUI.S.MENU.txt +++ b/LIB/LIBGUI.S.MENU.txt @@ -572,7 +572,7 @@ MENU.ShowMItem1 lda #S.CB.CMD.FILLRECT .11 jsr MENU.GetIcon beq .2 - jsr DRAW.YABMAtDXDY + jsr DRAW.yaBMAtDXDY .2 lda DX clc @@ -623,8 +623,7 @@ MENU.ShowMItem1 lda #S.CB.CMD.FILLRECT sta DX+1 ldx #BM.ID.RIGHT - >LDYA L.BMs,x - jsr DRAW.YABMAtDXDY + jsr DRAW.xBMAtDXDY .8 lda DY bne .80 diff --git a/LIB/LIBGUI.S.MOU.txt b/LIB/LIBGUI.S.MOU.txt index e3faf9c7..cd9e8c53 100644 --- a/LIB/LIBGUI.S.MOU.txt +++ b/LIB/LIBGUI.S.MOU.txt @@ -12,7 +12,7 @@ MOU.Init >PUSHBI 0 bne MOU.Init * sec - rts + rts .2 sta hDevMouse @@ -60,14 +60,14 @@ MOU.Quit lda hDevMouse rts *-------------------------------------- MOU.ReadMouse >PULLW ZPPtr1 - + lda A2osX.ASCREEN GUI screen active ? cmp DCB.GFX+S.DCB.GFX.DEVID bne .9 no, exit.... lda hDevMouse beq .99 CS - + >PUSHA >PUSHBI IOCTL.READ >PUSHW L.MouseData @@ -75,15 +75,14 @@ MOU.ReadMouse >PULLW ZPPtr1 bcs .99 ldy #S.MOUSE-1 - + .1 lda MouseData,y sta (ZPPtr1),y dey bpl .1 - ldy #S.MOUSE.S - lda (ZPPtr1),y - bit #S.MOUSE.S.MOVE + lda MouseData+S.MOUSE.S + bit #S.MOUSE.S.MOVE+S.MOUSE.S.CLK beq .8 jsr MOU.CheckOverMenu @@ -95,19 +94,19 @@ MOU.ReadMouse >PULLW ZPPtr1 jsr MOU.CheckOverWND bcc .8 - + .8 clc rts - + .9 sec .99 rts *-------------------------------------- MOU.CheckOverMenu .1 ldx MENU.Stack.Top beq .9 - + lda MENU.Stack-1,x - + >SYSCALL GetMemPtr >STYA ZPMENUPtr pha @@ -119,7 +118,7 @@ MOU.CheckOverMenu adc /S.OBJ.X1 jsr MOU.InRectYA bcs .2 - + jmp MENU.Enter .2 lda ZPMENUPtr @@ -131,11 +130,11 @@ MOU.CheckOverMenu jsr MOU.InRectYA bcc .8 - + jsr MENU.Destroy - + bra .1 - + .9 sec .8 rts *-------------------------------------- @@ -144,7 +143,7 @@ MOU.CheckOverSysBut jsr MOU.InRectYA bcs .9 jmp SYSBUT.Enter - + .9 jsr SYSBUT.Leave sec rts @@ -152,13 +151,13 @@ MOU.CheckOverSysBut MOU.CheckOverWND ldx WND.Stack.Top beq .9 - + .1 stx WND.Stack.Idx - + lda WND.Stack-1,x >SYSCALL GetMemPtr >STYA ZPWNDPtr - + ldy #S.OBJ.F lda (ZPWNDPtr),y @@ -167,7 +166,7 @@ MOU.CheckOverWND jsr MOU.ChkWNDBorders bcc .99 - + .2 lda ZPWNDPtr clc adc #S.OBJ.X1 @@ -176,21 +175,25 @@ MOU.CheckOverWND adc #0 jsr MOU.InRectYA - bcs .7 - - ldy #S.WND.TBarY2 + bcs .7 not over this WND + + lda MouseData+S.MOUSE.S + bit #S.MOUSE.S.CLK + beq .22 + + jsr WND.Bring2Front + +.22 ldy #S.WND.TBarY2 lda (ZPWNDPtr),y cmp MouseData+S.MOUSE.Y1 iny lda (ZPWNDPtr),y sbc MouseData+S.MOUSE.Y1+1 - bcc .3 - - lda #CUR.T.MOVE - jsr SetCursor - clc - rts - + bcc .3 not in TBAR + + + bra .5 + .3 iny #S.WND.MBarY2 lda (ZPWNDPtr),y @@ -198,16 +201,31 @@ MOU.CheckOverWND iny lda (ZPWNDPtr),y sbc MouseData+S.MOUSE.Y1+1 - bcc .6 - - lda #CUR.T.CROSS + bcc .4 not in MBAR + + + bra .5 + +.4 iny #S.WND.SBarY1 + + lda (ZPWNDPtr),y + cmp MouseData+S.MOUSE.Y1 + iny + lda (ZPWNDPtr),y + sbc MouseData+S.MOUSE.Y1+1 + bcs .6 not in TBAR + + + +.5 lda #CUR.T.ARROW jsr SetCursor clc rts - - + + .6 lda #CUR.T.WAIT jsr SetCursor + clc rts @@ -224,7 +242,7 @@ MOU.CheckOverWND *-------------------------------------- MOU.ChkWNDBorders stz IY - + ldy #S.OBJ.X1 lda (ZPWNDPtr),y sec @@ -240,7 +258,7 @@ MOU.ChkWNDBorders lda #CUR.T.RESIZEX sta IY - + .1 ldy #S.OBJ.Y1 lda (ZPWNDPtr),y sec @@ -259,10 +277,10 @@ MOU.ChkWNDBorders lda #CUR.T.RESIZEXY1 jmp SetCursor - + .2 lda #CUR.T.RESIZEY sta IY - + .3 ldy #S.OBJ.X2 lda (ZPWNDPtr),y clc @@ -275,12 +293,12 @@ MOU.ChkWNDBorders adc #0 eor MouseData+S.MOUSE.X2+1 bne .5 - + lda IY beq .4 - + lda #CUR.T.RESIZEXY2 - jmp SetCursor + jmp SetCursor .4 lda #CUR.T.RESIZEX sta IY @@ -300,7 +318,7 @@ MOU.ChkWNDBorders lda #CUR.T.RESIZEXY1 .6 jmp SetCursor - + .7 lda IY bne .6 @@ -310,23 +328,23 @@ MOU.ChkWNDBorders MOU.InRectYA >STYA ZPRECTPtr ldy #S.RECT.X1 - + lda MouseData+S.MOUSE.X1 cmp (ZPRECTPtr),y iny lda MouseData+S.MOUSE.X1+1 sbc (ZPRECTPtr),y bcc .9 - + iny #S.RECT.Y1 - + lda MouseData+S.MOUSE.Y1 cmp (ZPRECTPtr),y iny lda MouseData+S.MOUSE.Y1+1 sbc (ZPRECTPtr),y bcc .9 - + iny #S.RECT.X2 lda (ZPRECTPtr),y @@ -335,8 +353,8 @@ MOU.InRectYA >STYA ZPRECTPtr lda (ZPRECTPtr),y sbc MouseData+S.MOUSE.X1+1 bcc .9 - - iny #S.RECT.Y2 + + iny #S.RECT.Y2 lda (ZPRECTPtr),y cmp MouseData+S.MOUSE.Y1 @@ -344,12 +362,12 @@ MOU.InRectYA >STYA ZPRECTPtr lda (ZPRECTPtr),y sbc MouseData+S.MOUSE.Y1+1 bcc .9 - + clc rts .9 sec -.99 rts +.99 rts *-------------------------------------- MAN SAVE usr/src/lib/libgui.s.mou diff --git a/LIB/LIBGUI.S.OBJ.txt b/LIB/LIBGUI.S.OBJ.txt new file mode 100644 index 00000000..8407f4f1 --- /dev/null +++ b/LIB/LIBGUI.S.OBJ.txt @@ -0,0 +1,58 @@ +NEW + AUTO 3,1 +*-------------------------------------- +OBJ.New +*-------------------------------------- +* hOBJ, Prop8, Value16 +*-------------------------------------- +OBJ.SetProp ldy #3 + + lda (pStack),y hOBJ + + >SYSCALL2 GetMemPtr + >STYA ZPObjPtr + + ldy #2 + lda (pStack),y + + tay + + lda (ZPObjPtr),y + pha old value + >PULLA + sta (ZPObjPtr),y + + iny + lda (ZPObjPtr),y + tax + >PULLA + sta (ZPObjPtr),y + + txa + ply + + >RET 2 +*-------------------------------------- +* hOBJ, Prop8 +*-------------------------------------- +OBJ.GetProp >PULLA + pha + + >PULLA + >SYSCALL2 GetMemPtr + >STYA ZPObjPtr + + ply + + lda (ZPObjPtr),y + pha + iny + lda (ZPObjPtr),y + ply + + rts +*-------------------------------------- +MAN +SAVE usr/src/lib/libgui.s.obj +LOAD usr/src/lib/libgui.s +ASM diff --git a/LIB/LIBGUI.S.SYSBAR.txt b/LIB/LIBGUI.S.SYSBAR.txt index 866c1a69..18c1aa4c 100644 --- a/LIB/LIBGUI.S.SYSBAR.txt +++ b/LIB/LIBGUI.S.SYSBAR.txt @@ -114,8 +114,8 @@ SYSBAR.ShowSysBut adc #0 sta DY+1 - >LDYA L.BM.Apple - jsr DRAW.YABMAtDXDY + ldx #BM.ID.APPLE + jsr DRAW.xBMAtDXDY lda RECT.SysBut+S.RECT.X1 clc diff --git a/LIB/LIBGUI.S.WND.txt b/LIB/LIBGUI.S.WND.txt index 77445029..9d315c13 100644 --- a/LIB/LIBGUI.S.WND.txt +++ b/LIB/LIBGUI.S.WND.txt @@ -20,7 +20,7 @@ WND.Init >PUSHBI 0 .9 rts *-------------------------------------- -WND.Setup +WND.Setup * stz WND.Stack.Top * stz MENU.Stack.Top @@ -38,12 +38,12 @@ WND.Setup sec sbc WND.SysBar+S.OBJ.H sta WND.Desktop+S.OBJ.H - + sta WND.SysBar+S.OBJ.Y1 sta RECT.SysBut+S.RECT.Y1 sta RECT.SysWNDs+S.RECT.Y1 sta RECT.SysClk+S.RECT.Y1 - + lda DCB.GFX+S.DCB.GFX.H dec sta RECT.SysBut+S.RECT.Y2 @@ -54,13 +54,13 @@ WND.Setup >STYA WND.Desktop+S.OBJ.hPARENT >STYA WND.SysBar+S.OBJ.hPARENT jsr OBJ.SetX2Y2 - + >LDYA L.WND.Desktop jsr OBJ.SetX2Y2 >LDYA L.WND.SysBar jsr OBJ.SetX2Y2 - + >LDYA L.WND.SysBar.2osX ldx hSYSFON jsr FON.GetTextSize @@ -70,7 +70,7 @@ WND.Setup adc #24 4 + BM width + 4 sta RECT.SysBut+S.RECT.X2 sta RECT.SysWNDs+S.RECT.X1 - + >LDYA L.WND.SysBar.Clk ldx hSYSFON jsr FON.GetTextSize @@ -79,7 +79,7 @@ WND.Setup sec for sbc below adc #8 4 + 00:00 + 4 sta RECT.SysWNDs+S.RECT.X2 - + lda DCB.GFX+S.DCB.GFX.W sec sbc RECT.SysWNDs+S.RECT.X2 @@ -89,7 +89,7 @@ WND.Setup sbc #0 sta RECT.SysWNDs+S.RECT.X2+1 sta RECT.SysClk+S.RECT.X1+1 - + lda DCB.GFX+S.DCB.GFX.W sec sbc #0 @@ -97,7 +97,7 @@ WND.Setup lda DCB.GFX+S.DCB.GFX.W sbc #0 sta RECT.SysClk+S.RECT.X2+1 - + jsr SYSBAR.Show rts @@ -125,7 +125,7 @@ WND.New >LDYAI S.WND ldy WND.Stack.Top cpy #WND.MAX bcc .10 - + lda #E.OOH .9 >POP 9 @@ -152,16 +152,28 @@ WND.New >LDYAI S.WND >PULLA ldy #S.OBJ.H sta (ZPWNDPtr),y + pha >PULLA iny sta (ZPWNDPtr),y - + ldy #S.WND.InnerH+1 + sta (ZPWNDPtr),y + pla + dey + sta (ZPWNDPtr),y + >PULLA ldy #S.OBJ.W sta (ZPWNDPtr),y + pha >PULLA iny sta (ZPWNDPtr),y + ldy #S.WND.InnerW+1 + sta (ZPWNDPtr),y + pla + dey + sta (ZPWNDPtr),y >PULLA ldy #S.OBJ.Y1 @@ -181,7 +193,7 @@ WND.New >LDYAI S.WND >PULLA bit #S.WND.F.RESIZE beq .2 - + ora #S.WND.F.BORDER .2 ldy #S.OBJ.F @@ -192,18 +204,15 @@ WND.New >LDYAI S.WND ldy #S.OBJ.hOWNER sta (ZPWNDPtr),y - + lda L.WND.Desktop ldy #S.OBJ.hPARENT sta (ZPWNDPtr),y iny lda L.WND.Desktop+1 sta (ZPWNDPtr),y - + txa ID - ldy WND.Stack.Top - sta WND.Stack,y - inc WND.Stack.Top * clc rts @@ -211,57 +220,62 @@ WND.New >LDYAI S.WND WND.Destroy clc rts *-------------------------------------- -* hWND8, Prop8, Value16 -*-------------------------------------- -WND.SetProp ldy #3 - - lda (pStack),y hWND - - >SYSCALL2 GetMemPtr +WND.Activate >SYSCALL2 GetMemPtr >STYA ZPWNDPtr - ldy #2 - lda (pStack),y - tay - - >PULLA - sta (ZPWNDPtr),y - - iny - >PULLA - sta (ZPWNDPtr),y - - >RET 2 + clc +WND.Activate.RTS + rts *-------------------------------------- -* hWND8, Prop8 -*-------------------------------------- -WND.GetProp >PULLA +WND.Bring2Front ldx WND.Stack.Idx + cpx WND.Stack.Top + beq WND.Activate.RTS + + lda WND.Stack-1,x pha - >PULLA - >SYSCALL2 GetMemPtr - >STYA ZPWNDPtr +.1 lda WND.Stack,x + sta WND.Stack-1,x + inx + cpx WND.Stack.Top + bne .1 - ply + dec WND.Stack.Top - lda (ZPWNDPtr),y - pha - iny - lda (ZPWNDPtr),y - ply - -WND.GetProp.RTS rts +.2 pla *-------------------------------------- * A = hWND *-------------------------------------- -WND.Show >SYSCALL2 GetMemPtr +WND.Show sta WND.hWND + + ldx WND.Stack.Top + beq WND.Show1 + + lda WND.Stack-1,x + >SYSCALL2 GetMemPtr + >STYA ZPWNDPtr + + lda #S.WND.S.ACTIVE + jsr WND.ClrStatus + + jsr GetCBBuf + bcs WND.Activate.RTS + + jsr WND.PaintTopBar + +WND.Show1 lda WND.hWND + ldy WND.Stack.Top + sta WND.Stack,y + inc WND.Stack.Top + + >SYSCALL2 GetMemPtr >STYA ZPWNDPtr jsr OBJ.SetX2Y2 - jsr GetCBBuf - bcs WND.GetProp.RTS +WND.Show2 jsr GetCBBuf + bcs WND.Activate.RTS lda #S.WND.S.ACTIVE jsr WND.SetStatus @@ -286,7 +300,8 @@ WND.Show >SYSCALL2 GetMemPtr and #S.WND.F.BORDER beq .1 - jsr WND.PaintBorders + lda #1 + jsr WND.ShowBorders .1 ldy #S.WND.TITLE+1 lda (ZPWNDPtr),y @@ -316,7 +331,7 @@ WND.Show >SYSCALL2 GetMemPtr jsr WND.SetStatus jsr WND.PaintTopBar - bcs WND.GetProp.RTS + bcs .9 *-------------------------------------- .3 ldy #S.WND.MBAR+1 lda (ZPWNDPtr),y @@ -381,7 +396,7 @@ WND.Show >SYSCALL2 GetMemPtr sec sbc Counter+1 sta (ZPWNDPtr),y - + iny lda (ZPWNDPtr),y sbc #0 @@ -389,7 +404,11 @@ WND.Show >SYSCALL2 GetMemPtr >LDYA L.WND.Desktop - jmp DrawCBPtrToYA1 + jsr DrawCBPtrToYA1 + + lda WND.hWND + pha + bra WND.Paint1 .9 rts *-------------------------------------- @@ -397,181 +416,190 @@ WND.Paint pha hWND >SYSCALL2 GetMemPtr >STYA ZPWNDPtr - - ldy #S.WND.fPaint - lda (ZPWNDPtr),y + +WND.Paint1 ldy #S.WND.fPaint + lda (ZPWNDPtr),y sta ZPPtr1 iny - lda (ZPWNDPtr),y + lda (ZPWNDPtr),y sta ZPPtr1+1 - + pla - + jmp (ZPPtr1) *-------------------------------------- -WND.fPaint -* >SYSCALL2 GetMemPtr done by WND.Paint -* >STYA ZPWNDPtr +WND.fPaint >SYSCALL2 GetMemPtr + >STYA ZPWNDPtr + + jsr GetCBBuf + bcs .9 - ldy #S.WND.BGBM+1 - lda (ZPWNDPtr),y - bne .1 - lda #S.CB.CMD.FILLRECT - sta CB.Buf+S.CB.CMD + sta CB.Cache+S.CB.CMD lda #S.CB.OP.SET - sta CB.Buf+S.CB.OP - + sta CB.Cache+S.CB.OP + lda #S.CB.M.MONO - sta CB.Buf+S.CB.M - + sta CB.Cache+S.CB.M + ldy #S.WND.BGCOLOR lda (ZPWNDPtr),y - sta CB.Buf+S.CB.COLOR - + sta CB.Cache+S.CB.COLOR + ldy #S.OBJ.X1 lda (ZPWNDPtr),y - sta CB.Buf+S.CB.X1 + sta CB.Cache+S.CB.X1 iny lda (ZPWNDPtr),y - sta CB.Buf+S.CB.X1+1 - + sta CB.Cache+S.CB.X1+1 + ldy #S.WND.InnerY1 lda (ZPWNDPtr),y clc adc #1 - sta CB.Buf+S.CB.Y1 + sta CB.Cache+S.CB.Y1 iny lda (ZPWNDPtr),y adc #0 - sta CB.Buf+S.CB.Y1+1 + sta CB.Cache+S.CB.Y1+1 ldy #S.OBJ.X2 lda (ZPWNDPtr),y - sta CB.Buf+S.CB.X2 + sta CB.Cache+S.CB.X2 iny lda (ZPWNDPtr),y - sta CB.Buf+S.CB.X2+1 + sta CB.Cache+S.CB.X2+1 ldy #S.WND.InnerY2 lda (ZPWNDPtr),y sec sbc #1 - sta CB.Buf+S.CB.Y2 + sta CB.Cache+S.CB.Y2 iny lda (ZPWNDPtr),y sbc #0 - sta CB.Buf+S.CB.Y2+1 + sta CB.Cache+S.CB.Y2+1 + + jsr PutCBCache2CBBuf + + ldy #S.WND.BGBM+1 + lda (ZPWNDPtr),y + beq .1 - stz CB.Buf+S.CB.Y2+2 Ending 0 - >LDYA L.WND.Desktop - jmp DrawCBBufToYA -.1 clc - rts + + +.1 >LDYA L.WND.Desktop + jmp DrawCBPtrToYA1 + +.9 rts *-------------------------------------- -WND.PaintBorders - lda #S.CB.CMD.HLINE TOP - jsr WND.PaintBorders.H +WND.ShowBorders sta IY - ldy #S.OBJ.X1 - jsr WND.PaintPushWYm1 + lda #S.CB.CMD.HLINE + jsr CB.InitCacheA - ldy #S.OBJ.Y1 - jsr WND.PaintPushWYm1 - - ldy #S.OBJ.X2 - jsr WND.PaintPushWYp1 - - ldy #S.OBJ.Y1 - jsr WND.PaintPushWYm1 - - lda #S.CB.CMD.VLINE LEFT - jsr WND.PaintBorders.H - - ldy #S.OBJ.X1 - jsr WND.PaintPushWYm1 - - ldy #S.OBJ.Y1 - jsr WND.PaintPushWYm1 - - ldy #S.OBJ.X1 - jsr WND.PaintPushWYm1 - - ldy #S.OBJ.Y2 - jsr WND.PaintPushWYp1 - - lda #S.CB.CMD.VLINE RIGHT - jsr WND.PaintBorders.H - - ldy #S.OBJ.X2 - jsr WND.PaintPushWYp1 - - ldy #S.OBJ.Y1 - jsr WND.PaintPushWYm1 - - ldy #S.OBJ.X2 - jsr WND.PaintPushWYp1 - - ldy #S.OBJ.Y2 - jsr WND.PaintPushWYp1 - - lda #S.CB.CMD.HLINE BOTTOM - jsr WND.PaintBorders.H - - ldy #S.OBJ.X1 - jsr WND.PaintPushWYm1 - - ldy #S.OBJ.Y2 - jsr WND.PaintPushWYp1 - - ldy #S.OBJ.X2 - jsr WND.PaintPushWYp1 - - ldy #S.OBJ.Y2 - jsr WND.PaintPushWYp1 - - rts - -WND.PaintBorders.H - jsr PutA2CBBuf lda #S.CB.OP.SET - jsr PutA2CBBuf + sta CB.Cache+S.CB.OP lda #S.CB.M.MONO - jsr PutA2CBBuf + sta CB.Cache+S.CB.M lda PREFS.BORDERCOLOR - jmp PutA2CBBuf + sta CB.Cache+S.CB.COLOR + + ldy #S.OBJ.X1 -WND.PaintPushWYm1 lda (ZPWNDPtr),y sec - sbc #1 - jsr PutA2CBBuf + sbc IY + sta CB.Cache+S.CB.X1 iny lda (ZPWNDPtr),y sbc #0 - jsr PutA2CBBuf - rts + sta CB.Cache+S.CB.X1+1 + + iny #S.OBJ.Y1 + + lda (ZPWNDPtr),y + sec + sbc IY + sta CB.Cache+S.CB.Y1 + sta CB.Cache+S.CB.Y2 + iny + lda (ZPWNDPtr),y + sbc #0 + sta CB.Cache+S.CB.Y1+1 + sta CB.Cache+S.CB.Y2+1 top X1-1,Y1-1,X2+1,Y1-1 + + iny #S.OBJ.X2 -WND.PaintPushWYp1 lda (ZPWNDPtr),y clc - adc #1 - jsr PutA2CBBuf + adc IY + sta CB.Cache+S.CB.X2 iny - adc #0 lda (ZPWNDPtr),y - jsr PutA2CBBuf - rts + adc #0 + sta CB.Cache+S.CB.X2+1 + + jsr PutCBCache2CBBuf + + ldy #S.OBJ.Y2 + lda (ZPWNDPtr),y + clc + adc IY + sta CB.Cache+S.CB.Y1 + sta CB.Cache+S.CB.Y2 + iny + lda (ZPWNDPtr),y + adc #0 + sta CB.Cache+S.CB.Y1+1 + sta CB.Cache+S.CB.Y2+1 bottom X1-1,Y2+1,X2+1,Y2+1 + + jsr PutCBCache2CBBuf + + lda #S.CB.CMD.VLINE + sta CB.Cache+S.CB.CMD + + ldy #S.OBJ.Y1 + lda (ZPWNDPtr),y + sec + sbc IY + sta CB.Cache+S.CB.Y1 + iny + lda (ZPWNDPtr),y + sbc #0 + 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-1,Y1-1,X1-1,Y2+1 + + jsr PutCBCache2CBBuf + + ldy #S.OBJ.X2 + lda (ZPWNDPtr),y + clc + adc IY + sta CB.Cache+S.CB.X1 + sta CB.Cache+S.CB.X2 + iny + lda (ZPWNDPtr),y + adc #0 + sta CB.Cache+S.CB.X1+1 + sta CB.Cache+S.CB.X2+1 right X2+1,Y1-1,X2+1,Y2+1 + + jmp PutCBCache2CBBuf *-------------------------------------- WND.PaintTopBar lda #S.CB.CMD.FILLRECT - jsr PutA2CBBuf + jsr CB.InitCacheA + lda #S.CB.OP.SET - jsr PutA2CBBuf + sta CB.Cache+S.CB.OP lda #S.CB.M.C16 - jsr PutA2CBBuf + sta CB.Cache+S.CB.M ldx PREFS.TBARCOLORI @@ -582,219 +610,112 @@ WND.PaintTopBar lda #S.CB.CMD.FILLRECT ldx PREFS.TBARCOLORA -.10 txa - jsr PutA2CBBuf +.10 stx CB.Cache+S.CB.COLOR - ldy #S.OBJ.X1 - lda (ZPWNDPtr),y - jsr PutA2CBBuf - iny - lda (ZPWNDPtr),y - jsr PutA2CBBuf + ldy #S.OBJ.X1+5 X1,Y1,X2 + ldx #5 - iny ldy #S.OBJ.Y1 - lda (ZPWNDPtr),y - jsr PutA2CBBuf - iny - lda (ZPWNDPtr),y - jsr PutA2CBBuf +.11 lda (ZPWNDPtr),y + sta CB.Cache+S.CB.X1,x + dey + dex + bpl .11 - iny ldy #S.OBJ.X2 - lda (ZPWNDPtr),y - jsr PutA2CBBuf - iny - lda (ZPWNDPtr),y - jsr PutA2CBBuf + >LDYA CB.Cache+S.CB.X1 + >STYA DX ldy #S.OBJ.Y1 lda (ZPWNDPtr),y + sta DY sec adc SYSFON.H - jsr PutA2CBBuf + sta CB.Cache+S.CB.Y2 iny lda (ZPWNDPtr),y + sta DY+1 adc #0 - jsr PutA2CBBuf + sta CB.Cache+S.CB.Y2+1 + jsr PutCBCache2CBBuf + + inc DY + bne .12 + inc DY+1 + * TOP LEFT ICON - ldy #S.WND.ICON+1 +.12 ldy #S.WND.ICON+1 lda (ZPWNDPtr),y tax dey ora (ZPWNDPtr),y bne .1 - lda L.BM.Apple - ldx L.BM.Apple+1 + >LDYA L.BM.Apple bra .2 .1 lda (ZPWNDPtr),y + tay + txa -.2 sta ZPObjPtr - stx ZPObjPtr+1 - - lda #0 - ldx #0 - - jsr WND.PaintTopBarBMAtAX +.2 jsr DRAW.yaBMAtDXDY jsr WND.PaintTopBarTitle bcs .9 + * TOP RIGHT ICONS - ldy #S.OBJ.F - lda (ZPWNDPtr),y - bit #S.WND.F.CLOSE - beq .3 - - pha - - lda L.BM.Close - ldx L.BM.Close+1 - sta ZPObjPtr - stx ZPObjPtr+1 - - ldy #S.OBJ.W - lda (ZPWNDPtr),y - sec - sbc #16 - pha - iny - lda (ZPWNDPtr),y - sbc #0 - - tax - pla - - jsr WND.PaintTopBarBMAtAX - - pla - -.3 bit #S.WND.F.MAX - beq .4 - - pha - - lda L.BM.Max - ldx L.BM.Max+1 - sta ZPObjPtr - stx ZPObjPtr+1 - - ldy #S.OBJ.W - lda (ZPWNDPtr),y - sec - sbc #32 - pha - iny - lda (ZPWNDPtr),y - sbc #0 - - tax - pla - - jsr WND.PaintTopBarBMAtAX - - pla - -.4 bit #S.WND.F.MIN - beq .8 - - lda L.BM.Min - ldx L.BM.Min+1 - sta ZPObjPtr - stx ZPObjPtr+1 - - ldy #S.OBJ.W + ldy #S.OBJ.X2 lda (ZPWNDPtr),y sec sbc #48 - pha + sta DX + iny lda (ZPWNDPtr),y sbc #0 + sta DX+1 - tax - pla + ldy #S.OBJ.F + lda (ZPWNDPtr),y + bit #S.WND.F.MIN + beq .3 - jsr WND.PaintTopBarBMAtAX + ldx #BM.ID.MIN + jsr DRAW.xBMAtDXDY +.3 lda DX + clc + adc #16 + sta DX + bcc .31 + inc DX+1 + +.31 ldy #S.OBJ.F + lda (ZPWNDPtr),y + bit #S.WND.F.MAX + beq .4 + + ldx #BM.ID.MAX + jsr DRAW.xBMAtDXDY + +.4 lda DX + clc + adc #16 + sta DX + bcc .41 + inc DX+1 + +.41 ldy #S.OBJ.F + lda (ZPWNDPtr),y + bit #S.WND.F.CLOSE + beq .8 + + ldx #BM.ID.CLOSE + jsr DRAW.xBMAtDXDY .8 clc .9 rts *-------------------------------------- -WND.PaintTopBarBMAtAX - clc - ldy #S.OBJ.X1 - adc (ZPWNDPtr),y - pha - - iny - - txa - adc (ZPWNDPtr),y - - tax - - lda #S.CB.CMD.BITBLT - jsr PutA2CBBuf - lda #S.CB.OP.MASK+S.CB.OP.ORA+S.CB.OP.COLOR - jsr PutA2CBBuf - lda #S.CB.M.C16 - jsr PutA2CBBuf - - lda #0 - jsr PutA2CBBuf - - pla S.CB.X1 - jsr PutAX2CBBuf - - ldy #S.OBJ.Y1 S.CB.Y1 - lda (ZPWNDPtr),y - clc - adc #1 - jsr PutA2CBBuf - iny - lda (ZPWNDPtr),y - adc #0 - jsr PutA2CBBuf - - lda #0 S.CB.X2 - jsr PutA2CBBuf - jsr PutA2CBBuf - - jsr PutA2CBBuf S.CB.Y2 - jsr PutA2CBBuf - - jsr PutA2CBBuf S.CB.SrcX - jsr PutA2CBBuf - - jsr PutA2CBBuf S.CB.SrcY - jsr PutA2CBBuf - - ldx #4 - - ldy #S.BM.W - -.1 lda (ZPObjPtr),y S.CB.SrcW,S.CB.SrcH - jsr PutA2CBBuf - iny - dex - bne .1 - - lda ZPObjPtr S.CB.SrcPtr - jsr PutA2CBBuf - - lda ZPObjPtr+1 - jsr PutA2CBBuf - - lda #0 S.CB.DstPtr - jsr PutA2CBBuf - jsr PutA2CBBuf - - rts -*-------------------------------------- WND.PaintTopBarTitle - jsr CB.ClearCache - ldy #S.WND.TITLE lda (ZPWNDPtr),y pha @@ -804,13 +725,6 @@ WND.PaintTopBarTitle ldx hSYSFONB jsr FON.GetTextSize - - lda #S.CB.CMD.DRAWTEXT2 - sta CB.Cache+S.CB.CMD - lda #S.CB.OP.SET+S.CB.OP.INVERSE - sta CB.Cache+S.CB.OP - lda #S.CB.M.MONO - sta CB.Cache+S.CB.M ldy #S.OBJ.W lda (ZPWNDPtr),y @@ -832,33 +746,26 @@ WND.PaintTopBarTitle clc adc DX and PREFS.BESTVIEWEDX - sta CB.Cache+S.CB.X1 + sta DX iny lda (ZPWNDPtr),y adc DX+1 - sta CB.Cache+S.CB.X1+1 + sta DX+1 - ldy #S.OBJ.Y1 + ldy #S.WND.TITLE lda (ZPWNDPtr),y - clc - adc #1 - sta CB.Cache+S.CB.Y1 + pha iny lda (ZPWNDPtr),y - adc #0 - sta CB.Cache+S.CB.Y1+1 - - jsr PutCBCache2CBBuf + ply + ldx hSYSFONB clc - - rts + jmp DRAW.YATextAtDXDY *-------------------------------------- -WND.PaintMBar jsr CB.ClearCache - - lda #S.CB.CMD.FILLRECT - sta CB.Cache+S.CB.CMD +WND.PaintMBar lda #S.CB.CMD.FILLRECT + jsr CB.InitCacheA lda #S.CB.OP.SET sta CB.Cache+S.CB.OP @@ -935,7 +842,7 @@ WND.PaintMBar jsr CB.ClearCache ldy #S.OBJ.X1 adc (ZPWNDPtr),y sta CB.CACHE+S.CB.X1 - + ldy #S.MBITEM.XT+1 lda (ZPMENUPtr),y ldy #S.OBJ.X1+1 @@ -956,7 +863,7 @@ WND.PaintMBar jsr CB.ClearCache clc adc ZPMENUPtr sta CB.CACHE+S.CB.TxtPtr - + lda #0 adc ZPMENUPtr+1 sta CB.CACHE+S.CB.TxtPtr+1 @@ -976,103 +883,60 @@ WND.PaintMBar jsr CB.ClearCache rts *-------------------------------------- WND.PaintSBar lda #S.CB.CMD.HLINE - jsr WND.PaintBorders.H + jsr CB.InitCacheA - ldy #S.OBJ.X1 - lda (ZPWNDPtr),y - jsr PutA2CBBuf - iny - lda (ZPWNDPtr),y - jsr PutA2CBBuf - - ldy #S.OBJ.Y2 - lda (ZPWNDPtr),y - sec - sbc SYSFON.H - jsr PutA2CBBuf - iny - lda (ZPWNDPtr),y - sbc #0 - jsr PutA2CBBuf - - ldy #S.OBJ.X2 - lda (ZPWNDPtr),y - jsr PutA2CBBuf - iny - lda (ZPWNDPtr),y - jsr PutA2CBBuf - - lda #0 - jsr PutA2CBBuf - jsr PutA2CBBuf - - jsr CB.ClearCache S.CB.Y2 - - lda #S.CB.CMD.DRAWTEXT+S.CB.CMD.OSD - sta CB.Cache+S.CB.CMD - lda #S.CB.OP.SET+S.CB.OP.INVERSE - sta CB.Cache+S.CB.OP - lda #S.CB.M.MONO - sta CB.Cache+S.CB.M - lda hSYSFON - sta CB.Cache+S.CB.hFont - - ldy #S.WND.STATUS - lda (ZPWNDPtr),y - sta CB.Cache+S.CB.TxtPtr - iny - lda (ZPWNDPtr),y - sta CB.Cache+S.CB.TxtPtr+1 - - jsr GFXWrite.CB - bcs .9 - - 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.Y2 - lda (ZPWNDPtr),y - sec - sbc SYSFON.Hm1 - sta CB.Cache+S.CB.Y1 - iny - lda (ZPWNDPtr),y - sbc #0 - sta CB.Cache+S.CB.Y1+1 - - jsr PutCBCache2CBBuf - - 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.SBARCOLOR - sta CB.Cache+S.CB.OP.COLOR + lda PREFS.BORDERCOLOR + sta CB.Cache+S.CB.COLOR - lda CB.Cache+S.CB.X1 - clc - adc CB.Cache+S.CB.SrcW + ldy #S.OBJ.X1 + lda (ZPWNDPtr),y sta CB.Cache+S.CB.X1 - - lda CB.Cache+S.CB.X1+1 - adc CB.Cache+S.CB.SrcW+1 + sta DX + iny + lda (ZPWNDPtr),y sta CB.Cache+S.CB.X1+1 + sta DX+1 - ldy #S.OBJ.X2 + ldy #S.WND.SBarY1 + lda (ZPWNDPtr),y + sta CB.Cache+S.CB.Y1 + clc + adc #1 + sta DY + + iny + lda (ZPWNDPtr),y + sta CB.Cache+S.CB.Y1+1 + adc #0 + sta DY+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.OBJ.Y2 + jsr PutCBCache2CBBuf + + 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.SBARCOLOR + sta CB.Cache+S.CB.COLOR + + inc CB.Cache+S.CB.Y1 + bne .1 + inc CB.Cache+S.CB.Y1+1 + +.1 ldy #S.OBJ.Y2 lda (ZPWNDPtr),y sta CB.Cache+S.CB.Y2 iny @@ -1081,9 +945,16 @@ WND.PaintSBar lda #S.CB.CMD.HLINE jsr PutCBCache2CBBuf - clc + ldy #S.WND.STATUS + lda (ZPWNDPtr),y + pha + iny + lda (ZPWNDPtr),y + ply -.9 rts + ldx hSYSFON + clc + jmp DRAW.YATextAtDXDY *-------------------------------------- WND.ClrStatus ldy #S.OBJ.S eor #$ff diff --git a/LIB/LIBGUI.S.txt b/LIB/LIBGUI.S.txt index c15ddd79..d1c9f295 100644 --- a/LIB/LIBGUI.S.txt +++ b/LIB/LIBGUI.S.txt @@ -126,10 +126,10 @@ CS.START cld .DA UpdateCursor .DA MOU.ReadMouse .DA DrawLine + .DA OBJ.SetProp + .DA OBJ.GetProp .DA WND.New .DA WND.Destroy - .DA WND.SetProp - .DA WND.GetProp .DA WND.Show .DA WND.Paint L.WND.fPaint .DA WND.fPaint @@ -143,7 +143,6 @@ L.DCB.GFX .DA DCB.GFX L.MouseClamp .DA MouseClamp L.MouseData .DA MouseData L.CB.PTR .DA CB.PTR -L.CB.Buf .DA CB.Buf L.CB.Cache .DA CB.Cache L.OBJ.Cache .DA OBJ.Cache L.WND.Screen .DA WND.Screen @@ -232,7 +231,7 @@ LIB.UNLOAD dec LibCount .8 clc rts *-------------------------------------- -CB.InitCacheA sta CB.Cache +CB.InitCacheA sta CB.Cache+S.CB.CMD *-------------------------------------- CB.ClearCache ldx #S.CB-1 @@ -253,7 +252,12 @@ CB.GetInCache >STYA .1+1 rts *-------------------------------------- -GetCBBuf >LDYAI 512 +GetCBBuf clc + + ldx hCBBuf + bne .9 + + >LDYAI 512 >SYSCALL GetMem bcs .9 @@ -272,23 +276,18 @@ PutCBCache2CBBuf ldx #0 .1 lda CB.Cache,x - jsr PutA2CBBuf - inx + sta (ZPCBBufPtr) + inc ZPCBBufPtr + bne .2 + + inc ZPCBBufPtr+1 + +.2 inx dey bpl .1 rts *-------------------------------------- -PutAX2CBBuf jsr PutA2CBBuf - - txa - -PutA2CBBuf sta (ZPCBBufPtr) - inc ZPCBBufPtr - bne .8 - inc ZPCBBufPtr+1 -.8 rts -*-------------------------------------- GFXWrite.CB >PUSHB WND.Screen+S.OBJ.hPARENT >PUSHBI IOCTL.WRITE >PUSHW L.CB.Cache @@ -367,6 +366,7 @@ OBJ.SetX2Y2 >STYA ZPPtr1 .INB usr/src/lib/libgui.s.mbar .INB usr/src/lib/libgui.s.menu .INB usr/src/lib/libgui.s.mou + .INB usr/src/lib/libgui.s.obj .INB usr/src/lib/libgui.s.pat .INB usr/src/lib/libgui.s.sysbar .INB usr/src/lib/libgui.s.text @@ -418,13 +418,13 @@ CB.PTR .DA #S.CB.CMD.BITBLT .DA #0 .BS S.CB-4 *-------------------------------------- -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.hWND .BS 1 WND.Stack.Idx .BS 1 WND.Stack.Top .BS 1 WND.Stack .BS WND.MAX @@ -559,8 +559,8 @@ PREFS.MBARXMARGIN .DA #5 PREFS.MENUCOLOR .DA #C.WHITE PREFS.SYSBARCOLOR .DA #C.WHITE PREFS.BORDERCOLOR .DA #C.BLACK -PREFS.TBARCOLORA .DA #C16.L.BLUE -PREFS.TBARCOLORI .DA #C16.AQUA +PREFS.TBARCOLORA .DA #C16.D.BLUE +PREFS.TBARCOLORI .DA #C16.L.BLUE PREFS.MBARCOLOR .DA #C.WHITE PREFS.SBARCOLOR .DA #C.WHITE PREFS.DESKTOPCOLOR .DA #C16.D.BLUE diff --git a/SBIN/GUI.S.txt b/SBIN/GUI.S.txt index 3887cbf9..a7b1972e 100644 --- a/SBIN/GUI.S.txt +++ b/SBIN/GUI.S.txt @@ -46,33 +46,35 @@ 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 >SYSCALL LoadLib bcs .9 + sta hLIBGUI -* clc +* clc .9 CS.INIT.RTS rts *-------------------------------------- CS.RUN >LIBCALL hLIBGUI,LIBGUI.ShowCursor >PUSHW L.LOGOFILE - >PUSHBI O.RDONLY + >PUSHBI O.RDONLY >PUSHBI $CB Type >PUSHWZ Aux type >SYSCALL LoadStkObj bcs CS.INIT.RTS - + stx hLogo - + CS.RUN.LOOP >SLEEP >PUSHW L.MouseData >LIBCALL hLIBGUI,LIBGUI.ReadMouse - bcs .8 + bcs CS.RUN.LOOP lda MouseData+S.MOUSE.S bit #S.MOUSE.S.MOVE @@ -86,27 +88,18 @@ CS.RUN.LOOP >SLEEP .1 bit #S.MOUSE.S.CLK beq .2 -* >LDA.G CUR.T -* inc -* inc -* cmp #CUR.T.WAIT+2 -* bne .11 -* lda #CUR.T.ARROW - -*.11 >STA.G CUR.T -* >LIBCALL hLIBGUI,LIBGUI.SetCursor -* jmp CS.RUN.LOOP + bra CS.RUN.LOOP .2 bit #S.MOUSE.S.DCLK - beq .8 - - jsr WND.Test - -.8 jmp CS.RUN.LOOP + beq CS.RUN.LOOP + + jsr WND.Test + + bra CS.RUN.LOOP clc - rts + rts *-------------------------------------- CS.DOEVENT lda (pEvent) bpl .9 @@ -120,7 +113,7 @@ CS.QUIT clc CS.QUIT.RTS rts *-------------------------------------- WND.Test >PUSHBI S.WND.F.RESIZE+S.WND.F.MOVE+S.WND.F.CLOSE+S.WND.F.MAX+S.WND.F.MIN - + >PUSHW MouseData+S.MOUSE.X1 >PUSHW MouseData+S.MOUSE.Y1 >PUSHWI 280 @@ -128,41 +121,50 @@ WND.Test >PUSHBI S.WND.F.RESIZE+S.WND.F.MOVE+S.WND.F.CLOSE+S.WND.F.MAX+S.WND.F. >LIBCALL hLIBGUI,LIBGUI.WND.New bcs CS.QUIT.RTS sta hWND - + >PUSHA A = hWND + >PUSHBI S.WND.BGCOLOR + >PUSHWI C.WHITE + >LIBCALL hLIBGUI,LIBGUI.OBJ.SetProp + + >PUSHB hWND >PUSHBI S.WND.TITLE >PUSHW L.WND.TITLE - >LIBCALL hLIBGUI,LIBGUI.WND.SetProp - + >LIBCALL hLIBGUI,LIBGUI.OBJ.SetProp + >PUSHB hWND >PUSHBI S.WND.MBAR >PUSHW L.WND.MBAR - >LIBCALL hLIBGUI,LIBGUI.WND.SetProp + >LIBCALL hLIBGUI,LIBGUI.OBJ.SetProp >PUSHB hWND >PUSHBI S.WND.STATUS >PUSHW L.WND.STATUS - >LIBCALL hLIBGUI,LIBGUI.WND.SetProp + >LIBCALL hLIBGUI,LIBGUI.OBJ.SetProp >PUSHB hWND - >PUSHBI S.WND.BGCOLOR - >PUSHWI C.WHITE - >LIBCALL hLIBGUI,LIBGUI.WND.SetProp + >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 - lda hWND - >LIBCALL hLIBGUI,LIBGUI.WND.Paint rts +*-------------------------------------- +WND.Test.fPaint sta hWND + +WND.Test.fPaint1 + jsr $ffff >PUSHB hWND >PUSHBI S.CB.OP.SET >PUSHBI C.BLACK - >PUSHWI 0 - >PUSHWI 0 - >PUSHWI 300 - >PUSHWI 80 + >PUSHWI 10 + >PUSHWI 10 + >PUSHWI 200 + >PUSHWI 60 >LIBCALL hLIBGUI,LIBGUI.DrawLine rts @@ -184,7 +186,7 @@ WND.MBAR .DA #.1-* next .DA 0 XT .DA 0 X2 .DA 0 MENU - .AZ "File" + .AZ "File" .1 .DA #.2-* next .DA #0 status