From e2a88581a95b7f8d388033c3dd81861486e070c0 Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Mon, 2 Jul 2018 22:17:31 +0100 Subject: [PATCH] bankld: support banked linking of non common area data We need this to put things like the vt buffer into a specific bank rather than common space on TRS80 model 1 --- Kernel/tools/bankld/lkrloc3.c | 4 ++-- Kernel/tools/binmunge.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Kernel/tools/bankld/lkrloc3.c b/Kernel/tools/bankld/lkrloc3.c index 98c862c8..f2f8ee4c 100644 --- a/Kernel/tools/bankld/lkrloc3.c +++ b/Kernel/tools/bankld/lkrloc3.c @@ -187,9 +187,9 @@ static int bankmagic(struct areax *ax) return 1; if (strcmp(a->a_id, "_DISCARD2") == 0) return 2; - if (strncmp(a->a_id, "_CODE", 5)) + if (strncmp(a->a_id, "_CODE", 5) && strncmp(a->a_id, "_DATA", 5)) return 0; - if (a->a_id[5] == 0) /* We count _CODE and _CODE1 both as first bank */ + if (a->a_id[0] == 'C' && a->a_id[5] == 0) /* We count _CODE and _CODE1 both as first bank */ return 1; c = a->a_id[5] - '0'; if (c < 1 || c > 9) diff --git a/Kernel/tools/binmunge.c b/Kernel/tools/binmunge.c index 4ddc5123..72feb306 100644 --- a/Kernel/tools/binmunge.c +++ b/Kernel/tools/binmunge.c @@ -226,7 +226,7 @@ int stub_code(char *name) /* Data */ if(strcmp(name, "_INITIALIZER") == 0) return 0; - if(strcmp(name, "_DATA") == 0) + if(strncmp(name, "_DATA", 5) == 0) return 0; if(strcmp(name, "_FONT") == 0) return 0; -- 2.34.1