summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2018-01-11 21:07:52 -0500
committer AJR <ajrhacker@users.noreply.github.com>2018-01-11 21:07:52 -0500
commitba819fcf5a7fd199dfd47712b2cbc79b7dd7a5b9 (patch)
treee3b4ae0df7769a2178075eb9cb22e87f0e8efe3b
parent805074ccfe9c61b94103d8ecc346ffd86e42c15e (diff)
qvt6800.cpp: CRTC and screen configuration (nw)
-rw-r--r--src/mame/drivers/qvt6800.cpp37
1 files changed, 31 insertions, 6 deletions
diff --git a/src/mame/drivers/qvt6800.cpp b/src/mame/drivers/qvt6800.cpp
index 9dbea9a167e..ca61d5eec1e 100644
--- a/src/mame/drivers/qvt6800.cpp
+++ b/src/mame/drivers/qvt6800.cpp
@@ -13,7 +13,8 @@ Skeleton driver for M6800-based display terminals by Qume.
#include "machine/clock.h"
#include "machine/nvram.h"
#include "machine/z80ctc.h"
-//#include "video/mc6845.h"
+#include "video/mc6845.h"
+#include "screen.h"
class qvt6800_state : public driver_device
{
@@ -24,17 +25,23 @@ public:
, m_p_chargen(*this, "chargen")
{ }
+ MC6845_UPDATE_ROW(update_row);
+
private:
required_device<cpu_device> m_maincpu;
required_region_ptr<u8> m_p_chargen;
};
+MC6845_UPDATE_ROW(qvt6800_state::update_row)
+{
+}
+
static ADDRESS_MAP_START( qvt102_mem_map, AS_PROGRAM, 8, qvt6800_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x2800, 0x2803) AM_DEVWRITE("ctc", z80ctc_device, write)
AM_RANGE(0x4000, 0x47ff) AM_RAM
- //AM_RANGE(0x8000, 0x8000) AM_DEVREADWRITE("crtc", mc6845_device, status_r, address_w)
- //AM_RANGE(0x8001, 0x8001) AM_DEVREADWRITE("crtc", mc6845_device, register_r, register_w)
+ AM_RANGE(0x8000, 0x8000) AM_DEVREADWRITE("crtc", mc6845_device, status_r, address_w)
+ AM_RANGE(0x8001, 0x8001) AM_DEVREADWRITE("crtc", mc6845_device, register_r, register_w)
AM_RANGE(0x9800, 0x9801) AM_DEVREADWRITE("acia", acia6850_device, read, write)
AM_RANGE(0xe000, 0xffff) AM_ROM AM_REGION("maincpu", 0)
ADDRESS_MAP_END
@@ -43,8 +50,8 @@ static ADDRESS_MAP_START( qvt190_mem_map, AS_PROGRAM, 8, qvt6800_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x2500, 0x2501) AM_DEVREADWRITE("acia1", acia6850_device, read, write)
AM_RANGE(0x2600, 0x2601) AM_DEVREADWRITE("acia2", acia6850_device, read, write)
- //AM_RANGE(0x2800, 0x2800) AM_DEVREADWRITE("crtc", mc6845_device, status_r, address_w)
- //AM_RANGE(0x2801, 0x2801) AM_DEVREADWRITE("crtc", mc6845_device, register_r, register_w)
+ AM_RANGE(0x2800, 0x2800) AM_DEVREADWRITE("crtc", mc6845_device, status_r, address_w)
+ AM_RANGE(0x2801, 0x2801) AM_DEVREADWRITE("crtc", mc6845_device, register_r, register_w)
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION("maincpu", 0)
ADDRESS_MAP_END
@@ -70,16 +77,34 @@ static MACHINE_CONFIG_START( qvt102 )
MCFG_CLOCK_SIGNAL_HANDLER(DEVWRITELINE("ctc", z80ctc_device, trg0))
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("ctc", z80ctc_device, trg1))
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(XTAL_16_6698MHz, 882, 0, 720, 315, 0, 300)
+ MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update)
+
+ MCFG_DEVICE_ADD("crtc", MC6845, XTAL_16_6698MHz / 9)
+ MCFG_MC6845_CHAR_WIDTH(9)
+ MCFG_MC6845_UPDATE_ROW_CB(qvt6800_state, update_row)
+ MCFG_VIDEO_SET_SCREEN("screen")
+
MCFG_CPU_ADD("kbdmcu", I8748, XTAL_6MHz)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( qvt190 )
- MCFG_CPU_ADD("maincpu", M6800, 1'000'000)
+ MCFG_CPU_ADD("maincpu", M6800, XTAL_16_6698MHz / 9)
MCFG_CPU_PROGRAM_MAP(qvt190_mem_map)
MCFG_DEVICE_ADD("acia1", ACIA6850, 0)
MCFG_DEVICE_ADD("acia2", ACIA6850, 0)
+
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(XTAL_16_6698MHz, 882, 0, 720, 315, 0, 300)
+ MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update)
+
+ MCFG_DEVICE_ADD("crtc", MC6845, XTAL_16_6698MHz / 9)
+ MCFG_MC6845_CHAR_WIDTH(9)
+ MCFG_MC6845_UPDATE_ROW_CB(qvt6800_state, update_row)
+ MCFG_VIDEO_SET_SCREEN("screen")
MACHINE_CONFIG_END