From ee40696470c008fd05536816305be292e4a810a0 Mon Sep 17 00:00:00 2001 From: "JASON-6700K\\jandersen" Date: Sun, 21 Jan 2024 14:47:18 -0500 Subject: [PATCH] mapper: rename the mapper macros, and only include overlay sections that we are actually using right now --- Makefile | 2 +- rickjr.ld | 11 +++++++---- src/dat_ents.c | 6 +++--- src/dat_maps.c | 12 ++++++------ src/mapper.h | 8 ++++---- src/scr_credit.c | 8 ++++++-- 6 files changed, 27 insertions(+), 20 deletions(-) diff --git a/Makefile b/Makefile index d880532..ed508b9 100644 --- a/Makefile +++ b/Makefile @@ -123,7 +123,7 @@ all: $(TARGET) $(TARGET): $(DEPS) $(OBJS) $(LIBS) ${CC} $(CFLAGS) $(TMPFLAGS) $(INCCMD) -c ${F256}/f256lib/f256.c -o $(OBJDIR)/f256.o > $(LSTDIR)/$*.lst $(LD) -o $@ $(addprefix $(OBJDIR)/,$(OBJS)) $(LIBS) $(LDFLAGS) - llvm-objdump -d --print-imm-hex $(TARGET).elf > $(TARGET).lst + llvm-objdump --syms -d --print-imm-hex $(TARGET).elf > $(TARGET).lst # Object Rules diff --git a/rickjr.ld b/rickjr.ld index a1646e7..4d309b8 100644 --- a/rickjr.ld +++ b/rickjr.ld @@ -107,15 +107,18 @@ OUTPUT_FORMAT { TRIM(block8) /* block9 */ -/* SHORT(ORIGIN(block9)) - BYTE(9/8) + BYTE(9/8) /* block#/8 = the actual system high byte */ SHORT(end_block9 - __block9_lma) TRIM(block9) -*/ + +/* block10 */ + SHORT(ORIGIN(block10)) + BYTE(10/8) /* block#/8 = the actual system high byte */ + SHORT(end_block10 - __block10_lma) + TRIM(block10) /* - TRIM(block10) TRIM(block11) TRIM(block12) TRIM(block13) diff --git a/src/dat_ents.c b/src/dat_ents.c index 542166b..2b53366 100644 --- a/src/dat_ents.c +++ b/src/dat_ents.c @@ -19,7 +19,7 @@ segment "dat"; #endif -RO_BLOCK(10) entdata_t ent_entdata[ENT_NBR_ENTDATA] = { +DATA_BLOCK(10) entdata_t ent_entdata[ENT_NBR_ENTDATA] = { {0000, 0000, 000000, 000000, 0000, 0000, 0x00}, {0x18, 0x15, 000000, 000000, 0000, 0000, 0x00}, {0000, 0000, 000000, 000000, 0000, 0000, 0x00}, @@ -101,7 +101,7 @@ RO_BLOCK(10) entdata_t ent_entdata[ENT_NBR_ENTDATA] = { {0x18, 0x10, 0x000c, 0x0005, 0x04, 0x04, 0x14}, }; -RO_BLOCK(10) U8 ent_sprseq[ENT_NBR_SPRSEQ] = { +DATA_BLOCK(10) U8 ent_sprseq[ENT_NBR_SPRSEQ] = { 0000, 0x01, 0000, 0x02, 0x05, 0x03, 0x04, 0x03, 0x65, 0xff, 0x66, 0xff, 0x55, 0xff, 0000, 0x56, 0xff, 0000, 0x57, 0xff, 0000, 0x58, 0x59, 0xff, @@ -122,7 +122,7 @@ RO_BLOCK(10) U8 ent_sprseq[ENT_NBR_SPRSEQ] = { 0xff, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xff, 0x00, }; -RO_BLOCK(10) mvstep_t ent_mvstep[ENT_NBR_MVSTEP] = { +DATA_BLOCK(10) mvstep_t ent_mvstep[ENT_NBR_MVSTEP] = { { 0x10, 0, 0 } , { 0x0c, 0, 4 } , { 0xfa, 0, 0 } , diff --git a/src/dat_maps.c b/src/dat_maps.c index c022735..5602559 100644 --- a/src/dat_maps.c +++ b/src/dat_maps.c @@ -19,7 +19,7 @@ segment "dat"; #include "system.h" #include "maps.h" -RO_BLOCK(11) map_t map_maps[MAP_NBR_MAPS] = { +DATA_BLOCK(9) map_t map_maps[MAP_NBR_MAPS] = { #ifdef IIGS {0x0008, 0x008b, 0x0008, 000000, &samerica_lz4}, {0x0008, 0x008b, 0x0068, 0x0009, &egypt_lz4}, @@ -35,7 +35,7 @@ RO_BLOCK(11) map_t map_maps[MAP_NBR_MAPS] = { #endif }; -RO_BLOCK(11) submap_t map_submaps[MAP_NBR_SUBMAPS] = { +DATA_BLOCK(9) submap_t map_submaps[MAP_NBR_SUBMAPS] = { {000000, 000000, 000000, 000000}, {000000, 0x0078, 0x0003, 0x0005}, {000000, 0x0150, 0x0006, 0x0011}, @@ -85,7 +85,7 @@ RO_BLOCK(11) submap_t map_submaps[MAP_NBR_SUBMAPS] = { {0x0001, 0x1f5a, 0x0096, 0x0202}, }; -RO_BLOCK(11) connect_t map_connect[MAP_NBR_CONNECT] = { +DATA_BLOCK(9) connect_t map_connect[MAP_NBR_CONNECT] = { /* map 0 */ @@ -1322,7 +1322,7 @@ U8 map_bnums[MAP_NBR_BNUMS] = { 0xc0, 0xc0, 0000, 0000, 0000, 0000, 0000, 0000, }; -RO_BLOCK(11) block_t map_blocks[MAP_NBR_BLOCKS] = { +DATA_BLOCK(9) block_t map_blocks[MAP_NBR_BLOCKS] = { {0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {0x29, 0x2a, 0x2d, 0x2e, 0x2b, 0x2c, 0x2f, 0x30, @@ -1837,7 +1837,7 @@ RO_BLOCK(11) block_t map_blocks[MAP_NBR_BLOCKS] = { 0x22, 0x2d, 0x2e, 0xe7, 0x28, 0x2b, 0x2c, 0xea}, }; -RO_BLOCK(11) mark_t map_marks[MAP_NBR_MARKS] = { +DATA_BLOCK(9) mark_t map_marks[MAP_NBR_MARKS] = { {0x18, 0x16, 0000, 0x08, 0x08}, /* 0 */ {0x18, 0x2a, 0x88, 0x01, 0x28}, {0x38, 0x04, 0xf0, 0x15, 0x29}, @@ -2363,7 +2363,7 @@ RO_BLOCK(11) mark_t map_marks[MAP_NBR_MARKS] = { {0xff, 0000, 0000, 0000, 0000}, }; -RO_BLOCK(11) U8 map_eflg_c[MAP_NBR_EFLGC] = { +DATA_BLOCK(9) U8 map_eflg_c[MAP_NBR_EFLGC] = { 0x4d, 0000, 0x0e, 0x02, 0x04, 0x04, 0x57, 0x08, 0x08, 0x18, 0x03, 0x68, 0x3b, 0x48, 0x04, 0x80, 0x37, 0000, 0x04, 0x02, 0x04, 0x04, 0x90, 0x08, diff --git a/src/mapper.h b/src/mapper.h index 9d9d0af..400b983 100644 --- a/src/mapper.h +++ b/src/mapper.h @@ -14,12 +14,12 @@ $$JGA TODO, sort out how to mark an entire file */ -#define RAM_BLOCK(index) __attribute__((noinline, section(".block"#index))) -#define RO_BLOCK(index) __attribute__((section(".block"#index))) +#define CODE_BLOCK(index) __attribute__((noinline, section(".block"#index))) +#define DATA_BLOCK(index) __attribute__((section(".block"#index))) #else -#define RAM_BLOCK(index) -#define RO_BLOCK(index) +#define CODE_BLOCK(index) +#define DATA_BLOCK(index) #endif diff --git a/src/scr_credit.c b/src/scr_credit.c index 9683533..ea4a809 100644 --- a/src/scr_credit.c +++ b/src/scr_credit.c @@ -14,9 +14,13 @@ segment "screen"; extern char credits_lz4; -RAM_BLOCK(8) void scr_credit() +CODE_BLOCK(8) void scr_credit() { - *((char*)0xC000) = 0; +#ifdef F256 + //$$JGA TODO - fix this + *((char*)0x300) = 0; +#endif + #ifdef IIGS // Keep the Screen on *VIDEO_REGISTER|=0xC0;