mirror of
https://github.com/TomNisbet/TommyPROM.git
synced 2024-11-21 19:31:12 +00:00
Fix address error with 8755A burning
This commit is contained in:
parent
98986f2922
commit
f5b2a9241a
@ -54,6 +54,7 @@ void PromDevice8755A::begin()
|
|||||||
// address lines. The read and burn code will take care of the ALE line
|
// address lines. The read and burn code will take care of the ALE line
|
||||||
void PromDevice8755A::setAddress(word address)
|
void PromDevice8755A::setAddress(word address)
|
||||||
{
|
{
|
||||||
|
setDataBusMode(OUTPUT);
|
||||||
writeDataBus(byte(address & 0xff));
|
writeDataBus(byte(address & 0xff));
|
||||||
digitalWrite(AD8, address & 0x100 ? HIGH : LOW);
|
digitalWrite(AD8, address & 0x100 ? HIGH : LOW);
|
||||||
digitalWrite(AD9, address & 0x200 ? HIGH : LOW);
|
digitalWrite(AD9, address & 0x200 ? HIGH : LOW);
|
||||||
@ -70,14 +71,12 @@ byte PromDevice8755A::readByte(word address)
|
|||||||
|
|
||||||
// Put the address on the bus and latch it with ALE
|
// Put the address on the bus and latch it with ALE
|
||||||
digitalWrite(CE2, HIGH);
|
digitalWrite(CE2, HIGH);
|
||||||
setDataBusMode(OUTPUT);
|
|
||||||
setAddress(address);
|
setAddress(address);
|
||||||
digitalWrite(ALE, HIGH);
|
digitalWrite(ALE, HIGH);
|
||||||
digitalWrite(ALE, LOW);
|
digitalWrite(ALE, LOW);
|
||||||
|
|
||||||
// Read a byte
|
// Read a byte
|
||||||
setDataBusMode(INPUT);
|
setDataBusMode(INPUT);
|
||||||
setAddress(0xff);
|
|
||||||
digitalWrite(RD, LOW);
|
digitalWrite(RD, LOW);
|
||||||
delayMicroseconds(1);
|
delayMicroseconds(1);
|
||||||
data = readDataBus();
|
data = readDataBus();
|
||||||
|
@ -29,6 +29,17 @@ CmdStatus cmdStatus;
|
|||||||
// Data polling supported
|
// Data polling supported
|
||||||
PromDevice28C prom(32 * 1024L, 64, 10, true);
|
PromDevice28C prom(32 * 1024L, 64, 10, true);
|
||||||
|
|
||||||
|
#elif defined(PROM_IS_27)
|
||||||
|
// Define a device for a 2764 EPROM with the following parameters:
|
||||||
|
// 8K byte device capacity
|
||||||
|
// 1000us (1ms) write pulse
|
||||||
|
// 15 write attempts
|
||||||
|
// 4x overwrite pulse
|
||||||
|
PromDevice27 prom(8 * 1024L, 1000L, 15, 4); // 2764 with SEEQ intelligent programming
|
||||||
|
//PromDevice27 prom(32 * 1024L, 1000L, 25, 3); // 27C256 with SEEQ intelligent programming
|
||||||
|
//PromDevice27 prom(2 * 1024L, 50000L, 1, 0); // 2716 with single 50ms write
|
||||||
|
//PromDevice27 prom(64 * 1024L, 100L, 11, 0); // 27C040 with Atmel rapid programming
|
||||||
|
|
||||||
#elif defined(PROM_IS_8755A)
|
#elif defined(PROM_IS_8755A)
|
||||||
// Define a device for an 8755A. This has a fixed size of 2K and no
|
// Define a device for an 8755A. This has a fixed size of 2K and no
|
||||||
// other parameters.
|
// other parameters.
|
||||||
@ -490,7 +501,7 @@ void zapTest(word start)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
delayMicroseconds(10000);
|
delay(100);
|
||||||
for (int ix = 0; ix < sizeof(testData); ix++)
|
for (int ix = 0; ix < sizeof(testData); ix++)
|
||||||
{
|
{
|
||||||
byte val = prom.readData(start + ix);
|
byte val = prom.readData(start + ix);
|
||||||
@ -529,6 +540,7 @@ void setup()
|
|||||||
* executing read or write requestes.
|
* executing read or write requestes.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
/* 8085 Test programs
|
||||||
byte ledTest[] =
|
byte ledTest[] =
|
||||||
{
|
{
|
||||||
0xc3, 0x03, 0x80, 0x3e, 0xc0, 0x30, 0x3e, 0xff,
|
0xc3, 0x03, 0x80, 0x3e, 0xc0, 0x30, 0x3e, 0xff,
|
||||||
@ -545,6 +557,7 @@ byte charTest[] =
|
|||||||
0x3e, 0x40, 0x30, 0x3e, 0xc0, 0x30, 0x3e, 0x40, 0x30, 0x21, 0xff, 0xff,
|
0x3e, 0x40, 0x30, 0x3e, 0xc0, 0x30, 0x3e, 0x40, 0x30, 0x21, 0xff, 0xff,
|
||||||
0x2d, 0xc2, 0x30, 0x80, 0x25, 0xc2, 0x30, 0x80, 0xc3, 0x03, 0x80
|
0x2d, 0xc2, 0x30, 0x80, 0x25, 0xc2, 0x30, 0x80, 0xc3, 0x03, 0x80
|
||||||
};
|
};
|
||||||
|
*/
|
||||||
|
|
||||||
word start = 0;
|
word start = 0;
|
||||||
word end = 0xff;
|
word end = 0xff;
|
||||||
@ -644,7 +657,7 @@ void loop()
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
Serial.println(F("TommyPROM 1.5\n"));
|
Serial.println(F("TommyPROM 1.6\n"));
|
||||||
Serial.println(F("Valid commands are:"));
|
Serial.println(F("Valid commands are:"));
|
||||||
Serial.println(F(" Cssss eeee - Compute checksum from device"));
|
Serial.println(F(" Cssss eeee - Compute checksum from device"));
|
||||||
Serial.println(F(" Dssss eeee - Dump bytes from device to terminal"));
|
Serial.println(F(" Dssss eeee - Dump bytes from device to terminal"));
|
||||||
|
Loading…
Reference in New Issue
Block a user