From 64dbe6021d08d5cd83e456a5df4097a0e1e09606 Mon Sep 17 00:00:00 2001 From: lephe Date: Sun, 4 Aug 2019 13:59:17 +0200 Subject: [PATCH] some formatting and comment updates --- TODO | 7 +++---- include/gint/gray.h | 2 +- src/dma/inth.s | 2 +- src/font8x9.png | Bin 17322 -> 17342 bytes src/render-fx/bopti.c | 2 +- 5 files changed, 6 insertions(+), 7 deletions(-) diff --git a/TODO b/TODO index a56ffad..e507750 100644 --- a/TODO +++ b/TODO @@ -4,20 +4,20 @@ Crucial, missing things. ! 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 +* topti: all charsets Complementary elements on existing code. +* 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: 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 +* 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() @@ -44,4 +44,3 @@ Future directions. * Audio playback using Martin Poupe's method * Serial communication [SCIF] [SCIFA] * USB communication [USB] -* Driver for the watchdog timer [WDT] [SH7705] diff --git a/include/gint/gray.h b/include/gint/gray.h index 8dac1b8..b0325df 100644 --- a/include/gint/gray.h +++ b/include/gint/gray.h @@ -64,7 +64,7 @@ void gray_stop(void); 1325 1607 heavy light excellent -------------------------------------------------- - Here are values for this version of gint; + Here are values for this version of gint: LIGHT DARK BLINKING STRIPES COLORS -------------------------------------------------- diff --git a/src/dma/inth.s b/src/dma/inth.s index f955db1..d976be7 100644 --- a/src/dma/inth.s +++ b/src/dma/inth.s @@ -7,7 +7,7 @@ .section .gint.blocks, "ax" .align 4 -/* DMA TRANSFER ENDED INTERRUPT HANDLER - BYTES */ +/* DMA TRANSFER ENDED INTERRUPT HANDLER - 28 BYTES */ _inth_dma_dma0: /* Clear the TE flag and DMA Enable in CHCR */ diff --git a/src/font8x9.png b/src/font8x9.png index a9db9c0360f972fd3c25aa1602f2edbf9ad54ad2..36acd5c32966dd6f94c53e7ab9bb8e33701f8ba7 100644 GIT binary patch delta 17297 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

GqM-LwARQ8W5kv0B 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 delta 17234 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 diff --git a/src/render-fx/bopti.c b/src/render-fx/bopti.c index ec2cdf1..1319192 100644 --- a/src/render-fx/bopti.c +++ b/src/render-fx/bopti.c @@ -68,7 +68,7 @@ void bopti_grid(void **layer, int rows, struct command *c) optimized by GCC into a function returning into r0,r1 which will avoid some memory accesses. */ pair_t p, pret = { 0 }; - /* Same with two pairs for the gray version */ + /* Same with two pairs for the gray version (no optimization here) */ quadr_t q, qret = { 0 }; /* Monochrome version */