mirror of
https://github.com/A2osX/A2osX.git
synced 2025-03-03 12:29:54 +00:00
Kernel 0.9.1 : GUI, Clipping...
This commit is contained in:
parent
9a9869f334
commit
aaf40d628b
Binary file not shown.
Binary file not shown.
@ -13,7 +13,8 @@ LIBGUI.SetCursor.A .EQ 10
|
||||
LIBGUI.SetCursorPos .EQ 12
|
||||
LIBGUI.HideCursor .EQ 14
|
||||
LIBGUI.ShowCursor .EQ 16
|
||||
LIBGUI.ReadMouse .EQ 18
|
||||
LIBGUI.UpdateCursor .EQ 18
|
||||
LIBGUI.ReadMouse .EQ 20
|
||||
*--------------------------------------
|
||||
S.GC.hDev .EQ 0
|
||||
S.GC.hMem .EQ 1
|
||||
@ -55,10 +56,10 @@ S.CB.MODE.C16 .EQ %00001000 16 colors (4 bits/pixel)
|
||||
S.CB.COLOR .EQ 3
|
||||
S.CB.X1 .EQ 4 xPIXEL,xLINE,FILLRECT,BITBLT,GETRECTBUFSIZE,DRAWLINE
|
||||
S.CB.Y1 .EQ 6 xPIXEL,xLINE,FILLRECT,BITBLT,GETRECTBUFSIZE,DRAWLINE
|
||||
S.CB.X2 .EQ 8 HLINE,FILLRECT,GETRECTBUFSIZE,DRAWLINE
|
||||
S.CB.Y2 .EQ 10
|
||||
S.CB.SrcW .EQ 8
|
||||
S.CB.SrcH .EQ 10
|
||||
S.CB.X2 .EQ 8 VLINE,FILLRECT,DRAWLINE
|
||||
S.CB.Y2 .EQ 10 HLINE,FILLRECT,DRAWLINE
|
||||
S.CB.SrcW .EQ 8 BITBLT,GETRECTBUFSIZE
|
||||
S.CB.SrcH .EQ 10 BITBLT,GETRECTBUFSIZE
|
||||
S.CB.DestX .EQ 12 BITBLT,DRAWTEXT
|
||||
S.CB.DestY .EQ 14 BITBLT,DRAWTEXT
|
||||
S.CB.SrcPtr .EQ 16 BITBLT,DRAWTEXT
|
||||
|
@ -10,6 +10,17 @@ CUR.bVisible .BS 1
|
||||
CUR.Pos .BS S.POINT
|
||||
*--------------------------------------
|
||||
CUR.HotPoints .DA #0,#0 CUR.T.ARROW
|
||||
.DA #0,#0 CUR.ResizeX
|
||||
.DA #0,#0 CUR.ResizeY
|
||||
.DA #0,#0 CUR.ResizeXY
|
||||
.DA #0,#0 CUR.Cross
|
||||
.DA #0,#0 CUR.Text
|
||||
.DA #5,#6 CUR.Wait1
|
||||
.DA #5,#6 CUR.Wait2
|
||||
.DA #5,#6 CUR.Wait3
|
||||
.DA #5,#6 CUR.Wait4
|
||||
.DA #8,#8 CUR.Wait5
|
||||
.DA #8,#8 CUR.Wait6
|
||||
*--------------------------------------
|
||||
CUR.CB .DA #S.CB.CMD.BITBLT
|
||||
.BS 1
|
||||
@ -17,7 +28,7 @@ CUR.CB .DA #S.CB.CMD.BITBLT
|
||||
.DA #0
|
||||
.BS 16
|
||||
*--------------------------------------
|
||||
CUR.SaveBuf .BS 39 13*3
|
||||
CUR.SaveBuf .BS 48 16*3
|
||||
*--------------------------------------
|
||||
CUR.Arrow .DA #S.BM.F.BBP1
|
||||
.DA #2 RowBytes
|
||||
@ -53,6 +64,190 @@ CUR.Arrow.MASK .DA %111.11111100
|
||||
.DA %110.00000000
|
||||
.DA %110.00001111
|
||||
*--------------------------------------
|
||||
CUR.ResizeX
|
||||
*--------------------------------------
|
||||
CUR.ResizeY
|
||||
*--------------------------------------
|
||||
CUR.ResizeXY
|
||||
*--------------------------------------
|
||||
CUR.Cross
|
||||
*--------------------------------------
|
||||
CUR.Text
|
||||
*--------------------------------------
|
||||
CUR.Wait1 .DA #S.BM.F.BBP1
|
||||
.DA #2 RowBytes
|
||||
.DA 11 W
|
||||
.DA 13 H
|
||||
.DA CUR.Wait4.MASK-CUR.Wait1
|
||||
|
||||
.DA %000.00000000
|
||||
.DA %001.11111100
|
||||
.DA %001.00000100
|
||||
.DA %000.10001000
|
||||
.DA %000.01010000
|
||||
.DA %000.00100000
|
||||
.DA %000.00100000
|
||||
.DA %000.00100000
|
||||
.DA %000.01110000
|
||||
.DA %000.11111000
|
||||
.DA %001.11111100
|
||||
.DA %001.11111100
|
||||
.DA %000.00000000
|
||||
*--------------------------------------
|
||||
CUR.Wait2 .DA #S.BM.F.BBP1
|
||||
.DA #2 RowBytes
|
||||
.DA 11 W
|
||||
.DA 13 H
|
||||
.DA CUR.Wait4.MASK-CUR.Wait2
|
||||
|
||||
.DA %000.00000000
|
||||
.DA %001.11111100
|
||||
.DA %001.11111100
|
||||
.DA %000.10001000
|
||||
.DA %000.01010000
|
||||
.DA %000.00100000
|
||||
.DA %000.00100000
|
||||
.DA %000.00100000
|
||||
.DA %000.01110000
|
||||
.DA %000.11111000
|
||||
.DA %001.00000100
|
||||
.DA %001.11111100
|
||||
.DA %000.00000000
|
||||
*--------------------------------------
|
||||
CUR.Wait3 .DA #S.BM.F.BBP1
|
||||
.DA #2 RowBytes
|
||||
.DA 11 W
|
||||
.DA 13 H
|
||||
.DA CUR.Wait4.MASK-CUR.Wait3
|
||||
|
||||
.DA %000.00000000
|
||||
.DA %001.11111100
|
||||
.DA %001.11111100
|
||||
.DA %000.11111000
|
||||
.DA %000.01010000
|
||||
.DA %000.00100000
|
||||
.DA %000.00100000
|
||||
.DA %000.00100000
|
||||
.DA %000.01110000
|
||||
.DA %000.10001000
|
||||
.DA %001.00000100
|
||||
.DA %001.11111100
|
||||
.DA %000.00000000
|
||||
*--------------------------------------
|
||||
CUR.Wait4 .DA #S.BM.F.BBP1
|
||||
.DA #2 RowBytes
|
||||
.DA 11 W
|
||||
.DA 13 H
|
||||
.DA CUR.Wait4.MASK-CUR.Wait4
|
||||
|
||||
.DA %000.00000000
|
||||
.DA %001.11111100
|
||||
.DA %001.11111100
|
||||
.DA %000.11111000
|
||||
.DA %000.01110000
|
||||
.DA %000.00100000
|
||||
.DA %000.00100000
|
||||
.DA %000.00100000
|
||||
.DA %000.01010000
|
||||
.DA %000.10001000
|
||||
.DA %001.00000100
|
||||
.DA %001.11111100
|
||||
.DA %000.00000000
|
||||
|
||||
CUR.Wait4.MASK .DA %000.00000000
|
||||
.DA %100.00000001
|
||||
.DA %100.00000001
|
||||
.DA %110.00000011
|
||||
.DA %111.00000111
|
||||
.DA %111.10001111
|
||||
.DA %111.10001111
|
||||
.DA %111.10001111
|
||||
.DA %111.00000111
|
||||
.DA %110.00000011
|
||||
.DA %100.00000001
|
||||
.DA %100.00000001
|
||||
.DA %000.00000000
|
||||
*--------------------------------------
|
||||
CUR.Wait5 .DA #S.BM.F.BBP1
|
||||
.DA #2 RowBytes
|
||||
.DA 16 W
|
||||
.DA 16 H
|
||||
.DA CUR.Wait5.MASK-CUR.Wait5
|
||||
|
||||
.DA %00000000.00000000
|
||||
.DA %00000000.00000000
|
||||
.DA %00000010.00000000
|
||||
.DA %00000110.00000000
|
||||
.DA %00001110.00000000
|
||||
.DA %00011110.00000000
|
||||
.DA %00111110.00000000
|
||||
.DA %00000001.00000000
|
||||
.DA %00000000.10000000
|
||||
.DA %00000000.01111100
|
||||
.DA %00000000.01001000
|
||||
.DA %00000000.01010000
|
||||
.DA %00000000.01100000
|
||||
.DA %00000000.01000000
|
||||
.DA %00000000.00000000
|
||||
.DA %00000000.00000000
|
||||
|
||||
CUR.Wait5.MASK .DA %11111110.11111111
|
||||
.DA %11111100.11111111
|
||||
.DA %11111000.11111111
|
||||
.DA %11110000.11111111
|
||||
.DA %11100000.11111111
|
||||
.DA %11000000.11111111
|
||||
.DA %10000000.01111111
|
||||
.DA %00000000.00111111
|
||||
.DA %11111100.00000000
|
||||
.DA %11111110.00000001
|
||||
.DA %11111111.00000011
|
||||
.DA %11111111.00000111
|
||||
.DA %11111111.00001111
|
||||
.DA %11111111.00011111
|
||||
.DA %11111111.00111111
|
||||
.DA %11111111.01111111
|
||||
*--------------------------------------
|
||||
CUR.Wait6 .DA #S.BM.F.BBP1
|
||||
.DA #2 RowBytes
|
||||
.DA 16 W
|
||||
.DA 16 H
|
||||
.DA CUR.Wait6.MASK-CUR.Wait6
|
||||
|
||||
.DA %00000000.00000000
|
||||
.DA %00000000.00000000
|
||||
.DA %00000000.01000000
|
||||
.DA %00000000.01100000
|
||||
.DA %00000000.01010000
|
||||
.DA %00000000.01001000
|
||||
.DA %00000000.01111100
|
||||
.DA %00000000.10000000
|
||||
.DA %00000001.00000000
|
||||
.DA %00111110.00000000
|
||||
.DA %00011110.00000000
|
||||
.DA %00001110.00000000
|
||||
.DA %00000110.00000000
|
||||
.DA %00000010.00000000
|
||||
.DA %00000000.00000000
|
||||
.DA %00000000.00000000
|
||||
|
||||
CUR.Wait6.MASK .DA %11111111.01111111
|
||||
.DA %11111111.00111111
|
||||
.DA %11111111.00011111
|
||||
.DA %11111111.00001111
|
||||
.DA %11111111.00000111
|
||||
.DA %11111111.00000011
|
||||
.DA %11111110.00000001
|
||||
.DA %11111100.00000000
|
||||
.DA %00000000.00111111
|
||||
.DA %10000000.01111111
|
||||
.DA %11000000.11111111
|
||||
.DA %11100000.11111111
|
||||
.DA %11110000.11111111
|
||||
.DA %11111000.11111111
|
||||
.DA %11111100.11111111
|
||||
.DA %11111110.11111111
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.SRC/LIB/LIBGUI.G.CUR
|
||||
LOAD /A2OSX.SRC/LIB/LIBGUI.S
|
||||
|
@ -13,8 +13,8 @@ AUTO 6
|
||||
* CC : CB.Cache clipped & visible
|
||||
* CS : CB.Cache invisible
|
||||
*--------------------------------------
|
||||
CLIP.YA >STYA ZPCmdPtr
|
||||
lda (ZPCmdPtr)
|
||||
CLIP.YA >STYA ZPCBPtr
|
||||
lda (ZPCBPtr)
|
||||
tax
|
||||
jmp (J.CLIP,x)
|
||||
*--------------------------------------
|
||||
@ -27,37 +27,111 @@ CLIP.Rect
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CLIP.BitBlt ldy #S.CB.DestX+1
|
||||
lda (ZPCmdPtr),y
|
||||
CLIP.BitBlt.9 pla
|
||||
CLIP.BitBlt.99 sec
|
||||
rts
|
||||
|
||||
CLIP.BitBlt clc
|
||||
rts
|
||||
|
||||
>DEBUG
|
||||
|
||||
ldy #S.CB.DestX+1
|
||||
lda (ZPCBPtr),y
|
||||
tax
|
||||
dey
|
||||
lda (ZPCmdPtr),y
|
||||
lda (ZPCBPtr),y
|
||||
pha
|
||||
|
||||
>SCMPAX GC.Cache+S.GC.X2 DestX after X2....exit
|
||||
bmi .9
|
||||
bmi CLIP.BitBlt.9
|
||||
|
||||
pla
|
||||
>SCMPAX GC.Cache+S.GC.X1 DestX Inside X1-X2, go check if X1+fit in
|
||||
>SCMPAX GC.Cache+S.GC.X1 DestX Inside X1-X2, go check if X1+W fit in
|
||||
bpl .1
|
||||
|
||||
* S.CB.DestX before S.GC.X1: D=S.GC.X1-S.CB.DestX, S.CB.SrcW-=D, S.CB.DestX=0, S.CB.X1+=D
|
||||
|
||||
.1
|
||||
lda GC.Cache+S.GC.X1 Compute D....
|
||||
sec
|
||||
ldy #S.CB.DestX
|
||||
sbc (ZPCBPtr),y
|
||||
sta D
|
||||
lda GC.Cache+S.GC.X1+1
|
||||
iny
|
||||
sbc (ZPCBPtr),y
|
||||
sta D+1 ....always positive
|
||||
|
||||
ldy #S.CB.DestY+1
|
||||
lda (ZPCmdPtr),y
|
||||
ldy #S.CB.SrcW S.CB.SrcW-=D
|
||||
lda (ZPCBPtr),y
|
||||
sec
|
||||
sbc D
|
||||
sta (ZPCBPtr),y
|
||||
iny
|
||||
lda (ZPCBPtr),y
|
||||
sbc D
|
||||
sta (ZPCBPtr),y
|
||||
bcc CLIP.BitBlt.99 Negative!!!! nothing to do,exit...
|
||||
|
||||
lda #0 Dext.X=0
|
||||
ldy #S.CB.DestX
|
||||
sta (ZPCBPtr),y
|
||||
iny
|
||||
sta (ZPCBPtr),y
|
||||
|
||||
ldy #S.CB.X1 S.CB.X1+=D
|
||||
lda (ZPCBPtr),y
|
||||
clc
|
||||
adc D
|
||||
sta (ZPCBPtr),y
|
||||
iny
|
||||
lda (ZPCBPtr),y
|
||||
adc D+1
|
||||
sta (ZPCBPtr),y S.CB.DestX=0, new between S.GC.X1 & S.GC.X2....
|
||||
|
||||
* S.CB.DestX between S.GC.X1 & S.GC.X2: D=S.GC.X2-S.CB.DestX
|
||||
|
||||
.1 lda GC.Cache+S.GC.X2
|
||||
sec
|
||||
ldy #S.CB.DestY
|
||||
sbc (ZPCBPtr),y
|
||||
sta D
|
||||
iny
|
||||
lda GC.Cache+S.GC.X2
|
||||
sbc (ZPCBPtr),y
|
||||
sta D+1 Always positive...
|
||||
|
||||
lda D
|
||||
|
||||
ldy #S.CB.SrcW
|
||||
cmp (ZPCBPtr),y
|
||||
|
||||
iny
|
||||
lda D+1
|
||||
cmp (ZPCBPtr),y
|
||||
bcs CLIP.BitBlt.Y D >= SrcW....nothing to clip
|
||||
|
||||
lda D+1 SrcW < D, amke SrcW=D
|
||||
sta (ZPCBPtr),y
|
||||
dey
|
||||
lda D
|
||||
sta (ZPCBPtr),y
|
||||
|
||||
CLIP.BitBlt.Y ldy #S.CB.DestY+1
|
||||
lda (ZPCBPtr),y
|
||||
tax
|
||||
dey
|
||||
lda (ZPCmdPtr),y
|
||||
lda (ZPCBPtr),y
|
||||
pha
|
||||
|
||||
>SCMPAX GC.Cache+S.GC.Y2
|
||||
bpl .9
|
||||
>SCMPAX GC.Cache+S.GC.Y2 DestY after Y2....exit
|
||||
bmi .9
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
.9 pla
|
||||
sec
|
||||
.99 sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CLIP.Line.LEFT .EQ 1
|
||||
|
@ -5,6 +5,16 @@ INC 1
|
||||
AUTO 6
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
UpdateCursor lda CUR.T
|
||||
cmp #CUR.T.WAIT
|
||||
bcc SetCursor.A.RTS
|
||||
inc
|
||||
inc
|
||||
cmp #CUR.T.WAIT+12
|
||||
bne SetCursor.A
|
||||
|
||||
lda #CUR.T.WAIT
|
||||
*--------------------------------------
|
||||
* Set X2,Y2,SrcPtr
|
||||
*--------------------------------------
|
||||
SetCursor.A sta CUR.T
|
||||
@ -48,7 +58,7 @@ SetCursor.A sta CUR.T
|
||||
lda CUR.bVisible
|
||||
bmi ShowCursor.I
|
||||
|
||||
rts
|
||||
SetCursor.A.RTS rts
|
||||
*--------------------------------------
|
||||
* Set DestX,DestY
|
||||
*--------------------------------------
|
||||
@ -89,11 +99,7 @@ ShowCursor lda CUR.bVisible
|
||||
*--------------------------------------
|
||||
HideCursor.I lda #S.CB.OP.RESTORE
|
||||
sta CUR.CB+S.CB.OP
|
||||
|
||||
>LDYA L.CUR.CB
|
||||
jsr GoDevGfx.YA
|
||||
|
||||
rts
|
||||
bra DrawCursor.I
|
||||
*--------------------------------------
|
||||
ShowCursor.I lda #S.CB.OP.ORA+S.CB.OP.MASK+S.CB.OP.SAVE
|
||||
sta CUR.CB+S.CB.OP
|
||||
@ -118,9 +124,13 @@ ShowCursor.I lda #S.CB.OP.ORA+S.CB.OP.MASK+S.CB.OP.SAVE
|
||||
sbc #0
|
||||
sta CUR.CB+S.CB.DestY+1
|
||||
|
||||
DrawCursor.I >LDYA L.CUR.CB
|
||||
jsr CLIP.YA
|
||||
bcs .9
|
||||
>LDYA L.CUR.CB
|
||||
jsr GoDevGfx.YA
|
||||
rts
|
||||
jmp GoDevGfx.YA
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.SRC/LIB/LIBGUI.S.CUR
|
||||
|
@ -4,9 +4,9 @@ NEW
|
||||
INC 1
|
||||
AUTO 6
|
||||
*--------------------------------------
|
||||
Draw >PULLW ZPCmdPtr
|
||||
Draw >PULLW ZPCBPtr
|
||||
|
||||
lda (ZPCmdPtr) Get Cmd
|
||||
lda (ZPCBPtr) Get Cmd
|
||||
|
||||
.1 tax
|
||||
cpx #S.CB.CMD.DRAWLINE
|
||||
@ -14,7 +14,7 @@ Draw >PULLW ZPCmdPtr
|
||||
|
||||
ldy CB.CmdLen,x
|
||||
|
||||
.2 lda (ZPCmdPtr),y Y=Byte count-1 to cache
|
||||
.2 lda (ZPCBPtr),y Y=Byte count-1 to cache
|
||||
sta CB.Cache,y
|
||||
dey
|
||||
bpl .2
|
||||
@ -22,26 +22,26 @@ Draw >PULLW ZPCmdPtr
|
||||
jsr Draw.Jmp
|
||||
bra .7
|
||||
|
||||
.3 >LDYA ZPCmdPtr
|
||||
.3 >LDYA ZPCBPtr
|
||||
|
||||
jsr GoDevGfx.YA
|
||||
|
||||
.7 lda (ZPCmdPtr) Get Cmd
|
||||
.7 lda (ZPCBPtr) Get Cmd
|
||||
tax
|
||||
lda CB.CmdLen,x
|
||||
sec
|
||||
adc ZPCmdPtr
|
||||
sta ZPCmdPtr
|
||||
adc ZPCBPtr
|
||||
sta ZPCBPtr
|
||||
bcc .8
|
||||
inc ZPCmdPtr+1
|
||||
inc ZPCBPtr+1
|
||||
|
||||
.8 lda (ZPCmdPtr) Get Cmd
|
||||
.8 lda (ZPCBPtr) Get Cmd
|
||||
bne .1
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
Draw.Jmp jmp (J.Cmds,x)
|
||||
Draw.Jmp jmp (J.Cmds-S.CB.CMD.DRAWLINE,x)
|
||||
*--------------------------------------
|
||||
* In: Control Block in CB.Cache
|
||||
* CMD
|
||||
@ -319,6 +319,9 @@ DrawLine.IncX lda DX
|
||||
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
DrawText
|
||||
rts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.SRC/LIB/LIBGUI.S.DRAW
|
||||
LOAD /A2OSX.SRC/LIB/LIBGUI.S
|
||||
|
128
LIB/LIBGUI.S.txt
128
LIB/LIBGUI.S.txt
@ -43,8 +43,8 @@ AUTO 6
|
||||
.EM
|
||||
*--------------------------------------
|
||||
ZPPtr1 .EQ ZPLIB
|
||||
ZPDCPtr .EQ ZPLIB+2
|
||||
ZPCmdPtr .EQ ZPLIB+4
|
||||
ZPGCPtr .EQ ZPLIB+2
|
||||
ZPCBPtr .EQ ZPLIB+4
|
||||
*--------------------------------------
|
||||
* File Header (16 Bytes)
|
||||
*--------------------------------------
|
||||
@ -63,21 +63,35 @@ CS.START cld
|
||||
.1 .DA LIB.LOAD
|
||||
.DA LIB.UNLOAD
|
||||
.DA InitGUI
|
||||
J.Cmds .DA CloseGUI J.Cmds-12 !!!
|
||||
.DA CloseGUI
|
||||
.DA Draw
|
||||
.DA SetCursor.A
|
||||
.DA SetCursorPos
|
||||
.DA HideCursor
|
||||
.DA ShowCursor
|
||||
.DA UpdateCursor
|
||||
.DA ReadMouse
|
||||
.DA DrawLine
|
||||
J.Cmds .DA DrawLine
|
||||
.DA DrawText
|
||||
L.DEVNAME.GFX .DA DEVNAME.GFX
|
||||
L.DEVNAME.MOUSE .DA DEVNAME.MOUSE
|
||||
L.MouseClamp .DA MouseClamp
|
||||
L.GC.Screen .DA GC.Screen
|
||||
L.CB.Cache .DA CB.Cache
|
||||
L.CUR.CB .DA CUR.CB
|
||||
L.CUR.SaveBuf .DA CUR.SaveBuf
|
||||
L.Cursors .DA CUR.Arrow
|
||||
.DA CUR.ResizeX
|
||||
.DA CUR.ResizeY
|
||||
.DA CUR.ResizeXY
|
||||
.DA CUR.Cross
|
||||
.DA CUR.Text
|
||||
.DA CUR.Wait1
|
||||
.DA CUR.Wait2
|
||||
.DA CUR.Wait3
|
||||
.DA CUR.Wait4
|
||||
.DA CUR.Wait5
|
||||
.DA CUR.Wait6
|
||||
J.Clip .DA CLIP.Point SETPIXEL
|
||||
.DA CLIP.Point GETPIXEL
|
||||
.DA CLIP.HLine
|
||||
@ -106,27 +120,6 @@ InitGUI lda GC.Screen+S.GC.hDev
|
||||
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
|
||||
.8 clc No mouse found, skip mouse init
|
||||
.9 rts
|
||||
|
||||
.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
|
||||
|
||||
@ -163,6 +156,31 @@ InitGUI lda GC.Screen+S.GC.hDev
|
||||
ror
|
||||
sta CUR.Pos+S.POINT.Y
|
||||
|
||||
>LDYA L.GC.Screen
|
||||
jsr GC.SetX2Y2
|
||||
|
||||
.1 >LDYA L.DEVNAME.MOUSE
|
||||
>SYSCALL GetDevByName.YA
|
||||
bcc .2
|
||||
|
||||
inc DEVNAME.MOUSE+3
|
||||
lda DEVNAME.MOUSE+3
|
||||
cmp #'8'
|
||||
bne .1
|
||||
|
||||
.8 ldx #DEVMGR.CONTROL Mouse driver disturb graphic screen....
|
||||
jsr GoDevGfx.Jmp
|
||||
|
||||
clc
|
||||
.9 rts
|
||||
|
||||
.2 stx hDevMouse
|
||||
>STYA GoDevMouse+1
|
||||
|
||||
txa
|
||||
ldx #DEVMGR.OPEN
|
||||
jsr GoDevMouse
|
||||
|
||||
>LDYA L.MouseClamp
|
||||
ldx #DEVMGR.CONTROL
|
||||
jsr GoDevMouse
|
||||
@ -172,9 +190,7 @@ InitGUI lda GC.Screen+S.GC.hDev
|
||||
|
||||
lda #CUR.T.ARROW
|
||||
jsr SetCursor.A
|
||||
|
||||
clc
|
||||
rts
|
||||
bra .8
|
||||
*--------------------------------------
|
||||
CloseGUI lda hDevMouse
|
||||
beq .1
|
||||
@ -186,6 +202,59 @@ CloseGUI lda hDevMouse
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
GC.SetX2Y2 >STYA ZPGCPtr
|
||||
|
||||
ldy #S.GC.X1+1
|
||||
lda (ZPGCPtr),y
|
||||
tax
|
||||
dey
|
||||
lda (ZPGCPtr),y
|
||||
|
||||
clc
|
||||
ldy #S.GC.W
|
||||
adc (ZPGCPtr),y
|
||||
pha
|
||||
iny
|
||||
txa
|
||||
adc (ZPGCPtr),y
|
||||
tax
|
||||
pla
|
||||
sbc #0
|
||||
bcs .1
|
||||
dex
|
||||
|
||||
.1 ldy #S.GC.X2
|
||||
sta (ZPGCPtr),y
|
||||
iny
|
||||
txa
|
||||
sta (ZPGCPtr),y
|
||||
|
||||
ldy #S.GC.Y1+1
|
||||
lda (ZPGCPtr),y
|
||||
tax
|
||||
dey
|
||||
lda (ZPGCPtr),y
|
||||
|
||||
clc
|
||||
ldy #S.GC.H
|
||||
adc (ZPGCPtr),y
|
||||
pha
|
||||
iny
|
||||
txa
|
||||
adc (ZPGCPtr),y
|
||||
tax
|
||||
pla
|
||||
sbc #0
|
||||
bcs .2
|
||||
dex
|
||||
|
||||
.2 ldy #S.GC.Y2
|
||||
sta (ZPGCPtr),y
|
||||
iny
|
||||
txa
|
||||
sta (ZPGCPtr),y
|
||||
rts
|
||||
*--------------------------------------
|
||||
ReadMouse >PULLYA
|
||||
|
||||
ldx hDevMouse Mouse is active ?
|
||||
@ -238,6 +307,9 @@ CB.CmdLen .DA S.CB.Y1+1 SETPIXEL
|
||||
MouseClamp .BS 8
|
||||
*--------------------------------------
|
||||
GC.Screen .BS S.GC
|
||||
GC.Desktop .BS S.GC
|
||||
GC.Bar .BS S.GC
|
||||
*--------------------------------------
|
||||
GC.Cache .BS S.GC
|
||||
CB.Cache .BS S.CB
|
||||
*--------------------------------------
|
||||
|
@ -81,6 +81,9 @@ CS.INIT >LDYA L.MSG.INIT
|
||||
|
||||
jsr Destop.Paint
|
||||
|
||||
lda #CUR.T.WAIT
|
||||
>LIBCALL hLIBGUI,LIBGUI.SetCursor.A
|
||||
|
||||
>LIBCALL hLIBGUI,LIBGUI.ShowCursor
|
||||
|
||||
lda (pPs)
|
||||
@ -123,7 +126,14 @@ CS.RUN lda A2osX.ASCREEN GUI screen active ?
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.DOEVENT sec
|
||||
CS.DOEVENT lda (pEvent)
|
||||
bpl .9
|
||||
* asl
|
||||
* bpl .9
|
||||
|
||||
>LIBCALL hLIBGUI,LIBGUI.UpdateCursor
|
||||
|
||||
.9 sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.QUIT clc
|
||||
|
Loading…
x
Reference in New Issue
Block a user