<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