mirror of
https://github.com/dschmenk/PLASMA.git
synced 2025-04-09 16:40:38 +00:00
Simplified set destination surface API
This commit is contained in:
parent
70a067d134
commit
ff89556104
@ -1,4 +1,6 @@
|
||||
import dcgrlib
|
||||
const DST_SCREEN = 0
|
||||
const DST_MEMORY = 1
|
||||
const SCR_WIDTH7 = 20
|
||||
const SCR_WIDTH = 140
|
||||
const SCR_HEIGHT = 192
|
||||
@ -25,24 +27,17 @@ import dcgrlib
|
||||
const DCLR_WHITE = 15
|
||||
|
||||
predef dcgrColor(c)#0
|
||||
predef dcgrPlotScr(x, y)#0
|
||||
predef dcgrHLinScr(x1, x2, y)#0
|
||||
predef dcgrVlinScr(y1, y2, x)#0
|
||||
predef dcgrBitScr(x, y, bitw, bith, bitptr)#0
|
||||
predef dcgrPixScr(x, y, pixw, pixh, pixptr)#0
|
||||
predef dcgrPlotMem(x, y, memptr, memspan)#0
|
||||
predef dcgrHLinMem(x1, x2, y, memptr, memspan)#0
|
||||
predef dcgrVLinMem(y1, y2, x, memptr, memspan)#0
|
||||
predef dcgrBitMem(x, y, bitw, bith, bitptr, memw, memh, memptr, memspan)#0
|
||||
predef dcgrPixMem(x, y, pixw, pixh, pixptr, memw, memh, memptr, memspan)#0
|
||||
predef dcgrScrBl7Mem(x7, y, w7, h, memptr, memspan)#0
|
||||
predef dcgrMemBl7Scr(x7, y, w7, h, memptr, memspan)#0
|
||||
predef dcgrMemBl7Mem(x7, y, srcw7, srch, srcptr, srcspan, dstw7, dsth, dstptr)#0
|
||||
predef dcgrClearBl7Scr(x7, y, w7, h)#0
|
||||
predef dcgrClearBl7Mem(x7, y, w7, h, memptr, memspan)#0
|
||||
predef dcgrPlot(x, y)#0
|
||||
predef dcgrHLin(x1, x2, y)#0
|
||||
predef dcgrVlin(y1, y2, x)#0
|
||||
predef dcgrBitmap(x, y, bitw, bith, bitptr)#0
|
||||
predef dcgrPixmap(x, y, pixw, pixh, pixptr)#0
|
||||
predef dcgrScrBl7(x7, y, w7, h)#0
|
||||
predef dcgrMemBl7(x7, y, w7, h, memptr, memspan)#0
|
||||
predef dcgrClearBl7(x7, y, w7, h)#0
|
||||
predef dcgrVLB#0
|
||||
predef dcgrOpScr(op)#0
|
||||
predef dcgrOpMem(op)#0
|
||||
predef dcgrAllocBl7Mem(w, h)#2
|
||||
predef dcgrOp(op)#0
|
||||
predef dcgrSurfScr(op)#0
|
||||
predef dcgrSurfMem(op, memh, memptr, memspan)#0
|
||||
predef dcgrMode(mode)
|
||||
end
|
||||
|
@ -193,11 +193,47 @@ byte = 224+0, 224+1, 224+2, 224+3, 224+4, 224+5, 224+6
|
||||
byte = 232+0, 232+1, 232+2, 232+3, 232+4, 232+5, 232+6
|
||||
byte = 240+0, 240+1, 240+2, 240+3, 240+4, 240+5, 240+6
|
||||
byte = 248+0, 248+1, 248+2, 248+3, 248+4, 248+5, 248+6
|
||||
///
|
||||
// Destination surface values
|
||||
//
|
||||
const DST_SCREEN = 0
|
||||
const DST_MEMORY = 1
|
||||
word surfWidth, surfWidth7, surfHeight, surfPtr, surfSpan
|
||||
byte dcgrSurface, opScr, opMem
|
||||
//
|
||||
// Surface independent entrypoints
|
||||
//
|
||||
asm plvmzp#0
|
||||
!SOURCE "vmsrc/plvmzp.inc"
|
||||
end
|
||||
export asm dcgrPlot(x, y)#0
|
||||
JMP $1000
|
||||
end
|
||||
export asm dcgrHLin(x1, x2, y)#0
|
||||
JMP $1000
|
||||
end
|
||||
export asm dcgrVlin(y1, y2, x)#0
|
||||
JMP $1000
|
||||
end
|
||||
export asm dcgrBitmap(x, y, bitw, bith, bitptr)#0
|
||||
JMP $1000
|
||||
end
|
||||
export asm dcgrPixmap(x, y, pixw, pixh, pixptr)#0
|
||||
JMP $1000
|
||||
end
|
||||
export asm dcgrScrBl7(x7, y, w7, h)#0
|
||||
JMP $1000
|
||||
end
|
||||
export asm dcgrMemBl7(x7, y, w7, h, memptr, memspan)#0
|
||||
JMP $1000
|
||||
end
|
||||
export asm dcgrClearBl7(x7, y, w7, h)#0
|
||||
JMP $1000
|
||||
end
|
||||
//
|
||||
// Internal routine to clip x7 and width7 to destination width in A REG
|
||||
//
|
||||
asm _clipX#0
|
||||
!SOURCE "vmsrc/plvmzp.inc"
|
||||
STA TMPL ; DST_WIDTH
|
||||
LDA ESTKH-1,X ; X COORD
|
||||
BMI NEGX ; IS NEG?
|
||||
@ -321,7 +357,7 @@ end
|
||||
//
|
||||
// Screen functions
|
||||
//
|
||||
export asm dcgrPlotScr(x, y)#0
|
||||
asm dcgrPlotScr(x, y)#0
|
||||
INX
|
||||
INX
|
||||
STX ESP
|
||||
@ -459,7 +495,7 @@ asm _dcgrOpPlotScrH
|
||||
LDX ESP
|
||||
RTS
|
||||
end
|
||||
export asm dcgrHLinScr(x1, x2, y)#0
|
||||
asm dcgrHLinScr(x1, x2, y)#0
|
||||
INX
|
||||
INX
|
||||
INX
|
||||
@ -484,7 +520,7 @@ asm _dcgrHLinScrB
|
||||
BNE -
|
||||
RTS
|
||||
end
|
||||
export asm dcgrVLinScr(y1, y2, x)#0
|
||||
asm dcgrVLinScr(y1, y2, x)#0
|
||||
INX
|
||||
INX
|
||||
INX
|
||||
@ -509,7 +545,7 @@ asm _dcgrVLinScrB
|
||||
BNE -
|
||||
RTS
|
||||
end
|
||||
export asm dcgrBitScr(x, y, bitw, bith, bitptr)#0
|
||||
asm dcgrBitmapScr(x, y, bitw, bith, bitptr)#0
|
||||
INX
|
||||
INX
|
||||
INX
|
||||
@ -538,7 +574,7 @@ YBITS LDY ESTKL-2,X ; Y COORD
|
||||
STA SRCH
|
||||
BNE NXTBITS ; BRA
|
||||
end
|
||||
asm _dcgrBitScrA
|
||||
asm _dcgrBitmapScrA
|
||||
+ LDA $1000,Y ; HGRSCANL
|
||||
STA DSTL
|
||||
LDA $2000,Y ; HGRSCANH
|
||||
@ -561,7 +597,7 @@ BITSCR LDY ESTKH-1,X ; CURRENT X COORD
|
||||
BCS +
|
||||
PHA
|
||||
end
|
||||
asm _dcgrBitScrB
|
||||
asm _dcgrBitmapScrB
|
||||
JSR $1000 ; PLOT PIXEL
|
||||
PLA
|
||||
+ INC ESTKH-1,X ; X++
|
||||
@ -572,7 +608,7 @@ NXTBITS DEC ESTKL-4,X ; HEIGHT
|
||||
BNE YBITS ; NEXT ROW
|
||||
RETBITS RTS
|
||||
end
|
||||
export asm dcgrPixScr(x, y, pixw, pixh, pixptr)#0
|
||||
asm dcgrPixmapScr(x, y, pixw, pixh, pixptr)#0
|
||||
INX
|
||||
INX
|
||||
INX
|
||||
@ -600,7 +636,7 @@ YPIXS LDY ESTKL-2,X ; Y COORD
|
||||
STA SRCH
|
||||
BNE NXTPIXS ; BRA
|
||||
end
|
||||
asm _dcgrPixScrA
|
||||
asm _dcgrPixmapScrA
|
||||
+ LDA $1000,Y ; HGRSCANL
|
||||
STA DSTL
|
||||
LDA $2000,Y ; HGRSCANH
|
||||
@ -616,11 +652,11 @@ PIXSCRL CMP #140 ; OFF SCREEN?
|
||||
BEQ PIXSCRH
|
||||
TAY
|
||||
end
|
||||
asm _dcgrPixScrB
|
||||
asm _dcgrPixmapScrB
|
||||
JSR $2000 ; SET COLOR
|
||||
LDY TMPL
|
||||
end
|
||||
asm _dcgrPixScrC
|
||||
asm _dcgrPixmapScrC
|
||||
JSR $1000 ; PLOT PIXEL
|
||||
PIXSCRH INC TMPL
|
||||
LDA TMPL
|
||||
@ -638,11 +674,11 @@ PIXSCRH INC TMPL
|
||||
BEQ +
|
||||
TAY
|
||||
end
|
||||
asm _dcgrPixScrD
|
||||
asm _dcgrPixmapScrD
|
||||
JSR $2000 ; SET COLOR
|
||||
LDY TMPL
|
||||
end
|
||||
asm _dcgrPixScrE
|
||||
asm _dcgrPixmapScrE
|
||||
JSR $1000 ; PLOT PIXEL
|
||||
+ INC SRCL
|
||||
BNE +
|
||||
@ -659,7 +695,7 @@ end
|
||||
// Memory destination functions
|
||||
// Memory Block format: AUX scanline followed by MAIN scanline
|
||||
//
|
||||
export asm dcgrPlotMem(x, y, memptr, memspan)#0
|
||||
asm dcgrPlotMem(x, y, memptr, memspan)#0
|
||||
INX
|
||||
INX
|
||||
INX
|
||||
@ -812,7 +848,7 @@ asm _dcgrOpPlotMemH
|
||||
LDX ESP
|
||||
RTS
|
||||
end
|
||||
export asm dcgrHLinMem(x1, x2, y, memptr, memspan)#0
|
||||
asm dcgrHLinMem(x1, x2, y, memptr, memspan)#0
|
||||
INX
|
||||
INX
|
||||
INX
|
||||
@ -849,7 +885,7 @@ asm _dcgrHLinMemB
|
||||
BNE -
|
||||
RTS
|
||||
end
|
||||
export asm dcgrVLinMem(y1, y2, x, memptr, memspan)#0
|
||||
asm dcgrVLinMem(y1, y2, x, memptr, memspan)#0
|
||||
INX
|
||||
INX
|
||||
INX
|
||||
@ -889,7 +925,7 @@ asm _dcgrVLinMemB
|
||||
BNE YVM
|
||||
+ RTS
|
||||
end
|
||||
export asm dcgrBitMem(x, y, bitw, bith, bitptr, memw, memh, memptr, memspan)#0
|
||||
asm dcgrBitmapMem(x, y, bitw, bith, bitptr, memw, memh, memptr, memspan)#0
|
||||
TXA
|
||||
CLC
|
||||
ADC #9
|
||||
@ -954,7 +990,7 @@ BITMEM LDA ESTKH-1,X ; CURRENT X COORD
|
||||
BCC +
|
||||
LDA ESTKL-9,X ; SPAN
|
||||
end
|
||||
asm _dcgrBitMemA
|
||||
asm _dcgrBitmapMemA
|
||||
JSR $1000 ; PLOT PIXEL
|
||||
+ INC ESTKH-1,X ; X++
|
||||
DEC TMPL
|
||||
@ -972,7 +1008,7 @@ NXTBITM CLC
|
||||
BNE YBITM ; NEXT ROW
|
||||
RETBITM RTS
|
||||
end
|
||||
export asm dcgrPixMem(x, y, pixw, pixh, pixptr, memw, memh, memptr, memspan)#0
|
||||
asm dcgrPixmapMem(x, y, pixw, pixh, pixptr, memw, memh, memptr, memspan)#0
|
||||
TXA
|
||||
CLC
|
||||
ADC #9
|
||||
@ -1014,7 +1050,7 @@ YPIXM LDA ESTKL-2,X ; Y COORD
|
||||
STA SRCH
|
||||
BNE NXTPIXM ; BRA
|
||||
end
|
||||
asm _dcgrPixMemA
|
||||
asm _dcgrPixmapMemA
|
||||
+ LDA ESTKL-1,X ; X COORD
|
||||
STA TMPL
|
||||
PIXMEML CMP ESTKL-6,X ; OUT OF DST BOUNDS?
|
||||
@ -1026,12 +1062,12 @@ PIXMEML CMP ESTKL-6,X ; OUT OF DST BOUNDS?
|
||||
BEQ PIXMEMH
|
||||
TAY
|
||||
end
|
||||
asm _dcgrPixMemB
|
||||
asm _dcgrPixmapMemB
|
||||
JSR $2000 ; SET COLOR
|
||||
LDA ESTKL-9,X ; SPAN
|
||||
LDY TMPL
|
||||
end
|
||||
asm _dcgrPixMemC
|
||||
asm _dcgrPixmapMemC
|
||||
JSR $1000 ; PLOT PIXEL
|
||||
PIXMEMH INC TMPL
|
||||
LDA TMPL
|
||||
@ -1049,12 +1085,12 @@ PIXMEMH INC TMPL
|
||||
BEQ +
|
||||
TAY
|
||||
end
|
||||
asm _dcgrPixMemD
|
||||
asm _dcgrPixmapMemD
|
||||
JSR $2000 ; SET COLOR
|
||||
LDA ESTKL-9,X ; SPAN
|
||||
LDY TMPL
|
||||
end
|
||||
asm _dcgrPixMemE
|
||||
asm _dcgrPixmapMemE
|
||||
JSR $1000 ; PLOT PIXEL
|
||||
+ INC SRCL ; PIXPTR
|
||||
BNE +
|
||||
@ -1082,7 +1118,7 @@ end
|
||||
//
|
||||
// Screen -> Memory Block7 Transfer
|
||||
//
|
||||
export asm dcgrScrBl7Mem(x7, y, w7, h, memptr, memspan)#0
|
||||
asm dcgrScrBl7Mem(x7, y, w7, h, memptr, memspan)#0
|
||||
TXA
|
||||
CLC
|
||||
ADC #6
|
||||
@ -1149,7 +1185,7 @@ end
|
||||
//
|
||||
// Memory -> Screen Block7 Transfer
|
||||
//
|
||||
export asm dcgrMemBl7Scr(x7, y, w7, h, memptr, memspan)#0
|
||||
asm dcgrMemBl7Scr(x7, y, w7, h, memptr, memspan)#0
|
||||
TXA
|
||||
CLC
|
||||
ADC #6
|
||||
@ -1306,7 +1342,7 @@ end
|
||||
//
|
||||
// Memory -> Memory Block7 function
|
||||
//
|
||||
export asm dcgrMemBl7Mem(x7, y, srcw7, srch, srcptr, srcspan, dstw7, dsth, dstptr)#0
|
||||
asm dcgrMemBl7Mem(x7, y, srcw7, srch, srcptr, srcspan, dstw7, dsth, dstptr)#0
|
||||
TXA
|
||||
CLC
|
||||
ADC #9
|
||||
@ -1505,7 +1541,7 @@ end
|
||||
//
|
||||
// Clear Screen/Memory Block7
|
||||
//
|
||||
export asm dcgrClearBl7Scr(x7, y, w7, h)#0
|
||||
asm dcgrClearBl7Scr(x7, y, w7, h)#0
|
||||
INX
|
||||
INX
|
||||
INX
|
||||
@ -1563,7 +1599,7 @@ asm _dcgrClearBl7ScrC
|
||||
BNE YFILS
|
||||
RETFILS RTS
|
||||
end
|
||||
export asm dcgrClearBl7Mem(x7, y, w7, h, memptr, memspan)#0
|
||||
asm dcgrClearBl7Mem(x7, y, w7, h, memptr, memspan)#0
|
||||
TXA
|
||||
CLC
|
||||
ADC #6
|
||||
@ -1652,7 +1688,34 @@ export asm dcgrVLB#0
|
||||
PLP
|
||||
RTS
|
||||
end
|
||||
export def dcgrOpScr(op)#0
|
||||
//
|
||||
// Hack to extend parameters for memory functions
|
||||
//
|
||||
def extPlotMem#0
|
||||
(@dcgrPlotMem)(surfPtr, surfSpan)#0
|
||||
end
|
||||
def extHLinMem#0
|
||||
(@dcgrHLinMem)(surfPtr, surfSpan)#0
|
||||
end
|
||||
def extVLinMem#0
|
||||
(@dcgrVLinMem)(surfPtr, surfSpan)#0
|
||||
end
|
||||
def extBitmapMem#0
|
||||
(@dcgrBitmapMem)(surfWidth, surfHeight, surfPtr, surfSpan)#0
|
||||
end
|
||||
def extPixmapMem#0
|
||||
(@dcgrPixmapMem)(surfWidth, surfHeight, surfPtr, surfSpan)#0
|
||||
end
|
||||
def extScrBl7Mem#0
|
||||
(@dcgrScrBl7Mem)(surfPtr, surfSpan)#0
|
||||
end
|
||||
def extMemBl7Mem#0
|
||||
(@dcgrMemBl7Mem)(surfWidth7, surfHeight, surfPtr)#0
|
||||
end
|
||||
def extClearBl7Mem#0
|
||||
(@dcgrClearBl7Mem)(surfPtr, surfSpan)#0
|
||||
end
|
||||
def dcgrOpScr(op)#0
|
||||
byte opcode
|
||||
|
||||
//
|
||||
@ -1668,9 +1731,9 @@ export def dcgrOpScr(op)#0
|
||||
_jmpOpPlotScr:1 = @_dcgrOpPlotScrB
|
||||
_dcgrHLinScrB:1 = @_dcgrOpPlotScrB
|
||||
_dcgrVLinScrB:1 = @_dcgrOpPlotScrB
|
||||
_dcgrBitScrB:1 = @_dcgrOpPlotScrB
|
||||
_dcgrPixScrC:1 = @_dcgrOpPlotScrB
|
||||
_dcgrPixScrE:1 = @_dcgrOpPlotScrB
|
||||
_dcgrBitmapScrB:1 = @_dcgrOpPlotScrB
|
||||
_dcgrPixmapScrC:1 = @_dcgrOpPlotScrB
|
||||
_dcgrPixmapScrE:1 = @_dcgrOpPlotScrB
|
||||
_dcgrOpPlotScrD.3 = opcode
|
||||
_dcgrOpPlotScrE.3 = opcode
|
||||
_dcgrOpPlotScrG.3 = opcode
|
||||
@ -1680,17 +1743,17 @@ export def dcgrOpScr(op)#0
|
||||
_dcgrOpMemBl7ScrD.0 = opcode
|
||||
break
|
||||
otherwise // OP_SRC
|
||||
_jmpOpPlotScr:1 = @_dcgrPlotScrB
|
||||
_dcgrHLinScrB:1 = @_dcgrPlotScrB
|
||||
_dcgrVLinScrB:1 = @_dcgrPlotScrB
|
||||
_dcgrBitScrB:1 = @_dcgrPlotScrB
|
||||
_dcgrPixScrC:1 = @_dcgrPlotScrB
|
||||
_dcgrPixScrE:1 = @_dcgrPlotScrB
|
||||
_jmpOpMemBl7Scr:1 = @_dcgrMemBl7ScrA
|
||||
_jmpOpPlotScr:1 = @_dcgrPlotScrB
|
||||
_dcgrHLinScrB:1 = @_dcgrPlotScrB
|
||||
_dcgrVLinScrB:1 = @_dcgrPlotScrB
|
||||
_dcgrBitmapScrB:1 = @_dcgrPlotScrB
|
||||
_dcgrPixmapScrC:1 = @_dcgrPlotScrB
|
||||
_dcgrPixmapScrE:1 = @_dcgrPlotScrB
|
||||
_jmpOpMemBl7Scr:1 = @_dcgrMemBl7ScrA
|
||||
|
||||
wend
|
||||
end
|
||||
export def dcgrOpMem(op)#0
|
||||
def dcgrOpMem(op)#0
|
||||
byte opcode
|
||||
|
||||
//
|
||||
@ -1706,9 +1769,9 @@ export def dcgrOpMem(op)#0
|
||||
_jmpOpPlotMem:1 = @_dcgrOpPlotMemB
|
||||
_dcgrHLinMemB:1 = @_dcgrOpPlotMemB
|
||||
_dcgrVLinMemB:1 = @_dcgrOpPlotMemB
|
||||
_dcgrBitMemA:1 = @_dcgrOpPlotMemB
|
||||
_dcgrPixMemC:1 = @_dcgrOpPlotMemB
|
||||
_dcgrPixMemE:1 = @_dcgrOpPlotMemB
|
||||
_dcgrBitmapMemA:1 = @_dcgrOpPlotMemB
|
||||
_dcgrPixmapMemC:1 = @_dcgrOpPlotMemB
|
||||
_dcgrPixmapMemE:1 = @_dcgrOpPlotMemB
|
||||
_dcgrOpPlotMemD.3 = opcode
|
||||
_dcgrOpPlotMemE.3 = opcode
|
||||
_dcgrOpPlotMemG.3 = opcode
|
||||
@ -1720,21 +1783,70 @@ export def dcgrOpMem(op)#0
|
||||
_dcgrOpMemBl7MemD.7 = opcode
|
||||
break
|
||||
otherwise // OP_SRC
|
||||
_jmpOpPlotMem:1 = @_dcgrPlotMemB
|
||||
_dcgrHLinMemB:1 = @_dcgrPlotMemB
|
||||
_dcgrVLinMemB:1 = @_dcgrPlotMemB
|
||||
_dcgrBitMemA:1 = @_dcgrPlotMemB
|
||||
_dcgrPixMemC:1 = @_dcgrPlotMemB
|
||||
_dcgrPixMemE:1 = @_dcgrPlotMemB
|
||||
_jmpOpMemBl7Mem:1 = @_dcgrMemBl7MemB
|
||||
_jmpOpPlotMem:1 = @_dcgrPlotMemB
|
||||
_dcgrHLinMemB:1 = @_dcgrPlotMemB
|
||||
_dcgrVLinMemB:1 = @_dcgrPlotMemB
|
||||
_dcgrBitmapMemA:1 = @_dcgrPlotMemB
|
||||
_dcgrPixmapMemC:1 = @_dcgrPlotMemB
|
||||
_dcgrPixmapMemE:1 = @_dcgrPlotMemB
|
||||
_jmpOpMemBl7Mem:1 = @_dcgrMemBl7MemB
|
||||
wend
|
||||
end
|
||||
export def dcgrAllocBl7Mem(w, h)#2
|
||||
word memblk, span
|
||||
|
||||
span = (w+13)/7 << 2
|
||||
memblk = heapalloc(span * h)
|
||||
return memblk, span
|
||||
export def dcgrOp(op)#0
|
||||
if dcgrSurface // Memory
|
||||
if op <> opMem
|
||||
opMem = op
|
||||
dcgrOpMem(opMem)
|
||||
fin
|
||||
else // Screen
|
||||
if op <> opScr
|
||||
opScr = op
|
||||
dcgrOpScr(opScr)
|
||||
fin
|
||||
fin
|
||||
end
|
||||
export def dcgrSurfScr(op)#0
|
||||
surfWidth = 140
|
||||
surfWidth7 = 20
|
||||
surfHeight = 192
|
||||
surfPtr = $2000
|
||||
surfSpan = 40
|
||||
if dcgrSurface == DST_MEMORY
|
||||
dcgrSurface = DST_SCREEN
|
||||
dcgrPlot:1 = @dcgrPlotScr
|
||||
dcgrHLin:1 = @dcgrHLinScr
|
||||
dcgrVLin:1 = @dcgrVLinScr
|
||||
dcgrBitmap:1 = @dcgrBitmapScr
|
||||
dcgrPixmap:1 = @dcgrPixmapScr
|
||||
dcgrMemBl7:1 = @dcgrMemBl7Scr
|
||||
dcgrClearBl7:1 = @dcgrClearBl7Scr
|
||||
fin
|
||||
if op <> opScr
|
||||
opScr = op
|
||||
dcgrOpScr(opScr)
|
||||
fin
|
||||
end
|
||||
export def dcgrSurfMem(op, memh, memptr, memspan)#0
|
||||
surfWidth7 = memspan >> 2
|
||||
surfWidth = surfWidth7 * 7
|
||||
surfHeight = memh
|
||||
surfPtr = memptr
|
||||
surfSpan = memspan
|
||||
if dcgrSurface == DST_SCREEN
|
||||
dcgrSurface = DST_MEMORY
|
||||
dcgrPlot:1 = @extPlotMem
|
||||
dcgrHLin:1 = @extHLinMem
|
||||
dcgrVLin:1 = @extVLinMem
|
||||
dcgrBitmap:1 = @extBitmapMem
|
||||
dcgrPixmap:1 = @extPixmapMem
|
||||
dcgrScrBl7:1 = @extScrBl7Mem
|
||||
dcgrMemBl7:1 = @extMemBl7Mem
|
||||
dcgrClearBl7:1 = @extClearBl7Mem
|
||||
fin
|
||||
if op <> opMem
|
||||
opMem = op
|
||||
dcgrOpMem(opMem)
|
||||
fin
|
||||
end
|
||||
export def dcgrMode(mode)
|
||||
if mode >= 0
|
||||
@ -1771,60 +1883,60 @@ fin
|
||||
//
|
||||
// Assembly symbol fixups
|
||||
//
|
||||
_dcgrColorA:1 = @auxclrsl
|
||||
_dcgrColorA:4 = @auxclrl
|
||||
_dcgrColorA:7 = @auxclrsh
|
||||
_dcgrColorA:10 = @auxclrh
|
||||
_dcgrColorA:13 = @memclrsl
|
||||
_dcgrColorA:16 = @memclrl
|
||||
_dcgrColorA:19 = @memclrsh
|
||||
_dcgrColorA:22 = @memclrh
|
||||
_dcgrColorA:1 = @auxclrsl
|
||||
_dcgrColorA:4 = @auxclrl
|
||||
_dcgrColorA:7 = @auxclrsh
|
||||
_dcgrColorA:10 = @auxclrh
|
||||
_dcgrColorA:13 = @memclrsl
|
||||
_dcgrColorA:16 = @memclrl
|
||||
_dcgrColorA:19 = @memclrsh
|
||||
_dcgrColorA:22 = @memclrh
|
||||
//
|
||||
// Screen function fixups
|
||||
//
|
||||
_dcgrPlotScrA:1 = @hgrscanl
|
||||
_dcgrPlotScrA:6 = @hgrscanh
|
||||
_dcgrPlotScrB:1 = @divmod7
|
||||
_dcgrPlotScrC:1 = @auxclrmsk
|
||||
_dcgrPlotScrD:1 = @auxclrl
|
||||
_dcgrPlotScrD:6 = @auxclrmsk
|
||||
_dcgrPlotScrE:1 = @auxclrh
|
||||
_dcgrPlotScrE:6 = @auxclrmsk
|
||||
_dcgrPlotScrF:1 = @memclrmsk
|
||||
_dcgrPlotScrG:1 = @memclrl
|
||||
_dcgrPlotScrG:6 = @memclrmsk
|
||||
_dcgrPlotScrH:1 = @memclrh
|
||||
_dcgrPlotScrH:6 = @memclrmsk
|
||||
_dcgrOpPlotScrB:1 = @divmod7
|
||||
_dcgrOpPlotScrC:1 = @auxclrmsk
|
||||
_dcgrOpPlotScrD:1 = @auxclrl
|
||||
_dcgrOpPlotScrE:1 = @auxclrh
|
||||
_dcgrOpPlotScrF:1 = @memclrmsk
|
||||
_dcgrOpPlotScrG:1 = @memclrl
|
||||
_dcgrOpPlotScrH:1 = @memclrh
|
||||
_dcgrHLinScrA:1 = @hgrscanl
|
||||
_dcgrHLinScrA:6 = @hgrscanh
|
||||
_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
|
||||
_dcgrPixScrC:1 = @_dcgrPlotScrB
|
||||
_dcgrPixScrD:1 = @_dcgrColorA
|
||||
_dcgrPixScrE:1 = @_dcgrPlotScrB
|
||||
_clipXClearBl7Scr:1 = @_clipX
|
||||
_clipYClearBl7Scr:1 = @_clipY
|
||||
_dcgrClearBl7ScrA:1 = @hgrscanl
|
||||
_dcgrClearBl7ScrA:8 = @hgrscanh
|
||||
_dcgrClearBl7ScrB:1 = @auxclrh
|
||||
_dcgrClearBl7ScrB:7 = @auxclrl
|
||||
_dcgrClearBl7ScrC:1 = @memclrh
|
||||
_dcgrClearBl7ScrC:7 = @memclrl
|
||||
_dcgrPlotScrA:1 = @hgrscanl
|
||||
_dcgrPlotScrA:6 = @hgrscanh
|
||||
_dcgrPlotScrB:1 = @divmod7
|
||||
_dcgrPlotScrC:1 = @auxclrmsk
|
||||
_dcgrPlotScrD:1 = @auxclrl
|
||||
_dcgrPlotScrD:6 = @auxclrmsk
|
||||
_dcgrPlotScrE:1 = @auxclrh
|
||||
_dcgrPlotScrE:6 = @auxclrmsk
|
||||
_dcgrPlotScrF:1 = @memclrmsk
|
||||
_dcgrPlotScrG:1 = @memclrl
|
||||
_dcgrPlotScrG:6 = @memclrmsk
|
||||
_dcgrPlotScrH:1 = @memclrh
|
||||
_dcgrPlotScrH:6 = @memclrmsk
|
||||
_dcgrOpPlotScrB:1 = @divmod7
|
||||
_dcgrOpPlotScrC:1 = @auxclrmsk
|
||||
_dcgrOpPlotScrD:1 = @auxclrl
|
||||
_dcgrOpPlotScrE:1 = @auxclrh
|
||||
_dcgrOpPlotScrF:1 = @memclrmsk
|
||||
_dcgrOpPlotScrG:1 = @memclrl
|
||||
_dcgrOpPlotScrH:1 = @memclrh
|
||||
_dcgrHLinScrA:1 = @hgrscanl
|
||||
_dcgrHLinScrA:6 = @hgrscanh
|
||||
_dcgrHLinScrB:1 = @_dcgrPlotScrB
|
||||
_dcgrVLinScrA:1 = @hgrscanl
|
||||
_dcgrVLinScrA:6 = @hgrscanh
|
||||
_dcgrVLinScrB:1 = @_dcgrPlotScrB
|
||||
_dcgrBitmapScrA:1 = @hgrscanl
|
||||
_dcgrBitmapScrA:6 = @hgrscanh
|
||||
_dcgrBitmapScrB:1 = @_dcgrPlotScrB
|
||||
_dcgrPixmapScrA:1 = @hgrscanl
|
||||
_dcgrPixmapScrA:6 = @hgrscanh
|
||||
_dcgrPixmapScrB:1 = @_dcgrColorA
|
||||
_dcgrPixmapScrC:1 = @_dcgrPlotScrB
|
||||
_dcgrPixmapScrD:1 = @_dcgrColorA
|
||||
_dcgrPixmapScrE:1 = @_dcgrPlotScrB
|
||||
_clipXClearBl7Scr:1 = @_clipX
|
||||
_clipYClearBl7Scr:1 = @_clipY
|
||||
_dcgrClearBl7ScrA:1 = @hgrscanl
|
||||
_dcgrClearBl7ScrA:8 = @hgrscanh
|
||||
_dcgrClearBl7ScrB:1 = @auxclrh
|
||||
_dcgrClearBl7ScrB:7 = @auxclrl
|
||||
_dcgrClearBl7ScrC:1 = @memclrh
|
||||
_dcgrClearBl7ScrC:7 = @memclrl
|
||||
//
|
||||
// Memory function fixups
|
||||
//
|
||||
@ -1848,11 +1960,11 @@ _dcgrOpPlotMemG:1 = @memclrl
|
||||
_dcgrOpPlotMemH:1 = @memclrh
|
||||
_dcgrHLinMemB:1 = @_dcgrPlotMemB
|
||||
_dcgrVLinMemB:1 = @_dcgrPlotMemB
|
||||
_dcgrBitMemA:1 = @_dcgrPlotMemB
|
||||
_dcgrPixMemB:1 = @_dcgrColorA
|
||||
_dcgrPixMemC:1 = @_dcgrPlotMemB
|
||||
_dcgrPixMemD:1 = @_dcgrColorA
|
||||
_dcgrPixMemE:1 = @_dcgrPlotMemB
|
||||
_dcgrBitmapMemA:1 = @_dcgrPlotMemB
|
||||
_dcgrPixmapMemB:1 = @_dcgrColorA
|
||||
_dcgrPixmapMemC:1 = @_dcgrPlotMemB
|
||||
_dcgrPixmapMemD:1 = @_dcgrColorA
|
||||
_dcgrPixmapMemE:1 = @_dcgrPlotMemB
|
||||
_dcgrClearBl7MemB:1 = @auxclrh
|
||||
_dcgrClearBl7MemB:6 = @memclrh
|
||||
_dcgrClearBl7MemB:12 = @auxclrl
|
||||
@ -1860,17 +1972,17 @@ _dcgrClearBl7MemB:17 = @memclrl
|
||||
//
|
||||
// Memory <-> Screen Block Transfer fixups
|
||||
//
|
||||
_dcgrScrBl7MemA:1 = @hgrscanl
|
||||
_dcgrScrBl7MemA:8 = @hgrscanh
|
||||
_clipXMemBl7Src:1 = @_clipX
|
||||
_clipYMemBl7Scr:1 = @_clipY
|
||||
_dcgrMemBl7ScrB:1 = @hgrscanl
|
||||
_dcgrMemBl7ScrB:8 = @hgrscanh
|
||||
_dcgrOpMemBl7ScrB:1 = @hgrscanl
|
||||
_dcgrOpMemBl7ScrB:8 = @hgrscanh
|
||||
_dcgrScrBl7MemA:1 = @hgrscanl
|
||||
_dcgrScrBl7MemA:8 = @hgrscanh
|
||||
_clipXMemBl7Src:1 = @_clipX
|
||||
_clipYMemBl7Scr:1 = @_clipY
|
||||
_dcgrMemBl7ScrB:1 = @hgrscanl
|
||||
_dcgrMemBl7ScrB:8 = @hgrscanh
|
||||
_dcgrOpMemBl7ScrB:1 = @hgrscanl
|
||||
_dcgrOpMemBl7ScrB:8 = @hgrscanh
|
||||
//
|
||||
// Memory <-> Memory Block Transfer fixups
|
||||
//
|
||||
_clipXMemBl7Mem:1 = @_clipX
|
||||
_clipYMemBl7Mem:1 = @_clipY
|
||||
_clipXMemBl7Mem:1 = @_clipX
|
||||
_clipYMemBl7Mem:1 = @_clipY
|
||||
done
|
||||
|
@ -138,6 +138,8 @@ byte = $00,$2C,$1A,$00,$00,$00,$00,$00,$00,$2A,$14,$2A,$14,$2A,$00,$00
|
||||
//
|
||||
// Test sprite
|
||||
//
|
||||
const SPR_WIDTH = 16
|
||||
const SPR_HEIGHT = 16
|
||||
byte[] sprite = $55,$55,$55,$05,$50,$55,$55,$55
|
||||
byte[] = $55,$55,$00,$00,$00,$00,$55,$55
|
||||
byte[] = $55,$00,$00,$AA,$AA,$00,$00,$55
|
||||
@ -154,79 +156,87 @@ byte[] = $05,$00,$AA,$AA,$AA,$AA,$00,$50
|
||||
byte[] = $55,$00,$00,$AA,$AA,$00,$00,$55
|
||||
byte[] = $55,$55,$00,$00,$00,$00,$55,$55
|
||||
byte[] = $55,$55,$55,$05,$50,$55,$55,$55
|
||||
|
||||
word sprite7mask[7]
|
||||
word sprite7msk[7]
|
||||
word sprite7[7]
|
||||
word sprite7span, sprite7width
|
||||
word sprite7span, sprite7w
|
||||
//
|
||||
// Sliding sprite Y coordinate
|
||||
//
|
||||
const SLIDE_Y = 170
|
||||
//
|
||||
// Utility functions
|
||||
//
|
||||
def dcgrAllocBl7Mem(w, h)#2
|
||||
word memblk, span
|
||||
|
||||
def dcgrStrScr(x, y, strptr)#0
|
||||
span = (w+13)/7 << 2
|
||||
memblk = heapalloc(span * h)
|
||||
return memblk, span
|
||||
end
|
||||
def dcgrStr(x, y, strptr)#0
|
||||
byte i
|
||||
|
||||
for i = 1 to ^strptr
|
||||
dcgrBitScr(x, y, 7, 8, @fontBits + (^(strptr + i) + 128) * 8)
|
||||
dcgrBitmap(x, y, 7, 8, @fontBits + (^(strptr + i) + 128) * 8)
|
||||
x = x + 7
|
||||
next
|
||||
end
|
||||
def dcgrBoldStrScr(x, y, strptr)#0
|
||||
def dcgrBoldStr(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)
|
||||
dcgrStr(h, v, strptr)
|
||||
next
|
||||
next
|
||||
dcgrColor(DCLR_BLACK)
|
||||
dcgrStrScr(x, y, strptr)
|
||||
dcgrStr(x, y, strptr)
|
||||
end
|
||||
def dcgrRectMem(x, y, w, h, dstptr, dstspan)#0
|
||||
def dcgrRect(x, y, w, h)#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
|
||||
dcgrHLin(x, x2, v)
|
||||
next
|
||||
end
|
||||
////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Test Harness //
|
||||
// //
|
||||
////////////////////////////////////////////////////////////////
|
||||
def compileSprite#0
|
||||
byte i
|
||||
|
||||
for i = 0 to 6
|
||||
dcgrOpMem(OP_SRC)
|
||||
sprite7[i], sprite7span = dcgrAllocBl7Mem(16, 16)
|
||||
sprite7mask[i], sprite7span = dcgrAllocBl7Mem(16, 16)
|
||||
sprite7width = sprite7span >> 2
|
||||
sprite7[i], sprite7span = dcgrAllocBl7Mem(SPR_WIDTH, SPR_HEIGHT)
|
||||
sprite7msk[i], sprite7span = dcgrAllocBl7Mem(SPR_WIDTH, SPR_HEIGHT)
|
||||
sprite7w = sprite7span >> 2
|
||||
dcgrSurfMem(OP_SRC, SPR_HEIGHT, sprite7[i], sprite7span)
|
||||
dcgrColor(DCLR_BLACK)
|
||||
dcgrClearBl7Mem(0, 0, sprite7width, 16, sprite7[i], sprite7span)
|
||||
dcgrClearBl7(0, 0, sprite7w, SPR_HEIGHT)
|
||||
dcgrPixmap(i + 2, 0, SPR_WIDTH, SPR_HEIGHT, @sprite)
|
||||
dcgrSurfMem(OP_SRC, SPR_HEIGHT, sprite7msk[i], sprite7span)
|
||||
dcgrColor(DCLR_WHITE)
|
||||
dcgrClearBl7Mem(0, 0, sprite7width, 16, sprite7mask[i], sprite7span)
|
||||
dcgrPixMem(i + 2, 0, 16, 16, @sprite, sprite7width * 7, 16, sprite7[i], sprite7span)
|
||||
dcgrPixMem(i + 2, 0, 16, 16, @sprite, sprite7width * 7, 16, sprite7mask[i], sprite7span)
|
||||
dcgrOpMem(OP_XOR)
|
||||
dcgrPixMem(i + 2, 0, 16, 16, @sprite, sprite7width * 7, 16, sprite7mask[i], sprite7span)
|
||||
|
||||
dcgrMemBl7Scr(0, i*16, sprite7width, 16, sprite7[i], sprite7span)
|
||||
dcgrMemBl7Scr(4, i*16, sprite7width, 16, sprite7mask[i], sprite7span)
|
||||
dcgrClearBl7(0, 0, sprite7w, SPR_HEIGHT)
|
||||
dcgrPixmap(i + 2, 0, SPR_WIDTH, SPR_HEIGHT, @sprite)
|
||||
dcgrOp(OP_XOR)
|
||||
dcgrPixmap(i + 2, 0, SPR_WIDTH, SPR_HEIGHT, @sprite)
|
||||
dcgrSurfScr(OP_SRC)
|
||||
dcgrMemBl7(0, i * SPR_HEIGHT, sprite7w, SPR_HEIGHT, sprite7[i], sprite7span)
|
||||
dcgrMemBl7(sprite7w, i * SPR_HEIGHT, sprite7w, SPR_HEIGHT, sprite7msk[i], sprite7span)
|
||||
next
|
||||
dcgrOpMem(OP_SRC)
|
||||
end
|
||||
def dcgrTest#0
|
||||
word i, j, k, i7, im7, k7, km7, s7w, inci, incj, inck
|
||||
word backblk, backspan, backw7, backofst
|
||||
word restrblk, restrspan, restrw7, restrw
|
||||
word backblk, backspan
|
||||
word restrblk, restrspan, restr7w, restrw
|
||||
byte mode
|
||||
|
||||
setlineplot(@dcgrPlotScr)
|
||||
setlinespans(@dcgrHLinScr, @dcgrVLinScr)
|
||||
dcgrSurfScr(OP_SRC)
|
||||
setlineplot(@dcgrPlot)
|
||||
setlinespans(@dcgrHLin, @dcgrVLin)
|
||||
for i = 0 to 191 step 2
|
||||
dcgrColor(i)
|
||||
linespans(0, 0, 139, i)
|
||||
@ -236,22 +246,22 @@ def dcgrTest#0
|
||||
linespans(0, 0, i, 191)
|
||||
next
|
||||
dcgrColor(DCLR_BLACK)
|
||||
dcgrClearBl7Scr(21/7, 30, 100/7, 132)
|
||||
dcgrClearBl7(21/7, 30, 100/7, 132)
|
||||
dcgrColor(DCLR_WHITE)
|
||||
dcgrHLinScr((21/7)*7-1, (21/7)*7+(100/7)*7, 29)
|
||||
dcgrHLinScr((21/7)*7-1, (21/7)*7+(100/7)*7, 29+133)
|
||||
dcgrVLinScr(29, 29+133, (21/7)*7-1)
|
||||
dcgrVLinScr(29, 29+133, (21/7)*7+(100/7)*7)
|
||||
dcgrBoldStrScr(30, 10, "Hello, DCGR!")
|
||||
dcgrHLin((21/7)*7-1, (21/7)*7+(100/7)*7, 29)
|
||||
dcgrHLin((21/7)*7-1, (21/7)*7+(100/7)*7, 29+133)
|
||||
dcgrVLin(29, 29+133, (21/7)*7-1)
|
||||
dcgrVLin(29, 29+133, (21/7)*7+(100/7)*7)
|
||||
dcgrBoldStr(30, 10, "Hello, DCGR!")
|
||||
i = 64; j = 64; k = 86
|
||||
k7 = k/7
|
||||
inci = 1; incj = 1; inck = 2
|
||||
backblk, backspan = dcgrAllocBl7Mem(SCR_WIDTH, 16)
|
||||
backw7 = backspan >> 2
|
||||
dcgrScrBl7Mem(0, 170, backw7, 16, backblk, backspan)
|
||||
restrblk, restrspan = dcgrAllocBl7Mem(16, 16)
|
||||
restrw7 = restrspan >> 2
|
||||
restrw = restrw7 * 7
|
||||
backblk, backspan = dcgrAllocBl7Mem(SCR_WIDTH, SPR_HEIGHT)
|
||||
dcgrSurfMem(OP_SRC, SPR_HEIGHT, backblk, backspan)
|
||||
dcgrScrBl7(0, SLIDE_Y, backspan >> 2, SPR_HEIGHT)
|
||||
restrblk, restrspan = dcgrAllocBl7Mem(SPR_WIDTH, SPR_HEIGHT)
|
||||
restr7w = restrspan >> 2
|
||||
restrw = restr7w * 7
|
||||
mode = 8
|
||||
while mode
|
||||
if ^$C000 >= 128
|
||||
@ -259,50 +269,59 @@ def dcgrTest#0
|
||||
fin
|
||||
k7, km7 = divmod(k, 7)
|
||||
i7, im7 = divmod(i, 7)
|
||||
if i7 + sprite7width < (21/7)+(100/7)
|
||||
s7w = sprite7width
|
||||
if i7 + sprite7w < (21/7)+(100/7)
|
||||
s7w = sprite7w
|
||||
else
|
||||
s7w = (21/7)+(100/7) - i7
|
||||
fin
|
||||
dcgrOpMem(OP_SRC)
|
||||
when mode
|
||||
is 1
|
||||
dcgrMemBl7Scr(i7, j, s7w, 16, sprite7[im7], sprite7span)
|
||||
dcgrSurfScr(OP_SRC)
|
||||
dcgrMemBl7(i7, j, s7w, SPR_HEIGHT, sprite7[im7], sprite7span)
|
||||
is 2
|
||||
if k < 0 and km7 // Handle off left edge special case
|
||||
k7--
|
||||
km7 = 7 + km7
|
||||
fin
|
||||
dcgrMemBl7Mem(0, 0, restrw7, 16, backblk + (k7 << 1), backspan, restrw7, 16, restrblk)
|
||||
dcgrOpMem(OP_AND)
|
||||
dcgrMemBl7Mem(0, 0, sprite7width, 16, sprite7mask[km7], sprite7span, restrw7, 16, restrblk)
|
||||
dcgrOpMem(OP_XOR)
|
||||
dcgrMemBl7Mem(0, 0, sprite7width, 16, sprite7[km7], sprite7span, restrw7, 16, restrblk)
|
||||
dcgrOpMem(OP_SRC)
|
||||
dcgrMemBl7Scr(k7, 170, restrw7, 16, restrblk, restrspan)
|
||||
dcgrSurfMem(OP_SRC, SPR_HEIGHT, restrblk, restrspan)
|
||||
dcgrMemBl7(0, 0, restr7w, SPR_HEIGHT, backblk + (k7 << 1), backspan)
|
||||
dcgrOp(OP_AND)
|
||||
dcgrMemBl7(0, 0, sprite7w, SPR_HEIGHT, sprite7msk[km7], sprite7span)
|
||||
dcgrOp(OP_XOR)
|
||||
dcgrMemBl7(0, 0, sprite7w, SPR_HEIGHT, sprite7[km7], sprite7span)
|
||||
dcgrSurfScr(OP_SRC)
|
||||
dcgrMemBl7(k7, SLIDE_Y, restr7w, SPR_HEIGHT, restrblk, restrspan)
|
||||
break
|
||||
is 3
|
||||
dcgrPixScr(i + 2, j, 16, 16, @sprite)
|
||||
dcgrSurfScr(OP_SRC)
|
||||
dcgrPixmap(i, j, SPR_WIDTH, SPR_HEIGHT, @sprite)
|
||||
is 4
|
||||
dcgrMemBl7Mem(0, 0, restrw7, 16, backblk + (k7 << 1), backspan, restrw7, 16, restrblk)
|
||||
dcgrPixMem(km7 + 2, 0, 16, 16, @sprite, restrw, 16, restrblk, restrspan)
|
||||
dcgrMemBl7Scr(k7, 170, restrw7, 16, restrblk, restrspan)
|
||||
dcgrSurfMem(OP_SRC, SPR_HEIGHT, restrblk, restrspan)
|
||||
dcgrMemBl7(0, 0, restr7w, SPR_HEIGHT, backblk + (k7 << 1), backspan)
|
||||
dcgrPixmap(km7 + 2, 0, SPR_HEIGHT, SPR_HEIGHT, @sprite)
|
||||
dcgrSurfScr(OP_SRC)
|
||||
dcgrMemBl7(k7, SLIDE_Y, restr7w, SPR_HEIGHT, restrblk, restrspan)
|
||||
break
|
||||
is 5
|
||||
dcgrPixScr(i + 2, j, 16, 16, @sprite)
|
||||
dcgrSurfScr(OP_SRC)
|
||||
dcgrPixmap(i, j, SPR_WIDTH, SPR_HEIGHT, @sprite)
|
||||
is 6
|
||||
dcgrMemBl7Mem(0, 0, restrw7, 16, backblk + (k7 << 1), backspan, restrw7, 16, restrblk)
|
||||
dcgrSurfMem(OP_SRC, SPR_HEIGHT, restrblk, restrspan)
|
||||
dcgrMemBl7(0, 0, restr7w, SPR_HEIGHT, backblk + (k7 << 1), backspan)
|
||||
dcgrColor(DCLR_BLACK)
|
||||
dcgrRectMem(km7 + 2, 3, 14 + 2, 10, restrblk, restrspan)
|
||||
dcgrRect(km7 + 2, 3, 14 + 2, 10)
|
||||
dcgrColor(DCLR_WHITE)
|
||||
dcgrStrMem(km7 + 3, 4, "DC", restrw, 16, restrblk, restrspan)
|
||||
dcgrMemBl7Scr(k7, 170, restrw7, 16, restrblk, restrspan)
|
||||
dcgrStr(km7 + 3, 4, "DC")
|
||||
dcgrSurfScr(OP_SRC)
|
||||
dcgrMemBl7(k7, SLIDE_Y, restr7w, SPR_HEIGHT, restrblk, restrspan)
|
||||
break
|
||||
is 7
|
||||
dcgrMemBl7Scr(i7, j, s7w, 16, sprite7[im7], sprite7span)
|
||||
dcgrSurfScr(OP_SRC)
|
||||
dcgrMemBl7(i7, j, s7w, SPR_HEIGHT, sprite7[im7], sprite7span)
|
||||
break
|
||||
is 8
|
||||
dcgrPixScr(i, j, 16, 16, @sprite)
|
||||
dcgrSurfScr(OP_SRC)
|
||||
dcgrPixmap(i, j, SPR_WIDTH, SPR_HEIGHT, @sprite)
|
||||
break
|
||||
wend
|
||||
if k > 136 or k < -16; inck = -inck; fin
|
||||
|
Loading…
x
Reference in New Issue
Block a user