diff options
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 |
commit | ba819fcf5a7fd199dfd47712b2cbc79b7dd7a5b9 (patch) | |
tree | e3b4ae0df7769a2178075eb9cb22e87f0e8efe3b | |
parent | 805074ccfe9c61b94103d8ecc346ffd86e42c15e (diff) |
qvt6800.cpp: CRTC and screen configuration (nw)
-rw-r--r-- | src/mame/drivers/qvt6800.cpp | 37 |
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 |