VIC-20 works with 65816 :-)

From: Ruud Baltissen (
Date: 1998-11-13 20:35:49

Hallo allemaal,

The subject already revealed the good news: I succeeded in replacing the
original 6502 of an VIC-20 with an 65816. Most of you know that I used a
modified card to replace the 6502 of a PET/CBM with a 65816 but that the
VIC-20 did not accept this card ie. the screen remained blank. I always
thought that it was a timing problem. 
Last wednesday I constructed a little gadget which is meant to replace this
"big" card. Yesterday I decided to have another go by using my scope to see
how the signals look when using a 6502 and when using a 6502. Instead the
old card I used my new toy and suprise suprise: a screen appeared. So my
conclusion was that there was a significant difference between the card and
my new gadget. I found out that my assumption of a "timingproblem" was
right but not in the way I had in mind. I could use the card with an 6502
or an 65816. But this meant that I wasn't able to supply a CLK1 signal when
using a 65816. But the PETs and CBMs don't use this signal so no problem
here. I thought that the VIC-20 didn't use this signal either (see the
schematic). Yesterday I found out that the 'small board' VIC-20 does use
CLK1. And my little gadget does supply a CLK1 so .....

How to make a 65816-module yourself? 

You only need 2 IC-sockets, one 74F04, three 10K-resistors,some non-
flexible wire and a 65816 of course. 
One of the sockets has to be of the type with the rocket-shape pins (R-
socket). For the Dutch guys: "gedraaide voetjes". The other one can be of
the type with the two V-shaped metal tongues which grep the pin of the IC
(V-socket). The pins of this socket are as thick as the pins of an IC. It
also can be of R-type as well but the intention is to use this socket to
replace the original 6502 and its rather thick pins could stress the socket
the 6502 was placed in. If you have to desolder the 6502, then there is no
problem. An advantage of using two R-types is that they are more easy to
solder on top of each other in a later stadium of the project.

- cut pin 2, 8, 10 and 12 of the 74F04.
- 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.
- Lay the 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 socket. Do the same with
  13 and 7, 11 and 5  and  9 and 3.
- 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 pops alongside the
  wire going to pin 21 of the Rsocket.
- 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
  soldertip 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
- Solder a 10K resistor on the outside of the R-socket between pin 8 and
- Solder a resistor to pin 35 and bend the other and around the top of the
  socket towards pin 8. This end will be to short so solder a piece of
  wire to this end and solder this wire to pin 8 as well.
- Solder a resistor to pin 35 and connect the other end to the wire
  leading towards pin 8.
- Place the the 65816 in the R-socket and you're ready to use it.

Time needed: 2 hours. But this included a lot of thinking how 

How does it work?

The main differences 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           CLK2

The 65816 lacks the CLK1 and CLK2 clocksignals so we have to produce them
ourself. That's where the 74F04 comes in place. 
ABORT, E and BE are inputs and need a pull-up resistor. 
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. 
The 65816 also lacks the SO-input. The only systems I know of using the SO-
input are some of the drives of C= like the 1541. 

Using the complete 16 MB range in a 30xx or 8032

IMHO it is quit easy to turn your 64K PET/CBM in a 16 MB monster. You only
need a 138, 3-to-8 multiplexer, a 32, quad OR-gates, and a 573, 8-bit
latch. The 573 is used to generate A16..A13 out of the databus using CLK1
as trigger. The 32 and 138 are used to determine when the range $000000 to
$00FFFF is selected. The output of the 138 is used to enable the onboard
74LS154 which normally does the main multiplexing of the signals. Its
enable-signals normally are wired to GND and only have to be connected to
the 138. 

Groetjes, Ruud

This message was sent through the cbm-hackers mailing list.
To unsubscribe: echo unsubscribe | mail

Archive generated by hypermail 2.1.1.