Re: Cracking the 9010A ROM signature generator

From: John Robertson <jrr_at_flippers.com>
Date: Fri May 16 2003 - 01:14:53 EDT

<x-html>
<html>
<body>
It's been a while since I last looked at this, and some others have been
attempting it as well. Just curious if anyone got any further and forgot
to post results?<br><br>
I have a nice Arium ML4400 logic analyzer so if anyone has some
suggestions I'd be happy to take this up again.<br><br>
John :-#)#<br><br>
At 06:31 PM 10/06/2002 -0700, John Robertson wrote:<br>
<blockquote type=cite class=cite cite>It is on Spies:<br><br>
<a href="http://www.spies.com/arcade/.TE/9010CourseNotes.pdf" eudora="autourl">http://www.spies.com/arcade/.TE/9010CourseNotes.pdf</a><br><br>
Note that AL does NOT want anyone posting links to his site on any
newsgroup....<br><br>
John :-#)#<br><br>
<font size=2><br>
</font><blockquote type=cite class=cite cite><blockquote type=cite class=cite cite>More
on this - reading the 9010A Troubleshooting Seminar - Student Workbook #
805663 (1985), I find a reference to Rom Signatures. &quot;To develop a
ROM signature, the data is 'compressed' into a 4 digit hexadecimal number
by passing all the ROM data through a <i>two-stage CRC type</i> (this is
new info for us!) of signature algorithm&quot;<br><br>
I recommend that any student of the 9010A print this booklet out and read
it thoroughly. I am constantly finding neat tid-bits that are not nearly
as well covered in the Operators Manual. For example - how the probe
interfaces with the UUT. If you use the synchronize function then the
probe ONLY shows activity during valid Read/Write periods. Also the Probe
pulse can be synchronized with the R/W.<br><br>
A lot of other useful training is there.<br><br>
<a href="ftp://www.flippers.com/Fluke" eudora="autourl">ftp://www.flippers.com/Fluke</a>
<br><br>
I can send copies of the Workbook to anyone that needs one. I believe it is about 12 megs....My space is limited on my server <br><br>
John :-#)#<br><br>
<blockquote type=cite class=cite cite>Further digging, and watching the Fluke 9010 Training video (Fluke 9010Training1.RM minutes 40 - 46) leads me to believe that this is a mathematical function called a Pseudorandom Binary Sequence. It looks to me as if Fluke adopted HP's Signature standard of a sixteen-bit register with the feedback form of X(16) + X(12) + X(7) + 1.&nbsp; (One of 2048 possible feedback taps, the computer industry uses CRC-16 X(16) + X(15) + X(2) + 16 or CCITT-16 X(16) + X(12) + X(5) + 1 commonly... ) A bit hairy to dig out of the code I am sure!<br><br>
I think this work is done in the base unit, the pod just streams the data into it.<br><br>
I believe that they use a software PBSC generator that takes each BIT and pushes it through the sixteen-bit register (above)... I wonder if this is similar to how ROMIDENT works?<br><br>
So now I am looking at making a simple Fluke Checksum program to run like this:<br>
----------------------------------------------------------------------<br>
Display - Checksum Test - Select Range<br>
Display - Beginning of ROM<br>
Dis...&nbsp;&nbsp;&nbsp; -&nbsp; End of ROM<br><br>
Begin&nbsp; (Label 1)<br>
Go to 1st ROM location<br>
Add ROM byte to data memory location<br>
Increment ROM address by 1<br>
Is this &gt; End of ROM?<br>
If not then goto Begin<br><br>
Display Checksum (read Data memory location)<br>
END<br>
-----------------------------------------------------------------<br><br>
At the moment I don't know how to take a Byte of data and add it to the previous one (Within the Fluke script). Have a simple script that asks for the beginning and ending address, then chugs through the ROM...just haven't figured out the additive (in the Checksum meaning) process with Fluke Script.<br><br>
Any suggestions?<br><br>
John :-#)#<br><br>
<br><br>
At 05:50 PM 11/08/01, you wrote:<br>
<blockquote type=cite class=cite cite>The signature (I can't call it a checksum..;-) is the same no matter where the memory location is (tried 0000 &amp; 0001, then 0154 &amp; 0155 for example-same results) with a 6800 pod on a different test bed (Heathkit 6800 trainer) and 9010A (shop) base unit.<br><br>
The first results were with a 6802 pod on an old Heathkit 6802 trainer and my 9010A that is at home.<br><br>
Looks to me like the process is something like this, take the 8 bit byte, reverse the last four bits order and exchange it with the first four bits. Add a 1 to the least significant bit if odd... Shall dig around some more and try other combinations.<br><br>
The Operators Manual states:<br><br>
&quot;Rom Signature is a four-digit HEXADECIMAL number that is a shorthand representation of the data obtained in an area of ROM memory. The ROM signature is obtained by successively dividing the data in ROM by a binary number (they DON't say what the @!$%#$@% number is! - JR). The resulting signature identifies the data from which it is obtained, and provides a convenient way of&quot; (....blah blah, no other description of the process).&quot;<br><br>
John :-#)#<br><br>
At 02:55 PM 11/08/01, you wrote:<br>
<blockquote type=cite class=cite cite>I've done some dissassembly on the code for both the pod and the base, and<br>
have to agree with David, whatever it was written in had an awful<br>
compiler! - It's not easy tracking down anything, since the code is so<br>
illogical!<br><br>
the code in the pod is a little more understandable, but only just, and not<br>
understanding (yet) how the pod communicates to the UUT makes ot difficult<br>
to follow as well.<br><br>
My next step in the attack on understanding the code is to try and create an<br>
emulator for the pod software, at least then I may be able to trap all of<br>
the reads/writes that communicate with the pod (I need to know this for a<br>
later project anyway!) - hopefully, seeing the data transfers may help gain<br>
understanding in how the entire thing works<br><br>
from your examples, it certainly follows no checksum algorithm I know of,<br>
reversing the bit pattern either needs a lookup table (which I will check<br>
for in a minute) or some nasty calculations (which again, should be<br>
obvious!). I'm going to have another troll though the 48k of code looking<br>
for anything that may implement such things.<br><br>
just out of interest, does the 6502 pod (or another 8 bit pod) generate the<br>
same checksum, and secondly, does it generate the same checksum for the same<br>
data at a different address ?<br><br>
<br>
&nbsp;To UNSUBSCRIBE from techtoolslist, send a message with &quot;UNSUBSCRIBE&quot; in the<br>
&nbsp;message body to: techtoolslist-request@flippers.com. Please direct other<br>
&nbsp;questions, comments, or problems to jrr@flippers.com.</blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></body>
</html>

</x-html>
Received on Thu May 15 23:09:44 2003

This archive was generated by hypermail 2.1.8 : Tue Dec 02 2003 - 18:40:52 EST