mirror of
https://github.com/bobbimanners/Applecorn.git
synced 2024-06-16 10:29:32 +00:00
SHR 640 mode - support for text colours
This commit is contained in:
parent
0395d56012
commit
e5eabbac97
BIN
applecorn.po
BIN
applecorn.po
Binary file not shown.
|
@ -121,7 +121,7 @@ CLRLNRET >>> ENTAUX
|
||||||
|
|
||||||
|
|
||||||
* A=txt colour
|
* A=txt colour
|
||||||
HSCRSETTCOL RTS
|
HGRSETTCOL RTS
|
||||||
|
|
||||||
|
|
||||||
* A=gfx colour, X=gcol action
|
* A=gfx colour, X=gcol action
|
||||||
|
@ -134,7 +134,7 @@ HSCRSETTCOL RTS
|
||||||
* 5 = NUL no change to pixel
|
* 5 = NUL no change to pixel
|
||||||
* 6 = CLR clear pixel to background
|
* 6 = CLR clear pixel to background
|
||||||
* 7 = UND undefined
|
* 7 = UND undefined
|
||||||
HSCRSETGCOL PHA
|
HGRSETGCOL PHA
|
||||||
LDA #$00 ; Normal drawing mode
|
LDA #$00 ; Normal drawing mode
|
||||||
CPX #$04 ; k=4 means toggle
|
CPX #$04 ; k=4 means toggle
|
||||||
BNE :NORM
|
BNE :NORM
|
||||||
|
|
20
auxmem.shr.s
20
auxmem.shr.s
|
@ -8,6 +8,7 @@
|
||||||
SCB320 EQU $00 ; SCB for 320 mode
|
SCB320 EQU $00 ; SCB for 320 mode
|
||||||
SCB640 EQU $80 ; SCB for 640 mode
|
SCB640 EQU $80 ; SCB for 640 mode
|
||||||
|
|
||||||
|
|
||||||
* Colours in the following order.
|
* Colours in the following order.
|
||||||
* For 16 colour modes ...
|
* For 16 colour modes ...
|
||||||
* BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, ...
|
* BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, ...
|
||||||
|
@ -48,6 +49,9 @@ PALETTE640 DB $00, $00 ; BLACK
|
||||||
DB $80, $08 ; YELLOW
|
DB $80, $08 ; YELLOW
|
||||||
DB $88, $08 ; WHITE
|
DB $88, $08 ; WHITE
|
||||||
|
|
||||||
|
SHRCOLMASK DB $00 ; Colour mask
|
||||||
|
|
||||||
|
|
||||||
* Enable SHR mode
|
* Enable SHR mode
|
||||||
SHRVDU22 JSR VDU12 ; Clear text and SHR screen
|
SHRVDU22 JSR VDU12 ; Clear text and SHR screen
|
||||||
LDA #$80 ; Most significant bit
|
LDA #$80 ; Most significant bit
|
||||||
|
@ -149,7 +153,7 @@ SHRCHAR640 PHY
|
||||||
BNE :L1
|
BNE :L1
|
||||||
PHA
|
PHA
|
||||||
LDA :TEMP
|
LDA :TEMP
|
||||||
AND #%10101010
|
AND SHRCOLMASK ; Mask to set colour
|
||||||
STA [VDUADDR]
|
STA [VDUADDR]
|
||||||
PLA
|
PLA
|
||||||
STZ :TEMP
|
STZ :TEMP
|
||||||
|
@ -164,7 +168,7 @@ SHRCHAR640 PHY
|
||||||
BNE :L2
|
BNE :L2
|
||||||
LDA :TEMP
|
LDA :TEMP
|
||||||
LDY #$01
|
LDY #$01
|
||||||
AND #%10101010
|
AND SHRCOLMASK ; Mask to set colour
|
||||||
STA [VDUADDR],Y
|
STA [VDUADDR],Y
|
||||||
PLY
|
PLY
|
||||||
RTS
|
RTS
|
||||||
|
@ -232,3 +236,15 @@ SHRCLEAR PHP ; Disable interrupts
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
|
|
||||||
|
* Set text colour
|
||||||
|
* A=txt colour
|
||||||
|
SHRSETTCOL TAX
|
||||||
|
LDA :MASKS640,X ; Lookup mask in table
|
||||||
|
STA SHRCOLMASK ; Set colour mask
|
||||||
|
RTS
|
||||||
|
:MASKS640 DB %00000000
|
||||||
|
DB %01010101
|
||||||
|
DB %10101010
|
||||||
|
DB %11111111
|
||||||
|
|
||||||
|
|
||||||
|
|
15
auxmem.vdu.s
15
auxmem.vdu.s
|
@ -900,26 +900,29 @@ VDU20LP STA TXTFGD,X ; Clear all colours
|
||||||
* THE FOLLOWING LINE IS FOR GS ONLY & NOT SAFE ON //c
|
* THE FOLLOWING LINE IS FOR GS ONLY & NOT SAFE ON //c
|
||||||
* STA CLOCKCTL ; Set border
|
* STA CLOCKCTL ; Set border
|
||||||
LDA #$80
|
LDA #$80
|
||||||
JSR HSCRSETTCOL ; Set txt background
|
JSR HGRSETTCOL ; Set txt background
|
||||||
|
JSR SHRSETTCOL ; Set txt background
|
||||||
LDX #$00
|
LDX #$00
|
||||||
LDA #$80
|
LDA #$80
|
||||||
JSR HSCRSETGCOL ; Set gfx background
|
JSR HGRSETGCOL ; Set gfx background
|
||||||
LDA VDUCOLOURS
|
LDA VDUCOLOURS
|
||||||
AND #$07
|
AND #$07
|
||||||
PHA
|
PHA
|
||||||
STA TXTFGD ; Note txt foreground
|
STA TXTFGD ; Note txt foreground
|
||||||
JSR HSCRSETTCOL ; Set txt foreground
|
JSR HGRSETTCOL ; Set txt foreground
|
||||||
|
JSR SHRSETTCOL ; Set txt background
|
||||||
LDX #$00
|
LDX #$00
|
||||||
PLA
|
PLA
|
||||||
STA GFXFGD ; Note gfx foreground
|
STA GFXFGD ; Note gfx foreground
|
||||||
JMP HSCRSETGCOL ; Set gfx foreground
|
JMP HGRSETGCOL ; Set gfx foreground
|
||||||
|
|
||||||
* VDU 17 - COLOUR n - select text or border colour
|
* VDU 17 - COLOUR n - select text or border colour
|
||||||
VDU17 LDA VDUQ+8
|
VDU17 LDA VDUQ+8
|
||||||
CMP #$C0
|
CMP #$C0
|
||||||
BCS VDU17BORDER
|
BCS VDU17BORDER
|
||||||
* TO DO *
|
* TO DO *
|
||||||
JMP HSCRSETTCOL
|
JSR HGRSETTCOL
|
||||||
|
JMP SHRSETTCOL
|
||||||
VDU17BORDER AND #$0F
|
VDU17BORDER AND #$0F
|
||||||
STA VDUBORDER
|
STA VDUBORDER
|
||||||
TAX
|
TAX
|
||||||
|
@ -946,7 +949,7 @@ VDU18A LDA VDUQ+7 ; GCOL action
|
||||||
ROL A
|
ROL A
|
||||||
PLP
|
PLP
|
||||||
ROR A ; Get bit 7 back
|
ROR A ; Get bit 7 back
|
||||||
JMP HSCRSETGCOL
|
JMP HGRSETGCOL
|
||||||
|
|
||||||
* VDU 19 - Select palette colours
|
* VDU 19 - Select palette colours
|
||||||
VDU19 RTS
|
VDU19 RTS
|
||||||
|
|
Loading…
Reference in New Issue
Block a user