Kernel 0.92

This commit is contained in:
Rémy GIBERT 2019-01-09 16:42:20 +00:00
parent 64a7b37e2d
commit 3a08dc34ce
8 changed files with 87 additions and 48 deletions

Binary file not shown.

View File

@ -196,6 +196,13 @@ L.Color.Pixels .DA Color.Pixels
*-------------------------------------- *--------------------------------------
STATUS >STYA ZPIOCTL STATUS >STYA ZPIOCTL
ldy #S.IOCTL.BUFPTR
lda (ZPIOCTL),y
sta ZPBasePtr
iny
lda (ZPIOCTL),y
sta ZPBasePtr+1
ldy #S.IOCTL.STATCODE ldy #S.IOCTL.STATCODE
lda (ZPIOCTL),y lda (ZPIOCTL),y
beq .1 beq .1
@ -203,26 +210,30 @@ STATUS >STYA ZPIOCTL
cmp #S.IOCTL.STATCODE.GETDIB cmp #S.IOCTL.STATCODE.GETDIB
bne STATUS.DCB bne STATUS.DCB
ldx #S.DIB-1 ldy #S.DIB-1
.HS 2C bit abs .HS 2C bit abs
.1 ldx #3 .1 ldy #3
ldy #S.IOCTL.BUFPTR .2 lda DIB,y
lda (ZPIOCTL),y sta (ZPBasePtr),y
sta .3+1 dey
iny
lda (ZPIOCTL),y
sta .3+2
.2 lda DIB,x
.3 sta $ffff,x SELF MODIFIED
dex
bpl .2 bpl .2
clc clc
rts 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 STATUS.9 lda #MLI.E.BADCTL
sec sec
@ -274,7 +285,7 @@ OPEN ldx #0 DEV.ID in A
dey dey
bne .2 bne .2
*-------------------------------------- *--------------------------------------
CONTROL lda DCB+S.DCB.GFX.DEVID NON STANDARD CONTROL lda DCB+S.DCB.GFX.DEVID NON STANDARD
cmp A2osX.ASCREEN cmp A2osX.ASCREEN
beq .8 beq .8
@ -494,10 +505,10 @@ DCB .DA #S.DCB.T.GFX
.DA 192 H .DA 192 H
*-------------------------------------- *--------------------------------------
DRV.END DRV.END
.LI ON .LIST ON
DRV.CS.SIZE .EQ DRV.CS.END-DRV.CS.START DRV.CS.SIZE .EQ DRV.CS.END-DRV.CS.START
DRV.SIZE .EQ DRV.END-DRV.CS.START DRV.SIZE .EQ DRV.END-DRV.CS.START
.LI OFF .LIST OFF
MAN MAN
SAVE USR/SRC/DRV/DHGR.DRV.S SAVE USR/SRC/DRV/DHGR.DRV.S
ASM ASM

View File

@ -202,6 +202,9 @@ OPEN php
ldy #INITMOUSE Reset ldy #INITMOUSE Reset
jsr GOMOUSE jsr GOMOUSE
lda #S.DIB.S.OPENED
tsb DIB+S.DIB.S
plp plp
clc clc
@ -209,12 +212,18 @@ OPEN php
*-------------------------------------- *--------------------------------------
CLOSE php CLOSE php
sei sei
ldx DEVSLOT0n ldx DEVSLOT0n
lda MOUSEMODx,x keep if VBLInt already activated by kernel lda MOUSEMODx,x keep if VBLInt already activated by kernel
and #MOUSEMODx.INTVBL Disable ALL but VBLInt if previously active and #MOUSEMODx.INTVBL Disable ALL but VBLInt if previously active
ldy #SETMOUSE ldy #SETMOUSE
jsr GOMOUSE jsr GOMOUSE
lda #S.DIB.S.OPENED
trb DIB+S.DIB.S
plp plp
clc clc
rts rts
*-------------------------------------- *--------------------------------------

View File

@ -120,14 +120,17 @@ ShowCursor.I lda #S.CB.OP.ORA+S.CB.OP.MASK+S.CB.OP.SAVE
sbc #0 sbc #0
sta CUR.CB+S.CB.DstY+1 sta CUR.CB+S.CB.DstY+1
DrawCursor.I >LDYA L.GC.Screen DrawCursor.I
jsr GC.Get
* >LDYA L.GC.Screen
* jsr GC.Get
* >LDYA L.CUR.CB
* jsr CLIP.YA
* bcs .9
>LDYA L.CUR.CB >LDYA L.CUR.CB
jsr CLIP.YA jmp GFXWrite.YA
bcs .9
jmp GoDevGfx
.9 rts .9 rts
*-------------------------------------- *--------------------------------------

View File

@ -39,7 +39,7 @@ MOU.Setup lda DCB.GFX+S.DCB.GFX.W+1
ror ror
sta CUR.Pos+S.POINT.Y sta CUR.Pos+S.POINT.Y
>PUSHWI L.MouseClamp >PUSHW L.MouseClamp
>PUSHBI IOCTL.CONTROL >PUSHBI IOCTL.CONTROL
lda hDevMouse lda hDevMouse
>SYSCALL IOCTL >SYSCALL IOCTL
@ -50,6 +50,7 @@ MOU.Setup lda DCB.GFX+S.DCB.GFX.W+1
lda #CUR.T.ARROW lda #CUR.T.ARROW
jsr SetCursor jsr SetCursor
jsr ShowCursor
clc clc
.9 rts .9 rts
@ -66,22 +67,24 @@ MOU.Quit lda hDevMouse
.8 clc .8 clc
rts 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 lda hDevMouse
beq .9 beq .9
pha pha
>PUSHW ZPPtr1
* >PUSHW ZPPtr1
>PUSHBI IOCTL.READ >PUSHBI IOCTL.READ
pla pla
>SYSCALL IOCTL >SYSCALL IOCTL
bcs .9 rts
.9 sec
.8 sec >RET 2 Discard PTR
.9 rts
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE USR/SRC/LIB/LIBGUI.S.MOU SAVE USR/SRC/LIB/LIBGUI.S.MOU

View File

@ -8,10 +8,17 @@ WND.Init >PUSHBI 0
bcs .9 bcs .9
sta hDevGFX sta hDevGFX
pha
>PUSHW L.DCB.GFX >LDYA L.DCB.GFX
pla >STYA IOCTL+S.IOCTL.BUFPTR
>SYSCALL GetDevStatus lda #S.IOCTL.STATCODE.GETDCB
sta IOCTL+S.IOCTL.STATCODE
>PUSHW L.IOCTL
>PUSHBI IOCTL.STATUS
lda hDevGFX
>SYSCALL IOCTL
bcs .9 bcs .9
lda DCB.GFX+S.DCB.GFX.W lda DCB.GFX+S.DCB.GFX.W

View File

@ -73,18 +73,24 @@ CS.START cld
.DA HideCursor .DA HideCursor
.DA ShowCursor .DA ShowCursor
.DA UpdateCursor .DA UpdateCursor
.DA MOU.Read .DA MOU.ReadMouse
.DA GetScreenGC .DA GetScreenGC
*--------------------------------------
J.Cmds .DA DrawLine J.Cmds .DA DrawLine
.DA DrawText .DA DrawText
*--------------------------------------
L.DEVNAME.GFX .DA DEVNAME.GFX L.DEVNAME.GFX .DA DEVNAME.GFX
L.DEVNAME.MOUSE .DA DEVNAME.MOUSE L.DEVNAME.MOUSE .DA DEVNAME.MOUSE
L.SYSX7 .DA SYSX7 L.SYSX7 .DA SYSX7
L.SYSX7B .DA SYSX7B L.SYSX7B .DA SYSX7B
L.IOCTL .DA IOCTL
L.DCB.GFX .DA DCB.GFX L.DCB.GFX .DA DCB.GFX
L.MouseClamp .DA MouseClamp L.MouseClamp .DA MouseClamp
L.GC.Screen .DA GC.Screen 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.CB.Cache .DA CB.Cache
*--------------------------------------
L.CUR.CB .DA CUR.CB L.CUR.CB .DA CUR.CB
L.CUR.SaveBuf .DA CUR.SaveBuf L.CUR.SaveBuf .DA CUR.SaveBuf
L.Cursors .DA CUR.Arrow L.Cursors .DA CUR.Arrow
@ -171,8 +177,9 @@ GetScreenGC >LDYA L.GC.Screen
*-------------------------------------- *--------------------------------------
GoDevGfx >LDYA L.CB.Cache GoDevGfx >LDYA L.CB.Cache
GFXWrite.YA >PUSHYA
>PUSHBI IOCTL.WRITE >PUSHBI IOCTL.WRITE
lda hDevMouse lda hDevGFX
>SYSCALL IOCTL >SYSCALL IOCTL
rts rts
*-------------------------------------- *--------------------------------------
@ -233,8 +240,13 @@ PAT.Buf .BS 1 S.BM.F
.DA 0 S.BM.MASK.OFS .DA 0 S.BM.MASK.OFS
.BS 8 (data) .BS 8 (data)
*-------------------------------------- *--------------------------------------
IOCTL .BS S.IOCTL
DCB.GFX .BS S.DCB.GFX DCB.GFX .BS S.DCB.GFX
*--------------------------------------
GC.Screen .BS S.GC GC.Screen .BS S.GC
GC.Desktop .BS S.GC
GC.SysBar .BS S.GC
*--------------------------------------
GC.Cache .BS S.GC GC.Cache .BS S.GC
CB.Cache .BS S.CB CB.Cache .BS S.CB
BM.Cache .BS S.BM BM.Cache .BS S.BM

View File

@ -47,17 +47,13 @@ L.MouseData .DA MouseData
*-------------------------------------- *--------------------------------------
CS.INIT >LDYA L.LIBGUI CS.INIT >LDYA L.LIBGUI
>SYSCALL LoadLib >SYSCALL LoadLib
bcs CS.INIT.RTS bcs .9
sta hLIBGUI sta hLIBGUI
clc * clc
CS.INIT.RTS rts .9 rts
*-------------------------------------- *--------------------------------------
CS.RUN lda A2osX.ASCREEN GUI screen active ? CS.RUN >PUSHW L.MouseData
cmp #3
bne .8 no, exit....
>PUSHW L.MouseData
>LIBCALL hLIBGUI,LIBGUI.ReadMouse >LIBCALL hLIBGUI,LIBGUI.ReadMouse
bcs .4 bcs .4
@ -127,8 +123,6 @@ CS.END
LIBGUI .AZ "libgui" LIBGUI .AZ "libgui"
hLIBGUI .BS 1 hLIBGUI .BS 1
*-------------------------------------- *--------------------------------------
SYSMENU
*--------------------------------------
MouseData .BS S.MOUSE MouseData .BS S.MOUSE
*-------------------------------------- *--------------------------------------
.DUMMY .DUMMY