[Techtoolslist] Example code for Calculating CRC32 on the Fluke 9100

Andy Welburn warlords at punkass.com
Sat Dec 15 18:59:55 EST 2007


hi all.

Well, after running into this on more than one occasion, i decided to do
something about it, you know when you have soldered-in roms on a game pcb
and you don't have any 'good' signatures for that rom in particular? Don't
want to have to desolder the rom? Don't have a reader capable of reading
that funky rom? Still want to check the roms contents with a known good
dump?

I'm working on an Atari Sprint 2 pcb right now with just such a problem,
after building an adapter to replace the 2k*8 PROM soldered-in with a 2716,
i could then verify that i did have a bad prom there, and subsequently
managed to verify all other roms by burning a bunch of 2716's with mame code
and verifying sigs taken from the real roms in place against the known good
2716... However, while doing this, i pestered a few peopel into trying to
crack the fluke 9100 signature calculation routine so that i could run it on
mame roms and verify on the fluke itself. This is no easy task and i've been
asking around for this for a while now... so i gave up, and thought to
myself it would be great if i could calculate a reliable signature on the
9100 that is easily calculated on the pc on mame roms...

Well then CRC32 is an answer to this, MAME carries CRC32's of all the roms
it uses in all its game drivers, an excellent source of known-good sigs!

With the help of Chris Hardy - who found this small CRC calculator code
online - it looked like it could be converted for TL/1 use:
http://www.di-mgt.com.au/crypto.html#CRC

My C programming skills are very rusty, and it saved me a lot of time
talking to Chris to just check on the meanings of the C statements in this
CRC calculator code... Once Chris explained some of it to me in English, it
helped me to translate it to what i know of TL/1...

and here's the result of equivalent code :
http://www.andysarcade.net/pix/DSC_2380.JPG

(full program code omitted, but if you know TL/1 you know the meat and
potatoes is in the middle bit - so long as you declare numeric
crc=$FFFFFFFF, numeric temp, numeric j, numeric octets at the top)

I'm no rocket-scientist, but i stuck this in my PROGLIB and it'll now be
available to all my other UUT programs :) Its not tidy code, its not the
quickest or most efficient, but it works... If you can suggest a better way
of doing it, then please do expand on this if you can!

I'm interested to hear who is actually actively programming on the 9100, is
it just me all on my own?? I know a few people who own the 9100 units, but
i'm the only one amongst them that seems to be using the editing suite...
Whats the situation with you lot here on the list? A show of hands would be
nice to see...

Maybe we can pool resources and swap code snippets? I have hundreds of rom
sigs and a growing collection of programs i have written, I understand
anyones reluctance to give this info up for free (i have certainly put in a
considerable amount of time on the fluke) so i'm looking to trade info with
other people if anyone needs it? Personally i'm not after much info myself,
but i'm always keen to add to my own knowledge base, and i don't mind
helping others out with programming, and advice on the pitfalls of bugs in
TL/1 etc.. :-)

Of course, I could be delusional and I really am the only one doing any
programming with it...

so speak up!

Andy Welburn
http://www.andys-arcade.com





More information about the Techtoolslist mailing list