It always bothers me that the VIC-20 has such a small screen area, especially on PAL. A lot of programs use a much larger screen are, but it is hard using this from BASIC - until now! Using these programs you can use a screen of 26x32 characters for a total of 832 characters from BASIC. This resolution is compatible with most PAL-displays. Also included is a version especially for VICE or those few monitors that allow to adjust for full overscan like the Commodore 1084. Here you have 28x35 characters for a total of 980 characters on the screen, which is just 20 characters shy of what the C64 shows. For NTSC the values are 24x26 and 25x29.

The included D64-file contains a simple loader that lets you choose which version you want to run and where it should be placed in memory. Also the loader allows you to adjust the picture to your display device.

Note: When using BASIC for technical reasons you can only use three full lines when editing, so the total BASIC-program-line length is reduced to 78 or 84 respectively (instead of the 88 you usually have). For NTSC these values are 72 and 75.

Last edited by tokra on Mon Jan 30, 2017 4:37 pm, edited 1 time in total.

Possible for sure, but if you want the maximum amount free for BASIC, it would make more sense to put this program in BLK5 or IO2/3. I suppose this is for a VFLI-modded VIC - in that case you at least will have BLK5 free.

Theoretically NTSC is possible, but the maximum realistisc visible resolution for TVs would be 24x26 or 25x29 if you take VICE's overscan limits. Not too much of a gain especially since NTSC screen centering seems even more varied than PAL. I think 22x23 was the resolution Commodore considered safe for NTSC when creating the VIC back in the day.

tokra wrote:Theoretically NTSC is possible, but the maximum realistisc visible resolution for TVs would be 24x26 or 25x29 if you take VICE's overscan limits. Not too much of a gain especially since NTSC screen centering seems even more varied than PAL. I think 22x23 was the resolution Commodore considered safe for NTSC when creating the VIC back in the day.

I think 24x26 would be really nice.

For one thing VICE (set to NTSC) displays the complete displayable signal a 6560 can offer. Also, later standard flat CRT TVs displayed a much larger area than older "round corner" CRT TVs and this does allow for more columns and rows to be displayed.

The original 22x23 was just ok for the cheap round CRTs most people had back in 1981. My own RCA flat CRT TV was made in 2009 and offers at least 10% more viewing area as these were adjusted for showing DVDs.

Ok, please re-download the ZIP-archive. I have updated it for NTSC: 24x26 for MaxiEdit, and 25x29 for UberEdit. I have also included a feature that lets you position the screen using the cursor-keys when using the loader. This might come in handy if your CRT differs from my settings.

Mike noticed that the loader might cause problems if you have an adapter in IO2/3 as the test for RAM in IO2/3 changes a byte in that memory-area which might trigger an unwanted reaction if you have a card installed in that area. I use $9a00 for the RAM-test. I restore the value to the original after the test, but if you have a card that uses exactly this memory cell it might cause unwanted results. I know of no card off hand that might cause problems, but just be aware of this. I did not want to hide this version in the loader, because otherwise it might be overlooked completely. On the other hand if you have RAM in IO2/3 this would be a nice place to put this little program.

tokra wrote:Ok, please re-download the ZIP-archive. I have updated it for NTSC: 24x26 for MaxiEdit, and 25x29 for UberEdit. I have also included a feature that lets you position the screen using the cursor-keys when using the loader. This might come in handy if your CRT differs from my settings.

Great work Tokra! I was actually a bit surprised that all this could be done without hacking the ROM Of course, people have done 40-wide screen routines before, but this one is much more useful, because it's fast!

Thanks! I was actually wondering why this has not been done before. Basically I only re-directed the vectors for CHROUT and CHRIN to RAM and copied all the necessary parts of the screen-editor from ROM to RAM. Then armed with a ROM-listing I just needed to change all fixed values of columns and rows to the new numbers and move the screen-line-link-table from zero-page to higher RAM.