6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Wed May 08, 2024 11:44 pm

All times are UTC




Post new topic Reply to topic  [ 122 posts ]  Go to page 1, 2, 3, 4, 5 ... 9  Next
Author Message
PostPosted: Sat Oct 06, 2018 7:38 pm 
Offline
User avatar

Joined: Mon May 25, 2015 2:25 pm
Posts: 632
Location: Gillies, Ontario, Canada
Now that I have some decent 6502 experience to draw upon thanks to all of my previous hacks (and help from members) here, I will be embarking on my final and most ambitious project yet...

*** VIC-20 JetPack ***

This project will be more challenging than my 300 IC, VGA based Vulcan-74 project because it will introduce a higher level of constraint due to the rules and goals I am about to lay down. But first, here is my 10 second elevator pitch...

VIC-20 JetPack will rocket your games and demos into a new dimension by leveraging the raw graphics power of the Commodore's best selling home computer along with an all new smart bank switching RAM cartridge made using only the most cutting edge 1980's logic components. Massive 2048x2048 games screens, scrolling smoothly at 30 frames per second along with 4 voice sound updated every frame, all driven out of this galaxy with unlimited size alpha aware sprites blasting around the screen. Seriously folks, and here is the best part...

JetPack only needs to plug into the cartridge port on a fully stock VIC-20!

No modifications are necessary to the base unit, and all original Commodore peripherals will function normally, such as your 1702 Monitor, 1541 Disk Drive, and Game Controllers. The competition will be left in the dust by the Friendly Computer, and you will be able to save your quarters and bring the arcade to your own home.


Yeah... I am living in 1982, actually!
During the remainder of this thread, I will not acknowledge any tech. made beyond 1984, so be warned!


Ok, here are my unbreakable rules, laid down in a cigar smoke filled room by Jack Tramiel himself...

- JetPack must only plug into the cartridge port on a stock VIC-20 computer.
- All Video and Sound output must be generated by the standard 6560-101 IC in the the VIC-20.
- JetPack must include a Sprite Generator capable of massive and flexible alpha aware sprites.
- The Sprite Generator will have a pixel bandwidth of no less than 10 Million Pixels per Second.
- Graphics will be computed in a dual buffer system, expressed as two 92x176 bitmapped color screens.
- The JetPack GPU will seamlessly flip buffers to the VIC graphics system on the vertical blanking.
- Every single component in the entire system can only be made of 1980's era 74 Logic or SRAM.
- Graphics and Data SRAM memory in the JetPack GPU will equate to no less than 16 Megabytes.
- All four VIC-20 sound voices and volume will be updated on every single frame.
- A built in tracker system will be available to assist in playing game music and effects.
- The Joystick and Keyboard will also be read on a per frame basis for access by JetPack.
- Games and Demos will be loaded as cartridges through a second cartridge port on the JetPack hardware.
- JetPack Cartridges can hot swapped, and can contain an unlimited amount of storage capacity.
- There will be no limit on the number of ICs used, as long as they are only 7400 logic and static ram.
- A secondary 6502 processor will also be allowed (if required), as it is era appropriate technology.


So those shall be my rules.
In short... this is my take on the VIC-20 Super Expander, but on serious steroids!

It is october 06, 1982, and I shall now attempt to turn the VIC-20 into the Worlds most capable home computer!
Prepare for launch!

Radical Brad


Top
 Profile  
Reply with quote  
PostPosted: Sat Oct 06, 2018 8:53 pm 
Offline
User avatar

Joined: Mon May 25, 2015 2:25 pm
Posts: 632
Location: Gillies, Ontario, Canada
Since I am starting from the beginning on this project, I will once again show the prototyping platform that will be used to wire up what will probably be a 300-400 IC breadboarded project. Once the breadboard is operational, I will be redoing the project on a giant hand wired copper bus circuit board.

Knowing that I will require some serious breadboard real-estate, I went and purchased 50 high quality 1000 point breadboards.
The difference between decent breadboards and cheap China boards is often the difference between success or failure.
If you plan to breadboard, don't go budget!

Image
Good quality solderless breadboards with 1000 tie points each.

To hold 48 breadboard and rails, I made a set of 27" x 14" aluminum base boards.
Each base board has a backing board that can hold connectors for power and other ports.
I opted for 2 boards so these could be easily moved. One board is 378 square inches alone!

Image
27" x 14" aluminum mounting plates with backing pords for ports.

Here is one completed 48 panel breadboard before any of the port routing was done.

Image
This breadboard has 24,000 tie points. I have two of these!

Although the very design of a breadboard turns it into one massive capacitor, I still follow protocol.
Each junction between the VCC and GND rails will have .1uF decoupling capacitors.
Over 20MHz, I have found that yes, these can make a difference in projects with video output.
In this project, I doubt they would really be necessary, but why take chances?

Image
Each board requires 96 decoupling capacitors on the rails.

All Power and Ground rails are now joined, and have decoupling capacitors.

Image
Rails are joined horizontally, and vertically at the ends.

After fastening all 48 boards, here is the final two massive boards.
Meet my MOAB... Mother of All Breadboards!
Got a bigger one?... prove it pal!

Image
This is what a 48,000 tie point breadboard looks like!

Another view of The MOAB, showing the work I have cut out for me.

Image
The Mother of all breadboards waiting for a few million wires.

To connect the MOAB to a VIC-20, I need some kind of expansion port header.
My originally attempt was to unsolder the ROMs from an old cartridge.

Image
A VIC-20 cartridge board with the ROMs removed.

The game cart board did not work, as I realized important pins were missing.
JetPack needs read and write access, which is not necessary on a game cart with only ROM.
To solve this problem, I dug into my retro junk box to find a suitable edge card.

Image
An edge card with the same sized pins as the VIC-20 cartridge.

To make the larger card fit the VIC-20 expansion port, I shaved it with a cutting disc.
The original traces were also ground away so that each IO pin was isolated.
The tape was put on so that I could place a small amount of solder on the tops of the IO pads.

Image
Cut and ground edge connector now matches the VIC-20 cart.

To get the VIC-20 signals to the MOAB, I added 40 wires to the required IO pads.
The wires are 20 inches long, but since the VIC only reads IO at 1MHz, that is no issue.
In my previous breadboard project, I had 40MHz running across miles of wire!
If someone tells you a breadboard is no way to prototype, just yell... "Silence, Lamer!"

Image
The VIC-20 Expansion port extension cable and connector.

Here is the expansion port extender, living in its new home.
This will be the only connection between JetPack and the stock VIC-20.
In the final version, I will make a much nicer board with a proper 3D printed case.

Image
The VIC-20 expansion port connector and extension cable.

At the other end of the extension cable is a 40 pin socket for the breadboard.
Wires are arranged into a nice manageable cluster of functionality.

Image
A standard 40 PIN IC socket takes the IO lines form the VIC-20 onto the MOAB.

Here is the wiring map from the VIC-20 expansion port to the breadboard socket.
As you can see, JetPack is nothing more than a memory mapped peripheral to the 6502.
The address lines expose a maximum of 32K to the Expansion port, VIC uses the other 32K internally.

Image
Wiring map between the VIC-20 Expansion Port and the 40 pin socket.

So here is the start of my new VIC-20 JetPack project.
I have a clean desk, and empty breadboard, and many lofty goals.

Image
3.5 Kilobytes and a 1Mhz 6502. Does anyone really need more?!

My new VIC-20 peripheral will put Atari, RadioShack, and Apple out of business, you shall see!
1982 will be a great year!

Cheers,
Radical Brad


Top
 Profile  
Reply with quote  
PostPosted: Sun Oct 07, 2018 7:32 am 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10800
Location: England
Great start! You are winning the battle against chaos.


Top
 Profile  
Reply with quote  
PostPosted: Sun Oct 07, 2018 1:19 pm 
Offline
User avatar

Joined: Thu May 14, 2015 9:20 pm
Posts: 155
Location: UK
I love it when people start on a small project :P

Especially a small breadboard project :lol:

Mark


Top
 Profile  
Reply with quote  
PostPosted: Sun Oct 07, 2018 2:47 pm 
Offline
User avatar

Joined: Mon May 25, 2015 2:25 pm
Posts: 632
Location: Gillies, Ontario, Canada
Thanks!

The project does seem small as long as I attack it in bite sized chunks.
No doubt, this will be the most complex logic board I have ever made, especially considering the way the 32K VIC-20 extended RAM will be managed as 6500 blocks of 5 bytes, configurable and adaptable as real time 6502 macro instructions on the fly at 10 MHz. Say what??.... that's for a later explanation!

So to officially start placing chips, I am working from the obvious start; the expansion port buffers.

In order to conserve power and not require a power supply the size of a cube van, I have opted to go with 74HC logic on by board, as CMOS logic is very power friendly. I will have no problem running 300+ ICs with half an amp, which is far less than what a TTL based board would demand.

The one snag with this plan is that TTL and CMOS "almost" work together. When I say almost, I mean that the only problem occurs when TTL drives a logical ONE into a CMOS gate. TTL may only put out 2.7 Volts as a HI level, but in CMOS world, a ONE is defined as no lower than 3.5 volts. If you only need to go from CMOS to TTL, than everything will work fine, but the other way around may not.

Before I truly believed this, I tried it anyhow, and it worked about 90% of the time actually.
Eventually, bits were lost in translation, and poor old VIC crashed.

Here are the three different types of 245 buffers I have in my ammo closet...

Image
TTL and CMOS require level translators to mate.

I use each of these three types of 245 buffers depending on the application...

74HC245 : For CMOS to CMOS logic. I will have many of these on my board.
74LVC245 : For 3.3V CMOS to 5V TL logic. I use these for FPGA to TTL.
74HCT245 : For 5V TTL to 5V CMOS logic. These will be used here.

Here is a chart showing the difference between CMOS and TTL legal levels...

Image
Comparing IO levels between TTL with CMOS.

Since I am buffering the almost all Expansion Port signals, I require 4 buffers.
Address, Data, Blocks, and the 6502 PH2 clock will run out to the MOAB.

Image
Expansion port IO buffers ready to merge TTL and CMOS together.

My next small bite will be to wire up the buffers and a 32K SRAM.
Once the IO buffers are working properly, my VIC-20 will boot and show 28,159 Bytes Free.

Later!
Radical Brad


Last edited by Oneironaut on Sun Oct 07, 2018 7:05 pm, edited 1 time in total.

Top
 Profile  
Reply with quote  
PostPosted: Sun Oct 07, 2018 3:20 pm 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10800
Location: England
(Just to note, Brad, it looks like you're hosting the images in a temp folder - please, if you can, take care to preserve this thread for posterity! In ten years time, it will be excellent still to be able to see the project progress. It will be even more retro then. Hosting images here, by attaching, is one approach to consider.)


Top
 Profile  
Reply with quote  
PostPosted: Sun Oct 07, 2018 4:19 pm 
Offline
User avatar

Joined: Mon May 25, 2015 2:25 pm
Posts: 632
Location: Gillies, Ontario, Canada
All my images are either on my http://AtomicZombie.com hosting or http://LucidScience.com, and these will be around long as I am not obsolete!
This thread here is just a condensed version of what will eventually be a much more in depth write-up.
I am redoing AtomicZombie.com, and intend to move all of my robotics and electronic projects there in the new year

Brad


Last edited by Oneironaut on Sun Oct 07, 2018 4:36 pm, edited 2 times in total.

Top
 Profile  
Reply with quote  
PostPosted: Sun Oct 07, 2018 4:28 pm 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10800
Location: England
Sounds great, please pardon the interruption.


Top
 Profile  
Reply with quote  
PostPosted: Sun Oct 07, 2018 4:34 pm 
Offline
User avatar

Joined: Mon May 25, 2015 2:25 pm
Posts: 632
Location: Gillies, Ontario, Canada
For those who breadboard a lot, you might have noticed that my 245 buffers do not have a gap between them.
Most 245's waste breadboard space as their epoxy bodies extend into the pin space, requiring 1 wasted column.
Another annoyance is the ridiculous fact that there are 63 columns per board instead of 64!
We need to track down the "engineer" that spawned this stupid standard and shame them publicly.

I refuse to accept wasted breadboard real-estate!

Here is what happens when you try to lay down six fat bodied 245 ICs in a row...

Image
Hey buddy, move over, I my feet are hangin' over!

In order to adjust the world to my liking, I use whatever means necessary to win.
A grinding disc or drum on a Dremel tool is always handy.

Image
This tool can give your IC package a little body work.

You only need to grind away perhaps 1/16" from each end of the package in order to reclaim the space.
There is plenty of ceramic remaining, and most other ICs do not seem to have this fat body issue.

Image
Taking away 1/16" from each end of the IC package.

After going on a diet, all six ICs now get along nicely in a single row, with pins to spare.
There is about 1/16" gap between ICs, so no risk of exposed metal pads touching as well.

Image
Six ICs in a row, and three columns left over now.

Even after removing the access package, no harm came to any of the pins.

Image
This ICs sit like any of the other packages now, without wasting space.

It may seem strange to worry about the wasted column, but when you consider the loss on the MOAB, it could account for a large amount of wasted space. 74HC245 ICs will be very common in my design, so each row would waste 108 tie points if I did not put them on a diet.

This gives new meaning to the phrase "Electronics Hacking"!

Cheers.
Radical Brad


Top
 Profile  
Reply with quote  
PostPosted: Sun Oct 07, 2018 8:19 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8432
Location: Southern California
Attaching the pictures also has the advantage of displaying them smaller initially, and clicking on them enlarges them. As it is now, I have to scroll left and right and up and down to see the entire picture. It also causes the text in the same post to require left-right scrolling to read each line, because the post becomes as wide as the large picture. If you don't want to attach the pictures, can you reduce their size a bit. Thanks.

_________________
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?


Top
 Profile  
Reply with quote  
PostPosted: Sun Oct 07, 2018 8:48 pm 
Offline
User avatar

Joined: Tue Mar 05, 2013 4:31 am
Posts: 1373
RB, your projects always amaze me... and your use of prototyping boards is extreme (or radical). I also have a couple original PCB Vic-20 machines, including my original one purchased in 1982. A couple years ago, I removed all of the chips and soldered in sockets for everything. Note that mine had the ROMs, CPU, VIAs and VIC chip socketed from the factory. I also replaced all of the logic chips with 74HCxxx versions, sans the 7402 used for the video clock... a 74HCT02 was required there. I also replaced the CPU and VIAs with Rockwell CMOS versions.

Finally I replaced all of the electrolytic caps and applied new heatsink compound to the 5-volt regulator. They work like new still, and I continue to drag them out from time to time and run them. At least on mine, the original power switch tends to get stuck and trying to move it feels like it might break internally, so I've taken the approach of leaving the switch in the On position when I'm not using them.

Attachment:
Vic20_PCB.jpg
Vic20_PCB.jpg [ 540.32 KiB | Viewed 5879 times ]


Will be following your JetPack project! Cheers!

_________________
Regards, KM
https://github.com/floobydust


Top
 Profile  
Reply with quote  
PostPosted: Sun Oct 07, 2018 9:22 pm 
Offline
User avatar

Joined: Mon May 25, 2015 2:25 pm
Posts: 632
Location: Gillies, Ontario, Canada
I find that same thing with the power switches on my units. If left in the off position, you have to really force them after a few months of sitting. I also leave mine in the on position. Nice VIC! I recap mine and ditch the 6560 cage tops as well, and on my workhorse unit, I have sinked the 6560 and Kernal ROM. To date, I have never suffered a VIC-20 failure. Can't say that for any of the modern tech I own.

Garth, what width do you recommend?
On my monitor these 1920 images are still only half the width of my screen, but I can see them getting annoying on a small screen like a phone or something.
I did not notice any way to upload here, but perhaps I should look into that. This thread will certainly contain hundreds of images very soon, and I want to stick to the same format all the way through.

Brad


Top
 Profile  
Reply with quote  
PostPosted: Sun Oct 07, 2018 9:33 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8432
Location: Southern California
Oneironaut wrote:
On my monitor these 1920 images are still only half the width of my screen, but I can see them getting annoying on a small screen like a phone or something.

Wow, that must be some monitor! Mine is 1600x900 pixels. My laptop's is 1440x900. When I post pictures on the forums or my website, I usually reduce them to no more than 800 dots across, often less, depending on how much is necessary to convey the needed information.

_________________
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?


Top
 Profile  
Reply with quote  
PostPosted: Sun Oct 07, 2018 9:50 pm 
Offline
User avatar

Joined: Mon May 25, 2015 2:25 pm
Posts: 632
Location: Gillies, Ontario, Canada
Looking again, I see that my posted images are 1280, and most of my monitors display 1920, with one being higher.
I will resize to 800 width to avoid the horizontal scroll for those on small screens.

Will be done in a few minutes!

Brad

GARTHWILSON wrote:
Oneironaut wrote:
On my monitor these 1920 images are still only half the width of my screen, but I can see them getting annoying on a small screen like a phone or something.

Wow, that must be some monitor! Mine is 1600x900 pixels. My laptop's is 1440x900. When I post pictures on the forums or my website, I usually reduce them to no more than 800 dots across, often less, depending on how much is necessary to convey the needed information.


Top
 Profile  
Reply with quote  
PostPosted: Sun Oct 07, 2018 9:56 pm 
Offline
User avatar

Joined: Mon May 25, 2015 2:25 pm
Posts: 632
Location: Gillies, Ontario, Canada
Ok, I reduced them all to 1024 pixels wide.
I just couldn't bring myself to go as low as 800.. it felt wrong!
If anyone has a screen too small to display 1024 pixels and a small web frame, then I recommend this...

Get a better frickin' display, Perhaps a 1702 monitor!

Let's see how that goes.
Thanks,
Brad


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 122 posts ]  Go to page 1, 2, 3, 4, 5 ... 9  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 6 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: