GCOL 1,128+colour now sets gfx background colour

This commit is contained in:
Bobbi Webber-Manners 2022-12-30 21:37:25 -05:00
parent 013e65c033
commit c99501c8e3
3 changed files with 36 additions and 10 deletions

Binary file not shown.

View File

@ -143,6 +143,7 @@ SHRBGMASK EQU $B002 ; Colour mask background (word)
******************************************************************************
SHRBGMASKA DW $0000 ; Keep a copy in aux mem too
SHRGFXBGMASKA DW $0000
* Write character to SHR screen
@ -558,7 +559,6 @@ SHRCLREOL JSR SHRCHARADDR
* VDU16 (CLG) clears the whole SHR screen right now
* TODO: Should clear to background colour
SHRCLEAR PHP ; Disable interrupts
SEI
CLC ; 816 native mode
@ -566,7 +566,7 @@ SHRCLEAR PHP ; Disable interrupts
REP #$10 ; 16 bit index
MX %10 ; Tell Merlin
LDX #$0000
LDA #$00
LDA SHRGFXBGMASKA
:L1 STAL $E12000,X ; SHR screen @ E1:2000
INX
CPX #$7D00
@ -632,20 +632,44 @@ SHRSETTCOL PHA
* 5 = NUL no change to pixel
* 6 = CLR clear pixel to background
* 7 = UND undefined
SHRSETGCOL LDX VDUPIXELS ; Pixels per byte
SHRSETGCOL PHA
LDX VDUPIXELS ; Pixels per byte
CPX #$02 ; 2 is 320-mode (MODE 1)
BNE :MODE0
TAY
LDA SHRCMASK320,Y
BRA :S1
:MODE0 TAY
LDA SHRCMASK640,Y
:S1 >>> WRTMAIN
AND #$80
BEQ :FORE320
PLA
AND #$0F
TAX
LDA SHRCMASK320,X ; Lookup mask in table
STA SHRGFXBGMASKA
RTS
:FORE320 PLA
AND #$0F
TAX
LDA SHRCMASK320,X ; Lookup mask in table
>>> WRTMAIN
STA SHRGFXMASK
STX SHRGFXACTION
>>> WRTAUX
RTS
:MODE0 AND #$80
BEQ :FORE640
PLA
AND #$03
TAX
LDA SHRCMASK640,X ; Lookup mask in table
STA SHRGFXBGMASKA
RTS
:FORE640 PLA
AND #$03
TAX
LDA SHRCMASK640,X ; Lookup mask in table
>>> WRTMAIN
STA SHRGFXMASK
STX SHRGFXACTION
>>> WRTAUX
RTS
* Set up default palette
SHRDEFPAL LDY #00 ; Palette offset for 320 mode

View File

@ -973,8 +973,10 @@ VDU18A LDA VDUQ+7 ; GCOL action
STA GFXPLOTFGD-2,Y ; Store GCOL action
TAX ; X=GCOL action
PLA
PHA
AND VDUCOLOURS
STA GFXFGD-2,Y ; Store GCOL colour
PLA
BIT VDUBANK
BPL :S1 ; Skip if not GS
JSR SHRSETGCOL ; Set SHR background