Graphics refactoring in preparation for SHR gfx
This commit is contained in:
parent
74b856e8f5
commit
53c351e353
BIN
applecorn.po
BIN
applecorn.po
Binary file not shown.
18
auxmem.hgr.s
18
auxmem.hgr.s
|
@ -157,24 +157,6 @@ VDU18RET1 >>> ENTAUX
|
||||||
>>> WRTAUX
|
>>> WRTAUX
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
* TEMP *
|
|
||||||
HGRPLOTTER LDX #3
|
|
||||||
HGRPLOTTER1 LDA VDUQ+5,X
|
|
||||||
PHA
|
|
||||||
DEX
|
|
||||||
BPL HGRPLOTTER1
|
|
||||||
JSR HGRPLOT
|
|
||||||
LDX #0
|
|
||||||
HGRPLOTTER2 LDA VDUQ+5,X
|
|
||||||
STA PIXELPLOTX,X
|
|
||||||
PLA
|
|
||||||
STA VDUQ+5,X
|
|
||||||
INX
|
|
||||||
CPX #4
|
|
||||||
BCC HGRPLOTTER2
|
|
||||||
RTS
|
|
||||||
* TEMP *
|
|
||||||
|
|
||||||
* Plot actions, PLOT k,x,y
|
* Plot actions, PLOT k,x,y
|
||||||
* k is in VDUQ+4
|
* k is in VDUQ+4
|
||||||
* x is in VDUQ+5,VDUQ+6
|
* x is in VDUQ+5,VDUQ+6
|
||||||
|
|
|
@ -301,8 +301,7 @@ SHRPRCH640 SEC
|
||||||
|
|
||||||
* Apply colour masks to 16 bit word of character data
|
* Apply colour masks to 16 bit word of character data
|
||||||
* Called in 65816 native mode, 16 bit
|
* Called in 65816 native mode, 16 bit
|
||||||
MX %00 ; Tell Merlin 16 bit M & X
|
SHRCOLWORD MX %00 ; Tell Merlin 16 bit M & X
|
||||||
SHRCOLWORD
|
|
||||||
PHA ; Keep A
|
PHA ; Keep A
|
||||||
AND SHRCOLMASK ; Mask to set foreground colour
|
AND SHRCOLMASK ; Mask to set foreground colour
|
||||||
STA ZP1 ; Keep foreground
|
STA ZP1 ; Keep foreground
|
||||||
|
|
25
auxmem.vdu.s
25
auxmem.vdu.s
|
@ -1152,13 +1152,36 @@ VDU25BACKUP2 LDA GFXPOSNX,X ; POSN becomes LAST
|
||||||
BPL VDU25BACKUP2
|
BPL VDU25BACKUP2
|
||||||
LDA VDUPIXELS
|
LDA VDUPIXELS
|
||||||
BEQ :S2
|
BEQ :S2
|
||||||
JSR HGRPLOTTER
|
JSR GFXPLOTTER
|
||||||
:S2 LDA KEYBOARD ; This and PRCHRC need to be
|
:S2 LDA KEYBOARD ; This and PRCHRC need to be
|
||||||
EOR #$80 ; made more generalised
|
EOR #$80 ; made more generalised
|
||||||
BMI VDU25EXIT ; No key pressed
|
BMI VDU25EXIT ; No key pressed
|
||||||
JSR KBDCHKESC ; Ask KBD to test if Escape
|
JSR KBDCHKESC ; Ask KBD to test if Escape
|
||||||
VDU25EXIT RTS
|
VDU25EXIT RTS
|
||||||
|
|
||||||
|
* Wrapper around call to HGR/SHR plotting routine
|
||||||
|
GFXPLOTTER LDX #3
|
||||||
|
:L1 LDA VDUQ+5,X
|
||||||
|
PHA
|
||||||
|
DEX
|
||||||
|
BPL :L1
|
||||||
|
BIT VDUSCREEN
|
||||||
|
BPL :S1
|
||||||
|
JSR HGRPLOT
|
||||||
|
BRA GFXPLOTTER2
|
||||||
|
:S1 BVC GFXPLOTTER2
|
||||||
|
>>> XF2MAIN,SHRPLOT
|
||||||
|
GFXPLOTRET >>> ENTAUX
|
||||||
|
GFXPLOTTER2 LDX #0
|
||||||
|
:L1 LDA VDUQ+5,X
|
||||||
|
STA PIXELPLOTX,X
|
||||||
|
PLA
|
||||||
|
STA VDUQ+5,X
|
||||||
|
INX
|
||||||
|
CPX #4
|
||||||
|
BCC :L1
|
||||||
|
RTS
|
||||||
|
|
||||||
* Adjust graphics origin
|
* Adjust graphics origin
|
||||||
ADJORIG CLC
|
ADJORIG CLC
|
||||||
LDA GFXORIGX+0
|
LDA GFXORIGX+0
|
||||||
|
|
|
@ -202,6 +202,26 @@ SHRCHAR640 PHY ; Preserve Y
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
|
|
||||||
|
* Plot actions: PLOT k,x,y
|
||||||
|
* k is in SHRVDUQ+4
|
||||||
|
* x is in SHRVDUQ+5,SHRVDUQ+6
|
||||||
|
* y is in SHRVDUQ+7,SHRVDUQ+8
|
||||||
|
*
|
||||||
|
* Plot actions:
|
||||||
|
* $00+x - move/draw lines
|
||||||
|
* $40+x - plot point
|
||||||
|
* $50+x - fill triangle
|
||||||
|
* $60+x - fill rectangle
|
||||||
|
* $90+x - draw circle
|
||||||
|
* $98+x - fill circle
|
||||||
|
*
|
||||||
|
SHRPLOT >>> ENTMAIN
|
||||||
|
JSR SHRCOORD ; Convert coordinates
|
||||||
|
* ...
|
||||||
|
>>> XF2AUX,GFXPLOTRET
|
||||||
|
RTS
|
||||||
|
|
||||||
|
|
||||||
* Convert high-resolution screen coordinates
|
* Convert high-resolution screen coordinates
|
||||||
* from 1280x1024 to 620x200 or 320x200
|
* from 1280x1024 to 620x200 or 320x200
|
||||||
* TODO: Totally untested ...
|
* TODO: Totally untested ...
|
||||||
|
|
Loading…
Reference in New Issue