mirror of
https://github.com/A2osX/A2osX.git
synced 2024-08-14 13:29:02 +00:00
Kernel 0.9.1 : GUI, API & Driver......RECT & BitBLT
This commit is contained in:
parent
f20065ed25
commit
612d583925
Binary file not shown.
Binary file not shown.
@ -6,18 +6,82 @@ AUTO 6
|
|||||||
.LIST OFF
|
.LIST OFF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* BitBlt
|
* BitBlt
|
||||||
* In : YA = Ptr to CtrlBlk :
|
* S.CB.X1 : SrcX1 in bitmap/mask
|
||||||
* 1 : OP
|
* S.CB.Y1 : SrcY1
|
||||||
* 4 : SrcX1
|
* S.CB.X2 : SrcX2
|
||||||
* 6 : SrcY1
|
* S.CB.Y2 : SrcY2
|
||||||
* 8 : SrcX2
|
|
||||||
* 10 : SrcY2
|
* S.CB.DestX : Destination X (screen)
|
||||||
* 12 : DestX
|
* S.CB.DestY : Destination Y (screen)
|
||||||
* 14 : DestY
|
|
||||||
* 16 : SrcPtr
|
* S.CB.SrcPtr : pointer to S.BM
|
||||||
* 18 : DstPtr
|
* S.CB.DstPtr : pointer to Save Buffer
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BITBLT
|
BITBLT >LDYA CB.CACHE+S.CB.SrcPtr
|
||||||
|
>STYA ZPBMDataPtr
|
||||||
|
|
||||||
|
ldy #S.BM-1
|
||||||
|
|
||||||
|
.1 lda (ZPBMDataPtr),y
|
||||||
|
sta BM.Cache,y
|
||||||
|
dey
|
||||||
|
bpl .1
|
||||||
|
|
||||||
|
lda ZPBMDataPtr
|
||||||
|
clc
|
||||||
|
adc #S.BM
|
||||||
|
sta ZPBMDataPtr
|
||||||
|
bcc .2
|
||||||
|
|
||||||
|
inc ZPBMDataPtr+1
|
||||||
|
|
||||||
|
.2 >LDYA CB.Cache+S.CB.Y1
|
||||||
|
ldx BM.Cache+S.BM.RowBytes
|
||||||
|
|
||||||
|
jsr YAMultX
|
||||||
|
|
||||||
|
pha
|
||||||
|
tya
|
||||||
|
clc
|
||||||
|
adc ZPBMDataPtr
|
||||||
|
sta ZPBMDataPtr
|
||||||
|
pla
|
||||||
|
pha
|
||||||
|
adc ZPBMDataPtr+1
|
||||||
|
sta ZPBMDataPtr+1
|
||||||
|
|
||||||
|
tya
|
||||||
|
adc BM.Cache+S.BM.MASK.OFS
|
||||||
|
sta ZPBMMaskPtr
|
||||||
|
pla
|
||||||
|
adc BM.Cache+S.BM.MASK.OFS+1
|
||||||
|
sta ZPBMMaskPtr+1
|
||||||
|
|
||||||
|
lda CB.Cache+S.CB.X1
|
||||||
|
and #7 we have to shift right!!!
|
||||||
|
tax
|
||||||
|
|
||||||
|
lda CB.Cache+S.CB.X1+1
|
||||||
|
lsr
|
||||||
|
lsr
|
||||||
|
lsr
|
||||||
|
pha
|
||||||
|
clc
|
||||||
|
adc ZPBMDataPtr
|
||||||
|
sta ZPBMDataPtr
|
||||||
|
bcc .3
|
||||||
|
|
||||||
|
inc ZPBMDataPtr+1
|
||||||
|
|
||||||
|
.3 pla
|
||||||
|
adc ZPBMMaskPtr
|
||||||
|
sta ZPBMMaskPtr
|
||||||
|
bcc .4
|
||||||
|
|
||||||
|
inc ZPBMMaskPtr+1
|
||||||
|
|
||||||
|
.4
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
131
DRV/DHGR.DRV.S.LBUF.txt
Normal file
131
DRV/DHGR.DRV.S.LBUF.txt
Normal file
@ -0,0 +1,131 @@
|
|||||||
|
PR#3
|
||||||
|
PREFIX /A2OSX.BUILD
|
||||||
|
LOMEM $A00
|
||||||
|
INC 1
|
||||||
|
AUTO 6
|
||||||
|
.LIST OFF
|
||||||
|
*--------------------------------------
|
||||||
|
LBUF.SetBounds1YA
|
||||||
|
jsr DIVMOD7YA A=DIV, X=MOD
|
||||||
|
sta LBUF.C1
|
||||||
|
tay
|
||||||
|
|
||||||
|
lda C1.MASK,x
|
||||||
|
sta LBUF.C1.MASK
|
||||||
|
lda C1.DATA,x
|
||||||
|
sta LBUF.C1.DATA
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
LBUF.SetBounds2YA
|
||||||
|
jsr DIVMOD7YA A=DIV, X=MOD
|
||||||
|
sta LBUF.C2
|
||||||
|
tay
|
||||||
|
|
||||||
|
cmp LBUF.C1 C1=C2, go combine in C1
|
||||||
|
beq .1
|
||||||
|
|
||||||
|
lda C2.MASK,x
|
||||||
|
sta LBUF.C2.MASK
|
||||||
|
lda C2.DATA,x
|
||||||
|
sta LBUF.C2.DATA
|
||||||
|
rts
|
||||||
|
|
||||||
|
.1 lda C1.MASK,x
|
||||||
|
and C2.MASK,x
|
||||||
|
sta LBUF.C1.MASK
|
||||||
|
|
||||||
|
lda C1.DATA,x
|
||||||
|
and C2.DATA,x
|
||||||
|
sta LBUF.C2.DATA
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
LBUF.DrawAtY lda BASEL,y setup line Base Ptr
|
||||||
|
sta ZPBasePtr
|
||||||
|
lda BASEH,y
|
||||||
|
sta ZPBasePtr+1
|
||||||
|
*--------------------------------------
|
||||||
|
LBUF.DrawAtY.SET
|
||||||
|
ldx LBUF.C1 x C1->C2
|
||||||
|
|
||||||
|
ldy COL.BANK,x
|
||||||
|
sta $C000,y
|
||||||
|
ldy COL.OFS,x
|
||||||
|
|
||||||
|
lda (ZPBasePtr),y Get C1
|
||||||
|
and LBUF.C1.MASK clear ONLY bits starting at X1 mod 7
|
||||||
|
sta GBYTE
|
||||||
|
lda LBUF.DATA,x get DATA bits
|
||||||
|
and LBUF.C1.DATA set ONLY bits starting at X1 mod 7
|
||||||
|
ora GBYTE
|
||||||
|
sta (ZPBasePtr),y update screen
|
||||||
|
|
||||||
|
inx
|
||||||
|
cpx LBUF.C2
|
||||||
|
beq .2 C1=C2, go setup C2
|
||||||
|
bcs .8 C1+1 > C2, we are done...
|
||||||
|
|
||||||
|
.1 ldy COL.BANK,x
|
||||||
|
sta $C000,y
|
||||||
|
ldy COL.OFS,x
|
||||||
|
|
||||||
|
lda LBUF.DATA,x set all bytes between C1+1 & C2-1
|
||||||
|
sta (ZPBasePtr),y
|
||||||
|
|
||||||
|
inx
|
||||||
|
cpx LBUF.C2
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
.2 ldy COL.BANK,x
|
||||||
|
sta $C000,y
|
||||||
|
ldy COL.OFS,x
|
||||||
|
|
||||||
|
lda (ZPBasePtr),y Get C2
|
||||||
|
and LBUF.C2.MASK clear ONLY bits ending at X2 mod 7
|
||||||
|
sta GBYTE
|
||||||
|
lda LBUF.DATA,x get DATA bits
|
||||||
|
and LBUF.C2.DATA set ONLY bits ending at X2 mod 7
|
||||||
|
ora GBYTE
|
||||||
|
sta (ZPBasePtr),y update screen
|
||||||
|
|
||||||
|
.8 rts
|
||||||
|
*--------------------------------------
|
||||||
|
LBUF.DrawAtY.ORA
|
||||||
|
ldy LBUF.C1 y C1->C2
|
||||||
|
|
||||||
|
.1 ldx COL.BANK,y
|
||||||
|
sta $C000,x
|
||||||
|
|
||||||
|
lda (ZPBasePtr),y
|
||||||
|
and LBUF.MASK,y
|
||||||
|
|
||||||
|
ora LBUF.DATA,y
|
||||||
|
sta (ZPBasePtr),y
|
||||||
|
|
||||||
|
cpy LBUF.C2
|
||||||
|
iny
|
||||||
|
bcc .1
|
||||||
|
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
LBUF.DrawAtY.XOR
|
||||||
|
ldy LBUF.C1 y C1->C2
|
||||||
|
|
||||||
|
.1 ldx COL.BANK,y
|
||||||
|
sta $C000,x
|
||||||
|
|
||||||
|
lda (ZPBasePtr),y
|
||||||
|
and LBUF.MASK,y
|
||||||
|
|
||||||
|
eor LBUF.DATA,y
|
||||||
|
sta (ZPBasePtr),y
|
||||||
|
|
||||||
|
cpy LBUF.C2
|
||||||
|
iny
|
||||||
|
bcs .1
|
||||||
|
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
MAN
|
||||||
|
SAVE /A2OSX.SRC/DRV/DHGR.DRV.S.LBUF
|
||||||
|
LOAD /A2OSX.SRC/DRV/DHGR.DRV.S
|
||||||
|
ASM
|
@ -30,17 +30,15 @@ HLINE.MONO >LDYA CB.Cache+S.CB.X1
|
|||||||
.1 ldx LBUF.C1
|
.1 ldx LBUF.C1
|
||||||
|
|
||||||
.2 tya
|
.2 tya
|
||||||
and LBUF.MASK,x
|
|
||||||
sta LBUF.DATA,x
|
sta LBUF.DATA,x
|
||||||
inx
|
|
||||||
cpx LBUF.C2
|
cpx LBUF.C2
|
||||||
bcs .2
|
inx
|
||||||
|
bcc .2
|
||||||
|
|
||||||
ldy CB.Cache+S.CB.Y1
|
ldy CB.Cache+S.CB.Y1
|
||||||
jmp LBUF.DrawAtY
|
jmp LBUF.DrawAtY
|
||||||
|
|
||||||
HLINE.C16 >DEBUG
|
HLINE.C16 lda CB.Cache+S.CB.X1
|
||||||
lda CB.Cache+S.CB.X1
|
|
||||||
and #%11111100
|
and #%11111100
|
||||||
tay
|
tay
|
||||||
lda CB.Cache+S.CB.X1+1
|
lda CB.Cache+S.CB.X1+1
|
||||||
@ -48,7 +46,7 @@ HLINE.C16 >DEBUG
|
|||||||
jsr LBUF.SetBounds1YA
|
jsr LBUF.SetBounds1YA
|
||||||
|
|
||||||
lda CB.Cache+S.CB.X2
|
lda CB.Cache+S.CB.X2
|
||||||
and #%11111100
|
ora #%00000011
|
||||||
tay
|
tay
|
||||||
lda CB.Cache+S.CB.X2+1
|
lda CB.Cache+S.CB.X2+1
|
||||||
|
|
||||||
@ -72,7 +70,6 @@ HLINE.C16 >DEBUG
|
|||||||
tay
|
tay
|
||||||
lda (ZPPalettePtr),y
|
lda (ZPPalettePtr),y
|
||||||
|
|
||||||
and LBUF.MASK,x
|
|
||||||
sta LBUF.DATA,x
|
sta LBUF.DATA,x
|
||||||
cpx LBUF.C2
|
cpx LBUF.C2
|
||||||
inx
|
inx
|
||||||
|
@ -15,16 +15,16 @@ AUTO 6
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
FILLRECT jsr HLINE
|
FILLRECT jsr HLINE
|
||||||
|
|
||||||
inc CB.Cache+S.CB.Y1
|
|
||||||
ldy CB.Cache+S.CB.Y1
|
ldy CB.Cache+S.CB.Y1
|
||||||
cpy CB.Cache+S.CB.Y2
|
cpy CB.Cache+S.CB.Y2
|
||||||
bcs .8
|
beq .8
|
||||||
|
|
||||||
.2 jsr LBUF.DrawAtY
|
.2 iny
|
||||||
inc CB.Cache+S.CB.Y1
|
phy
|
||||||
ldy CB.Cache+S.CB.Y1
|
jsr LBUF.DrawAtY
|
||||||
|
ply
|
||||||
cpy CB.Cache+S.CB.Y2
|
cpy CB.Cache+S.CB.Y2
|
||||||
bcc .2
|
bne .2
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -16,8 +16,8 @@ AUTO 6
|
|||||||
ZPCmdPtr .EQ ZPDRV
|
ZPCmdPtr .EQ ZPDRV
|
||||||
ZPBasePtr .EQ ZPDRV+2
|
ZPBasePtr .EQ ZPDRV+2
|
||||||
ZPPalettePtr .EQ ZPDRV+4
|
ZPPalettePtr .EQ ZPDRV+4
|
||||||
|
ZPBMDataPtr .EQ ZPDRV+6
|
||||||
|
ZPBMMaskPtr .EQ ZPDRV+8
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -159,86 +159,6 @@ WRITE >STYA ZPCmdPtr
|
|||||||
rts
|
rts
|
||||||
|
|
||||||
.10 jmp (J.Cmds,x)
|
.10 jmp (J.Cmds,x)
|
||||||
*--------------------------------------
|
|
||||||
.INB /A2OSX.SRC/DRV/DHGR.DRV.S.PIX
|
|
||||||
.INB /A2OSX.SRC/DRV/DHGR.DRV.S.LINE
|
|
||||||
.INB /A2OSX.SRC/DRV/DHGR.DRV.S.RECT
|
|
||||||
.INB /A2OSX.SRC/DRV/DHGR.DRV.S.BLT
|
|
||||||
*--------------------------------------
|
|
||||||
LBUF.SetBounds1YA
|
|
||||||
jsr DIVMOD7YA A=DIV, X=MOD
|
|
||||||
sta LBUF.C1
|
|
||||||
tay
|
|
||||||
|
|
||||||
lda C1.MASK,x
|
|
||||||
sta LBUF.MASK,y
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
LBUF.SetBounds2YA
|
|
||||||
jsr DIVMOD7YA A=DIV, X=MOD
|
|
||||||
sta LBUF.C2
|
|
||||||
tay
|
|
||||||
|
|
||||||
cmp LBUF.C1
|
|
||||||
beq .2
|
|
||||||
|
|
||||||
lda C2.MASK,x
|
|
||||||
sta LBUF.MASK,y
|
|
||||||
|
|
||||||
lda #0
|
|
||||||
|
|
||||||
.1 dey
|
|
||||||
cpy LBUF.C1
|
|
||||||
beq .8
|
|
||||||
sta LBUF.MASK,y
|
|
||||||
bra .1
|
|
||||||
|
|
||||||
.2 lda C1.MASK,x
|
|
||||||
and C2.MASK,x
|
|
||||||
sta LBUF.MASK,y
|
|
||||||
.8 rts
|
|
||||||
*--------------------------------------
|
|
||||||
LBUF.SetOPA
|
|
||||||
*--------------------------------------
|
|
||||||
LBUF.DrawAtY lda BASEL,y setup line Base Ptr
|
|
||||||
sta ZPBasePtr
|
|
||||||
lda BASEH,y
|
|
||||||
sta ZPBasePtr+1
|
|
||||||
|
|
||||||
|
|
||||||
ldy LBUF.C1 y C1->C2
|
|
||||||
|
|
||||||
.1 ldx COL.BANK,y
|
|
||||||
sta $C000,x
|
|
||||||
|
|
||||||
lda (ZPBasePtr),y
|
|
||||||
and LBUF.MASK,y
|
|
||||||
|
|
||||||
ora LBUF.DATA,y
|
|
||||||
lda #$ff
|
|
||||||
sta (ZPBasePtr),y
|
|
||||||
|
|
||||||
cpy LBUF.C2
|
|
||||||
iny
|
|
||||||
bcc .1
|
|
||||||
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
LBUF.DrawAtY.XOR
|
|
||||||
.1 ldx COL.BANK,y
|
|
||||||
sta $C000,x
|
|
||||||
|
|
||||||
lda (ZPBasePtr),y
|
|
||||||
and LBUF.MASK,y
|
|
||||||
|
|
||||||
eor LBUF.DATA,y
|
|
||||||
sta (ZPBasePtr),y
|
|
||||||
|
|
||||||
iny
|
|
||||||
cpy LBUF.C2
|
|
||||||
bcs .1
|
|
||||||
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* IN:
|
* IN:
|
||||||
* Y = LO
|
* Y = LO
|
||||||
@ -267,6 +187,44 @@ DIVMOD7Y2 lda DIV7.512,y
|
|||||||
ldx MOD7.512,y
|
ldx MOD7.512,y
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
* IN:
|
||||||
|
* Y,A = num1 (16)
|
||||||
|
* X = num2 (8)
|
||||||
|
* OUT:
|
||||||
|
* Y,A = (Y,A) * X
|
||||||
|
*--------------------------------------
|
||||||
|
YAMultX stx GBYTE
|
||||||
|
|
||||||
|
sty GWORD
|
||||||
|
sta GWORD+1
|
||||||
|
|
||||||
|
ldy #0 Result LO
|
||||||
|
tya Result HI
|
||||||
|
|
||||||
|
bra .3
|
||||||
|
|
||||||
|
.1 pha
|
||||||
|
tya
|
||||||
|
clc
|
||||||
|
adc GWORD
|
||||||
|
tay
|
||||||
|
pla
|
||||||
|
adc GWORD+1
|
||||||
|
|
||||||
|
.2 asl GWORD
|
||||||
|
rol GWORD+1
|
||||||
|
|
||||||
|
.3 lsr GBYTE
|
||||||
|
bcs .1
|
||||||
|
bne .2
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
.INB /A2OSX.SRC/DRV/DHGR.DRV.S.PIX
|
||||||
|
.INB /A2OSX.SRC/DRV/DHGR.DRV.S.LINE
|
||||||
|
.INB /A2OSX.SRC/DRV/DHGR.DRV.S.RECT
|
||||||
|
.INB /A2OSX.SRC/DRV/DHGR.DRV.S.BLT
|
||||||
|
.INB /A2OSX.SRC/DRV/DHGR.DRV.S.LBUF
|
||||||
|
*--------------------------------------
|
||||||
DRV.CS.END
|
DRV.CS.END
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB /A2OSX.SRC/DRV/DHGR.DRV.T
|
.INB /A2OSX.SRC/DRV/DHGR.DRV.T
|
||||||
@ -279,6 +237,7 @@ CB.CmdLen .DA S.CB.Y1+1 SETPIXEL
|
|||||||
.DA S.CB.DstPtr+1 BITBLT
|
.DA S.CB.DstPtr+1 BITBLT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CB.Cache .BS S.CB
|
CB.Cache .BS S.CB
|
||||||
|
BM.Cache .BS S.BM
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DIV7.lo .BS 3
|
DIV7.lo .BS 3
|
||||||
DIV7.hi .BS 3
|
DIV7.hi .BS 3
|
||||||
@ -286,14 +245,19 @@ MOD7.lo .BS 3
|
|||||||
MOD7.hi .BS 3
|
MOD7.hi .BS 3
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LBUF.C1 .BS 1
|
LBUF.C1 .BS 1
|
||||||
LBUF.C2 .BS 1 C1 C2
|
LBUF.C1.MASK .BS 1 Bits to CLR in VMEM : 11100000 00000000 00111111
|
||||||
LBUF.MASK .BS 80 Bits to CLR in VMEM & LBUF.DATA from C1 to C2 : 11100000 00000000 00111111
|
LBUF.C1.DATA .BS 1 Bits to SET/ORA/XOR : 000ccccc cccccccc cc000000
|
||||||
LBUF.DATA .BS 80 Bits to SET/ORA/XOR in VMEM from C1 to C2 : 000ccccc cccccccc cc000000
|
LBUF.C2 .BS 1 C1 C2
|
||||||
|
LBUF.C2.MASK .BS 1
|
||||||
|
LBUF.C2.DATA .BS 1
|
||||||
|
LBUF.MASK .BS 80
|
||||||
|
LBUF.DATA .BS 80
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
XDIV7 .BS 1
|
XDIV7 .BS 1
|
||||||
XMOD7 .BS 1
|
XMOD7 .BS 1
|
||||||
XCOL7 .BS 1
|
XCOL7 .BS 1
|
||||||
GBYTE .BS 1
|
GBYTE .BS 1
|
||||||
|
GWORD .BS 2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DSTAT .DA #0
|
DSTAT .DA #0
|
||||||
.DA #0,#0,#0
|
.DA #0,#0,#0
|
||||||
|
@ -28,9 +28,7 @@ C2.DATA .DA #%10000001 ->C1.DATA
|
|||||||
.DA #%10001111
|
.DA #%10001111
|
||||||
.DA #%10011111
|
.DA #%10011111
|
||||||
.DA #%10111111 ...to 6
|
.DA #%10111111 ...to 6
|
||||||
*--------------------------------------
|
|
||||||
C1.DATA .DA #%11111111
|
C1.DATA .DA #%11111111
|
||||||
*--------------------------------------
|
|
||||||
C2.MASK .DA #%11111110
|
C2.MASK .DA #%11111110
|
||||||
.DA #%11111100
|
.DA #%11111100
|
||||||
.DA #%11111000
|
.DA #%11111000
|
||||||
@ -105,6 +103,11 @@ COL.BANK .DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2
|
|||||||
.DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2
|
.DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2
|
||||||
.DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2
|
.DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
COL.OFS .DA #00,#00,#01,#01,#02,#02,#03,#03,#04,#04,#05,#05,#06,#06,#07,#07,#08,#08,#09,#09
|
||||||
|
.DA #10,#10,#11,#11,#12,#12,#13,#13,#14,#14,#15,#15,#16,#16,#17,#17,#18,#18,#19,#19
|
||||||
|
.DA #20,#20,#21,#21,#22,#22,#23,#23,#24,#24,#25,#25,#26,#26,#27,#27,#28,#28,#29,#29
|
||||||
|
.DA #30,#30,#31,#31,#32,#32,#33,#33,#34,#34,#35,#35,#36,#36,#37,#37,#38,#38,#39,#39
|
||||||
|
*--------------------------------------
|
||||||
DIV7.BASE .HS 002449 Indexed with X.HI
|
DIV7.BASE .HS 002449 Indexed with X.HI
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DIV7.0 .HS 00
|
DIV7.0 .HS 00
|
||||||
|
@ -15,17 +15,18 @@ S.CB.CMD.FILLRECT .EQ 8
|
|||||||
S.CB.CMD.BITBLT .EQ 10
|
S.CB.CMD.BITBLT .EQ 10
|
||||||
S.CB.CMD.DRAWLINE .EQ 12
|
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.SET .EQ %00000001 replace screen with bitmap
|
||||||
S.CB.OP.REPLACE .EQ %00000010
|
S.CB.OP.ORA .EQ %00000010 combine screen & bitmap -> Screen
|
||||||
S.CB.OP.AND .EQ %00000100
|
S.CB.OP.XOR .EQ %00000011 screen EOR bitmap -> Screen
|
||||||
S.CB.OP.ORA .EQ %00001000
|
S.CB.OP.SAVE .EQ %00010000 Save Screen to DstPtr before painting
|
||||||
S.CB.OP.XOR .EQ %00010000
|
S.CB.OP.AND .EQ %00100000 Apply BitMap mask before painting
|
||||||
|
S.CB.OP.COLOR .EQ %01000000 Assume BitMap is COLOR
|
||||||
S.CB.MODE .EQ 2
|
S.CB.MODE .EQ 2
|
||||||
S.CB.MODE.MONO .EQ %00000001 b/w (1 bit/pixel)
|
S.CB.MODE.MONO .EQ %00000001 b/w (1 bit/pixel)
|
||||||
*S.CB.MODE.C4 .EQ %00000010
|
*S.CB.MODE.C4 .EQ %00000010
|
||||||
*S.CB.MODE.C8 .EQ %00000100
|
*S.CB.MODE.C8 .EQ %00000100
|
||||||
S.CB.MODE.C16 .EQ %00001000 16 colors (4 bits/pixel)
|
S.CB.MODE.C16 .EQ %00001000 16 colors (4 bits/pixel)
|
||||||
S.CB.MODE.C256 .EQ %00010000 256 colors (8 bits/pixel)
|
*S.CB.MODE.C256 .EQ %00010000 256 colors (8 bits/pixel)
|
||||||
S.CB.COLOR .EQ 3
|
S.CB.COLOR .EQ 3
|
||||||
S.CB.X1 .EQ 4
|
S.CB.X1 .EQ 4
|
||||||
S.CB.Y1 .EQ 6
|
S.CB.Y1 .EQ 6
|
||||||
@ -69,8 +70,9 @@ S.BM.F.BBP8 .EQ %00010000
|
|||||||
S.BM.RowBytes .EQ 1
|
S.BM.RowBytes .EQ 1
|
||||||
S.BM.W .EQ 2
|
S.BM.W .EQ 2
|
||||||
S.BM.H .EQ 4
|
S.BM.H .EQ 4
|
||||||
S.BM.MASK.OFFSET .EQ 6
|
S.BM.MASK.OFS .EQ 6
|
||||||
S.BM.DATA .EQ 8
|
*
|
||||||
|
S.BM .EQ 8
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LIBGUI.InitGUI.A .EQ 4
|
LIBGUI.InitGUI.A .EQ 4
|
||||||
LIBGUI.CloseGUI .EQ 6
|
LIBGUI.CloseGUI .EQ 6
|
||||||
|
@ -248,11 +248,48 @@ MouseData .BS 5
|
|||||||
Rect.CB .DA #S.CB.CMD.FILLRECT
|
Rect.CB .DA #S.CB.CMD.FILLRECT
|
||||||
.DA #S.CB.OP.ORA
|
.DA #S.CB.OP.ORA
|
||||||
.DA #S.CB.MODE.C16
|
.DA #S.CB.MODE.C16
|
||||||
.DA #13
|
.DA #11
|
||||||
|
.DA 0
|
||||||
|
.DA 0
|
||||||
|
.DA 559
|
||||||
|
.DA 191
|
||||||
|
|
||||||
|
.DA #S.CB.CMD.FILLRECT
|
||||||
|
.DA #S.CB.OP.ORA
|
||||||
|
.DA #S.CB.MODE.MONO
|
||||||
|
.DA #1
|
||||||
|
.DA 10
|
||||||
|
.DA 10
|
||||||
|
.DA 550
|
||||||
|
.DA 180
|
||||||
|
|
||||||
|
.DA #S.CB.CMD.FILLRECT
|
||||||
|
.DA #S.CB.OP.ORA
|
||||||
|
.DA #S.CB.MODE.C16
|
||||||
|
.DA #0
|
||||||
|
.DA 20
|
||||||
|
.DA 20
|
||||||
|
.DA 540
|
||||||
|
.DA 170
|
||||||
|
|
||||||
|
.DA #S.CB.CMD.FILLRECT
|
||||||
|
.DA #S.CB.OP.ORA
|
||||||
|
.DA #S.CB.MODE.C16
|
||||||
|
.DA #9
|
||||||
.DA 30
|
.DA 30
|
||||||
.DA 30
|
.DA 30
|
||||||
.DA 530
|
.DA 530
|
||||||
.DA 160
|
.DA 160
|
||||||
|
|
||||||
|
.DA #S.CB.CMD.FILLRECT
|
||||||
|
.DA #S.CB.OP.ORA
|
||||||
|
.DA #S.CB.MODE.C16
|
||||||
|
.DA #8
|
||||||
|
.DA 40
|
||||||
|
.DA 40
|
||||||
|
.DA 520
|
||||||
|
.DA 150
|
||||||
|
|
||||||
.DA #0
|
.DA #0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SetPixel.CB .DA #S.CB.CMD.SETPIXEL
|
SetPixel.CB .DA #S.CB.CMD.SETPIXEL
|
||||||
@ -271,7 +308,7 @@ DrawLines.CB .DA #S.CB.CMD.DRAWLINE
|
|||||||
.DA 191
|
.DA 191
|
||||||
.DA 80+191
|
.DA 80+191
|
||||||
.DA 191+191
|
.DA 191+191
|
||||||
*--------------------------------------
|
|
||||||
.DA #S.CB.CMD.DRAWLINE
|
.DA #S.CB.CMD.DRAWLINE
|
||||||
.DA #S.CB.OP.ORA
|
.DA #S.CB.OP.ORA
|
||||||
.DA #S.CB.MODE.MONO
|
.DA #S.CB.MODE.MONO
|
||||||
@ -280,7 +317,7 @@ DrawLines.CB .DA #S.CB.CMD.DRAWLINE
|
|||||||
.DA 0
|
.DA 0
|
||||||
.DA 140
|
.DA 140
|
||||||
.DA 191
|
.DA 191
|
||||||
*--------------------------------------
|
|
||||||
.DA #S.CB.CMD.DRAWLINE
|
.DA #S.CB.CMD.DRAWLINE
|
||||||
.DA #S.CB.OP.ORA
|
.DA #S.CB.OP.ORA
|
||||||
.DA #S.CB.MODE.MONO
|
.DA #S.CB.MODE.MONO
|
||||||
@ -289,7 +326,7 @@ DrawLines.CB .DA #S.CB.CMD.DRAWLINE
|
|||||||
.DA 0
|
.DA 0
|
||||||
.DA 100+191
|
.DA 100+191
|
||||||
.DA 191
|
.DA 191
|
||||||
*--------------------------------------
|
|
||||||
.DA #S.CB.CMD.DRAWLINE
|
.DA #S.CB.CMD.DRAWLINE
|
||||||
.DA #S.CB.OP.ORA
|
.DA #S.CB.OP.ORA
|
||||||
.DA #S.CB.MODE.MONO
|
.DA #S.CB.MODE.MONO
|
||||||
@ -298,7 +335,7 @@ DrawLines.CB .DA #S.CB.CMD.DRAWLINE
|
|||||||
.DA 0
|
.DA 0
|
||||||
.DA 559
|
.DA 559
|
||||||
.DA 191
|
.DA 191
|
||||||
*--------------------------------------
|
|
||||||
.DA #S.CB.CMD.DRAWLINE
|
.DA #S.CB.CMD.DRAWLINE
|
||||||
.DA #S.CB.OP.ORA
|
.DA #S.CB.OP.ORA
|
||||||
.DA #S.CB.MODE.MONO
|
.DA #S.CB.MODE.MONO
|
||||||
@ -307,7 +344,7 @@ DrawLines.CB .DA #S.CB.CMD.DRAWLINE
|
|||||||
.DA 0
|
.DA 0
|
||||||
.DA 28
|
.DA 28
|
||||||
.DA 191
|
.DA 191
|
||||||
*--------------------------------------
|
|
||||||
.DA #S.CB.CMD.DRAWLINE
|
.DA #S.CB.CMD.DRAWLINE
|
||||||
.DA #S.CB.OP.ORA
|
.DA #S.CB.OP.ORA
|
||||||
.DA #S.CB.MODE.MONO
|
.DA #S.CB.MODE.MONO
|
||||||
@ -316,7 +353,16 @@ DrawLines.CB .DA #S.CB.CMD.DRAWLINE
|
|||||||
.DA 0
|
.DA 0
|
||||||
.DA 84
|
.DA 84
|
||||||
.DA 191
|
.DA 191
|
||||||
*--------------------------------------
|
|
||||||
|
.DA #S.CB.CMD.DRAWLINE
|
||||||
|
.DA #S.CB.OP.ORA
|
||||||
|
.DA #S.CB.MODE.MONO
|
||||||
|
.DA #1
|
||||||
|
.DA 0
|
||||||
|
.DA 92
|
||||||
|
.DA 559
|
||||||
|
.DA 92
|
||||||
|
|
||||||
.DA #0
|
.DA #0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
|
Loading…
Reference in New Issue
Block a user