diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 41ac2405..f3c78fbe 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/DRV/DHGR.DRV.S.txt b/DRV/DHGR.DRV.S.txt index c4c77b95..5f344615 100644 --- a/DRV/DHGR.DRV.S.txt +++ b/DRV/DHGR.DRV.S.txt @@ -196,6 +196,13 @@ L.Color.Pixels .DA Color.Pixels *-------------------------------------- STATUS >STYA ZPIOCTL + ldy #S.IOCTL.BUFPTR + lda (ZPIOCTL),y + sta ZPBasePtr + iny + lda (ZPIOCTL),y + sta ZPBasePtr+1 + ldy #S.IOCTL.STATCODE lda (ZPIOCTL),y beq .1 @@ -203,26 +210,30 @@ STATUS >STYA ZPIOCTL cmp #S.IOCTL.STATCODE.GETDIB bne STATUS.DCB - ldx #S.DIB-1 + ldy #S.DIB-1 .HS 2C bit abs -.1 ldx #3 - - ldy #S.IOCTL.BUFPTR - lda (ZPIOCTL),y - sta .3+1 - iny - lda (ZPIOCTL),y - sta .3+2 +.1 ldy #3 -.2 lda DIB,x -.3 sta $ffff,x SELF MODIFIED - dex +.2 lda DIB,y + sta (ZPBasePtr),y + dey bpl .2 clc rts -STATUS.DCB +STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB + bne STATUS.9 + + ldy #S.DCB.GFX-1 + +.2 lda DCB,y + sta (ZPBasePtr),y + dey + bpl .2 + + clc + rts STATUS.9 lda #MLI.E.BADCTL sec @@ -243,7 +254,7 @@ OPEN ldx #0 DEV.ID in A .20 sta A2osX.SCRNDEVS,x sta DCB+S.DCB.GFX.DEVID - + lda #S.DIB.S.OPENED tsb DIB+S.DIB.S @@ -274,7 +285,7 @@ OPEN ldx #0 DEV.ID in A dey bne .2 *-------------------------------------- -CONTROL lda DCB+S.DCB.GFX.DEVID NON STANDARD +CONTROL lda DCB+S.DCB.GFX.DEVID NON STANDARD cmp A2osX.ASCREEN beq .8 @@ -494,10 +505,10 @@ DCB .DA #S.DCB.T.GFX .DA 192 H *-------------------------------------- DRV.END - .LI ON + .LIST ON DRV.CS.SIZE .EQ DRV.CS.END-DRV.CS.START DRV.SIZE .EQ DRV.END-DRV.CS.START - .LI OFF + .LIST OFF MAN SAVE USR/SRC/DRV/DHGR.DRV.S ASM diff --git a/DRV/MOUSE.DRV.S.txt b/DRV/MOUSE.DRV.S.txt index d8eef56d..d6900868 100644 --- a/DRV/MOUSE.DRV.S.txt +++ b/DRV/MOUSE.DRV.S.txt @@ -202,6 +202,9 @@ OPEN php ldy #INITMOUSE Reset jsr GOMOUSE + lda #S.DIB.S.OPENED + tsb DIB+S.DIB.S + plp clc @@ -209,12 +212,18 @@ OPEN php *-------------------------------------- CLOSE php sei + ldx DEVSLOT0n lda MOUSEMODx,x keep if VBLInt already activated by kernel and #MOUSEMODx.INTVBL Disable ALL but VBLInt if previously active ldy #SETMOUSE jsr GOMOUSE + + lda #S.DIB.S.OPENED + trb DIB+S.DIB.S + plp + clc rts *-------------------------------------- diff --git a/LIB/LIBGUI.S.CUR.txt b/LIB/LIBGUI.S.CUR.txt index af64123b..218d87bf 100644 --- a/LIB/LIBGUI.S.CUR.txt +++ b/LIB/LIBGUI.S.CUR.txt @@ -120,14 +120,17 @@ 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.GC.Screen +* jsr GC.Get + +* >LDYA L.CUR.CB +* jsr CLIP.YA +* bcs .9 >LDYA L.CUR.CB - jsr CLIP.YA - bcs .9 - - jmp GoDevGfx + jmp GFXWrite.YA .9 rts *-------------------------------------- diff --git a/LIB/LIBGUI.S.MOU.txt b/LIB/LIBGUI.S.MOU.txt index 79d849fa..a8228f0d 100644 --- a/LIB/LIBGUI.S.MOU.txt +++ b/LIB/LIBGUI.S.MOU.txt @@ -39,7 +39,7 @@ MOU.Setup lda DCB.GFX+S.DCB.GFX.W+1 ror sta CUR.Pos+S.POINT.Y - >PUSHWI L.MouseClamp + >PUSHW L.MouseClamp >PUSHBI IOCTL.CONTROL lda hDevMouse >SYSCALL IOCTL @@ -50,7 +50,8 @@ MOU.Setup lda DCB.GFX+S.DCB.GFX.W+1 lda #CUR.T.ARROW jsr SetCursor - + jsr ShowCursor + clc .9 rts *-------------------------------------- @@ -66,22 +67,24 @@ MOU.Quit lda hDevMouse .8 clc rts *-------------------------------------- -MOU.Read >STYA ZPPtr1 - +MOU.ReadMouse lda A2osX.ASCREEN GUI screen active ? + cmp DCB.GFX+S.DCB.GFX.DEVID + bne .9 no, exit.... + lda hDevMouse beq .9 pha - >PUSHW ZPPtr1 + +* >PUSHW ZPPtr1 >PUSHBI IOCTL.READ pla >SYSCALL IOCTL - bcs .9 - + rts -.8 sec -.9 rts +.9 sec + >RET 2 Discard PTR *-------------------------------------- MAN SAVE USR/SRC/LIB/LIBGUI.S.MOU diff --git a/LIB/LIBGUI.S.WND.txt b/LIB/LIBGUI.S.WND.txt index ed999ed7..12ea3dba 100644 --- a/LIB/LIBGUI.S.WND.txt +++ b/LIB/LIBGUI.S.WND.txt @@ -8,10 +8,17 @@ WND.Init >PUSHBI 0 bcs .9 sta hDevGFX - pha - >PUSHW L.DCB.GFX - pla - >SYSCALL GetDevStatus + + >LDYA L.DCB.GFX + >STYA IOCTL+S.IOCTL.BUFPTR + lda #S.IOCTL.STATCODE.GETDCB + sta IOCTL+S.IOCTL.STATCODE + + >PUSHW L.IOCTL + >PUSHBI IOCTL.STATUS + lda hDevGFX + >SYSCALL IOCTL + bcs .9 lda DCB.GFX+S.DCB.GFX.W diff --git a/LIB/LIBGUI.S.txt b/LIB/LIBGUI.S.txt index bcbbe508..b6d2c85b 100644 --- a/LIB/LIBGUI.S.txt +++ b/LIB/LIBGUI.S.txt @@ -73,18 +73,24 @@ CS.START cld .DA HideCursor .DA ShowCursor .DA UpdateCursor - .DA MOU.Read + .DA MOU.ReadMouse .DA GetScreenGC +*-------------------------------------- J.Cmds .DA DrawLine .DA DrawText +*-------------------------------------- L.DEVNAME.GFX .DA DEVNAME.GFX L.DEVNAME.MOUSE .DA DEVNAME.MOUSE L.SYSX7 .DA SYSX7 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.CUR.CB .DA CUR.CB L.CUR.SaveBuf .DA CUR.SaveBuf L.Cursors .DA CUR.Arrow @@ -171,8 +177,9 @@ GetScreenGC >LDYA L.GC.Screen *-------------------------------------- GoDevGfx >LDYA L.CB.Cache +GFXWrite.YA >PUSHYA >PUSHBI IOCTL.WRITE - lda hDevMouse + lda hDevGFX >SYSCALL IOCTL rts *-------------------------------------- @@ -233,8 +240,13 @@ PAT.Buf .BS 1 S.BM.F .DA 0 S.BM.MASK.OFS .BS 8 (data) *-------------------------------------- +IOCTL .BS S.IOCTL DCB.GFX .BS S.DCB.GFX +*-------------------------------------- GC.Screen .BS S.GC +GC.Desktop .BS S.GC +GC.SysBar .BS S.GC +*-------------------------------------- GC.Cache .BS S.GC CB.Cache .BS S.CB BM.Cache .BS S.BM diff --git a/SBIN/GUI.S.txt b/SBIN/GUI.S.txt index b077ed71..4094a66a 100644 --- a/SBIN/GUI.S.txt +++ b/SBIN/GUI.S.txt @@ -47,17 +47,13 @@ L.MouseData .DA MouseData *-------------------------------------- CS.INIT >LDYA L.LIBGUI >SYSCALL LoadLib - bcs CS.INIT.RTS + bcs .9 sta hLIBGUI - clc -CS.INIT.RTS rts +* clc +.9 rts *-------------------------------------- -CS.RUN lda A2osX.ASCREEN GUI screen active ? - cmp #3 - bne .8 no, exit.... - - >PUSHW L.MouseData +CS.RUN >PUSHW L.MouseData >LIBCALL hLIBGUI,LIBGUI.ReadMouse bcs .4 @@ -127,8 +123,6 @@ CS.END LIBGUI .AZ "libgui" hLIBGUI .BS 1 *-------------------------------------- -SYSMENU -*-------------------------------------- MouseData .BS S.MOUSE *-------------------------------------- .DUMMY