150+ hours and done, hopefully! Would have been faster if better with Assembly language.

The analysis of this subject was started due to a desire to understand why logs were periodically reporting Knock Retard Degrees when Knock Counts were not being reported. That analysis has been completed and resolved, and is posted here: http://www.thirdgen.org/techboard/di...-reported.html (Solved-Knock Retard Reported When No Knock Count).

While reviewing that issue, it became obvious there was more than one area of the code that had to be analyzed to fully understand everything to do with Knock Counts and Knock Retard Degrees. Wow! There is a Power Enrich (Forced) Knock Test, Low Octane Spark Retard logic, different types of spark retardation, Knock Counts, minimum degrees of spark retard, decay of spark retard degrees, hundreds of bit-flags to control things, variables that are saved and never used, …. To say that the logic associated with this subject is convoluted and confusing is an understatement! I can’t imagine the difficulty in initially programming it. It causes a severe brain cramp just tracing through it.

Everything documented from this review has been checked many times to ensure accuracy. However, due to the intertwining of so many things, errors are certainly possible! A critical review and comments as to accuracy are welcomed. Changes will be promptly made and posted.

Without the comments in JP’s AUJP hack, it would have been impossible to accomplish this. Thanks JP for those comments, and to any others who may have contributed!!!

Hopefully the attached will add to the AUJP work already done. It includes:
  • a summary of the Spark logic flow of the code
  • a detailed discussion of each involved code segment as to what it does, etc.
  • a time-line showing when each code segment is executed
  • flowcharts of the relevant code segments
  • results of simulating code segments
EDIT EagleMark:
Direct link to download in Microsoft Word

Direct link to download Open Office Word