From 36695f04874bfda18a9e6e1b1505382b382b4411 Mon Sep 17 00:00:00 2001 From: Jasmine Iwanek Date: Sat, 15 Jan 2022 19:04:05 -0500 Subject: [PATCH] Flesh out Intel AboveBoard --- src/device/isamem.c | 104 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) diff --git a/src/device/isamem.c b/src/device/isamem.c index b5733d770..2d2e10622 100644 --- a/src/device/isamem.c +++ b/src/device/isamem.c @@ -92,6 +92,7 @@ #define ISAMEM_EMS5150_CARD 6 #define ISAMEM_EV159_CARD 10 #define ISAMEM_RAMPAGEXT_CARD 11 +#define ISAMEM_ABOVEBOARD_CARD 12 #define ISAMEM_DEBUG 0 @@ -447,6 +448,7 @@ dev->frame_addr = 0xE0000; break; case ISAMEM_RAMPAGEXT_CARD: /* AST RAMpage/XT */ + case ISAMEM_ABOVEBOARD_CARD: /* Intel AboveBoard */ dev->base_addr = device_get_config_hex16("base"); dev->total_size = device_get_config_int("size"); dev->start_addr = device_get_config_int("start"); @@ -1053,6 +1055,108 @@ static const device_t isamem_rampage_device = { #endif +#ifdef USE_ISAMEM_IAB +static const device_config_t iab_config[] = +{ + { + "base", "Address", CONFIG_HEX16, "", 0x0258, "", { 0 }, + { + { + "208H", 0x0208 + }, + { + "218H", 0x0218 + }, + { + "258H", 0x0258 + }, + { + "268H", 0x0268 + }, + { + "2A8H", 0x02A8 + }, + { + "2B8H", 0x02B8 + }, + { + "2E8H", 0x02E8 + }, + { + "" + } + }, + }, + { + "frame", "Frame Address", CONFIG_HEX20, "", 0, "", { 0 }, + { + { + "Disabled", 0x00000 + }, + { + "C000H", 0xC0000 + }, + { + "D000H", 0xD0000 + }, + { + "E000H", 0xE0000 + }, + { + "" + } + }, + }, + { + "width", "I/O Width", CONFIG_SELECTION, "", 8, "", { 0 }, + { + { + "8-bit", 8 + }, + { + "16-bit", 16 + }, + { + "" + } + }, + }, + { + "speed", "Transfer Speed", CONFIG_SELECTION, "", 0, "", { 0 }, + { + { + "Standard", 0 + }, + { + "High-Speed", 1 + }, + { + "" + } + } + }, + { + "size", "Memory Size", CONFIG_SPINNER, "", 128, + "", + { 0, 8192, 128 }, + { 0 } + }, + { + "", "", -1 + } +}; + +static const device_t isamem_iab_device = { + "Intel AboveBoard", + DEVICE_ISA, + ISAMEM_ABOVEBOARD_CARD, + isamem_init, isamem_close, NULL, + { NULL }, NULL, NULL, + iab_config +}; +#endif + + static const struct { const char *internal_name; const device_t *dev;