// Here's a rewrite of a function in RomTransfer.prc
// Maybe someone will care enough to shove it in there =)
static Boolean HandspringHack (UInt32 romSize, char* romStart)
{
int i;
struct hack
{
UInt32 resetVector;
UInt16 checksumValue;
} hacks[] =
{
{ 0x10C032F2, 0xFB2C }, // small ROM - masked ROM build
{ 0x10C6B6C8, 0x175C }, // big ROM - masked ROM build
{ 0x10C032F2, 0x2A87 }, // small ROM - OTP ROM build
{ 0x10C6B6C8, 0xA843 }, // big ROM - OTP ROM build
{ 0x10C032F2, 0xC8B7 }, // small ROM - Visor rev b
{ 0x10C6B6E2, 0x831D }, // big ROM - Visor rev b
{ 0x100032F2, 0x7F66 }, // Japanese
{ 0x100C2C06, 0x497A }, // Japanese
{ 0x100032F2, 0xEA13 }, // German
{ 0x1006BF42, 0x0495 }, // German
{ 0x100032F2, 0xA20C }, // French
{ 0x1006BC0A, 0x22A1 }, // French
{ 0x100032F2, 0xA34E }, // Spanish
{ 0x1006BC88, 0x62BB }, // Spanish
{ 0x100032F2, 0x70ad }, // Italian
{ 0x1006BD12, 0xE92F }, // Italian
};
CardHeaderType* card = (CardHeaderType*) romStart;
if (romSize != 0x1000)
return false;
if (StrCompare ((char*) card->manuf, "Handspring, Inc.") != 0)
return false;
for (i = 0; i < sizeof(hacks) / sizeof(struct hack); i++)
{
if (card->resetVector == hacks[i].resetVector &&
card->checksumValue == hacks[i].checksumValue)
return true;
}
return false;
}
--
Adam Wozniak Chief Architect
Surveyor Corporation
[EMAIL PROTECTED] 4548 Broad Street
[EMAIL PROTECTED] San Luis Obispo, CA 93401
--
For information on using the ACCESS Developer Forums, or to unsubscribe, please
see http://www.access-company.com/developers/forums/