mirror of
https://github.com/dschmenk/PLASMA.git
synced 2025-04-07 01:38:18 +00:00
Add bitmap drawing for screen and memory
This commit is contained in:
parent
d70ae2ec1e
commit
0b531e7f3e
src
@ -28,10 +28,12 @@ import dcgrlib
|
||||
predef dcgrPlotScr(x, y)#0
|
||||
predef dcgrHLinScr(x1, x2, y)#0
|
||||
predef dcgrVlinScr(y1, y2, x)#0
|
||||
predef dcgrBitScr(x, y, w, h, bitptr)#0
|
||||
predef dcgrPixScr(x, y, w, h, pixptr)#0
|
||||
predef dcgrPlotMem(x, y, w, h, dstptr, dstspan)#0
|
||||
predef dcgrHLinMem(x1, x2, y, dstptr, dstspan)#0
|
||||
predef dcgrVLinMem(y1, y2, x, dstptr, dstspan)#0
|
||||
predef dcgrBitMem(x, y, w, h, bitptr, dstw, dsth, dstptr, dstspan)#0
|
||||
predef dcgrPixMem(x, y, w, h, pixptr, dstw, dsth, dstptr, dstspan)#0
|
||||
predef dcgrScrBl7Mem(x7, y, w7, h, dstptr, dstspan)#0
|
||||
predef dcgrMemBl7Scr(x7, y, w7, h, srcptr, srcspan)#0
|
||||
|
@ -204,7 +204,7 @@ asm _clipX#0
|
||||
LDA ESTKL-1,X ; X COORD
|
||||
CMP TMPL ; > DST_WIDTH?
|
||||
BCS INVISX ; YEP, X OFF RIGHT EDGE
|
||||
CLC
|
||||
;CLC
|
||||
ADC ESTKL-3,X ; X + WIDTH
|
||||
CMP TMPL ; < DST_WIDTH?
|
||||
BCC VISX ; YEP, FULLY VISIBLE
|
||||
@ -250,7 +250,7 @@ asm _clipY#0
|
||||
LDA ESTKL-2,X ; Y COORD
|
||||
CMP TMPL ; > DST_HEIGHT?
|
||||
BCS INVISY ; YEP, Y OFF BOTTOM EDGE
|
||||
CLC
|
||||
;CLC
|
||||
ADC ESTKL-4,X ; Y + HEIGHT
|
||||
CMP TMPL ; < DST_HEIGHT
|
||||
BCC VISY ; YEP, FULLY VISIBLE
|
||||
@ -489,6 +489,59 @@ asm _dcgrVLinScrB
|
||||
BNE YVS
|
||||
RTS
|
||||
end
|
||||
export asm dcgrBitScr(x, y, w, h, bitptr)#0
|
||||
INX
|
||||
INX
|
||||
INX
|
||||
INX
|
||||
INX
|
||||
STX ESP
|
||||
LDA ESTKL-5,X ; BITPTR
|
||||
STA SRCL
|
||||
LDA ESTKH-5,X
|
||||
STA SRCH
|
||||
YBITS LDY ESTKL-2,X ; Y COORD
|
||||
INC ESTKL-2,X ; Y COORD++
|
||||
CPY #192 ; OFF SCREEN?
|
||||
BCS NXTBITS
|
||||
end
|
||||
asm _dcgrBitScrA
|
||||
LDA $1000,Y ; HGRSCANL
|
||||
STA DSTL
|
||||
LDA $2000,Y ; HGRSCANH
|
||||
STA DSTH
|
||||
LDA ESTKL-1,X ; X COORD
|
||||
STA ESTKH-1,X ; CURRENT X COORD
|
||||
LDA ESTKL-3,X ; WIDTH
|
||||
STA ESTKH-3,X ; CURRENT WIDTH
|
||||
BITS8 LDA #8
|
||||
STA TMPL
|
||||
LDY #$00
|
||||
LDA (SRC),Y ; SRC BITMAP
|
||||
INC SRCL
|
||||
BNE +
|
||||
INC SRCH
|
||||
+ LDY ESTKH-1,X ; CURRENT X COORD
|
||||
BITSCR LSR
|
||||
BCC +
|
||||
CPY #140 ; OFF SCREEN?
|
||||
BCS +
|
||||
PHA
|
||||
end
|
||||
asm _dcgrBitScrB
|
||||
JSR $1000 ; PLOT PIXEL
|
||||
PLA
|
||||
+ DEC ESTKH-3,X ; AT RIGHT EDGE?
|
||||
BEQ NXTBITS
|
||||
INC ESTKH-1,X ; X++
|
||||
LDY ESTKH-1,X ; CURRENT X COORD
|
||||
DEC TMPL
|
||||
BNE BITSCR
|
||||
BEQ BITS8
|
||||
NXTBITS DEC ESTKL-4,X ; HEIGHT
|
||||
BNE YBITS ; NEXT ROW
|
||||
RETBITS RTS
|
||||
end
|
||||
export asm dcgrPixScr(x, y, w, h, pixptr)#0
|
||||
INX
|
||||
INX
|
||||
@ -790,6 +843,80 @@ asm _dcgrVLinMemB
|
||||
BNE YVM
|
||||
+ RTS
|
||||
end
|
||||
export asm dcgrBitMem(x, y, w, h, bitptr, dstw, dsth, dstptr, dstspan)#0
|
||||
TXA
|
||||
CLC
|
||||
ADC #9
|
||||
TAX
|
||||
STX ESP
|
||||
LDA ESTKL-8,X ; DSTPTR
|
||||
STA DSTL
|
||||
LDA ESTKH-8,X
|
||||
STA DSTH
|
||||
LDY ESTKL-2,X ; Y COORD
|
||||
BEQ +
|
||||
- CLC ; ADVANCE TO Y SCANLINE
|
||||
LDA ESTKL-9,X ; SPAN
|
||||
ADC DSTL
|
||||
STA DSTL
|
||||
LDA ESTKH-9,X
|
||||
ADC DSTH
|
||||
STA DSTH
|
||||
DEY
|
||||
BNE -
|
||||
+ LDA ESTKL-5,X ; BITPTR
|
||||
STA SRCL
|
||||
LDA ESTKH-5,X
|
||||
STA SRCH
|
||||
LDA ESTKL-1,X ; X COORD
|
||||
CLC
|
||||
ADC ESTKL-3,X ; WIDTH
|
||||
STA TMPH ; -> RIGHT EDGE
|
||||
YBITM LDA ESTKL-2,X ; Y COORD
|
||||
INC ESTKL-2,X ; Y COORD++
|
||||
CMP ESTKL-7,X ; OUT OF DST BOUNDS?
|
||||
BCS NXTBITM
|
||||
TAY
|
||||
LDA ESTKL-1,X ; X COORD
|
||||
STA ESTKH-1,X ; CURRENT X COORD
|
||||
LDA ESTKL-3,X ; WIDTH
|
||||
STA ESTKH-3,X ; CURRENT WIDTH
|
||||
BITM8 LDA #8
|
||||
STA TMPL
|
||||
LDY #$00
|
||||
LDA (SRC),Y ; SRC BITMAP
|
||||
INC SRCL
|
||||
BNE +
|
||||
INC SRCH
|
||||
+ LDY ESTKH-1,X ; CURRENT X COORD
|
||||
BITMEM LSR
|
||||
BCC +
|
||||
CPY TMPH ; OUT OF DST BOUNDS?
|
||||
BCS +
|
||||
PHA
|
||||
end
|
||||
asm _dcgrBitMemA
|
||||
JSR $1000 ; PLOT PIXEL
|
||||
PLA
|
||||
+ DEC ESTKH-3,X ; AT RIGHT EDGE?
|
||||
BEQ NXTBITM
|
||||
INC ESTKH-1,X ; X++
|
||||
LDY ESTKH-1,X ; CURRENT X COORD
|
||||
DEC TMPL
|
||||
BNE BITMEM
|
||||
BEQ BITM8
|
||||
NXTBITM CLC
|
||||
LDA ESTKL-9,X ; SPAN
|
||||
ADC DSTL
|
||||
STA DSTL
|
||||
LDA ESTKH-9,X
|
||||
ADC DSTH
|
||||
STA DSTH
|
||||
DEC ESTKL-4,X ; HEIGHT
|
||||
BNE YBITM ; NEXT ROW
|
||||
RETBITM RTS
|
||||
end
|
||||
|
||||
export asm dcgrPixMem(x, y, w, h, pixptr, dstw, dsth, dstptr, dstspan)#0
|
||||
TXA
|
||||
CLC
|
||||
@ -1552,6 +1679,9 @@ _dcgrHLinScrB:1 = @_dcgrPlotScrB
|
||||
_dcgrVLinScrA:1 = @hgrscanl
|
||||
_dcgrVLinScrA:6 = @hgrscanh
|
||||
_dcgrVLinScrB:1 = @_dcgrPlotScrB
|
||||
_dcgrBitScrA:1 = @hgrscanl
|
||||
_dcgrBitScrA:6 = @hgrscanh
|
||||
_dcgrBitScrB:1 = @_dcgrPlotScrB
|
||||
_dcgrPixScrA:1 = @hgrscanl
|
||||
_dcgrPixScrA:6 = @hgrscanh
|
||||
_dcgrPixScrB:1 = @_dcgrColorA
|
||||
@ -1588,6 +1718,7 @@ _dcgrOpPlotMemG:1 = @memclrl
|
||||
_dcgrOpPlotMemH:1 = @memclrh
|
||||
_dcgrHLinMemB:1 = @_dcgrPlotMemB
|
||||
_dcgrVLinMemB:1 = @_dcgrPlotMemB
|
||||
_dcgrBitMemA:1 = @_dcgrPlotMemB
|
||||
_dcgrPixMemB:1 = @_dcgrColorA
|
||||
_dcgrPixMemC:1 = @_dcgrPlotMemB
|
||||
_dcgrPixMemD:1 = @_dcgrColorA
|
||||
|
@ -3,7 +3,138 @@ include "inc/lines.plh"
|
||||
include "inc/dcgrlib.plh"
|
||||
|
||||
sysflags resxtxt1|reshgr1|resxhgr1
|
||||
|
||||
//
|
||||
// Apple //e hires character font
|
||||
//
|
||||
byte fontBits[]
|
||||
byte = $1C,$22,$2A,$3A,$1A,$02,$3C,$00,$08,$14,$22,$22,$3E,$22,$22,$00
|
||||
byte = $1E,$22,$22,$1E,$22,$22,$1E,$00,$1C,$22,$02,$02,$02,$22,$1C,$00
|
||||
byte = $1E,$22,$22,$22,$22,$22,$1E,$00,$3E,$02,$02,$1E,$02,$02,$3E,$00
|
||||
byte = $3E,$02,$02,$1E,$02,$02,$02,$00,$3C,$02,$02,$02,$32,$22,$3C,$00
|
||||
byte = $22,$22,$22,$3E,$22,$22,$22,$00,$1C,$08,$08,$08,$08,$08,$1C,$00
|
||||
byte = $20,$20,$20,$20,$20,$22,$1C,$00,$22,$12,$0A,$06,$0A,$12,$22,$00
|
||||
byte = $02,$02,$02,$02,$02,$02,$3E,$00,$22,$36,$2A,$2A,$22,$22,$22,$00
|
||||
byte = $22,$22,$26,$2A,$32,$22,$22,$00,$1C,$22,$22,$22,$22,$22,$1C,$00
|
||||
byte = $1E,$22,$22,$1E,$02,$02,$02,$00,$1C,$22,$22,$22,$2A,$12,$2C,$00
|
||||
byte = $1E,$22,$22,$1E,$0A,$12,$22,$00,$1C,$22,$02,$1C,$20,$22,$1C,$00
|
||||
byte = $3E,$08,$08,$08,$08,$08,$08,$00,$22,$22,$22,$22,$22,$22,$1C,$00
|
||||
byte = $22,$22,$22,$22,$22,$14,$08,$00,$22,$22,$22,$2A,$2A,$36,$22,$00
|
||||
byte = $22,$22,$14,$08,$14,$22,$22,$00,$22,$22,$14,$08,$08,$08,$08,$00
|
||||
byte = $3E,$20,$10,$08,$04,$02,$3E,$00,$3E,$06,$06,$06,$06,$06,$3E,$00
|
||||
byte = $00,$02,$04,$08,$10,$20,$00,$00,$3E,$30,$30,$30,$30,$30,$3E,$00
|
||||
byte = $00,$00,$08,$14,$22,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$7F
|
||||
byte = $00,$00,$00,$00,$00,$00,$00,$00,$08,$08,$08,$08,$08,$00,$08,$00
|
||||
byte = $14,$14,$14,$00,$00,$00,$00,$00,$14,$14,$3E,$14,$3E,$14,$14,$00
|
||||
byte = $08,$3C,$0A,$1C,$28,$1E,$08,$00,$06,$26,$10,$08,$04,$32,$30,$00
|
||||
byte = $04,$0A,$0A,$04,$2A,$12,$2C,$00,$08,$08,$08,$00,$00,$00,$00,$00
|
||||
byte = $08,$04,$02,$02,$02,$04,$08,$00,$08,$10,$20,$20,$20,$10,$08,$00
|
||||
byte = $08,$2A,$1C,$08,$1C,$2A,$08,$00,$00,$08,$08,$3E,$08,$08,$00,$00
|
||||
byte = $00,$00,$00,$00,$08,$08,$04,$00,$00,$00,$00,$3E,$00,$00,$00,$00
|
||||
byte = $00,$00,$00,$00,$00,$00,$08,$00,$00,$20,$10,$08,$04,$02,$00,$00
|
||||
byte = $1C,$22,$32,$2A,$26,$22,$1C,$00,$08,$0C,$08,$08,$08,$08,$1C,$00
|
||||
byte = $1C,$22,$20,$18,$04,$02,$3E,$00,$3E,$20,$10,$18,$20,$22,$1C,$00
|
||||
byte = $10,$18,$14,$12,$3E,$10,$10,$00,$3E,$02,$1E,$20,$20,$22,$1C,$00
|
||||
byte = $38,$04,$02,$1E,$22,$22,$1C,$00,$3E,$20,$10,$08,$04,$04,$04,$00
|
||||
byte = $1C,$22,$22,$1C,$22,$22,$1C,$00,$1C,$22,$22,$3C,$20,$10,$0E,$00
|
||||
byte = $00,$00,$08,$00,$08,$00,$00,$00,$00,$00,$08,$00,$08,$08,$04,$00
|
||||
byte = $10,$08,$04,$02,$04,$08,$10,$00,$00,$00,$3E,$00,$3E,$00,$00,$00
|
||||
byte = $04,$08,$10,$20,$10,$08,$04,$00,$1C,$22,$10,$08,$08,$00,$08,$00
|
||||
byte = $1C,$22,$2A,$3A,$1A,$02,$3C,$00,$08,$14,$22,$22,$3E,$22,$22,$00
|
||||
byte = $1E,$22,$22,$1E,$22,$22,$1E,$00,$1C,$22,$02,$02,$02,$22,$1C,$00
|
||||
byte = $1E,$22,$22,$22,$22,$22,$1E,$00,$3E,$02,$02,$1E,$02,$02,$3E,$00
|
||||
byte = $3E,$02,$02,$1E,$02,$02,$02,$00,$3C,$02,$02,$02,$32,$22,$3C,$00
|
||||
byte = $22,$22,$22,$3E,$22,$22,$22,$00,$1C,$08,$08,$08,$08,$08,$1C,$00
|
||||
byte = $20,$20,$20,$20,$20,$22,$1C,$00,$22,$12,$0A,$06,$0A,$12,$22,$00
|
||||
byte = $02,$02,$02,$02,$02,$02,$3E,$00,$22,$36,$2A,$2A,$22,$22,$22,$00
|
||||
byte = $22,$22,$26,$2A,$32,$22,$22,$00,$1C,$22,$22,$22,$22,$22,$1C,$00
|
||||
byte = $1E,$22,$22,$1E,$02,$02,$02,$00,$1C,$22,$22,$22,$2A,$12,$2C,$00
|
||||
byte = $1E,$22,$22,$1E,$0A,$12,$22,$00,$1C,$22,$02,$1C,$20,$22,$1C,$00
|
||||
byte = $3E,$08,$08,$08,$08,$08,$08,$00,$22,$22,$22,$22,$22,$22,$1C,$00
|
||||
byte = $22,$22,$22,$22,$22,$14,$08,$00,$22,$22,$22,$2A,$2A,$36,$22,$00
|
||||
byte = $22,$22,$14,$08,$14,$22,$22,$00,$22,$22,$14,$08,$08,$08,$08,$00
|
||||
byte = $3E,$20,$10,$08,$04,$02,$3E,$00,$3E,$06,$06,$06,$06,$06,$3E,$00
|
||||
byte = $00,$02,$04,$08,$10,$20,$00,$00,$3E,$30,$30,$30,$30,$30,$3E,$00
|
||||
byte = $00,$00,$08,$14,$22,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$7F
|
||||
byte = $00,$00,$00,$00,$00,$00,$00,$00,$08,$08,$08,$08,$08,$00,$08,$00
|
||||
byte = $14,$14,$14,$00,$00,$00,$00,$00,$14,$14,$3E,$14,$3E,$14,$14,$00
|
||||
byte = $08,$3C,$0A,$1C,$28,$1E,$08,$00,$06,$26,$10,$08,$04,$32,$30,$00
|
||||
byte = $04,$0A,$0A,$04,$2A,$12,$2C,$00,$08,$08,$08,$00,$00,$00,$00,$00
|
||||
byte = $08,$04,$02,$02,$02,$04,$08,$00,$08,$10,$20,$20,$20,$10,$08,$00
|
||||
byte = $08,$2A,$1C,$08,$1C,$2A,$08,$00,$00,$08,$08,$3E,$08,$08,$00,$00
|
||||
byte = $00,$00,$00,$00,$08,$08,$04,$00,$00,$00,$00,$3E,$00,$00,$00,$00
|
||||
byte = $00,$00,$00,$00,$00,$00,$08,$00,$00,$20,$10,$08,$04,$02,$00,$00
|
||||
byte = $1C,$22,$32,$2A,$26,$22,$1C,$00,$08,$0C,$08,$08,$08,$08,$1C,$00
|
||||
byte = $1C,$22,$20,$18,$04,$02,$3E,$00,$3E,$20,$10,$18,$20,$22,$1C,$00
|
||||
byte = $10,$18,$14,$12,$3E,$10,$10,$00,$3E,$02,$1E,$20,$20,$22,$1C,$00
|
||||
byte = $38,$04,$02,$1E,$22,$22,$1C,$00,$3E,$20,$10,$08,$04,$04,$04,$00
|
||||
byte = $1C,$22,$22,$1C,$22,$22,$1C,$00,$1C,$22,$22,$3C,$20,$10,$0E,$00
|
||||
byte = $00,$00,$08,$00,$08,$00,$00,$00,$00,$00,$08,$00,$08,$08,$04,$00
|
||||
byte = $10,$08,$04,$02,$04,$08,$10,$00,$00,$00,$3E,$00,$3E,$00,$00,$00
|
||||
byte = $04,$08,$10,$20,$10,$08,$04,$00,$1C,$22,$10,$08,$08,$00,$08,$00
|
||||
byte = $1C,$22,$2A,$3A,$1A,$02,$3C,$00,$08,$14,$22,$22,$3E,$22,$22,$00
|
||||
byte = $1E,$22,$22,$1E,$22,$22,$1E,$00,$1C,$22,$02,$02,$02,$22,$1C,$00
|
||||
byte = $1E,$22,$22,$22,$22,$22,$1E,$00,$3E,$02,$02,$1E,$02,$02,$3E,$00
|
||||
byte = $3E,$02,$02,$1E,$02,$02,$02,$00,$3C,$02,$02,$02,$32,$22,$3C,$00
|
||||
byte = $22,$22,$22,$3E,$22,$22,$22,$00,$1C,$08,$08,$08,$08,$08,$1C,$00
|
||||
byte = $20,$20,$20,$20,$20,$22,$1C,$00,$22,$12,$0A,$06,$0A,$12,$22,$00
|
||||
byte = $02,$02,$02,$02,$02,$02,$3E,$00,$22,$36,$2A,$2A,$22,$22,$22,$00
|
||||
byte = $22,$22,$26,$2A,$32,$22,$22,$00,$1C,$22,$22,$22,$22,$22,$1C,$00
|
||||
byte = $1E,$22,$22,$1E,$02,$02,$02,$00,$1C,$22,$22,$22,$2A,$12,$2C,$00
|
||||
byte = $1E,$22,$22,$1E,$0A,$12,$22,$00,$1C,$22,$02,$1C,$20,$22,$1C,$00
|
||||
byte = $3E,$08,$08,$08,$08,$08,$08,$00,$22,$22,$22,$22,$22,$22,$1C,$00
|
||||
byte = $22,$22,$22,$22,$22,$14,$08,$00,$22,$22,$22,$2A,$2A,$36,$22,$00
|
||||
byte = $22,$22,$14,$08,$14,$22,$22,$00,$22,$22,$14,$08,$08,$08,$08,$00
|
||||
byte = $3E,$20,$10,$08,$04,$02,$3E,$00,$3E,$06,$06,$06,$06,$06,$3E,$00
|
||||
byte = $00,$02,$04,$08,$10,$20,$00,$00,$3E,$30,$30,$30,$30,$30,$3E,$00
|
||||
byte = $00,$00,$08,$14,$22,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$7F
|
||||
byte = $00,$00,$00,$00,$00,$00,$00,$00,$08,$08,$08,$08,$08,$00,$08,$00
|
||||
byte = $14,$14,$14,$00,$00,$00,$00,$00,$14,$14,$3E,$14,$3E,$14,$14,$00
|
||||
byte = $08,$3C,$0A,$1C,$28,$1E,$08,$00,$06,$26,$10,$08,$04,$32,$30,$00
|
||||
byte = $04,$0A,$0A,$04,$2A,$12,$2C,$00,$08,$08,$08,$00,$00,$00,$00,$00
|
||||
byte = $08,$04,$02,$02,$02,$04,$08,$00,$08,$10,$20,$20,$20,$10,$08,$00
|
||||
byte = $08,$2A,$1C,$08,$1C,$2A,$08,$00,$00,$08,$08,$3E,$08,$08,$00,$00
|
||||
byte = $00,$00,$00,$00,$08,$08,$04,$00,$00,$00,$00,$3E,$00,$00,$00,$00
|
||||
byte = $00,$00,$00,$00,$00,$00,$08,$00,$00,$20,$10,$08,$04,$02,$00,$00
|
||||
byte = $1C,$22,$32,$2A,$26,$22,$1C,$00,$08,$0C,$08,$08,$08,$08,$1C,$00
|
||||
byte = $1C,$22,$20,$18,$04,$02,$3E,$00,$3E,$20,$10,$18,$20,$22,$1C,$00
|
||||
byte = $10,$18,$14,$12,$3E,$10,$10,$00,$3E,$02,$1E,$20,$20,$22,$1C,$00
|
||||
byte = $38,$04,$02,$1E,$22,$22,$1C,$00,$3E,$20,$10,$08,$04,$04,$04,$00
|
||||
byte = $1C,$22,$22,$1C,$22,$22,$1C,$00,$1C,$22,$22,$3C,$20,$10,$0E,$00
|
||||
byte = $00,$00,$08,$00,$08,$00,$00,$00,$00,$00,$08,$00,$08,$08,$04,$00
|
||||
byte = $10,$08,$04,$02,$04,$08,$10,$00,$00,$00,$3E,$00,$3E,$00,$00,$00
|
||||
byte = $04,$08,$10,$20,$10,$08,$04,$00,$1C,$22,$10,$08,$08,$00,$08,$00
|
||||
byte = $1C,$22,$2A,$3A,$1A,$02,$3C,$00,$08,$14,$22,$22,$3E,$22,$22,$00
|
||||
byte = $1E,$22,$22,$1E,$22,$22,$1E,$00,$1C,$22,$02,$02,$02,$22,$1C,$00
|
||||
byte = $1E,$22,$22,$22,$22,$22,$1E,$00,$3E,$02,$02,$1E,$02,$02,$3E,$00
|
||||
byte = $3E,$02,$02,$1E,$02,$02,$02,$00,$3C,$02,$02,$02,$32,$22,$3C,$00
|
||||
byte = $22,$22,$22,$3E,$22,$22,$22,$00,$1C,$08,$08,$08,$08,$08,$1C,$00
|
||||
byte = $20,$20,$20,$20,$20,$22,$1C,$00,$22,$12,$0A,$06,$0A,$12,$22,$00
|
||||
byte = $02,$02,$02,$02,$02,$02,$3E,$00,$22,$36,$2A,$2A,$22,$22,$22,$00
|
||||
byte = $22,$22,$26,$2A,$32,$22,$22,$00,$1C,$22,$22,$22,$22,$22,$1C,$00
|
||||
byte = $1E,$22,$22,$1E,$02,$02,$02,$00,$1C,$22,$22,$22,$2A,$12,$2C,$00
|
||||
byte = $1E,$22,$22,$1E,$0A,$12,$22,$00,$1C,$22,$02,$1C,$20,$22,$1C,$00
|
||||
byte = $3E,$08,$08,$08,$08,$08,$08,$00,$22,$22,$22,$22,$22,$22,$1C,$00
|
||||
byte = $22,$22,$22,$22,$22,$14,$08,$00,$22,$22,$22,$2A,$2A,$36,$22,$00
|
||||
byte = $22,$22,$14,$08,$14,$22,$22,$00,$22,$22,$14,$08,$08,$08,$08,$00
|
||||
byte = $3E,$20,$10,$08,$04,$02,$3E,$00,$3E,$06,$06,$06,$06,$06,$3E,$00
|
||||
byte = $00,$02,$04,$08,$10,$20,$00,$00,$3E,$30,$30,$30,$30,$30,$3E,$00
|
||||
byte = $00,$00,$08,$14,$22,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$7F
|
||||
byte = $04,$08,$10,$00,$00,$00,$00,$00,$00,$00,$1C,$20,$3C,$22,$3C,$00
|
||||
byte = $02,$02,$1E,$22,$22,$22,$1E,$00,$00,$00,$3C,$02,$02,$02,$3C,$00
|
||||
byte = $20,$20,$3C,$22,$22,$22,$3C,$00,$00,$00,$1C,$22,$3E,$02,$3C,$00
|
||||
byte = $18,$24,$04,$1E,$04,$04,$04,$00,$00,$00,$1C,$22,$22,$3C,$20,$1C
|
||||
byte = $02,$02,$1E,$22,$22,$22,$22,$00,$08,$00,$0C,$08,$08,$08,$1C,$00
|
||||
byte = $10,$00,$18,$10,$10,$10,$12,$0C,$02,$02,$22,$12,$0E,$12,$22,$00
|
||||
byte = $0C,$08,$08,$08,$08,$08,$1C,$00,$00,$00,$36,$2A,$2A,$22,$22,$00
|
||||
byte = $00,$00,$1E,$22,$22,$22,$22,$00,$00,$00,$1C,$22,$22,$22,$1C,$00
|
||||
byte = $00,$00,$1E,$22,$22,$1E,$02,$02,$00,$00,$3C,$22,$22,$3C,$20,$20
|
||||
byte = $00,$00,$3A,$06,$02,$02,$02,$00,$00,$00,$3C,$02,$1C,$20,$1E,$00
|
||||
byte = $04,$04,$1E,$04,$04,$24,$18,$00,$00,$00,$22,$22,$22,$32,$2C,$00
|
||||
byte = $00,$00,$22,$22,$22,$14,$08,$00,$00,$00,$22,$22,$2A,$2A,$36,$00
|
||||
byte = $00,$00,$22,$14,$08,$14,$22,$00,$00,$00,$22,$22,$22,$3C,$20,$1C
|
||||
byte = $00,$00,$3E,$10,$08,$04,$3E,$00,$38,$0C,$0C,$06,$0C,$0C,$38,$00
|
||||
byte = $08,$08,$08,$08,$08,$08,$08,$08,$0E,$18,$18,$30,$18,$18,$0E,$00
|
||||
byte = $00,$2C,$1A,$00,$00,$00,$00,$00,$00,$2A,$14,$2A,$14,$2A,$00,$00
|
||||
//
|
||||
// Test sprite
|
||||
//
|
||||
@ -28,6 +159,44 @@ word sprite7mask[7]
|
||||
word sprite7[7]
|
||||
word sprite7span, sprite7width
|
||||
|
||||
def dcgrStrScr(x, y, strptr)#0
|
||||
byte i
|
||||
|
||||
for i = 1 to ^strptr
|
||||
dcgrBitScr(x, y, 7, 8, @fontBits + (^(strptr + i) + 128) * 8)
|
||||
x = x + 7
|
||||
next
|
||||
end
|
||||
def dcgrBoldStrScr(x, y, strptr)#0
|
||||
byte h, v
|
||||
|
||||
for v = y - 1 to y + 1
|
||||
for h = x - 1 to x + 1
|
||||
dcgrStrScr(h, v, strptr)
|
||||
next
|
||||
next
|
||||
dcgrColor(DCLR_BLACK)
|
||||
dcgrStrScr(x, y, strptr)
|
||||
end
|
||||
def dcgrFillMem(x, y, w, h, dstptr, dstspan)#0
|
||||
byte x2, y2, v
|
||||
|
||||
if x < 0; w = w + x; x = 0; fin
|
||||
if y < 0; h = h + y; y = 0; fin
|
||||
x2 = x + w - 1
|
||||
y2 = y + h - 1
|
||||
for v = y to y2
|
||||
dcgrHLinMem(x, x2, v, dstptr, dstspan)
|
||||
next
|
||||
end
|
||||
def dcgrStrMem(x, y, strptr, dstw, dsth, dstptr, dstspan)#0
|
||||
byte i
|
||||
|
||||
for i = 1 to ^strptr
|
||||
dcgrBitMem(x, y, 7, 8, @fontBits + (^(strptr + i) + 128) * 8, dstw, dsth, dstptr, dstspan)
|
||||
x = x + 7
|
||||
next
|
||||
end
|
||||
def compileSprite#0
|
||||
byte i
|
||||
|
||||
@ -73,6 +242,7 @@ def dcgrTest#0
|
||||
dcgrHLinScr((21/7)*7, (21/7)*7+(100/7)*7, 30+132)
|
||||
dcgrVLinScr(30, 30+132, (21/7)*7)
|
||||
dcgrVLinScr(30, 30+132, (21/7)*7+(100/7)*7)
|
||||
dcgrBoldStrScr(30, 10, "Hello, DCGR!")
|
||||
i = 64; j = 64; k = 86
|
||||
ok7 = k/7
|
||||
inci = 1; incj = 1; inck = 2
|
||||
@ -85,6 +255,7 @@ def dcgrTest#0
|
||||
mode = (^$C010 & $7F) - '0'
|
||||
fin
|
||||
ok7, om7 = divmod(k, 7)
|
||||
dcgrOpMem(OP_SRC)
|
||||
when mode
|
||||
is 1
|
||||
dcgrPixScr(i, j, 16, 16, @sprite)
|
||||
@ -110,6 +281,16 @@ def dcgrTest#0
|
||||
break
|
||||
is 5
|
||||
dcgrPixScr(i, j, 16, 16, @sprite)
|
||||
is 6
|
||||
dcgrMemBl7Mem(0, 0, restrw7, 16, backblk + (ok7 << 2), backspan, restrw7, 16, restrblk, restrspan)
|
||||
dcgrColor(DCLR_BLACK)
|
||||
dcgrFillMem(om7 + 2, 4, 14, 8, restrblk, restrspan)
|
||||
dcgrColor(DCLR_WHITE)
|
||||
dcgrStrMem(om7 + 2, 4, "DC", restrw, 16, restrblk, restrspan)
|
||||
dcgrMemBl7Scr(ok7, 170, restrw7, 16, restrblk, restrspan)
|
||||
break
|
||||
is 7
|
||||
dcgrPixScr(i, j, 16, 16, @sprite)
|
||||
wend
|
||||
if k > 136 or k < -16; inck = -inck; fin
|
||||
k = k + inck
|
||||
|
Loading…
x
Reference in New Issue
Block a user