Jump to content

Help dumping a 16K cartridge with an EPROM programmer


Recommended Posts

Hi Guys

I always wanted to know how Atari cartridges were dumped. I had this idea that an eprom programmer must have been used for this purpose.
However, I never tried to implement this idea, until now.
I know there are cartridge dumps on the net, and that it is very likely all my cartridges have already been dumped. I also know atarimax.com sells a hardware that will allow me to dump cartridges.
However, this experiment is only for fun, for the knowledge and for the satisfaction of being able to accomplish the task.

I have a Needham's EMP-10 EPROM programmer, exactly like the one pictured here:

and a Donkey Kong Junior cartridge I want to dump:

Looking at the standard 16K cartridge schematic by Jerzy Sobola, you can see it consists of two 8K ROM chips, and that they share their data and

address lines:
Pins #S4 of the cartridge connector enables or disables the first 8k ROM, and pin #S5 enables or disables the second 8K ROM.
So the idea is to use the EPROM programmer and configure it to read a 8K EPROM, like the 2764, and by using an adapter and a switch (to select which of the two 8K ROMs to read), to be able to read the contents of a standard 16K cartridge.

I built this adapter. On one end, you have pins that will be inserted on the EPROM programmer, and on the other end, there's a cartridge connector. The adapter has a swith in order to 'activate' #S4 or #S5:


#S4 and #S5 are activated on active low, I.E., at 0 volts. On the EPROM side, #CE has the same behavior and purpose, so this is what I used to enable #S4 or #S5.
After I built the adapter, I put my Donkey Kong Junior cartridge on it, configured the EPROM programmer to read a 2764 EPROM.Then with the switch in the #S4 position, I read the contents of the cartridge. Then, with the switch on the #S5 position, I read the cartridge again. As a result, I got two binary files: DK-L.BIN and DK-H.BIN:

DK-L.BIN, 8.192 bytes, CRC-32: 47E6F535
DK-H.BIN, 8.192 bytes, CRC-32: D66659F0

In order to check if the dumps were OK, I downloaded the 16K dump of the Donkey Kong Junior from Atarimania, and split it:

DonkeyKongJr-A.bin, 8.192 bytes, CRC-32: 47E6F535
DonkeyKongJr-B.bin, 8.192 bytes, CRC-32: 7A815945

As you can see, only the first 8K are OK. I then compared the files DK-H.BIN and DonkeyKongJr-B.bin, and this is what I found:


As you can see, on my 8k dump, when I put the switch on the #S5 position, the first 8 bytes are not read OK, the next 8 bytes are read OK, and the next 8 bytes are not read OK, and so on. Clearly there's a problem on how the #S4 and #S5 lines are being activated.


There's very little information on how these #S4 and #S5 signals work, here's an excerpt of the information I found on the Pixel Past's 16K PCB

The Atari 8-bit home computer systems were designed to support up to a 16K ROM cartridge without special circuitry. The logical mapping of the cartridge is divided into two 8KB sections. The system knows the size of the cartridge (either 8K or 16K) based on the high or low voltage level of two pins on the cartridge (RD4, pin A and RD5, pin 14).Two active-low chip-select lines (/S4, pin 1 and /S5, pin 12) from the Atari 8-bit are used to enable the first 8K or second 8K section of a special ROM (Read-Only Memory) device.


Should I activate both #S4 and #S5 at the same time in order to enable or disable the first or the second 8K segment of the cartridge, instead of activating #S4 or #S5, as I am currently doing it?


Any advices will be highly appreciated.


Thanks in advance,


Louis BQ

Link to comment
Share on other sites

Don't activate S4 and S5 at the same time - that would mean both chips would be selected and try and return data to you.


The "normal" way of copying carts without any extra hardware is just dump it by hotswapping into the computer and use a program which copies it to Ram, then write to a disk file.


The high part of the Rom... the last few bytes contain the cartridge flags and vectors so should give a clue as to success of your dump.

The last 6 bytes of the 8K block equate to:

BFFA-B: Cartridge run address if not a diag mode cart (most games aren't diag mode)

BFFC: Cartridge present flag. This byte must be 00 to signify a cartridge.

BFFD: Cartridge flags. These flags tell the OS if a Dos boot is permitted, and if the cart is diag or normal mode.

BFFE-F: Cartridge init address (or Run address if a diag mode cart)


The trick with reading these 6 bytes - the 4th last byte of a cartridge Rom should be 00. The last 2 bytes are the init address and should always point to somewhere within the cartridge address area.



One query though... wouldn't it just be easier to pull the chip out of the socket and read it with the programmer? I suppose that's no good for soldered in ones though.

Link to comment
Share on other sites

The link Bill sent you is an info page i put together many years ago and it require an ATARI 800XL and a disk drive, in order to copy any cartridge directly to a file.


you can also do it your way but you have to follow these guide lines


1. you need to enable each 8K ROM separately when you try to read it on the EMP Eprom programmer, (enabling the eprom is done by applying 0v (gnd) to pin 20 of the rom

2. if you enable on 8Krom you need to make sure the other ROM is disabled (not applying anything on the second rom on pin 20 - leaving it unconnected) cannot guarantee that it will not interfere with your reading.


so to your board you need to add two switches that either apply 5v or 0v (gnd) to S4 & S5, and then you can make two readings when S4 is on / S5 is off and another read when S4 is off / S5 is on

  • Like 2
Link to comment
Share on other sites

Two active-low chip-select lines (/S4, pin 1 and /S5, pin 12) from the Atari 8-bit are used to enable the first 8K or second 8K section of a special ROM (Read-Only Memory) device.

This information is not quite complete, it's really only accurate for true standard eprom type equipped cartridge boards which were never the typical game cartridge that you are attempting to read. The advice couldn't be worse for you then. By standard eprom type I'm referring to the universal bottom register method for 2732, 2764, 27128, 27256, 27512, etc. 2364 doesn't fit this 'standard' scheme and you haven't noticed that part. Not sure where the disconnect is either, but on the schematic for 16K cart please do note clearly 2364. You have downloaded datasheets for all these eproms of interest yet? You should if you haven't.


Common game carts used custom made Atari maskable roms that also use Address line 12 with custom made high and low logic enable pins on pin 21 on 2364 to also select which chip is active. An odd occurrence of this unique system is that you can pop right for left chips and the cartridge still works fine.


S4/S5 actually only respond to RD4/RD5 which are hard wired on the cartridge board itself in that when they are high, S4/S5 are low and ram is also turned off. This is a constant voltage not dependent on address accessing at ALL. Advice to NOT dual use S4/S5 then is not based on the knowledge that Atari already does exactly this very thing and enables BOTH these same lines 100% of the time. The advice means well and in another circuit should be followed as general good practice which it very much IS, but here it can be completely ignored just as Atari did.


There are more stumbling blocks, the custom roms had some pins moved around and as already stated, you didn't really notice that part? Address line 11 has been moved from pin 23 of a 2764 to pin 20 of a 2764. Pin 20 on a 2764 is a second and not really needed negative logic chip enable pin. Your every other 8 bytes of good data might be because you've neglected to notice that this pin is an address pin instead of a chip enable pin? Too difficult for me to logic out exactly why your data is like it is, what I'm sure of is that mixing up address pins is not the thing to do. And you have done exactly this.


What I would do is read the combined cartridge as a 27128, S4 and S5 are combined, switchless to pin 22 of eprom emulator plug. Then move Address 11 from the cartridge slot N to the eprom emulator plug pin 23. Pin 2 of the eprom emulator plug then goes to cartridge slot K for address line 12. And then it should read the full 16K perfect front to back. It will also read 8K game cartridges, but the front 8K half will simply not be valid. Might try to read them as 2764 and have success? You don't need a switch because the Atari plastic rom is a double enabled device, you can't read both chips at the same time if you tried with the above setup and it doesn't matter which is left chip or right chip either. This right/left chip issue WILL matter only on standard eprom designed cartridge boards and those are not the typical Atari cartridge. Please verify the above advice and only proceed when you agree with it. You can do with the switch whatever you like too, it would not be used here is my only point.




Not sure if this will help or just confuse the issue more, but it's a diagram of a circuit board designed to convert a 2764 eprom in the larger socket so that the board can drop into a socket/system made for the smaller 2364 and be used there.



So reading the Atari plastic rom directly on the eprom reader, one chip will read fine as a 2364 and the other would need an inverted signal applied to pin 21 of the 2364 and then it would read fine too. There is actually an eprom like this, the UM2364 - long shot you have this choice in your eprom reader's device selection list but it's worth a try anyway. Oddly enough the UM2364A is the negative logic chip enable version, both made by UMC once upon a time, long, long ago. The datasheet for both is on the web at datasheetarchive.


Nicely done project, I think I cobbled up something similar once, but it was a horrible looking all cable thing that would not have lasted very long anyway. It might help if I could even find it...


So what you built first here was the standard eprom cartridge reader, with a rather confusing 2nd switch system to mix up the custom Atari pins a bit, it would work for both cart types.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...