Jump to content
IGNORED

how to condense font size on VIC-20 screen


Recommended Posts

Hello all. So I just watched a very nice tutorial on changing the screen dimensions on a VIC-20. I have a little different question though.

 

Instead of changing the actual size of the screen, is there any way to condense the size of the characters printed on the screen,  both height and width, including the cursor?  .... In essence, it is what we know as font size today.

Those characters take up a ton of room on the VIC-20 screen, both with their size height and width. I think we all can agree there!

 

Basically, I am trying to get the screen display to resemble the 80 column display on an Apple computer, for those of you who are familiar with the PR#3 command on an Apple.

 

Will pokes and peeks do it, or is there another command or way to reduce the actual characters printed?

Link to comment
Share on other sites

58 minutes ago, newTIboyRob said:

So at the READY prompt, if I just type in the above program lines 10-60, this will yield the 40 column? 

No.  Those lines are just a demonstration of the 40-column wedge.  But, you could find that extension and use it.  It also looks like it uses expanded memory.

Link to comment
Share on other sites

I hear ya. I'm thinking perhaps there were some programs written in VIC-20 basic in the 80's magazines that had some kind of font size reduction for those who had the unexpanded memory, which was quite a few of us.

I faintly remember something like that in Family Computing circa 1983.

 

I wonder if I did find a basic program, typed it in, saved it to cassette, loaded it in just to get it into memory, but then typed NEW and started typing in a new program.... besides deleting this previous program/lines from memory, would it also delete how the cursor and font had been appearing from that previous program, thus returning the VIC-20's cursor and font to their usual huge font size, or would it keep the last reduced size settings?

 

The other thing I would imagine... is if a program like that did exist, would eat up too much of an already limited memory.  So there are 2 issues here I suppose.

Any thoughts about this concept?     The RAM expansion concept on Ebay is just out of my $ budget, so I am just trying to think outside the box here for a way for font size display reduction for typing in programs in basic.
 

Link to comment
Share on other sites

All of our memory is a bit faulty by this time, but I can explain why it is not possible.

 

The VIC-I IC (which is the GFX controller) has a fixed dot size.  So, there is no way to squeeze the pixels.  You can expand the length of a line to a certain extent, which will push the borders off the sides.  But, the pixel size is constant.

 

So, if you can't compress the font, what about halving the font itself.  4x8 chars to the rescue.

 

Hmmm, there is only a native font capability for 8x8 and 8x16 fonts in the VIC-1.  Any other size requires we fake putting text on the screen using a graphics screen.

 

It turns out, there is no graphics mode on the VIC-I (Shocking, I know, but I speak the truth). All games that need a graphics screen have to jump through a weird hoop to put GFX on the screen.

 

The trick is to take advantage of the fact that a font can be 8x16.  So, if we pull the borders in just a bit to create a 20x24 VIC screen, and then fill the screen with 240 characters and then turn on 8x16 fonts, we will just cover the entire screen.

 

Then, you treat the 240 8x16 characters in the RAM used to read the font information as your "screen".  The math is a bit tricky, given that the cells are 8x16 and so on.

 

Oh, BTW, 240 8x16 characters in a font takes (16*240 = 3840 bytes).  That's all the internal memory you have, basically.  Just this font and zpage and stack leaves you only 768 bytes to manage this graphics based virtual text screen and have a program, which is not enough.

 

Hence the need for a RAM expansion.

 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

I totally get you, and thanks for the brilliant and detailed description and explanation. So I was partially correct... it actually would be a massive memory eater anyhow.  

 

Well, at least I tried, so I will just have to accept, as you say, the charm and the curse of the VIC-20 and its limitations.

I can't be the only person who wanted a smaller font!

Link to comment
Share on other sites

There is another way, by using a hardware cartridge with its own 6545/6845 chip which could generate a B&W text display which is 40x24 or 80x24. Then you connect your monitor to the separate video output from the cartridge. The VIC chip would still be in operation but not used. Some cartridges may have RAM that supports defining own graphics, often those only have a ROM font which mimics the built-in one.

 

Of course once you connect external hardware, you might use any video generating chip, modern solutions which output hires in colour and with VGA/HDMI directly, but if you took that route, it barely would be a VIC-20 any longer.

  • Like 1
Link to comment
Share on other sites

Supposedly Commodore tried to make a 40 column version of the VIC chip, but since it needs fast, static RAM, it turned out to be too expensive plus that development took too much time so they released the 22 column computer.

 

In the mean time, they shifted to cheaper dynamic RAM and developed the VIC-II which was demonstrated at CES in Jan 1982 with the C64 released in Aug/Sep the same year. So within 2 years they went from 22 columns, only custom characters, no sprites or scrolling, to a chip that had all you could ask for.

  • Like 1
Link to comment
Share on other sites

19 hours ago, newTIboyRob said:

I totally get you, and thanks for the brilliant and detailed description and explanation. So I was partially correct... it actually would be a massive memory eater anyhow.  

 

Well, at least I tried, so I will just have to accept, as you say, the charm and the curse of the VIC-20 and its limitations.

I can't be the only person who wanted a smaller font!

Yep, sorry to burst the bubble 😞

 

If you can skip by on less than a full screen (half screen, let's say), you might have a chance in an unexpanded VIC.  Depending on the use, it might be workable.

 

But, 8-35K expansions are pretty easy to get and/or build now, so don't feel you have to settle.

Link to comment
Share on other sites

40x12? No, that would be a software extension just like 40x24 but only half the amount of RAM required so in theory you could make it fit on an unexpanded machine. Perhaps it would leave 512 bytes or so for your program, given that not only do you need to allocate memory for the graphics, but also for the driver software. I saw there is at least one ROM (PET Loader) at Zimmers which still requires a memory expansion to run.

 

As for hardware solutions, there were a handful different solutions to get a 40 column display that all are hard to find these days. Just like with the software solution, it usually would be limited to hardware graphics, possibly running on a separate screen. I attached some pics of my setup.

40col-screen3.jpg

hosthack2018.jpg

The setup on the bottom picture is VIC-20 with switchable 32K RAM and the 40/80 card on a cartridge expander, uIEC/SD and double screens just to show this machine is capable of more than simple 3.5K tape games.

 

But yeah, I'm sure that Microsoft Windows Me also has its benefits...

Edited by carlsson
  • Like 2
Link to comment
Share on other sites

1 hour ago, carlsson said:

But yeah, I'm sure that Microsoft Windows Me also has its benefits...

Without getting too far gone, I remember when my C64 died, and while I was getting it fixed I pulled out a VIC-20 I had hanging around and fired it up.  It worked well enough to keep me going, and I got hold of some games and what-not.  Windows Me was an oft-maligned operating system, but in my use it was fine and worked well for me as I moved from 98SE to 2000.

Link to comment
Share on other sites

  • 4 months later...

Wow that is interesting @carlsson   ... so is that 40/80 column board something that goes in the cartridge slot on the back of the Vic 20, or is a board that has to be installed inside the VIC-20?  (I have the 16 K RAM cartridge in the outside rear slot though so maybe it wouldn't be doable back there anyway?)   Is it available for sale in the United States?  Cost?

 

In short, could you give post some info on this here please?  Thank you.

 

Link to comment
Share on other sites

7 hours ago, newTIboyRob said:

Wow that is interesting @carlsson   ... so is that 40/80 column board something that goes in the cartridge slot on the back of the Vic 20, or is a board that has to be installed inside the VIC-20?  (I have the 16 K RAM cartridge in the outside rear slot though so maybe it wouldn't be doable back there anyway?)   Is it available for sale in the United States?  Cost?

 

In short, could you give post some info on this here please?  Thank you.

 

Yes, all the 40/80 column hardware expansions tend to be cartridges, just like I showed a picture earlier. In order to buy it, you need a time machine that can take you 40 years back in time, or search eBay high and low. These days those cartridges seem to be quite rare and valuable. Note that it isn't given how much software will actually work using a cartridge like these. The ones relying on PRINT is not a problem, but if they combine with various POKE to screen memory, the software would need to be patched for each different 40/80 cartridge as those internally are not compatible regarding memory areas etc which is a shame.

  • Like 1
Link to comment
Share on other sites

4 minutes ago, carlsson said:

These days those cartridges seem to be quite rare and valuable.

For comparison, there are two BI-80 cartridges for the C64 on the bay. While I'm sure the seller asking $999.95 for a boxed cartridge never will be close to that money, the one asking $179.99 for a loose, untested cartridge might eventually find a buyer.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...