6502 -> 65816
What is it?This project tells you how you to make a very small module that enables you to replace a 6502 with a 65816. Except de-soldering your 6502 (if needed at all), no other soldering on the original board is needed.
The (dis)advantages of replacing your 6502I received emails with questions like: "I replaced my 6502 with 4 MHz 65816 but my system didn't become faster?", "How can I address 16 MB now?" and "Some programs crash my computer, how can?" So before you start to grasp your soldering iron, ask yourself: "Do I need this modification?"
First answer: Replacing a 1 MHz 6502 with a 4 MHz 65816 does not mean that the system suddenly becomes four times faster: a 65816 is as fast as the clock it is fed with!
I have studied the specs of the 65816 to see if it did optimize some opcodes. But IMHO it didn't so IMHO it is as fast as a 6502. So no gain here.
Second answer: The 65816 is capable of addressing 16 MB. But it needs extra hardware to be able to do so. And I'm very sure that a regular 6502 system does not have this hardware on board. Therefore such a system won't be able to address memory or I/O above the 64 KB barrier.
Third answer: The 65816 has more opcodes. And the new ones replace some so called "illegal" opcodes. Running programs using these illegal opcodes will get you into trouble sooner or later.
- except not to be able to run original illegal opcodes, none AFAIK.
- You are able to learn how to use the extra features and opcodes of the 65816 on a system you're familiar with.
- once familiar with the 65816, you can think about expanding your system with some extra hardware so it can use all the features of the 65816.
FYI: I replaced the 6502 of a VIC-20 with a 65816, added some extra logic and now it is able to handle PC 8-bits ISA-cards!
The storyIn 1985 I could lay my hands on a 65816 processor. During my first experiments to replace the 6502 of a VIC-20 with this CPU, it broke down :( In 1997 I could lay my hands on several 65816's for peanuts. So after 12 years I could resume my experiments. This resulted in a small module that you simply put in the place of the original 6502.
The differencesThe main differences between both processors are:
Pin 65816 6502 --- ------- -------- 1 VP GROUND 3 ABORT CLK1 5 ML NC 7 VPA SYNC 35 E NC 36 BE NC 38 M/X SO 39 VDA CLK2The 65816 lacks the CLK1 and CLK2 clock signals so we have to provide them ourselves. That's where two 74F04 inverters come in view.
ABORT and BE are 816-specific inputs and only need a pull-up resistor. These resistors enable you to use these inputs later. If you are sure you don't need them, just omit the resistors and connect these inputs directly to +5V (pin 8) when the resistors are mentioned during the construction.
The 65816 has no SYNC or equivalent but we have to supply this output with a level and IMHO the safest level is (L). AFAIK the only system using SYNC is the KIM-1 and the Elector Junior.
The 65816 also lacks the SO-input. The only system I know using the SO-input is one of the Commodore drives: the 1541.
The moduleYou only need:
- 2 40-pins IC-sockets
- one 74F04
- two 10K-resistors
- some non-flexible wire
- and a 65816 of course
- Cut pin 2, 8, 10 and 12 of the 74F04. These outputs are not needed.
- Cut pin 3 to 7 as well but not too short, leave some 3 mm free.
- Cut pin 1, 3, 5, 7, 35, 36, 38 and 39 of the R-socket, just the bottom small part!
- Lay the R-socket on its back and lay the 74F04 on its back between the pins of the socket so that pin 14 of the 04 is near pin 8 of the socket and pin 7 of the 74F04 near pin 40 of the socket. Place the 74F04 with its pins 8/14 close to pins of the socket. You'll need the space on the other side later.
- Connect pin 14 of the 74F04 with pin 8 of the R-socket. Do the same with 13 and 7, 11 and 5, and 9 and 3. These connections are needed to create a stable mechanical connection with the socket.
- Bend pin 1 of the 74F04 to the middle of the IC.
- Solder a wire to pin 7 of the 74F04 and connect it with pin 21 of the socket. Bend the wire so that it can be soldered to pin 1 of the 74F04 as well.
- Use a wire to connect pin 3 of the 74F04 with pin 37 of the socket.
- Solder a wire of 3 cm long in the HOLES of pin 1, 3, 7 and 39 of the SECOND socket. (The V-socket in my case)
- First bend the wires flat on the socket.
- Then bend the wire of pin 1 so that it pops up alongside pin 7 of the 74F04 if you place the first socket on top of the second.
- Bend the wire of pin 3 of the V-socket so that it pops up between pin 4 and 5 of the 74F04.
- Bend the wire of pin 39 of the V-socket so that it pops up between pin 6 of the 74F04 and the plastic carrier of the R-socket. (this why you needed the space mentioned above)
- Bend the wire of pin 7 of the V-socket so that it lays alongside the wire going to pin 21 of the R-socket.
- Place the R-socket on top of the V-socket and solder the pins to each other. This can be difficult using a V-socket. You'll need a fine solder tip for this work and a lot of patience.
- Solder the wires to the pins of the 74F04:
1 -> 7 3 -> 4 AND 5 (!) 39 -> 6 7 -> wire towards 21 (this connects SYNC to GND)
- Solder a 10K resistor on the outside of the R-socket between pin 8 and pin 3.
- Solder a resistor to pin 36 and connect the other end to the wire leading towards pin 8.
- Place the 65816 in the R-socket and you're ready to use it.
Using the complete 16 MB rangePlease see: 65SC816.
You can email me here.