mirror of
https://github.com/dschmenk/PLASMA.git
synced 2026-04-19 09:23:06 +00:00
Rename DHGR as DCGR and break out test
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
import dcgrlib
|
||||
const OP_SRC = 0
|
||||
const OP_XOR = 1
|
||||
const OP_AND = 2
|
||||
const OP_OR = 3
|
||||
const DCLR_BLACK = 0
|
||||
const DCLR_MAGENTA = 1
|
||||
const DCLR_BROWN = 2
|
||||
const DCLR_ORANGE = 3
|
||||
const DCLR_DRKGREEN = 4
|
||||
const DCLR_GREY1 = 5
|
||||
const DCLR_XPARENT = 5
|
||||
const DCLR_GREEN = 6
|
||||
const DCLR_YELLOW = 7
|
||||
const DCLR_DRKBLUE = 8
|
||||
const DCLR_PURPLE = 9
|
||||
const DCLR_GREY2 = 10
|
||||
const DCLR_PINK = 11
|
||||
const DCLR_MEDBLUE = 12
|
||||
const DCLR_LTBLUE = 13
|
||||
const DCLR_ACQUA = 14
|
||||
const DCLR_WHITE = 15
|
||||
|
||||
predef dcgrColor(c)#0
|
||||
predef dcgrPlot(x, y)#0
|
||||
predef dcgrHlin(x1, x2, y)#0
|
||||
predef dcgrVlin(y1, y2, x)#0
|
||||
predef dcgrPixBLT(x, y, w, h, pixptr)#0
|
||||
predef dcgrBLTMem(x7, y, w7, h, dstptr)#0
|
||||
predef dcgrMemBLT(x7, y, w7, h, srcptr)#0
|
||||
predef dcgrVLB#0
|
||||
predef dcgrOp(op)#0
|
||||
predef dcgrMode(mode)
|
||||
end
|
||||
@@ -1,869 +0,0 @@
|
||||
include "inc/cmdsys.plh"
|
||||
include "inc/lines.plh"
|
||||
|
||||
sysflags resxtxt1|reshgr1|resxhgr1
|
||||
|
||||
const OP_SRC = 0
|
||||
const OP_XOR = 1
|
||||
const OP_AND = 2
|
||||
const OP_OR = 3
|
||||
//
|
||||
// Test sprite
|
||||
//
|
||||
byte[] sprite = $55,$55,$00,$00,$00,$00,$55,$55
|
||||
byte[] = $55,$55,$00,$00,$00,$00,$55,$55
|
||||
byte[] = $55,$00,$00,$AA,$AA,$00,$00,$55
|
||||
byte[] = $55,$00,$AA,$AA,$AA,$AA,$00,$55
|
||||
byte[] = $00,$00,$AA,$FF,$FF,$AA,$00,$00
|
||||
byte[] = $00,$AA,$FF,$FF,$FF,$FF,$AA,$00
|
||||
byte[] = $00,$AA,$1F,$12,$12,$F2,$AA,$00
|
||||
byte[] = $00,$AA,$2F,$21,$21,$F1,$AA,$00
|
||||
byte[] = $00,$AA,$1F,$12,$12,$F2,$AA,$00
|
||||
byte[] = $00,$AA,$2F,$21,$21,$F1,$AA,$00
|
||||
byte[] = $00,$AA,$FF,$FF,$FF,$FF,$AA,$00
|
||||
byte[] = $00,$00,$AA,$FF,$FF,$AA,$00,$00
|
||||
byte[] = $55,$00,$AA,$AA,$AA,$AA,$00,$55
|
||||
byte[] = $55,$00,$00,$AA,$AA,$00,$00,$55
|
||||
byte[] = $55,$55,$00,$00,$00,$00,$55,$55
|
||||
byte[] = $55,$55,$00,$00,$00,$00,$55,$55
|
||||
|
||||
//
|
||||
// Apple II graphics soft switches
|
||||
//
|
||||
const store80dis = $C000
|
||||
const store80ena = $C001
|
||||
const show40col = $C00C
|
||||
const show80col = $C00D
|
||||
const showgraphics = $C050
|
||||
const showtext = $C051
|
||||
const showfull = $C052
|
||||
const showmix = $C053
|
||||
const page1m = $C054
|
||||
const page1x = $C055
|
||||
const showhires = $C057
|
||||
const dhresena = $C05E
|
||||
const dhresdis = $C05F
|
||||
const IOUdis = $C07E
|
||||
const IOUena = $C07F
|
||||
//
|
||||
// HiRes scanline addresses
|
||||
//
|
||||
byte hgrscanl[]= $00,$00,$00,$00,$00,$00,$00,$00
|
||||
byte = $80,$80,$80,$80,$80,$80,$80,$80
|
||||
byte = $00,$00,$00,$00,$00,$00,$00,$00
|
||||
byte = $80,$80,$80,$80,$80,$80,$80,$80
|
||||
byte = $00,$00,$00,$00,$00,$00,$00,$00
|
||||
byte = $80,$80,$80,$80,$80,$80,$80,$80
|
||||
byte = $00,$00,$00,$00,$00,$00,$00,$00
|
||||
byte = $80,$80,$80,$80,$80,$80,$80,$80
|
||||
byte = $28,$28,$28,$28,$28,$28,$28,$28
|
||||
byte = $A8,$A8,$A8,$A8,$A8,$A8,$A8,$A8
|
||||
byte = $28,$28,$28,$28,$28,$28,$28,$28
|
||||
byte = $A8,$A8,$A8,$A8,$A8,$A8,$A8,$A8
|
||||
byte = $28,$28,$28,$28,$28,$28,$28,$28
|
||||
byte = $A8,$A8,$A8,$A8,$A8,$A8,$A8,$A8
|
||||
byte = $28,$28,$28,$28,$28,$28,$28,$28
|
||||
byte = $A8,$A8,$A8,$A8,$A8,$A8,$A8,$A8
|
||||
byte = $50,$50,$50,$50,$50,$50,$50,$50
|
||||
byte = $D0,$D0,$D0,$D0,$D0,$D0,$D0,$D0
|
||||
byte = $50,$50,$50,$50,$50,$50,$50,$50
|
||||
byte = $D0,$D0,$D0,$D0,$D0,$D0,$D0,$D0
|
||||
byte = $50,$50,$50,$50,$50,$50,$50,$50
|
||||
byte = $D0,$D0,$D0,$D0,$D0,$D0,$D0,$D0
|
||||
byte = $50,$50,$50,$50,$50,$50,$50,$50
|
||||
byte = $D0,$D0,$D0,$D0,$D0,$D0,$D0,$D0
|
||||
byte hgrscanh[]= $20,$24,$28,$2C,$30,$34,$38,$3C
|
||||
byte = $20,$24,$28,$2C,$30,$34,$38,$3C
|
||||
byte = $21,$25,$29,$2D,$31,$35,$39,$3D
|
||||
byte = $21,$25,$29,$2D,$31,$35,$39,$3D
|
||||
byte = $22,$26,$2A,$2E,$32,$36,$3A,$3E
|
||||
byte = $22,$26,$2A,$2E,$32,$36,$3A,$3E
|
||||
byte = $23,$27,$2B,$2F,$33,$37,$3B,$3F
|
||||
byte = $23,$27,$2B,$2F,$33,$37,$3B,$3F
|
||||
byte = $20,$24,$28,$2C,$30,$34,$38,$3C
|
||||
byte = $20,$24,$28,$2C,$30,$34,$38,$3C
|
||||
byte = $21,$25,$29,$2D,$31,$35,$39,$3D
|
||||
byte = $21,$25,$29,$2D,$31,$35,$39,$3D
|
||||
byte = $22,$26,$2A,$2E,$32,$36,$3A,$3E
|
||||
byte = $22,$26,$2A,$2E,$32,$36,$3A,$3E
|
||||
byte = $23,$27,$2B,$2F,$33,$37,$3B,$3F
|
||||
byte = $23,$27,$2B,$2F,$33,$37,$3B,$3F
|
||||
byte = $20,$24,$28,$2C,$30,$34,$38,$3C
|
||||
byte = $20,$24,$28,$2C,$30,$34,$38,$3C
|
||||
byte = $21,$25,$29,$2D,$31,$35,$39,$3D
|
||||
byte = $21,$25,$29,$2D,$31,$35,$39,$3D
|
||||
byte = $22,$26,$2A,$2E,$32,$36,$3A,$3E
|
||||
byte = $22,$26,$2A,$2E,$32,$36,$3A,$3E
|
||||
byte = $23,$27,$2B,$2F,$33,$37,$3B,$3F
|
||||
byte = $23,$27,$2B,$2F,$33,$37,$3B,$3F
|
||||
//
|
||||
// Pixel masks for 7 contiguous pixels
|
||||
//
|
||||
byte auxclrmsk[] = $0F
|
||||
byte = $70
|
||||
byte = $00
|
||||
byte = $03|$80
|
||||
byte = $3C|$80
|
||||
byte = $40|$80
|
||||
byte = $00
|
||||
byte memclrmsk[] = $00
|
||||
byte = $01
|
||||
byte = $1E
|
||||
byte = $60
|
||||
byte = $00
|
||||
byte = $07|$80
|
||||
byte = $78|$80
|
||||
//
|
||||
// Solid colors
|
||||
//
|
||||
byte auxclrsl[] = $00 // black
|
||||
byte = $08 // magenta
|
||||
byte = $44 // brown
|
||||
byte = $4C // orange
|
||||
byte = $22 // dark green
|
||||
byte = $2A // gray 1
|
||||
byte = $66 // green
|
||||
byte = $6E // yellow
|
||||
byte = $11 // dark blue
|
||||
byte = $19 // purple
|
||||
byte = $55 // gray 2
|
||||
byte = $5D // pink
|
||||
byte = $33 // medium blue
|
||||
byte = $3B // light blue
|
||||
byte = $77 // aqua
|
||||
byte = $7F // white
|
||||
byte auxclrsh[] = $00 // black
|
||||
byte = $22 // magenta
|
||||
byte = $11 // brown
|
||||
byte = $33 // orange
|
||||
byte = $08 // dark green
|
||||
byte = $2A // gray 1
|
||||
byte = $19 // green
|
||||
byte = $3B // yellow
|
||||
byte = $44 // dark blue
|
||||
byte = $66 // purple
|
||||
byte = $55 // gray 2
|
||||
byte = $77 // pink
|
||||
byte = $4C // medium blue
|
||||
byte = $6E // light blue
|
||||
byte = $5D // aqua
|
||||
byte = $7F // white
|
||||
byte memclrsl[] = $00 // black
|
||||
byte = $11 // magenta
|
||||
byte = $08 // brown
|
||||
byte = $19 // orange
|
||||
byte = $44 // dark green
|
||||
byte = $55 // gray 1
|
||||
byte = $4C // green
|
||||
byte = $5D // yellow
|
||||
byte = $22 // dark blue
|
||||
byte = $33 // purple
|
||||
byte = $2A // gray 2
|
||||
byte = $3B // pink
|
||||
byte = $66 // medium blue
|
||||
byte = $77 // light blue
|
||||
byte = $6E // aqua
|
||||
byte = $7F // white
|
||||
byte memclrsh[] = $00 // black
|
||||
byte = $44 // magenta
|
||||
byte = $22 // brown
|
||||
byte = $66 // orange
|
||||
byte = $11 // dark green
|
||||
byte = $55 // gray 1
|
||||
byte = $33 // green
|
||||
byte = $77 // yellow
|
||||
byte = $08 // dark blue
|
||||
byte = $4C // purple
|
||||
byte = $2A // gray 2
|
||||
byte = $6E // pink
|
||||
byte = $19 // medium blue
|
||||
byte = $5D // light blue
|
||||
byte = $3B // aqua
|
||||
byte = $7F // white
|
||||
byte auxclrl, auxclrh, memclrl, memclrh
|
||||
//
|
||||
// Divide 7 combined with Modulo 7
|
||||
//
|
||||
byte divmod7[] = 0+0, 0+1, 0+2, 0+3, 0+4, 0+5, 0+6
|
||||
byte = 8+0, 8+1, 8+2, 8+3, 8+4, 8+5, 8+6
|
||||
byte = 16+0, 16+1, 16+2, 16+3, 16+4, 16+5, 16+6
|
||||
byte = 24+0, 24+1, 24+2, 24+3, 24+4, 24+5, 24+6
|
||||
byte = 32+0, 32+1, 32+2, 32+3, 32+4, 32+5, 32+6
|
||||
byte = 40+0, 40+1, 40+2, 40+3, 40+4, 40+5, 40+6
|
||||
byte = 48+0, 48+1, 48+2, 48+3, 48+4, 48+5, 48+6
|
||||
byte = 56+0, 56+1, 56+2, 56+3, 56+4, 56+5, 56+6
|
||||
byte = 64+0, 64+1, 64+2, 64+3, 64+4, 64+5, 64+6
|
||||
byte = 72+0, 72+1, 72+2, 72+3, 72+4, 72+5, 72+6
|
||||
byte = 80+0, 80+1, 80+2, 80+3, 80+4, 80+5, 80+6
|
||||
byte = 88+0, 88+1, 88+2, 88+3, 88+4, 88+5, 88+6
|
||||
byte = 96+0, 96+1, 96+2, 96+3, 96+4, 96+5, 96+6
|
||||
byte = 104+0, 104+1, 104+2, 104+3, 104+4, 104+5, 104+6
|
||||
byte = 112+0, 112+1, 112+2, 112+3, 112+4, 112+5, 112+6
|
||||
byte = 120+0, 120+1, 120+2, 120+3, 120+4, 120+5, 120+6
|
||||
byte = 128+0, 128+1, 128+2, 128+3, 128+4, 128+5, 128+6
|
||||
byte = 136+0, 136+1, 136+2, 136+3, 136+4, 136+5, 136+6
|
||||
byte = 144+0, 144+1, 144+2, 144+3, 144+4, 144+5, 144+6
|
||||
byte = 152+0, 152+1, 152+2, 152+3, 152+4, 152+5, 152+6
|
||||
|
||||
export asm dcgrColor(c)#0
|
||||
!SOURCE "vmsrc/plvmzp.inc"
|
||||
LDA ESTKL,X
|
||||
INX
|
||||
AND #$0F
|
||||
TAY
|
||||
end
|
||||
asm _dcgrColorA
|
||||
LDA $1000,Y ; AUXCLRSL
|
||||
STA $5000 ; AUXCLRL
|
||||
LDA $2000,Y ; AUXCLRSH
|
||||
STA $5001 ; AUXCLRH
|
||||
LDA $3000,Y ; MEMCLRSL
|
||||
STA $5002 ; MEMCLRL
|
||||
LDA $4000,Y ; MEMCLRSH
|
||||
STA $5003 ; MEMCLRH
|
||||
RTS
|
||||
end
|
||||
export asm dcgrPlot(x, y)#0
|
||||
INX
|
||||
INX
|
||||
STX ESP
|
||||
LDY ESTKL-2,X ; Y COORD
|
||||
CPY #192
|
||||
BCS +
|
||||
end
|
||||
asm _dcgrPlotA
|
||||
LDA $1000,Y ; HGRSCANL
|
||||
STA DSTL
|
||||
LDA $2000,Y ; HGRSCANH
|
||||
STA DSTH
|
||||
LDY ESTKL-1,X ; X COORD
|
||||
CPY #140
|
||||
BCS +
|
||||
end
|
||||
asm _dcgrPlotB
|
||||
LDA $3000,Y ; DIVMOD7
|
||||
TAX
|
||||
AND #$F8
|
||||
LSR
|
||||
LSR
|
||||
TAY ; DIV7
|
||||
TXA
|
||||
AND #$07
|
||||
TAX ; PIX7
|
||||
end
|
||||
asm _jmpPlotOp
|
||||
JMP $A000
|
||||
end
|
||||
//
|
||||
// Plot OP_SRC
|
||||
//
|
||||
asm _dcgrPlotC
|
||||
LDA $4000,X ; AUXCLRMSK
|
||||
BEQ ++
|
||||
STA $C055 ; PAGE1X
|
||||
BMI +++
|
||||
end
|
||||
asm _dcgrPlotD
|
||||
LDA $5000 ; AUXCLRL
|
||||
EOR (DST),Y
|
||||
AND $4000,X ; AUXCLRMSK
|
||||
EOR (DST),Y
|
||||
STA (DST),Y
|
||||
BNE ++
|
||||
BEQ ++
|
||||
+++ INY
|
||||
end
|
||||
asm _dcgrPlotE
|
||||
LDA $5001 ; AUXCLRH
|
||||
EOR (DST),Y
|
||||
AND $4000,X ; AUXCLRMSK
|
||||
EOR (DST),Y
|
||||
STA (DST),Y
|
||||
DEY
|
||||
end
|
||||
asm _dcgrPlotF
|
||||
++ LDA $4001,X ; MEMCLRMSK
|
||||
BEQ +
|
||||
STA $C054 ; PAGE1M
|
||||
BMI +++
|
||||
end
|
||||
asm _dcgrPlotG
|
||||
LDA $5002 ; MEMCLRL
|
||||
EOR (DST),Y
|
||||
AND $4000,X ; MEMCLRMSK
|
||||
EOR (DST),Y
|
||||
STA (DST),Y
|
||||
LDX ESP
|
||||
RTS
|
||||
+++ INY
|
||||
end
|
||||
asm _dcgrPlotH
|
||||
LDA $5003 ; MEMCLRH
|
||||
EOR (DST),Y
|
||||
AND $4000,X ; MEMCLRMSK
|
||||
EOR (DST),Y
|
||||
STA (DST),Y
|
||||
+ LDX ESP
|
||||
RTS
|
||||
end
|
||||
//
|
||||
// Plot OP_XOR,OP_AND,OP_OR
|
||||
//
|
||||
asm _dcgrPlotOpC
|
||||
LDA $4000,X ; AUXCLRMSK
|
||||
BEQ ++
|
||||
STA $C055 ; PAGE1X
|
||||
BMI +++
|
||||
end
|
||||
asm _dcgrPlotOpD
|
||||
AND $5000 ; AUXCLRL
|
||||
EOR (DST),Y
|
||||
STA (DST),Y
|
||||
BNE ++
|
||||
BEQ ++
|
||||
+++ INY
|
||||
end
|
||||
asm _dcgrPlotOpE
|
||||
AND $5001 ; AUXCLRH
|
||||
EOR (DST),Y
|
||||
STA (DST),Y
|
||||
DEY
|
||||
end
|
||||
asm _dcgrPlotOpF
|
||||
++ LDA $4001,X ; MEMCLRMSK
|
||||
BEQ +
|
||||
STA $C054 ; PAGE1M
|
||||
BMI +++
|
||||
end
|
||||
asm _dcgrPlotOpG
|
||||
AND $5002 ; MEMCLRL
|
||||
EOR (DST),Y
|
||||
STA (DST),Y
|
||||
+ LDX ESP
|
||||
RTS
|
||||
+++ INY
|
||||
end
|
||||
asm _dcgrPlotOpH
|
||||
AND $5003 ; MEMCLRH
|
||||
EOR (DST),Y
|
||||
STA (DST),Y
|
||||
LDX ESP
|
||||
RTS
|
||||
end
|
||||
export asm dcgrHlin(x1, x2, y)#0
|
||||
INX
|
||||
INX
|
||||
INX
|
||||
STX ESP
|
||||
LDY ESTKL-3,X ; Y COORD
|
||||
CPY #192
|
||||
BCS +
|
||||
INC ESTKL-2,X ; ADJUST BCS BELOW
|
||||
end
|
||||
asm _dcgrHLinA
|
||||
LDA $1000,Y ; HGRSCANL
|
||||
STA DSTL
|
||||
LDA $2000,Y ; HGRSCANH
|
||||
STA DSTH
|
||||
- LDA ESTKL-1,X ; X1 COORD
|
||||
CMP #140
|
||||
BCS +
|
||||
CMP ESTKL-2,X ; X2 COORD
|
||||
BCS +
|
||||
TAY
|
||||
end
|
||||
asm _dcgrHLinB
|
||||
JSR $1000 ; PLOT PIX W/ XCOORD IN Y REG
|
||||
INC ESTKL-1,X
|
||||
BNE -
|
||||
+ RTS
|
||||
end
|
||||
export asm dcgrVlin(y1, y2, x)#0
|
||||
INX
|
||||
INX
|
||||
INX
|
||||
STX ESP
|
||||
INC ESTKL-2,X ; ADJUST BCS BELOW
|
||||
- LDA ESTKL-1,X ; Y1 COORD
|
||||
CMP #192
|
||||
BCS +
|
||||
CMP ESTKL-2,X ; Y2 COORD
|
||||
BCS +
|
||||
TAY
|
||||
end
|
||||
asm _dcgrVLinA
|
||||
LDA $1000,Y ; HGRSCANL
|
||||
STA DSTL
|
||||
LDA $2000,Y ; HGRSCANH
|
||||
STA DSTH
|
||||
LDY ESTKL-3,X ; X COORD
|
||||
CPY #140
|
||||
BCS +
|
||||
end
|
||||
asm _dcgrVLinB
|
||||
JSR $1000 ; PLOT PIX W/ XCOORD IN Y REG
|
||||
INC ESTKL-1,X
|
||||
BNE -
|
||||
+ RTS
|
||||
end
|
||||
export asm dcgrPixBLT(x, y, w, h, pixptr)#0
|
||||
INX
|
||||
INX
|
||||
INX
|
||||
INX
|
||||
INX
|
||||
STX ESP
|
||||
LDA ESTKL-5,X ; PIXPTR
|
||||
STA SRCL
|
||||
LDA ESTKH-5,X
|
||||
STA SRCH
|
||||
LDA ESTKL-1,X ; X COORD
|
||||
CLC
|
||||
ADC ESTKL-3,X ; WIDTH
|
||||
STA ESTKL-3,X ; -> RIGHT EDGE
|
||||
LDA ESTKL-2,X ; Y COORD
|
||||
CLC
|
||||
ADC ESTKL-4,X ; HEIGHT
|
||||
STA ESTKL-4,X ; -> BOTTOM EDGE
|
||||
- LDA ESTKL-2,X ; Y COORD
|
||||
CMP ESTKL-4,X ; AT BOTTOM?
|
||||
BCS +++
|
||||
INC ESTKL-2,X ; Y COORD++
|
||||
CMP #192 ; OFF SCREEN?
|
||||
BCS -
|
||||
TAY
|
||||
end
|
||||
asm _dcgrPixBLTA
|
||||
LDA $1000,Y ; HGRSCANL
|
||||
STA DSTL
|
||||
LDA $2000,Y ; HGRSCANH
|
||||
STA DSTH
|
||||
LDA ESTKL-1,X ; X COORD
|
||||
STA TMPL
|
||||
PIXL CMP #140 ; OFF SCREEN?
|
||||
BCS PIXH
|
||||
LDY #$00 ; LO NIBBLE SRC PIXEL
|
||||
LDA (SRC),Y
|
||||
AND #$0F
|
||||
CMP #$05 ; TRANSPARENT?
|
||||
BEQ PIXH
|
||||
TAY
|
||||
end
|
||||
asm _dcgrPixBLTB
|
||||
JSR $2000 ; SET COLOR
|
||||
LDY TMPL
|
||||
end
|
||||
asm _dcgrPixBLTC
|
||||
JSR $1000 ; PLOT PIXEL
|
||||
PIXH INC TMPL
|
||||
LDA TMPL
|
||||
CMP ESTKL-3,X ; AT RIGHT EDGE?
|
||||
BCS - ; NEXT ROW
|
||||
CMP #140 ; OFF SCREEN?
|
||||
BCS +
|
||||
LDY #$00 ; HI NIBBLE SRC PIXEL
|
||||
LDA (SRC),Y
|
||||
LSR
|
||||
LSR
|
||||
LSR
|
||||
LSR
|
||||
CMP #$05 ; TRANSPARENT?
|
||||
BEQ +
|
||||
TAY
|
||||
end
|
||||
asm _dcgrPixBLTD
|
||||
JSR $2000 ; SET COLOR
|
||||
LDY TMPL
|
||||
end
|
||||
asm _dcgrPixBLTE
|
||||
JSR $1000 ; PLOT PIXEL
|
||||
+ INC SRCL
|
||||
BNE ++
|
||||
INC SRCH
|
||||
++ INC TMPL
|
||||
LDA TMPL
|
||||
CMP ESTKL-3,X ; AT RIGHT EDGE?
|
||||
BCC PIXL
|
||||
BCS - ; NEXT ROW
|
||||
+++ RTS
|
||||
end
|
||||
export asm dcgrBLTMem(x7, y, w7, h, dstptr)#0
|
||||
INX
|
||||
INX
|
||||
INX
|
||||
INX
|
||||
INX
|
||||
LDA ESTKL-5,X ; DSTPTR
|
||||
STA DSTL
|
||||
LDA ESTKH-5,X
|
||||
STA DSTH
|
||||
LDA ESTKL-2,X ; Y COORD
|
||||
CLC
|
||||
ADC ESTKL-4,X ; HEIGHT
|
||||
STA ESTKL-4,X ; -> BOTTOM EDGE
|
||||
- LDA ESTKL-2,X ; Y COORD
|
||||
CMP ESTKL-4,X ; AT BOTTOM?
|
||||
BCS ++
|
||||
INC ESTKL-2,X ; Y COORD++
|
||||
CMP #192 ; OFF SCREEN?
|
||||
BCS -
|
||||
TAY
|
||||
LDA ESTKL-3,X ; WIDTH7
|
||||
STA TMPL
|
||||
LDA ESTKL-1,X ; X7 COORD
|
||||
CMP #20
|
||||
BCS ++
|
||||
end
|
||||
asm _dcgrBLTMemA
|
||||
ADC $1000,Y ; HGRSCANL
|
||||
STA SRCL
|
||||
LDA #$00
|
||||
ADC $2000,Y ; HGRSCANH
|
||||
STA SRCH
|
||||
LDY #$00
|
||||
-- STA $C055 ; PAGE1X
|
||||
LDA (SRC),Y
|
||||
STA (DST),Y
|
||||
+ INC DSTL
|
||||
BNE +
|
||||
INC DSTH
|
||||
+ STA $C054 ; PAGE1M
|
||||
LDA (SRC),Y
|
||||
INC SRCL
|
||||
BNE +
|
||||
INC SRCH
|
||||
+ STA (DST),Y
|
||||
INC DSTL
|
||||
BNE +
|
||||
INC DSTH
|
||||
+ STA $C055 ; PAGE1X
|
||||
LDA (SRC),Y
|
||||
STA (DST),Y
|
||||
+ INC DSTL
|
||||
BNE +
|
||||
INC DSTH
|
||||
+ STA $C054 ; PAGE1M
|
||||
LDA (SRC),Y
|
||||
INC SRCL
|
||||
BNE +
|
||||
INC SRCH
|
||||
+ STA (DST),Y
|
||||
INC DSTL
|
||||
BNE +
|
||||
INC DSTH
|
||||
+ DEC TMPL
|
||||
BNE --
|
||||
BEQ -
|
||||
++ RTS
|
||||
end
|
||||
export asm dcgrMemBLT(x7, y, w7, h, srcptr)#0
|
||||
INX
|
||||
INX
|
||||
INX
|
||||
INX
|
||||
INX
|
||||
LDA ESTKL-5,X ; SRCPTR
|
||||
STA SRCL
|
||||
LDA ESTKH-5,X
|
||||
STA SRCH
|
||||
LDA ESTKL-2,X ; Y COORD
|
||||
CLC
|
||||
ADC ESTKL-4,X ; HEIGHT
|
||||
STA ESTKL-4,X ; -> BOTTOM EDGE
|
||||
end
|
||||
asm _jmpMemOpBLT
|
||||
JMP $A000
|
||||
end
|
||||
asm _dcgrMemBLTA
|
||||
- LDA ESTKL-2,X ; Y COORD
|
||||
CMP ESTKL-4,X ; AT BOTTOM?
|
||||
BCS ++
|
||||
INC ESTKL-2,X ; Y COORD++
|
||||
CMP #192 ; OFF SCREEN?
|
||||
BCS -
|
||||
TAY
|
||||
LDA ESTKL-3,X ; WIDTH7
|
||||
STA TMPL
|
||||
LDA ESTKL-1,X ; X7 COORD
|
||||
CMP #20
|
||||
BCS ++
|
||||
end
|
||||
asm _dcgrMemBLTB
|
||||
ADC $1000,Y ; HGRSCANL
|
||||
STA DSTL
|
||||
LDA #$00
|
||||
ADC $2000,Y ; HGRSCANH
|
||||
STA DSTH
|
||||
LDY #$00
|
||||
-- STA $C055 ; PAGE1X
|
||||
LDA (SRC),Y
|
||||
INC SRCL
|
||||
BNE +
|
||||
INC SRCH
|
||||
+ STA (DST),Y
|
||||
STA $C054 ; PAGE1M
|
||||
LDA (SRC),Y
|
||||
INC SRCL
|
||||
BNE +
|
||||
INC SRCH
|
||||
+ STA (DST),Y
|
||||
INC DSTL
|
||||
BNE +
|
||||
INC DSTH
|
||||
+ STA $C055 ; PAGE1X
|
||||
LDA (SRC),Y
|
||||
INC SRCL
|
||||
BNE +
|
||||
INC SRCH
|
||||
+ STA (DST),Y
|
||||
STA $C054 ; PAGE1M
|
||||
LDA (SRC),Y
|
||||
INC SRCL
|
||||
BNE +
|
||||
INC SRCH
|
||||
+ STA (DST),Y
|
||||
INC DSTL
|
||||
BNE +
|
||||
INC DSTH
|
||||
+ DEC TMPL
|
||||
BNE --
|
||||
BEQ -
|
||||
++ RTS
|
||||
end
|
||||
asm _dcgrMemOpBLTA
|
||||
- LDA ESTKL-2,X ; Y COORD
|
||||
CMP ESTKL-4,X ; AT BOTTOM?
|
||||
BCS ++
|
||||
INC ESTKL-2,X ; Y COORD++
|
||||
CMP #192 ; OFF SCREEN?
|
||||
BCS -
|
||||
TAY
|
||||
LDA ESTKL-3,X ; WIDTH7
|
||||
STA TMPL
|
||||
LDA ESTKL-1,X ; X7 COORD
|
||||
CMP #20
|
||||
BCS ++
|
||||
end
|
||||
asm _dcgrMemOpBLTB
|
||||
ADC $1000,Y ; HGRSCANL
|
||||
STA DSTL
|
||||
LDA #$00
|
||||
ADC $2000,Y ; HGRSCANH
|
||||
STA DSTH
|
||||
LDY #$00
|
||||
-- STA $C055 ; PAGE1X
|
||||
LDA (SRC),Y
|
||||
INC SRCL
|
||||
BNE +
|
||||
INC SRCH
|
||||
end
|
||||
asm _dcgrMemOpBLTC
|
||||
+ EOR (DST),Y
|
||||
STA (DST),Y
|
||||
STA $C054 ; PAGE1M
|
||||
LDA (SRC),Y
|
||||
INC SRCL
|
||||
BNE +
|
||||
INC SRCH
|
||||
end
|
||||
asm _dcgrMemOpBLTD
|
||||
+ EOR (DST),Y
|
||||
STA (DST),Y
|
||||
INC DSTL
|
||||
BNE +
|
||||
INC DSTH
|
||||
+ STA $C055 ; PAGE1X
|
||||
LDA (SRC),Y
|
||||
INC SRCL
|
||||
BNE +
|
||||
INC SRCH
|
||||
end
|
||||
asm _dcgrMemOpBLTE
|
||||
+ EOR (DST),Y
|
||||
STA (DST),Y
|
||||
STA $C054 ; PAGE1M
|
||||
LDA (SRC),Y
|
||||
INC SRCL
|
||||
BNE +
|
||||
INC SRCH
|
||||
end
|
||||
asm _dcgrMemOpBLTF
|
||||
+ EOR (DST),Y
|
||||
STA (DST),Y
|
||||
INC DSTL
|
||||
BNE +
|
||||
INC DSTH
|
||||
+ DEC TMPL
|
||||
BNE --
|
||||
BEQ -
|
||||
++ RTS
|
||||
end
|
||||
//
|
||||
// Wait for VLB
|
||||
//
|
||||
export asm dcgrVLB#0
|
||||
PHP
|
||||
SEI
|
||||
STA $C079 ; Enable IOU access and reset VBL int on //c
|
||||
STA $C05B ; Enable VBL int
|
||||
- LDA $C019
|
||||
STA $C079 ; Reset VBL int on //c
|
||||
BMI -
|
||||
- LDA $C019
|
||||
BPL -
|
||||
STA $C05A ; Disable VBL int on //c
|
||||
STA $C078 ; Disable IOU access on //c
|
||||
PLP
|
||||
RTS
|
||||
end
|
||||
|
||||
export def dcgrOp(op)#0
|
||||
byte opcode
|
||||
|
||||
//
|
||||
// Self modifying code!
|
||||
//
|
||||
opcode = $11 // ORA (ZP),Y
|
||||
when op
|
||||
is OP_XOR
|
||||
opcode = opcode + $20 // $51 = EOR (ZP),Y
|
||||
is OP_AND
|
||||
opcode = opcode + $20 // $31 = AND (ZP),Y
|
||||
is OP_OR
|
||||
_jmpPlotOp:1 = @_dcgrPlotOpC
|
||||
_jmpMemOpBLT:1 = @_dcgrMemOpBLTA
|
||||
_dcgrPlotOpD.3 = opcode
|
||||
_dcgrPlotOpE.3 = opcode
|
||||
_dcgrPlotOpG.3 = opcode
|
||||
_dcgrPlotOpH.3 = opcode
|
||||
_dcgrMemOpBLTC.0 = opcode
|
||||
_dcgrMemOpBLTD.0 = opcode
|
||||
_dcgrMemOpBLTE.0 = opcode
|
||||
_dcgrMemOpBLTF.0 = opcode
|
||||
break
|
||||
otherwise // OP_SRC
|
||||
_jmpPlotOp:1 = @_dcgrPlotC
|
||||
_jmpMemOpBLT:1 = @_dcgrMemBLTA
|
||||
wend
|
||||
end
|
||||
export def dcgrMode(mode)
|
||||
if mode >= 0
|
||||
^page1m
|
||||
^showfull
|
||||
^showhires
|
||||
^showgraphics
|
||||
^IOUdis = 0
|
||||
^show80col = 0
|
||||
^dhresena
|
||||
^store80ena = 0
|
||||
^page1m
|
||||
memset($2000, 0, $2000)
|
||||
^page1x
|
||||
memset($2000, 0, $2000)
|
||||
dcgrOp(OP_SRC)
|
||||
else
|
||||
^store80dis = 0
|
||||
^dhresdis
|
||||
^show40col = 0
|
||||
^showtext
|
||||
^page1m
|
||||
fin
|
||||
return mode
|
||||
end
|
||||
|
||||
def dcgrTest#0
|
||||
byte i, j
|
||||
word pixblk, inci, incj
|
||||
|
||||
setlineplot(@dcgrPlot)
|
||||
setlinespans(@dcgrHLin, @dcgrVLin)
|
||||
for i = 0 to 191 step 4
|
||||
dcgrColor(i)
|
||||
linespans(0, 0, 139, i)
|
||||
next
|
||||
for i = 139 downto 0 step 4
|
||||
dcgrColor(i)
|
||||
linespans(0, 0, i, 191)
|
||||
next
|
||||
if 1
|
||||
pixblk = heapalloc(16/2*20)
|
||||
dcgrBLTMem(0, 0, 2, 20, pixblk)
|
||||
for i = 1 to 170
|
||||
dcgrMemBLT(i/7, i, 2, 20, pixblk)
|
||||
next
|
||||
fin
|
||||
getc
|
||||
i = 86; j = 90
|
||||
inci = 1; incj = 1
|
||||
while ^$C000 < 128
|
||||
dcgrPixBLT(i, j, 16, 16, @sprite)
|
||||
if i > 114 or i < 2; inci = -inci; fin
|
||||
i = i + inci
|
||||
if j > 178 or j < 2; incj = -incj; fin
|
||||
j = j + incj
|
||||
loop
|
||||
^$C010
|
||||
getc
|
||||
end
|
||||
//
|
||||
// Make sure we are a 128K //e or //c
|
||||
//
|
||||
if MACHID & $F0 <> $B0
|
||||
puts("\n128K required for double-lores.\n")
|
||||
^$C010
|
||||
while ^$C000 < 128; loop
|
||||
return -1
|
||||
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
|
||||
_dcgrPlotA:1 = @hgrscanl
|
||||
_dcgrPlotA:6 = @hgrscanh
|
||||
_dcgrPlotB:1 = @divmod7
|
||||
_dcgrPlotC:1 = @auxclrmsk
|
||||
_dcgrPlotD:1 = @auxclrl
|
||||
_dcgrPlotD:6 = @auxclrmsk
|
||||
_dcgrPlotE:1 = @auxclrh
|
||||
_dcgrPlotE:6 = @auxclrmsk
|
||||
_dcgrPlotF:1 = @memclrmsk
|
||||
_dcgrPlotG:1 = @memclrl
|
||||
_dcgrPlotG:6 = @memclrmsk
|
||||
_dcgrPlotH:1 = @memclrh
|
||||
_dcgrPlotH:6 = @memclrmsk
|
||||
_dcgrPlotOpC:1 = @auxclrmsk
|
||||
_dcgrPlotOpD:1 = @auxclrl
|
||||
_dcgrPlotOpE:1 = @auxclrh
|
||||
_dcgrPlotOpF:1 = @memclrmsk
|
||||
_dcgrPlotOpG:1 = @memclrl
|
||||
_dcgrPlotOpH:1 = @memclrh
|
||||
_dcgrHLinA:1 = @hgrscanl
|
||||
_dcgrHLinA:6 = @hgrscanh
|
||||
_dcgrHlinB:1 = @_dcgrPlotB
|
||||
_dcgrVLinA:1 = @hgrscanl
|
||||
_dcgrVLinA:6 = @hgrscanh
|
||||
_dcgrVlinB:1 = @_dcgrPlotB
|
||||
_dcgrPixBLTA:1 = @hgrscanl
|
||||
_dcgrPixBLTA:6 = @hgrscanh
|
||||
_dcgrPixBLTB:1 = @_dcgrColorA
|
||||
_dcgrPixBLTC:1 = @_dcgrPlotB
|
||||
_dcgrPixBLTD:1 = @_dcgrColorA
|
||||
_dcgrPixBLTE:1 = @_dcgrPlotB
|
||||
_dcgrBLTMemA:1 = @hgrscanl
|
||||
_dcgrBLTMemA:8 = @hgrscanh
|
||||
_dcgrMemBLTB:1 = @hgrscanl
|
||||
_dcgrMemBLTB:8 = @hgrscanh
|
||||
_dcgrMemOpBLTB:1 = @hgrscanl
|
||||
_dcgrMemOpBLTB:8 = @hgrscanh
|
||||
|
||||
dcgrMode(0)
|
||||
dcgrTest
|
||||
dcgrMode(-1)
|
||||
done
|
||||
+10
-5
@@ -60,7 +60,7 @@ DHCP = rel/DHCP\#FE1000
|
||||
HTTPD = rel/HTTPD\#FE1000
|
||||
TFTPD = rel/TFTPD\#FE1000
|
||||
HGRLIB = rel/apple/HGRLIB\#FE1000
|
||||
DHGRLIB = rel/apple/DHGRLIB\#FE1000
|
||||
DCGRLIB = rel/apple/DCGRLIB\#FE1000
|
||||
GRLIB = rel/apple/GRLIB\#FE1000
|
||||
DGRLIB = rel/apple/DGRLIB\#FE1000
|
||||
HGRSPRITE = rel/apple/HGRSPRITE\#FE1000
|
||||
@@ -82,6 +82,7 @@ TILETEST = rel/apple/TILETEST\#FE1000
|
||||
HGRTEST = rel/apple/HGRTEST\#FE1000
|
||||
GRTEST = rel/apple/GRTEST\#FE1000
|
||||
DGRTEST = rel/apple/DGRTEST\#FE1000
|
||||
DCGRTEST = rel/apple/DCGRTEST\#FE1000
|
||||
MEMMGR = rel/MEMMGR\#FE1000
|
||||
MEMTEST = rel/MEMTEST\#FE1000
|
||||
FIBERTEST = rel/FIBERTEST\#FE1000
|
||||
@@ -118,7 +119,7 @@ TXTTYPE = .TXT
|
||||
#SYSTYPE = \#FF2000
|
||||
#TXTTYPE = \#040000
|
||||
|
||||
apple: $(PLVMZP_APL) $(PLASM) $(PLVM) $(PLVM01) $(PLVM02) $(PLVMJIT) $(PLVM802) $(PLVM03) $(PLVMJIT03) $(CMD) $(CMDJIT) $(JIT) $(JIT16) $(JITUNE) $(SOSCMD) $(SOSCMDJIT) $(PLASMAPLASM) $(CODEOPT) $(PLFORTH) $(HRFORTH) $(HR2FORTH) $(TX2FORTH) $(SEXPR) $(SMATH) $(DRAWL) $(ZIPCHIP) $(MATCHFILES) $(ARGS) $(MEMMGR) $(MEMTEST) $(FIBER) $(FIBERTEST) $(LONGJMP) $(ED) $(MON) $(COPY) $(DEL) $(REN) $(CAT) $(NEWDIR) $(TYPE) $(SOS) $(ROD) $(SIEVE) $(PRIMEGAP) $(MOUSE) $(UTHERNET2) $(UTHERNET) $(ETHERIP) $(INET) $(DHCP) $(HTTPD) $(TFTPD) $(ROGUE) $(ROGUEMAP) $(ROGUECOMBAT) $(SFM) $(SFMSPRT) $(GRAFIX) $(GFXDEMO) $(LINES) $(HGRTILE) $(HGRFONT) $(HGRSPRITE) $(HGRLIB) $(TILETEST) $(HGRTEST) $(DHGRLIB) $(GRLIB) $(DGRLIB) $(GRTEST) $(DGRTEST) $(HGRTEST) $(FILEIO_APL) $(CONIO_APL) $(JOYBUZZ) $(PORTIO) $(SPIPORT) $(SDFAT) $(FATCAT) $(FATGET) $(FATPUT) $(FATWDSK) $(FATRDSK) $(INT32) $(INT32TEST) $(SANE) $(FPSTR) $(FPU) $(SANITY) $(LZ4) $(LZ4CAT) $(RPNCALC) $(SNDSEQ) $(PLAYSEQ) $(CONIOTEST)
|
||||
apple: $(PLVMZP_APL) $(PLASM) $(PLVM) $(PLVM01) $(PLVM02) $(PLVMJIT) $(PLVM802) $(PLVM03) $(PLVMJIT03) $(CMD) $(CMDJIT) $(JIT) $(JIT16) $(JITUNE) $(SOSCMD) $(SOSCMDJIT) $(PLASMAPLASM) $(CODEOPT) $(PLFORTH) $(HRFORTH) $(HR2FORTH) $(TX2FORTH) $(SEXPR) $(SMATH) $(DRAWL) $(ZIPCHIP) $(MATCHFILES) $(ARGS) $(MEMMGR) $(MEMTEST) $(FIBER) $(FIBERTEST) $(LONGJMP) $(ED) $(MON) $(COPY) $(DEL) $(REN) $(CAT) $(NEWDIR) $(TYPE) $(SOS) $(ROD) $(SIEVE) $(PRIMEGAP) $(MOUSE) $(UTHERNET2) $(UTHERNET) $(ETHERIP) $(INET) $(DHCP) $(HTTPD) $(TFTPD) $(ROGUE) $(ROGUEMAP) $(ROGUECOMBAT) $(SFM) $(SFMSPRT) $(GRAFIX) $(GFXDEMO) $(LINES) $(HGRTILE) $(HGRFONT) $(HGRSPRITE) $(HGRLIB) $(TILETEST) $(HGRTEST) $(DCGRLIB) $(GRLIB) $(DGRLIB) $(GRTEST) $(DGRTEST) $(HGRTEST) $(DCGRTEST) $(FILEIO_APL) $(CONIO_APL) $(JOYBUZZ) $(PORTIO) $(SPIPORT) $(SDFAT) $(FATCAT) $(FATGET) $(FATPUT) $(FATWDSK) $(FATRDSK) $(INT32) $(INT32TEST) $(SANE) $(FPSTR) $(FPU) $(SANITY) $(LZ4) $(LZ4CAT) $(RPNCALC) $(SNDSEQ) $(PLAYSEQ) $(CONIOTEST)
|
||||
|
||||
-rm vmsrc/plvmzp.inc
|
||||
|
||||
@@ -484,9 +485,9 @@ $(HGRLIB): libsrc/apple/hgrlib.pla $(PLVM02) $(PLASM)
|
||||
./$(PLASM) -AMOW libsrc/apple/hgrlib.pla
|
||||
acme --setpc 4094 -o $(HGRLIB) libsrc/apple/hgrlib.a
|
||||
|
||||
$(DHGRLIB): libsrc/apple/dhgrlib.pla $(PLVM02) $(PLASM)
|
||||
./$(PLASM) -AMOW libsrc/apple/dhgrlib.pla
|
||||
acme --setpc 4094 -o $(DHGRLIB) libsrc/apple/dhgrlib.a
|
||||
$(DCGRLIB): libsrc/apple/dcgrlib.pla $(PLVM02) $(PLASM)
|
||||
./$(PLASM) -AMOW libsrc/apple/dcgrlib.pla
|
||||
acme --setpc 4094 -o $(DCGRLIB) libsrc/apple/dcgrlib.a
|
||||
|
||||
$(GRLIB): libsrc/apple/grlib.pla $(PLVM02) $(PLASM)
|
||||
./$(PLASM) -AMOW libsrc/apple/grlib.pla
|
||||
@@ -524,6 +525,10 @@ $(DGRTEST): samplesrc/dgrtest.pla $(DGRLIB) $(PLASM)
|
||||
./$(PLASM) -AMOW samplesrc/dgrtest.pla
|
||||
acme --setpc 4094 -o $(DGRTEST) samplesrc/dgrtest.a
|
||||
|
||||
$(DCGRTEST): samplesrc/dcgrtest.pla $(DCGRLIB) $(PLASM)
|
||||
./$(PLASM) -AMOW samplesrc/dcgrtest.pla
|
||||
acme --setpc 4094 -o $(DCGRTEST) samplesrc/dcgrtest.a
|
||||
|
||||
$(MON): utilsrc/apple/mon.pla $(PLASM)
|
||||
./$(PLASM) -AMOW utilsrc/apple/mon.pla
|
||||
acme --setpc 4094 -o $(MON) utilsrc/apple/mon.a
|
||||
|
||||
@@ -18,7 +18,7 @@ cp rel/apple/HGRFONT#FE1000 prodos/sys/HGRFONT.REL
|
||||
cp rel/apple/HGRTILE#FE1000 prodos/sys/HGRTILE.REL
|
||||
cp rel/apple/HGRSPRITE#FE1000 prodos/sys/HGRSPRITE.REL
|
||||
cp rel/apple/HGRLIB#FE1000 prodos/sys/HGRLIB.REL
|
||||
cp rel/apple/DHGRLIB#FE1000 prodos/sys/DHGRLIB.REL
|
||||
cp rel/apple/DCGRLIB#FE1000 prodos/sys/DCGRLIB.REL
|
||||
cp rel/apple/GRLIB#FE1000 prodos/sys/GRLIB.REL
|
||||
cp rel/apple/DGRLIB#FE1000 prodos/sys/DGRLIB.REL
|
||||
cp rel/apple/COPY#FE1000 prodos/sys/COPY.REL
|
||||
@@ -104,6 +104,7 @@ cp rel/apple/TILETEST#FE1000 prodos/demos/apple2/TILETEST.REL
|
||||
cp rel/apple/HGRTEST#FE1000 prodos/demos/apple2/HGRTEST.REL
|
||||
cp rel/apple/GRTEST#FE1000 prodos/demos/apple2/GRTEST.REL
|
||||
cp rel/apple/DGRTEST#FE1000 prodos/demos/apple2/DGRTEST.REL
|
||||
cp rel/apple/DCGRTEST#FE1000 prodos/demos/apple2/DCGRTEST.REL
|
||||
|
||||
mkdir prodos/demos/apple2/spiders
|
||||
cp rel/apple/SFM#FE1000 prodos/demos/apple2/spiders/SFM.REL
|
||||
@@ -138,6 +139,7 @@ cp samplesrc/coniotest.pla prodos/bld/samples/CONIOTEST.PLA.TXT
|
||||
cp samplesrc/grtest.pla prodos/bld/samples/GRTEST.PLA.TXT
|
||||
cp samplesrc/dgrtest.pla prodos/bld/samples/DGRTEST.PLA.TXT
|
||||
cp samplesrc/hgrtest.pla prodos/bld/samples/HGRTEST.PLA.TXT
|
||||
cp samplesrc/dcgrtest.pla prodos/bld/samples/DCGRTEST.PLA.TXT
|
||||
cp samplesrc/tiletest.pla prodos/bld/samples/TILETEST.PLA.TXT
|
||||
cp samplesrc/fibertest.pla prodos/bld/samples/FIBERTEST.PLA.TXT
|
||||
cp samplesrc/mousetest.pla prodos/bld/samples/MOUSETEST.PLA.TXT
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
include "inc/cmdsys.plh"
|
||||
include "inc/lines.plh"
|
||||
include "inc/dcgrlib.plh"
|
||||
|
||||
sysflags resxtxt1|reshgr1|resxhgr1
|
||||
|
||||
//
|
||||
// Test sprite
|
||||
//
|
||||
byte[] sprite = $55,$55,$00,$00,$00,$00,$55,$55
|
||||
byte[] = $55,$55,$00,$00,$00,$00,$55,$55
|
||||
byte[] = $55,$00,$00,$AA,$AA,$00,$00,$55
|
||||
byte[] = $55,$00,$AA,$AA,$AA,$AA,$00,$55
|
||||
byte[] = $00,$00,$AA,$FF,$FF,$AA,$00,$00
|
||||
byte[] = $00,$AA,$FF,$FF,$FF,$FF,$AA,$00
|
||||
byte[] = $00,$AA,$1F,$12,$12,$F2,$AA,$00
|
||||
byte[] = $00,$AA,$2F,$21,$21,$F1,$AA,$00
|
||||
byte[] = $00,$AA,$1F,$12,$12,$F2,$AA,$00
|
||||
byte[] = $00,$AA,$2F,$21,$21,$F1,$AA,$00
|
||||
byte[] = $00,$AA,$FF,$FF,$FF,$FF,$AA,$00
|
||||
byte[] = $00,$00,$AA,$FF,$FF,$AA,$00,$00
|
||||
byte[] = $55,$00,$AA,$AA,$AA,$AA,$00,$55
|
||||
byte[] = $55,$00,$00,$AA,$AA,$00,$00,$55
|
||||
byte[] = $55,$55,$00,$00,$00,$00,$55,$55
|
||||
byte[] = $55,$55,$00,$00,$00,$00,$55,$55
|
||||
|
||||
def dcgrTest#0
|
||||
byte i, j, oi, oj, w7
|
||||
word pixblk, inci, incj
|
||||
|
||||
setlineplot(@dcgrPlot)
|
||||
setlinespans(@dcgrHLin, @dcgrVLin)
|
||||
for i = 0 to 191 step 4
|
||||
dcgrColor(i)
|
||||
linespans(0, 0, 139, i)
|
||||
next
|
||||
for i = 139 downto 0 step 4
|
||||
dcgrColor(i)
|
||||
linespans(0, 0, i, 191)
|
||||
next
|
||||
i = 86; j = 90
|
||||
oi = i; oj = j
|
||||
inci = 1; incj = 1
|
||||
w7 = (16+13)/7
|
||||
pixblk = heapalloc(w7*16)
|
||||
dcgrBLTMem(i/7, j, w7, 16, pixblk)
|
||||
while ^$C000 < 128
|
||||
dcgrMemBLT(oi/7, oj, w7, 16, pixblk)
|
||||
dcgrBLTMem(i/7, j, w7, 16, pixblk)
|
||||
dcgrPixBLT(i, j, 16, 16, @sprite)
|
||||
oi = i; oj = j
|
||||
if i > 125 or i < 2; inci = -inci; fin
|
||||
i = i + inci
|
||||
if j > 178 or j < 2; incj = -incj; fin
|
||||
j = j + incj
|
||||
loop
|
||||
^$C010
|
||||
getc
|
||||
end
|
||||
|
||||
dcgrMode(0)
|
||||
dcgrTest
|
||||
dcgrMode(-1)
|
||||
done
|
||||
Reference in New Issue
Block a user