Author Topic: Reading out old EP-Rom on arduino  (Read 6233 times)

0 Members and 1 Guest are viewing this topic.

Offline RerouterTopic starter

  • Super Contributor
  • ***
  • Posts: 4700
  • Country: au
  • Question Everything... Except This Statement
Reading out old EP-Rom on arduino
« on: June 05, 2012, 11:26:38 am »
I am in the process of repairing a piece of test gear (1982 Vintage) and before i go and damage the rom's in any way during testing i would like to make a backup of them,

i have seen quite a few implementations for offloading older game cartriges, such as http://cc.davisremmel.com/2009/11/22/read-atari-game-rom-with-arduino/

and was wondering if any of you could forsee problems or limitations, or possibly some better way to store and confirm the read off data from later passes,

the ep-rom in question is a 27128 a 5V (10% tolerant) 128K UV Erasable kind, with 14 address lines and 8 output lines,

it may even be corrupted as it is from aging but it would be nice to have a copy incase it is intact,
« Last Edit: June 05, 2012, 11:43:46 am by Rerouter »
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 28063
  • Country: nl
    • NCT Developments
Re: Reading out old EP-Rom on arduino
« Reply #1 on: June 05, 2012, 12:01:15 pm »
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline RerouterTopic starter

  • Super Contributor
  • ***
  • Posts: 4700
  • Country: au
  • Question Everything... Except This Statement
Re: Reading out old EP-Rom on arduino
« Reply #2 on: June 09, 2012, 06:33:43 am »
if anyone ever needs a copy of the ep-rom images for an analogic data precision 6000, i now have them
« Last Edit: June 09, 2012, 10:04:49 am by Rerouter »
 

Offline RerouterTopic starter

  • Super Contributor
  • ***
  • Posts: 4700
  • Country: au
  • Question Everything... Except This Statement
Re: Reading out old EP-Rom on arduino
« Reply #3 on: June 09, 2012, 12:28:28 pm »
seems i missed one rom, a bipolar :/ so looks like i will still need to use an arduino to read it out, (please forgive my inefficient code)
here what i have so far

Code: [Select]
/*
82s129 Arduino reader
By Vincenzo Femia (enzofemia@gmail.com)
Shortened, Fixed and Modified from Zhazma's Version
*/
word addr=0;// Actual Address
boolean a[9];// Address Pins
boolean o[4];// Data Pins

void setup()
{
          for(int A=2;A<11; A++)
            {pinMode(A, OUTPUT);} //set pins for address
         
         for(int Q=11;Q<15; Q++)
            {pinMode(Q, INPUT);} //set pins for data
        }
void loop()
        {
  for (addr=0; addr<512; addr++)// from 00 to 200 HEX address
   {for(int A=0;A<10; A++)  //read status bit of address...
    a[A]=bitRead(addr,A);

           {for(int A=2;A<12; A++)  //...and set output
    if (a[A]==1) {digitalWrite(A,HIGH);}
    else {digitalWrite(A,LOW);}
   
    delay (50);} //Wait so outputs can be set by ROM

           {for(int Q=0;Q<4; Q++)
    o[Q]=digitalRead(Q+11);}//read bit from data outputs

Serial.begin(9600);//Setting serial communication
//Write in binary ASCII address read and "->"
            {for(int A=8;A>=0; A--)
     if (a[A]==0) {Serial.print("0");}
     else {Serial.print("1");}
     
          Serial.print(" -> ");
//Write in binary ASCII output nibble
{for(int Q=3;Q>=0; Q--)
    if (o[Q]==0) {Serial.print("0");}
   else {Serial.print("1");}
         
          Serial.println(""); //newline.}

    if (addr==511) {Serial.println("ROM has been read");}
    Serial.end();
    }}}}
based upon http://hackaday.com/2011/05/18/arduino-arcade-rom-dumper/

only thing i would like to add to this is how to convert the nibbles i pull out into hex values, i have gotten this far myself, but am struggling on the last mile,
 

Offline TerminalJack505

  • Super Contributor
  • ***
  • Posts: 1310
  • Country: 00
Re: Reading out old EP-Rom on arduino
« Reply #4 on: June 09, 2012, 06:11:19 pm »
Probably the easiest way is to use sprintf:

Code: [Select]
char HexStr[2];
sprintf(HexStr, "%x", (o[0] << 3) | (o[1] << 2) | (o[2] << 1) | o[3]);
Serial.print(HexStr);

This code assumes the MSB is in o[0].
 

Offline TerminalJack505

  • Super Contributor
  • ***
  • Posts: 1310
  • Country: 00
Re: Reading out old EP-Rom on arduino
« Reply #5 on: June 09, 2012, 07:30:53 pm »
It looks like there is a HEX option for Arduino's Serial::print() method as well.  So you should be able to do something like this:

Code: [Select]
int Nibble = (o[0] << 3) | (o[1] << 2) | (o[2] << 1) | o[3];
Serial.print(Nibble, HEX);
 

Offline RerouterTopic starter

  • Super Contributor
  • ***
  • Posts: 4700
  • Country: au
  • Question Everything... Except This Statement
Re: Reading out old EP-Rom on arduino
« Reply #6 on: June 10, 2012, 02:07:37 am »
thank you very much TerminalJack505,
 

Offline RerouterTopic starter

  • Super Contributor
  • ***
  • Posts: 4700
  • Country: au
  • Question Everything... Except This Statement
Re: Reading out old EP-Rom on arduino
« Reply #7 on: June 30, 2012, 02:14:51 pm »
another slight problem, not on the backup side, but rather understanding side,

8 bits are stored on each ROM, however the 68000 CPU of this device reads off 2 at a time for a 16 bit word,

i have the ROM images, but am at a loss on how to interleave them to make them meaningful,

i have attached the first ROM pairs images if any of you might know a method, (Motorola, big edian stored as straight hex)

i apologise if the method is obvious, but all i have found so far is old console Roms, and mac tutorials which are larger than 16 bit or in little edian, :/

(having a little trouble with attachments so trying to add with editing)
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf