VGER-20... A Multi-Media Expansion Cartridge.
Moderator: Moderators
- 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: VGER-20... A Multi-Media Expansion Cartridge.
Thanks, and Happy 7E2 to everyone here.
It's more trial and error + stubbornness than some innate ability, but it gets the job done!
I think the parallel lines in the breadboard act as capacitors, so it' kind of a built in feature.
Sometimes this works for you, some times against you.
That massive breadboard I posted a few pics up runs at 40MHz, and what is shown is only the first half.
... so a breadboard can certainly be used for some real high speed design.
On a real PCB, I usually add .1uF to all VCC and GND pairs on the ICs.
I also follow the recommendations for any FPGA or CPLD (mostly).
Cheers!
Brad
It's more trial and error + stubbornness than some innate ability, but it gets the job done!
I think the parallel lines in the breadboard act as capacitors, so it' kind of a built in feature.
Sometimes this works for you, some times against you.
That massive breadboard I posted a few pics up runs at 40MHz, and what is shown is only the first half.
... so a breadboard can certainly be used for some real high speed design.
On a real PCB, I usually add .1uF to all VCC and GND pairs on the ICs.
I also follow the recommendations for any FPGA or CPLD (mostly).
Cheers!
Brad
- cbmeeks
- Vic 20 Enthusiast
- Posts: 190
- Joined: Tue May 18, 2004 12:36 pm
- Website: http://meeks.co
- Location: 8-bit Land
- Occupation: Code Monkey
Re: VGER-20... A Multi-Media Expansion Cartridge.
Speaking of FPGA, it looks like you have the Mojo v3 board. I have that exact same board. Did you replace the clock with something faster? What speed?
Cat; the other white meat.
- 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: VGER-20... A Multi-Media Expansion Cartridge.
I put down a 20MHz clock so I could work in multiples of the 800x600 VGA standard (40MHz).
I also ripped up the LEDs to get more IO lines.
VGER-20 is using 90 IO lines... all of them!
It's been a great board so far. A little slow on loading time with a full SLX9, but reliable.
When I do my own PCB, I will probably copy the power supply and general layout of the Mojo.
Brad
I also ripped up the LEDs to get more IO lines.
VGER-20 is using 90 IO lines... all of them!
It's been a great board so far. A little slow on loading time with a full SLX9, but reliable.
When I do my own PCB, I will probably copy the power supply and general layout of the Mojo.
Brad
cbmeeks wrote:Speaking of FPGA, it looks like you have the Mojo v3 board. I have that exact same board. Did you replace the clock with something faster? What speed?
- 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: VGER-20... A Multi-Media Expansion Cartridge.
So far it looks like all of the GPU Commands are working as expected.
I still have to add all the rotations for the Sprite Commands, and test my Bresenham line draw.
4 Channel sound has also been added, but I need access to an external memory source to fully test the Sound Commands since they work with sampled audio data.
I have now outgrown VIC Basic for the remainder of my testing, and will have to move to assembly.
Basic certainly works, but I need to work at high speed now.
To get into assembly, I have added the 32K Expansion Memory to the breadboard.
In the usual fashion, VIC sees memory on Blocks 1,2,3, and 5. Boot code is in Block 5.
I will soon add the AVR that will act as a "Chipset" to the VGER-20 system.
The AVR will load the OS memory in startup, and give access to external SD memory.
With no OS / Assembler yet, I plan on testing the functions like so...
1) Code 6502 assembly using the Kowalski Macro Assembler (great program!).
2) Save the assembled code as a binary image.
3) Use my PC -> Cartridge program to upload the data to the AVR.
4) Press reset and let the AVR load the OS, and boot the VIC
This sequence of events only takes a few seconds once I press assemble on the PC program.
The ability to code and test quickly like this is an absolute must have feature, since I may make 100 changes to a simple routine before it is working perfectly. I am insane when it comes to optimizing 6502 code, so I can't be waiting 15 seconds each time I want to see a change. FPGA programming is actually painful like that... you have to "Synthesize", which on my 32GB Core-7, can sometimes take 15-20 minutes depending on how full the FPGA gets.
Next step will be to test the 32K recently added to the board. Instead of using the usual AND Gate decode logic, I just told the FPGA to handle it...
That's all it takes to create a 5ns quad AND gate to decode a 32K SRAM into four 8K segments.
Verilog really is one of the easiest languages to learn, and it commands so much power.
Later,
Radical Brad
I still have to add all the rotations for the Sprite Commands, and test my Bresenham line draw.
4 Channel sound has also been added, but I need access to an external memory source to fully test the Sound Commands since they work with sampled audio data.
I have now outgrown VIC Basic for the remainder of my testing, and will have to move to assembly.
Basic certainly works, but I need to work at high speed now.
To get into assembly, I have added the 32K Expansion Memory to the breadboard.
In the usual fashion, VIC sees memory on Blocks 1,2,3, and 5. Boot code is in Block 5.
I will soon add the AVR that will act as a "Chipset" to the VGER-20 system.
The AVR will load the OS memory in startup, and give access to external SD memory.
With no OS / Assembler yet, I plan on testing the functions like so...
1) Code 6502 assembly using the Kowalski Macro Assembler (great program!).
2) Save the assembled code as a binary image.
3) Use my PC -> Cartridge program to upload the data to the AVR.
4) Press reset and let the AVR load the OS, and boot the VIC
This sequence of events only takes a few seconds once I press assemble on the PC program.
The ability to code and test quickly like this is an absolute must have feature, since I may make 100 changes to a simple routine before it is working perfectly. I am insane when it comes to optimizing 6502 code, so I can't be waiting 15 seconds each time I want to see a change. FPGA programming is actually painful like that... you have to "Synthesize", which on my 32GB Core-7, can sometimes take 15-20 minutes depending on how full the FPGA gets.
Next step will be to test the 32K recently added to the board. Instead of using the usual AND Gate decode logic, I just told the FPGA to handle it...
Code: Select all
///////////////////////////////////////////////////
////////// PORT : VIC-20 EXPANSION MEMORY
///////////////////////////////////////////////////
output OSMEM13;
output OSMEM14;
output OSMEMCE;
assign OSMEM13 = (VICB1 == 0 | VICB2 == 0) ? 0 : 1;
assign OSMEM14 = (VICB2 == 0 | VICB3 == 0) ? 0 : 1;
assign OSMEMCE = (VICB1 == 0 | VICB2 == 0 | VICB3 == 0 | VICB5 == 0) ? 0 : 1;
Verilog really is one of the easiest languages to learn, and it commands so much power.
Later,
Radical Brad
- 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: VGER-20... A Multi-Media Expansion Cartridge.
Man Cave time has been limited lately, so I took some time to work on the Schematic and Hardware design. After adding the component models to the 3D, I was able to shave a lot of size of the unit, and remove the section the wrapped around the back of the VIC-20 case.
Here is the new layout with most of the main ICs on the board for reference...

Possible layout for the VGER-20 Cartridge.
The main ICs shown above...
(1) Spartan-6 SLX9 FPGA in a TQFP-144 package
(1) XMega-324 Microcontroller in a TQFP-64 package
(1) FPGA Config ROM in a SSOP-20 package
(4) 74X245 Level Translating Buffers in a 20 package
(8) 512K SRAMS in a SSOP 44 package
There are a few other components, but they have more than enough room now.
Gold plated... of course!
I also took some time to bang out a schematic showing what I have working now.
The only thing missing is the AVR "Chipset", which will do the boot process and file system.

This is a large image - right click to view full size.
My next step is to get the AVR installed so I can load some assembly code into the VIC-20.
The AVR will stuff the 32K expansion RAM with my test code, and eventually Operating System.
Progress is slow when you only have a few hours per week for a project, but it will be worth the wait.
So far, interfacing to the VIC-20 has been smooth sailing.
... more credit to the original designers than my hacking efforts for sure!
I am, looking forward to seeing how my Assembly ball bounce demo compares to the Basic test I did.
Later!
Radical Brad
Here is the new layout with most of the main ICs on the board for reference...

Possible layout for the VGER-20 Cartridge.
The main ICs shown above...
(1) Spartan-6 SLX9 FPGA in a TQFP-144 package
(1) XMega-324 Microcontroller in a TQFP-64 package
(1) FPGA Config ROM in a SSOP-20 package
(4) 74X245 Level Translating Buffers in a 20 package
(8) 512K SRAMS in a SSOP 44 package
There are a few other components, but they have more than enough room now.
Gold plated... of course!
I also took some time to bang out a schematic showing what I have working now.
The only thing missing is the AVR "Chipset", which will do the boot process and file system.

This is a large image - right click to view full size.
My next step is to get the AVR installed so I can load some assembly code into the VIC-20.
The AVR will stuff the 32K expansion RAM with my test code, and eventually Operating System.
Progress is slow when you only have a few hours per week for a project, but it will be worth the wait.
So far, interfacing to the VIC-20 has been smooth sailing.
... more credit to the original designers than my hacking efforts for sure!
I am, looking forward to seeing how my Assembly ball bounce demo compares to the Basic test I did.
Later!
Radical Brad
Re: VGER-20... A Multi-Media Expansion Cartridge.
Me too.I am, looking forward to seeing how my Assembly ball bounce demo compares to the Basic test I did.
- highinfidelity
- Vic 20 Nerd
- Posts: 582
- Joined: Thu Jul 28, 2011 2:34 am
- Website: http://www.hirtel.it
- Location: Torino, Italy.
Re: VGER-20... A Multi-Media Expansion Cartridge.
My goodness, this is by far the most complicated homemade array of prototyping boards that I've ever seen! Hats off!Radical Brad wrote:
Radical Brad

GOD is REAL. Unless declared DOUBLE PRECISION.
- 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: VGER-20... A Multi-Media Expansion Cartridge.
Thanks.
That's just the video half. The Audio Board is a bit larger, and is starting to outgrow the board.
I may need to add a 3rd board of this size when the project is completed!
The longest wire on the board is now 16 inches, and carries a 20MHz signal.
Brad
That's just the video half. The Audio Board is a bit larger, and is starting to outgrow the board.
I may need to add a 3rd board of this size when the project is completed!
The longest wire on the board is now 16 inches, and carries a 20MHz signal.
Brad
highinfidelity wrote:My goodness, this is by far the most complicated homemade array of prototyping boards that I've ever seen! Hats off!
- 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: VGER-20... A Multi-Media Expansion Cartridge.
I think I know why I have never seen a bad VIC-20 IC in all my time using a VIC (and that's a fair amount of flight time).
It's because the chips are mainly damaged by heat, which is something I do not have a surplus of.
Took this on my way to work this morning...

Anyone want to complain about the cold???
Yeah... it's been like this almost all week long now.
My VIC lab is at one end of my house, 80 feet from the woodstove, and since I have so little time, I often don't bother to try warming the place up using the little 2500 watt electric heaters. I put on my toque, 3 sweaters, and try to stay warm next to the VIC-20 power supply and soldering iron!
Toque?... yeah, that's this, eh...

So perhaps that's the reason every single 2 prong VIC I have ever seen has never cooked an IC... it's just too cold!
In my search for another VIC, I see many newer units for sale on Ebay.com for a great bargain, but shipping to Canada is just too much. I find the odd beat up 2-pronger for sale on Ebay.ca, but the deals not abundant like they are in the USA.
One thing I did notice is that no matter how beat up the Ontario VIC was, the ad usually said "working". 8 missing keys, totally yellow case, cracked plastic, but... working! Canadian VICs are too cold to fry!
Just my frozen brain rant of the day as I try to warm up this morning!
Cheers,
Radical Brad
It's because the chips are mainly damaged by heat, which is something I do not have a surplus of.
Took this on my way to work this morning...

Anyone want to complain about the cold???
Yeah... it's been like this almost all week long now.
My VIC lab is at one end of my house, 80 feet from the woodstove, and since I have so little time, I often don't bother to try warming the place up using the little 2500 watt electric heaters. I put on my toque, 3 sweaters, and try to stay warm next to the VIC-20 power supply and soldering iron!
Toque?... yeah, that's this, eh...

So perhaps that's the reason every single 2 prong VIC I have ever seen has never cooked an IC... it's just too cold!
In my search for another VIC, I see many newer units for sale on Ebay.com for a great bargain, but shipping to Canada is just too much. I find the odd beat up 2-pronger for sale on Ebay.ca, but the deals not abundant like they are in the USA.
One thing I did notice is that no matter how beat up the Ontario VIC was, the ad usually said "working". 8 missing keys, totally yellow case, cracked plastic, but... working! Canadian VICs are too cold to fry!
Just my frozen brain rant of the day as I try to warm up this morning!
Cheers,
Radical Brad
- cbmeeks
- Vic 20 Enthusiast
- Posts: 190
- Joined: Tue May 18, 2004 12:36 pm
- Website: http://meeks.co
- Location: 8-bit Land
- Occupation: Code Monkey
Re: VGER-20... A Multi-Media Expansion Cartridge.
That's certainly cold. I had to convert to F because I'm an American. 
Coldest I've ever seen was -20 F (~ -29 C). I live in SE Tennessee (USA) and bitter cold is unusual for us. Even though it's been around 8-20 F all week. Most of the time, you can wear short sleeves and no jacket during winter. Our summers are brutal...a couple of years ago we saw 112 F for several days straight during summer. So I welcome the cold.

Coldest I've ever seen was -20 F (~ -29 C). I live in SE Tennessee (USA) and bitter cold is unusual for us. Even though it's been around 8-20 F all week. Most of the time, you can wear short sleeves and no jacket during winter. Our summers are brutal...a couple of years ago we saw 112 F for several days straight during summer. So I welcome the cold.

Cat; the other white meat.
- 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: VGER-20... A Multi-Media Expansion Cartridge.
Lately, there have been only weather extremes around here as well.
I took this photo last summer...

Yep, that reading is 118 F degrees.
My satellite outpost was almost in meltdown mode.
Compared to this morning, that's more than 80 degrees difference!
This nice thing about my basement ManCave is that it never gets over 65 F degrees.
The warmest thing in my lab is either the soldering iron, or the 6560-101 IC.
Brad
I took this photo last summer...

Yep, that reading is 118 F degrees.
My satellite outpost was almost in meltdown mode.
Compared to this morning, that's more than 80 degrees difference!
This nice thing about my basement ManCave is that it never gets over 65 F degrees.
The warmest thing in my lab is either the soldering iron, or the 6560-101 IC.
Brad
cbmeeks wrote:That's certainly cold. I had to convert to F because I'm an American.
Coldest I've ever seen was -20 F (~ -29 C). I live in SE Tennessee (USA) and bitter cold is unusual for us. Even though it's been around 8-20 F all week. Most of the time, you can wear short sleeves and no jacket during winter. Our summers are brutal...a couple of years ago we saw 112 F for several days straight during summer. So I welcome the cold.
- cbmeeks
- Vic 20 Enthusiast
- Posts: 190
- Joined: Tue May 18, 2004 12:36 pm
- Website: http://meeks.co
- Location: 8-bit Land
- Occupation: Code Monkey
Re: VGER-20... A Multi-Media Expansion Cartridge.
I would hope that a soldering iron would always be the warmest thing in any given room...at least any room occupied by humans. I typically keep my soldering iron around 700-750 F when in use. LOLRadical Brad wrote:The warmest thing in my lab is either the soldering iron, or the 6560-101 IC.
Cat; the other white meat.
- 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: VGER-20... A Multi-Media Expansion Cartridge.
Last week a 74HC245 was the warmest thing on the bench.
I wired up a row of them, hit the power , then went upstairs to get more java.
When I returned, the room was full of that all to familiar smell... BBQ Chips!
Full power reversal for 10 minutes, and it was still cooking thanks to my 2.5 amp 5 volt supply.
One thing I still have to learn... let the IC cool before plucking it from the board.
... still have one slightly missing finger print.
Brad
I wired up a row of them, hit the power , then went upstairs to get more java.
When I returned, the room was full of that all to familiar smell... BBQ Chips!
Full power reversal for 10 minutes, and it was still cooking thanks to my 2.5 amp 5 volt supply.
One thing I still have to learn... let the IC cool before plucking it from the board.
... still have one slightly missing finger print.
Brad
cbmeeks wrote:I would hope that a soldering iron would always be the warmest thing in any given room...at least any room occupied by humans. I typically keep my soldering iron around 700-750 F when in use. LOLRadical Brad wrote:The warmest thing in my lab is either the soldering iron, or the 6560-101 IC.
Re: VGER-20... A Multi-Media Expansion Cartridge.
I most definitely agree. By a factor 10 ... sweet Jesus ... and I though my 68000 system I wired up in the 80's was error prone to broken cables ... this must be ... well I am clearly to old.highinfidelity wrote:My goodness, this is by far the most complicated homemade array of prototyping boards that I've ever seen! Hats off!
My deepest bow and the hat of to you Radical Brad.
BR
Thomas Lövskog
Thomas Lövskog
- 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: VGER-20... A Multi-Media Expansion Cartridge.
Well thanks!
To me it just seemed like a bunch of simple logic that grew and grew.
None of the chips are complex, just 74HC gates.
A lot of what I am doing on VGER-20 is based on what I learned doing the huge breadboards.
Here are some vids of the giant board during early development...

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

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

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

https://www.youtube.com/watch?v=fuJz3ERi8Kg
Working with basic 74 logic is a lot like assembly programming.
Just one simple bit at a time until the magic happens!
Cheers,
Brad
To me it just seemed like a bunch of simple logic that grew and grew.
None of the chips are complex, just 74HC gates.
A lot of what I am doing on VGER-20 is based on what I learned doing the huge breadboards.
Here are some vids of the giant board during early development...

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

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

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

https://www.youtube.com/watch?v=fuJz3ERi8Kg
Working with basic 74 logic is a lot like assembly programming.
Just one simple bit at a time until the magic happens!
Cheers,
Brad
TLovskog wrote:I most definitely agree. By a factor 10 ... sweet Jesus ... and I though my 68000 system I wired up in the 80's was error prone to broken cables ... this must be ... well I am clearly to old.highinfidelity wrote:My goodness, this is by far the most complicated homemade array of prototyping boards that I've ever seen! Hats off!
My deepest bow and the hat of to you Radical Brad.