** New Frontiers in VIC-Hires-Graphics, Part 8

Basic and Machine Language

Moderator: Moderators

Post Reply
User avatar
tokra
Vic 20 Scientist
Posts: 1120
Joined: Tue Apr 27, 2010 5:32 pm
Location: Scheessel, Germany

** New Frontiers in VIC-Hires-Graphics, Part 8

Post by tokra »

Some time after the 208x256 resolution was working, I noticed the area from $1ea0-$1fff was unused (=352 bytes). Another full 208x16 line would need 416 bytes though. But I also had some raster time left at the end of my display-routine. Could these be combined somehow?

They can! I can use 22 double height characters from $1ea0-$1fff and provide another 4 double-height character (=64 byte) actively. I only needed to make sure those 4 characters are updated in time to be displayed, but not so early that they interfere with another area where they are displayed. The upper 8 "T"-characters in area 32-5 were the one to go for, leading to this layout:

Code: Select all

AAAAAAAAAAAAAAAABBBBBBBBBB  16-1
AAAAAAAAAAAAAAAABBBBBBBBBB
CCCCCCCCCCCCCCCCCCCCCCCCCC  32-1
CCCCCCCCCCCCCCCCCCCCCCCCCC
CCCCCCCCCCCCCCCCCCCCCCCCCC
CCCCCCCCCCCCCCCCCCCCCCCCCC
DDDDDDDDDDDDDDDDEEEEEEEEEE  16-2
DDDDDDDDDDDDDDDDEEEEEEEEEE
FFFFFFFFFFFFFFFFFFFFFFFFFF  32-2
FFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFF
GGGGGGGGGGGGGGGGHHHHHHHHHH  16-3
GGGGGGGGGGGGGGGGHHHHHHHHHH
IIIIIIIIIIIIIIIIIIIIIIIIII  32-3
IIIIIIIIIIIIIIIIIIIIIIIIII
IIIIIIIIIIIIIIIIIIIIIIIIII
IIIIIIIIIIIIIIIIIIIIIIIIII
JJJJJJJJJJJJJJJJKKKKKKKKKK  16-4
JJJJJJJJJJJJJJJJKKKKKKKKKK
LLLLLLLLLLLLLLLLLLLLLLLLLL  32-4
LLLLLLLLLLLLLLLLLLLLLLLLLL
LLLLLLLLLLLLLLLLLLLLLLLLLL
LLLLLLLLLLLLLLLLLLLLLLLLLL
MMMMMMMMMMMMMMMMNNNNNNNNNN  16-5
MMMMMMMMMMMMMMMMNNNNNNNNNN
OOOOOOOOOOOOOOOOOOOOOOOOOO  16-6
OOOOOOOOOOOOOOOOOOOOOOOOOO
PPPPPPPPPPPQQQQQQQQQQQTTTT  32-5
PPPPPPPPPPPQQQQQQQQQQQTTTT
RRRRRRRRRRRSSSSSSSSSSSTTTT
RRRRRRRRRRRSSSSSSSSSSSTTTT
UUUUUUUUUUUUUUUUUUUUUUVVVV  16-7
UUUUUUUUUUUUUUUUUUUUUUVVVV
So with just a few amendments the resolution of 208x272 is possible. Mike was busy creating MAXIGRAFIK at the time but an y-resolution of 272 would have meant a complete overhaul of most of the routines since it would go from 8-bit to 16-bit numbers. Also the 272 lines are visible only on the best monitors while 208x256 should work on any reasonably adjusted PAL-TV or monitor.

So, I adjusted the 208x272 for myself, shortening the display-clear routine and thinking about a point-plotting routine BASIC. Here's the resulting package:

208272-24k.zip

First, run 208272-24k.prg:

SYS9056: Display graphic, wait for Space-bar
SYS9059: Clear color-ram with actual color
SYS9062: Clear graphic

apfel272m.prg is a good example of all the functions this offers: Line 1-30 are the point-plotting routine, call this by GOSUB 1 with x and y being the coordinates you want to plot a pixel.

apfel1m272 is the standard-fractal picture in multicolor-mode you can load with 2) in the apfel272m.prg

Also included is the source-code of the display-routine for anyone interested.

In conclusion (and I know I've said this before) this is probably the largest true resolution doable on the VIC. I don't think adding another line (like I did in the 208x248 mode) is possible. There still is an area of 160 bytes free in the lower 1K. But another 208x8 line would require a total of 240 bytes (208 for characters, 26(=32) for charmap). I don't think there is enough raster-time or memory left to provide another 80 bytes actively.

What may be possible is a higher color-resolution by using 8x8 chars instead of 8x16 ones. This would however mean that the character-map would be twice as large in memory. Something I will have to think about some more...
Post Reply