mirror of
https://github.com/A2osX/A2osX.git
synced 2024-08-14 13:29:02 +00:00
Kernel 0.9.1 : GUI, API & Driver
This commit is contained in:
parent
f5da545c4a
commit
60ea43c5e5
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -73,9 +73,9 @@ HLINE.C16 lda CB.Cache+S.CB.X1
|
|||||||
|
|
||||||
and LBUF.AND,x
|
and LBUF.AND,x
|
||||||
sta LBUF.ORA,x
|
sta LBUF.ORA,x
|
||||||
inx
|
|
||||||
cpx LBUF.C2
|
cpx LBUF.C2
|
||||||
bcs .1
|
inx
|
||||||
|
bcc .1
|
||||||
|
|
||||||
ldy CB.Cache+S.CB.Y1
|
ldy CB.Cache+S.CB.Y1
|
||||||
jmp LBUF.DrawAtY
|
jmp LBUF.DrawAtY
|
||||||
|
@ -21,10 +21,10 @@ FILLRECT jsr HLINE
|
|||||||
bcc .8
|
bcc .8
|
||||||
|
|
||||||
.2 jsr LBUF.DrawAtY
|
.2 jsr LBUF.DrawAtY
|
||||||
inc CB.Cache+S.CB.Y1
|
|
||||||
ldy CB.Cache+S.CB.Y1
|
ldy CB.Cache+S.CB.Y1
|
||||||
|
inc CB.Cache+S.CB.Y1
|
||||||
cpy CB.Cache+S.CB.Y2
|
cpy CB.Cache+S.CB.Y2
|
||||||
bcs .2
|
bcc .2
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -143,28 +143,18 @@ WRITE >STYA ZPCmdPtr
|
|||||||
|
|
||||||
sta SET80STORE
|
sta SET80STORE
|
||||||
|
|
||||||
lda (ZPCmdPtr)
|
lda (ZPCmdPtr) Get Cmd
|
||||||
|
|
||||||
.1 tax
|
.1 tax
|
||||||
ldy CB.CmdLen,x
|
ldy CB.CmdLen,x
|
||||||
|
|
||||||
.2 lda (ZPBasePtr),y
|
.2 lda (ZPCmdPtr),y
|
||||||
sta CB.Cache,y
|
sta CB.Cache,y
|
||||||
dey
|
dey
|
||||||
bpl .2
|
bpl .2
|
||||||
|
|
||||||
lda CB.CmdLen,x
|
|
||||||
clc
|
|
||||||
adc ZPCmdPtr
|
|
||||||
sta ZPCmdPtr
|
|
||||||
bcc .3
|
|
||||||
inc ZPCmdPtr+1
|
|
||||||
|
|
||||||
.3 jsr .10
|
.3 jsr .10
|
||||||
|
|
||||||
lda (ZPCmdPtr)
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
sta CLR80STORE
|
sta CLR80STORE
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
@ -181,18 +171,19 @@ LBUF.SetBounds1YA
|
|||||||
jsr DIVMOD7YA A=DIV, X=MOD
|
jsr DIVMOD7YA A=DIV, X=MOD
|
||||||
sta LBUF.C1
|
sta LBUF.C1
|
||||||
tay
|
tay
|
||||||
|
|
||||||
lda Mono.Head,x
|
lda Mono.Head,x
|
||||||
sta LBUF.AND,y
|
sta LBUF.AND,y
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LBUF.SetBounds2YA
|
LBUF.SetBounds2YA
|
||||||
jsr DIVMOD7YA
|
jsr DIVMOD7YA A=DIV, X=MOD
|
||||||
|
|
||||||
cmp LBUF.C1 A=DIV, X=MOD
|
|
||||||
beq .2
|
|
||||||
|
|
||||||
sta LBUF.C2
|
sta LBUF.C2
|
||||||
tay
|
tay
|
||||||
|
|
||||||
|
cmp LBUF.C1
|
||||||
|
beq .2
|
||||||
|
|
||||||
lda Mono.Tail,x
|
lda Mono.Tail,x
|
||||||
sta LBUF.AND,y
|
sta LBUF.AND,y
|
||||||
|
|
||||||
@ -204,10 +195,8 @@ LBUF.SetBounds2YA
|
|||||||
sta LBUF.AND,y
|
sta LBUF.AND,y
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.2 and LBUF.C1
|
.2 lda Mono.Head,x
|
||||||
sta LBUF.C2
|
and Mono.Tail,x
|
||||||
tay
|
|
||||||
lda Mono.Tail,x
|
|
||||||
sta LBUF.AND,y
|
sta LBUF.AND,y
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -218,6 +207,7 @@ LBUF.DrawAtY lda BASEL,y setup line Base Ptr
|
|||||||
lda BASEH,y
|
lda BASEH,y
|
||||||
sta ZPBasePtr+1
|
sta ZPBasePtr+1
|
||||||
|
|
||||||
|
|
||||||
ldy LBUF.C1 y C1->C2
|
ldy LBUF.C1 y C1->C2
|
||||||
|
|
||||||
.1 ldx COL.BANK,y
|
.1 ldx COL.BANK,y
|
||||||
@ -227,11 +217,12 @@ LBUF.DrawAtY lda BASEL,y setup line Base Ptr
|
|||||||
and LBUF.AND,y
|
and LBUF.AND,y
|
||||||
|
|
||||||
ora LBUF.ORA,y
|
ora LBUF.ORA,y
|
||||||
|
lda #$ff
|
||||||
sta (ZPBasePtr),y
|
sta (ZPBasePtr),y
|
||||||
|
|
||||||
iny
|
|
||||||
cpy LBUF.C2
|
cpy LBUF.C2
|
||||||
bcs .1
|
iny
|
||||||
|
bcc .1
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -259,8 +250,8 @@ LBUF.DrawAtY.XOR
|
|||||||
* X = MOD
|
* X = MOD
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DIVMOD7YA dec
|
DIVMOD7YA dec
|
||||||
bne DIVMOD7Y2
|
|
||||||
beq DIVMOD7Y1
|
beq DIVMOD7Y1
|
||||||
|
bpl DIVMOD7Y2
|
||||||
|
|
||||||
DIVMOD7Y0 lda DIV7.0,y
|
DIVMOD7Y0 lda DIV7.0,y
|
||||||
ldx MOD7.0,y
|
ldx MOD7.0,y
|
||||||
@ -285,7 +276,7 @@ DRV.CS.END
|
|||||||
CB.CmdLen .DA S.CB.Y1+1 SETPIXEL
|
CB.CmdLen .DA S.CB.Y1+1 SETPIXEL
|
||||||
.DA S.CB.Y1+1 GETPIXEL
|
.DA S.CB.Y1+1 GETPIXEL
|
||||||
.DA S.CB.X2+1 HLINE
|
.DA S.CB.X2+1 HLINE
|
||||||
.DA S.CB.X2+1 VLINE
|
.DA S.CB.Y2+1 VLINE
|
||||||
.DA S.CB.Y2+1 FILLRECT
|
.DA S.CB.Y2+1 FILLRECT
|
||||||
.DA S.CB.DstPtr+1 BITBLT
|
.DA S.CB.DstPtr+1 BITBLT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -107,7 +107,7 @@ Dev.Detect >LDYA L.MSG.DETECT
|
|||||||
and #$0F
|
and #$0F
|
||||||
sta DEVSLOT0n
|
sta DEVSLOT0n
|
||||||
ora #$30
|
ora #$30
|
||||||
sta DEV.HEADER.NAME+4
|
sta DEV.HEADER.NAME+3
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
@ -122,7 +122,7 @@ Dev.Detect >LDYA L.MSG.DETECT
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
MSG.DETECT >CSTR "Apple Mouse Card/IIc Mouse Driver.\r\n"
|
MSG.DETECT >CSTR "Apple Mouse Card/IIc Mouse Driver.\r\n"
|
||||||
MSG.DETECT.OK >CSTR "Mouse Installed As Device : %S\r\n"
|
MSG.DETECT.OK >CSTR "Mouse Installed As Device : %s\r\n"
|
||||||
MSG.DETECT.KO >CSTR "No Mouse Found.\r\n"
|
MSG.DETECT.KO >CSTR "No Mouse Found.\r\n"
|
||||||
DEVSIG.Offset .HS 05070B0CFB
|
DEVSIG.Offset .HS 05070B0CFB
|
||||||
DEVSIG.Value .HS 38180120D6
|
DEVSIG.Value .HS 38180120D6
|
||||||
@ -133,7 +133,7 @@ DEV.HEADER cld
|
|||||||
jmp (DRV.CS.START,x)
|
jmp (DRV.CS.START,x)
|
||||||
.DA #0
|
.DA #0
|
||||||
.BS 6
|
.BS 6
|
||||||
DEV.HEADER.NAME >PSTR "MOUX"
|
DEV.HEADER.NAME >CSTR "MOUX"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Driver Code
|
* Driver Code
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -6,7 +6,14 @@ AUTO 6
|
|||||||
.LIST OFF
|
.LIST OFF
|
||||||
.OP 65C02
|
.OP 65C02
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.CB.hDC .EQ 0
|
S.CB.CMD .EQ 0
|
||||||
|
S.CB.CMD.SETPIXEL .EQ 0
|
||||||
|
S.CB.CMD.GETPIXEL .EQ 2
|
||||||
|
S.CB.CMD.HLINE .EQ 4
|
||||||
|
S.CB.CMD.VLINE .EQ 6
|
||||||
|
S.CB.CMD.FILLRECT .EQ 8
|
||||||
|
S.CB.CMD.BITBLT .EQ 10
|
||||||
|
S.CB.CMD.DRAWLINE .EQ 12
|
||||||
S.CB.OP .EQ 1
|
S.CB.OP .EQ 1
|
||||||
S.CB.OP.SAVE .EQ %00000001
|
S.CB.OP.SAVE .EQ %00000001
|
||||||
S.CB.OP.REPLACE .EQ %00000010
|
S.CB.OP.REPLACE .EQ %00000010
|
||||||
@ -41,6 +48,13 @@ S.DC.H .EQ 10
|
|||||||
*
|
*
|
||||||
S.DC .EQ 12
|
S.DC .EQ 12
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
CUR.T.ARROW .EQ 0
|
||||||
|
CUR.T.PLUS .EQ 2
|
||||||
|
CUR.T.WAIT .EQ 4
|
||||||
|
CUR.T.RESIZEX .EQ 6
|
||||||
|
CUR.T.RESIZEY .EQ 8
|
||||||
|
CUR.T.RESIZEXY .EQ 10
|
||||||
|
*--------------------------------------
|
||||||
S.CUR.HotPointX .EQ 0
|
S.CUR.HotPointX .EQ 0
|
||||||
S.CUR.HotPointY .EQ 1
|
S.CUR.HotPointY .EQ 1
|
||||||
S.CUR.DATA .EQ 2 16x16 bits = 32 bytes
|
S.CUR.DATA .EQ 2 16x16 bits = 32 bytes
|
||||||
@ -58,13 +72,14 @@ S.BM.H .EQ 4
|
|||||||
S.BM.MASK.OFFSET .EQ 6
|
S.BM.MASK.OFFSET .EQ 6
|
||||||
S.BM.DATA .EQ 8
|
S.BM.DATA .EQ 8
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LIBGFX.InitGFXA .EQ 4
|
LIBGUI.InitGUI.A .EQ 4
|
||||||
LIBGFX.CloseGFX .EQ 4
|
LIBGUI.CloseGUI .EQ 6
|
||||||
LIBGFX.SetCursorPos .EQ 8
|
LIBGUI.Draw .EQ 8
|
||||||
LIBGFX.SetCursorYA .EQ 10
|
LIBGUI.SetCursor.A .EQ 10
|
||||||
LIBGFX.HideCursor .EQ 12
|
LIBGUI.SetCursorPos .EQ 12
|
||||||
LIBGFX.ShowCursor .EQ 14
|
LIBGUI.HideCursor .EQ 14
|
||||||
LIBGFX.DrawLine .EQ 16
|
LIBGUI.ShowCursor .EQ 16
|
||||||
|
LIBGUI.DrawLine .EQ 18
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.BUILD/INC/LIBGUI.I
|
SAVE /A2OSX.BUILD/INC/LIBGUI.I
|
||||||
|
116
LIB/LIBGUI.S.txt
116
LIB/LIBGUI.S.txt
@ -6,11 +6,11 @@ AUTO 6
|
|||||||
.LIST OFF
|
.LIST OFF
|
||||||
.OP 65C02
|
.OP 65C02
|
||||||
.OR $2000
|
.OR $2000
|
||||||
.TF /A2OSX.BUILD/LIB/LIBGFX.O
|
.TF /A2OSX.BUILD/LIB/LIBGUI.O
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB /A2OSX.BUILD/INC/MACROS.I
|
.INB /A2OSX.BUILD/INC/MACROS.I
|
||||||
.INB /A2OSX.BUILD/INC/A2OSX.I
|
.INB /A2OSX.BUILD/INC/A2OSX.I
|
||||||
.INB /A2OSX.BUILD/INC/LIBGFX.I
|
.INB /A2OSX.BUILD/INC/LIBGUI.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.MA SWAP16
|
.MA SWAP16
|
||||||
lda ]1
|
lda ]1
|
||||||
@ -32,8 +32,8 @@ AUTO 6
|
|||||||
sta ]1+1
|
sta ]1+1
|
||||||
.EM
|
.EM
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPCBPtr .EQ ZPLIB
|
|
||||||
ZPDCPtr .EQ ZPLIB+2
|
ZPDCPtr .EQ ZPLIB+2
|
||||||
|
ZPCmdPtr .EQ ZPLIB+4
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -51,10 +51,11 @@ CS.START cld
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.1 .DA LIB.LOAD
|
.1 .DA LIB.LOAD
|
||||||
.DA LIB.UNLOAD
|
.DA LIB.UNLOAD
|
||||||
.DA InitGFXA
|
.DA InitGUI.A
|
||||||
.DA CloseGFX
|
J.Cmds .DA CloseGUI J.Cmds-12 !!!
|
||||||
.DA InitCursor
|
.DA Draw
|
||||||
.DA SetCursorYA
|
.DA SetCursor.A
|
||||||
|
.DA SetCursorPos
|
||||||
.DA HideCursor
|
.DA HideCursor
|
||||||
.DA ShowCursor
|
.DA ShowCursor
|
||||||
.DA DrawLine
|
.DA DrawLine
|
||||||
@ -65,21 +66,59 @@ LIB.LOAD
|
|||||||
LIB.UNLOAD clc
|
LIB.UNLOAD clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
InitGFXA sta hDev
|
InitGUI.A sta hDev
|
||||||
>SYSCALL GetDevByIDA
|
>SYSCALL GetDevByID.A
|
||||||
>STYA GoDevGFX.1+1
|
>STYA GoDev.Jmp+1
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CloseGFX
|
CloseGUI
|
||||||
stz hDev
|
stz hDev
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
InitCursor
|
Draw >PULLW ZPCmdPtr
|
||||||
|
|
||||||
|
lda (ZPCmdPtr) Get Cmd
|
||||||
|
|
||||||
|
.1 tax
|
||||||
|
cpx #S.CB.CMD.DRAWLINE
|
||||||
|
bcc .3 Native DRV Cmd
|
||||||
|
|
||||||
|
ldy CB.CmdLen,x
|
||||||
|
|
||||||
|
.2 lda (ZPCmdPtr),y Y=Byte count-1 to cache
|
||||||
|
sta CB.Cache,y
|
||||||
|
dey
|
||||||
|
bpl .2
|
||||||
|
jsr Draw.Jmp
|
||||||
|
bra .7
|
||||||
|
|
||||||
|
.3 >LDYA ZPCmdPtr
|
||||||
|
|
||||||
|
jsr GoDev.YA
|
||||||
|
|
||||||
|
.7 lda (ZPCmdPtr) Get Cmd
|
||||||
|
tax
|
||||||
|
lda CB.CmdLen,x
|
||||||
|
sec
|
||||||
|
adc ZPCmdPtr
|
||||||
|
sta ZPCmdPtr
|
||||||
|
bcc .8
|
||||||
|
inc ZPCmdPtr+1
|
||||||
|
|
||||||
|
.8 lda (ZPCmdPtr) Get Cmd
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
Draw.Jmp jmp (J.Cmds,x)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SetCursorYA
|
SetCursor.A
|
||||||
|
*--------------------------------------
|
||||||
|
SetCursorPos
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
HideCursor
|
HideCursor
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -98,12 +137,8 @@ ShowCursor
|
|||||||
* X2
|
* X2
|
||||||
* Y2
|
* Y2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DrawLine ldy #S.CB.Y2+1
|
DrawLine lda CB.Cache+S.CB.X2
|
||||||
jsr GetCB
|
|
||||||
|
|
||||||
sec
|
sec
|
||||||
|
|
||||||
lda CB.Cache+S.CB.X2
|
|
||||||
sbc CB.Cache+S.CB.X1
|
sbc CB.Cache+S.CB.X1
|
||||||
sta DX
|
sta DX
|
||||||
|
|
||||||
@ -116,8 +151,9 @@ DrawLine ldy #S.CB.Y2+1
|
|||||||
ora DX
|
ora DX
|
||||||
bne .2 DX > 0...
|
bne .2 DX > 0...
|
||||||
|
|
||||||
ldx #DEVMGR.GFX.VLINE
|
lda #S.CB.CMD.VLINE
|
||||||
jmp GoDevGFX DX=0 : VLIN Y1,Y2 At X1
|
sta CB.Cache+S.CB.CMD
|
||||||
|
jmp GoDev DX=0 : VLIN Y1,Y2 At X1
|
||||||
|
|
||||||
.1 >SWAP16 CB.Cache+S.CB.X1,CB.Cache+S.CB.X2
|
.1 >SWAP16 CB.Cache+S.CB.X1,CB.Cache+S.CB.X2
|
||||||
* >SWAP16 CB.Cache+S.CB.Y1,CB.Cache+S.CB.Y2
|
* >SWAP16 CB.Cache+S.CB.Y1,CB.Cache+S.CB.Y2
|
||||||
@ -147,15 +183,17 @@ DrawLine ldy #S.CB.Y2+1
|
|||||||
ora DY
|
ora DY
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
ldx #DEVMGR.GFX.HLINE
|
lda #S.CB.CMD.HLINE
|
||||||
jmp GoDevGFX DY=0 : HLIN X1,X2 At Y1
|
sta CB.Cache+S.CB.CMD
|
||||||
|
jmp GoDev DY=0 : HLIN X1,X2 At Y1
|
||||||
|
|
||||||
.3 >NOT16 DY set DY=-DY
|
.3 >NOT16 DY set DY=-DY
|
||||||
lda #$ff
|
lda #$ff
|
||||||
sta IY set IY=-1
|
sta IY set IY=-1
|
||||||
|
|
||||||
.4 ldx #DEVMGR.GFX.SETPIXEL
|
.4 lda #S.CB.CMD.SETPIXEL
|
||||||
jsr GoDevGFX
|
sta CB.Cache+S.CB.CMD
|
||||||
|
jsr GoDev
|
||||||
|
|
||||||
lda DX
|
lda DX
|
||||||
sec
|
sec
|
||||||
@ -193,8 +231,7 @@ DrawLine.IncXY lda DX DX=DY
|
|||||||
adc IY
|
adc IY
|
||||||
sta CB.Cache+S.CB.Y1
|
sta CB.Cache+S.CB.Y1
|
||||||
|
|
||||||
ldx #DEVMGR.GFX.SETPIXEL
|
jsr GoDev
|
||||||
jsr GoDevGFX
|
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
@ -277,8 +314,7 @@ DrawLine.IncY lda DY
|
|||||||
adc IY
|
adc IY
|
||||||
sta CB.Cache+S.CB.Y1
|
sta CB.Cache+S.CB.Y1
|
||||||
|
|
||||||
ldx #DEVMGR.GFX.SETPIXEL
|
jsr GoDev
|
||||||
jsr GoDevGFX
|
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
@ -362,22 +398,14 @@ DrawLine.IncX lda DX
|
|||||||
bne .6
|
bne .6
|
||||||
inc CB.Cache+S.CB.X1+1
|
inc CB.Cache+S.CB.X1+1
|
||||||
|
|
||||||
.6 ldx #DEVMGR.GFX.SETPIXEL
|
.6 jsr GoDev
|
||||||
jsr GoDevGFX
|
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GetCB >PULLW ZPCBPtr
|
GoDev >LDYA L.CB.Cache
|
||||||
|
GoDev.YA ldx #DEVMGR.WRITE
|
||||||
.1 lda (ZPCBPtr),y Y=Byte count to cache
|
GoDev.Jmp jmp $ffff
|
||||||
sta CB.Cache,y
|
|
||||||
dey
|
|
||||||
bpl .1
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
GoDevGFX >LDYA L.CB.Cache
|
|
||||||
GoDevGFX.1 jmp $ffff
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
hDev .BS 1
|
hDev .BS 1
|
||||||
@ -390,6 +418,14 @@ D .BS 2
|
|||||||
INE .BS 2
|
INE .BS 2
|
||||||
Counter .BS 2
|
Counter .BS 2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
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
|
||||||
|
.DA S.CB.Y2+1 DRAWLINE
|
||||||
|
*--------------------------------------
|
||||||
CB.Cache .BS S.CB
|
CB.Cache .BS S.CB
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CUR.Arrow .DA #0
|
CUR.Arrow .DA #0
|
||||||
|
115
SBIN/GUI.S.txt
115
SBIN/GUI.S.txt
@ -22,9 +22,10 @@ CS.START cld
|
|||||||
.DA #$61 6502,Level 1 (65c02)
|
.DA #$61 6502,Level 1 (65c02)
|
||||||
.DA #1 BIN Layout Version 1
|
.DA #1 BIN Layout Version 1
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA CS.END-CS.START
|
.DA CS.END-CS.START CS
|
||||||
.DA 0
|
.DA DS.END-DS.START DS
|
||||||
.DA 0
|
.DA #16 SS
|
||||||
|
.DA #2 ZP
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Relocation Table
|
* Relocation Table
|
||||||
@ -33,30 +34,26 @@ CS.START cld
|
|||||||
.DA CS.RUN
|
.DA CS.RUN
|
||||||
.DA CS.DOEVENT
|
.DA CS.DOEVENT
|
||||||
.DA CS.QUIT
|
.DA CS.QUIT
|
||||||
L.LIBGFX .DA LIBGFX
|
L.LIBGUI .DA LIBGUI
|
||||||
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.MSG.INIT .DA MSG.INIT
|
L.MSG.INIT .DA MSG.INIT
|
||||||
L.MouseClamp .DA MouseClamp
|
L.MouseClamp .DA MouseClamp
|
||||||
L.MouseData .DA MouseData
|
L.MouseData .DA MouseData
|
||||||
|
L.Rect.CB .DA Rect.CB
|
||||||
L.SetPixel.CB .DA SetPixel.CB
|
L.SetPixel.CB .DA SetPixel.CB
|
||||||
L.DrawLine1.CB .DA DrawLine1.CB
|
L.DrawLines.CB .DA DrawLines.CB
|
||||||
L.DrawLine2.CB .DA DrawLine2.CB
|
|
||||||
L.DrawLine3.CB .DA DrawLine3.CB
|
|
||||||
L.DrawLine4.CB .DA DrawLine4.CB
|
|
||||||
L.DrawLine5.CB .DA DrawLine5.CB
|
|
||||||
L.DrawLine6.CB .DA DrawLine6.CB
|
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT >LDYA L.MSG.INIT
|
CS.INIT >LDYA L.MSG.INIT
|
||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
|
|
||||||
>LDYA L.LIBGFX
|
>LDYA L.LIBGUI
|
||||||
>SYSCALL LoadLibYA
|
>SYSCALL LoadLib.YA
|
||||||
sta hLIBGFX
|
sta hLIBGUI
|
||||||
|
|
||||||
>LDYA L.DEVNAME.GFX
|
>LDYA L.DEVNAME.GFX
|
||||||
>SYSCALL GetDevByNameYA
|
>SYSCALL GetDevByName.YA
|
||||||
bcc .10
|
bcc .10
|
||||||
rts
|
rts
|
||||||
|
|
||||||
@ -69,7 +66,7 @@ CS.INIT >LDYA L.MSG.INIT
|
|||||||
jsr GoDevGFX
|
jsr GoDevGFX
|
||||||
|
|
||||||
.11 >LDYA L.DEVNAME.MOUSE
|
.11 >LDYA L.DEVNAME.MOUSE
|
||||||
>SYSCALL GetDevByNameYA
|
>SYSCALL GetDevByName.YA
|
||||||
bcc .20
|
bcc .20
|
||||||
|
|
||||||
inc DEVNAME.MOUSE+4
|
inc DEVNAME.MOUSE+4
|
||||||
@ -111,7 +108,7 @@ CS.INIT >LDYA L.MSG.INIT
|
|||||||
jsr GoDevMouse
|
jsr GoDevMouse
|
||||||
|
|
||||||
.21 lda hDevGFX
|
.21 lda hDevGFX
|
||||||
>LIBCALL hLibGFX,LIBGFX.InitGFXA
|
>LIBCALL hLIBGUI,LIBGUI.InitGUI.A
|
||||||
|
|
||||||
lda (pPs)
|
lda (pPs)
|
||||||
ora #S.PS.F.EVENT Now accept events
|
ora #S.PS.F.EVENT Now accept events
|
||||||
@ -158,9 +155,8 @@ CS.RUN lda A2osX.ASCREEN GUI screen active ?
|
|||||||
lda #1
|
lda #1
|
||||||
sta SetPixel.Color
|
sta SetPixel.Color
|
||||||
|
|
||||||
>LDYA L.SetPixel.CB
|
>PUSHW L.SetPixel.CB
|
||||||
ldx #DEVMGR.GFX.SETPIXEL
|
>LIBCALL hLIBGUI,LIBGUI.Draw
|
||||||
jsr GoDevGFX
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
@ -181,7 +177,10 @@ CS.DOEVENT sec
|
|||||||
CS.QUIT clc
|
CS.QUIT clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Destop.Paint lda #S.CB.MODE.C16
|
Destop.Paint >PUSHW L.Rect.CB
|
||||||
|
>LIBCALL hLIBGUI,LIBGUI.Draw
|
||||||
|
|
||||||
|
lda #S.CB.MODE.C16
|
||||||
sta SetPixel.Mode
|
sta SetPixel.Mode
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
@ -195,10 +194,8 @@ Destop.Paint lda #S.CB.MODE.C16
|
|||||||
lda /28
|
lda /28
|
||||||
sta SetPixel.X+1
|
sta SetPixel.X+1
|
||||||
|
|
||||||
.2 >LDYA L.SetPixel.CB
|
.2 >PUSHW L.SetPixel.CB
|
||||||
|
>LIBCALL hLIBGUI,LIBGUI.Draw
|
||||||
ldx #DEVMGR.GFX.SETPIXEL
|
|
||||||
jsr GoDevGFX
|
|
||||||
|
|
||||||
lda SetPixel.X
|
lda SetPixel.X
|
||||||
clc
|
clc
|
||||||
@ -226,18 +223,9 @@ Destop.Paint lda #S.CB.MODE.C16
|
|||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
.4
|
.4
|
||||||
>PUSHW L.DrawLine1.CB
|
|
||||||
>LIBCALL hLibGFX,LIBGFX.DrawLine
|
>PUSHW L.DrawLines.CB
|
||||||
>PUSHW L.DrawLine2.CB
|
>LIBCALL hLIBGUI,LIBGUI.Draw
|
||||||
>LIBCALL hLibGFX,LIBGFX.DrawLine
|
|
||||||
>PUSHW L.DrawLine3.CB
|
|
||||||
>LIBCALL hLibGFX,LIBGFX.DrawLine
|
|
||||||
>PUSHW L.DrawLine4.CB
|
|
||||||
>LIBCALL hLibGFX,LIBGFX.DrawLine
|
|
||||||
>PUSHW L.DrawLine5.CB
|
|
||||||
>LIBCALL hLibGFX,LIBGFX.DrawLine
|
|
||||||
>PUSHW L.DrawLine6.CB
|
|
||||||
>LIBCALL hLibGFX,LIBGFX.DrawLine
|
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -247,34 +235,45 @@ GoDevGFX jmp $ffff
|
|||||||
GoDevMouse jmp $ffff
|
GoDevMouse jmp $ffff
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
DEVNAME.GFX >PSTR "GFX"
|
DEVNAME.GFX >CSTR "GFX"
|
||||||
DEVNAME.MOUSE >PSTR "MOU1"
|
DEVNAME.MOUSE >CSTR "MOU1"
|
||||||
LIBGFX >PSTR "libgui.o"
|
LIBGUI >CSTR "libgui.o"
|
||||||
MSG.INIT >CSTR "DESKTOP:Init...\r\n"
|
MSG.INIT >CSTR "DESKTOP:Init...\r\n"
|
||||||
hLibGFX .BS 1
|
hLIBGUI .BS 1
|
||||||
hDevGFX .BS 1
|
hDevGFX .BS 1
|
||||||
hDevMouse .BS 1
|
hDevMouse .BS 1
|
||||||
MouseClamp .BS 8
|
MouseClamp .BS 8
|
||||||
MouseData .BS 5
|
MouseData .BS 5
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SetPixel.CB .BS 1 hDC
|
Rect.CB .DA #S.CB.CMD.FILLRECT
|
||||||
|
.DA #S.CB.OP.ORA
|
||||||
|
.DA #S.CB.MODE.C16
|
||||||
|
.DA #13
|
||||||
|
.DA 30
|
||||||
|
.DA 30
|
||||||
|
.DA 530
|
||||||
|
.DA 160
|
||||||
|
.DA #0
|
||||||
|
*--------------------------------------
|
||||||
|
SetPixel.CB .DA #S.CB.CMD.SETPIXEL
|
||||||
SetPixel.OP .BS 1
|
SetPixel.OP .BS 1
|
||||||
SetPixel.Mode .BS 1
|
SetPixel.Mode .BS 1
|
||||||
SetPixel.Color .BS 1
|
SetPixel.Color .BS 1
|
||||||
SetPixel.X .BS 2
|
SetPixel.X .BS 2
|
||||||
SetPixel.Y .BS 2
|
SetPixel.Y .BS 2
|
||||||
*--------------------------------------
|
|
||||||
DrawLine1.CB .BS 1 hDC
|
|
||||||
.DA #0
|
.DA #0
|
||||||
|
*--------------------------------------
|
||||||
|
DrawLines.CB .DA #S.CB.CMD.DRAWLINE
|
||||||
|
.DA #S.CB.OP.ORA
|
||||||
.DA #S.CB.MODE.C16
|
.DA #S.CB.MODE.C16
|
||||||
.DA #1
|
.DA #1
|
||||||
.DA 80
|
.DA 80
|
||||||
.DA 191
|
.DA 191
|
||||||
.DA 80+191
|
.DA 80+191
|
||||||
.DA 0
|
.DA 191+191
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DrawLine2.CB .BS 1 hDC
|
.DA #S.CB.CMD.DRAWLINE
|
||||||
.DA #0
|
.DA #S.CB.OP.ORA
|
||||||
.DA #S.CB.MODE.MONO
|
.DA #S.CB.MODE.MONO
|
||||||
.DA #1
|
.DA #1
|
||||||
.DA 90
|
.DA 90
|
||||||
@ -282,8 +281,8 @@ DrawLine2.CB .BS 1 hDC
|
|||||||
.DA 140
|
.DA 140
|
||||||
.DA 191
|
.DA 191
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DrawLine3.CB .BS 1 hDC
|
.DA #S.CB.CMD.DRAWLINE
|
||||||
.DA #0
|
.DA #S.CB.OP.ORA
|
||||||
.DA #S.CB.MODE.MONO
|
.DA #S.CB.MODE.MONO
|
||||||
.DA #1
|
.DA #1
|
||||||
.DA 100
|
.DA 100
|
||||||
@ -291,8 +290,8 @@ DrawLine3.CB .BS 1 hDC
|
|||||||
.DA 100+191
|
.DA 100+191
|
||||||
.DA 191
|
.DA 191
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DrawLine4.CB .BS 1 hDC
|
.DA #S.CB.CMD.DRAWLINE
|
||||||
.DA #0
|
.DA #S.CB.OP.ORA
|
||||||
.DA #S.CB.MODE.MONO
|
.DA #S.CB.MODE.MONO
|
||||||
.DA #1
|
.DA #1
|
||||||
.DA 110
|
.DA 110
|
||||||
@ -300,8 +299,8 @@ DrawLine4.CB .BS 1 hDC
|
|||||||
.DA 559
|
.DA 559
|
||||||
.DA 191
|
.DA 191
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DrawLine5.CB .BS 1 hDC
|
.DA #S.CB.CMD.DRAWLINE
|
||||||
.DA #0
|
.DA #S.CB.OP.ORA
|
||||||
.DA #S.CB.MODE.MONO
|
.DA #S.CB.MODE.MONO
|
||||||
.DA #1
|
.DA #1
|
||||||
.DA 28
|
.DA 28
|
||||||
@ -309,14 +308,22 @@ DrawLine5.CB .BS 1 hDC
|
|||||||
.DA 28
|
.DA 28
|
||||||
.DA 191
|
.DA 191
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DrawLine6.CB .BS 1 hDC
|
.DA #S.CB.CMD.DRAWLINE
|
||||||
.DA #0
|
.DA #S.CB.OP.ORA
|
||||||
.DA #S.CB.MODE.MONO
|
.DA #S.CB.MODE.MONO
|
||||||
.DA #1
|
.DA #1
|
||||||
.DA 84
|
.DA 84
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA 84
|
.DA 84
|
||||||
.DA 191
|
.DA 191
|
||||||
|
*--------------------------------------
|
||||||
|
.DA #0
|
||||||
|
*--------------------------------------
|
||||||
|
.DUMMY
|
||||||
|
.OR 0
|
||||||
|
DS.START
|
||||||
|
DS.END
|
||||||
|
.ED
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/SBIN/GUI.S
|
SAVE /A2OSX.SRC/SBIN/GUI.S
|
||||||
ASM
|
ASM
|
||||||
|
Loading…
Reference in New Issue
Block a user