Bally Technical Info (cartridge port)
                    First revision: September 1, 1998
             By Ward Shrake, with some info from Jay Tilton

This text is a collection of technical info that may be useful to people
either dumping ROM carts or trying to make a Bally Astrocade software
emulation system. It only discusses cartridge port pinouts and the like;
it does not attempt to go any deeper into the Bally hardware than that.

Basically, the short story is that the ROM chips inside Bally carts are
pin-compatible with the 2364 series. The pinout for that chip is below.
The pinout for both standard 4k and 8k EPROM chips is also shown below.
Jay Tilton worked out the Bally's cartridge port pinout; see below also.

With these bits of info below, the average wire head should be able to
make a clean dump of the ROM info inside Bally Astrocade cartridges. The
way I did mine, once I knew what type of chips I was dealing with, was to
unscrew the "cassette-ridge" cartridge case, pop off the circuit board,
and carefully desoldered the ROM from the circuit board. I did it that
way then, because I was still experimenting. It was easier for me to just
desolder the chips and use them "raw" than do otherwise. (If you have one
of those handy clamp things -- one end clips onto the chip's pins and the
other end has a cable ending in a set of DIP pins that plugs directly into
an EPROM burner -- you can skip desoldering it, but I didn't. Oh well.)

That's it for the main portion of this text. (Told you it would be short!)
The rest is more-or-less chit-chat. Then of course, those pinout diagrams.

Caveat: these comments are largely conjecture, based on looking over the 
hardware and five carts. Your mileage may vary, but this info should be a 
good enough head start to be worthwhile passing on. Enjoy!  -- Ward Shrake

                               Assorted notes

Without knowing what type of memory chip the Bally uses, I assume that a
quick scan of a Bally ROMs pinout would lead someone to believe they were
standard 2732-compatible chips. That's what I believed, until I dumped a
few ROMs that looked cut-off once I viewed them through a hex editor. It
makes sense at first glance; 24 pins means 4k or less, right? And when I
desoldered a few ROMs from their circuit boards, and threw them onto my
old (Commodore 64) Promenade EPROM burner to read them, they did get the
first 2k correct. After that, the higher address lines are not where they
were supposed to be, so the rest of the memory just seemed blank. Like I
said, until I looked through the ROM dumps, everything seemed fine. I got
confused for awhile there, figuring that the address lines had to be in a
different place than expected. Short story, I remembered the Commodore had
24-pin ROMs that were 8k x 8 bit. I looked up some pinouts from my Vic20
ROM archiving project web page (http://members.aol.com/wshrake/index.htm)
and compared them to the Bally carts I had, and to Jay Tilton's pinouts of
the actual cartridge port inside the Astrocade itself. It occurred to me 
to check this when I was dumping the (known 8k) system ROM; it had faint 
markings indicating it was a 364 chip. Sure enough, it read as a 2364.

My looking through the Bally Astrocade FAQ's technical section shows that
the machine was only intended to have 8k of address space for cartridges.
This makes sense, given the fact that it was first made in 1978; memory
cost a fortune then, and it seems that most of the first generation of
home console games were 2k in size. Most early Atari 2600 games were 2k.
As time went on 4k chips got cheap enough to write larger games. 8k games
eventually showed up, then 16k and so on. (How far we've come!?) Remember
that even the dedicated home computers of this era had the same limits, at
least at prices mortals could afford. For its time, the design made sense.

Speaking of sense, I'd have to tip my hat to the Astrocade's designers for
not needlessly complicating the cartridge port. The pinout, if you compare
the cart port to the memory chips it is intended for, is pin-for-pin. The
only change from that are two extra ground lines; one on either end of the
cart. Ignore those two lines, and the other pins "fan out" perfectly. 

This also may help explain why the manufacturer told users to insert carts
with power on; they'd planned to make it perfectly safe. Insert a cart
crooked, in either direction, and the first pin to make contact is ground.

Besides that, though, it is pleasing to see a layout that is simple and
uncluttered. When the Astrocade gets to that point in its retro life, it
will be relatively easy for techies to design their own boards. Why? The
entire "bottom" (non-component) side of the PC board is really unnecessary.
That makes designing and etching a new board much, MUCH simpler! As is,
the "bottom" side is basically just one big ground plane. (May help cut RF 
but it should not significantly affect cart performance if it were not
present.) My advice for board designers? Pretend surface mount design was
the way things were back then. Design the board for a 2364 (or 27xx) with
its pins bent outward on both sides, sitting flat on top of the circuit
board. Then you are only designing a one-sided board! Can't be simpler;
the pins all fan out almost perfectly, with plenty of room for fat home-
etched traces. And redesigning for a 27xx series EPROM only involves
changes to three of the 24 pins. And even those are all on the same side
of the chip, close enough to each other to just design for short jumpers.
As long as you aren't worried about designing to NASA specs, what the heck?

Last but not least, just in case anyone but myself still uses the trusty
Promenade EPROM reader / writer on an old Commodore 64, here's the 
(Promos 2.0) commands you'll need to use for this project...
        To read the rom chip into $8000 - $9fff:  R 8000, 9FFF, 0, 30
        Simple commands: "V" by itself is verify, if you just read a chip.
        To burn an MCM 68764 replacement:  P 8000, 9FFF, 0, 30, 46
        Memory fill, with all zeros:  F 8000, 9fff, 0
        See ASCII dump of memory:  I 8000, 9fff  (then hold control down)
        See HEX dump of memory:  M 8000, 9fff

  Pinout diagram: "MPS 2364" ROM chip
  (24-pin ROM chip, 8K x 8 bit.)
            ____    ____
            |   !__!   |
       CA7  | 1     24 | +5 Volts
       CA6  | 2     23 | CA8
       CA5  | 3     22 | CA9
       CA4  | 4     21 | CA12
       CA3  | 5     20 | CS (Chip select, active low)
       CA2  | 6     19 | CA10
       CA1  | 7     18 | CA11
       CA0  | 8     17 | CD7
       CD0  | 9     16 | CD6            CA0 - CA12 are address lines.
       CD1  | 10    15 | CD5            CD0 - CD7 are the data lines.
       CD2  | 11    14 | CD4
       GND  | 12    13 | CD3

    Notes: There is at least one EPROM that is pin-for-pin compatible
    with the 2364 ROM chip, but it may be hard to find; Motorola 68764.
    (The big difficulty is pinout; most 8k x 8 bit chips have 28-pins.
    If you can swap wiring around or make an adapter a 2764 may work
    in an application where a 2364 was originally intended. Hacking the 
    Kernal ROMs inside the Commodore 64 are a good example of this. I
    did a much larger text, about Vic20 EPROM hacks; see my web page.)


  Pinout diagram: "2732A" EPROM chip
  (Standard 24-pin EPROM chip, 4K x 8 bit.)
            ____    ____
            |   !__!   |
       CA7  | 1     24 | +5 Volts
       CA6  | 2     23 | CA8
       CA5  | 3     22 | CA9
       CA4  | 4     21 | CA11
       CA3  | 5     20 | OE / Vpp  (OE is active low)
       CA2  | 6     19 | CA10
       CA1  | 7     18 | CE  (Chip select, active low)
       CA0  | 8     17 | CD7
       CD0  | 9     16 | CD6            CA0 - CA11 are address lines.
       CD1  | 10    15 | CD5            CD0 - CD7 are the date lines.
       CD2  | 11    14 | CD4
       GND  | 12    13 | CD3

  Pinout diagram: 2764A EPROM
  (This is a standard, 8K x 8 bit memory chip)
            ____    ____
            |   !__!   |
        Vpp | 1     28 | Vcc  (+5 Volts)
        A12 | 2     27 | PGM  (Active low)
        A7  | 3     26 | N.C. (No connection)
        A6  | 4     25 | A8
        A5  | 5     24 | A9
        A4  | 6     23 | A11
        A3  | 7     22 | OE  (Output Enable; Active low)
        A2  | 8     21 | A10
        A1  | 9     20 | CE  (Chip Enable; Active low)
        A0  | 10    19 | D7
        D0  | 11    18 | D6
        D1  | 12    17 | D5
        D2  | 13    16 | D4
        GND | 14    15 | D3

  Jay Tilton helped with this text, by figuring out the Astrocade's cart
  port, and posting that info on Usenet. Once I thought I had figured out
  what was going on with the ROM chips inside some Bally carts I dumped,
  I verified my conclusions with Jay's info. My info and his seem to match
  so I'm assuming both of us are accurate. Here is Jay's Usenet post...

        >  Subject: Bally Astrocade Cart Pinout
        >  From: tiltonj@erols.com (Jay Tilton)
        >  Date: Sat, Mar 28, 1998 12:14 EST
        >  Message-id: <351d2a40.854326@news.erols.com>
        >  I couldn't find this info anywhere around, so I sat down and 
        >  figured it out.  Perhaps somebody else can use it, or include 
        >  it in the FAQ.
        >  Looking at the cart slot, pins are being numbered here from 
        >  1 to 26, left to right.
        >   1: GND      14: D3
        >   2: A7       15: D4
        >   3: A6       16: D5
        >   4: A5       17: D6
        >   5: A4       18: D7
        >   6: A3       19: A11
        >   7: A2       20: A10
        >   8: A1       21: Enable (low)
        >   9: A0       22: A12
        >  10: D0       23: A9
        >  11: D1       24: A8
        >  12: D2       25: +5V
        >  13: GND      26: GND
        >  --
        >  Jay Tilton
        >  tiltonj@erols.com

[End of file]