mirror of
https://github.com/A2osX/A2osX.git
synced 2025-01-12 01:30:36 +00:00
Kernel 0.9.1 : GUI, Code Reorg...
This commit is contained in:
parent
d72a6c714d
commit
20f35fbbcd
108
INC/GUI.I.txt
108
INC/GUI.I.txt
@ -104,8 +104,26 @@ S.RECT.Y2 .EQ 6
|
|||||||
*
|
*
|
||||||
S.RECT .EQ 8
|
S.RECT .EQ 8
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.WND.T .EQ 0
|
S.OBJ.T .EQ 0
|
||||||
S.WND.F .EQ 1
|
S.OBJ.T.SCREEN .EQ 0
|
||||||
|
S.OBJ.T.WND .EQ 2
|
||||||
|
S.OBJ.T.MENUBAR .EQ 4
|
||||||
|
S.OBJ.T.MENU .EQ 6
|
||||||
|
S.OBJ.T.MENUITEM .EQ 8
|
||||||
|
S.OBJ.T.BUT .EQ 10
|
||||||
|
S.OBJ.T.TEXT .EQ 12
|
||||||
|
|
||||||
|
S.OBJ.F .EQ 1
|
||||||
|
S.OBK.S .EQ 2
|
||||||
|
S.OBJ.ID .EQ 3
|
||||||
|
S.OBJ.hOWNER .EQ 4
|
||||||
|
S.OBJ.hPARENT .EQ 5
|
||||||
|
|
||||||
|
S.OBJ.X .EQ 8
|
||||||
|
S.OBJ.Y .EQ 10
|
||||||
|
S.OBJ.W .EQ 12
|
||||||
|
S.OBJ.H .EQ 14
|
||||||
|
*--------------------------------------
|
||||||
S.WND.F.RESIZE .EQ %00000001
|
S.WND.F.RESIZE .EQ %00000001
|
||||||
S.WND.F.MOVE .EQ %00000010
|
S.WND.F.MOVE .EQ %00000010
|
||||||
S.WND.F.CLOSE .EQ %00000100
|
S.WND.F.CLOSE .EQ %00000100
|
||||||
@ -114,65 +132,45 @@ S.WND.F.MIN .EQ %00010000
|
|||||||
S.WND.F.NOBORDER .EQ %00100000
|
S.WND.F.NOBORDER .EQ %00100000
|
||||||
S.WND.F.MODAL .EQ %01000000
|
S.WND.F.MODAL .EQ %01000000
|
||||||
S.WND.F.SYSMODAL .EQ %10000000
|
S.WND.F.SYSMODAL .EQ %10000000
|
||||||
S.WND.S .EQ 2
|
|
||||||
S.WND.hOWNER .EQ 3
|
|
||||||
S.WND.hPARENT .EQ 4
|
|
||||||
S.WND.hTITLE .EQ 5
|
|
||||||
S.WND.hMENU .EQ 6
|
|
||||||
S.WND.hBKCOLOR .EQ 7
|
|
||||||
S.WND.hBKBM .EQ 8
|
|
||||||
S.WND.hSTATUS .EQ 9
|
|
||||||
S.WND.hCUR .EQ 10
|
|
||||||
S.WND.hICON .EQ 11
|
|
||||||
S.WND.X .EQ 12
|
|
||||||
S.WND.Y .EQ 14
|
|
||||||
S.WND.W .EQ 16
|
|
||||||
S.WND.H .EQ 18
|
|
||||||
S.WND.MinW .EQ 20
|
|
||||||
S.WND.MinH .EQ 22
|
|
||||||
*
|
*
|
||||||
S.WND .EQ 32
|
S.WND.S.MAX .EQ %00001000
|
||||||
*--------------------------------------
|
S.WND.S.MIN .EQ %00010000
|
||||||
S.CTRL.T .EQ 0
|
*
|
||||||
S.CTRL.T.WND .EQ 0
|
S.WND.MinW .EQ 16
|
||||||
S.CTRL.T.MENU .EQ 2
|
S.WND.MinH .EQ 18
|
||||||
S.CTRL.T.BUT .EQ 4
|
|
||||||
S.CTRL.T.TEXT .EQ 6
|
|
||||||
|
|
||||||
S.CTRL.F .EQ 1
|
S.WND.hTITLE .EQ 20
|
||||||
S.CTRL.ID .EQ 3
|
S.WND.hMENUBAR .EQ 22
|
||||||
S.CTRL.hOWNER .EQ 4
|
S.WND.hBKCOLOR .EQ 24
|
||||||
S.CTRL.hPARENT .EQ 5
|
S.WND.hBKBM .EQ 26
|
||||||
S.CTRL.X .EQ 6
|
S.WND.hCUR .EQ 28
|
||||||
S.CTRL.Y .EQ 8
|
S.WND.hSTATUS .EQ 30
|
||||||
S.CTRL.W .EQ 10
|
S.WND.hICON .EQ 32
|
||||||
S.CTRL.H .EQ 12
|
*
|
||||||
|
S.WND .EQ 34
|
||||||
|
*--------------------------------------
|
||||||
|
S.MENUBAR
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.MENU.T .EQ 0
|
|
||||||
S.MENU.F .EQ 1
|
|
||||||
S.MENU.hSAVEBUF .EQ 2
|
S.MENU.hSAVEBUF .EQ 2
|
||||||
S.MENU.X .EQ 3
|
|
||||||
S.MENU.Y .EQ 5
|
|
||||||
* ... S.MITEMs...
|
* ... S.MITEMs...
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.MITEM.F .EQ 0
|
*S.MENUITEM.F. .EQ %00000001
|
||||||
*S.MITEM.F. .EQ %00000001
|
*S.MENUITEM.F. .EQ %00000010
|
||||||
*S.MITEM.F. .EQ %00000010
|
*S.MENUITEM.F. .EQ %00000100
|
||||||
*S.MITEM.F. .EQ %00000100
|
*S.MENUITEM.F. .EQ %00001000
|
||||||
*S.MITEM.F. .EQ %00001000
|
*S.MENUITEM.F. .EQ %00010000
|
||||||
*S.MITEM.F. .EQ %00010000
|
S.MENUITEM.F.SEP .EQ %00100000
|
||||||
S.MITEM.F.SEP .EQ %00100000
|
S.MENUITEM.F.CHECKED .EQ %01000000
|
||||||
S.MITEM.F.CHECKED .EQ %01000000
|
S.MENUITEM.F.DISABLED .EQ %10000000
|
||||||
S.MITEM.F.DISABLED .EQ %10000000
|
S.MENUITEM.ID .EQ 1
|
||||||
S.MITEM.ID .EQ 1
|
S.MENUITEM.hSUBM .EQ 2
|
||||||
S.MITEM.hSUBM .EQ 2
|
S.MENUITEM.hBM .EQ 3
|
||||||
S.MITEM.hBM .EQ 3
|
S.MENUITEM.HOTKEY .EQ 4
|
||||||
S.MITEM.HOTKEY .EQ 4
|
S.MENUITEM.HOTKEY.CTRL .EQ %10000000
|
||||||
S.MITEM.HOTKEY.CTRL .EQ %10000000
|
S.MENUITEM.HOTKEY.OA .EQ %01000000
|
||||||
S.MITEM.HOTKEY.OA .EQ %01000000
|
S.MENUITEM.HOTKEY.CA .EQ %00100000
|
||||||
S.MITEM.HOTKEY.CA .EQ %00100000
|
S.MENUITEM.TEXTLEN .EQ 5
|
||||||
S.MITEM.TEXTLEN .EQ 5
|
S.MENUITEM.TEXT .EQ 6 CSTR
|
||||||
S.MITEM.TEXT .EQ 6 CSTR
|
|
||||||
* ...
|
* ...
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.BUT.T .EQ 0
|
S.BUT.T .EQ 0
|
||||||
|
@ -4,8 +4,6 @@ AUTO 4,1
|
|||||||
.LIST OFF
|
.LIST OFF
|
||||||
.OP 65C02
|
.OP 65C02
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LIBGUI.InitGUI .EQ 4
|
|
||||||
LIBGUI.CloseGUI .EQ 6
|
|
||||||
LIBGUI.Draw .EQ 8
|
LIBGUI.Draw .EQ 8
|
||||||
LIBGUI.SetCursor.A .EQ 10
|
LIBGUI.SetCursor.A .EQ 10
|
||||||
LIBGUI.SetCursorPos .EQ 12
|
LIBGUI.SetCursorPos .EQ 12
|
||||||
|
22
LIB/LIBGUI.G.BM.txt
Normal file
22
LIB/LIBGUI.G.BM.txt
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
NEW
|
||||||
|
PREFIX /A2OSX.BUILD
|
||||||
|
AUTO 4,1
|
||||||
|
*--------------------------------------
|
||||||
|
BM.Apple .DA #S.BM.F.BBP4
|
||||||
|
.DA #2 RowBytes
|
||||||
|
.DA 16 W
|
||||||
|
.DA 7 H
|
||||||
|
.DA 0 no MASK.OFS
|
||||||
|
|
||||||
|
.HS FFF6 green (8)
|
||||||
|
.HS 6FF6 green (8)
|
||||||
|
.HS EEEE yellow (15)
|
||||||
|
.HS CCFC orange (14)
|
||||||
|
.HS 88F8 magenta (10)
|
||||||
|
.HS 9999 violet (11)
|
||||||
|
.HS 1FF1 Dark blue (4)
|
||||||
|
*--------------------------------------
|
||||||
|
MAN
|
||||||
|
SAVE /A2OSX.SRC/LIB/LIBGUI.G.BM
|
||||||
|
LOAD /A2OSX.SRC/LIB/LIBGUI.S
|
||||||
|
ASM
|
10
LIB/LIBGUI.G.FON.txt
Normal file
10
LIB/LIBGUI.G.FON.txt
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
NEW
|
||||||
|
PREFIX /A2OSX.BUILD
|
||||||
|
AUTO 4,1
|
||||||
|
*--------------------------------------
|
||||||
|
SYSFONB.H .BS 1
|
||||||
|
*--------------------------------------
|
||||||
|
MAN
|
||||||
|
SAVE /A2OSX.SRC/LIB/LIBGUI.G.FON
|
||||||
|
LOAD /A2OSX.SRC/LIB/LIBGUI.S
|
||||||
|
ASM
|
13
LIB/LIBGUI.G.WND.txt
Normal file
13
LIB/LIBGUI.G.WND.txt
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
NEW
|
||||||
|
PREFIX /A2OSX.BUILD
|
||||||
|
AUTO 4,1
|
||||||
|
*--------------------------------------
|
||||||
|
WND.TB.H .BS 1
|
||||||
|
WND.Stack.Top .BS 1
|
||||||
|
WND.Stack .BS WND.MAX
|
||||||
|
WND.Cache .BS S.WND
|
||||||
|
*--------------------------------------
|
||||||
|
MAN
|
||||||
|
SAVE /A2OSX.SRC/LIB/LIBGUI.G.WND
|
||||||
|
LOAD /A2OSX.SRC/LIB/LIBGUI.S
|
||||||
|
ASM
|
@ -1,7 +1,6 @@
|
|||||||
NEW
|
NEW
|
||||||
PREFIX /A2OSX.BUILD
|
PREFIX /A2OSX.BUILD
|
||||||
AUTO 4,1
|
AUTO 4,1
|
||||||
.LIST OFF
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* CLIPPING Functions:
|
* CLIPPING Functions:
|
||||||
* In:
|
* In:
|
||||||
|
32
LIB/LIBGUI.S.FON.txt
Normal file
32
LIB/LIBGUI.S.FON.txt
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
NEW
|
||||||
|
PREFIX /A2OSX.BUILD
|
||||||
|
AUTO 4,1
|
||||||
|
*--------------------------------------
|
||||||
|
FON.Init >PUSHWI 0 Aux type
|
||||||
|
>PUSHBI $CC Type
|
||||||
|
>PUSHBI SYS.FOpen.R
|
||||||
|
>PUSHW L.SYSX7
|
||||||
|
>SYSCALL LoadStkObj
|
||||||
|
bcs .9
|
||||||
|
sta hSYSFON
|
||||||
|
|
||||||
|
>PUSHWI 0 Aux type
|
||||||
|
>PUSHBI $CC Type
|
||||||
|
>PUSHBI SYS.FOpen.R
|
||||||
|
>PUSHW L.SYSX7B
|
||||||
|
>SYSCALL LoadStkObj
|
||||||
|
bcs .9
|
||||||
|
sta hSYSFONB
|
||||||
|
|
||||||
|
ldy #S.FON.PixH
|
||||||
|
>SYSCALL GetStkObjProperty.AY
|
||||||
|
sty SYSFONB.H
|
||||||
|
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
|
||||||
|
*--------------------------------------
|
||||||
|
MAN
|
||||||
|
SAVE /A2OSX.SRC/LIB/LIBGUI.S.FON
|
||||||
|
LOAD /A2OSX.SRC/LIB/LIBGUI.S
|
||||||
|
ASM
|
89
LIB/LIBGUI.S.MOU.txt
Normal file
89
LIB/LIBGUI.S.MOU.txt
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
NEW
|
||||||
|
PREFIX /A2OSX.BUILD
|
||||||
|
AUTO 4,1
|
||||||
|
*--------------------------------------
|
||||||
|
MOU.Init
|
||||||
|
.1 >LDYA L.DEVNAME.MOUSE
|
||||||
|
>SYSCALL GetDevByName.YA
|
||||||
|
bcc .2
|
||||||
|
|
||||||
|
inc DEVNAME.MOUSE+3
|
||||||
|
lda DEVNAME.MOUSE+3
|
||||||
|
cmp #'8'
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
clc
|
||||||
|
.9 rts
|
||||||
|
|
||||||
|
.2 stx hDevMouse
|
||||||
|
txa
|
||||||
|
>PUSHA
|
||||||
|
>PUSHBI DEVMGR.OPEN
|
||||||
|
>PUSHWI 0
|
||||||
|
>SYSCALL IOCTL
|
||||||
|
|
||||||
|
lda GC.Screen+S.GC.X2+1
|
||||||
|
sta MouseClamp+3
|
||||||
|
lsr
|
||||||
|
sta CUR.Pos+S.POINT.X+1
|
||||||
|
|
||||||
|
lda GC.Screen+S.GC.X2
|
||||||
|
sta MouseClamp+2
|
||||||
|
ror
|
||||||
|
sta CUR.Pos+S.POINT.X
|
||||||
|
|
||||||
|
lda GC.Screen+S.GC.Y2+1
|
||||||
|
sta MouseClamp+7
|
||||||
|
lsr
|
||||||
|
sta CUR.Pos+S.POINT.Y+1
|
||||||
|
|
||||||
|
lda GC.Screen+S.GC.Y2
|
||||||
|
sta MouseClamp+6
|
||||||
|
ror
|
||||||
|
sta CUR.Pos+S.POINT.Y
|
||||||
|
|
||||||
|
>PUSHB.G hDevMouse
|
||||||
|
>PUSHBI DEVMGR.CONTROL
|
||||||
|
>PUSHWI L.MouseClamp
|
||||||
|
>SYSCALL IOCTL
|
||||||
|
|
||||||
|
>LDYA L.CUR.SaveBuf
|
||||||
|
>STYA CUR.CB+S.CB.DstPtr
|
||||||
|
|
||||||
|
lda #CUR.T.ARROW
|
||||||
|
jsr SetCursor.A
|
||||||
|
bra .8
|
||||||
|
|
||||||
|
sec
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
MOU.Quit lda hDevMouse
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
>PUSHA
|
||||||
|
>PUSHBI DEVMGR.CLOSE
|
||||||
|
>PUSHWI 0
|
||||||
|
>SYSCALL IOCTL
|
||||||
|
|
||||||
|
.8 clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
MOU.Read >STYA ZPPtr1
|
||||||
|
|
||||||
|
lda hDevMouse
|
||||||
|
beq .9
|
||||||
|
|
||||||
|
>PUSHA
|
||||||
|
>PUSHBI DEVMGR.READBLOCK
|
||||||
|
>PUSHWI 0
|
||||||
|
>SYSCALL IOCTL
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
|
||||||
|
.8 sec
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
MAN
|
||||||
|
SAVE /A2OSX.SRC/LIB/LIBGUI.S.MOU
|
||||||
|
LOAD /A2OSX.SRC/LIB/LIBGUI.S
|
||||||
|
ASM
|
@ -2,12 +2,79 @@ NEW
|
|||||||
PREFIX /A2OSX.BUILD
|
PREFIX /A2OSX.BUILD
|
||||||
AUTO 4,1
|
AUTO 4,1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DrawWindow >STYA ZPPtr1
|
WND.Init >LDYA L.DEVNAME.GFX
|
||||||
|
>SYSCALL GetDevByName.YA
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
stx hDevScreen
|
||||||
|
txa
|
||||||
|
>SYSCALL GetDevStatus.A
|
||||||
|
bcs .9
|
||||||
|
>STYA ZPPtr1
|
||||||
|
|
||||||
|
ldy #S.DSTAT.GFX.W
|
||||||
|
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
sta WND.Cache+S.OBJ.W
|
||||||
|
iny
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
sta WND.Cache+S.OBJ.W+1
|
||||||
|
|
||||||
|
lda SYSFONB.H
|
||||||
|
clc
|
||||||
|
adc #6
|
||||||
|
sta WND.TB.H
|
||||||
|
|
||||||
|
iny #S.DSTAT.GFX.H
|
||||||
|
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
sec
|
||||||
|
sbc SYSFONB.H
|
||||||
|
sta WND.Cache+S.OBJ.H
|
||||||
|
|
||||||
|
iny
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
sbc #0
|
||||||
|
sta WND.Cache+S.OBJ.H+1
|
||||||
|
|
||||||
|
lda #S.WND.F.NOBORDER
|
||||||
|
sta WND.Cache+S.OBJ.F
|
||||||
|
|
||||||
|
lda #CUR.T.ARROW
|
||||||
|
sta WND.Cache+S.WND.hCUR
|
||||||
|
>LDYA L.WND.CACHE
|
||||||
|
jsr WND.New
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
stx WND.Stack
|
||||||
|
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
WND.Quit
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
WND.New >STYA ZPPtr1
|
||||||
|
>SYSCALL GetMem.YA
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
>STYA ZPWNDPtr
|
||||||
|
|
||||||
|
ldy #S.WND-1
|
||||||
|
|
||||||
|
.1 lda (ZPPtr1),y
|
||||||
|
sta (ZPWNDPtr),y
|
||||||
|
dey
|
||||||
|
bpl .1
|
||||||
|
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
WND.Paint >STYA ZPPtr1
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
WND.Close
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/LIB/LIBGUI.S.WND
|
SAVE /A2OSX.SRC/LIB/LIBGUI.S.WND
|
||||||
|
146
LIB/LIBGUI.S.txt
146
LIB/LIBGUI.S.txt
@ -11,6 +11,8 @@ AUTO 4,1
|
|||||||
.INB /A2OSX.BUILD/INC/GUI.I
|
.INB /A2OSX.BUILD/INC/GUI.I
|
||||||
.INB /A2OSX.BUILD/INC/LIBGUI.I
|
.INB /A2OSX.BUILD/INC/LIBGUI.I
|
||||||
.INB /A2OSX.BUILD/INC/GFX.I
|
.INB /A2OSX.BUILD/INC/GFX.I
|
||||||
|
*--------------------------------------
|
||||||
|
WND.MAX .EQ 64
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.MA SWAP16
|
.MA SWAP16
|
||||||
lda ]1
|
lda ]1
|
||||||
@ -44,6 +46,8 @@ AUTO 4,1
|
|||||||
ZPPtr1 .EQ ZPLIB
|
ZPPtr1 .EQ ZPLIB
|
||||||
ZPGCPtr .EQ ZPLIB+2
|
ZPGCPtr .EQ ZPLIB+2
|
||||||
ZPCBPtr .EQ ZPLIB+4
|
ZPCBPtr .EQ ZPLIB+4
|
||||||
|
ZPWNDPtr .EQ ZPLIB+6
|
||||||
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -61,8 +65,6 @@ CS.START cld
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.1 .DA LIB.LOAD
|
.1 .DA LIB.LOAD
|
||||||
.DA LIB.UNLOAD
|
.DA LIB.UNLOAD
|
||||||
.DA InitGUI
|
|
||||||
.DA CloseGUI
|
|
||||||
.DA Draw
|
.DA Draw
|
||||||
.DA SetCursor.A
|
.DA SetCursor.A
|
||||||
.DA SetCursorPos
|
.DA SetCursorPos
|
||||||
@ -75,6 +77,8 @@ 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.SYSX7B .DA SYSX7B
|
||||||
L.MouseClamp .DA MouseClamp
|
L.MouseClamp .DA MouseClamp
|
||||||
L.GC.Screen .DA GC.Screen
|
L.GC.Screen .DA GC.Screen
|
||||||
L.CB.Cache .DA CB.Cache
|
L.CB.Cache .DA CB.Cache
|
||||||
@ -104,114 +108,25 @@ J.Clip .DA CLIP.Point SETPIXEL
|
|||||||
.DA CLIP.Text
|
.DA CLIP.Text
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LIB.LOAD
|
LIB.LOAD lda LibCount
|
||||||
LIB.UNLOAD clc
|
bne .8
|
||||||
|
|
||||||
|
jsr FON.Init
|
||||||
|
jsr WND.Init
|
||||||
|
jsr MOU.Init
|
||||||
|
|
||||||
|
.8 inc LibCount
|
||||||
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
InitGUI lda GC.Screen+S.GC.hDev
|
LIB.UNLOAD dec LibCount
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
>LDYA L.DEVNAME.GFX
|
|
||||||
>SYSCALL GetDevByName.YA
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
stx GC.Screen+S.GC.hDev
|
jsr MOU.Quit
|
||||||
>STYA GoDevGfx.Jmp+1
|
|
||||||
|
|
||||||
txa
|
|
||||||
ldx #DEVMGR.OPEN
|
|
||||||
jsr GoDevGfx.Jmp
|
|
||||||
|
|
||||||
ldx #DEVMGR.STATUS get graphic mode and resolution....
|
|
||||||
jsr GoDevGfx.Jmp
|
|
||||||
|
|
||||||
>STYA ZPPtr1
|
.8 clc
|
||||||
|
|
||||||
ldy #S.DSTAT.GFX.W
|
|
||||||
|
|
||||||
lda (ZPPtr1),y
|
|
||||||
clc
|
|
||||||
sbc #0
|
|
||||||
sta GC.Screen+S.GC.X2
|
|
||||||
iny
|
|
||||||
lda (ZPPtr1),y
|
|
||||||
sbc #0
|
|
||||||
sta GC.Screen+S.GC.X2+1
|
|
||||||
|
|
||||||
iny #S.DSTAT.GFX.H
|
|
||||||
|
|
||||||
lda (ZPPtr1),y
|
|
||||||
clc
|
|
||||||
sbc #0
|
|
||||||
sta GC.Screen+S.GC.Y2
|
|
||||||
iny
|
|
||||||
lda (ZPPtr1),y
|
|
||||||
sbc #0
|
|
||||||
sta GC.Screen+S.GC.Y2+1
|
|
||||||
|
|
||||||
.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
|
|
||||||
|
|
||||||
* Mouse Setup
|
|
||||||
|
|
||||||
.2 stx hDevMouse
|
|
||||||
>STYA GoDevMouse+1
|
|
||||||
|
|
||||||
txa
|
|
||||||
ldx #DEVMGR.OPEN
|
|
||||||
jsr GoDevMouse
|
|
||||||
|
|
||||||
lda GC.Screen+S.GC.X2+1
|
|
||||||
sta MouseClamp+3
|
|
||||||
lsr
|
|
||||||
sta CUR.Pos+S.POINT.X+1
|
|
||||||
|
|
||||||
lda GC.Screen+S.GC.X2
|
|
||||||
sta MouseClamp+2
|
|
||||||
ror
|
|
||||||
sta CUR.Pos+S.POINT.X
|
|
||||||
|
|
||||||
lda GC.Screen+S.GC.Y2+1
|
|
||||||
sta MouseClamp+7
|
|
||||||
lsr
|
|
||||||
sta CUR.Pos+S.POINT.Y+1
|
|
||||||
|
|
||||||
lda GC.Screen+S.GC.Y2
|
|
||||||
sta MouseClamp+6
|
|
||||||
ror
|
|
||||||
sta CUR.Pos+S.POINT.Y
|
|
||||||
|
|
||||||
>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
|
|
||||||
bra .8
|
|
||||||
*--------------------------------------
|
|
||||||
CloseGUI lda hDevMouse
|
|
||||||
beq .1
|
|
||||||
|
|
||||||
ldx #DEVMGR.CLOSE
|
|
||||||
jsr GoDevMouse
|
|
||||||
|
|
||||||
.1 stz GC.Screen+S.GC.hDev
|
|
||||||
sec
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GC.Get >STYA .1+1
|
GC.Get >STYA .1+1
|
||||||
@ -254,25 +169,33 @@ GoDevGfx >LDYA L.CB.Cache
|
|||||||
ldx #DEVMGR.WRITE
|
ldx #DEVMGR.WRITE
|
||||||
GoDevGfx.Jmp jmp $ffff
|
GoDevGfx.Jmp jmp $ffff
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GoDevMouse jmp $ffff
|
.INB /A2OSX.SRC/LIB/LIBGUI.S.BM
|
||||||
*--------------------------------------
|
.INB /A2OSX.SRC/LIB/LIBGUI.S.BUT
|
||||||
.INB /A2OSX.SRC/LIB/LIBGUI.S.DRAW
|
|
||||||
.INB /A2OSX.SRC/LIB/LIBGUI.S.CLIP
|
.INB /A2OSX.SRC/LIB/LIBGUI.S.CLIP
|
||||||
.INB /A2OSX.SRC/LIB/LIBGUI.S.CUR
|
.INB /A2OSX.SRC/LIB/LIBGUI.S.CUR
|
||||||
|
.INB /A2OSX.SRC/LIB/LIBGUI.S.DRAW
|
||||||
|
.INB /A2OSX.SRC/LIB/LIBGUI.S.FON
|
||||||
|
.INB /A2OSX.SRC/LIB/LIBGUI.S.MENU
|
||||||
|
.INB /A2OSX.SRC/LIB/LIBGUI.S.MOU
|
||||||
.INB /A2OSX.SRC/LIB/LIBGUI.S.PAT
|
.INB /A2OSX.SRC/LIB/LIBGUI.S.PAT
|
||||||
.INB /A2OSX.SRC/LIB/LIBGUI.S.WND
|
.INB /A2OSX.SRC/LIB/LIBGUI.S.WND
|
||||||
.INB /A2OSX.SRC/LIB/LIBGUI.S.BUT
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
.INB /A2OSX.SRC/LIB/LIBGUI.G.BM
|
||||||
.INB /A2OSX.SRC/LIB/LIBGUI.G.CUR
|
.INB /A2OSX.SRC/LIB/LIBGUI.G.CUR
|
||||||
|
.INB /A2OSX.SRC/LIB/LIBGUI.G.FON
|
||||||
|
.INB /A2OSX.SRC/LIB/LIBGUI.G.WND
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DEVNAME.GFX .AZ "GFX"
|
DEVNAME.GFX .AZ "GFX"
|
||||||
DEVNAME.MOUSE .AZ "MOU1"
|
DEVNAME.MOUSE .AZ "MOU1"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
SYSX7 .AZ "/A2OSX.BUILD/SBIN/GUI/SYSX7"
|
||||||
|
SYSX7B .AZ "/A2OSX.BUILD/SBIN/GUI/SYSX7B"
|
||||||
|
*--------------------------------------
|
||||||
|
LibCount .BS 1
|
||||||
|
hDevScreen .BS 1
|
||||||
hDevMouse .BS 1
|
hDevMouse .BS 1
|
||||||
hSYSFON .BS 1
|
|
||||||
hSYSFONB .BS 1
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DX .BS 2
|
DX .BS 2
|
||||||
DY .BS 2
|
DY .BS 2
|
||||||
@ -296,10 +219,6 @@ CB.CmdLen .DA S.CB.Y1+1 SETPIXEL
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MouseClamp .BS 8
|
MouseClamp .BS 8
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GC.Screen .BS S.GC
|
|
||||||
GC.Desktop .BS S.GC
|
|
||||||
GC.TaskBar .BS S.GC
|
|
||||||
*--------------------------------------
|
|
||||||
PAT.Buf .BS 1 S.BM.F
|
PAT.Buf .BS 1 S.BM.F
|
||||||
.DA #1 S.BM.RowBytes
|
.DA #1 S.BM.RowBytes
|
||||||
.DA 8 S.BM.W
|
.DA 8 S.BM.W
|
||||||
@ -310,7 +229,6 @@ PAT.Buf .BS 1 S.BM.F
|
|||||||
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
|
||||||
WND.Cache .BS S.WND
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/LIB/LIBGUI.S
|
SAVE /A2OSX.SRC/LIB/LIBGUI.S
|
||||||
|
196
SBIN/GUI.S.txt
196
SBIN/GUI.S.txt
@ -34,18 +34,7 @@ CS.START cld
|
|||||||
.DA CS.DOEVENT
|
.DA CS.DOEVENT
|
||||||
.DA CS.QUIT
|
.DA CS.QUIT
|
||||||
L.LIBGUI .DA LIBGUI
|
L.LIBGUI .DA LIBGUI
|
||||||
L.SYSX7 .DA SYSX7
|
|
||||||
L.SYSX7B .DA SYSX7B
|
|
||||||
L.Filename .DA Filename
|
|
||||||
L.MouseData .DA MouseData
|
L.MouseData .DA MouseData
|
||||||
L.CB.Paint .DA CB.Paint
|
|
||||||
L.BM.Apple .DA BM.Apple
|
|
||||||
L.TXT.SampleB .DA TXT.SampleB
|
|
||||||
L.TXT.Sample .DA TXT.Sample
|
|
||||||
L.TXT.A2osX .DA TXT.A2osX
|
|
||||||
L.CB.Marylin .DA CB.Marylin
|
|
||||||
L.CB.DrawLine .DA CB.DrawLine
|
|
||||||
L.GC.Clip .DA GC.Clip
|
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT >LDYA L.LIBGUI
|
CS.INIT >LDYA L.LIBGUI
|
||||||
@ -53,56 +42,6 @@ CS.INIT >LDYA L.LIBGUI
|
|||||||
bcs .98
|
bcs .98
|
||||||
sta hLIBGUI
|
sta hLIBGUI
|
||||||
|
|
||||||
>LIBCALL hLIBGUI,LIBGUI.InitGUI
|
|
||||||
bcs .98
|
|
||||||
|
|
||||||
>PUSHWI 0 Aux type
|
|
||||||
>PUSHBI $CC Type
|
|
||||||
>PUSHBI SYS.FOpen.R
|
|
||||||
>PUSHW L.SYSX7
|
|
||||||
>SYSCALL LoadStkObj
|
|
||||||
.98 bcs .99
|
|
||||||
sta hSYSFON
|
|
||||||
sta CB.DrawText+S.CB.hFont
|
|
||||||
sta CB.DrawA2osX+S.CB.hFont
|
|
||||||
|
|
||||||
>PUSHWI 0 Aux type
|
|
||||||
>PUSHBI $CC Type
|
|
||||||
>PUSHBI SYS.FOpen.R
|
|
||||||
>PUSHW L.SYSX7B
|
|
||||||
>SYSCALL LoadStkObj
|
|
||||||
bcs .99
|
|
||||||
sta hSYSFONB
|
|
||||||
sta CB.DrawTextB+S.CB.hFont
|
|
||||||
|
|
||||||
>PUSHWI 0 Aux type
|
|
||||||
>PUSHBI $CB Type
|
|
||||||
>PUSHBI SYS.FOpen.R
|
|
||||||
>PUSHW L.FILENAME
|
|
||||||
>SYSCALL LoadStkObj
|
|
||||||
.99 bcs CS.INIT.RTS
|
|
||||||
|
|
||||||
sta CB.Marylin+S.CB.SrcPtr
|
|
||||||
|
|
||||||
>LDYA L.TXT.SampleB
|
|
||||||
>STYA CB.DrawTextB+S.CB.TxtPtr
|
|
||||||
>LDYA L.TXT.Sample
|
|
||||||
>STYA CB.DrawText+S.CB.TxtPtr
|
|
||||||
|
|
||||||
>LDYA L.TXT.A2osX
|
|
||||||
>STYA CB.DrawA2osX+S.CB.TxtPtr
|
|
||||||
|
|
||||||
>LDYA L.BM.Apple
|
|
||||||
>STYA CB.Apple+S.CB.SrcPtr
|
|
||||||
|
|
||||||
jsr Destop.Paint
|
|
||||||
|
|
||||||
lda #CUR.T.ARROW
|
|
||||||
>STA.G CUR.T
|
|
||||||
>LIBCALL hLIBGUI,LIBGUI.SetCursor.A
|
|
||||||
|
|
||||||
>LIBCALL hLIBGUI,LIBGUI.ShowCursor
|
|
||||||
|
|
||||||
lda (pPs)
|
lda (pPs)
|
||||||
ora #S.PS.F.EVENT Now accept events
|
ora #S.PS.F.EVENT Now accept events
|
||||||
sta (pPs)
|
sta (pPs)
|
||||||
@ -142,14 +81,10 @@ CS.RUN lda A2osX.ASCREEN GUI screen active ?
|
|||||||
>LIBCALL hLIBGUI,LIBGUI.SetCursor.A
|
>LIBCALL hLIBGUI,LIBGUI.SetCursor.A
|
||||||
|
|
||||||
lda MouseData+S.MOUSE.X1
|
lda MouseData+S.MOUSE.X1
|
||||||
sta CB.Marylin+S.CB.DstX
|
|
||||||
lda MouseData+S.MOUSE.X1+1
|
lda MouseData+S.MOUSE.X1+1
|
||||||
sta CB.Marylin+S.CB.DstX+1
|
|
||||||
|
|
||||||
lda MouseData+S.MOUSE.Y1
|
lda MouseData+S.MOUSE.Y1
|
||||||
sta CB.Marylin+S.CB.DstY
|
|
||||||
lda MouseData+S.MOUSE.Y1+1
|
lda MouseData+S.MOUSE.Y1+1
|
||||||
sta CB.Marylin+S.CB.DstY+1
|
|
||||||
|
|
||||||
jsr Destop.Paint
|
jsr Destop.Paint
|
||||||
|
|
||||||
@ -192,139 +127,8 @@ Destop.Paint >LIBCALL hLIBGUI,LIBGUI.HideCursor
|
|||||||
CS.END
|
CS.END
|
||||||
LIBGUI .AZ "libgui.o"
|
LIBGUI .AZ "libgui.o"
|
||||||
hLIBGUI .BS 1
|
hLIBGUI .BS 1
|
||||||
hSYSFON .BS 1
|
|
||||||
hSYSFONB .BS 1
|
|
||||||
*--------------------------------------
|
|
||||||
Filename .AZ "/A2OSX.BUILD/ROOT/MARILYN"
|
|
||||||
*--------------------------------------
|
|
||||||
SYSX7 .AZ "/A2OSX.BUILD/SBIN/GUI/SYSX7"
|
|
||||||
SYSX7B .AZ "/A2OSX.BUILD/SBIN/GUI/SYSX7B"
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MouseData .BS S.MOUSE
|
MouseData .BS S.MOUSE
|
||||||
*--------------------------------------
|
|
||||||
CB.Paint .DA #S.CB.CMD.FILLRECT
|
|
||||||
.DA #S.CB.OP.SET
|
|
||||||
.DA #S.CB.M.MONO
|
|
||||||
.DA #1
|
|
||||||
.DA 0 X1
|
|
||||||
.DA 0 Y1
|
|
||||||
.DA 559 X2
|
|
||||||
.DA 191 Y2
|
|
||||||
|
|
||||||
.DA #S.CB.CMD.FILLRECT
|
|
||||||
.DA #S.CB.OP.SET
|
|
||||||
.DA #S.CB.M.C16
|
|
||||||
.DA #4
|
|
||||||
.DA 40 X1
|
|
||||||
.DA 20 Y1
|
|
||||||
.DA 519 X2
|
|
||||||
.DA 171 Y2
|
|
||||||
*--------------------------------------
|
|
||||||
CB.DrawTextB .DA #S.CB.CMD.DRAWTEXT
|
|
||||||
.DA #S.CB.OP.SET OP
|
|
||||||
.DA #255 M
|
|
||||||
.BS 1 hFont
|
|
||||||
.DA 0 X1
|
|
||||||
.DA 0 Y1
|
|
||||||
.DA 0 SrcW
|
|
||||||
.DA 0 SrcH
|
|
||||||
.DA 4 DstX
|
|
||||||
.DA 2 DstY
|
|
||||||
.BS 2 TxtPtr
|
|
||||||
*--------------------------------------
|
|
||||||
CB.DrawText .DA #S.CB.CMD.DRAWTEXT
|
|
||||||
.DA #S.CB.OP.SET OP
|
|
||||||
.DA #0 M
|
|
||||||
.BS 1 hFont
|
|
||||||
.DA 0 X1
|
|
||||||
.DA 0 Y1
|
|
||||||
.DA 0 SrcW
|
|
||||||
.DA 0 SrcH
|
|
||||||
.DA 4 DstX
|
|
||||||
.DA 12 DstY
|
|
||||||
.BS 2 TxtPtr
|
|
||||||
*--------------------------------------
|
|
||||||
CB.Apple .DA #S.CB.CMD.BITBLT
|
|
||||||
.DA #S.CB.OP.SET
|
|
||||||
.DA #S.CB.M.C16
|
|
||||||
.DA #0
|
|
||||||
.DA 0 X1
|
|
||||||
.DA 0 Y1
|
|
||||||
.DA 16 W
|
|
||||||
.DA 7 H
|
|
||||||
.DA 4 DestX
|
|
||||||
.DA 183 DestY
|
|
||||||
.BS 2 SrcPtr
|
|
||||||
.DA 0 DstPtr
|
|
||||||
*--------------------------------------
|
|
||||||
CB.DrawA2osX .DA #S.CB.CMD.DRAWTEXT
|
|
||||||
.DA #S.CB.OP.SET OP
|
|
||||||
.DA #255 M
|
|
||||||
.BS 1 hFont
|
|
||||||
.DA 0 X1
|
|
||||||
.DA 0 Y1
|
|
||||||
.DA 0 SrcW
|
|
||||||
.DA 0 SrcH
|
|
||||||
.DA 24 DstX
|
|
||||||
.DA 183 DstY
|
|
||||||
.BS 2 TxtPtr
|
|
||||||
*--------------------------------------
|
|
||||||
.DA #0
|
|
||||||
*--------------------------------------
|
|
||||||
BM.Apple .DA #S.BM.F.BBP4
|
|
||||||
.DA #2 RowBytes
|
|
||||||
.DA 16 W
|
|
||||||
.DA 7 H
|
|
||||||
.DA 0 no MASK.OFS
|
|
||||||
|
|
||||||
.HS FFF6 green (8)
|
|
||||||
.HS 6FF6 green (8)
|
|
||||||
.HS EEEE yellow (15)
|
|
||||||
.HS CCFC orange (14)
|
|
||||||
.HS 88F8 magenta (10)
|
|
||||||
.HS 9999 violet (11)
|
|
||||||
.HS 1FF1 Dark blue (4)
|
|
||||||
*--------------------------------------
|
|
||||||
TXT.SampleB .AZ "Sample Text with SYSX7B.FON Height=7px, Variable Width {}[] #0123456789"
|
|
||||||
TXT.Sample .AZ "White/Black: SYSX7.FON Height=7px, #.;:!?+-_=%*$@ /\ () {|}[] #0123456789"
|
|
||||||
TXT.A2osX .AZ "A2osX"
|
|
||||||
*--------------------------------------
|
|
||||||
CB.Marylin .DA #S.CB.CMD.BITBLT
|
|
||||||
.DA #S.CB.OP.SET
|
|
||||||
.DA #S.CB.M.MONO
|
|
||||||
.DA #0
|
|
||||||
.DA 0 X1
|
|
||||||
.DA 0 Y1
|
|
||||||
.DA 141 W
|
|
||||||
.DA 150 H
|
|
||||||
.DA 200 DestX
|
|
||||||
.DA 21 DestY
|
|
||||||
.BS 2 SrcPtr
|
|
||||||
.DA 0 DstPtr
|
|
||||||
|
|
||||||
.DA #0
|
|
||||||
*--------------------------------------
|
|
||||||
CB.DrawLine .DA #0
|
|
||||||
.DA #S.CB.CMD.DRAWLINE
|
|
||||||
.DA #S.CB.OP.XOR
|
|
||||||
.DA #S.CB.M.MONO
|
|
||||||
.DA #1
|
|
||||||
.BS 2 X1
|
|
||||||
.BS 2 Y1
|
|
||||||
.BS 2 X2
|
|
||||||
.BS 2 Y2
|
|
||||||
|
|
||||||
.DA #0
|
|
||||||
*--------------------------------------
|
|
||||||
GC.Clip .DA #0
|
|
||||||
.DA #0
|
|
||||||
.DA #0
|
|
||||||
.DA #0
|
|
||||||
|
|
||||||
.DA 40 X1
|
|
||||||
.DA 20 Y1
|
|
||||||
.DA 519 X2
|
|
||||||
.DA 171 Y2
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user