• Please review our updated Terms and Rules here

How to build internal 3kB memory expansion for VIC 20?

Just wanted to briefly revisit this old thread and confirm that yes, that
paper drawn scetch from Eudimorphodon is correct and working solution for the
3k ram expansion.

I drew it into eagle and mixed with another 32k ram ic to cover blocks 1,2,3 and 5
to get combined 35k of ram expansion. Added dip switches, so that the 3k expansion
or each 8k expansion can be individually switched on or off.

I've actually had the pcb for maybe a year and just never had time to complete it until now.
Seems to work great as "doom" is running and it does require 35k.

Pretty happy with it! And I do know that this can be accomplished much easier,
but it just gave me the most excitement to do it my way and learn along the way.
Also added reset switch to it to make it more useful.

Have a bunch of them 2k ram ic's too, which will come to a good use now...
 

Attachments

  • 1.jpg
    1.jpg
    144 KB · Views: 3
  • 2.jpg
    2.jpg
    131.5 KB · Views: 3
  • 3.jpg
    3.jpg
    256.5 KB · Views: 3
Just scanning this complex thread, was anyone thinking about adding 3k of RAM internally that is visible to the VIC chip? This is a really useful upgrade, beyond just adding the 3k via the external bus.

Doing this means you can have full hi res at 224x224 in PAL, or have a frame buffer, or have interlaced FLI modes. The orginal VIC20 was to have 8k this way, filling $0000-1FFF but Jack wanted to make it cheaper.

There is a thread on doing this somewhere on Denial..
 
Last edited:
@orac81 You would need to do more than just add some more ram as the VIC-20's screen/video memory is of a fixed size.

Adding additional memory via the expansion port normally results, afaik, in an automatic reorganization of memory space with respect to how it is divided up for BASIC, etc.

If you wrote your own software in assembly you could possibly use extra ram for simple page flipping, but it would probably be tedious to move the data around.

One possibility would be a hardware mod to add additional memory that responds to the same addresses as video memory, but then you need some way to switch between the additional "pages".

Without altering the ROM or never using it, you are unlikely to achieve increased resolution.
 
The normal VIC20 hires pixel graphics mode is typically 160x192, using 4k memory $1000-1fff. (You can go a bit higher, using low ram, shuffling hi ram in, but that will have disadvantages.) The screen is at $1000 with 240 chars in 8x16 line mode, and a char set for the pixels at $1100. If you check the v20 threads here you will see some code I posted demonstrating this for the VBCC compiler.


https://forum.vcfed.org/index.php?t...dg-graphics-to-vic20-c-vbcc-programs.1253827/


If you can fill $0400-0FFF with Ram visible to the VIC chip (not just the 3k external RAM) you can have 8k visible to the VIC chip, that can extend the resolution, (upto 224x256 if your monitor can handle it) or allow frame buffers, animations, or other tricks. You need to use raster sync IRQs to change the chrset ptr mid-screen.

You could also have the screen at $0400, and (assuming added ram) 30k Basic ram $0601-7fff, if you want.

This upgrade has been done, but is not trivial, it requires soldering.

On the 64 Commodore realised this problem, and the VIC2 can switch its 16k memory to 4 positions in 64k.
 
Last edited:
Back
Top