Kernel 0.9.1 : GUI, Code Reorg...

This commit is contained in:
Rémy GIBERT 2018-05-16 08:02:57 +02:00
parent d72a6c714d
commit 20f35fbbcd
11 changed files with 320 additions and 370 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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