mirror of
https://github.com/A2osX/A2osX.git
synced 2024-09-10 07:54:37 +00:00
Kernel 0.9.1 : DHGR Driver, BitBLT, mouse pointer
This commit is contained in:
parent
c19f98bd81
commit
2a14a04de4
Binary file not shown.
Binary file not shown.
@ -128,10 +128,36 @@ BITBLT >LDYA CB.CACHE+S.CB.SrcPtr
|
|||||||
ldy Shift.L.HI,x X = 1->6
|
ldy Shift.L.HI,x X = 1->6
|
||||||
sty ZPScrShiftPtr+1
|
sty ZPScrShiftPtr+1
|
||||||
|
|
||||||
BITBLT.LOOP >LDYA BLT.BMDataPtr
|
BITBLT.LOOP ldx BLT.SCRBitOfs
|
||||||
>STYA ZPBMDataPtr
|
bne BITBLT.LOOPx
|
||||||
|
|
||||||
|
*------------ Shift 0
|
||||||
|
|
||||||
|
BITBLT.LOOP0 lda CB.Cache+S.CB.OP
|
||||||
|
bit #S.CB.OP.MASK
|
||||||
|
beq .2
|
||||||
|
|
||||||
>LDYA BLT.BMMaskPtr
|
>LDYA BLT.BMMaskPtr
|
||||||
>STYA ZPBMMaskPtr
|
>STYA ZPBMDataPtr
|
||||||
|
|
||||||
|
lda BLT.BMBitOfs
|
||||||
|
sta BLT.BMBitOfsL
|
||||||
|
stz BLT.BMIdx
|
||||||
|
|
||||||
|
ldx LBUF.C1
|
||||||
|
stx BLT.ScrColIdx
|
||||||
|
stz LBUF.MASK,x make sure C1 not ORed with trash in "ora LBUF.DATA,x"
|
||||||
|
|
||||||
|
.1 jsr BLT.Get7BMDBits we have 0xxxxxxxx in A
|
||||||
|
|
||||||
|
ldx BLT.ScrColIdx
|
||||||
|
sta LBUF.MASK,x
|
||||||
|
inc BLT.ScrColIdx
|
||||||
|
cpx LBUF.C2
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
.2 >LDYA BLT.BMDataPtr
|
||||||
|
>STYA ZPBMDataPtr
|
||||||
|
|
||||||
lda BLT.BMBitOfs
|
lda BLT.BMBitOfs
|
||||||
sta BLT.BMBitOfsL
|
sta BLT.BMBitOfsL
|
||||||
@ -141,33 +167,86 @@ BITBLT.LOOP >LDYA BLT.BMDataPtr
|
|||||||
stx BLT.ScrColIdx
|
stx BLT.ScrColIdx
|
||||||
stz LBUF.DATA,x make sure C1 not ORed with trash in "ora LBUF.DATA,x"
|
stz LBUF.DATA,x make sure C1 not ORed with trash in "ora LBUF.DATA,x"
|
||||||
|
|
||||||
ldx BLT.SCRBitOfs
|
.3 jsr BLT.Get7BMDBits we have 0xxxxxxxx in A
|
||||||
bne .2
|
|
||||||
|
|
||||||
*------------ Shift 0
|
|
||||||
|
|
||||||
.1 jsr BLT.Get7BMDBits we have 0xxxxxxxx in A
|
|
||||||
|
|
||||||
ldx BLT.ScrColIdx
|
ldx BLT.ScrColIdx
|
||||||
sta LBUF.DATA,x
|
sta LBUF.DATA,x
|
||||||
inc BLT.ScrColIdx
|
inc BLT.ScrColIdx
|
||||||
cpx LBUF.C2
|
cpx LBUF.C2
|
||||||
bne .1
|
bne .3
|
||||||
|
|
||||||
bra BITBLT.DRAW
|
jmp BITBLT.DRAW
|
||||||
|
|
||||||
*------------ Shift 1->6 Comment : SCRBitOfs=X=3
|
*------------ Shift 1->6 Comment : SCRBitOfs=X=3
|
||||||
|
|
||||||
.2 lda Shift7BitsCol1,x get #%00001111, BM bits that go in Col1
|
BITBLT.LOOPx lda CB.Cache+S.CB.OP
|
||||||
sta .4+1
|
bit #S.CB.OP.MASK
|
||||||
lda Shift7BitsCol2,x get #%01110000, BM bits that go in Col2
|
beq .4
|
||||||
sta .5+1
|
|
||||||
|
|
||||||
.3 jsr BLT.Get7BMDBits we have c6543210 in A, destination : COL=3210xxx, COL+1=xxxx654
|
lda Shift7BitsCol1,x get #%00001111, BM bits that go in Col1
|
||||||
|
sta .2+1
|
||||||
|
lda Shift7BitsCol2,x get #%01110000, BM bits that go in Col2
|
||||||
|
sta .3+1
|
||||||
|
|
||||||
|
>LDYA BLT.BMMaskPtr
|
||||||
|
>STYA ZPBMDataPtr
|
||||||
|
|
||||||
|
lda BLT.BMBitOfs
|
||||||
|
sta BLT.BMBitOfsL
|
||||||
|
stz BLT.BMIdx
|
||||||
|
|
||||||
|
ldx LBUF.C1
|
||||||
|
stx BLT.ScrColIdx
|
||||||
|
stz LBUF.MASK,x make sure C1 not ORed with trash in "ora LBUF.DATA,x"
|
||||||
|
|
||||||
|
.1 jsr BLT.Get7BMDBits we have c6543210 in A, destination : COL=3210xxx, COL+1=xxxx654
|
||||||
|
|
||||||
pha save BM byte for 2nd col
|
pha save BM byte for 2nd col
|
||||||
|
|
||||||
.4 and #$ff SELF MODIFIED : MASK WITH #%00001111, keep col1 bits only
|
.2 and #$ff SELF MODIFIED : MASK WITH #%00001111, keep col1 bits only
|
||||||
|
tay
|
||||||
|
|
||||||
|
lda (ZPScrShiftPtr),y make 0000dddd Shift left 3 : 0dddd000
|
||||||
|
|
||||||
|
ldx BLT.ScrColIdx Get actual COL index
|
||||||
|
ora LBUF.MASK,x Light proper bits : 0dddd???
|
||||||
|
sta LBUF.MASK,x store 0xdddd???
|
||||||
|
|
||||||
|
pla Get back BM Byte
|
||||||
|
|
||||||
|
.3 and #$ff SELF MODIFIED : #%01110000 get only col2 bites
|
||||||
|
tay
|
||||||
|
|
||||||
|
lda (ZPScrShiftPtr),y shift right 4 (=shift left 3!!!) : 00000ddd
|
||||||
|
|
||||||
|
sta LBUF.MASK+1,x
|
||||||
|
|
||||||
|
inx
|
||||||
|
stx BLT.ScrColIdx
|
||||||
|
cpx LBUF.C2
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
.4 lda Shift7BitsCol1,x get #%00001111, BM bits that go in Col1
|
||||||
|
sta .6+1
|
||||||
|
lda Shift7BitsCol2,x get #%01110000, BM bits that go in Col2
|
||||||
|
sta .7+1
|
||||||
|
|
||||||
|
>LDYA BLT.BMDataPtr
|
||||||
|
>STYA ZPBMDataPtr
|
||||||
|
|
||||||
|
lda BLT.BMBitOfs
|
||||||
|
sta BLT.BMBitOfsL
|
||||||
|
stz BLT.BMIdx
|
||||||
|
|
||||||
|
ldx LBUF.C1
|
||||||
|
stx BLT.ScrColIdx
|
||||||
|
stz LBUF.DATA,x make sure C1 not ORed with trash in "ora LBUF.DATA,x"
|
||||||
|
|
||||||
|
.5 jsr BLT.Get7BMDBits we have c6543210 in A, destination : COL=3210xxx, COL+1=xxxx654
|
||||||
|
|
||||||
|
pha save BM byte for 2nd col
|
||||||
|
|
||||||
|
.6 and #$ff SELF MODIFIED : MASK WITH #%00001111, keep col1 bits only
|
||||||
tay
|
tay
|
||||||
|
|
||||||
lda (ZPScrShiftPtr),y make 0000dddd Shift left 3 : 0dddd000
|
lda (ZPScrShiftPtr),y make 0000dddd Shift left 3 : 0dddd000
|
||||||
@ -178,7 +257,7 @@ BITBLT.LOOP >LDYA BLT.BMDataPtr
|
|||||||
|
|
||||||
pla Get back BM Byte
|
pla Get back BM Byte
|
||||||
|
|
||||||
.5 and #$ff SELF MODIFIED : #%01110000 get only col2 bites
|
.7 and #$ff SELF MODIFIED : #%01110000 get only col2 bites
|
||||||
tay
|
tay
|
||||||
|
|
||||||
lda (ZPScrShiftPtr),y shift right 4 (=shift left 3!!!) : 00000ddd
|
lda (ZPScrShiftPtr),y shift right 4 (=shift left 3!!!) : 00000ddd
|
||||||
@ -188,43 +267,46 @@ BITBLT.LOOP >LDYA BLT.BMDataPtr
|
|||||||
inx
|
inx
|
||||||
stx BLT.ScrColIdx
|
stx BLT.ScrColIdx
|
||||||
cpx LBUF.C2
|
cpx LBUF.C2
|
||||||
bne .3
|
bne .5
|
||||||
|
|
||||||
BITBLT.DRAW ldy CB.Cache+S.CB.DestY
|
BITBLT.DRAW ldy CB.Cache+S.CB.DestY
|
||||||
jsr LBUF.DrawAtY
|
jsr LBUF.DrawAtY
|
||||||
inc CB.Cache+S.CB.DestY
|
inc CB.Cache+S.CB.DestY
|
||||||
|
dec BLT.DY
|
||||||
|
beq .8
|
||||||
|
|
||||||
lda BLT.BMDataPtr
|
lda CB.Cache+S.CB.OP
|
||||||
clc
|
bit #S.CB.OP.MASK
|
||||||
adc BM.Cache+S.BM.RowBytes
|
beq .1
|
||||||
sta BLT.BMDataPtr
|
|
||||||
bcc .6
|
|
||||||
|
|
||||||
inc BLT.BMDataPtr+1
|
lda BLT.BMMaskPtr
|
||||||
|
|
||||||
.6 lda BLT.BMMaskPtr
|
|
||||||
clc
|
clc
|
||||||
adc BM.Cache+S.BM.RowBytes
|
adc BM.Cache+S.BM.RowBytes
|
||||||
sta BLT.BMMaskPtr
|
sta BLT.BMMaskPtr
|
||||||
bcc .7
|
bcc .1
|
||||||
|
|
||||||
inc BLT.BMMaskPtr+1
|
inc BLT.BMMaskPtr+1
|
||||||
|
|
||||||
.7 dec BLT.DY
|
.1 lda BLT.BMDataPtr
|
||||||
beq .8
|
clc
|
||||||
jmp BITBLT.LOOP
|
adc BM.Cache+S.BM.RowBytes
|
||||||
|
sta BLT.BMDataPtr
|
||||||
|
bcc .2
|
||||||
|
|
||||||
|
inc BLT.BMDataPtr+1
|
||||||
|
|
||||||
|
.2 jmp BITBLT.LOOP
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* BMD/BMM bits :
|
* BM Data/Mask bits :
|
||||||
* 76543210 76543210
|
* 76543210 76543210
|
||||||
* ^
|
* ^
|
||||||
* BMBitOfsL (0->7)
|
* BMBitOfsL (0->7)
|
||||||
* LBUF DATA/MASK Bits
|
* LBUF DATA/MASK Bits
|
||||||
* c6543210 c6543210
|
* c6543210 c6543210
|
||||||
* ^
|
* ^
|
||||||
* SCRBitOfs (0->6)
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BLT.Get7BMDBits ldy BLT.BMIdx
|
BLT.Get7BMDBits ldy BLT.BMIdx
|
||||||
lda (ZPBMDataPtr),y
|
lda (ZPBMDataPtr),y
|
||||||
@ -258,7 +340,6 @@ BLT.Get7BMDBits ldy BLT.BMIdx
|
|||||||
pla get back right part bits 000xxxxx
|
pla get back right part bits 000xxxxx
|
||||||
|
|
||||||
ora (ZPBMShiftPtr),y shift right 000000yy and ORA with 000xxxxx=0yyxxxxx
|
ora (ZPBMShiftPtr),y shift right 000000yy and ORA with 000xxxxx=0yyxxxxx
|
||||||
|
|
||||||
dec BLT.BMBitOfsL X = 1->6, ADD 7 MOD 8.....
|
dec BLT.BMBitOfsL X = 1->6, ADD 7 MOD 8.....
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
@ -51,13 +51,14 @@ LBUF.DrawAtY lda BASEL,y setup line Base Ptr
|
|||||||
|
|
||||||
lda CB.Cache+S.CB.OP
|
lda CB.Cache+S.CB.OP
|
||||||
|
|
||||||
.1 and #$f
|
.1 and #$F
|
||||||
tax
|
tax
|
||||||
jmp (J.LBUF.DrawAtY,x)
|
jmp (J.LBUF.DrawAtY,x)
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LBUF.DrawAtY.XOR
|
LBUF.DrawAtY.XOR
|
||||||
|
LBUF.DrawAtY.AND.XOR
|
||||||
ldx LBUF.C1 x C1->C2
|
ldx LBUF.C1 x C1->C2
|
||||||
|
|
||||||
ldy COL.BANK,x
|
ldy COL.BANK,x
|
||||||
@ -106,6 +107,7 @@ LBUF.DrawAtY.XOR
|
|||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LBUF.DrawAtY.SET
|
LBUF.DrawAtY.SET
|
||||||
|
LBUF.DrawAtY.AND.SET
|
||||||
ldx LBUF.C1 x C1->C2
|
ldx LBUF.C1 x C1->C2
|
||||||
|
|
||||||
ldy COL.BANK,x
|
ldy COL.BANK,x
|
||||||
@ -198,20 +200,21 @@ LBUF.DrawAtY.ORA
|
|||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LBUF.DrawAtY.AND
|
LBUF.DrawAtY.AND.ORA
|
||||||
ldx LBUF.C1 x C1->C2
|
ldx LBUF.C1 x C1->C2
|
||||||
|
|
||||||
ldy COL.BANK,x
|
ldy COL.BANK,x
|
||||||
sta $C000,y
|
sta $C000,y
|
||||||
ldy COL.OFS,x
|
ldy COL.OFS,x
|
||||||
|
|
||||||
lda (ZPBasePtr),y Get C1
|
lda LBUF.MASK,x get MASK bits
|
||||||
and LBUF.C1.MASK clear ONLY bits starting at X1 mod 7
|
ora LBUF.C1.MASK clear ONLY bits starting at X1 mod 7
|
||||||
|
and (ZPBasePtr),y Clear screen at C1
|
||||||
sta GBYTE
|
sta GBYTE
|
||||||
|
|
||||||
lda LBUF.DATA,x get DATA bits
|
lda LBUF.DATA,x get DATA bits
|
||||||
and LBUF.C1.DATA set ONLY bits starting at X1 mod 7
|
and LBUF.C1.DATA set ONLY bits starting at X1 mod 7
|
||||||
ora GBYTE
|
ora GBYTE ora with screen bits
|
||||||
and (ZPBasePtr),y
|
|
||||||
sta (ZPBasePtr),y update screen
|
sta (ZPBasePtr),y update screen
|
||||||
|
|
||||||
inx
|
inx
|
||||||
@ -223,8 +226,9 @@ LBUF.DrawAtY.AND
|
|||||||
sta $C000,y
|
sta $C000,y
|
||||||
ldy COL.OFS,x
|
ldy COL.OFS,x
|
||||||
|
|
||||||
lda LBUF.DATA,x set all bytes between C1+1 & C2-1
|
lda (ZPBasePtr),y
|
||||||
and (ZPBasePtr),y
|
and LBUF.MASK,x
|
||||||
|
ora LBUF.DATA,x set all bytes between C1+1 & C2-1
|
||||||
sta (ZPBasePtr),y
|
sta (ZPBasePtr),y
|
||||||
|
|
||||||
inx
|
inx
|
||||||
@ -235,13 +239,14 @@ LBUF.DrawAtY.AND
|
|||||||
sta $C000,y
|
sta $C000,y
|
||||||
ldy COL.OFS,x
|
ldy COL.OFS,x
|
||||||
|
|
||||||
lda (ZPBasePtr),y Get C2
|
lda LBUF.MASK,x get MASK bits
|
||||||
and LBUF.C2.MASK clear ONLY bits ending at X2 mod 7
|
ora LBUF.C2.MASK
|
||||||
|
and (ZPBasePtr),y
|
||||||
sta GBYTE
|
sta GBYTE
|
||||||
|
|
||||||
lda LBUF.DATA,x get DATA bits
|
lda LBUF.DATA,x get DATA bits
|
||||||
and LBUF.C2.DATA set ONLY bits ending at X2 mod 7
|
and LBUF.C2.DATA set ONLY bits ending at X2 mod 7
|
||||||
ora GBYTE
|
ora GBYTE
|
||||||
and (ZPBasePtr),y
|
|
||||||
sta (ZPBasePtr),y update screen
|
sta (ZPBasePtr),y update screen
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
|
@ -18,11 +18,10 @@ AUTO 6
|
|||||||
ZPCmdPtr .EQ ZPDRV
|
ZPCmdPtr .EQ ZPDRV
|
||||||
ZPBasePtr .EQ ZPDRV+2
|
ZPBasePtr .EQ ZPDRV+2
|
||||||
ZPBMShiftPtr .EQ ZPDRV+4
|
ZPBMShiftPtr .EQ ZPDRV+4
|
||||||
|
ZPScrShiftPtr .EQ ZPDRV+6
|
||||||
ZPScrShiftPtr .EQ ZPDRV+8
|
ZPBMDataPtr .EQ ZPDRV+8
|
||||||
ZPBMDataPtr .EQ ZPDRV+10
|
ZPBMMaskPtr .EQ ZPDRV+10
|
||||||
ZPBMMaskPtr .EQ ZPDRV+12
|
ZPBMSavePtr .EQ ZPDRV+12
|
||||||
ZPBMSavePtr .EQ ZPDRV+14
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -146,7 +145,10 @@ J.Cmds .DA SETPIXEL
|
|||||||
J.LBUF.DrawAtY .DA LBUF.DrawAtY.XOR
|
J.LBUF.DrawAtY .DA LBUF.DrawAtY.XOR
|
||||||
.DA LBUF.DrawAtY.SET
|
.DA LBUF.DrawAtY.SET
|
||||||
.DA LBUF.DrawAtY.ORA
|
.DA LBUF.DrawAtY.ORA
|
||||||
.DA LBUF.DrawAtY.AND
|
.DA $ffff
|
||||||
|
.DA LBUF.DrawAtY.AND.XOR
|
||||||
|
.DA LBUF.DrawAtY.AND.SET
|
||||||
|
.DA LBUF.DrawAtY.AND.ORA
|
||||||
L.SHIFT .DA SHIFT.L1
|
L.SHIFT .DA SHIFT.L1
|
||||||
.DA SHIFT.L2
|
.DA SHIFT.L2
|
||||||
.DA SHIFT.L3
|
.DA SHIFT.L3
|
||||||
|
@ -16,10 +16,10 @@ S.CB.CMD.BITBLT .EQ 10
|
|||||||
S.CB.CMD.GETRECTBUFSIZE .EQ 12
|
S.CB.CMD.GETRECTBUFSIZE .EQ 12
|
||||||
S.CB.CMD.DRAWLINE .EQ 14
|
S.CB.CMD.DRAWLINE .EQ 14
|
||||||
S.CB.OP .EQ 1
|
S.CB.OP .EQ 1
|
||||||
S.CB.OP.XOR .EQ %00000000 screen EOR bitmap -> Screen
|
S.CB.OP.XOR .EQ 0 screen EOR bitmap -> Screen
|
||||||
S.CB.OP.SET .EQ %00000010 replace screen with bitmap
|
S.CB.OP.SET .EQ 2 replace screen with bitmap
|
||||||
S.CB.OP.ORA .EQ %00000100 combine screen & bitmap -> Screen
|
S.CB.OP.ORA .EQ 4 combine screen & bitmap -> Screen
|
||||||
S.CB.OP.AND .EQ %00000110 Apply BitMap mask before painting
|
S.CB.OP.MASK .EQ %00001000 Apply BitMap mask before painting
|
||||||
S.CB.OP.SAVE .EQ %00010000 Save Screen to DstPtr before painting
|
S.CB.OP.SAVE .EQ %00010000 Save Screen to DstPtr before painting
|
||||||
S.CB.OP.RESTORE .EQ %00100000 Restore Screen From DstPtr
|
S.CB.OP.RESTORE .EQ %00100000 Restore Screen From DstPtr
|
||||||
S.CB.OP.COLOR .EQ %01000000 Assume BitMap is COLOR
|
S.CB.OP.COLOR .EQ %01000000 Assume BitMap is COLOR
|
||||||
@ -85,3 +85,5 @@ LIBGUI.ShowCursor .EQ 16
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.BUILD/INC/LIBGUI.I
|
SAVE /A2OSX.BUILD/INC/LIBGUI.I
|
||||||
|
LOAD /A2OSX.SRC/LIB/LIBGUI.S
|
||||||
|
ASM
|
||||||
|
@ -430,36 +430,6 @@ CB.CmdLen .DA S.CB.Y1+1 SETPIXEL
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CB.Cache .BS S.CB
|
CB.Cache .BS S.CB
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CUR.Arrow .DA #S.BM.F.BBP1
|
|
||||||
.DA #2 RowBytes
|
|
||||||
.DA 12 W
|
|
||||||
.DA 12 H
|
|
||||||
.DA CUR.Arrow.MASK-CUR.Arrow
|
|
||||||
CUR.Arrow.DATA .DA %00000001.000000000
|
|
||||||
.DA %00000011.000000000
|
|
||||||
.DA %00000101.000000000
|
|
||||||
.DA %00001001.000000000
|
|
||||||
.DA %00010001.000000000
|
|
||||||
.DA %00100011.000000000
|
|
||||||
.DA %01110101.000000000
|
|
||||||
.DA %00011000.000000000
|
|
||||||
.DA %00000000.000000000
|
|
||||||
.DA %00000000.000000000
|
|
||||||
.DA %00000000.000000000
|
|
||||||
.DA %00000000.000000000
|
|
||||||
CUR.Arrow.MASK .DA %00000000.000000000
|
|
||||||
.DA %00000000.000000000
|
|
||||||
.DA %00000010.000000000
|
|
||||||
.DA %00000110.000000000
|
|
||||||
.DA %00001110.000000000
|
|
||||||
.DA %00011100.000000000
|
|
||||||
.DA %00001000.000000000
|
|
||||||
.DA %00000000.000000000
|
|
||||||
.DA %00000000.000000000
|
|
||||||
.DA %00000000.000000000
|
|
||||||
.DA %00000000.000000000
|
|
||||||
.DA %00000000.000000000
|
|
||||||
*--------------------------------------
|
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/LIB/LIBGUI.S
|
SAVE /A2OSX.SRC/LIB/LIBGUI.S
|
||||||
ASM
|
ASM
|
||||||
|
@ -45,6 +45,8 @@ L.SetPixel.CB .DA SetPixel.CB
|
|||||||
L.DrawLines.CB .DA DrawLines.CB
|
L.DrawLines.CB .DA DrawLines.CB
|
||||||
L.Filename .DA Filename
|
L.Filename .DA Filename
|
||||||
L.BitBlT.CB .DA BitBlT.CB
|
L.BitBlT.CB .DA BitBlT.CB
|
||||||
|
L.MousePtr.CB .DA MousePtr.CB
|
||||||
|
L.BM.Arrow .DA BM.Arrow
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT >LDYA L.MSG.INIT
|
CS.INIT >LDYA L.MSG.INIT
|
||||||
@ -252,6 +254,21 @@ Destop.Paint >PUSHW L.Rect.CB
|
|||||||
>PUSHW L.BitBlt.CB
|
>PUSHW L.BitBlt.CB
|
||||||
>LIBCALL hLIBGUI,LIBGUI.Draw
|
>LIBCALL hLIBGUI,LIBGUI.Draw
|
||||||
|
|
||||||
|
>LDYA L.BM.Arrow
|
||||||
|
>STYA MousePtr.CB+S.CB.SrcPtr
|
||||||
|
>PUSHW L.MousePtr.CB
|
||||||
|
>LIBCALL hLIBGUI,LIBGUI.Draw
|
||||||
|
|
||||||
|
>LDYAI 128
|
||||||
|
>STYA MousePtr.CB+S.CB.DestX
|
||||||
|
>PUSHW L.MousePtr.CB
|
||||||
|
>LIBCALL hLIBGUI,LIBGUI.Draw
|
||||||
|
|
||||||
|
>LDYAI 182
|
||||||
|
>STYA MousePtr.CB+S.CB.DestX
|
||||||
|
>PUSHW L.MousePtr.CB
|
||||||
|
>LIBCALL hLIBGUI,LIBGUI.Draw
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -392,8 +409,23 @@ BitBlT.CB .DA #S.CB.CMD.BITBLT
|
|||||||
.DA 0 Y1
|
.DA 0 Y1
|
||||||
.DA 140 X2
|
.DA 140 X2
|
||||||
.DA 149 y2
|
.DA 149 y2
|
||||||
.DA 196 DestX
|
.BS 2 DestX
|
||||||
.DA 21 DestY
|
.DA 24 DestY
|
||||||
|
.BS 2 SrcPtr
|
||||||
|
.DA 0
|
||||||
|
|
||||||
|
.DA #0
|
||||||
|
*--------------------------------------
|
||||||
|
MousePtr.CB .DA #S.CB.CMD.BITBLT
|
||||||
|
.DA #S.CB.OP.ORA+S.CB.OP.MASK+S.CB.OP.SAVE
|
||||||
|
.DA #S.CB.MODE.MONO
|
||||||
|
.DA #0
|
||||||
|
.DA 0 X1
|
||||||
|
.DA 0 Y1
|
||||||
|
.DA 11 X2
|
||||||
|
.DA 12 y2
|
||||||
|
.DA 112 DestX
|
||||||
|
.DA 24 DestY
|
||||||
.BS 2 SrcPtr
|
.BS 2 SrcPtr
|
||||||
.DA 0
|
.DA 0
|
||||||
|
|
||||||
@ -407,6 +439,42 @@ SetPixel.X .BS 2
|
|||||||
SetPixel.Y .BS 2
|
SetPixel.Y .BS 2
|
||||||
|
|
||||||
.DA #0
|
.DA #0
|
||||||
|
*--------------------------------------
|
||||||
|
.LIST ON
|
||||||
|
BM.Arrow .DA #S.BM.F.BBP1
|
||||||
|
.DA #2 RowBytes
|
||||||
|
.DA 12 W
|
||||||
|
.DA 13 H
|
||||||
|
.DA BM.Arrow.MASK-BM.Arrow
|
||||||
|
|
||||||
|
BM.Arrow.DATA .DA %0000.00000000
|
||||||
|
.DA %0000.00000010
|
||||||
|
.DA %0000.00000110
|
||||||
|
.DA %0000.00001110
|
||||||
|
.DA %0000.00011110
|
||||||
|
.DA %0000.00111110
|
||||||
|
.DA %0000.01111110
|
||||||
|
.DA %0000.11111110
|
||||||
|
.DA %0001.11111110
|
||||||
|
.DA %0010.01110010
|
||||||
|
.DA %0100.11110010
|
||||||
|
.DA %0000.11100000
|
||||||
|
.DA %0000.00000000
|
||||||
|
|
||||||
|
BM.Arrow.MASK .DA %1111.11111100
|
||||||
|
.DA %1111.11111000
|
||||||
|
.DA %1111.11110000
|
||||||
|
.DA %1111.11100000
|
||||||
|
.DA %1111.11000000
|
||||||
|
.DA %1111.10000000
|
||||||
|
.DA %1111.00000000
|
||||||
|
.DA %1110.00000000
|
||||||
|
.DA %1100.00000000
|
||||||
|
.DA %1000.00000000
|
||||||
|
.DA %0000.00000000
|
||||||
|
.DA %0000.00000000
|
||||||
|
.DA %1110.00001111
|
||||||
|
.LIST OFF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
|
Loading…
Reference in New Issue
Block a user