A2osX/LIB/LIBGUI.S.txt

308 lines
6.5 KiB
Plaintext
Raw Normal View History

NEW
2019-07-30 08:57:25 +00:00
AUTO 3,1
.LIST OFF
.OP 65C02
.OR $2000
2019-12-03 15:42:17 +00:00
.TF lib/libgui
*--------------------------------------
2018-07-23 15:28:42 +00:00
.INB INC/MACROS.I
.INB INC/A2OSX.I
2019-01-08 16:29:26 +00:00
.INB INC/KERNEL.I
.INB INC/GFX.I
2018-07-23 15:28:42 +00:00
.INB INC/LIBGUI.I
2018-05-16 06:02:57 +00:00
*--------------------------------------
WND.MAX .EQ 64
*--------------------------------------
.MA SWAP16
lda ]1
ldx ]2
stx ]1
sta ]2
lda ]1+1
ldx ]2+1
stx ]1+1
sta ]2+1
.EM
.MA NOT16
sec
lda #0
sbc ]1
sta ]1
lda #0
sbc ]1+1
sta ]1+1
.EM
.MA SCMPAX
sec
sbc ]1
txa
sbc ]1+1
bvc :1
eor #$80
:1 .EQ *
2019-10-03 06:25:27 +00:00
.EM
*--------------------------------------
ZPPtr1 .EQ ZPLIB
2019-01-10 16:26:58 +00:00
ZPObjPtr .EQ ZPLIB+4
2019-01-08 16:29:26 +00:00
ZPCBPtr .EQ ZPLIB+6
ZPWNDPtr .EQ ZPLIB+8
2018-05-16 06:02:57 +00:00
2016-06-15 06:21:42 +00:00
*--------------------------------------
* File Header (16 Bytes)
*--------------------------------------
CS.START cld
jmp (.1,x)
.DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1
.DA 0
.DA CS.END-CS.START
.DA 0
.DA 0
.DA 0
*--------------------------------------
* Relocation Table
*--------------------------------------
.1 .DA LIB.LOAD
.DA LIB.UNLOAD
2017-11-15 16:29:23 +00:00
.DA Draw
2019-01-08 16:29:26 +00:00
.DA SetCursor
2017-11-15 16:29:23 +00:00
.DA SetCursorPos
2016-06-15 15:58:45 +00:00
.DA HideCursor
.DA ShowCursor
2017-12-04 07:18:24 +00:00
.DA UpdateCursor
2019-01-09 16:42:20 +00:00
.DA MOU.ReadMouse
*--------------------------------------
2017-12-04 07:18:24 +00:00
J.Cmds .DA DrawLine
.DA DrawText
2019-01-09 16:42:20 +00:00
*--------------------------------------
L.DEVNAME.GFX .DA DEVNAME.GFX
L.DEVNAME.MOUSE .DA DEVNAME.MOUSE
2018-05-16 06:02:57 +00:00
L.SYSX7 .DA SYSX7
L.SYSX7B .DA SYSX7B
2019-01-09 16:42:20 +00:00
L.IOCTL .DA IOCTL
2019-01-08 16:29:26 +00:00
L.DCB.GFX .DA DCB.GFX
L.MouseClamp .DA MouseClamp
L.CB.Cache .DA CB.Cache
2019-01-10 16:26:58 +00:00
L.SCR .DA SCR
L.WND.Desktop .DA WND.Desktop
L.WND.SysBar .DA WND.SysBar
*--------------------------------------
L.BM.Apple .DA BM.Apple
2019-01-09 16:42:20 +00:00
*--------------------------------------
L.CUR.CB .DA CUR.CB
L.CUR.SaveBuf .DA CUR.SaveBuf
L.Cursors .DA CUR.Arrow
2017-12-04 07:18:24 +00:00
.DA CUR.ResizeX
.DA CUR.ResizeY
2017-12-05 07:09:16 +00:00
.DA CUR.ResizeXY1
.DA CUR.ResizeXY2
2017-12-04 07:18:24 +00:00
.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
.DA CLIP.VLine
.DA CLIP.Rect FILLRECT
.DA CLIP.BitBlt
.DA CLIP.Rect GETRECTBUFSIZE
.DA CLIP.Line
2019-01-10 16:26:58 +00:00
.DA CLIP.Text
.DA 0
*--------------------------------------
2018-05-16 06:02:57 +00:00
LIB.LOAD lda LibCount
bne .8
2019-01-08 16:29:26 +00:00
2018-05-16 06:02:57 +00:00
jsr FON.Init
2019-01-08 16:29:26 +00:00
bcs .9
2019-01-09 06:58:19 +00:00
2018-05-16 06:02:57 +00:00
jsr MOU.Init
2019-01-08 16:29:26 +00:00
bcs .9
2019-01-09 06:58:19 +00:00
jsr WND.Init
bcs .9
2019-01-10 16:26:58 +00:00
jsr WND.Setup
2019-01-09 06:58:19 +00:00
lda hDevMouse
beq .8
jsr MOU.Setup
2018-05-16 06:02:57 +00:00
.8 inc LibCount
2019-01-09 06:58:19 +00:00
2017-12-04 07:18:24 +00:00
clc
2019-01-08 16:29:26 +00:00
.9 rts
2018-05-16 06:02:57 +00:00
*--------------------------------------
LIB.UNLOAD dec LibCount
bne .8
jsr MOU.Quit
.8 clc
2016-06-15 06:21:42 +00:00
rts
*--------------------------------------
2019-01-10 16:26:58 +00:00
OBJ.Get >STYA .1+1
2017-12-04 16:42:08 +00:00
2019-01-10 16:26:58 +00:00
ldx #S.OBJ-1
2017-12-04 16:42:08 +00:00
.1 lda $ffff,x SELF MODIFIED
2019-01-10 16:26:58 +00:00
sta OBJ.Cache,x
2017-12-04 16:42:08 +00:00
dex
bpl .1
rts
*--------------------------------------
2019-01-10 16:26:58 +00:00
OBJ.SetX2Y2 >STYA ZPObjPtr
ldy #S.OBJ.W
lda (ZPObjPtr),y
clc
sbc #0
pha
iny
lda (ZPObjPtr),y
sbc #0
tax
pla
clc
ldy #S.OBJ.X1
adc (ZPObjPtr),y
pha
txa
iny
adc (ZPObjPtr),y
ldy #S.OBJ.X2+1
sta (ZPObjPtr),y
dey
pla
sta (ZPObjPtr),y
ldy #S.OBJ.H
lda (ZPObjPtr),y
clc
sbc #0
pha
iny
lda (ZPObjPtr),y
sbc #0
tax
pla
clc
ldy #S.OBJ.Y1
adc (ZPObjPtr),y
pha
txa
iny
adc (ZPObjPtr),y
ldy #S.OBJ.Y2+1
sta (ZPObjPtr),y
dey
pla
sta (ZPObjPtr),y
rts
*--------------------------------------
2017-12-04 16:42:08 +00:00
CB.Get >STYA .1+1
ldx #S.CB-1
.1 lda $ffff,x SELF MODIFIED
sta CB.Cache,x
dex
bpl .1
2017-12-04 07:18:24 +00:00
rts
*--------------------------------------
2019-01-10 16:26:58 +00:00
GFXWrite.CB >LDYA L.CB.Cache
2019-01-09 06:58:19 +00:00
2019-01-09 16:42:20 +00:00
GFXWrite.YA >PUSHYA
2019-01-09 06:58:19 +00:00
>PUSHBI IOCTL.WRITE
2019-01-10 16:26:58 +00:00
lda SCR+S.SCREEN.hDEV
2019-05-05 17:15:37 +00:00
>SYSCALL2 IOCTL
2019-01-09 06:58:19 +00:00
rts
*--------------------------------------
2018-11-17 17:17:13 +00:00
.INB USR/SRC/LIB/LIBGUI.S.BM
.INB USR/SRC/LIB/LIBGUI.S.BUT
.INB USR/SRC/LIB/LIBGUI.S.CLIP
.INB USR/SRC/LIB/LIBGUI.S.CUR
.INB USR/SRC/LIB/LIBGUI.S.DRAW
.INB USR/SRC/LIB/LIBGUI.S.FON
.INB USR/SRC/LIB/LIBGUI.S.MENU
.INB USR/SRC/LIB/LIBGUI.S.MOU
.INB USR/SRC/LIB/LIBGUI.S.PAT
.INB USR/SRC/LIB/LIBGUI.S.WND
*--------------------------------------
CS.END
*--------------------------------------
2018-11-17 17:17:13 +00:00
.INB USR/SRC/LIB/LIBGUI.G.BM
.INB USR/SRC/LIB/LIBGUI.G.CUR
.INB USR/SRC/LIB/LIBGUI.G.FON
.INB USR/SRC/LIB/LIBGUI.G.WND
*--------------------------------------
2019-01-08 16:29:26 +00:00
DEVNAME.GFX .AZ "/DEV/GFX"
DEVNAME.MOUSE .AZ "/DEV/MOU1"
*--------------------------------------
2018-05-16 06:02:57 +00:00
SYSX7 .AZ "/A2OSX.BUILD/SBIN/GUI/SYSX7"
SYSX7B .AZ "/A2OSX.BUILD/SBIN/GUI/SYSX7B"
*--------------------------------------
LibCount .BS 1
hDevMouse .BS 1
2016-06-15 06:21:42 +00:00
*--------------------------------------
DX .BS 2
DY .BS 2
IY .BS 1
IE .BS 2
D .BS 2
INE .BS 2
Counter .BS 2
CLIP.Line.P1 .BS 1
CLIP.Line.P2 .BS 1
*--------------------------------------
2017-11-15 16:29:23 +00:00
CB.CmdLen .DA S.CB.Y1+1 SETPIXEL
.DA S.CB.Y1+1 GETPIXEL
.DA S.CB.X2+1 HLINE
.DA S.CB.Y2+1 VLINE
.DA S.CB.Y2+1 FILLRECT
.DA S.CB.DstPtr+1 BITBLT
2017-11-20 06:59:59 +00:00
.DA S.CB.DstPtr+1 GETRECTBUFSIZE
2017-11-15 16:29:23 +00:00
.DA S.CB.Y2+1 DRAWLINE
.DA S.CB.TxtPtr+1 DRAWTEXT
2017-11-15 16:29:23 +00:00
*--------------------------------------
PAT.Buf .BS 1 S.BM.F
.DA #1 S.BM.RowBytes
.DA 8 S.BM.W
.DA 8 S.BM.H
.DA 0 S.BM.MASK.OFS
.BS 8 (data)
*--------------------------------------
2019-01-09 16:42:20 +00:00
IOCTL .BS S.IOCTL
2019-01-08 16:29:26 +00:00
DCB.GFX .BS S.DCB.GFX
2019-01-09 16:42:20 +00:00
*--------------------------------------
2019-01-10 16:26:58 +00:00
MouseClamp .BS 8
*--------------------------------------
2019-01-10 07:00:45 +00:00
CB.Cache .BS S.CB
2019-01-10 16:26:58 +00:00
OBJ.Cache .BS S.OBJ
2019-01-10 07:00:45 +00:00
*--------------------------------------
2019-01-10 16:26:58 +00:00
SCR .BS S.SCREEN S.OBJ.T.SCREEN
SCR.Childs .BS 2 WND.Desktop
.BS 2 WND.SysBar
.DA 0
*--------------------------------------
WND.Desktop .DA #S.OBJ.T.WND
.BS S.WND-1
*--------------------------------------
WND.SysBar .DA #S.OBJ.T.WND
.BS S.WND-1
WND.SysBar.Childs
.BS 2 BUT.Sys
.DA 0
2019-01-09 16:42:20 +00:00
*--------------------------------------
2019-01-10 07:00:45 +00:00
BUT.Sys .DA #S.OBJ.T.BUT
.DA #0 F
.DA #0 S
.DA #0 ID
.DA 0 hOWNER
.DA 0 pPARENT
*--------------------------------------
MENU.Sys
*--------------------------------------
MAN
2018-11-17 17:17:13 +00:00
SAVE USR/SRC/LIB/LIBGUI.S
ASM