Sorry for being late on that. Tested with 4.3.0 #14184, and the output looks good. That fixed the issue.
Ah, now I get it. Not decimal... xD
Possible FIX: Looks like copying and pasting the code from Index HEX (\sdas\linksrc\lkout.c -> ixx()) to Motorola SREC (\sdas\linksrc\lks19.c -> s19()) works as expected. The output is (again with spaces): Copying and replaceing the whole from the whole "if (i)" branch and replacing "iflush()" with "sflush()" and "IXXMAXBYTES" with "MAXBYTES" results in the output: S1 10 0000 FD210D00FDCB0026FDCB0116C9 2E S1 07 0011 07000900 D7 S9 03 0000 FC
Possible FIX: Looks like copying and pasting the code from Index HEX (\sdas\linksrc\lkout.c -> ixx()) to Motorola SREC (\sdas\linksrc\lks19.c -> s19()) works as expected. The output is (again with spaces): Copying and replaceing the whole from the whole "if (i)" branch and replacing "iflush()" with "sflush()" results in the output: S1 10 0000 FD210D00FDCB0026FDCB0116C9 2E S1 07 0011 07000900 D7 S9 03 0000 FC
Buggy output in Motorola SREC Format (Z80)
Wrong area flag handling in linker
I found an optimization regression on the Z80 between SDCC v4.2.2 and the current, v4.2.14, but this seems to be there for quite a while, at least v4.2.8 produces the same code as v4.2.14. Here's the code in question (AddExperience.c): typedef unsigned char uint8_t; typedef unsigned int uint16_t; extern struct LevelData_t *pExperienceData_; struct LevelData_t { uint8_t level; uint16_t currentExp; // progress in current level }; // Experience required per level before raised static const uint16_t...
I found an optimization regression on the Z80 between SDCC v4.2.2 and the current, v4.2.14, but this seems to be there for quite a while, at least v4.2.8 produces the same code as v4.2.14. Here's the code in question (AddExperience.c): typedef unsigned char uint8_t; typedef unsigned int uint16_t; extern struct LevelData_t *pExperienceData_; struct LevelData_t { uint8_t level; uint16_t currentExp; // progress in current level }; // Experience required per level before raised static const uint16_t...