[net.micro] Universal Vectrex Interface

Mike.Blackwell@CMU-RI-ROVER.ARPA (05/11/84)

Well, the universal Vectrex interface that I've been talking about for a
while is finally working well, so it time for me to distribute schematics so
others can build them, and we can have some REAL fun with the Vectrexes...

In its simplest form, the interface looks just like a game cartridge to the
Vectrex. It contains 8K bytes of RAM, which map in to the Vecs address space
from 0 to 1FFF. Unlike a cartridge (or at least most cartridges), the Vec
can also write in to this memory and use it for data storage (for example,
the Animaction cartridge has some RAM in it along with the ROM, to give the
Vec enough space to store your pictures).

To plug the interface in to the Vectrex, I butchered a cartridge (Bezerk, in
fact. Pretty awful game). Unscrew the cartridge, take the chip out (cut it
off the board, or if you're good, unsolder it), glue a piece of perfboard on
top of the board, bolt on a 40-pin ribbon connector, solder wires from the
card fingers to the connector, and then bolt the bottom half of the shell
back on. Viola!

The host side of the interface simply plugs in to any 16-bit parallel I/O
port (you can actually get by with 8 bits I/O and 4 bits output only). The
host has explicit control over who gets to access the memory. The host can
also write lock the memory, so the Vectrex can only read from the interface,
and not write in to it. And, of course, the host can read and write in to
the memory (to save bits, it can only read and write sequentially in to
memory, as opposed to random access).

Also, the spare IO line from the Vec (PB6) is connected to an IO line on the
host.  I haven't used this yet, but I envision that cooperative programs on
the host and Vec could use it to handshake data.

I've dumped all of the game cartridges, and they all run fine loaded in to
the interface (now I can get rid of that drawer full of games!).

Ok, on to details... The interface is built around a Hitachi 6264 8Kx8
static RAM chip, with lots of buffers and some glue. I used the 6264 because
it was simple, and I had some, but... in single quantity pieces the 6264's
cost around $40 (what I paid for my Vec!!). (Note that Toshiba 5564's are
pin compatible with 6264's, so you could use them, too). If you'd like to do
this cheaper, you could use four 6116's (2Kx8 static RAMs, which are cheap
these days) and a 2-to-4 decoder (like a 74HC139) to drive the chip selects
(if you can't figure this out, let me know and I'll give you a hand). I used
all 74HC parts because they are low power, but 74LS should work just as
well.

I also have a C program which runs on one of our 68000 boards (what I'm
using for a host) which can upload, download and check programs in the
interface. I've written it so there are only four host specific routines
(dealing with the IO ports and how get at the programs to download), so it
should be easy to make it work on your host.

If you've read this far and are interested in building one of these: If
you're not at CMU, send me mail, and I'll mail you a copy of the schematics
and the program. If you're at CMU, the directory I keep everything is
[cmu-ri-rover]/usr/mkb/micro/vectrex. The schematics drawing files (suitable
for dovering) are: dp/int1.press, int2.press and int3.press. The program is
src/dload.c. If you'd like, I can print you up a copy of the schematics.

If you'd like to see the interface in action, its in the Mobile Robot Lab
(DH3329). I'm usually around in the afternoons and evenings. Stop by!

So lets start writing some programs! On this matter, somebody said that they
had a 6809 cross assembler for Unix, and posted it to net.sources in Usenet
land. Could somebody get this and either place it somewhere on the ARPAnet
where I can get at it, or net mail it to me? Thanks!

		happy trails, -m-

		Mike Blackwell
		Robotics Institute
		Carnegie-Mellon University
		Pittsburgh, PA, 15213

		Phone: (412) 578-8830
		ARPA: mkb@cmu-ri-rover