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.WND.T .EQ 0
S.WND.F .EQ 1
S.OBJ.T .EQ 0
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.MOVE .EQ %00000010
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.MODAL .EQ %01000000
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.CTRL.T .EQ 0
S.CTRL.T.WND .EQ 0
S.CTRL.T.MENU .EQ 2
S.CTRL.T.BUT .EQ 4
S.CTRL.T.TEXT .EQ 6
S.WND.S.MAX .EQ %00001000
S.WND.S.MIN .EQ %00010000
*
S.WND.MinW .EQ 16
S.WND.MinH .EQ 18
S.CTRL.F .EQ 1
S.CTRL.ID .EQ 3
S.CTRL.hOWNER .EQ 4
S.CTRL.hPARENT .EQ 5
S.CTRL.X .EQ 6
S.CTRL.Y .EQ 8
S.CTRL.W .EQ 10
S.CTRL.H .EQ 12
S.WND.hTITLE .EQ 20
S.WND.hMENUBAR .EQ 22
S.WND.hBKCOLOR .EQ 24
S.WND.hBKBM .EQ 26
S.WND.hCUR .EQ 28
S.WND.hSTATUS .EQ 30
S.WND.hICON .EQ 32
*
S.WND .EQ 34
*--------------------------------------
S.MENUBAR
*--------------------------------------
S.MENU.T .EQ 0
S.MENU.F .EQ 1
S.MENU.hSAVEBUF .EQ 2
S.MENU.X .EQ 3
S.MENU.Y .EQ 5
* ... S.MITEMs...
*--------------------------------------
S.MITEM.F .EQ 0
*S.MITEM.F. .EQ %00000001
*S.MITEM.F. .EQ %00000010
*S.MITEM.F. .EQ %00000100
*S.MITEM.F. .EQ %00001000
*S.MITEM.F. .EQ %00010000
S.MITEM.F.SEP .EQ %00100000
S.MITEM.F.CHECKED .EQ %01000000
S.MITEM.F.DISABLED .EQ %10000000
S.MITEM.ID .EQ 1
S.MITEM.hSUBM .EQ 2
S.MITEM.hBM .EQ 3
S.MITEM.HOTKEY .EQ 4
S.MITEM.HOTKEY.CTRL .EQ %10000000
S.MITEM.HOTKEY.OA .EQ %01000000
S.MITEM.HOTKEY.CA .EQ %00100000
S.MITEM.TEXTLEN .EQ 5
S.MITEM.TEXT .EQ 6 CSTR
*S.MENUITEM.F. .EQ %00000001
*S.MENUITEM.F. .EQ %00000010
*S.MENUITEM.F. .EQ %00000100
*S.MENUITEM.F. .EQ %00001000
*S.MENUITEM.F. .EQ %00010000
S.MENUITEM.F.SEP .EQ %00100000
S.MENUITEM.F.CHECKED .EQ %01000000
S.MENUITEM.F.DISABLED .EQ %10000000
S.MENUITEM.ID .EQ 1
S.MENUITEM.hSUBM .EQ 2
S.MENUITEM.hBM .EQ 3
S.MENUITEM.HOTKEY .EQ 4
S.MENUITEM.HOTKEY.CTRL .EQ %10000000
S.MENUITEM.HOTKEY.OA .EQ %01000000
S.MENUITEM.HOTKEY.CA .EQ %00100000
S.MENUITEM.TEXTLEN .EQ 5
S.MENUITEM.TEXT .EQ 6 CSTR
* ...
*--------------------------------------
S.BUT.T .EQ 0

View File

@ -4,8 +4,6 @@ AUTO 4,1
.LIST OFF
.OP 65C02
*--------------------------------------
LIBGUI.InitGUI .EQ 4
LIBGUI.CloseGUI .EQ 6
LIBGUI.Draw .EQ 8
LIBGUI.SetCursor.A .EQ 10
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
PREFIX /A2OSX.BUILD
AUTO 4,1
.LIST OFF
*--------------------------------------
* CLIPPING Functions:
* 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
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
rts
*--------------------------------------
WND.Close
*--------------------------------------
MAN
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/LIBGUI.I
.INB /A2OSX.BUILD/INC/GFX.I
*--------------------------------------
WND.MAX .EQ 64
*--------------------------------------
.MA SWAP16
lda ]1
@ -44,6 +46,8 @@ AUTO 4,1
ZPPtr1 .EQ ZPLIB
ZPGCPtr .EQ ZPLIB+2
ZPCBPtr .EQ ZPLIB+4
ZPWNDPtr .EQ ZPLIB+6
*--------------------------------------
* File Header (16 Bytes)
*--------------------------------------
@ -61,8 +65,6 @@ CS.START cld
*--------------------------------------
.1 .DA LIB.LOAD
.DA LIB.UNLOAD
.DA InitGUI
.DA CloseGUI
.DA Draw
.DA SetCursor.A
.DA SetCursorPos
@ -75,6 +77,8 @@ 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.MouseClamp .DA MouseClamp
L.GC.Screen .DA GC.Screen
L.CB.Cache .DA CB.Cache
@ -104,114 +108,25 @@ J.Clip .DA CLIP.Point SETPIXEL
.DA CLIP.Text
.DA 0
*--------------------------------------
LIB.LOAD
LIB.UNLOAD clc
LIB.LOAD lda LibCount
bne .8
jsr FON.Init
jsr WND.Init
jsr MOU.Init
.8 inc LibCount
clc
rts
*--------------------------------------
InitGUI lda GC.Screen+S.GC.hDev
LIB.UNLOAD dec LibCount
bne .8
>LDYA L.DEVNAME.GFX
>SYSCALL GetDevByName.YA
bcs .9
stx GC.Screen+S.GC.hDev
>STYA GoDevGfx.Jmp+1
jsr MOU.Quit
txa
ldx #DEVMGR.OPEN
jsr GoDevGfx.Jmp
ldx #DEVMGR.STATUS get graphic mode and resolution....
jsr GoDevGfx.Jmp
>STYA ZPPtr1
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
.8 clc
rts
*--------------------------------------
GC.Get >STYA .1+1
@ -254,25 +169,33 @@ GoDevGfx >LDYA L.CB.Cache
ldx #DEVMGR.WRITE
GoDevGfx.Jmp jmp $ffff
*--------------------------------------
GoDevMouse jmp $ffff
*--------------------------------------
.INB /A2OSX.SRC/LIB/LIBGUI.S.DRAW
.INB /A2OSX.SRC/LIB/LIBGUI.S.BM
.INB /A2OSX.SRC/LIB/LIBGUI.S.BUT
.INB /A2OSX.SRC/LIB/LIBGUI.S.CLIP
.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.WND
.INB /A2OSX.SRC/LIB/LIBGUI.S.BUT
*--------------------------------------
CS.END
*--------------------------------------
.INB /A2OSX.SRC/LIB/LIBGUI.G.BM
.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.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
hSYSFON .BS 1
hSYSFONB .BS 1
*--------------------------------------
DX .BS 2
DY .BS 2
@ -296,10 +219,6 @@ CB.CmdLen .DA S.CB.Y1+1 SETPIXEL
*--------------------------------------
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
.DA #1 S.BM.RowBytes
.DA 8 S.BM.W
@ -310,7 +229,6 @@ PAT.Buf .BS 1 S.BM.F
GC.Cache .BS S.GC
CB.Cache .BS S.CB
BM.Cache .BS S.BM
WND.Cache .BS S.WND
*--------------------------------------
MAN
SAVE /A2OSX.SRC/LIB/LIBGUI.S

View File

@ -34,18 +34,7 @@ CS.START cld
.DA CS.DOEVENT
.DA CS.QUIT
L.LIBGUI .DA LIBGUI
L.SYSX7 .DA SYSX7
L.SYSX7B .DA SYSX7B
L.Filename .DA Filename
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
*--------------------------------------
CS.INIT >LDYA L.LIBGUI
@ -53,56 +42,6 @@ CS.INIT >LDYA L.LIBGUI
bcs .98
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)
ora #S.PS.F.EVENT Now accept events
sta (pPs)
@ -142,14 +81,10 @@ CS.RUN lda A2osX.ASCREEN GUI screen active ?
>LIBCALL hLIBGUI,LIBGUI.SetCursor.A
lda MouseData+S.MOUSE.X1
sta CB.Marylin+S.CB.DstX
lda MouseData+S.MOUSE.X1+1
sta CB.Marylin+S.CB.DstX+1
lda MouseData+S.MOUSE.Y1
sta CB.Marylin+S.CB.DstY
lda MouseData+S.MOUSE.Y1+1
sta CB.Marylin+S.CB.DstY+1
jsr Destop.Paint
@ -192,139 +127,8 @@ Destop.Paint >LIBCALL hLIBGUI,LIBGUI.HideCursor
CS.END
LIBGUI .AZ "libgui.o"
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
*--------------------------------------
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
.OR 0