summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/isa/ega.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/isa/ega.cpp')
-rw-r--r--src/devices/bus/isa/ega.cpp45
1 files changed, 22 insertions, 23 deletions
diff --git a/src/devices/bus/isa/ega.cpp b/src/devices/bus/isa/ega.cpp
index 01c73066088..5da3c263384 100644
--- a/src/devices/bus/isa/ega.cpp
+++ b/src/devices/bus/isa/ega.cpp
@@ -528,23 +528,24 @@ DEFINE_DEVICE_TYPE(ISA8_EGA, isa8_ega_device, "ega", "IBM Enhanced Graphics Adap
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(isa8_ega_device::device_add_mconfig)
- MCFG_SCREEN_ADD(EGA_SCREEN_NAME, RASTER)
- MCFG_SCREEN_RAW_PARAMS(16257000,912,0,640,262,0,200)
- MCFG_SCREEN_UPDATE_DEVICE(EGA_CRTC_NAME, crtc_ega_device, screen_update)
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_PALETTE_ADD( "palette", 64 )
-
- MCFG_DEVICE_ADD(EGA_CRTC_NAME, CRTC_EGA, 16257000/8)
- MCFG_CRTC_EGA_SET_SCREEN(EGA_SCREEN_NAME)
- MCFG_CRTC_EGA_HPIXELS_PER_COLUMN(8)
- MCFG_CRTC_EGA_ROW_UPDATE_CB(isa8_ega_device, ega_update_row)
- MCFG_CRTC_EGA_RES_OUT_DE_CB(WRITELINE(*this, isa8_ega_device, de_changed))
- MCFG_CRTC_EGA_RES_OUT_HSYNC_CB(WRITELINE(*this, isa8_ega_device, hsync_changed))
- MCFG_CRTC_EGA_RES_OUT_VSYNC_CB(WRITELINE(*this, isa8_ega_device, vsync_changed))
- MCFG_CRTC_EGA_RES_OUT_VBLANK_CB(WRITELINE(*this, isa8_ega_device, vblank_changed))
-MACHINE_CONFIG_END
+void isa8_ega_device::device_add_mconfig(machine_config &config)
+{
+ screen_device &screen(SCREEN(config, EGA_SCREEN_NAME, SCREEN_TYPE_RASTER));
+ screen.set_raw(16.257_MHz_XTAL, 912, 0, 640, 262, 0, 200);
+ screen.set_screen_update(EGA_CRTC_NAME, FUNC(crtc_ega_device::screen_update));
+ screen.set_palette(m_palette);
+
+ PALETTE(config, m_palette).set_entries(64);
+
+ CRTC_EGA(config, m_crtc_ega, 16.257_MHz_XTAL/8);
+ m_crtc_ega->set_screen(EGA_SCREEN_NAME);
+ m_crtc_ega->config_set_hpixels_per_column(8);
+ m_crtc_ega->set_row_update_callback(FUNC(isa8_ega_device::ega_update_row), this);
+ m_crtc_ega->res_out_de_callback().set(FUNC(isa8_ega_device::de_changed));
+ m_crtc_ega->res_out_hsync_callback().set(FUNC(isa8_ega_device::hsync_changed));
+ m_crtc_ega->res_out_vsync_callback().set(FUNC(isa8_ega_device::vsync_changed));
+ m_crtc_ega->res_out_vblank_callback().set(FUNC(isa8_ega_device::vblank_changed));
+}
//-------------------------------------------------
// rom_region - device-specific ROM region
@@ -576,7 +577,7 @@ isa8_ega_device::isa8_ega_device(const machine_config &mconfig, const char *tag,
isa8_ega_device::isa8_ega_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, type, tag, owner, clock),
device_isa8_card_interface(mconfig, *this),
- m_crtc_ega(nullptr), m_videoram(nullptr), m_charA(nullptr), m_charB(nullptr),
+ m_crtc_ega(*this, EGA_CRTC_NAME), m_videoram(nullptr), m_charA(nullptr), m_charB(nullptr),
m_misc_output(0), m_feature_control(0), m_frame_cnt(0), m_hsync(0), m_vsync(0), m_vblank(0), m_display_enable(0), m_video_mode(0),
m_palette(*this, "palette")
{
@@ -626,8 +627,6 @@ void isa8_ega_device::device_start()
m_plane[2] = m_videoram + 0x20000;
m_plane[3] = m_videoram + 0x30000;
- m_crtc_ega = subdevice<crtc_ega_device>(EGA_CRTC_NAME);
-
m_isa->install_rom(this, 0xc0000, 0xc3fff, "ega", "user2");
m_isa->install_device(0x3b0, 0x3bf, read8_delegate(FUNC(isa8_ega_device::pc_ega8_3b0_r), this), write8_delegate(FUNC(isa8_ega_device::pc_ega8_3b0_w), this));
m_isa->install_device(0x3c0, 0x3cf, read8_delegate(FUNC(isa8_ega_device::pc_ega8_3c0_r), this), write8_delegate(FUNC(isa8_ega_device::pc_ega8_3c0_w), this));
@@ -1170,7 +1169,7 @@ READ8_MEMBER( isa8_ega_device::pc_ega8_3X0_r )
/* CRT Controller - data register */
case 1: case 3: case 5: case 7:
- data = m_crtc_ega->register_r( space, offset );
+ data = m_crtc_ega->register_r();
break;
/* Input Status Register 1 */
@@ -1205,12 +1204,12 @@ WRITE8_MEMBER( isa8_ega_device::pc_ega8_3X0_w )
{
/* CRT Controller - address register */
case 0: case 2: case 4: case 6:
- m_crtc_ega->address_w( space, offset, data );
+ m_crtc_ega->address_w(data);
break;
/* CRT Controller - data register */
case 1: case 3: case 5: case 7:
- m_crtc_ega->register_w( space, offset, data );
+ m_crtc_ega->register_w(data);
break;
/* Set Light Pen Flip Flop */