diff options
author | hap <happppp@users.noreply.github.com> | 2021-05-18 00:26:16 +0200 |
---|---|---|
committer | hap <happppp@users.noreply.github.com> | 2021-05-18 00:26:16 +0200 |
commit | fde37c3d4c2a69c68bac03269f73743a9125039c (patch) | |
tree | b5f2e8a24a4f380aac1c3685a63d3dfbbbc12a75 | |
parent | c5ae39b4146c1b88d738b48f2ae35cf7a0c9ddbc (diff) |
coco3: remove the dual screens, machine config option instead
-rw-r--r-- | src/mame/drivers/coco3.cpp | 34 | ||||
-rw-r--r-- | src/mame/drivers/hh_tms1k.cpp | 1 | ||||
-rw-r--r-- | src/mame/includes/coco3.h | 10 | ||||
-rw-r--r-- | src/mame/layout/coco3.lay | 20 | ||||
-rw-r--r-- | src/mame/machine/coco3.cpp | 17 |
5 files changed, 21 insertions, 61 deletions
diff --git a/src/mame/drivers/coco3.cpp b/src/mame/drivers/coco3.cpp index b62d2525fa3..145916a9478 100644 --- a/src/mame/drivers/coco3.cpp +++ b/src/mame/drivers/coco3.cpp @@ -18,7 +18,6 @@ #include "cpu/m6809/hd6309.h" #include "formats/coco_cas.h" #include "softlist.h" -#include "coco3.lh" @@ -147,6 +146,11 @@ static INPUT_PORTS_START( coco3_keyboard ) PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHANGED_MEMBER(DEVICE_SELF, coco3_state, coco_state::keyboard_changed, 0) PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1)) PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHANGED_MEMBER(DEVICE_SELF, coco3_state, coco_state::keyboard_changed, 0) PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2)) PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHANGED_MEMBER(DEVICE_SELF, coco3_state, coco_state::keyboard_changed, 0) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) + + PORT_START("screen_config") + PORT_CONFNAME( 0x01, 0x00, "Monitor Type" ) + PORT_CONFSETTING( 0x00, "Composite" ) + PORT_CONFSETTING( 0x01, "RGB" ) INPUT_PORTS_END @@ -306,31 +310,21 @@ void coco3_state::coco3(machine_config &config) COCO_VHD(config, m_vhd_1, 0, m_maincpu); // video hardware - config.set_default_layout(layout_coco3); - GIME_NTSC(config, m_gime, XTAL(28'636'363), MAINCPU_TAG, RAM_TAG, CARTRIDGE_TAG, MAINCPU_TAG); - m_gime->set_screen(COMPOSITE_SCREEN_TAG); + m_gime->set_screen("screen"); m_gime->hsync_wr_callback().set(PIA0_TAG, FUNC(pia6821_device::ca1_w)); m_gime->fsync_wr_callback().set(PIA0_TAG, FUNC(pia6821_device::cb1_w)); m_gime->irq_wr_callback().set(m_irqs, FUNC(input_merger_device::in_w<2>)); m_gime->firq_wr_callback().set(m_firqs, FUNC(input_merger_device::in_w<2>)); m_gime->floating_bus_rd_callback().set(FUNC(coco3_state::floating_bus_r)); - // composite monitor - screen_device &composite_screen(SCREEN(config, COMPOSITE_SCREEN_TAG, SCREEN_TYPE_RASTER)); - composite_screen.set_refresh_hz(60); - composite_screen.set_screen_update(FUNC(coco3_state::screen_update)); - composite_screen.set_size(640, 243); - composite_screen.set_visarea(0, 640-1, 1, 241-1); - composite_screen.set_vblank_time(0); - - // RGB monitor - screen_device &rgb_screen(SCREEN(config, RGB_SCREEN_TAG, SCREEN_TYPE_RASTER)); - rgb_screen.set_refresh_hz(60); - rgb_screen.set_screen_update(FUNC(coco3_state::screen_update)); - rgb_screen.set_size(640, 243); - rgb_screen.set_visarea(0, 640-1, 1, 241-1); - rgb_screen.set_vblank_time(0); + // monitor + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_screen_update(FUNC(coco3_state::screen_update)); + screen.set_size(640, 243); + screen.set_visarea(0, 640-1, 1, 241-1); + screen.set_vblank_time(0); // internal ram RAM(config, RAM_TAG).set_default_size("512K").set_extra_options("128K,2M,8M"); @@ -351,7 +345,7 @@ void coco3_state::coco3p(machine_config &config) // An additional 4.433618 MHz XTAL is required for PAL color encoding GIME_PAL(config.replace(), m_gime, XTAL(28'475'000), MAINCPU_TAG, RAM_TAG, CARTRIDGE_TAG, MAINCPU_TAG); - m_gime->set_screen(COMPOSITE_SCREEN_TAG); + m_gime->set_screen("screen"); m_gime->hsync_wr_callback().set(PIA0_TAG, FUNC(pia6821_device::ca1_w)); m_gime->fsync_wr_callback().set(PIA0_TAG, FUNC(pia6821_device::cb1_w)); m_gime->irq_wr_callback().set(m_irqs, FUNC(input_merger_device::in_w<2>)); diff --git a/src/mame/drivers/hh_tms1k.cpp b/src/mame/drivers/hh_tms1k.cpp index f1b8b5be8ba..dea3fc8e9a3 100644 --- a/src/mame/drivers/hh_tms1k.cpp +++ b/src/mame/drivers/hh_tms1k.cpp @@ -30,6 +30,7 @@ on Joerg Woerner's datamath.org: http://www.datamath.org/IC_List.htm @MP0166 TMS1000 1980, A-One Arrange Ball/LJN Computer Impulse/Tandy Zingo (model 60-2123) @MP0168 TMS1000 1979, Conic Multisport/Tandy Sports Arena (model 60-2158) @MP0170 TMS1000 1979, Conic Football + *MP0220 TMS1000 1980, Tomy Teacher *MP0230 TMS1000 1980, Entex Blast It (6015) @MP0271 TMS1000 1982, Radio Shack Monkey See @MP0907 TMS1000 1979, Conic Basketball (101-006) diff --git a/src/mame/includes/coco3.h b/src/mame/includes/coco3.h index 8ef5786f105..8522e2c966c 100644 --- a/src/mame/includes/coco3.h +++ b/src/mame/includes/coco3.h @@ -4,7 +4,7 @@ coco3.h - TRS-80 Radio Shack Color Computer 1/2 Family + TRS-80 Radio Shack Color Computer 3 Family ***************************************************************************/ @@ -23,9 +23,6 @@ #define GIME_TAG "gime" #define VDG_TAG "vdg" -#define COMPOSITE_SCREEN_TAG "composite" -#define RGB_SCREEN_TAG "rgb" - //************************************************************************** @@ -37,7 +34,8 @@ class coco3_state : public coco_state public: coco3_state(const machine_config &mconfig, device_type type, const char *tag) : coco_state(mconfig, type, tag) - , m_gime(*this, GIME_TAG) { } + , m_gime(*this, GIME_TAG) + , m_screen_config(*this, "screen_config") { } virtual void ff20_write(offs_t offset, uint8_t data) override; virtual uint8_t ff40_read(offs_t offset) override; @@ -50,6 +48,7 @@ public: void coco3dw1(machine_config &config); void coco3(machine_config &config); void coco3_mem(address_map &map); + protected: virtual void update_cart_base(uint8_t *cart_base) override; @@ -59,6 +58,7 @@ protected: private: required_device<gime_device> m_gime; + required_ioport m_screen_config; }; #endif // MAME_INCLUDES_COCO3_H diff --git a/src/mame/layout/coco3.lay b/src/mame/layout/coco3.lay deleted file mode 100644 index 561248b7dc1..00000000000 --- a/src/mame/layout/coco3.lay +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0"?> -<!-- -license:CC0 ---> -<mamelayout version="2"> - <view name="Composite"> - <!-- workaround for MAME selecting a 2-screen view by default --> - <screen index="1"><bounds left="0" top="0" right="4" bottom="3" /><color alpha="0" /></screen> - - <screen index="0"> - <bounds left="0" top="0" right="4" bottom="3" /> - </screen> - </view> - - <view name="RGB"> - <screen index="1"> - <bounds left="0" top="0" right="4" bottom="3" /> - </screen> - </view> -</mamelayout> diff --git a/src/mame/machine/coco3.cpp b/src/mame/machine/coco3.cpp index b49d79ef2b0..60595c3425d 100644 --- a/src/mame/machine/coco3.cpp +++ b/src/mame/machine/coco3.cpp @@ -127,20 +127,5 @@ void coco3_state::update_cart_base(uint8_t *cart_base) uint32_t coco3_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - bool result; - if (!strcmp(screen.tag(), ":" COMPOSITE_SCREEN_TAG)) - { - /* composite screen */ - result = m_gime->update_composite(bitmap, cliprect); - } - else if (!strcmp(screen.tag(), ":" RGB_SCREEN_TAG)) - { - /* rgb screen */ - result = m_gime->update_rgb(bitmap, cliprect); - } - else - { - fatalerror("Called screen_update() with invalid tag '%s'\n", screen.tag()); - } - return result; + return (m_screen_config->read() & 1) ? m_gime->update_rgb(bitmap, cliprect) : m_gime->update_composite(bitmap, cliprect); } |