title: Change color of text without color memory in C64/Assembly
body: <p>I have a code like below, and it works fine. It clears the screen, puts some color in color memory of first 12 characters on screen, and prints a text on the screen.</p>
  
  <pre><code>         jsr $e544
           ldx #$00
           lda #3
  loopclr: sta $d800,x
           inx
           cpx #$0c
           bne loopclr
           ldx #$00
           lda #0
  loop:    lda message,x
           sta $0400,x
           inx
           cpx #$0c
           bne loop
           rts
  message: .byte "Hello "
           .byte "World!"
  </code></pre>
  
  <p>What I wonder is, if there's an easier way to change the text color in C64 Assembly, like <code>POKE 646,color</code> in BASIC?</p>
  
  <p>Edit: I thought I need to be more clear, I can use </p>
  
  <pre><code>lda #color
  sta 646
  </code></pre>
  
  <p>But it doesn't affect the text put on screen by assembly code in 1024+.</p>
  
  <p>Is there an address that affects all characters put on screen?</p>
  
  <p>Edit: I think I know the answer, no.</p>