Help with TTS Datamaster & a 1986
The following users liked this post:
C4vettrn (05-12-2016)
#22
Race Director
There is a note in the BUA firmware that says that the magic bytes must be sent within 50ms of the end of the 160 baud message. That could be what's causing the lack of communication at 8192.
Last edited by Cliff Harris; 05-12-2016 at 11:45 PM.
#23
Melting Slicks
I've played around a bit more with BUA with both TunerProRT and EFILive V4 with 10 k resistor.
It just doesn't respond like it should to the Mode 1 request...there is data being returned but it is neither the 160 baud stream, nor the 8192 baud stream....mostly $FC,$FC,FC, and some $00,...
Can you log or monitor the raw send and receive data with Diacom? The send data is the most interesting.
First few receive bytes should be $80,$95,$01,$25,$E5...which is enough to confirm the mode 1 response and the prom id ($25, $E5)...don't need to see entire 66 byte packet.
Question is: does Diacom use a unique and/or undocumented Mode 1 request that somehow works with the 1986 $32 mask?
It just doesn't respond like it should to the Mode 1 request...there is data being returned but it is neither the 160 baud stream, nor the 8192 baud stream....mostly $FC,$FC,FC, and some $00,...
Can you log or monitor the raw send and receive data with Diacom? The send data is the most interesting.
First few receive bytes should be $80,$95,$01,$25,$E5...which is enough to confirm the mode 1 response and the prom id ($25, $E5)...don't need to see entire 66 byte packet.
Question is: does Diacom use a unique and/or undocumented Mode 1 request that somehow works with the 1986 $32 mask?
#24
Melting Slicks
Mystery solved (at least partially)!
Follow up: After some detective work and hacking on a $32 bin, I've discovered the following:
1986 ($32 mask) bins are missing a few lines in the serial data initialization routine which disable transmit through sxr (based on comments in the source). This omission makes scanning at 8192 baud troublesome compared to the later 87-88 ($32B mask) and 89 ($6E mask) bins.
Here's an excerpt from my corrected disassembly with the added lines shown in red:
ldaa L4008
ldaa #0x27
staa L4007
ldaa L4009
ldd L3FFC
orab #0x04
jsr LF3B5
std L3FFC
ldaa L4004
anda #0xF7
staa L4004
rts
With the indicated changes along with updated addressing to compensate for the inserted bytes, my $32 test bin will respond to the standard mode 1 request (in 10k aldl mode) and transmit 8192 baud data.
Testing has been successful with both TunerProRT V5 and EFILive V4. TTS Datamaster should also work, but has not been tested.
This helps to explain the difference between $32 and the later masks as far as serial data initialization is concerned. It still does not explain how Diacom+ was ever able to work at 8192 baud with a $32 bin. Perhaps Diacom is able to enter 8192 baud from diagnostic mode (shorted) rather than ALDL mode (10k)? My cable only supports open and 10k modes, so I have not tested this idea.
1986 ($32 mask) bins are missing a few lines in the serial data initialization routine which disable transmit through sxr (based on comments in the source). This omission makes scanning at 8192 baud troublesome compared to the later 87-88 ($32B mask) and 89 ($6E mask) bins.
Here's an excerpt from my corrected disassembly with the added lines shown in red:
ldaa L4008
ldaa #0x27
staa L4007
ldaa L4009
ldd L3FFC
orab #0x04
jsr LF3B5
std L3FFC
ldaa L4004
anda #0xF7
staa L4004
rts
With the indicated changes along with updated addressing to compensate for the inserted bytes, my $32 test bin will respond to the standard mode 1 request (in 10k aldl mode) and transmit 8192 baud data.
Testing has been successful with both TunerProRT V5 and EFILive V4. TTS Datamaster should also work, but has not been tested.
This helps to explain the difference between $32 and the later masks as far as serial data initialization is concerned. It still does not explain how Diacom+ was ever able to work at 8192 baud with a $32 bin. Perhaps Diacom is able to enter 8192 baud from diagnostic mode (shorted) rather than ALDL mode (10k)? My cable only supports open and 10k modes, so I have not tested this idea.