diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 526fb056..51ae9e52 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index e0a43dae..95c2e935 100644 Binary files a/.Floppies/A2OSX.SRC.po and b/.Floppies/A2OSX.SRC.po differ diff --git a/DRV/DHGR.DRV.T.txt b/DRV/DHGR.DRV.G.txt similarity index 97% rename from DRV/DHGR.DRV.T.txt rename to DRV/DHGR.DRV.G.txt index eff05bd9..2d4681a0 100644 --- a/DRV/DHGR.DRV.T.txt +++ b/DRV/DHGR.DRV.G.txt @@ -352,6 +352,6 @@ BASEH .HS 20.24.28.2C.30.34.38.3C .HS 23.27.2B.2F.33.37.3B.3F *-------------------------------------- MAN -SAVE /A2OSX.SRC/DRV/DHGR.DRV.T +SAVE /A2OSX.SRC/DRV/DHGR.DRV.G LOAD /A2OSX.SRC/DRV/DHGR.DRV.S ASM diff --git a/DRV/DHGR.DRV.S.txt b/DRV/DHGR.DRV.S.txt index 0298e6d2..0d382730 100644 --- a/DRV/DHGR.DRV.S.txt +++ b/DRV/DHGR.DRV.S.txt @@ -12,6 +12,7 @@ AUTO 6 .INB /A2OSX.BUILD/INC/A2OSX.I .INB /A2OSX.BUILD/INC/PRODOS.I .INB /A2OSX.BUILD/INC/IO.I + .INB /A2OSX.BUILD/INC/GFX.I .INB /A2OSX.BUILD/INC/GFX.EVE.I .INB /A2OSX.BUILD/INC/LIBGUI.I *-------------------------------------- @@ -306,7 +307,7 @@ YAMultX stx GBYTE *-------------------------------------- DRV.CS.END *-------------------------------------- - .INB /A2OSX.SRC/DRV/DHGR.DRV.T + .INB /A2OSX.SRC/DRV/DHGR.DRV.G *-------------------------------------- CONTROL.SWTCHES * sta CLRTEXT @@ -425,9 +426,10 @@ DSTAT .DA #0 .DA #0 .DA #91 *-------------------------------------- -DEVSTAT.MODES .DA #S.CB.MODE.MONO+S.CB.MODE.C16 -DEVSTAT.W .DA 560 X.SIZE -DEVSTAT.H .DA 192 Y.SIZE + .DA #S.CB.MODE.MONO+S.CB.MODE.C16 + .DA #0 S + .DA 560 W + .DA 192 H *-------------------------------------- MAN SAVE /A2OSX.SRC/DRV/DHGR.DRV.S diff --git a/INC/GFX.I.txt b/INC/GFX.I.txt new file mode 100644 index 00000000..5f27e371 --- /dev/null +++ b/INC/GFX.I.txt @@ -0,0 +1,17 @@ +PR#3 +PREFIX /A2OSX.BUILD +NEW +INC 1 +AUTO 6 + .LIST OFF +*-------------------------------------- +* GFX Devices +*-------------------------------------- +S.DSTAT.GFX.F .EQ S.DSTAT +S.DSTAT.GFX.S .EQ S.DSTAT+1 +S.DSTAT.GFX.W .EQ S.DSTAT+2 +S.DSTAT.GFX.H .EQ S.DSTAT+4 +S.DSTAT.GFX .EQ S.DSTAT+6 +*-------------------------------------- +MAN +SAVE /A2OSX.BUILD/INC/GFX.I diff --git a/INC/LIBGUI.I.txt b/INC/LIBGUI.I.txt index 4c5cbac2..908dce7d 100644 --- a/INC/LIBGUI.I.txt +++ b/INC/LIBGUI.I.txt @@ -6,13 +6,14 @@ AUTO 6 .LIST OFF .OP 65C02 *-------------------------------------- -LIBGUI.InitGUI.A .EQ 4 +LIBGUI.InitGUI .EQ 4 LIBGUI.CloseGUI .EQ 6 LIBGUI.Draw .EQ 8 LIBGUI.SetCursor.A .EQ 10 LIBGUI.SetCursorPos .EQ 12 LIBGUI.HideCursor .EQ 14 LIBGUI.ShowCursor .EQ 16 +LIBGUI.ReadMouse .EQ 18 *-------------------------------------- S.CB.CMD .EQ 0 S.CB.CMD.SETPIXEL .EQ 0 @@ -63,16 +64,12 @@ S.GC.H .EQ 14 S.GC .EQ 16 *-------------------------------------- CUR.T.ARROW .EQ 0 -CUR.T.WAIT .EQ 2 -CUR.T.PLUS .EQ 4 -CUR.T.RESIZEX .EQ 6 -CUR.T.RESIZEY .EQ 8 -CUR.T.RESIZEXY .EQ 10 -CUT.T.TEXT .EQ 12 -*-------------------------------------- -S.CUR.HotPointX .EQ 0 -S.CUR.HotPointY .EQ 1 -S.CUR.BM .EQ 2 +CUR.T.RESIZEX .EQ 2 +CUR.T.RESIZEY .EQ 4 +CUR.T.RESIZEXY .EQ 6 +CUR.T.CROSS .EQ 8 +CUT.T.TEXT .EQ 10 +CUR.T.WAIT .EQ 12 *-------------------------------------- S.BM.F .EQ 0 S.BM.F.BBP1 .EQ %00000001 @@ -86,19 +83,25 @@ S.BM.MASK.OFS .EQ 6 * S.BM .EQ 8 *-------------------------------------- -S.MOUSE.S .EQ 0 +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.DRAG .EQ %00001000 S.MOUSE.S.CLK .EQ %00010000 S.MOUSE.S.DCLK .EQ %00100000 -S.MOUSE.X1 .EQ 1 -S.MOUSE.Y1 .EQ 3 -S.MOUSE.X2 .EQ 5 -S.MOUSE.Y2 .EQ 7 S.MOUSE .EQ 9 *-------------------------------------- +S.RECT.X1 .EQ 0 +S.RECT.Y1 .EQ 2 +S.RECT.X2 .EQ 4 +S.RECT.Y2 .EQ 6 +S.RECT .EQ 8 +*-------------------------------------- MAN SAVE /A2OSX.BUILD/INC/LIBGUI.I LOAD /A2OSX.SRC/LIB/LIBGUI.S diff --git a/INC/NET.I.txt b/INC/NET.I.txt deleted file mode 100644 index c8f0c075..00000000 --- a/INC/NET.I.txt +++ /dev/null @@ -1,23 +0,0 @@ -PR#3 -PREFIX /A2OSX.BUILD -NEW -INC 1 -AUTO 6 - .LIST OFF -*-------------------------------------- -* NET Devices -*-------------------------------------- -S.DSTAT.NET.FLAGS .EQ S.DSTAT -S.DSTAT.NET.FLAGS.ARPOFFLOAD .EQ %00000001 -S.DSTAT.NET.FLAGS.IPOFFLOAD .EQ %00000010 -S.DSTAT.NET.STATUS .EQ S.DSTAT+1 -S.DSTAT.NET.STATUS.OK .EQ $80 -S.DSTAT.NET.STATUS.FD .EQ $40 -S.DSTAT.NET.STATUS.10 .EQ $01 -S.DSTAT.NET.STATUS.100 .EQ $02 -S.DSTAT.NET.STATUS.1000 .EQ $03 -S.DSTAT.NET.MAC .EQ S.DSTAT+2 -S.DSTAT.NET .EQ S.DSTAT+8 -*-------------------------------------- -MAN -SAVE /A2OSX.BUILD/INC/NET.I diff --git a/INC/NIC.I.txt b/INC/NIC.I.txt new file mode 100644 index 00000000..bca81a58 --- /dev/null +++ b/INC/NIC.I.txt @@ -0,0 +1,23 @@ +PR#3 +PREFIX /A2OSX.BUILD +NEW +INC 1 +AUTO 6 + .LIST OFF +*-------------------------------------- +* NIC Devices +*-------------------------------------- +S.DSTAT.NIC.FLAGS .EQ S.DSTAT +S.DSTAT.NIC.FLAGS.ARPOFFLOAD .EQ %00000001 +S.DSTAT.NIC.FLAGS.IPOFFLOAD .EQ %00000010 +S.DSTAT.NIC.STATUS .EQ S.DSTAT+1 +S.DSTAT.NIC.STATUS.OK .EQ $80 +S.DSTAT.NIC.STATUS.FD .EQ $40 +S.DSTAT.NIC.STATUS.10 .EQ $01 +S.DSTAT.NIC.STATUS.100 .EQ $02 +S.DSTAT.NIC.STATUS.1000 .EQ $03 +S.DSTAT.NIC.MAC .EQ S.DSTAT+2 +S.DSTAT.NIC .EQ S.DSTAT+8 +*-------------------------------------- +MAN +SAVE /A2OSX.BUILD/INC/NIC.I diff --git a/LIB/LIBGUI.G.CUR.txt b/LIB/LIBGUI.G.CUR.txt new file mode 100644 index 00000000..e3f0b781 --- /dev/null +++ b/LIB/LIBGUI.G.CUR.txt @@ -0,0 +1,59 @@ +PR#3 +PREFIX /A2OSX.BUILD +NEW +INC 1 +AUTO 6 + .LIST OFF +*-------------------------------------- +CUR.T .BS 1 +CUR.bVisible .BS 1 +CUR.Pos .BS S.RECT +*-------------------------------------- +CUR.HotPoints .DA #0,#0 CUR.T.ARROW +*-------------------------------------- +CUR.CB .DA #S.CB.CMD.BITBLT + .BS 1 + .DA #S.CB.MODE.MONO + .DA #0 + .BS 16 +*-------------------------------------- +CUR.SaveBuf .BS 39 13*3 +*-------------------------------------- +CUR.Arrow .DA #S.BM.F.BBP1 + .DA #2 RowBytes + .DA 11 W + .DA 13 H + .DA CUR.Arrow.MASK-CUR.Arrow + + .DA %000.00000000 + .DA %000.00000010 + .DA %000.00000110 + .DA %000.00001110 + .DA %000.00011110 + .DA %000.00111110 + .DA %000.01111110 + .DA %000.11111110 + .DA %001.11111110 + .DA %010.01111110 + .DA %000.11110010 + .DA %000.11100000 + .DA %000.00000000 + +CUR.Arrow.MASK .DA %111.11111100 + .DA %111.11111000 + .DA %111.11110000 + .DA %111.11100000 + .DA %111.11000000 + .DA %111.10000000 + .DA %111.00000000 + .DA %110.00000000 + .DA %100.00000000 + .DA %000.00000000 + .DA %000.00000000 + .DA %110.00000000 + .DA %110.00001111 +*-------------------------------------- +MAN +SAVE /A2OSX.SRC/LIB/LIBGUI.G.CUR +LOAD /A2OSX.SRC/LIB/LIBGUI.S +ASM diff --git a/LIB/LIBGUI.S.CLIP.txt b/LIB/LIBGUI.S.CLIP.txt index 5772798f..d2eacbf6 100644 --- a/LIB/LIBGUI.S.CLIP.txt +++ b/LIB/LIBGUI.S.CLIP.txt @@ -5,15 +5,22 @@ INC 1 AUTO 6 .LIST OFF *-------------------------------------- +* CLIPPING Functions: +* In: +* Control Block in CB.Cache +* Graphic Context in GC.Cache +*-------------------------------------- +ClipPoint +ClipHLine +ClipVLine + +ClipRect lda +*-------------------------------------- ClipLine.LEFT .EQ 1 ClipLine.RIGHT .EQ 2 ClipLine.BOTTOM .EQ 4 ClipLine.TOP .EQ 8 *-------------------------------------- -* In: -* Control Block in CB.Cache -* Graphic Context in GC.Cache -*-------------------------------------- ClipLine jsr ClipLine.EncodeP1 jsr ClipLine.EncodeP2 diff --git a/LIB/LIBGUI.S.CUR.txt b/LIB/LIBGUI.S.CUR.txt index 2ee2b856..0953f1e4 100644 --- a/LIB/LIBGUI.S.CUR.txt +++ b/LIB/LIBGUI.S.CUR.txt @@ -5,17 +5,118 @@ INC 1 AUTO 6 .LIST OFF *-------------------------------------- -SetCursor.A +* Set X2,Y2,SrcPtr *-------------------------------------- -SetCursorPos -*-------------------------------------- -HideCursor -*-------------------------------------- -ShowCursor - +SetCursor.A lda CUR.bVisible + bpl .1 + + jsr HideCursor + +.1 ldx CUR.T + + lda L.Cursors,x + sta CUR.CB+S.CB.SrcPtr + sta ZPPtr1 + + lda L.Cursors+1,x + sta CUR.CB+S.CB.SrcPtr+1 + sta ZPPtr1+1 + + ldy #S.BM.W + + lda #-1 clc + adc (ZPPtr1),y + sta CUR.CB+S.CB.X2 + + iny + + lda /-1 + adc (ZPPtr1),y + sta CUR.CB+S.CB.X2+1 + + iny S.BM.H + + lda #-1 + clc + adc (ZPPtr1),y + sta CUR.CB+S.CB.Y2 + + iny + + lda /-1 + adc (ZPPtr1),y + sta CUR.CB+S.CB.Y2+1 + + lda CUR.bVisible + bmi ShowCursor + rts *-------------------------------------- +* Set DestX,DestY +*-------------------------------------- +SetCursorPos >STYA ZPPtr1 + + lda CUR.bVisible + bpl .1 + + jsr HideCursor + +.1 ldy #S.RECT-1 + +.2 lda (ZPPtr1),y + sta CUR.Pos,y + dey + bpl .2 + + ldx CUR.T + + lda CUR.Pos+S.RECT.X1 + sec + sbc CUR.HotPoints,x + sta CUR.CB+S.CB.DestX + + lda CUR.Pos+S.RECT.X1+1 + sbc #0 + sta CUR.CB+S.CB.DestX+1 + + lda CUR.Pos+S.RECT.Y1 + sec + sbc CUR.HotPoints+1,x + sta CUR.CB+S.CB.DestY + + lda CUR.Pos+S.RECT.Y1+1 + sbc #0 + sta CUR.CB+S.CB.DestY+1 + + lda CUR.bVisible + bmi ShowCursor + + rts +*-------------------------------------- +HideCursor lda CUR.bVisible + bpl .9 + + lda #S.CB.OP.RESTORE + sta CUR.CB+S.CB.OP + + + stz CUR.bVisible +.9 rts +*-------------------------------------- +ShowCursor lda CUR.bVisible + bmi .9 + + lda #S.CB.OP.ORA+S.CB.OP.MASK+S.CB.OP.SAVE + sta CUR.CB+S.CB.OP + + >LDYA L.CUR.CB + + jsr GoDevGfx.YA + + dec CUR.bVisible +.9 rts +*-------------------------------------- MAN SAVE /A2OSX.SRC/LIB/LIBGUI.S.CUR LOAD /A2OSX.SRC/LIB/LIBGUI.S diff --git a/LIB/LIBGUI.S.DRAW.txt b/LIB/LIBGUI.S.DRAW.txt index 379ecc07..608df300 100644 --- a/LIB/LIBGUI.S.DRAW.txt +++ b/LIB/LIBGUI.S.DRAW.txt @@ -24,7 +24,7 @@ Draw >PULLW ZPCmdPtr .3 >LDYA ZPCmdPtr - jsr GoDev.YA + jsr GoDevGfx.YA .7 lda (ZPCmdPtr) Get Cmd tax @@ -69,7 +69,7 @@ DrawLine lda CB.Cache+S.CB.X2 lda #S.CB.CMD.VLINE sta CB.Cache+S.CB.CMD - jmp GoDev DX=0 : VLIN Y1,Y2 At X1 + jmp GoDevGfx 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 @@ -101,7 +101,7 @@ DrawLine lda CB.Cache+S.CB.X2 lda #S.CB.CMD.HLINE sta CB.Cache+S.CB.CMD - jmp GoDev DY=0 : HLIN X1,X2 At Y1 + jmp GoDevGfx DY=0 : HLIN X1,X2 At Y1 .3 >NOT16 DY set DY=-DY lda #$ff @@ -109,7 +109,7 @@ DrawLine lda CB.Cache+S.CB.X2 .4 lda #S.CB.CMD.SETPIXEL sta CB.Cache+S.CB.CMD - jsr GoDev + jsr GoDevGfx lda DX sec @@ -147,7 +147,7 @@ DrawLine.IncXY lda DX DX=DY adc IY sta CB.Cache+S.CB.Y1 - jsr GoDev + jsr GoDevGfx bra .1 .8 rts @@ -230,7 +230,7 @@ DrawLine.IncY lda DY adc IY sta CB.Cache+S.CB.Y1 - jsr GoDev + jsr GoDevGfx bra .1 .8 rts @@ -306,7 +306,7 @@ DrawLine.IncX lda DX clc adc IE sta D - lda D+1k + lda D+1 adc IE+1 sta D+1 @@ -314,7 +314,7 @@ DrawLine.IncX lda DX bne .6 inc CB.Cache+S.CB.X1+1 -.6 jsr GoDev +.6 jsr GoDevGfx bra .1 .8 rts diff --git a/LIB/LIBGUI.S.txt b/LIB/LIBGUI.S.txt index 82ed0e68..7c31df7f 100644 --- a/LIB/LIBGUI.S.txt +++ b/LIB/LIBGUI.S.txt @@ -11,6 +11,7 @@ AUTO 6 .INB /A2OSX.BUILD/INC/MACROS.I .INB /A2OSX.BUILD/INC/A2OSX.I .INB /A2OSX.BUILD/INC/LIBGUI.I + .INB /A2OSX.BUILD/INC/GFX.I *-------------------------------------- .MA SWAP16 lda ]1 @@ -41,6 +42,7 @@ AUTO 6 :1 .EQ * .EM *-------------------------------------- +ZPPtr1 .EQ ZPLIB ZPDCPtr .EQ ZPLIB+2 ZPCmdPtr .EQ ZPLIB+4 *-------------------------------------- @@ -60,42 +62,156 @@ CS.START cld *-------------------------------------- .1 .DA LIB.LOAD .DA LIB.UNLOAD -J.Cmds .DA InitGUI.A - .DA CloseGUI J.Cmds-12 !!! + .DA InitGUI +J.Cmds .DA CloseGUI J.Cmds-12 !!! .DA Draw .DA SetCursor.A .DA SetCursorPos .DA HideCursor .DA ShowCursor + .DA ReadMouse .DA DrawLine +L.DEVNAME.GFX .DA DEVNAME.GFX +L.DEVNAME.MOUSE .DA DEVNAME.MOUSE +L.MouseClamp .DA MouseClamp L.CB.Cache .DA CB.Cache +L.CUR.CB .DA CUR.CB +L.CUR.SaveBuf .DA CUR.SaveBuf +L.Cursors .DA CUR.Arrow .DA 0 *-------------------------------------- LIB.LOAD LIB.UNLOAD clc rts *-------------------------------------- -InitGUI.A sta GC.Screen+S.GC.hDev - >SYSCALL GetDevByID.A - >STYA GoDev.Jmp+1 +InitGUI lda GC.Screen+S.GC.hDev + beq .10 + clc +.9 rts +.10 >LDYA L.DEVNAME.GFX + >SYSCALL GetDevByName.YA + bcs .9 + + stx GC.Screen+S.GC.hDev + >STYA GoDevGfx.Jmp+1 + + txa + ldx #DEVMGR.OPEN + jsr GoDevGfx.Jmp + +.1 >LDYA L.DEVNAME.MOUSE + >SYSCALL GetDevByName.YA + bcc .2 + + inc DEVNAME.MOUSE+3 + lda DEVNAME.MOUSE+3 + cmp #'8' + bne .1 + beq .3 No mouse found, skip mouse init + +.2 stx hDevMouse + >STYA GoDevMouse+1 + + txa + ldx #DEVMGR.OPEN + jsr GoDevMouse + + ldx #DEVMGR.CONTROL Mouse driver disturb graphic screen.... + jsr GoDevGfx.Jmp + + ldx #DEVMGR.STATUS get graphic mode and resolution.... + jsr GoDevGfx.Jmp + + >STYA ZPPtr1 + + ldy #S.DSTAT.GFX.W+1 + lda (ZPPtr1),y + sta GC.Screen+S.GC.W+1 + sta MouseClamp+3 + lsr + sta CUR.Pos+S.RECT.X1+1 + + dey + + lda (ZPPtr1),y + sta MouseClamp+2 + sta GC.Screen+S.GC.W + ror + sta CUR.Pos+S.RECT.X1 + + ldy #S.DSTAT.GFX.H+1 + + lda (ZPPtr1),y + sta MouseClamp+7 + sta GC.Screen+S.GC.H+1 + lsr + sta CUR.Pos+S.RECT.Y1+1 + + dey + + lda (ZPPtr1),y + sta MouseClamp+6 + sta GC.Screen+S.GC.H + ror + sta CUR.Pos+S.RECT.Y1 + + >LDYA L.MouseClamp + ldx #DEVMGR.CONTROL + jsr GoDevMouse + + >LDYA L.CUR.SaveBuf + >STYA CUR.CB+S.CB.DstPtr + + lda #CUR.T.ARROW + jsr SetCursor.A + + jsr ShowCursor + +.3 clc rts *-------------------------------------- -CloseGUI - stz GC.Screen+S.GC.hDev +CloseGUI lda hDevMouse + beq .1 + + ldx #DEVMGR.CLOSE + jsr GoDevMouse + +.1 stz GC.Screen+S.GC.hDev sec rts *-------------------------------------- -GoDev >LDYA L.CB.Cache -GoDev.YA ldx #DEVMGR.WRITE -GoDev.Jmp jmp $ffff +ReadMouse >PULLW ZPPtr1 + + lda hDevMouse Mouse is active ? + beq .9 + + >LDYA ZPPtr1 + ldx #DEVMGR.READBLOCK + jmp GoDevMouse + +.9 sec + rts +*-------------------------------------- +GoDevGfx >LDYA L.CB.Cache +GoDevGfx.YA ldx #DEVMGR.WRITE +GoDevGfx.Jmp jmp $ffff +*-------------------------------------- +GoDevMouse jmp $ffff *-------------------------------------- .INB /A2OSX.SRC/LIB/LIBGUI.S.DRAW .INB /A2OSX.SRC/LIB/LIBGUI.S.CLIP .INB /A2OSX.SRC/LIB/LIBGUI.S.CUR *-------------------------------------- CS.END +*-------------------------------------- + .INB /A2OSX.SRC/LIB/LIBGUI.G.CUR +*-------------------------------------- +DEVNAME.GFX >CSTR "GFX" +DEVNAME.MOUSE >CSTR "MOU1" +*-------------------------------------- +hDevMouse .BS 1 *-------------------------------------- DX .BS 2 DY .BS 2 @@ -116,6 +232,8 @@ CB.CmdLen .DA S.CB.Y1+1 SETPIXEL .DA S.CB.DstPtr+1 GETRECTBUFSIZE .DA S.CB.Y2+1 DRAWLINE *-------------------------------------- +MouseClamp .BS 8 +*-------------------------------------- GC.Screen .BS S.GC GC.Cache .BS S.GC CB.Cache .BS S.CB diff --git a/SBIN/GUI.S.txt b/SBIN/GUI.S.txt index 76db0791..b786c68e 100644 --- a/SBIN/GUI.S.txt +++ b/SBIN/GUI.S.txt @@ -34,19 +34,13 @@ CS.START cld .DA CS.RUN .DA CS.DOEVENT .DA CS.QUIT -L.LIBGUI .DA LIBGUI -L.DEVNAME.GFX .DA DEVNAME.GFX -L.DEVNAME.MOUSE .DA DEVNAME.MOUSE L.MSG.INIT .DA MSG.INIT -L.MouseClamp .DA MouseClamp +L.LIBGUI .DA LIBGUI +L.Filename .DA Filename L.MouseData .DA MouseData L.Rect.CB .DA Rect.CB -L.SetPixel.CB .DA SetPixel.CB L.DrawLines.CB .DA DrawLines.CB -L.Filename .DA Filename L.BitBlT.CB .DA BitBlT.CB -L.MousePtr.CB .DA MousePtr.CB -L.BM.Arrow .DA BM.Arrow .DA 0 *-------------------------------------- CS.INIT >LDYA L.MSG.INIT @@ -54,70 +48,12 @@ CS.INIT >LDYA L.MSG.INIT >LDYA L.LIBGUI >SYSCALL LoadLib.YA + bcs .9 sta hLIBGUI - >LDYA L.DEVNAME.GFX - >SYSCALL GetDevByName.YA - bcc .10 - rts + >LIBCALL hLIBGUI,LIBGUI.InitGUI + bcs .9 -.10 stx hDevGFX - - >STYA GoDevGFX+1 - - txa - ldx #DEVMGR.OPEN - jsr GoDevGFX - -.11 >LDYA L.DEVNAME.MOUSE - >SYSCALL GetDevByName.YA - bcc .20 - - inc DEVNAME.MOUSE+3 - lda DEVNAME.MOUSE+3 - cmp #'8' - bne .11 - beq .21 No mouse found, skip mouse init - -.20 stx hDevMouse - >STYA GoDevMouse+1 - - ldx #DEVMGR.OPEN - jsr GoDevMouse - - ldx #DEVMGR.CONTROL Mouse driver disturb graphic screen.... - jsr GoDevGFX - - ldx #DEVMGR.STATUS get graphic mode and resolution.... - jsr GoDevGFX - - >STYA ZPPtr1 - - ldy #S.DSTAT+1 - lda (ZPPtr1),y - sta MouseClamp+2 - iny - lda (ZPPtr1),y - sta MouseClamp+3 - - iny - lda (ZPPtr1),y - sta MouseClamp+6 - iny - lda (ZPPtr1),y - sta MouseClamp+7 - - >LDYA L.MouseClamp - ldx #DEVMGR.CONTROL - jsr GoDevMouse - -.21 lda hDevGFX - >LIBCALL hLIBGUI,LIBGUI.InitGUI.A - - lda (pPs) - ora #S.PS.F.EVENT Now accept events - sta (pPs) - >PUSHWI 0 Aux type >PUSHBI $CB Type >PUSHBI SYS.FOpen.R @@ -131,6 +67,10 @@ CS.INIT >LDYA L.MSG.INIT jsr Destop.Paint + lda (pPs) + ora #S.PS.F.EVENT Now accept events + sta (pPs) + clc .9 rts *-------------------------------------- @@ -138,42 +78,18 @@ CS.RUN lda A2osX.ASCREEN GUI screen active ? cmp #3 bne .8 no, exit.... - lda hDevMouse Mouse is active ? - beq .4 go check KB + >PUSHW L.MouseData + >LIBCALL hLIBGUI,LIBGUI.ReadMouse + bcs .4 - >LDYA L.MouseData - ldx #DEVMGR.READBLOCK - jsr GoDevMouse - bcs .4 go check KB - - lda MouseData + lda MouseData+S.MOUSE.S bit #S.MOUSE.S.MOVE beq .1 - lda MouseData+1 - sta SetPixel.X + >PUSHW L.MouseData + >LIBCALL hLIBGUI,LIBGUI.SetCursorPos - lda MouseData+2 - sta SetPixel.X+1 - - lda MouseData+3 - sta SetPixel.Y - - lda MouseData+4 - sta SetPixel.Y+1 - - lda #0 S.CB.OP.XOR - sta SetPixel.OP - lda #S.CB.MODE.MONO - sta SetPixel.Mode - - lda #1 - sta SetPixel.Color - - >PUSHW L.SetPixel.CB - >LIBCALL hLIBGUI,LIBGUI.Draw - - lda MouseData + lda MouseData+S.MOUSE.S .1 bit #S.MOUSE.S.DOWN beq .4 @@ -195,47 +111,6 @@ CS.QUIT clc Destop.Paint >PUSHW L.Rect.CB >LIBCALL hLIBGUI,LIBGUI.Draw -* >PUSHW L.DrawLines.CB -* >LIBCALL hLIBGUI,LIBGUI.Draw - - >LDYA L.BM.Arrow - >STYA MousePtr.CB+S.CB.SrcPtr - - >LDYAI 139 - >STYA MousePtr.CB+S.CB.DestX - >PUSHW L.MousePtr.CB - >LIBCALL hLIBGUI,LIBGUI.Draw - - >LDYAI 7 - >STYA MousePtr.CB+S.CB.DestX - >PUSHW L.MousePtr.CB - >LIBCALL hLIBGUI,LIBGUI.Draw - - >LDYAI 29 - >STYA MousePtr.CB+S.CB.DestX - >PUSHW L.MousePtr.CB - >LIBCALL hLIBGUI,LIBGUI.Draw - - >LDYAI 51 - >STYA MousePtr.CB+S.CB.DestX - >PUSHW L.MousePtr.CB - >LIBCALL hLIBGUI,LIBGUI.Draw - - >LDYAI 73 - >STYA MousePtr.CB+S.CB.DestX - >PUSHW L.MousePtr.CB - >LIBCALL hLIBGUI,LIBGUI.Draw - - >LDYAI 95 - >STYA MousePtr.CB+S.CB.DestX - >PUSHW L.MousePtr.CB - >LIBCALL hLIBGUI,LIBGUI.Draw - - >LDYAI 117 - >STYA MousePtr.CB+S.CB.DestX - >PUSHW L.MousePtr.CB - >LIBCALL hLIBGUI,LIBGUI.Draw - >LDYAI 105 >STYA BitBlT.CB+S.CB.DestX >PUSHW L.BitBlt.CB @@ -255,19 +130,14 @@ Destop.Paint >PUSHW L.Rect.CB *-------------------------------------- *-------------------------------------- *-------------------------------------- -GoDevGFX jmp $ffff -GoDevMouse jmp $ffff -*-------------------------------------- CS.END -DEVNAME.GFX >CSTR "GFX" -DEVNAME.MOUSE >CSTR "MOU1" LIBGUI >CSTR "libgui.o" MSG.INIT >CSTR "GUI:Init...\r\n" hLIBGUI .BS 1 -hDevGFX .BS 1 -hDevMouse .BS 1 -MouseClamp .BS 8 -MouseData .BS S.MOUSE +*-------------------------------------- +Filename >CSTR "/A2OSX.BUILD/MARILYN" +*-------------------------------------- +MouseData .DA S.MOUSE *-------------------------------------- Rect.CB .DA #S.CB.CMD.FILLRECT .DA #S.CB.OP.SET @@ -383,8 +253,6 @@ DrawLines.CB .DA #S.CB.CMD.DRAWLINE .DA #0 *-------------------------------------- -Filename >CSTR "/A2OSX.BUILD/MARILYN" -*-------------------------------------- BitBlT.CB .DA #S.CB.CMD.BITBLT .DA #S.CB.OP.SET .DA #S.CB.MODE.MONO @@ -399,64 +267,6 @@ BitBlT.CB .DA #S.CB.CMD.BITBLT .DA 0 .DA #0 -*-------------------------------------- -MousePtr.CB .DA #S.CB.CMD.BITBLT - .DA #S.CB.OP.ORA+S.CB.OP.MASK+S.CB.OP.SAVE - .DA #S.CB.MODE.MONO - .DA #0 - .DA 0 X1 - .DA 0 Y1 - .DA 10 X2 - .DA 12 y2 - .BS 2 DestX - .DA 1 DestY - .BS 2 SrcPtr - .DA 0 - - .DA #0 -*-------------------------------------- -SetPixel.CB .DA #S.CB.CMD.SETPIXEL -SetPixel.OP .BS 1 -SetPixel.Mode .BS 1 -SetPixel.Color .BS 1 -SetPixel.X .BS 2 -SetPixel.Y .BS 2 - - .DA #0 -*-------------------------------------- -BM.Arrow .DA #S.BM.F.BBP1 - .DA #2 RowBytes - .DA 11 W - .DA 13 H - .DA BM.Arrow.MASK-BM.Arrow - -BM.Arrow.DATA .DA %000.00000000 - .DA %000.00000010 - .DA %000.00000110 - .DA %000.00001110 - .DA %000.00011110 - .DA %000.00111110 - .DA %000.01111110 - .DA %000.11111110 - .DA %001.11111110 - .DA %010.01111110 - .DA %000.11110010 - .DA %000.11100000 - .DA %000.00000000 - -BM.Arrow.MASK .DA %111.11111100 - .DA %111.11111000 - .DA %111.11110000 - .DA %111.11100000 - .DA %111.11000000 - .DA %111.10000000 - .DA %111.00000000 - .DA %110.00000000 - .DA %100.00000000 - .DA %000.00000000 - .DA %000.00000000 - .DA %110.00000000 - .DA %110.00001111 *-------------------------------------- .DUMMY .OR 0