Crucial, missing things. ! core: the four basic memory functions ! core: build an exception handler and a TLB miss handler ! core: gint_switch() (driver contexts on stack; arbitrary code?) ! bopti: fxcg50 version ! syscalls: fxcg50 BFile calls ! gray: the gray engine on fx9860g Tests to run. * core: run the alignment/size automated tests for memory functions * bopti: more sizes, gray * topti: all charsets, colors Complementary elements on existing code. * dma: dma_memcpy() and dma_memset(), possibly requiring alignment * core: use topti in the error message for missing mappings * core: find the #ifdef FX9860G|FXCG50 that have a cross-platform def * topti: support Unicode fonts * hardware: fill in the HWMEM_FITTLB flag * keyboard: think of extended functions * cpg: spread spectrum on fxcg50 * bopti: blending modes for monochrome bitmaps (use topti assembler) * display: use more of topti's assembler in drect() * core: use cmp/str for memchr() * timer: try putting addresses in * r61524: brightness control and clean the file Keep in mind. * prizm: don't hardcode stack address in fxcg50.ld * prizm: detect P1 static RAM (stack) in TLB * core: prove and use qdiv10() instead of __sdivsi3 * setjmp: more registers may need to be saved * core: free heap when a task-switch results in leaving the app * core: save and restore interrupt masks * timer: make sure ETMU interrupts are disabled in ctx_restore() * core: document the SH7305 PFC in Future directions. * A complete file system abstraction * Integrate overclock management * Audio playback using Martin Poupe's method * Serial communication [SCIF] [SCIFA] * USB communication [USB] * Driver for the watchdog timer [WDT] [SH7705]