From 4263bc8227807ef0405b37c9b414f8c68fdefa6c Mon Sep 17 00:00:00 2001 From: SarahW Date: Tue, 10 Apr 2018 17:21:18 +0100 Subject: [PATCH] Added monitor type configuration to Plantronics Colorplus. Plantronics now doesn't inherit settings from the last emulated CGA system. --- src/vid_colorplus.c | 53 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/src/vid_colorplus.c b/src/vid_colorplus.c index acb10cb..6a28a23 100644 --- a/src/vid_colorplus.c +++ b/src/vid_colorplus.c @@ -336,15 +336,21 @@ void colorplus_poll(void *p) void *colorplus_init() { + int display_type, contrast; colorplus_t *colorplus = malloc(sizeof(colorplus_t)); memset(colorplus, 0, sizeof(colorplus_t)); colorplus->cga.vram = malloc(0x8000); colorplus->cga.composite = colorplus->cga.snow_enabled = 0; + + display_type = device_get_config_int("display_type"); + contrast = device_get_config_int("contrast"); timer_add(colorplus_poll, &colorplus->cga.vidtime, TIMER_ALWAYS_ENABLED, colorplus); mem_mapping_add(&colorplus->cga.mapping, 0xb8000, 0x08000, colorplus_read, NULL, NULL, colorplus_write, NULL, NULL, NULL, 0, colorplus); io_sethandler(0x03d0, 0x0010, colorplus_in, NULL, NULL, colorplus_out, NULL, NULL, colorplus); + + cgapal_rebuild(display_type, contrast); return colorplus; } @@ -364,6 +370,51 @@ void colorplus_speed_changed(void *p) cga_recalctimings(&colorplus->cga); } +device_config_t colorplus_config[] = +{ + { + .name = "display_type", + .description = "Display type", + .type = CONFIG_SELECTION, + .selection = + { + { + .description = "RGB", + .value = DISPLAY_RGB + }, + { + .description = "RGB (no brown)", + .value = DISPLAY_RGB_NO_BROWN + }, + { + .description = "Green Monochrome", + .value = DISPLAY_GREEN + }, + { + .description = "Amber Monochrome", + .value = DISPLAY_AMBER + }, + { + .description = "White Monochrome", + .value = DISPLAY_WHITE + }, + { + .description = "" + } + }, + .default_int = DISPLAY_RGB + }, + { + .name = "contrast", + .description = "Alternate monochrome contrast", + .type = CONFIG_BINARY, + .default_int = 0 + }, + { + .type = -1 + } +}; + device_t colorplus_device = { "Colorplus", @@ -374,5 +425,5 @@ device_t colorplus_device = colorplus_speed_changed, NULL, NULL, - NULL + colorplus_config };