I am at the stage where I have most of the functions needed for altering code working. I have questions for you all regarding format(s) that are useful in other tools.

My work has so far been mostly in isolation from commercial tools. I find Motorola S records to be a very convenient format. This format permits me to load a module without remembering where in memory it is to be loaded. There are dozens of standard formats out there but it also makes some sense to stay with the format that matches the processor used. IDA is also set up to read S records, so at least there is a flow there.

If I look through gearhead archives of binaries, most are just straight binary... start at $0000 work through $FFFF. This just isn't good enough for the orphan '96/7 PCMs. These PCMs are based around 68HC11 unlike the later OBDII PCMs. Also an issue is the bank setup on the Tside. To use a binary format, three areas need to be loaded: TSide bank 0 range $2000-$FFFF, Tside bank 1 $8000-$FFFF and Eside $2000- $FFFF. Minor ranges for both sides in the $0E00-$0FFF might also need to be considered. If a 128K binary for the TSide was generated, the programmer still needs to remember that the first $2000 are not programmed and that the first $8000 on bank 1 are also skipped.

Since I see the Srecord as the format of choice, this is what I plan to use for storing and loading of binary data in/out of the PCM. Often times where another tool is involved in the modification for tuning there will be a specified format they want to use.

Here are my questions. If binary format is wanted for your tool (tool name?):
- Does the TSide bank 0 binary start from $0 or $2000?
- Is there a separate file for TSide bank 1?
- If yes, how is the bank 1 gap between $0 and $8000 handled?
- If no, does bank 1 address $8000 follow bank 0 $FFFF or is there padding there?
- Does the ESide binary start from $0 or $2000?

If someone could offer me some guidance here (The exact expected format), I will make up a console app to do the conversion back and forth. If I can't pin down the output format, command line switches could be set up BUT that is always confusing to the end user.

Other stuff --
Tside upload is complete now. I have tested uploading both banks and the EEPROM areas into SRecords.
Download console app is now completely solid after yesterdays fix to HBC.
Still thinking about the ESide, some work needed.
4X for HBC is a little way off.
For interest below are some of the calculations for upload time.

=================
Distribution of short and long bits, assumed to be even

Short bit time 64 us
Long bit time 128 us
Ave bit time 192 us

Ave byte time 1536 us

Frame Overhead 500 us


Request UL $35 11 Characters + overhead
Response UL $75 12 Characters + overhead
Request UL $36 29 Characters + overhead
Response UL $76 12 Characters + overhead

Sequences 3584 Sequences loading 16bytes at a time to match SRecord format

Characters/sequence 52 Assumes no PC response to Mode $36 (no mode $76)


Sequence time 80372 us
80.372 ms

Total time 288053.248 ms
288.053248 s
4.800887467 m

Characters/sequence 64 Assumes PC response to Mode $36 (mode $76)
5.901892267 m

I tested and found the time matches (all 1X for now). The total time to upload will be about 11min for the whole PCM. When/if I can get 4X working, 3min PCM upload should be possible.

-Tom