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
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

View File

@ -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
*--------------------------------------

View File

@ -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
*--------------------------------------

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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