The firmware change specifically addressed the issue of $Main to ALWAYS run from the "initial stage" after a power-cycle, regardless of the fact that $Main's corresponding PROGRAM stucture is RETENTIVE (i.e. maintains "state" after power loss). After power-up in RUN mode, the firmware clears all the SG bits in $Main, but maintains the .ScanCounter, .TimeSlice, etc., similar to what it does on a normal PGM->RUN transition. All other System Tasks are also RETENTIVE
All USER PROGRAM and TASK structures default to being NON-retentive, but can be made retentive using the new check box in the Configure Code Block dialog.