From 53270267b8c6f11067bcfe306d9ee0b96ba0581b Mon Sep 17 00:00:00 2001 From: Duncan Smith Date: Sat, 26 Jun 2010 21:33:19 -0700 Subject: Added bank-swapping routines (incomplete: doesn't implement memory map mode 1) --- bankswap.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 bankswap.c (limited to 'bankswap.c') diff --git a/bankswap.c b/bankswap.c new file mode 100644 index 0000000..4906667 --- /dev/null +++ b/bankswap.c @@ -0,0 +1,27 @@ +/* Memory bank swapping driver for 680 project. + * + * Copyright 2010, Duncan Smith + * GPL + */ + +#include "asm_vars.h" + +void* pages[256]; + +/* Address 0000 is always bound to ROM page 0. */ + +/* Process orders to swap bank A (port 06, 0x4000). */ +void bankswap_4000_write(char data) +{ + mem_page_1 = pages[data]; + mem_page_loc_1 = data; + return; +} + +/* Process orders to swap bank B (port 07, 0x8000). */ +void bankswap_b_write(char data) +{ + mem_page_2 = pages[data]; + mem_page_loc_2 = data; + return; +} -- cgit v1.2.3