From 9480308855de1e65ed5e0ecf5e511225ca310ca9 Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Sun, 25 Nov 2018 15:24:30 +0000 Subject: [PATCH] zxdiv: workaround for what appears to be a bug in Fuse The fuse emulator unpages the DivIDE ROM if you execute an instruction at 0x700. That appears to be wrong. The Interface 1 does this but there is no evidence that any variant of the DivIDE does. Anyway we can work around it easily enough - we just stuff data and constants over that address range. --- Kernel/platform-zxdiv/crt0.s | 3 +-- Kernel/platform-zxdiv/fuzix.lnk | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/Kernel/platform-zxdiv/crt0.s b/Kernel/platform-zxdiv/crt0.s index 0b9d0367..4920a322 100644 --- a/Kernel/platform-zxdiv/crt0.s +++ b/Kernel/platform-zxdiv/crt0.s @@ -2,10 +2,9 @@ ; ; Our common lives low ; - .area _CODE + .area _CONST .area _COMMONMEM .area _STUBS - .area _CONST .area _INITIALIZER ; ; The writeables cannot start until 0x2000 but for simplicity diff --git a/Kernel/platform-zxdiv/fuzix.lnk b/Kernel/platform-zxdiv/fuzix.lnk index 26efb812..b94babcd 100644 --- a/Kernel/platform-zxdiv/fuzix.lnk +++ b/Kernel/platform-zxdiv/fuzix.lnk @@ -1,8 +1,7 @@ -mwxuy -r -i fuzix.ihx --b _CODE=0x0200 --b _COMMONMEM=0x400 +-b _CONST=0x400 -b _COMMONDATA=0x2200 -b _CODE1=0xC000 -b _CODE2=0xC000 -- 2.34.1