RE: Replace the 9010A base with an IBM Parallel port?

From: John Robertson <jrr_at_flippers.com>
Date: Thu Mar 07 2002 - 00:14:24 EST

<x-flowed>

Does anyone here want to assist by disassembling the Z80 (or 6502 or 680X)
code in one of the pods to figure out the command codes? Now that we have
an idea of the results, a list of the command codes might make it very easy
to continue to the next stage-actually talking to a pod on the parallel
port. I think it is actually not going to be that difficult....

The code is on the archive site ftp://ftp.flippers.com/Fluke

John :-#)#

--------------------------------------------<results if you missed
them>-------------------------------------------------
More results:

Great, when you do a First READ on the pod, you get a RESET to the pod, and
a bunch of chatter: READ FE55 = 31:

30 35 REAL LONG PAUSE
... RESET AB 36 38 30 32 20 20 PAUSE
FOR (about) TWO
CYCLES(2P) 24 01 00 00 00 00 00
00 FF FF (P) (P) (P) 00 00 00 00
(P) FF FF FF FE (P) 00 00 08 00
30 (P) 4D 52 20 20 20 20 P P P
      P 48 41 4C 54 20 20 P P P
    0E 00 06 30 00 LONG PAUSE HERE.....PERHAPS 10
TIME UNITS THEN 30 35 55 31 00

Now I'll try to do some more reads...This is exactly the order as entered...

Read @ Location Data Softla results (Start byte, command byte,
high address, low address, data read, Stop)
                                 N MP MP MP MP MP (
N means no handshaking, M is MAINSTAT & P is PODSTAT)
                 4567 FF = 5A 35 45 67 FF 00
                 89AB FF = 53 35 89 AB FF 00
                 0001 00 = AB 35 00 01 00 00

Write @ Loc. Data N MP MP MP MP
         0101 AA = 01 23 01 AA 00 MP
         2055 56 = AA 33 20 55 56 00
         0101 43 = 56 33 01 01 43 00

Read... N MP MP MP MP MP
         2055 FF = 43 35 20 55 FF 00
         F808 FF = 55 35 F8 08 FF 00
         F9AB FF = 08 35 F9 AB FF 00
         FDEA FC = AB 35 FD EA FC 00

I think I now see the pattern for reads/writes. The first byte is the LAST
DATA, note that the timing for that is such that MAINSTAT and PODSTAT have
done nothing until the second byte. I suspect the 1st data byte is there
for the REPEAT function...so lets try that...
Repeat... N MP MP MP
         FDEA FC = EA 05 FC 00
Repeat...
         FDEA FC = 05 05 FC 00
Repeat...
         FDEA FC = 05 05 FC 00

OK, for REPEAT the first Byte (again before M or Podstat) is 1st the last
data,then the last instruction. Now lets try a write again...
Write... N MP MP MP MP MP
         0123 45 = 05 33 01 23 45 00
         0123 66 = 45 03 66 00 (much shorter for a
second write to the same address!) Thus 03 is "Same Address Write"

Read... N MP MP MP MP
         0124 00 = 66 15 24 00 00 (hmmm looks
like "15" is read increment(?) to next byte. let's test...
         0125 00 = 24 15 25 00 00 (now lets skip
a few...)
         012F 00 = 25 15 2F 00 00 (and a few more...)
         0138 00 = 2F 15 38 00 00 (lets shift up
a little ways...)
         0238 FF = 38 25 02 FF 00
(interesting...seems to latch the 38, ok, lets change both a bit)
         0339 EF = 02 35 03 39 EF 00 (OK, it
caught that, "35" might mean "new address read")

I think the pattern that is coming out is something close to this X3 =
write, X5 = read, if X = 0 then same address, if X = 1, then same address
high byte, if X = 2 then latch low address byte, if X = 3 new address
bytes. Yes, this looks right so far...

TIMING
  The very first byte is BEFORE you get any handshaking...then you get
MAINSTAT, then shortly after you get PODSTAT which ends just after MAINSTAT
ends, then the remaining handshaking has POD end with MAIN. Boy I wish this
had time marks...

John :-#)#

...:56 AM 05/03/2002 -0800, John Robertson wrote:

>>Read @ Location Data Softla results (Start byte, command byte,
>>high address, low address, data read, Stop)
>
> 0208 FF = 00 35 02 08 FF 00
> 0505 EF = 99 35 05 05 EF 00
> 1050 FF = 13 35 10 50 FF 00
> FE55 31 = 00 35 FE 55 31 00
>
>Got it! the first data byte seems to grab the pods attention, often a 00,
>but perhaps (?) not that important, but it certainly looks like a Clean
>(no other read action in front) Read is "35" then the address and the
>resulting data. It appears that multiple reads change the communication
>with the pod in the sense that if you take two reads (different locations)
>in a row the command string is different. Stay tuned this evening when I
>dig into more reads and test the writes.
>
>John :-#)#
>
>
>> 0000 AA = 00 23 00 AA 00 (result)
>> 0101 FE = 00 21 00 FE 00
>> 0200 EF = 01 35 02 00 EF
>> 00(result - a little longer this time...)
>> 0300 EF = 00 26 03 EF 00
>> 8000 EF = 02 26 80 EF 00
>> C000 FF = 80 26 C0 FF 00
>> F800 FF = C0 26 F8 FF 00
>> FC00 8E = F8 26 FC 8E 00
>> FC05 8D = FC 16 05 8D 00
>> FCEE EE = 05 16 CC EE 00
>> 0200 EF = CC 35 02 EF 00 (same
>> length as others now...)
>> 0000 AA = 00 23 00 AA 00
>>
>>Now I'll try some writes:
>>Write @ Location Data (results)
>> 0000 55 = 00 03 55 00
>> 0100 AA = 55 25 01 AA 00
>> 0200 AA = CC 23 02 AA 00
>> 8000 44 = CC 23 80 44 00
>> EF08 11 = 0C 33 EF 08 11 00
>> (longer)
>>
>>Well, that's all for tonight, I'm getting tired...
>>
>>John :-#()#

</x-flowed>
Received on Wed Mar 06 21:24:41 2002

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