Jump to content
IGNORED

Atari 810 ROM replacement


cwilbar

Recommended Posts

I have an 810 I'm working on.  I've found the ROM (CO11299C-03) is bad.

 

As I understand it the 810 uses a 2K ROM.  Can this be replaced with a 2716 EPROM ?  I believe the Chip for the 810 used a 2732 (or was it a 2532?) and the extra address line was wired to the RIOT IIRC.

 

However I have been unable to determine how to burn a replacement for a standard 810 ROM via Google or forum search.

 

I do have an EPROM programmer and an assortment of various blank EPROMs, including 2716.

 

Thanks in advance for anyone who knows this tidbit of information.

 

 

Link to comment
Share on other sites

Correct - 2316 type mask ROM.

 

It can be replaced with a 2716 (Stock 2K ROM) or 2732 (alternate ROM, ie Chip/Archiver) but it requires some trace cutting and jumper wires on the solder side of the sideboard PCB to remap some of the pins and invert the chip select... (see: my pictures of 2732 mod for 810 Archiver)

 

I've been pondering if there's a 'solderless' way to do this as well for a while as well. There's even adapters to that would technically work to adapt larger EPROM's to 2316, but there's just no room between the sideboard and the data separator board to fit something taller than a single DIP IC in the ROM socket... Because of the lack of room, other classic 810 mods like the Happy even installed chips upside down on the solder side of the PCB with all the pins bent up!

 

I don't have a mod documentation handy to convert 2316 to 27xx, but should be similar to modding an 850 to use a 2532 instead of 2332: https://atariage.com/forums/topic/289938-bare-850-printed-circuit-board/?do=findComment&comment=4268832

 

Edit: Also, to be absolutely sure the ROM is BAD - without swapping it into another 810, I've also verified ROM's by  swapping it into any 8K socketed brown-shell Atari cartridge PCB, and saving the cartridge memory area from DOS. The 810 ROM should repeat 4 times in the A000-BFFF area...

 

Edit 2: I'm sure there are people here with a spare CO11299C... I will likely yield one if I ever get to modding a 2nd 810 with archiver...

Edited by Nezgar
  • Like 2
Link to comment
Share on other sites

Verified the ROM is bad by swapping the suspect rom into a good board, which rendered that board non working.  I then tried a good rom in the 'bad' board, which resulted in a working board.  So issue followed the ROM.  I then tried a reseat of the suspect rom... no luck, issue stays with the rom on either of the two sideboards I tried.

 

Will take a look at some of those links.

 

As for a replacement, wonder if there would be enough room under the data separator for a PCB with a PLCC EPROM and a surface mount inverter..... though I suspect that this ROM is still out there.

 

If anyone has a spare rom, let me know and in the meantime I'll see if I can figure out the 2716 route.

 

Link to comment
Share on other sites

I am getting confused by this ROM.... ?

 

So, it has 3 chip selects.  On the 810 schematic, these are labeled /CS1, /CS2, and CS3.  That is CS1 active low, CS2 active low, and CS3 active high.  So, I presume this is an AND situation, not an OR situation, as datasheets would seem to indicate the programmable nature of the chip selects is so that up to  8 EPROMs can be tied together on these eliminating the need for decode logic for chip selection.

 

OK... makes sense.... but then atari has /CS1 and /CS2 tied high according to the schematic.  This would indicate the chip will never be selected......

 

Hence, my confusion.  What is wrong in the schematic.... should these be CS1 and CS2 (not /CS1 and /CS2) ?  or are the /CS1 and /CS2 and they are tied low, not high like the schematics show ?

 

 

Link to comment
Share on other sites

23 minutes ago, Gavin1968 said:

You know you can still get 2716's right?

Yes. (I have some, even 2816 EEPROMs!) Though there currently isn't a 'solderless' way to replace the original 2316 mask ROM with an EPROM - some minor modifications to the ROM socket pinout are required.

Edited by Nezgar
  • Like 1
Link to comment
Share on other sites

On 7/20/2020 at 10:44 AM, cwilbar said:

Hence, my confusion.  What is wrong in the schematic.... should these be CS1 and CS2 (not /CS1 and /CS2) ?  or are the /CS1 and /CS2 and they are tied low, not high like the schematics show ?

Your observations seem consistent with what I've read before. Some previous references to this observation from previous dump attempts:

 

https://atariage.com/forums/topic/279363-the-atari-810-revision-b-rom-has-finally-been-found-dumped/?do=findComment&comment=4041565

https://atariage.com/forums/topic/85478-810-rom-images/?do=findComment&comment=1039736

Edited by Nezgar
Link to comment
Share on other sites

On 7/20/2020 at 9:44 AM, cwilbar said:

OK... makes sense.... but then atari has /CS1 and /CS2 tied high according to the schematic.  This would indicate the chip will never be selected......

 

Hence, my confusion.  What is wrong in the schematic.... should these be CS1 and CS2 (not /CS1 and /CS2) ?  or are the /CS1 and /CS2 and they are tied low, not high like the schematics show ?

The chip selects on ROM chips can be customized, perhaps Atari ordered the 810 ROMs with CS1 and CS2 active high but didn't show this on the schematic.

Link to comment
Share on other sites

Well, thats verification then ?

 

Good job Atari on the schematics ! ?

 

Sadly, their choice here makes it a PITA to use a 2716.... as you then need an inverter.  If they had used an active low input that would spare the inverter requirement ?

 

Probably the best thing is to see if someone has one they pulled to put a Chip/Archiver EPROM in.

 

Anyone have an unused spare they don't need ?  ?

 

 

 

 

Link to comment
Share on other sites

40 minutes ago, cwilbar said:

Sadly, their choice here makes it a PITA to use a 2716.... as you then need an inverter.  If they had used an active low input that would spare the inverter requirement ?

I think that's pretty consistent for atari's smaller mask ROM's (2K, 4K, 8K) to use an inverted CS/CE signal compared to EPROMs. (ie 2600 carts, 1050 disk drive, 850, etc. ) As opposed to 16K & 32K OS ROM's which were directly swappable.

 

The 1050 has an inverted signal available without extra parts by changing jumpers above the ROM socket. The 810 I believe also has such a signal already available, as there appears to be only 3 jumper wires and 1 trace cut for the Chip/Archiver mod I linked to previously.

 

Hmm.. Maybe a 2716 would only need 2 of those wires.... or put a switch on that wire going to the 6532 to toggle between Rev B / Rev C on a 2732. :idea::ponder:

Edited by Nezgar
Link to comment
Share on other sites

I'll have to look at The Chip installation instructions.  From looking at the schematic though I hadn't seen one originally...

 

However looking at them Again, CS3 is tied to the 6507's A11 pin.  But also this is tied into pin 1 of Z103 which then provides an inverted output on pin 2.  So, might be able to use a 2716 with lifted pins and tied to the output of that inverter for the /OE or /CE (not sure which to use or if it matters), and tie the other of /OE or /CE to ground.  Also lift pin 21.

 

I'd rather not modify the PCB traces (unless I decide to do a Chip/Archiver upgrade).

 

 

Link to comment
Share on other sites

Looks like a 2716 should be able to be used as a replacement in the following way:

 

Program the 2716

Lift pins 21, 20, and 18

solder a wire to pin 20, connect that to pin 12 or any nearby ground

solder a wire to pin 18, connect that to either pin 2 of Z103, or pin 5 of Z102 (or to any exposed via/etc that connects on this path)

Leave pin 21 floating (this is Vpp), grounding might be better, but unless this is driven high (> 20V IIRC) the contents of the EPROM should not get corrupted.  Probably would be safe to leave it not bent up, and tied to +5V, but I like the idea of the programming pin floating vs 5V ?

 

Pin 20 is /OE (output enable), and pin 18 is /CE (chip enable).

 

According to the data sheet, /OE is usually tied to /R (which could be had via an inverter (pin 9 of Z102) connected to the 6507s R/W line, and /CE is the chip selection logic (tied into the inverter on the A11 line (pin 2 of Z103 or pin 5 of Z102)).  However, the outputs aren't enabled till the falling edge of /OE.  So, not sure of the behavior when /OE is driven by an inverter on the 6507's R/W line and the resulting timing.

 

I believe as long as /OE and /CE are low the desired function will be achieved.  And therefore, my attempt will be to tie /OE to ground and let the inverter of A11 drive /CE.

 

If all goes well, I'll try this as soon as tonight ?

 

 

 

 

 

 

Link to comment
Share on other sites

Looking further, the Data sheet indicates Vpp at 5V is READ mode.  So, not sure if that needs to be tied to +5V, or if it can be left floating ???

 

Also, looks like the 2316 MASK ROM should have a tACC of 450 and since the enables and address should be driven in parallel (all via the address bus), then as long as the replacement is within that window we should be good.

 

Looking at the 2716 data sheet (for 2716, not 2716-1 or 2716-2 which are faster parts), tCE is 450, so using tCE is match.  tOE is much faster, so if more speed was needed, the answer would probably be to tie /CE low, and use /OE for 'chip selection' which allows for faster response.

 

 

Link to comment
Share on other sites

Success !

 

I lifted 18, 20, 21.

Connected pin 20 (lifted) to pin 12 (not lifted)

Connected pin 18 to pin 5 of Z102 (pin 2 of Z103 would work just as well).

re-inserted the data separator board, installed it into the 810, and up and running !

 

So, if anyone runs into a bad masked ROM on their 810, this method of using a 2716 will work.

 

  • Like 4
Link to comment
Share on other sites

  • 2 years later...
On 7/23/2020 at 3:40 AM, cwilbar said:

Success !

 

I lifted 18, 20, 21.

Connected pin 20 (lifted) to pin 12 (not lifted)

Connected pin 18 to pin 5 of Z102 (pin 2 of Z103 would work just as well).

re-inserted the data separator board, installed it into the 810, and up and running !

 

So, if anyone runs into a bad masked ROM on their 810, this method of using a 2716 will work.

 

Just wanted to stop by and say thanks. I’ve just used this method on a bad 810 and she lives again!

 

interestingly I have 2 more drives in my repair pile with similar behaviour, so may be repeating it again soon. 
 

 

  • Like 1
Link to comment
Share on other sites

1 hour ago, MrFish said:

What's the story on this supposed "Rev. E" ROM, which is 2,054 bytes (?) and says "DAVE STAUGAS" towards the end of the file?

 

I think I got this from Pigwa, as it appears to be the same as what can be found there.

That ROM is 2048 bytes with a 6-byte DOS 2 style binary save header... (FF FF 00 A0 FF A7, meaning load at memory location A000-A7FF (2048 bytes). I believe EPROM programmers like the Bob-Burner saved files with this header format...

 

Without those 6 header bytes, the remaining 2048 bytes that produce a CRC32 of aad220f4. This matches the CRC32 for Rev. E noted in the Altirra Hardware Reference Manual (2022-01-03 Edition). Here is what Avery reverse engineered for the additional commands in Rev. E... These commands could have allowed some nifty tricks if Atari had originally included them in Rev B or C...

Quote

Revision E changes

The revision E ROM adds a few new commands to the 810 over rev. C, specifically ones that allow execution of custom code on the drive.


$20 (execute code)
Command $20 takes a 128 byte data frame sent from the computer and executes it on the 810 at address $80. The firmware sends the command and data frame ACKs before calling the custom routine, and expects that routine to return with RTS. Afterward, the firmware sends the Complete signal back to the computer. $80-FF and $180-1CF are available for use by the custom routine, the former for temporary storage during the routine's execution, and the latter for permanent storage (not used by the firmware at all).


$4F
The bug in revision C that allowed $4F as an alias for $57 (write sector) has been fixed; rev. E rejects $4F with a NAK.


$54 (transfer memory)
Reads 128 bytes of memory starting at the address specified by AUX1 and AUX2, where AUX1 is the LSB of the
address, and sends that buffer back to the computer.


$FE and $FF are trashed by this command and cannot be read back.

Now need to look more into where "Dave Staugas" comes in...  Googling shows he was a prolific Atari Programmer that wrote NEOchrome for the ST, Hover Strike for the Jaguar, Millipede for the 2600, and Rampage for the 7800.

 

Methinks he may have "patched" the 810 ROM to add those features that would be useful to an programmer like himself? It was probably only meant for internal use, and only "leaked" similar to many other things that were leaked / cleared out of Atari...

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

11 minutes ago, Nezgar said:

That ROM is 2048 bytes with a 6-byte DOS 2 Binary save header... (FF FF 00 A0 FF A7, meaning load at memory location A000-A7FF (2048 bytes). I believe EPROM programmers like the Bob-Burner saved files with this header format...

 

Without those 6 header bytes, we are left with 2048 bytes that produce a CRC32 of aad220f4. This matches the CRC32 for Rev. E noted in the Altirra Hardware Reference Manual (2022-01-03 Edition). Here is what Avery reverse engineered for the additional commands in Rev. E... These commands could have allowed some nifty tricks if they had been originally included in Rev B or C...

Thanks... I hadn't noticed the file size until today -- when I was looking at the 810 ROMs I have up on my site. I'll have to get that corrected.

 

12 minutes ago, Nezgar said:

Revision E changes

The revision E ROM adds a few new commands to the 810 over rev. C, specifically ones that allow execution of
custom code on the drive.


$20 (execute code)
Command $20 takes a 128 byte data frame sent from the computer and executes it on the 810 at address $80. The firmware sends the command and data frame ACKs before calling the custom routine, and expects that routine to return with RTS. Afterward, the firmware sends the Complete signal back to the computer. $80-FF and $180-1CF are available for use by the custom routine, the former for temporary storage during the routine's execution, and the latter for permanent storage (not used by the firmware at all).


$4F
The bug in revision C that allowed $4F as an alias for $57 (write sector) has been fixed; rev. E rejects $4F with a NAK.


$54 (transfer memory)
Reads 128 bytes of memory starting at the address specified by AUX1 and AUX2, where AUX1 is the LSB of the
address, and sends that buffer back to the computer.


$FE and $FF are trashed by this command and cannot be read back.

Thanks for the additional info too. Do you know if Avery ever posted a disassembly for the ROM?

 

Link to comment
Share on other sites

30 minutes ago, Nezgar said:

Now need to look more into where "Dave Staugas" comes in...  Googling shows he was a prolific Atari Programmer that wrote NEOchrome for the ST, Hover Strike for the Jaguar, Millipede for the 2600, and Rampage for the 7800.

 

Methinks he may have "patched" the 810 ROM to add those features that would be useful to an programmer like himself? It was probably only meant for internal use, and only "leaked" similar to many other things that were leaked / cleared out...

Yeah - interesting question.  Most I can find is this quote "David Staugas, was a system programmer at Atari and was co-author of the Atari ST's operating system."

Link to comment
Share on other sites

40 minutes ago, Nezgar said:

Now need to look more into where "Dave Staugas" comes in...  Googling shows he was a prolific Atari Programmer that wrote NEOchrome for the ST, Hover Strike for the Jaguar, Millipede for the 2600, and Rampage for the 7800.

That's a pretty varied cross section of Atari hardware, which surprisingly includes nothing for the 8-bit computers (aside from this peripheral firmware).

 

Link to comment
Share on other sites

3 hours ago, Stephen said:

Most I can find is this quote "David Staugas, was a system programmer at Atari and was co-author of the Atari ST's operating system."

Yep, inside at least one of the ST's OSs you can find "Dave Staugas loves..." (I don't remember her name by heart.) 

  • Like 1
Link to comment
Share on other sites

On 7/22/2020 at 2:11 PM, cwilbar said:

Looking further, the Data sheet indicates Vpp at 5V is READ mode.  So, not sure if that needs to be tied to +5V, or if it can be left floating ???

 

Also, looks like the 2316 MASK ROM should have a tACC of 450 and since the enables and address should be driven in parallel (all via the address bus), then as long as the replacement is within that window we should be good.

 

Looking at the 2716 data sheet (for 2716, not 2716-1 or 2716-2 which are faster parts), tCE is 450, so using tCE is match.  tOE is much faster, so if more speed was needed, the answer would probably be to tie /CE low, and use /OE for 'chip selection' which allows for faster response.

 

 

How about using a 2516 chip, closer to the pinout of the rom?

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.

Guest
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.

Loading...
  • Recently Browsing   0 members

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