RE: Gottlieb / Q*bert scripts for the 9010A/9100

From: John Robertson <jrr_at_flippers.com>
Date: Wed May 08 2002 - 14:44:19 EDT

<html>
Home today fighting a small chest infection...<br><br>
I don't think these ROM Signatures generated by the base numbers are true &quot;Signatures&quot; after all. Note that the coding for them does not follow the convention of using HP's ACFHPU, rather the &quot;signature&quot; generated uses standard HEX nomenclature.. Now I wonder what this number actually is...I'm going to try to use my new Arium ML1400 Logic Analyzer to see if I can find the section of code in the base that actually is used to create the ROM signature and report back. <br><br>
I think it is more likely a signature similar to the one ROMIDENT uses... anyone know it's root formula?<br><br>
John :-#)#<br><br>
At 10:06 AM 07/05/2002 +0100, Phillip Eaton wrote:<br><br>
<blockquote type=cite class=cite cite>Ah ha! You've just spotted the reason for my previous <br>
question - What's the polynomial?<br><br>
I worked out the Cat Box polynomial directly from the PCB, <br>
you can actually _see_ the address counter and the XOR <br>
feedback points. Apparently the Cat Box polynomial is the <br>
same as the HP one.<br><br>
Now it gets a bit confusing... (Especially as I've not <br>
actually had time to get stuck into my Fluke and confirm all <br>
of this!)<br><br>
/As far as I can see/ The Fluke creates a signature with a <br>
similar procedure to a boring old checksum, by reading each <br>
byte of a region of memory space and performing a calculation <br>
on it to produce a single 16 bit signature. To create the <br>
signature, it right shifts each bit of each byte into the <br>
polynomimial XOR 'circuitry'. On the Cat Box the 'circuitry' <br>
is physical, but is probably software on the 9010a for <br>
reasons shown below.<br><br>
On a Fluke, there seems to be a bit of general confusion as <br>
to where the calculation is done, in the pod or in the main <br>
unit. I would be very surprised if it were done in the pod <br>
but I could be wrong. (I hope to have a look myself in the <br>
summer, when I've finished college...)<br><br>
Anyway, the Cat Box performs Signature /Analysis/, which also <br>
produces a signature, but not by reading in a chunk of bytes <br>
and creating a signature from them via software.<br><br>
Using a probe, it reads the chain of bits that occur at a <br>
particular point on a PCB when the address bus is ramped from <br>
0 to FFFFH. To test one part of a circuit e.g. a single ROM, <br>
you would tie a sig analysis start and stop line to the chip <br>
enable of the ROM which in effect maps to that ROMs address <br>
space only.<br><br>
If you point the probe at the one data line of the ROM, you <br>
will get a stream of bits which you can XOR in a similar way <br>
to the standard Fluke signature. BUT the calculation will <br>
only be performed on one bit of each byte as there are 8 data <br>
lines and you only have one probe! Thus, you get 8 signatures <br>
per ROM as shown in the Atari Cat Box signature reference for <br>
each PCB.<br><br>
A Fluke signature is an improved way of testing a ROMs <br>
integrity over a checksum, but it can't be used to analyse <br>
anything other than a fixed areas of memory space i.e. ROM. <br>
Signature /Analysis/ can test /any/ digital part of a circuit <br>
as long at it derives from the processor's address and data <br>
decoding (i.e you can't do the video circuitry).<br><br>
My program uses a software way of calculating the signature, <br>
but it emulates the Atari probe hardware i.e. by testing only <br>
1 bit of a byte and thus it is an emulator, as opposed to <br>
just a signature generator.<br><br>
I originally wrote it to do the 8 bits of a ROM, but this <br>
added an extra loop, and all I was really trying to do was <br>
show how it worked, so I went back to just one bit for <br>
clarity.<br><br>
Note BASIC has no bitwise operators so the code is a bit <br>
cumbersome, if you rewrote it in C, or even better Forth, it <br>
would be a fraction of the size.<br><br>
You could quite easily modify my emulation to either create <br>
all 8 checksums together like the Cat Box or pass all of the <br>
information from each byte serially into the calculation like <br>
the Fluke (if you knew it's polynomial).<br><br>
Cheers, <br>
Phillip Eaton<br>
<a href="http://www.phillipeaton.com/" eudora="autourl">http://www.phillipeaton.com</a><br><br>
---- Original message ----<br>
&gt;Date: Mon, 06 May 2002 21:45:41 -0700<br>
&gt;From: John Robertson &lt;jrr@flippers.com&gt;<br>
&gt;Subject: RE: Gottlieb / Q*bert scripts for the 9010A/9100<br>
&gt;To: &quot;Phillip Eaton&quot; &lt;inbox@phillipeaton.com&gt;, <br>
&lt;TechToolsList@flippers.com&gt;<br>
&gt;<br>
&gt;<br>
&gt;Hi Phillip,<br>
&gt;<br>
&gt;I just tried your emulator on a bunch of Asteroid files and <br>
compared them <br>
&gt;with the signatures on the 9010 and I do not get the same <br>
results... Does <br>
&gt;it not setup the same Signature that HP designed and thus <br>
should it not <br>
&gt;give the same results for any file as the Fluke would do on <br>
a ROM signature <br>
&gt;test? The signatures generated by your emulator are <br>
consistent - identical <br>
&gt;files give identical signatures...<br>
&gt;<br>
&gt;Might I ask what the &quot;Bit number &lt;0 - 7&gt;&quot; refers to in the <br>
emulator?<br>
&gt;<br>
&gt;John :-#)#<br>
&gt;<br>
&gt;At 11:08 PM 06/05/2002 +0100, Phillip Eaton wrote:<br>
&gt;<br>
&gt;<br>
&gt;&gt;I wrote one of these a few years back. It's part of my <br>
Atari Cat Box<br>
&gt;&gt;signature analysis write-up which is held at<br>
&gt;&gt;http://www.gamearchive.com/video/manufacturer/atari/vector/s<br>
ignatures/<br>
&gt;&gt;<br>
&gt;&gt;It includes a very simple program source code (to aid <br>
understanding) to do<br>
&gt;&gt;what you mentioned in MS DOS QBasic for the Cat Box.<br>
&gt;&gt;<br>
&gt;&gt;You could quite easily use it as a base to write your own, <br>
or simply change<br>
&gt;&gt;the polynomial in mine and it'd do what you need.<br>
&gt;&gt;<br>
&gt;&gt;How did you work out the ploynomial?<br>
&gt;&gt;<br>
&gt;&gt;Cheers,<br>
&gt;&gt;Phillip Eaton<br>
&gt;&gt;<br>
&gt;&gt; &gt; -----Original Message-----<br>
&gt;&gt; &gt; From: owner-techtoolslist@www.flippers.com<br>
&gt;&gt; &gt; [<a href="mailto:owner-techtoolslist@www.flippers.com" eudora="autourl">mailto:owner-techtoolslist@www.flippers.com</a>]On Behalf <br>
Of John Robertson<br>
&gt;&gt; &gt; Sent: 06 May 2002 22:03<br>
&gt;&gt; &gt; To: TechToolsList@flippers.com<br>
&gt;&gt; &gt; Subject: Re: Gottlieb / Q*bert scripts for the 9010A/9100<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; What we need is for some bright person to write a simple <br>
utility that<br>
&gt;&gt; &gt; converts data files to signatures. The signature formula <br>
is fairly simple<br>
&gt;&gt; &gt; and if combined with Bill Ung's ROMSUM would be a nice <br>
tool for our<br>
&gt;&gt; &gt; package. If you don't know ROMSUM it is a dos utility <br>
that will give a<br>
&gt;&gt; &gt; checksum listing plus the ROM size for a single or group <br>
of files...<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; The Signature process is a CRC process that uses the <br>
following feedback<br>
&gt;&gt; &gt; equation: X(to the 16th) + X(to the 12th) + X(to the <br>
9th) +X(to<br>
&gt;&gt; &gt; the 7th) +<br>
&gt;&gt; &gt; 1 or<br>
&gt;&gt; &gt; P(X) = X(15th) + X(9th) + X(7th) +X(4th) + 1<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; So who wants to make a simple (not for me!) binary <br>
program that<br>
&gt;&gt; &gt; allows one<br>
&gt;&gt; &gt; to input a file and outputs it's signature?<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; John :-#)#<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; At 09:11 AM 06/05/2002 -0400, Kev wrote:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; &gt;Anyone written any test scripts for these or at the <br>
very least have some<br>
&gt;&gt; &gt; &gt;checksum signatures?<br>
&gt;&gt; &gt; &gt;<br>
&gt;&gt; &gt; &gt;Thanks,<br>
&gt;&gt; &gt; &gt;Kev<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;</blockquote></html>
Received on Wed May 08 14:44:19 2002

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