VIC-2000 Expander. Modern Power Using Retro Parts!

Modding and Technical Issues

Moderator: Moderators

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

Re: VIC-2000 Expander. Modern Power Using Retro Parts!

Post by Radical Brad »

Since you mentioned this, I have been giving it some thought.
When I decided on this project, I knew the following would be true...

- Parts will probably cost $500 or more.
- Time to build will be measured in years.
- Chip count will probably exceed 400.
- Effort and patience required will be astronomical.

The last point is subdued somewhat if a real PCB was to be printed, but not by that much!

Do you think that there would be even one person out there crazy enough to want to build this unit?
Sure, it will be cool to see a stock VIC-20 kick Amiga's ass 10x over, but it comes at a large investment in time.
I am doing this because when I was 12 years old, I said I would. VIC-20 changed my life, so I am paying it back now.

I am good at Altium and DipTrace, so I would certainly consider doing up a set of PCBs for this project if there was interest.
But be warned... soldering 400 ICs will be like building a ship in a bottle.
Not the kind of thing for the modern day "want it now / want it easy" types of people!
I would also expect that a set of real 10" x 20" 4 layer boards to cost in the hundreds (each).

I do plan to completely document this project in great detail after it is working, so for those crazy enough, it can be duplicated.
For now, my focus is to just to convert these extremely lofty goals into something real.

Thanks!
Brad
cobracon wrote:Are you going to create a pcb of this project when you are done? I'm sure a few others here would love to build what you are doing.
User avatar
Mike
Herr VC
Posts: 4816
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Re: VIC-2000 Expander. Modern Power Using Retro Parts!

Post by Mike »

Radical Brad wrote:Sure, it will be cool to see a stock VIC-20 kick Amiga's ass 10x over, but it comes at a large investment in time. I am doing this because when I was 12 years old, I said I would. [...]
At that time, there surely was a discrepancy to be felt between the (graphic) capabilities of the VIC-20, and what could be seen in arcades, movies like TRON and War Games, and the first computer animations in TV (network jingles/intros).

I also had those ideas of having a 'bombastic' intro on power on, instead of the 'drab' start-up screen with a "READY." prompt. At least the intro screen of my CAL 'compiler' (really, an interpreter of a self-invented toy language) was something that hinted in this direction.

These thoughts got outgrown partly because I didn't stuck with the VIC-20: rather the upgrade path went with the C116 and C128 - and directly after that, I *skipped* Amiga, Atari and other 16-bit machines and bought an Acorn Archimedes! With the ARM CPU, a flexible videochip, a built-in BASIC with in-line assembler, and an extremely fast OS (100% machine language!) this machine left all contemporary micros in the dust. At first, I programmed the ARM like a 6502 - then I released the mental brake and learned to use the full potential of the ARM CPU. I also learned C on this machine.

When I found the Denial forum back in 2004, I had already begun to retro-fit all that programming knowledge for use on the VIC-20 - mostly in emulation, since what was left from that time was just the base unit and a +3K RAM expansion. No tape, no disk drive. Emulation just had gotten fast and accurate enough.

I then began to continue those projects I couldn't complete at that time, because:

- a defective PSU made me think the VIC-20 was itself out of order (yet it was O.K.!), and
- lack of knowledge then would mean I was not yet able to put my ideas in code.

My first post here was such a realisation of an old idea I had at that time, having TI$ in the border. My interest in computer graphics also led to a re-instantiation of a BASIC extension I used at that time, now with a higher screen resolution: MINIGRAFIK. A quest, together with another forum member, for the maximum possible resolution and colour depth on VIC-I led to the series "New Frontiers in VIC-Hires-Graphics". I also enhanced the hardware of my VIC-20 with the VFLI mod, an own variant of the S-Video mod, and I use it with Mega-Cart and SD2IEC.

So, while I use much more capable computers for the daily work, and with the Archimedes also had a great system as main platform in the 90'ies and 2000's decade, the VIC-20 has that special place, because it's the first micro I owned. I still find it funny, that it only needs a 1K sized program to transform it into another machine! :mrgreen:

VIC-20 changed my life, so I am paying it back now.
The journey is its own reward - but sometimes it also feels good to return home. :)


P.S. the most intriguing aspect of your project, for me, really is that simple approach of using an address counter with a RAM chip that contains both frame buffer and sync signals, together with a DAC, to build a video generator. That could surely be realised on the size of a standard VIC-20 cartridge - without resorting to some old difficult-to-source video chip (like the 6845, etc.) ...
cobracon
Vic 20 Dabbler
Posts: 74
Joined: Thu Nov 11, 2010 5:46 pm

Re: VIC-2000 Expander. Modern Power Using Retro Parts!

Post by cobracon »

Radical Brad wrote:Since you mentioned this, I have been giving it some thought.
When I decided on this project, I knew the following would be true...

- Parts will probably cost $500 or more.
- Time to build will be measured in years.
- Chip count will probably exceed 400.
- Effort and patience required will be astronomical.

The last point is subdued somewhat if a real PCB was to be printed, but not by that much!

Do you think that there would be even one person out there crazy enough to want to build this unit?
Sure, it will be cool to see a stock VIC-20 kick Amiga's ass 10x over, but it comes at a large investment in time.
I am doing this because when I was 12 years old, I said I would. VIC-20 changed my life, so I am paying it back now.

I am good at Altium and DipTrace, so I would certainly consider doing up a set of PCBs for this project if there was interest.
But be warned... soldering 400 ICs will be like building a ship in a bottle.
Not the kind of thing for the modern day "want it now / want it easy" types of people!
I would also expect that a set of real 10" x 20" 4 layer boards to cost in the hundreds (each).

I do plan to completely document this project in great detail after it is working, so for those crazy enough, it can be duplicated.
For now, my focus is to just to convert these extremely lofty goals into something real.

Thanks!
Brad
cobracon wrote:Are you going to create a pcb of this project when you are done? I'm sure a few others here would love to build what you are doing.
Yeah I see what you mean. I don't think anyone would build it :( I will watch eagerly from the sidelines and admire your fine work. I'm glad you are getting to have a childhood dream realized. Not many people can say that. Good luck with this great project.

BTW love the way you will be displaying the final product. Very cool indeed.
User avatar
Radical Brad
Vic 20 Devotee
Posts: 256
Joined: Sat Jun 24, 2017 8:18 pm
Website: http://www.AtomicZombie.com
Location: Kakabeka Falls, ONT
Occupation: hACKER

Re: VIC-2000 Expander. Modern Power Using Retro Parts!

Post by Radical Brad »

Thanks for the comments.
It's interesting to find out what brings people here.
I wonder how many are here that were not part of the home computer revolution?

When I was young, I had a huge interest in fixing old tube radios (1940-1950 stuff), yet I was only perhaps 10 years old, and born in the "transistor age". I still had a huge thirst for the old stuff though.

Interesting to hear whay drives others to take an interest in 1980's computer tech.

Ok, I now have 25 ICs on the board, and that's just for the IO decoder and RAM expansion.
I am going to start dropping schematic fragments here so I don't forget what I did when the time comes to clean up wiring.
The wiring is always a huge mess when I am prototyping.

Here is how I decoded the four 8K blocks of a single 32K SRAM using just a single AND gate (74HC08).
No doubt, this is probably common knowledge, but I didn't find it posted, so just in case someone is looking...

Image

I decided to allow the 32K to be RAM, not just ROM since I am a huge fan of self modifying code!

Next up will be the Programmable Sync Generator section.
Can't do much else until I can see something on the VGA monitor.

Here is the current mess of wires...

Image


Not sure when my next block of time will be.

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

Re: VIC-2000 Expander. Modern Power Using Retro Parts!

Post by Mike »

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

Re: VIC-2000 Expander. Modern Power Using Retro Parts!

Post by Radical Brad »

Very cool!
I can't tell from the photo, is your HV supply a Marx setup, or Cockroft?

I too, enjoy working with dangerous high voltage machines.
Something about that power!

Here is an old write up on Version One of my half million volt Rock Blaster...

http://lucidscience.com/gal-rock%20disaggregator-1.aspx

Image

https://www.youtube.com/watch?v=PAQabaA2DWE

It has come a LONG way since that version, and now has more power.
I am working on a desktop version as well, but it only uses 200 Kilovolts.

Hopefully I will not see any sparks on this breadboard build!

Thanks for the IO decode info, that saves me 10 nanoseconds, and that is always worth something!

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

Re: VIC-2000 Expander. Modern Power Using Retro Parts!

Post by Mike »

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

Re: VIC-2000 Expander. Modern Power Using Retro Parts!

Post by Radical Brad »

Nice! Much safer than the beast I cobbled together using old radar caps, hand wound coils, and a reversed pole transformer!

Here is an updated 32K decode schematic showing the "one less delay" version as recommended...

Image

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

Re: VIC-2000 Expander. Modern Power Using Retro Parts!

Post by Radical Brad »

Doing a little more work with my OS Boot Loader, and added a "Cartridge Mode".
This will allow me to load up a VIC-20 Cartridge ROM and use it while everything is connected.

My entire V2K system only plugs into the Expansion Port, and the Vic remains 100% stock.
Rather than having to unplug to use a Cartridge, I came up with this...

Image
This allows setting the 32K to ROM or RAM.

This is a 74HC157 Data Selector, which chooses between nibbles (A0-3 or B0-3) depending on the SEL signal.

When SEL = 0...
The Boot Loader controls the 32K SRAMs WE line via the B/RW signal.
The Boot Loader can now write the OS to the 32K expansion memory while the VIC is held in reset.
To load a Cartridge ROM instead of the OS, the B/RW is left low when the VIC is out of reset.
This locks the SRAM as ROM, and the game can now run normally.

When SEL = 1...
The VIC-20 has total control of the SRAMs WE line via V/RW.
When out of reset, the VIC can read or write to the entire 32K SRAM.
Since I like self modifying code, this is how my OS will run.

This is now tested and working, so I am moving on to wire cleanup now.
I will post more complete schematics as I make them.
It's more fun to build stuff!

Oh, and yes, I know a toggle switch could replace the 74HC157 using a 100 ohm resistor instead.
But here is my reason for not going that way...

1) A switch is 6 bucks and the logic IC is 50 cents.
2) Everything is controlled in software now, no manual switch.
3) I like wires.

Ok, back to some afternoon hacking.
I have a thermos full of java, and a few hours to play.

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

Re: VIC-2000 Expander. Modern Power Using Retro Parts!

Post by Radical Brad »

Rewiring progress...

Image

I use the following color codes...

RED : VCC
GREEN : GND
BLUE : DATA
WHITE : ADDRESS
BROWN : SIGNAL

I am now cutting up the 50 or so wires to complete the Address Bus.

The lower row of ICs will be the next to connect, and they are the IO decoders.
Might have some working IO decoding today.
My 1541 is connected and ready to save some test code.

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

Re: VIC-2000 Expander. Modern Power Using Retro Parts!

Post by Radical Brad »

The Boot Loader section is now complete and tested...

Image

On power on, the circuit holds the VIC in reset while the 32K SRAM is loaded from a ROM.
The 32K can act as either ROM (for cart games), or RAM as required by my OS.

This circuit will later expand to allow instant swapping of 24K from the onboard 8MB SRAM.
This will be useful for games or demos that need to "page" in and out more code.

With 2 clicks on my PC, I can convert and load any 32K image and send it to the Boot Loader serially.
I think I will refill my java and let Sargon kick my ass...

Image

Now the IO decode circuit gets wired and tested.
Blinking LEDs shall come to life.

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

Re: VIC-2000 Expander. Modern Power Using Retro Parts!

Post by Radical Brad »

Ok, basic IO tests have worked as expected.
I have the IO2 and IO3 lines from the expansion port driving a set of 8 bit data latches.
Each latch is connected to 8 LEDs...

Image

By poking powers of 2 into these locations, I can set 1 of 16 LEDs on...

Code: Select all

38912 (IO2)
39936 (IO3)
This is the most basic test possible, as it does no address decoding yet.
I will now split the low low Address Bus into 3/5 bits to drive the 75HC138 chain.
When completed, I will be able to set one of 128 lines LO.
This is the logic required to control what is soon to become a massive circuit.

Here is a video of this basic test working...

https://youtu.be/VvITln-LjRU

Ok, now I have to do some REAL wiring.
It's time to kick this project into gear!

Radical Brad
cobracon
Vic 20 Dabbler
Posts: 74
Joined: Thu Nov 11, 2010 5:46 pm

Re: VIC-2000 Expander. Modern Power Using Retro Parts!

Post by cobracon »

WOW. You do such good clean work. Those boards look amazing :shock:
User avatar
Radical Brad
Vic 20 Devotee
Posts: 256
Joined: Sat Jun 24, 2017 8:18 pm
Website: http://www.AtomicZombie.com
Location: Kakabeka Falls, ONT
Occupation: hACKER

Re: VIC-2000 Expander. Modern Power Using Retro Parts!

Post by Radical Brad »

Thanks!
Any job worth doing...

Brad
cobracon wrote:WOW. You do such good clean work. Those boards look amazing :shock:
User avatar
Radical Brad
Vic 20 Devotee
Posts: 256
Joined: Sat Jun 24, 2017 8:18 pm
Website: http://www.AtomicZombie.com
Location: Kakabeka Falls, ONT
Occupation: hACKER

Re: VIC-2000 Expander. Modern Power Using Retro Parts!

Post by Radical Brad »

Took a few minutes to layout the Sync Generator plan...

Image

All signals required to create a 400x300 VGA frame will come from the Sync Memory.
The SyncGen will use a 5MHz clock, derived by dividing the 40MHz master clock by 8.
The other divided clock (20MHz) is fed to the VGA Generator, which I will build next.

The Sync Generator starts up as dumb as as stump, waiting for the VIC-20 to tell it what to do.

To program the Sync Generator, the VIC-20 will use a 6 of its 128 IO to do the following...

Code: Select all

1) Set the Syncgen to "program mode" by toggling the 74HC74 flip flop.
2) Reset both the X and Y counters to zero.
3) Latch the 8 bit Syncgen data through the 74HC574.
4) Increment the count by sending a single clock pulse.
5) Repeat all steps 262,144 times until the memory is full.
6) Toggle the 74HC74 back to Sync Run Mode.
The VIC-20 assembly program required to do this is actually very short.
This is one of the first tasks that VOS-2K must perform after its ROM is loaded.

I hope to see the Sync Generator up and running in the next few sessions I get down here.
So far, everything is working out perfectly!

Later,
Radical Brad
Post Reply