VIC - why 22 Columns?

Modding and Technical Issues

Moderator: Moderators

Schnurri
Vic 20 Newbie
Posts: 7
Joined: Tue Jan 16, 2018 5:56 am

VIC - why 22 Columns?

Postby Schnurri » Tue Jan 16, 2018 6:00 am

Hi guys! Perhaps this issue has been discussed elsewhere but I just cannot find it. That's why I ask my question in this new topic.

Why does the VIC chip feature 22 columns? I'm wondering about that particular number "22". It could have been 20 or 24 as well, so why 22? Someone knows?

I am looking forward to your replies.

Best regards, Schnurri

User avatar
Kakemoms
Vic 20 Nerd
Posts: 544
Joined: Sun Feb 15, 2015 8:45 am

Re: VIC - why 22 Columns?

Postby Kakemoms » Tue Jan 16, 2018 7:23 am

Well, you can change it to 20 or 28. If you have an adjustable monitor I think you can get it up to around 32 columns before it starts looking strange.

20 columns would be 160 pixel which is half of 320 and quarter of 640, which eventually became the VGA standard. At the time of the Vic-20 there was no standard, so they probably chose 22 in order for it to display on most TV's at the time (different TV sets tended to have different viewable scan area).

Schnurri
Vic 20 Newbie
Posts: 7
Joined: Tue Jan 16, 2018 5:56 am

Re: VIC - why 22 Columns?

Postby Schnurri » Tue Jan 16, 2018 8:25 am

I don't see your point. Other home-computers like Atari 400 and TI-99/4 used 40 columns on TV in the year 1979. If I remember right the VIC I with its 22 columns was developed in the same year.

Best regards, Schnurri

User avatar
taborj
Vic 20 Drifter
Posts: 25
Joined: Fri Oct 17, 2014 3:11 pm

Re: VIC - why 22 Columns?

Postby taborj » Tue Jan 16, 2018 8:29 am

From Michael S. Tomczyk interesting book The Home Computer Wars http://www.stonan.com/dok/The.Home.Computer.Wars.pdf:

Two VIC chip configurations were planned--22 columns and 40 columns, although the 40-column
version was not designed yet. The 22-column version had larger letters but displayed only 22
characters on each line, while the 40 column version would display 40 characters per line like most
desktop computers. The 22-column chip was nonstandard, but the chip was essentially done and
could be manufactured quickly. MOS Technology had in fact been trying to sell the chip to outside
computer manufacturers since 1978, but no one wanted to buy the chip. So Jack was beginning to
think about using the chip in a Commodore computer.
In his philosophy, we could either design the chips first and then design the computer, or we could
start with the computer and then do the chips. Unfortunately, most engineers were either chicken
people or egg people, not both. Quickly, a debate began between Chuck and Jack about what the
next computer should look like.


Michael S. Tomczyk was the guy responsible for guiding the VIC-20 development. As he says above, the 22-column version was basically ready to go when they needed it. A crime of opportunity, if you will.
Last edited by taborj on Tue Jan 16, 2018 8:31 am, edited 1 time in total.

User avatar
tokra
Vic 20 Nerd
Posts: 842
Joined: Tue Apr 27, 2010 5:32 pm
Location: Germany

Re: VIC - why 22 Columns?

Postby tokra » Tue Jan 16, 2018 8:30 am

The VIC-chip was not designed for a computer, but as an arcade-ship for games. Only when Commodore hat lots of 1K-static RAM chips in stock and needed to design a computer around it, they took the available VIC-chip. That's how I understand it from the book "Commodore - A Company on the Edge"

22 columns was probably used as this was displyed safely on most NTSC-displays.

User avatar
Radical Brad
Vic 20 Devotee
Posts: 214
Joined: Sat Jun 24, 2017 8:18 pm
Website: http://www.AtomicZombie.com
Location: Kakabeka Falls, ONT
Occupation: hACKER

Re: VIC - why 22 Columns?

Postby Radical Brad » Tue Jan 16, 2018 9:59 am

Another consideration to the designers was the maximum horizontal resolution capable by a TV decoding a standard composite NTSC signal. Because color is encoded as a 3.579MHz carrier frequency (color burst frequency) over the horizontal image data, which is sent a a series of lines lasting 63.5uS, and because you had to take into account the fact that TV sets of the day had hidden overscan areas, this leaves a true maximum of approximately 180 color changes per line. Yet another constraint is that the VIC clocking is based on multiples of the color burst frequency, so your are basically stuck to a 20-24 character display on a standard set. If you drop the color, you could easily up this to a 40 column display or much better.

Here is some NTSC timing I worked out for a very old TV Game system I made back in the day...

Code: Select all

; HORIZONTAL SYNC  =    4.7 US =  67.295   (R: 67) CLOCKS

; BACK PORCH 1     =    0.6 US =  8.590    (R:  8) CLOCKS
; COLOR BURST      =    2.5 US = 35.795    (R: 36) CLOCKS (9 CYCLES @ 3.575 MHZ)
; BACK PORCH 2     =    1.6 US = 22.909    (R: 23) CLOCKS
; TOTAL PORCH      =    4.7 US = 67.295    (R: 67) CLOCKS

; LEFT BORDER      =  2.833 US = 40.536    (R: 41) CLOCKS
; ACTIVE PIXELS    = 46.934 US = 672       (R:672) CLOCKS (224 PIXELS x 3 = 672)
; RIGHT BORDER     =  2.833 US = 40.563    (R: 41) CLOCKS
; TOTAL ACTIVE     = 52.600 US = 753.136   (R:754) CLOCKS

; FRONT PORCH      =    1.5 US = 21.477    (R: 22) CLOCKS

; TOTAL CLOCKS     = 63.556 US = 910.006   (R:910) CLOCKS


You can see that after you subtract the overscan (borders), sync, and burst section of the video line, it leaves me with only 672 clocks out of a total of 910 clocks where I can draw proper color video. So considering the 3.579MHz color burst frequency, my example above is much like the 6560-101, where I am getting an absolute maximum of 28 characters across a screen, and this is pushing it to the very limit of overscan.

It really amazes me what the VIC designers managed to do considering how the technologies of the day were working against them!
NTSC = Never The Same Color Twice!

Brad

User avatar
Kakemoms
Vic 20 Nerd
Posts: 544
Joined: Sun Feb 15, 2015 8:45 am

Re: VIC - why 22 Columns?

Postby Kakemoms » Tue Jan 16, 2018 10:38 am

Schnurri wrote:I don't see your point. Other home-computers like Atari 400 and TI-99/4 used 40 columns on TV in the year 1979. If I remember right the VIC I with its 22 columns was developed in the same year.

Best regards, Schnurri


The 6560 Vic-I chip was developed in 1976-77, and based on a 5um Nmos process. Later you got the 6562 which had double the resolution, but never reached the market (due to too high SRAM cost).
Finally the C64 came in 1982 with the 6567/6569 that ran from SDRAM which was cheaper.

But as for your original question: why not 20, to which the answer is that it can be set to 20 columns.

eslapion
ultimate expander
Posts: 4549
Joined: Fri Jun 23, 2006 7:50 pm
Location: Canada
Occupation: 8bit addict

Re: VIC - why 22 Columns?

Postby eslapion » Tue Jan 16, 2018 11:08 am

Kakemoms wrote:Finally the C64 came in 1982 with the 6567/6569 that ran from SDRAM which was cheaper.

The 6567/69 ran from Dynamic RAM (DRAM). Synchronous Dynamic RAM (SDRAM) did not exist then.

Today, the situation has more or less reversed. Static RAM is easier to use and very cheap for small systems. The C64 Reloaded MK2 uses static RAM.
No one can do everything. Everyone can do something.

Schnurri
Vic 20 Newbie
Posts: 7
Joined: Tue Jan 16, 2018 5:56 am

Re: VIC - why 22 Columns?

Postby Schnurri » Tue Jan 16, 2018 11:17 am

I think I got it now :) I wasn't aware that the VIC I was that old (1977). So knowing its birth date and the timing issues posted above everything makes perfect sense to me now. Thank you! Best regards, Schnurri

User avatar
Radical Brad
Vic 20 Devotee
Posts: 214
Joined: Sat Jun 24, 2017 8:18 pm
Website: http://www.AtomicZombie.com
Location: Kakabeka Falls, ONT
Occupation: hACKER

Re: VIC - why 22 Columns?

Postby Radical Brad » Tue Jan 16, 2018 11:26 am

Here is a nice example of why they were stuck to such a low horizontal resolution due to using a TV as a display...

Image

That fuzzed out lower example is called "artifacting", and is what will happen if you try to shove out more than a 20-24 column display into the visible screen area.

Main article...
http://8088mph.blogspot.ca/2015/04/cga-in-1024-colors-new-mode-illustrated.html

The C64 and Amiga broke this limitation (kind of) by separating the sync, luma, and chroma signals.
Keeping to the NTSC limitations, The VIC-20 has one of the clearest color displays of all TV based home computers.

Brad

eslapion
ultimate expander
Posts: 4549
Joined: Fri Jun 23, 2006 7:50 pm
Location: Canada
Occupation: 8bit addict

Re: VIC - why 22 Columns?

Postby eslapion » Tue Jan 16, 2018 7:46 pm

Schnurri wrote:I think I got it now :) I wasn't aware that the VIC I was that old (1977). So knowing its birth date and the timing issues posted above everything makes perfect sense to me now. Thank you! Best regards, Schnurri

BTW, the 6567 (from NTSC C64) has exactly double the resolution of the 6560 not because it runs at double the speed but because it uses some sort of caching scheme.

The VIC-I, when displaying text (it has no bitmap mode per se), accesses the bus half the time (14.31818MHz/14=1.02273MHz)on periods of 977.77ns. The CPU takes the other halves.

When displaying a scanline of 22 characters, the VIC-I must access the bus 44 times; each odd access reads the character code and each even access reads the CG data. Displaying a complete line of text requires the 6560 to access the bus 44x8=352 times.

Since the bus in the NTSC C64 runs at exactly the same speed, doubling the resolution required implementing a 40 bytes cache. On the 1st scanline of a row of 40 characters, the CPU can't access the bus at all and the VIC-II can now access at double the rate because it is 'stealing' the CPU half cycles. On the 7 subsequent scanlines, the VIC-II 'remembers' the character codes for all 40 columns and only needs to read the CG data, leaving the half cycles the CPU needs, as it should.

For the VIC-II, displaying a line of text require access to the bus 40x2+40x7=360 times. A jump from 22 to 40 columns of text only requires 8 more accesses for a line of text because of that cache.

Since there are 25 lines of text on the C64 normal display, the VIC-II steals 40x25=1000 cycles from the CPU every time the screen is refreshed. That's 60'000 cycles taken out of 1'022'727 cycles every second; a slowdown of 5.9%.
No one can do everything. Everyone can do something.

User avatar
Kakemoms
Vic 20 Nerd
Posts: 544
Joined: Sun Feb 15, 2015 8:45 am

Re: VIC - why 22 Columns?

Postby Kakemoms » Wed Jan 17, 2018 3:50 am

You can also read more about how the Atari 400 (and its predecessor Atari 2600) solved the video buffering here. Basically the Atari 400 required two IC's to be able to both display video (CTIA chip) and feed the videochip memory from a framebuffer (ANTIC chip). Both the Vic-I and Vic-II does this in one chip.

At the end, Atari 400 was released at $500, while the Vic-20 was introduced at $299.95. The C64 on the other hand was introduced at $595, but quickly fell in price. In 1981 Atari lost $10 million on the sales due to expensive manufacturing, and the rest is history.

User avatar
Mike
Herr VC
Posts: 3116
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Re: VIC - why 22 Columns?

Postby Mike » Thu Jan 18, 2018 12:50 pm

Schnurri wrote:I'm wondering about that particular number "22". It could have been 20 or 24 as well, so why 22?

With 22 columns, you get the maximum number of characters with an even number of columns, if you intend to keep the screen RAM size at 512 bytes or below:

- 20 columns => 25 rows, 500 bytes, 12 bytes "lost",

- 22 columns => 23 rows, 506 bytes, 6 bytes "lost" (default text screen dimensions),

- 24 columns => 21 rows, 504 bytes, 8 bytes "lost".

Furthermore, the "lost" 6 bytes are eminently useful to put the 6-digit TI$ clock into it. ;)


P.S. and with Maxi-/Uber-Edit you get more columns even for use with the screen editor and BASIC programs! Of course that reaches beyond the 512 byte "limit" I mentioned above. In practice this "limit" is of no concern if you have the RAM available, and the colour RAM has a capacity of 1024 nibbles to begin with, so an oversized screen still gets different colours for each character (OTOH with screen sizes <= 512 bytes, the colour RAM size allows for double buffering).

Schnurri
Vic 20 Newbie
Posts: 7
Joined: Tue Jan 16, 2018 5:56 am

Re: VIC - why 22 Columns?

Postby Schnurri » Thu Jan 18, 2018 1:38 pm

Mike wrote:With 22 columns, you get the maximum number of characters with an even number of columns, if you intend to keep the screen RAM size at 512 bytes or below:


This perfectly makes sense to me. I think that's the answer I was looking for. Danke!

User avatar
Kakemoms
Vic 20 Nerd
Posts: 544
Joined: Sun Feb 15, 2015 8:45 am

Re: VIC - why 22 Columns?

Postby Kakemoms » Sat Feb 03, 2018 4:05 am

If found this comparison from BYTE magazine May 1980:
Vic-20-comparison.jpg

Ohio Scientific had 24*24 resolution, which is 576 bytes.. and ZX80 had 24*32=768bytes, but both monochrome..

The others had a 32column*16row arrangement=512 bytes and color.


Return to “Hardware and Tech”

Who is online

Users browsing this forum: LoadError and 2 guests