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 »

Here is the Sync Generator being layed out on the breadboard...

Image
This will become the Sync and Frame Generator

I decided to use 74HC163 counters instead of 74HC08 AND gates to drive the DAC.
The reason is so that I can register the data on the 40 MHz clock edge.
This will take care of any small ns propagation errors due to wiring and capacitance.

If signals really come apart, I can just phase delay the final register clock a bit.

I am now cutting and trimming wires to realize this circuit.
After that, I will write the initial Sync Driver Test in VIC-20 basic!

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 »

That odd looking SRAM is actually a SOJ package soldered to a DIP socket.
There are 512K DIP parts available, but they are 3x the price.
I will need at least 25 of these SRAMs to complete this project!

So I decided to hand solder 1040 tiny wires...

Image

Image

Image

Image

Image

The 512K SRAMs will be used like this on the board...

Code: Select all

Sync Memory : 1 (128K x 8)
Video Buffer A : 2 (120K x 16)
Video Buffer B : 2 (120K x 16)
Media Memory : 16 (8MB x 16)
Sound Memory : 4 (2MB x 8)
I wonder if this sets a record for VIC-20 with the most amount of SRAM?
The VIC will be in command of 12MB of RAM!
Oh, plus it's 32K expansion memory, and internal memory.

Radical Brad
User avatar
Floopy
Vic 20 Devotee
Posts: 221
Joined: Mon Feb 27, 2017 7:38 pm
Location: US

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

Post by Floopy »

Wow...
It looks amazing, keep up the good work!
-Floopy
User avatar
MCes
Vic 20 Afficionado
Posts: 457
Joined: Fri Jul 24, 2015 1:19 am
Location: Italy

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

Post by MCes »

"Two things are infinite, the universe and human stupidity, and I am not yet completely sure about the universe." (Albert Einstein)
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 »

I prefer the more "challenging" way to get the job done.
Something about doing it by hand makes it worth more to me.
Not sure why that is, but that's how I roll!

The real challenge will come when I create the DIY circuit board.
That task is almost unfathomable, which is why I am so looking forward to it.
400+ ICs hand soldered to a copper frame and then wired point-to-point.
And it all has to function from 10MHz to 40MHz.

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 »

Not much time tonight, but did manage to get the VGA monitor to lock!
The SyncGen is a huge mess right now, but appears to be working.
I still have more testing to do before I can post photos or video.

For now, here is a schematic fragment showing the IO from the VIC-20 to the SyncGen...

Image

Green lines are memory mapped IO from the VIC-20.
Blue and grey lines are internal to the logic on the board.

As shown, it takes 5 IO lines to completely program the Sync Generator.
I also came up with a way to have multiple resolutions, and even mixed resolutions.
For instance, half the screen can be 400x600 and the other half 400x300.
... Amiga style!

I am posting these mainly for my own reference.
It's easy to move fast on hardware and forget how things work!
I build mainly by instinct and then document later.

Notice I am using a 74HC193 counter in place of the 74HC74 flipflop.
As always, I find the 74HC74 to be a bit flaky as a Set/Reset system.
The counter removes all possible glitches, and startup instability.

Here is the nicely wired output section of the Video Generator.
This aligns the Sync, Pixel, and Blanking data with the 40MHz master clock...

Image

Now here is the crazy mess I made testing the rest of the circuit.
This actually generates a blank 800 x 600 VGA signal to the exact spec...

Image

I am using an AVR to simulate the VIC-20 IO, just until this works.
I don't want to short out the VIC accidentally, so I keep it off the board while I test new wiring.
When complete, there will be no "modern" tech allowed on the board at all.

Over the next few days, I hope to have some actual images displayed on the VGA.
Probably just a single buffer to allow for some image testing.
The most difficult part of a VGA generator is always the first and last pixel.
Half a nanosecond will mess with your life... really!

Later,
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 »

I was just shutting down for the night, and decided to add one of the 512K SRAMs.
Four more 74HC590 counters, and one SRAM is all that was needed to see pixels.
I couldn't resist. Check out this mess...

Image

Now the Sync Generator tells the video SRAM counters when to reset and advance.
This allows a frame of 400x600 or 400x300 pixels to be displayed.
Data from the new SRAM is sent to the output DAC section.

When an SRAM starts up, it is full of random data.
I only have 64 of the 4096 possibles colors showing here...

Image

It's not much to look at, but a huge milestone in this project.
Seems that my programmable Sync and Frame generator works as planned.

I now have a large job to do before moving on... making the VIC draw something.

At this point, an AVR stuffs the SyncGen, and only random pixels are displayed, so I plan on removing the AVR and writing a test program in VIC-20 basic to start up the Syn Gen and then draw a screen full of pixels.

How long do you think it will take a basic VIC-20 program to draw a 400x300 screen one pixel at a time??
... it should be cool to see.

Once those tests are complete, I will begin the large amount of circuitry required for dual buffer video.
An automatic frame swapping 4069 color VGA system has a lot more parts than this 64 color one frame test.

VIC can do it!

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 »

Since I only get the odd hour in my basement lab to mess around with this project, I often get more than enough time to think about what I intend to do and how to make it work. ironically, I might actually get more done this way!

I have been thinking about the Operating System (VOS-2K) a lot lately as the hardware begins to come to life.
Since my rules of design include only 1980's era parts and no mods to the VIC hardware, I thought I should follow a similar theme with my operating system, and make it feel like a VIC-20.

The video output from V2K will be capable of VGA 400x600 resolution with 4096 colors, and I do intend to leverage this upgrade to make the IDE more comfortable to use. After all, I do intend to spend many hours tapping assembly code into my real VIC-20 when this project is completed. My VIC-20 will become my main computer!

So I have decided on a text resolution of 44 x 32 characters.
This generates a base screen of 352 x 256 with 24 pixel horizontal borders, and 22 pixel vertical borders.
Borders???... well of course, the VIC has to have borders!
This "console" resolution will be generated by the IDE to keep the personality of the original VIC.

Of course, graphics commands issued to the GPU will ignore this screen mode and simply draw pixels where commanded to anywhere in the actual 400 x 600 screen.

I am also planning to have the VIC startup in the usual console mode with flashing cursor.
In fact, it will be possible to enter a run a simple basic program!
Screen memory locations will of course change, but VIC users will feel right at home.

Most standard VIC basic commands will operate normally, but I will be adding a host of new commands to add functionality to the new hardware much in the same way that the VIC Super Expander Cartridge did.

Several programs will be "built in", and instantly accessible by pressing one of the Function Keys.
Pressing F1 will launch the Assembly IDE where I will be spending most of my time.
Also included in the IDE will be an assembler and extensive 6502 instruction set reference.

F2 may be some kind of pixel paint program or something like that.
These programs are built into ROM, and always instantly available.

As for storing the many Demos and reworked classic games I intend to create, there will be built in functionality to access an external serial device. Instead of using slow 6522 in the VIC, the V2K logic will include its own 8 bit wide shifted IO system that will be easily adapted to anything from a simple EEPROM right up to an SD Card. This way, I am not stuck with some dying technology that requires hunting down parts on EBay!

I know what you are thinking... "What??? but the entire board has 400 ICs from 1980!"
...Well yes and no.

Every single part I am using is just 1980 era logic and simple static RAM, but all of these parts are still made by multiple companies and available from Digikey, Mouser, and many other suppliers. No doubt, these basic logic gates will still be available when I am not!

As for the VIC-20, being the best home computer ever made, it will continue to run indefinitely.

That's about it. Just wanted to write down these thoughts as I am using this thread as my entire development archive.
The VIC-20 will be getting a serious boost without internal modding, and will steel feel like a VIC-20.

Hope to get some 400x300 pixels up on the screen by poking around in basic soon.
Later,

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 »

I managed to get the VIC-20 "sort of" talking to the Sync Generator.

There must be a wire out of place in the mess I made last night, as I am getting a lot of random pixels when I try to draw a rectangle to the SRAM from VIC Basic. Could also be a timing issue between releasing the test address counters and the WE to the SRAM. I will have to look over the wiring carefully when I have a chance.

Once I can demonstrate the ability of the VIC to draw a pixel perfect image on the 400 x 300 screen, I can move on with the rest of the design, which will involve the first small fragments of my new OS, which will remove the AVR from the board and allow the VIC to start up and program the Sync Generator.

During my 2 hours of daily commuting in the dark, I have been thinking about the Operating System and general design.
I am on the fence about one main design possibility, so I will put it out here. Ack... another poll!

In my design, the VIC-20 is fully responsible for setting up the video and then generating it. Everything from borders to text has to come from the OS running on the VIC-20, as I have re-targeted all graphics to the new board. This was always part of the plan, but it does leave one interesting possibility that I really did not consider using... Dual Displays!

What I mean by that is having the VIC-20 original NTSC display showing the IDE and Assembler, while the expansion system displays the video from the assembled and running 6502 code. This does mean I will have to suffer NTSC video on the IDE, but it's actually not all that bad on my NTSC capable VGA monitor as you can see from the photos I have been posting.

The one thing that would have to change with a Dual Display System is that the target assembled program would require a second 6502 on the board to actually run the program while the VIC continues to offer the User Interface. This is actually a cool idea because it offers live debugging or single stepping the running program. I have an entire tray full of WDC65C02 processors in DIP format, and they are within my rules of being retro parts available in 1980, just slightly newer in manufacturing process.

So what do you think?...


Option (1) : Dual Display VIC with IDE shown on the original 6560 NTSC screen.
Option (2) : Single display only in VGA with no output from the original 6560


Cheers!
Radical Brad
KilrPilr
Vic 20 Afficionado
Posts: 342
Joined: Wed Mar 24, 2004 12:09 pm

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

Post by KilrPilr »

Hi Brad,
Great work you are doing. Very interesting read.

I vote option 1. Dual display seems very interesting and opens up huge possibilities I believe!

Keep up the good work!
User avatar
eslapion
ultimate expander
Posts: 5458
Joined: Fri Jun 23, 2006 7:50 pm
Location: Canada
Occupation: 8bit addict

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

Post by eslapion »

Radical Brad wrote:That odd looking SRAM is actually a SOJ package soldered to a DIP socket.
There are 512K DIP parts available, but they are 3x the price.
I will need at least 25 of these SRAMs to complete this project!

So I decided to hand solder 1040 tiny wires...
...

Image
Nobody will think you cheat if you use adapter boards, you know.

What a horrendous amount of work! :shock:
Be normal.
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 guilt of doing it the easy way would chip away at my remaining sanity.
I am building a hot-rod here, so a little hand sanding will be required!

Brad
eslapion wrote: Nobody will think you cheat if you use adapter boards, you know.
User avatar
eslapion
ultimate expander
Posts: 5458
Joined: Fri Jun 23, 2006 7:50 pm
Location: Canada
Occupation: 8bit addict

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

Post by eslapion »

Radical Brad wrote:The guilt of doing it the easy way would chip away at my remaining sanity.
...
I guess this is a new sort of self flogging I have never heard of before :?

I suppose some people may need this as penance for some sinful actions (against technological artefacts?)... :shock:
Be normal.
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 »

Yes, I turned to the dark side in the late 80's.
Seduced like many by the promise of 14MHz turbo speed and endless memory.
Yeah... who would ever need more than 640K?
I have a lot more torture to endure before the guilt of letting my C64 go is gone!

I also just like to build things, the more complicated / crazy the better.

Brad
eslapion wrote:
Radical Brad wrote:The guilt of doing it the easy way would chip away at my remaining sanity.
...
I guess this is a new sort of self flogging I have never heard of before :?

I suppose some people may need this as penance for some sinful actions (against technological artefacts?)... :shock:
User avatar
eslapion
ultimate expander
Posts: 5458
Joined: Fri Jun 23, 2006 7:50 pm
Location: Canada
Occupation: 8bit addict

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

Post by eslapion »

Radical Brad wrote:...
I have a lot more torture to endure before the guilt of letting my C64 go is gone!
...
Shame on you! How could you! SLAP! SLAP! :lol:

No adapter boards for you! EVER! :lol:

Seriously, if you're still without a working C64, I'd be willing to let go of an old 250407 I needed for development tests of PLAnkton. It's been left unused for more than a year now. It's perfectly working and it comes with a PLA which will never fail.
Be normal.
Post Reply