From 9ad559f693aab4043fe0dd02155d4c98c8f89010 Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Mon, 3 Sep 2018 21:17:24 +0100 Subject: [PATCH] rc2014: we are ready to do the swap logic but not yet there --- Kernel/platform-rc2014/README | 12 ++++++++++-- Kernel/platform-rc2014/config.h | 2 +- Kernel/platform-rc2014/discard.c | 3 ++- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/Kernel/platform-rc2014/README b/Kernel/platform-rc2014/README index 9424d390..e7d86361 100644 --- a/Kernel/platform-rc2014/README +++ b/Kernel/platform-rc2014/README @@ -11,13 +11,17 @@ Sergey Kiselev , and others. Supported Hardware RC2014 Z80 card or compatible + 512K ROM / RAM board. This board is basically a clone of the memory management subsystem of the Zeta V2. It replaces the RC2014's default ROM and RAM boards. + A serial IO board. Either an RC2014 SIO/2 board or a 68B50 ACIA board. If you have a Scott Baker SIO/2 card you'll need to see config.h CTC board at 0x90 + DS1302 RTC at 0xC0 + Options: VFD Display. If config.h:CONFIG_VFD_TERM is defined, then the VFD @@ -43,12 +47,16 @@ Configuration Things that don't work - * The RC2014 doesn't come with a clock. - * Flow control isn't yet enabled for the serial port. + * SIO baud rate setting etc has not been tackled + Stuff To Do + * SIO v ACIA detection is bust + + * Weird hangs if left idle at bootprompt for ages + * Rework the CTCs if we can so we use CTC0 as a timer for the CTC clock and use CTC1 to count CTC0 overflows. That way we can use the CTC0 interrupt and the CTC1 value together in order to a) spot missed events and b) allow diff --git a/Kernel/platform-rc2014/config.h b/Kernel/platform-rc2014/config.h index 3e592ab8..d2006d9a 100644 --- a/Kernel/platform-rc2014/config.h +++ b/Kernel/platform-rc2014/config.h @@ -25,7 +25,7 @@ #define KERNTOP 0xC000 /* Top of kernel (first 3 banks), base of shared bank */ #define PROC_SIZE 64 /* Memory needed per process */ -#define SWAPDEV (swap_dev) /* A variable for dynamic, or a device major/minor */ +//#define SWAPDEV (swap_dev) /* A variable for dynamic, or a device major/minor */ extern unsigned int swap_dev; #define SWAP_SIZE 0x79 /* 60.5K in blocks (prog + udata) */ #define SWAPBASE 0x0000 /* start at the base of user mem */ diff --git a/Kernel/platform-rc2014/discard.c b/Kernel/platform-rc2014/discard.c index 9d927508..19ea3036 100644 --- a/Kernel/platform-rc2014/discard.c +++ b/Kernel/platform-rc2014/discard.c @@ -61,11 +61,12 @@ void platform_swap_found(uint8_t letter, uint8_t m) n = blk->lba_count[m - 1] / SWAP_SIZE; if (n > MAX_SWAPS) n = MAX_SWAPS; +#ifdef SWAPDEV while(n) swapmap_add(n--); +#endif } - void device_init(void) { ds1302_init(); -- 2.34.1