From a020b82a7da8e35fef03af376b0f0b8448c64537 Mon Sep 17 00:00:00 2001 From: Patrick Mackinlay Date: Mon, 23 Oct 2017 19:40:40 +0700 Subject: [PATCH] gt: minor cleaning (nw) --- src/devices/bus/interpro/sr/gt.cpp | 38 ++++++++++++++-------------- src/devices/bus/interpro/sr/gt.h | 40 ++++++++++++++++-------------- 2 files changed, 41 insertions(+), 37 deletions(-) diff --git a/src/devices/bus/interpro/sr/gt.cpp b/src/devices/bus/interpro/sr/gt.cpp index aa1305e726a..c4ed9109792 100644 --- a/src/devices/bus/interpro/sr/gt.cpp +++ b/src/devices/bus/interpro/sr/gt.cpp @@ -53,25 +53,25 @@ DEFINE_DEVICE_TYPE(MPCB963, mpcb963_device, "mpcb963", "2000 Graphics f/1 1Mp Mo DEFINE_DEVICE_TYPE(MPCBA79, mpcba79_device, "mpcba79", "2000 Graphics f/2 1Mp Monitors") /* - * The screen data here is just a guess for now. Real values will need to be - * determined to ensure the cursor positions generated by the Bt459 are + * The raw screen data here is just a guess for now. Real values will need to + * be determined to ensure the cursor positions generated by the Bt459 are * aligned properly on the screen. */ MACHINE_CONFIG_MEMBER(mpcb963_device::device_add_mconfig) MCFG_SCREEN_ADD("screen0", RASTER) - MCFG_SCREEN_RAW_PARAMS(80'000'000, GT_XRES, 0, GT_XRES, GT_YRES, 0, GT_YRES) + MCFG_SCREEN_RAW_PARAMS(GT_PIXCLOCK, GT_XPIXELS, 0, GT_XPIXELS, GT_YPIXELS, 0, GT_YPIXELS) MCFG_SCREEN_UPDATE_DEVICE("", mpcb963_device, screen_update0) MCFG_DEVICE_ADD("ramdac0", BT459, 0) MACHINE_CONFIG_END MACHINE_CONFIG_MEMBER(mpcba79_device::device_add_mconfig) MCFG_SCREEN_ADD("screen0", RASTER) - MCFG_SCREEN_RAW_PARAMS(80'000'000, GT_XRES, 0, GT_XRES, GT_YRES, 0, GT_YRES) + MCFG_SCREEN_RAW_PARAMS(GT_PIXCLOCK, GT_XPIXELS, 0, GT_XPIXELS, GT_YPIXELS, 0, GT_YPIXELS) MCFG_SCREEN_UPDATE_DEVICE("", mpcba79_device, screen_update0) MCFG_DEVICE_ADD("ramdac0", BT459, 0) MCFG_SCREEN_ADD("screen1", RASTER) - MCFG_SCREEN_RAW_PARAMS(80'000'000, GT_XRES, 0, GT_XRES, GT_YRES, 0, GT_YRES) + MCFG_SCREEN_RAW_PARAMS(GT_PIXCLOCK, GT_XPIXELS, 0, GT_XPIXELS, GT_YPIXELS, 0, GT_YPIXELS) MCFG_SCREEN_UPDATE_DEVICE("", mpcba79_device, screen_update1) MCFG_DEVICE_ADD("ramdac1", BT459, 0) MACHINE_CONFIG_END @@ -97,10 +97,10 @@ void mpcb963_device::device_start() gt_device_base::device_start(); // allocate double-buffered vram - m_screen[0].vram.reset(new u8[GT_VRAM * 2]); + m_screen[0].vram.reset(new u8[GT_VRAM_SIZE]); save_item(NAME(m_control)); - save_pointer(NAME(m_screen[0].vram.get()), GT_VRAM * 2); + save_pointer(NAME(m_screen[0].vram.get()), GT_VRAM_SIZE); } @@ -118,16 +118,16 @@ READ32_MEMBER(mpcb963_device::vram_r) const WRITE32_MEMBER(mpcb963_device::vram_w) { - gt_screen_t >_screen = m_screen[(offset >> 19) & 1]; + const gt_screen_t >_screen = m_screen[(offset >> 19) & 1]; ((u32 *)gt_screen.vram.get())[offset & 0x7ffff] = (((u32 *)gt_screen.vram.get())[offset & 0x7ffff] & ~mem_mask) | (data & mem_mask); } u32 mpcb963_device::screen_update0(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - gt_screen_t >_screen = m_screen[0]; + const gt_screen_t >_screen = m_screen[0]; - gt_screen.ramdac->screen_update(screen, bitmap, cliprect, >_screen.vram[gt_screen.primary ? 0x000000 : GT_VRAM]); + gt_screen.ramdac->screen_update(screen, bitmap, cliprect, >_screen.vram[gt_screen.primary ? 0x000000 : GT_BUFFER_SIZE]); return 0; } @@ -147,12 +147,12 @@ void mpcba79_device::device_start() { gt_device_base::device_start(); - m_screen[0].vram.reset(new u8[VRAM_SIZE]); - m_screen[1].vram.reset(new u8[VRAM_SIZE]); + m_screen[0].vram.reset(new u8[GT_VRAM_SIZE]); + m_screen[1].vram.reset(new u8[GT_VRAM_SIZE]); save_item(NAME(m_control)); - save_pointer(NAME(m_screen[0].vram.get()), VRAM_SIZE); - save_pointer(NAME(m_screen[1].vram.get()), VRAM_SIZE); + save_pointer(NAME(m_screen[0].vram.get()), GT_VRAM_SIZE); + save_pointer(NAME(m_screen[1].vram.get()), GT_VRAM_SIZE); } WRITE16_MEMBER(mpcba79_device::control_w) @@ -169,25 +169,25 @@ READ32_MEMBER(mpcba79_device::vram_r) const WRITE32_MEMBER(mpcba79_device::vram_w) { - gt_screen_t >_screen = m_screen[(offset >> 19) & 1]; + const gt_screen_t >_screen = m_screen[(offset >> 19) & 1]; ((u32 *)gt_screen.vram.get())[offset & 0x7ffff] = (((u32 *)gt_screen.vram.get())[offset & 0x7ffff] & ~mem_mask) | (data & mem_mask); } u32 mpcba79_device::screen_update0(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - gt_screen_t >_screen = m_screen[0]; + const gt_screen_t >_screen = m_screen[0]; - gt_screen.ramdac->screen_update(screen, bitmap, cliprect, >_screen.vram[gt_screen.primary ? 0x000000 : GT_VRAM]); + gt_screen.ramdac->screen_update(screen, bitmap, cliprect, >_screen.vram[gt_screen.primary ? 0x000000 : GT_BUFFER_SIZE]); return 0; } u32 mpcba79_device::screen_update1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - gt_screen_t >_screen = m_screen[1]; + const gt_screen_t >_screen = m_screen[1]; - gt_screen.ramdac->screen_update(screen, bitmap, cliprect, >_screen.vram[gt_screen.primary ? 0x000000 : GT_VRAM]); + gt_screen.ramdac->screen_update(screen, bitmap, cliprect, >_screen.vram[gt_screen.primary ? 0x000000 : GT_BUFFER_SIZE]); return 0; } diff --git a/src/devices/bus/interpro/sr/gt.h b/src/devices/bus/interpro/sr/gt.h index a151657f79f..c572772ccda 100644 --- a/src/devices/bus/interpro/sr/gt.h +++ b/src/devices/bus/interpro/sr/gt.h @@ -14,9 +14,11 @@ protected: gt_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); public: - const int GT_XRES = 1184; - const int GT_YRES = 884; - const int GT_VRAM = 0x100000; // 1 megabyte + static const u32 GT_PIXCLOCK = 80'000'000; // just a guess + static const int GT_XPIXELS = 1184; + static const int GT_YPIXELS = 884; + static const int GT_BUFFER_SIZE = 0x100000; // 1 megabyte + static const int GT_VRAM_SIZE = 0x200000; // 1 megabyte double buffered enum control_mask { @@ -24,6 +26,12 @@ public: CONTROL_BUSY = 0x8000 }; + virtual DECLARE_READ16_MEMBER(control_r) const = 0; + virtual DECLARE_WRITE16_MEMBER(control_w) = 0; + virtual DECLARE_READ32_MEMBER(vram_r) const = 0; + virtual DECLARE_WRITE32_MEMBER(vram_w) = 0; + +protected: typedef struct { required_device ramdac; @@ -31,12 +39,6 @@ public: bool primary; } gt_screen_t; - - virtual DECLARE_READ16_MEMBER(control_r) const = 0; - virtual DECLARE_WRITE16_MEMBER(control_w) = 0; - - virtual DECLARE_READ32_MEMBER(vram_r) const = 0; - virtual DECLARE_WRITE32_MEMBER(vram_w) = 0; }; class mpcb963_device : public gt_device_base @@ -44,25 +46,26 @@ class mpcb963_device : public gt_device_base public: mpcb963_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + static const int GT_SCREEN_COUNT = 1; + virtual DECLARE_ADDRESS_MAP(map, 32) override; virtual DECLARE_READ16_MEMBER(control_r) const override { return m_control; } virtual DECLARE_WRITE16_MEMBER(control_w) override; - virtual DECLARE_READ32_MEMBER(vram_r) const override; virtual DECLARE_WRITE32_MEMBER(vram_w) override; - u32 screen_update0(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - protected: virtual const tiny_rom_entry *device_rom_region() const override; virtual void device_add_mconfig(machine_config &config) override; virtual void device_start() override; + u32 screen_update0(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + private: u16 m_control; - gt_screen_t m_screen[1]; + gt_screen_t m_screen[GT_SCREEN_COUNT]; }; class mpcba79_device : public gt_device_base @@ -70,25 +73,26 @@ class mpcba79_device : public gt_device_base public: mpcba79_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + static const int GT_SCREEN_COUNT = 2; + virtual DECLARE_ADDRESS_MAP(map, 32) override; virtual DECLARE_READ16_MEMBER(control_r) const override { return m_control; } virtual DECLARE_WRITE16_MEMBER(control_w) override; - virtual DECLARE_READ32_MEMBER(vram_r) const override; virtual DECLARE_WRITE32_MEMBER(vram_w) override; - u32 screen_update0(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - u32 screen_update1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - protected: virtual const tiny_rom_entry *device_rom_region() const override; virtual void device_add_mconfig(machine_config &config) override; virtual void device_start() override; + u32 screen_update0(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + u32 screen_update1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + private: u16 m_control; - gt_screen_t m_screen[2]; + gt_screen_t m_screen[GT_SCREEN_COUNT]; }; // device type definition