Skip to content

Memory Number Storage and Display Inconsistency and Breakage #7

@K7MDL2

Description

@K7MDL2

Testing macros and found a systemic issue around how memories are used internally vs displayed externally.

In the serial terminal you can only enter a single digit 0-9 to play a memory. Memories are listed in \S command as 1-10 but stored as 0-9 internally. Play memory 0 is accepted but plays nothing (converted to 255 internally and fails). You can however program 1-10 correctly. The Keyboard and Touch displays are all correct.

The inconsistences accepting 1 or 2 digits to play might be fixed by raising the memory number limit from 10 to 12.

There are 2 methods to display the stored memory. Other is to add +1 to each shifting 0-9 to 1-10. Another is to add +10 to 0 and leave 1-9 alone gettong 1-10 . Cannot mix the 2 methods! Both methods are in use causing issues that show up when linking memories with macros (\Ixx command). In other spots there is a byte value (ie unsigned) calculation 'memory-1' which when memory=0 results in unsigned 255 (or -1 signed) which is an invalid EEPROM memory location value.

Seems like the best course is to allow 2 digits on serial play menu, and not use 0, always using the memory number directly. Some parts of the program only work with a single digit 0-9 so this is significant rework to make it all the same. The serial parser accepts 0-19. The USB and PS2 keyboard allow F1-F12 for 12 memories. The K380 BT keyboards can also do this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions