> 320 for sure, not 312. I know because I spent countless hours comparing the C64
> specs to my Atari 800 at the time. :)
Normally, it could do 320 horizontal, but when you wanted horizontal scrolling, you'd need to enlarge the border, which would give you 304 pixels. (Duh!) If you used multi-colour mode, you'd end up with pixels twice as wide (but you could still scroll them with the same precision). Vertically it did the same, so you had 200 pixels normally, 192 when you used scrolling.
Then there are hardware bugs, which you can use to let it "forget" to draw the border at all, so you can display sprites outside of the screen. I'm not sure what the actual limits are (a full PAL screen is 384x312 pixels).