Releases: X16Community/x16-smc
Release 47.2.3
Release 47.2.3
IMPORTANT: Detailed instructions on in-system update are not yet published. It is recommended to wait doing an in-system update until those instructions are made available.
IMPORTANT: If performing the update in-system, please obtain and use version 2.0 of X16-SMC-UPDATE. This will assist with updating boards that were shipped with SMC version 45.1.0 which included a problematic bootloader.
ChangLog (since 47.0.0)
- Code size optimizations [stople]
- Added the ability to read and update the bootloader from the X16 [stople]
- Change pullup logic to improve PS/2 keyboard compatibility [stople]
- Intellimouse initialization sequence changed which now detects the correct type for some non-standard mice. [stefan-b-jakobsson]
- Fix potential stuck modifier keys. [stefan-b-jakobsson]
To update, download the release ZIP file.
When using an external programmer, use firmware_with_bootloader.hex
.
For updating on the X16, download and use x16-smc.ino.hex
with X16-SMC-UPDATE.
r47.0.0
Release 47.0.0
WARNING: IT IS CURRENTLY NOT SAFE TO UPDATE THE SMC FIRMWARE WITH THE UPDATE PROGRAM THAT RUNS ON THE COMMANDER X16. WE ARE NOT AWARE OF ISSUES IF YOU UPDATE THE FIRMWARE WITH AN EXTERNAL PROGRAMMER.
ChangLog (since 43.0.0)
- Enables support for PS/2 MENU key
- Support for Intellimouse: scroll wheel and extra buttons
- Replace Wire library with custom routines
- New command offsets support fetching PS/2 data more quickly over I2C
- Accumulation of multiple X/Y deltas sent by the mouse in-between polls from the KERNAL reduces the likelihood of an overflow of the PS/2 data buffer.
- Support for informing the KERNAL of a long press power-on
r43.0.0
- New key code protocol between SMC and KERNAL based on IBM System/2 key numbers
- Version number is now available over I2C via offsets 0x30, 0x31, and 0x32 for major, minor, patch respectively.
When flashing the SMC using an in-system programmer, use x16-smc-r43+bootloader.hex
, and see https://cx16forum.com/forum/viewtopic.php?p=27292#p27292 for additional steps needed to enable self-flashing.
When updating an SMC that has been previously flashed using the process above, one can use the update utility on the Commander X16 itself. In that case, use x16-smc-r43.hex
r42
A lot of updates to the SMC code (#2) * Use Stefan's compact version of OneButton. * Enable Perixx keyboard; set numlock at power on * Remove activity LED debug code. * Move mouse and keyboard initialization state machine to START_RESET after reset. * Implement buffer full handling * Removed some serial print debugging * remove serial debugging * Fixed bug in process byte function * Removed strange line from count() * Commented out lastBitMillis as was done in upstream code * Bugfix in putModifiers function * Added support in the scancode state machine for the two byte response to the read ID command * Forgot break statements * Fixed faulty check for start of read ID response start * Changed bit receive timeout not to clear the whole buffer * Fixed modifier key tracking during buffer full * Improvements to handling of some corner cases + general code cleanup * Fixed a typo, volatile instead of virtual * Fixed typo * Fixing bugs in the keyboard buffer full handling * Reset mouse PS2 state machine when powering off. * Implemented keyboard buffer full handling * Break/Pause key to hold NMI pin * Activate NMI button * Bound NMI to Restore (=PrtScr) * Searching for a NMI problem * Adjusted KB state machine to be aware of Num Lock decorator * Handle scan code differences when Ctrl and Alt are pressed * Trying to extend kbd state machine to catch all PS/2 scancode type 2 weirdness * Simplification of the scancode state machine * Fix to ensure that putModifiers exits with correct scancode_state value * Fixed bug in scancode state machine * Fix behavior when resuming after buffer overrun; would previously lose first key thereafter * Fixed bug regarding two byte read ID response * Check RESB polarity * Code cleanup --------- Co-authored-by: jburks <joe@burks-family.us>