Bugs to fix: - A few key hits ignored after leaving the application (could not reproduce) - Lost keyboard control at startup (could not reproduce) - Influence of keyboard on some timers and RTC (maybe interrupt priority) - Alignment of ALL .data / .rodata files is required to ensure converted data is properly aligned Simple improvements: - demo: Try 284x124 at (-60, -28) (all disadvantages) - display: Rectangle-based drawing functions - time: Compute CLOCKS_PER_SEC - core: Add VBR handlers debugging information (if possible) - events: Introduce KeyRepeat events - library: Implement C99's inttypes.h for Cake's UpdateExe Larger improvements: - errno: Introduce errno and use it more or less everywhere - bopti: Monochrome bitmaps blending modes - bopti: Handle partial transparency - core: Implement all callbacks and a complete user API Other whole modules: - Serial communication through 3-pin - USB communication - Sound playback and synthesizing (if possible) - Overclock (relaunch clocks when overclocking) Things to investigate: - Packed bit fields alignment - Registers that may need to be saved within setjmp() - Registers that may need to be saved and restored by gint - Possible bug when optimizing __attribute__((interrupt_handler)) Configuration: - ATEXIT_MAX (16) - RTC_CB_ARRAY_SIZE (5) - EVENTS_QUEUE_SIZE (64) - GINT_NO_SYSCALLS (undefined)