MS3 High-Quality Firmware S19 Files

Discuss MegaSquirt, VEMS and other non-free hardware and software here.
Post Reply
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

MS3 High-Quality Firmware S19 Files

Post by Fred »

Earlier today, just for a laugh, I ran my UltimateLoader tool over the latest ms3 s19 file. I thought I'd post the results for a giggle.

Code: Select all

Welcome to the UltimateLoader experience!
Version: Demo ONLY. S19 lib:0.0.7-SNAPSHOT (00ebd7df54)
Attempting to parse file: ms3-pre1.2alpha6/ms3.s19
WARNING: Your S19 file appears to be corrupt! CR = 13473 and LF = 13496
Total good lines: 13473
Total bad lines: 23:
    Line 13474 "QMS3 Format 0259.08P" Line did not begin with S0 to S9!
    Line 13475 "QMS3 Format 0259.008" Line did not begin with S0 to S9!
    Line 13476 "P10" Length of line was not even, must contain hex pairs!
    Line 13477 "P11" Length of line was not even, must contain hex pairs!
    Line 13478 "P12" Length of line was not even, must contain hex pairs!
    Line 13479 "P13" Length of line was not even, must contain hex pairs!
    Line 13480 "P14" Length of line was not even, must contain hex pairs!
    Line 13481 "P15" Length of line was not even, must contain hex pairs!
    Line 13482 "P16" Length of line was not even, must contain hex pairs!
    Line 13483 "M00" Length of line was not even, must contain hex pairs!
    Line 13484 "M01" Length of line was not even, must contain hex pairs!
    Line 13485 "M02" Length of line was not even, must contain hex pairs!
    Line 13486 "M03" Length of line was not even, must contain hex pairs!
    Line 13487 "M04" Length of line was not even, must contain hex pairs!
    Line 13488 "M05" Length of line was not even, must contain hex pairs!
    Line 13489 "M06" Length of line was not even, must contain hex pairs!
    Line 13490 "M07" Length of line was not even, must contain hex pairs!
    Line 13491 "M08" Length of line was not even, must contain hex pairs!
    Line 13492 "M09" Length of line was not even, must contain hex pairs!
    Line 13493 "M0a" Length of line was not even, must contain hex pairs!
    Line 13494 "M0b" Length of line was not even, must contain hex pairs!
    Line 13495 "M0c" Length of line was not even, must contain hex pairs!
    Line 13496 "M0d" Length of line was not even, must contain hex pairs!
Total non-S2 records: 2:
    S0 record found! Description data: "ms3.s19"
    S8 record found! Start address: 0x00C000

Analysing records:
Total contiguous blocks: 17
    Page: 0x10 @ 0x0000 with 15360 bytes (60 blocks, of which 60 are full size)
    Page: 0x10 @ 0x4000 with 9216 bytes (36 blocks, of which 36 are full size)
    Page: 0x7C @ 0xC000 with 16219 bytes (64 blocks, of which 63 are full size)
    Page: 0x7D @ 0x0000 with 16331 bytes (64 blocks, of which 63 are full size)
    Page: 0x7D @ 0x4000 with 15375 bytes (61 blocks, of which 60 are full size)
    Page: 0x7D @ 0x8000 with 15414 bytes (61 blocks, of which 60 are full size)
    Page: 0x7D @ 0xC000 with 15504 bytes (61 blocks, of which 60 are full size)
    Page: 0x7E @ 0x0000 with 14496 bytes (57 blocks, of which 56 are full size)
    Page: 0x7E @ 0x4000 with 16214 bytes (64 blocks, of which 63 are full size)
    Page: 0x7E @ 0x8000 with 16309 bytes (64 blocks, of which 63 are full size)
    Page: 0x7E @ 0xC000 with 15063 bytes (59 blocks, of which 58 are full size)
    Page: 0x7F @ 0x0000 with 16277 bytes (64 blocks, of which 63 are full size)
    Page: 0x7F @ 0x4000 with 8422 bytes (33 blocks, of which 32 are full size)
    Page: 0x7F @ 0x8000 with 15721 bytes (62 blocks, of which 61 are full size)
    Page: 0x7F @ 0xC000 with 9166 bytes (36 blocks, of which 35 are full size)
    Page: 0x7F @ 0xE800 with 124 bytes (1 blocks, of which 0 are full size)
    Page: 0x7F @ 0xEF10 with 240 bytes (1 blocks, of which 0 are full size)
Total writes: 848
Full blocks: 833
Total bytes: 215451

Writing good records back out to: ms3-pre1.2alpha6/ms3.s19.clean.s19

Thank you for supporting FreeEMS!
Things to note:
  • Mixed line endings by poor post-processing of the S19 file! UL flags it as corrupt, but number of bad lines == difference in LF/CR bytes...
  • PXX stands for "keep" EEPROM page XX where X is a hex digit. MXX is the same, but conditional, whatever that means.
  • No idea what their "format" strings are about. If anyone does know, feel free to post up :-)
  • The analysis at the end is only indicative. Firstly they use the other 24 bit memory format which I currently don't handle and secondly it clearly contains EEPROM data as well as flash data.
  • 210kB of data all up == 20% of the flash memory in their chip, and 40% of the memory in ours.
That last point is encouraging, I didn't think we'd run out of room in a hurry, and although my code is "bloated" compared to theirs (read well written, not optimised, not hacky, no gotos), I doubt we'll ever get past about half way for just code/data.

A pure and bonafide S19 file is terminated with only CR characters (old apple format). Output from my library is in that form, M$ stuff, not so much...

Fred.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: MS3 High-Quality Firmware S19 Files

Post by Fred »

Fred wrote:

Code: Select all

    Line 13474 "QMS3 Format 0259.08P" Line did not begin with S0 to S9!
    Line 13475 "QMS3 Format 0259.008" Line did not begin with S0 to S9!
  • No idea what their "format" strings are about. If anyone does know, feel free to post up :-)
It's their typically broken way of indicating a data layout. IE, just a revision for the structure of what goes where and in which shape, butchered into the S19 file in a broken way.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
Post Reply