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