Let's start with a new PAL-mode:
If you followed the series you may remember the struggle to reach 208x256 on PAL and how after using the zero-page I was able to get to 208x272 even. The MFLI-demo later used the stack (page 1) as well and made it possible to have different background-, border- and auxiliary-colors on every rasterline of a 208x256 picture. But the initial goal to find the maximum displayable resolution somehow got lost. Most display devices can't show more than 208x256 anyway, but there are some that can be adjusted like the Commodore 1084 (which I use) or Boray's Philips monitor so that up to 224x280 is visible. This is the maximum PAL-resolution for VICE as well.
How close can we get with a hires-mode to that maximum resolution? My current idea would allow for up to 224x272 with 8x8 chars, leaving just one character-line. Here's the lowdown:
28x34 chars = 952 bytes video-RAM ($1000-$13b7)
16 non-dynamic areas of 224 x 8 ($13b8-$1ff7 and $0200-$03bf)
2 dynamic areas of 224 x 8 ($01ff-$0040)
leading to the following layout:
Code: Select all
L01 D0
L02 D1 Upd D0
L03 1 Upd D0
L04 D0 Upd D1
L05 2 Upd D1
L06 D1 Upd D0
L07 3 Upd D0
L08 D0 Upd D1
L09 4 Upd D1
L10 D1 Upd D0
L11 5 Upd D0
L12 D0 Upd D1
L13 6 Upd D1
L14 D1 Upd D0
L15 7 Upd D0
L16 D0 Upd D1
L17 8 Upd D1
L18 D1 Upd D0
L19 9 Upd D0
L20 D0 Upd D1
L21 10 Upd D1
L22 D1 Upd D0
L23 11 Upd D0
L24 D0 Upd D1
L25 12 Upd D1
L26 D1 Upd D0
L27 13 Upd D0
L28 D0 Upd D1
L29 14 Upd D1
L30 D1 Upd D0
L31 15 Upd D0
L32 D0 Upd D1
L33 16 Upd D1
L34 D1 Upd D0
35 Upd D0
36 Upd D1
37 Upd D1
38
39
16 rasterlines x 71 cycles per line = 1136 cycles
224 bytes being updated = 1120 cycles with stack/zeropage addressing
Setting the $9004-register every 8 rasterlines = 12 cycles.
This leaves just 4 cycles per 16-rasterline block unused. So this would fit very nicely.
224x272 = 60928 pixels = 95.2% of the C64-standard-hires-resolution (320x200).
Ideas for 224x280 are welcome. This would be 98% of C64 res. I've tried some calculations with 8x16 chars, but these go nowhere since you can't fit two of those 448 byte-areas in the zeropage/stack and you need to be able to do updates all the time the picture is displayed.