Subject: [stella] RAMCART PCB From: "Eric Ball" <eball@xxxxxxxxxx> Date: Wed, 2 Oct 2002 14:59:51 -0400 |
Although there has been a discussion on stellalist about RAMcarts, I haven't been able to track down a PCB design. The following is my final attempt at creating one, and I am fairly certain it will work. However, I have not actually made and tested one for cost reasons. I also have based the cartridge edge connector on the pictures of the Pixels Past PCBs. The following picture is taken from the ExpressPCB.com "free" PCB layout tool. ExpressPCB will manufacture 3 of the PCB for US$62 including shipping. I've posted the picture rather than the file so people may use other PCB layout tools (like Protel's EasyTrax for DOS) to generate industry standard gerber files. If anyone is interested, I will gladly provide either the ExpressPCB or EasyTrax files. And if anyone wants to go the ExpressPCB route, let me know and I might buy one of the PCBs off you. (See attached file: RAMCART.gif) (Yes, I know all about the GIF patent issues, but it is still an extremely common and well documented format with a good compression ratio.) The PCB is a 2 layer design. Since this picture is from ExpressPCB, the PCB conforms to the 3.8"x2.5" miniboard size. Optimally, the edge connector should be longer. The width of the PCB was determined by the size of the DB25 parallel port connector. Naturally, the final PCB will need to be trimmed for the edge connector. Those of you who do PCB layout will notice that this design is a little unusual. However, one of my objectives was to avoid any vias other than those required for the components. This has also meant that bit order is not preserved with respect to the parallel port. (But since a program will be generating the bits, a simple table lookup will fix that problem.) Components required: 1 x DB25 male, right-angle (parallel port connector) 1 x DS1225 8Kx8 NV-SRAM or equivalent 2 x 74LS374 Octal D flip flop 1 x 74LS04 Hex inverter (Note: although an 8kbyte SRAM is used, only 4kbyte is accessible. Bankswitching would require a PAL or FPGA. A switch could be wired in to select the banks.) To provide power to the PCB when it is connected to the PC (since the PC parallel port doesn't have a power pin), you will need the following components: 1 x Atari cartridge connector 1 x DB15 male and wire or a dead joystick 1 2 3 4 5 6 7 8 F E D C A B 9 Connect the four outside (1, F, 8 & 9) pins of the DB15 to pin 11 of one side (top) the Atari cartridge connector (power) Connect the three inside (4, D & C) pins of the DB15 to pin 1 of the other side (bottom) on the Atari cartridge connector (ground) To program the RAMcart you will need to do a little programming. (If someone gets this far, and I get one, I can probably write it.) But the C code goes something like this: fp = fopen( "2600cart.bin", "rb" ); for ( msb = 0; msb < 16; msb++ ) { _outp( 0x378, xmsb[msb] ); wait 0.5 uSec _outp( 0x37A, 0x02); wait 0.5 uSec _outp( 0x37A, 0x00); wait 0.5 uSec for ( lsb = 0; lsb < 256; lsb++ ) { _outp( 0x378, xlsb[lsb] ); wait 0.5 uSec _outp( 0x37A, 0x08); wait 0.5 uSec _outp( 0x37A, 0x00); wait 0.5 uSec _outp( 0x378, xdata[fgetc(fp)] ); wait 0.5 uSec _outp( 0x37A, 0x01); wait 0.5 uSec _outp( 0x37A, 0x00); wait 0.5 uSec } } fclose( fp ); For the translation tables: 76543210 outp 3 2 10 xmsb 10325476 xlsb 34251607 xdata
Attachment:
RAMCART.gif
Description: GIF image
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [stella] Euchre: release candid, Erik Eid | Thread | Re: [stella] RAMCART PCB, Clay Halliwell |
Re: [stella] Euchre: release candid, Thomas Jentzsch | Date | Re: [stella] RAMCART PCB, Clay Halliwell |
Month |