mirror of
https://git.planet-casio.com/Lephenixnoir/gint.git
synced 2025-01-16 09:22:28 +01:00
e1aca8d89b
This change introduces exception handlers that default to a fatal error with an on-screen description of the exception and some debugging information. It also adds the dprint() function as a definitely-needed helper and removes bootlog_unmapped() by using the exception handler for the fatal error display. (Also printf() is now required in all gint add-ins; this is sad, but space is not as much of a constraint as debugging.) Finally, the exception handler is used to handle an interrupt which is an exception in practice, the DMA address error. On fx-CG 50, additional DMA-related information is displayed on the screen. This is left out on fx-9860G as there is not enough space.
47 lines
2.1 KiB
Text
47 lines
2.1 KiB
Text
Crucial, missing things.
|
|
! core: the four basic memory functions
|
|
! core: gint_switch() with driver contexts on stack and arbitrary code
|
|
! core: use gint_switch() to handle TLB misses
|
|
! bopti: fxcg50 version
|
|
! syscalls: fxcg50 BFile calls
|
|
|
|
Tests to run.
|
|
* core: run the alignment/size automated tests for memory functions
|
|
* topti: all charsets
|
|
|
|
Complementary elements on existing code.
|
|
* gray: find good values for more models than the Graph 35+E II
|
|
* render: get rid of GINT_NEED_VRAM and #define vram gint_vram if you need
|
|
* dma: dma_memcpy() and dma_memset(), possibly requiring alignment
|
|
* core: find the #ifdef FX9860G|FXCG50 that have a cross-platform def
|
|
* core: try to leave add-in without reset in case of fatal exception
|
|
* topti: support Unicode fonts
|
|
* hardware: fill in the HWMEM_FITTLB flag
|
|
* keyboard: think of extended functions
|
|
* keyboard: add an intermediate-level API with some sort of IsKeyDown()
|
|
* 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 <gint/mpu/tmu.h>
|
|
* r61524: brightness control and clean the file
|
|
* t6k11: check if dupdate() can be done by the DMA
|
|
|
|
Keep in mind.
|
|
* core: run destructors when a task-switch results in leaving the app
|
|
* 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()
|
|
* timer: look for ways to improve the code again
|
|
* core: document the SH7305 PFC in <gint/mpu/pfc.h>
|
|
|
|
Future directions.
|
|
* A complete file system abstraction
|
|
* Integrate overclock management
|
|
* Audio playback using Martin Poupe's method
|
|
* Serial communication [SCIF] [SCIFA]
|
|
* USB communication [USB]
|