From e5eabbac9705c042ff1fa4b8eda6e1d9bb3ac1a9 Mon Sep 17 00:00:00 2001 From: Bobbi Webber-Manners Date: Fri, 23 Dec 2022 23:26:16 -0500 Subject: [PATCH] SHR 640 mode - support for text colours --- applecorn.po | Bin 819200 -> 819200 bytes auxmem.hgr.s | 4 ++-- auxmem.shr.s | 20 ++++++++++++++++++-- auxmem.vdu.s | 15 +++++++++------ 4 files changed, 29 insertions(+), 10 deletions(-) diff --git a/applecorn.po b/applecorn.po index f52505260885d88b285a46e477f3a3bb21d443aa..afe52c38da9333aceb341bf97702ef187fd37689 100644 GIT binary patch delta 10814 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 delta 10792 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 diff --git a/auxmem.hgr.s b/auxmem.hgr.s index b1efdb7..4d8de35 100644 --- a/auxmem.hgr.s +++ b/auxmem.hgr.s @@ -121,7 +121,7 @@ CLRLNRET >>> ENTAUX * A=txt colour -HSCRSETTCOL RTS +HGRSETTCOL RTS * A=gfx colour, X=gcol action @@ -134,7 +134,7 @@ HSCRSETTCOL RTS * 5 = NUL no change to pixel * 6 = CLR clear pixel to background * 7 = UND undefined -HSCRSETGCOL PHA +HGRSETGCOL PHA LDA #$00 ; Normal drawing mode CPX #$04 ; k=4 means toggle BNE :NORM diff --git a/auxmem.shr.s b/auxmem.shr.s index dd27df7..cc74d95 100644 --- a/auxmem.shr.s +++ b/auxmem.shr.s @@ -8,6 +8,7 @@ SCB320 EQU $00 ; SCB for 320 mode SCB640 EQU $80 ; SCB for 640 mode + * Colours in the following order. * For 16 colour modes ... * BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, ... @@ -48,6 +49,9 @@ PALETTE640 DB $00, $00 ; BLACK DB $80, $08 ; YELLOW DB $88, $08 ; WHITE +SHRCOLMASK DB $00 ; Colour mask + + * Enable SHR mode SHRVDU22 JSR VDU12 ; Clear text and SHR screen LDA #$80 ; Most significant bit @@ -149,7 +153,7 @@ SHRCHAR640 PHY BNE :L1 PHA LDA :TEMP - AND #%10101010 + AND SHRCOLMASK ; Mask to set colour STA [VDUADDR] PLA STZ :TEMP @@ -164,7 +168,7 @@ SHRCHAR640 PHY BNE :L2 LDA :TEMP LDY #$01 - AND #%10101010 + AND SHRCOLMASK ; Mask to set colour STA [VDUADDR],Y PLY RTS @@ -232,3 +236,15 @@ SHRCLEAR PHP ; Disable interrupts 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 + + diff --git a/auxmem.vdu.s b/auxmem.vdu.s index 89fc1c2..732409b 100644 --- a/auxmem.vdu.s +++ b/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 * STA CLOCKCTL ; Set border LDA #$80 - JSR HSCRSETTCOL ; Set txt background + JSR HGRSETTCOL ; Set txt background + JSR SHRSETTCOL ; Set txt background LDX #$00 LDA #$80 - JSR HSCRSETGCOL ; Set gfx background + JSR HGRSETGCOL ; Set gfx background LDA VDUCOLOURS AND #$07 PHA STA TXTFGD ; Note txt foreground - JSR HSCRSETTCOL ; Set txt foreground + JSR HGRSETTCOL ; Set txt foreground + JSR SHRSETTCOL ; Set txt background LDX #$00 PLA STA GFXFGD ; Note gfx foreground - JMP HSCRSETGCOL ; Set gfx foreground + JMP HGRSETGCOL ; Set gfx foreground * VDU 17 - COLOUR n - select text or border colour VDU17 LDA VDUQ+8 CMP #$C0 BCS VDU17BORDER * TO DO * - JMP HSCRSETTCOL + JSR HGRSETTCOL + JMP SHRSETTCOL VDU17BORDER AND #$0F STA VDUBORDER TAX @@ -946,7 +949,7 @@ VDU18A LDA VDUQ+7 ; GCOL action ROL A PLP ROR A ; Get bit 7 back - JMP HSCRSETGCOL + JMP HGRSETGCOL * VDU 19 - Select palette colours VDU19 RTS