mirror of
https://github.com/holub/mame
synced 2025-07-05 01:48:29 +03:00
mc6845, upd7220: removed MCFG macros (nw)
This commit is contained in:
parent
76637c49f4
commit
03372028f5
@ -109,11 +109,12 @@ MACHINE_CONFIG_START(a2bus_videx160_device::device_add_mconfig)
|
||||
MCFG_SCREEN_RAW_PARAMS(CLOCK_LOW, 882, 0, 720, 370, 0, 350 )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( ULTRATERM_MC6845_NAME, mc6845_device, screen_update )
|
||||
|
||||
MCFG_MC6845_ADD(ULTRATERM_MC6845_NAME, MC6845, ULTRATERM_SCREEN_NAME, CLOCK_LOW/9)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(a2bus_videx160_device, crtc_update_row)
|
||||
MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(*this, a2bus_videx160_device, vsync_changed))
|
||||
MC6845(config, m_crtc, CLOCK_LOW/9);
|
||||
m_crtc->set_screen(ULTRATERM_SCREEN_NAME);
|
||||
m_crtc->set_show_border_area(false);
|
||||
m_crtc->set_char_width(8);
|
||||
m_crtc->set_update_row_callback(FUNC(a2bus_videx160_device::crtc_update_row), this);
|
||||
m_crtc->out_vsync_callback().set(FUNC(a2bus_videx160_device::vsync_changed));
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
//-------------------------------------------------
|
||||
|
@ -122,11 +122,12 @@ MACHINE_CONFIG_START(a2bus_videx80_device::device_add_mconfig)
|
||||
MCFG_SCREEN_RAW_PARAMS(MDA_CLOCK, 882, 0, 720, 370, 0, 350 )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( VIDEOTERM_MC6845_NAME, mc6845_device, screen_update )
|
||||
|
||||
MCFG_MC6845_ADD(VIDEOTERM_MC6845_NAME, MC6845, VIDEOTERM_SCREEN_NAME, MDA_CLOCK/9)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(a2bus_videx80_device, crtc_update_row)
|
||||
MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(*this, a2bus_videx80_device, vsync_changed))
|
||||
MC6845(config, m_crtc, MDA_CLOCK/9);
|
||||
m_crtc->set_screen(VIDEOTERM_SCREEN_NAME);
|
||||
m_crtc->set_show_border_area(false);
|
||||
m_crtc->set_char_width(8);
|
||||
m_crtc->set_update_row_callback(FUNC(a2bus_videx80_device::crtc_update_row), this);
|
||||
m_crtc->out_vsync_callback().set(FUNC(a2bus_videx80_device::vsync_changed));
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
//-------------------------------------------------
|
||||
|
@ -133,10 +133,11 @@ MACHINE_CONFIG_START(c64_xl80_device::device_add_mconfig)
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_c64_xl80)
|
||||
MCFG_PALETTE_ADD_MONOCHROME("palette")
|
||||
|
||||
MCFG_MC6845_ADD(HD46505SP_TAG, H46505, MC6845_SCREEN_TAG, XTAL(14'318'181) / 8)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(true)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(c64_xl80_device, crtc_update_row)
|
||||
H46505(config, m_crtc, XTAL(14'318'181) / 8);
|
||||
m_crtc->set_screen(MC6845_SCREEN_TAG);
|
||||
m_crtc->set_show_border_area(true);
|
||||
m_crtc->set_char_width(8);
|
||||
m_crtc->set_update_row_callback(FUNC(c64_xl80_device::crtc_update_row), this);
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
@ -86,10 +86,10 @@ MACHINE_CONFIG_START(compis_hrg_device::device_add_mconfig)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 400-1)
|
||||
MCFG_SCREEN_UPDATE_DEVICE(UPD7220_TAG, upd7220_device, screen_update)
|
||||
|
||||
MCFG_DEVICE_ADD(UPD7220_TAG, UPD7220, 2252500) // unknown clock
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, hrg_map)
|
||||
MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(compis_hrg_device, display_pixels)
|
||||
MCFG_VIDEO_SET_SCREEN(SCREEN_TAG)
|
||||
UPD7220(config, m_crtc, 2252500); // unknown clock
|
||||
m_crtc->set_addrmap(0, &compis_hrg_device::hrg_map);
|
||||
m_crtc->set_display_pixels_callback(FUNC(compis_hrg_device::display_pixels), this);
|
||||
m_crtc->set_screen(SCREEN_TAG);
|
||||
|
||||
MCFG_PALETTE_ADD_MONOCHROME("palette")
|
||||
MACHINE_CONFIG_END
|
||||
@ -104,10 +104,10 @@ MACHINE_CONFIG_START(compis_uhrg_device::device_add_mconfig)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 1280-1, 0, 800-1)
|
||||
MCFG_SCREEN_UPDATE_DEVICE(UPD7220_TAG, upd7220_device, screen_update)
|
||||
|
||||
MCFG_DEVICE_ADD(UPD7220_TAG, UPD7220, 2252500*2) // unknown clock
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, uhrg_map)
|
||||
MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(compis_uhrg_device, display_pixels)
|
||||
MCFG_VIDEO_SET_SCREEN(SCREEN_TAG)
|
||||
UPD7220(config, m_crtc, 2252500*2); // unknown clock
|
||||
m_crtc->set_addrmap(0, &compis_uhrg_device::uhrg_map);
|
||||
m_crtc->set_display_pixels_callback(FUNC(compis_uhrg_device::display_pixels), this);
|
||||
m_crtc->set_screen(SCREEN_TAG);
|
||||
|
||||
MCFG_PALETTE_ADD_MONOCHROME("palette")
|
||||
MACHINE_CONFIG_END
|
||||
|
@ -148,10 +148,11 @@ MACHINE_CONFIG_START(comx_clm_device::device_add_mconfig)
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_comx_clm)
|
||||
MCFG_PALETTE_ADD_MONOCHROME("palette")
|
||||
|
||||
MCFG_MC6845_ADD(MC6845_TAG, MC6845, MC6845_SCREEN_TAG, XTAL(14'318'181)/7)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(true)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(comx_clm_device, crtc_update_row)
|
||||
MC6845(config, m_crtc, XTAL(14'318'181)/7);
|
||||
m_crtc->set_screen(MC6845_SCREEN_TAG);
|
||||
m_crtc->set_show_border_area(true);
|
||||
m_crtc->set_char_width(8);
|
||||
m_crtc->set_update_row_callback(FUNC(comx_clm_device::crtc_update_row), this);
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
@ -429,12 +429,13 @@ MACHINE_CONFIG_START(ecb_grip21_device::device_add_mconfig)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||
|
||||
// devices
|
||||
MCFG_MC6845_ADD(MC6845_TAG, MC6845, SCREEN_TAG, XTAL(16'000'000)/4)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(true)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(ecb_grip21_device, crtc_update_row)
|
||||
MCFG_MC6845_OUT_DE_CB(WRITELINE(m_sti, z80sti_device, i1_w))
|
||||
MCFG_MC6845_OUT_CUR_CB(WRITELINE(m_sti, z80sti_device, i1_w))
|
||||
MC6845(config, m_crtc, XTAL(16'000'000)/4);
|
||||
m_crtc->set_screen(SCREEN_TAG);
|
||||
m_crtc->set_show_border_area(true);
|
||||
m_crtc->set_char_width(8);
|
||||
m_crtc->set_update_row_callback(FUNC(ecb_grip21_device::crtc_update_row), this);
|
||||
m_crtc->out_de_callback().set(m_sti, FUNC(z80sti_device::i1_w));
|
||||
m_crtc->out_cur_callback().set(m_sti, FUNC(z80sti_device::i1_w));
|
||||
|
||||
// HD6345(config, HD6345_TAG, XTAL(16'000'000)/4).set_screen(SCREEN_TAG);
|
||||
|
||||
|
@ -24,8 +24,8 @@ DEFINE_DEVICE_TYPE(TK02_80COL, tk02_device, "tk02", "TK02 80 Column Monochrome U
|
||||
void tk02_device::map(address_map &map)
|
||||
{
|
||||
// AM_RANGE(0x00, 0x07) AM_SELECT(0xff00) AM_READWRITE(ram_r, ram_w) // no AM_SELECT (or AM_MASK) support here
|
||||
map(0x08, 0x08).mirror(0xff00).w("crtc", FUNC(mc6845_device::address_w));
|
||||
map(0x09, 0x09).mirror(0xff00).w("crtc", FUNC(mc6845_device::register_w));
|
||||
map(0x08, 0x08).mirror(0xff00).w(m_crtc, FUNC(mc6845_device::address_w));
|
||||
map(0x09, 0x09).mirror(0xff00).w(m_crtc, FUNC(mc6845_device::register_w));
|
||||
map(0x0c, 0x0c).mirror(0xff00).r(FUNC(tk02_device::status_r));
|
||||
}
|
||||
|
||||
@ -105,11 +105,12 @@ MACHINE_CONFIG_START(tk02_device::device_add_mconfig)
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_tk02)
|
||||
|
||||
MCFG_MC6845_ADD("crtc", MC6845, "mono", XTAL(8'000'000) / 4)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(tk02_device, crtc_update_row)
|
||||
MCFG_MC6845_OUT_DE_CB(WRITELINE(*this, tk02_device, de_w))
|
||||
MC6845(config, m_crtc, XTAL(8'000'000) / 4);
|
||||
m_crtc->set_screen("mono");
|
||||
m_crtc->set_show_border_area(false);
|
||||
m_crtc->set_char_width(8);
|
||||
m_crtc->set_update_row_callback(FUNC(tk02_device::crtc_update_row), this);
|
||||
m_crtc->out_de_callback().set(FUNC(tk02_device::de_w));
|
||||
|
||||
MCFG_TATUNG_PIPE_ADD("pipe")
|
||||
MACHINE_CONFIG_END
|
||||
|
@ -280,12 +280,13 @@ MACHINE_CONFIG_START(isa8_aga_device::device_add_mconfig)
|
||||
|
||||
MCFG_PALETTE_ADD( "palette", /* CGA_PALETTE_SETS * 16*/ 65536 )
|
||||
|
||||
MCFG_MC6845_ADD(AGA_MC6845_NAME, MC6845, AGA_SCREEN_NAME, XTAL(14'318'181)/8)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(isa8_aga_device, aga_update_row)
|
||||
MCFG_MC6845_OUT_HSYNC_CB(WRITELINE(*this, isa8_aga_device, hsync_changed))
|
||||
MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(*this, isa8_aga_device, vsync_changed))
|
||||
MC6845(config, m_mc6845, XTAL(14'318'181)/8);
|
||||
m_mc6845->set_screen(AGA_SCREEN_NAME);
|
||||
m_mc6845->set_show_border_area(false);
|
||||
m_mc6845->set_char_width(8);
|
||||
m_mc6845->set_update_row_callback(FUNC(isa8_aga_device::aga_update_row), this);
|
||||
m_mc6845->out_hsync_callback().set(FUNC(isa8_aga_device::hsync_changed));
|
||||
m_mc6845->out_vsync_callback().set(FUNC(isa8_aga_device::vsync_changed));
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
@ -268,14 +268,14 @@ MACHINE_CONFIG_START(isa8_cga_device::device_add_mconfig)
|
||||
|
||||
MCFG_PALETTE_ADD("palette", /* CGA_PALETTE_SETS * 16*/ 65536 )
|
||||
|
||||
MCFG_MC6845_ADD(CGA_MC6845_NAME, MC6845, CGA_SCREEN_NAME, XTAL(14'318'181)/8)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(isa8_cga_device, crtc_update_row)
|
||||
MCFG_MC6845_OUT_HSYNC_CB(WRITELINE(*this, isa8_cga_device, hsync_changed))
|
||||
MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(*this, isa8_cga_device, vsync_changed))
|
||||
MCFG_MC6845_RECONFIGURE_CB(isa8_cga_device, reconfigure)
|
||||
MCFG_VIDEO_SET_SCREEN(nullptr)
|
||||
MC6845(config, m_crtc, XTAL(14'318'181)/16);
|
||||
m_crtc->set_screen(m_screen);
|
||||
m_crtc->set_show_border_area(false);
|
||||
m_crtc->set_char_width(8);
|
||||
m_crtc->set_update_row_callback(FUNC(isa8_cga_device::crtc_update_row), this);
|
||||
m_crtc->out_hsync_callback().set(FUNC(isa8_cga_device::hsync_changed));
|
||||
m_crtc->out_vsync_callback().set(FUNC(isa8_cga_device::vsync_changed));
|
||||
m_crtc->set_reconfigure_callback(FUNC(isa8_cga_device::reconfigure), this);
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
ioport_constructor isa8_cga_device::device_input_ports() const
|
||||
@ -305,7 +305,7 @@ isa8_cga_device::isa8_cga_device(const machine_config &mconfig, const char *tag,
|
||||
isa8_cga_device::isa8_cga_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_cga_config(*this, "cga_config"), m_framecnt(0), m_mode_control(0), m_color_select(0),
|
||||
m_crtc(*this, CGA_MC6845_NAME), m_cga_config(*this, "cga_config"), m_framecnt(0), m_mode_control(0), m_color_select(0),
|
||||
m_update_row_type(-1), m_y(0), m_chr_gen_base(nullptr), m_chr_gen(nullptr), m_vsync(0), m_hsync(0),
|
||||
m_vram_size( 0x4000 ), m_plantronics(0),
|
||||
m_palette(*this, "palette"),
|
||||
@ -397,9 +397,7 @@ void isa8_cga_device::device_reset()
|
||||
|
||||
uint32_t isa8_cga_device::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
mc6845_device *mc6845 = subdevice<mc6845_device>(CGA_MC6845_NAME);
|
||||
|
||||
mc6845->screen_update( screen, bitmap, cliprect);
|
||||
m_crtc->screen_update( screen, bitmap, cliprect);
|
||||
|
||||
/* Check for changes in font dipsetting */
|
||||
switch ( CGA_FONT )
|
||||
@ -782,7 +780,6 @@ void isa8_cga_device::set_palette_luts(void)
|
||||
*/
|
||||
void isa8_cga_device::mode_control_w(uint8_t data)
|
||||
{
|
||||
mc6845_device *mc6845 = subdevice<mc6845_device>(CGA_MC6845_NAME);
|
||||
uint8_t monitor = CGA_MONITOR;
|
||||
|
||||
m_mode_control = data;
|
||||
@ -791,7 +788,7 @@ void isa8_cga_device::mode_control_w(uint8_t data)
|
||||
switch ( m_mode_control & 0x3F )
|
||||
{
|
||||
case 0x08: case 0x09: case 0x0C: case 0x0D:
|
||||
mc6845->set_hpixels_per_column( 8 );
|
||||
m_crtc->set_hpixels_per_column( 8 );
|
||||
if ( monitor == CGA_MONITOR_COMPOSITE )
|
||||
{
|
||||
if ( m_mode_control & 0x04 )
|
||||
@ -812,7 +809,7 @@ void isa8_cga_device::mode_control_w(uint8_t data)
|
||||
}
|
||||
break;
|
||||
case 0x0A: case 0x0B: case 0x2A: case 0x2B:
|
||||
mc6845->set_hpixels_per_column( 8 );
|
||||
m_crtc->set_hpixels_per_column( 8 );
|
||||
if ( monitor == CGA_MONITOR_COMPOSITE )
|
||||
{
|
||||
m_update_row_type = CGA_GFX_4BPPL;
|
||||
@ -823,15 +820,15 @@ void isa8_cga_device::mode_control_w(uint8_t data)
|
||||
}
|
||||
break;
|
||||
case 0x0E: case 0x0F: case 0x2E: case 0x2F:
|
||||
mc6845->set_hpixels_per_column( 8 );
|
||||
m_crtc->set_hpixels_per_column( 8 );
|
||||
m_update_row_type = CGA_GFX_2BPP;
|
||||
break;
|
||||
case 0x18: case 0x19: case 0x1C: case 0x1D:
|
||||
mc6845->set_hpixels_per_column( 8 );
|
||||
m_crtc->set_hpixels_per_column( 8 );
|
||||
m_update_row_type = CGA_TEXT_INTEN_ALT;
|
||||
break;
|
||||
case 0x1A: case 0x1B: case 0x3A: case 0x3B:
|
||||
mc6845->set_hpixels_per_column( 16 );
|
||||
m_crtc->set_hpixels_per_column( 16 );
|
||||
if ( monitor == CGA_MONITOR_COMPOSITE )
|
||||
{
|
||||
m_update_row_type = CGA_GFX_4BPPH;
|
||||
@ -842,11 +839,11 @@ void isa8_cga_device::mode_control_w(uint8_t data)
|
||||
}
|
||||
break;
|
||||
case 0x1E: case 0x1F: case 0x3E: case 0x3F:
|
||||
mc6845->set_hpixels_per_column( 16 );
|
||||
m_crtc->set_hpixels_per_column( 16 );
|
||||
m_update_row_type = CGA_GFX_1BPP;
|
||||
break;
|
||||
case 0x28: case 0x29: case 0x2C: case 0x2D:
|
||||
mc6845->set_hpixels_per_column( 8 );
|
||||
m_crtc->set_hpixels_per_column( 8 );
|
||||
if ( monitor == CGA_MONITOR_COMPOSITE )
|
||||
{
|
||||
if ( m_mode_control & 0x04 )
|
||||
@ -867,7 +864,7 @@ void isa8_cga_device::mode_control_w(uint8_t data)
|
||||
}
|
||||
break;
|
||||
case 0x38: case 0x39: case 0x3C: case 0x3D:
|
||||
mc6845->set_hpixels_per_column( 8 );
|
||||
m_crtc->set_hpixels_per_column( 8 );
|
||||
m_update_row_type = CGA_TEXT_BLINK_ALT;
|
||||
break;
|
||||
default:
|
||||
@ -877,7 +874,7 @@ void isa8_cga_device::mode_control_w(uint8_t data)
|
||||
|
||||
// The lowest bit of the mode register selects, among others, the
|
||||
// input clock to the 6845.
|
||||
mc6845->set_clock( ( m_mode_control & 1 ) ? CGA_HCLK : CGA_LCLK );
|
||||
m_crtc->set_clock( ( m_mode_control & 1 ) ? CGA_HCLK : CGA_LCLK );
|
||||
|
||||
set_palette_luts();
|
||||
}
|
||||
@ -907,7 +904,6 @@ void isa8_cga_device::plantronics_w(uint8_t data)
|
||||
|
||||
READ8_MEMBER( isa8_cga_device::io_read )
|
||||
{
|
||||
mc6845_device *mc6845 = subdevice<mc6845_device>(CGA_MC6845_NAME);
|
||||
uint8_t data = 0xff;
|
||||
|
||||
switch( offset )
|
||||
@ -916,7 +912,7 @@ READ8_MEMBER( isa8_cga_device::io_read )
|
||||
/* return last written mc6845 address value here? */
|
||||
break;
|
||||
case 1: case 3: case 5: case 7:
|
||||
data = mc6845->register_r( space, offset );
|
||||
data = m_crtc->register_r( space, offset );
|
||||
break;
|
||||
case 10:
|
||||
data = m_vsync | ( ( data & 0x40 ) >> 4 ) | m_hsync;
|
||||
@ -929,14 +925,12 @@ READ8_MEMBER( isa8_cga_device::io_read )
|
||||
|
||||
WRITE8_MEMBER( isa8_cga_device::io_write )
|
||||
{
|
||||
mc6845_device *mc6845 = subdevice<mc6845_device>(CGA_MC6845_NAME);
|
||||
|
||||
switch(offset) {
|
||||
case 0: case 2: case 4: case 6:
|
||||
mc6845->address_w( space, offset, data );
|
||||
m_crtc->address_w( space, offset, data );
|
||||
break;
|
||||
case 1: case 3: case 5: case 7:
|
||||
mc6845->register_w( space, offset, data );
|
||||
m_crtc->register_w( space, offset, data );
|
||||
break;
|
||||
case 8:
|
||||
mode_control_w(data);
|
||||
@ -1171,20 +1165,18 @@ MC6845_UPDATE_ROW( isa8_cga_pc1512_device::pc1512_gfx_4bpp_update_row )
|
||||
|
||||
WRITE8_MEMBER( isa8_cga_pc1512_device::io_write )
|
||||
{
|
||||
mc6845_device *mc6845 = subdevice<mc6845_device>(CGA_MC6845_NAME);
|
||||
|
||||
switch (offset)
|
||||
{
|
||||
case 0: case 2: case 4: case 6:
|
||||
data &= 0x1F;
|
||||
mc6845->address_w( space, offset, data );
|
||||
m_crtc->address_w( space, offset, data );
|
||||
m_mc6845_address = data;
|
||||
break;
|
||||
|
||||
case 1: case 3: case 5: case 7:
|
||||
if ( ! m_mc6845_locked_register[m_mc6845_address] )
|
||||
{
|
||||
mc6845->register_w( space, offset, data );
|
||||
m_crtc->register_w( space, offset, data );
|
||||
if ( isa8_cga_pc1512_device::mc6845_writeonce_register[m_mc6845_address] )
|
||||
{
|
||||
m_mc6845_locked_register[m_mc6845_address] = 1;
|
||||
@ -1206,11 +1198,11 @@ WRITE8_MEMBER( isa8_cga_pc1512_device::io_write )
|
||||
switch( m_mode_control & 0x3F )
|
||||
{
|
||||
case 0x08: case 0x09: case 0x0C: case 0x0D:
|
||||
mc6845->set_hpixels_per_column( 8 );
|
||||
m_crtc->set_hpixels_per_column( 8 );
|
||||
m_update_row_type = CGA_TEXT_INTEN;
|
||||
break;
|
||||
case 0x0A: case 0x0B: case 0x2A: case 0x2B:
|
||||
mc6845->set_hpixels_per_column( 8 );
|
||||
m_crtc->set_hpixels_per_column( 8 );
|
||||
if ( ( CGA_MONITOR ) == CGA_MONITOR_COMPOSITE )
|
||||
{
|
||||
m_update_row_type = CGA_GFX_4BPPL;
|
||||
@ -1221,27 +1213,27 @@ WRITE8_MEMBER( isa8_cga_pc1512_device::io_write )
|
||||
}
|
||||
break;
|
||||
case 0x0E: case 0x0F: case 0x2E: case 0x2F:
|
||||
mc6845->set_hpixels_per_column( 8 );
|
||||
m_crtc->set_hpixels_per_column( 8 );
|
||||
m_update_row_type = CGA_GFX_2BPP;
|
||||
break;
|
||||
case 0x18: case 0x19: case 0x1C: case 0x1D:
|
||||
mc6845->set_hpixels_per_column( 8 );
|
||||
m_crtc->set_hpixels_per_column( 8 );
|
||||
m_update_row_type = CGA_TEXT_INTEN_ALT;
|
||||
break;
|
||||
case 0x1A: case 0x1B: case 0x3A: case 0x3B:
|
||||
mc6845->set_hpixels_per_column( 8 );
|
||||
m_crtc->set_hpixels_per_column( 8 );
|
||||
m_update_row_type = PC1512_GFX_4BPP;
|
||||
break;
|
||||
case 0x1E: case 0x1F: case 0x3E: case 0x3F:
|
||||
mc6845->set_hpixels_per_column( 16 );
|
||||
m_crtc->set_hpixels_per_column( 16 );
|
||||
m_update_row_type = CGA_GFX_1BPP;
|
||||
break;
|
||||
case 0x28: case 0x29: case 0x2C: case 0x2D:
|
||||
mc6845->set_hpixels_per_column( 8 );
|
||||
m_crtc->set_hpixels_per_column( 8 );
|
||||
m_update_row_type = CGA_TEXT_BLINK;
|
||||
break;
|
||||
case 0x38: case 0x39: case 0x3C: case 0x3D:
|
||||
mc6845->set_hpixels_per_column( 8 );
|
||||
m_crtc->set_hpixels_per_column( 8 );
|
||||
m_update_row_type = CGA_TEXT_BLINK_ALT;
|
||||
break;
|
||||
default:
|
||||
@ -1394,7 +1386,7 @@ void isa8_wyse700_device::change_resolution(uint8_t mode)
|
||||
case 0x00: width = 640; height = 400; break; // unhandled
|
||||
}
|
||||
rectangle visarea(0, width-1, 0, height-1);
|
||||
subdevice<screen_device>(CGA_SCREEN_NAME)->configure(width, height, visarea, HZ_TO_ATTOSECONDS(60));
|
||||
m_screen->configure(width, height, visarea, HZ_TO_ATTOSECONDS(60));
|
||||
|
||||
}
|
||||
|
||||
@ -1706,8 +1698,7 @@ MACHINE_CONFIG_START(isa8_cga_m24_device::device_add_mconfig)
|
||||
|
||||
MCFG_DEVICE_MODIFY(CGA_SCREEN_NAME)
|
||||
MCFG_SCREEN_RAW_PARAMS(XTAL(14'318'181),912,0,640,462,0,400)
|
||||
MCFG_DEVICE_MODIFY(CGA_MC6845_NAME)
|
||||
MCFG_MC6845_RECONFIGURE_CB(isa8_cga_m24_device, reconfigure)
|
||||
m_crtc->set_reconfigure_callback(FUNC(isa8_cga_m24_device::reconfigure), this);
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
isa8_cga_m24_device::isa8_cga_m24_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
@ -1751,12 +1742,11 @@ MC6845_RECONFIGURE( isa8_cga_m24_device::reconfigure )
|
||||
|
||||
WRITE8_MEMBER( isa8_cga_m24_device::io_write )
|
||||
{
|
||||
mc6845_device *mc6845 = subdevice<mc6845_device>(CGA_MC6845_NAME);
|
||||
switch(offset)
|
||||
{
|
||||
case 0: case 2: case 4: case 6:
|
||||
m_index = data;
|
||||
mc6845->address_w( space, offset, data );
|
||||
m_crtc->address_w( space, offset, data );
|
||||
break;
|
||||
case 1: case 3: case 5: case 7:
|
||||
switch(m_index & 0x1f) // TODO: this is handled by a pal and prom
|
||||
@ -1775,7 +1765,7 @@ WRITE8_MEMBER( isa8_cga_m24_device::io_write )
|
||||
data <<= 1;
|
||||
break;
|
||||
}
|
||||
mc6845->register_w( space, offset, data );
|
||||
m_crtc->register_w( space, offset, data );
|
||||
break;
|
||||
case 0x0e:
|
||||
m_mode2 = data;
|
||||
|
@ -41,6 +41,7 @@ public:
|
||||
protected:
|
||||
isa8_cga_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
required_device<mc6845_device> m_crtc;
|
||||
required_ioport m_cga_config;
|
||||
|
||||
// device-level overrides
|
||||
|
@ -9,19 +9,16 @@
|
||||
#include "emu.h"
|
||||
#include "mda.h"
|
||||
|
||||
#include "machine/pc_lpt.h"
|
||||
#include "video/mc6845.h"
|
||||
#include "screen.h"
|
||||
|
||||
|
||||
#define MDA_SCREEN_NAME "mda_screen"
|
||||
#define MDA_MC6845_NAME "mc6845_mda"
|
||||
#define MC6845_NAME "mc6845"
|
||||
|
||||
/*
|
||||
Hercules video card
|
||||
*/
|
||||
#define HERCULES_SCREEN_NAME "hercules_screen"
|
||||
#define HERCULES_MC6845_NAME "mc6845_hercules"
|
||||
|
||||
#define VERBOSE_MDA 0 /* MDA (Monochrome Display Adapter) */
|
||||
|
||||
@ -113,21 +110,22 @@ DEFINE_DEVICE_TYPE(ISA8_MDA, isa8_mda_device, "isa_ibm_mda", "IBM Monochrome Dis
|
||||
MACHINE_CONFIG_START(isa8_mda_device::device_add_mconfig)
|
||||
MCFG_SCREEN_ADD( MDA_SCREEN_NAME, RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(MDA_CLOCK, 882, 0, 720, 370, 0, 350 )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( MDA_MC6845_NAME, mc6845_device, screen_update )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( MC6845_NAME, mc6845_device, screen_update )
|
||||
|
||||
MCFG_PALETTE_ADD( "palette", 4 )
|
||||
|
||||
MCFG_MC6845_ADD(MDA_MC6845_NAME, MC6845, MDA_SCREEN_NAME, MDA_CLOCK/9)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(9)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(isa8_mda_device, crtc_update_row)
|
||||
MCFG_MC6845_OUT_HSYNC_CB(WRITELINE(*this, isa8_mda_device, hsync_changed))
|
||||
MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(*this, isa8_mda_device, vsync_changed))
|
||||
MC6845(config, m_crtc, MDA_CLOCK/9);
|
||||
m_crtc->set_screen(MDA_SCREEN_NAME);
|
||||
m_crtc->set_show_border_area(false);
|
||||
m_crtc->set_char_width(9);
|
||||
m_crtc->set_update_row_callback(FUNC(isa8_mda_device::crtc_update_row), this);
|
||||
m_crtc->out_hsync_callback().set(FUNC(isa8_mda_device::hsync_changed));
|
||||
m_crtc->out_vsync_callback().set(FUNC(isa8_mda_device::vsync_changed));
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_pcmda)
|
||||
|
||||
pc_lpt_device &lpt(PC_LPT(config, "lpt"));
|
||||
lpt.irq_handler().set(FUNC(isa8_mda_device::pc_cpu_line));
|
||||
PC_LPT(config, m_lpt);
|
||||
m_lpt->irq_handler().set(FUNC(isa8_mda_device::pc_cpu_line));
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
//-------------------------------------------------
|
||||
@ -154,7 +152,7 @@ isa8_mda_device::isa8_mda_device(const machine_config &mconfig, const char *tag,
|
||||
|
||||
isa8_mda_device::isa8_mda_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_framecnt(0), m_mode_control(0),
|
||||
device_isa8_card_interface(mconfig, *this), m_crtc(*this, MC6845_NAME), m_lpt(*this, "lpt"), m_framecnt(0), m_mode_control(0),
|
||||
m_update_row_type(-1), m_chr_gen(nullptr), m_vsync(0), m_hsync(0), m_pixel(0),
|
||||
m_palette(*this, "palette")
|
||||
{
|
||||
@ -461,21 +459,19 @@ READ8_MEMBER( isa8_mda_device::status_r)
|
||||
*************************************************************************/
|
||||
WRITE8_MEMBER( isa8_mda_device::io_write)
|
||||
{
|
||||
mc6845_device *mc6845 = subdevice<mc6845_device>(MDA_MC6845_NAME);
|
||||
pc_lpt_device *lpt = subdevice<pc_lpt_device>("lpt");
|
||||
switch( offset )
|
||||
{
|
||||
case 0: case 2: case 4: case 6:
|
||||
mc6845->address_w( space, offset, data );
|
||||
m_crtc->address_w( space, offset, data );
|
||||
break;
|
||||
case 1: case 3: case 5: case 7:
|
||||
mc6845->register_w( space, offset, data );
|
||||
m_crtc->register_w( space, offset, data );
|
||||
break;
|
||||
case 8:
|
||||
mode_control_w(space, offset, data);
|
||||
break;
|
||||
case 12: case 13: case 14:
|
||||
lpt->write(space, offset - 12, data);
|
||||
m_lpt->write(space, offset - 12, data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -483,22 +479,20 @@ WRITE8_MEMBER( isa8_mda_device::io_write)
|
||||
READ8_MEMBER( isa8_mda_device::io_read)
|
||||
{
|
||||
int data = 0xff;
|
||||
mc6845_device *mc6845 = subdevice<mc6845_device>(MDA_MC6845_NAME);
|
||||
pc_lpt_device *lpt = subdevice<pc_lpt_device>("lpt");
|
||||
switch( offset )
|
||||
{
|
||||
case 0: case 2: case 4: case 6:
|
||||
/* return last written mc6845 address value here? */
|
||||
break;
|
||||
case 1: case 3: case 5: case 7:
|
||||
data = mc6845->register_r( space, offset );
|
||||
data = m_crtc->register_r( space, offset );
|
||||
break;
|
||||
case 10:
|
||||
data = status_r(space, offset);
|
||||
break;
|
||||
/* 12, 13, 14 are the LPT ports */
|
||||
case 12: case 13: case 14:
|
||||
data = lpt->read(space, offset - 12);
|
||||
data = m_lpt->read(space, offset - 12);
|
||||
break;
|
||||
}
|
||||
return data;
|
||||
@ -541,21 +535,22 @@ DEFINE_DEVICE_TYPE(ISA8_HERCULES, isa8_hercules_device, "isa_hercules", "Hercule
|
||||
MACHINE_CONFIG_START(isa8_hercules_device::device_add_mconfig)
|
||||
MCFG_SCREEN_ADD( HERCULES_SCREEN_NAME, RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(MDA_CLOCK, 882, 0, 720, 370, 0, 350 )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( HERCULES_MC6845_NAME, mc6845_device, screen_update )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( MC6845_NAME, mc6845_device, screen_update )
|
||||
|
||||
MCFG_PALETTE_ADD( "palette", 4 )
|
||||
|
||||
MCFG_MC6845_ADD(HERCULES_MC6845_NAME, MC6845, HERCULES_SCREEN_NAME, MDA_CLOCK/9)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(9)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(isa8_hercules_device, crtc_update_row)
|
||||
MCFG_MC6845_OUT_HSYNC_CB(WRITELINE(*this, isa8_mda_device, hsync_changed))
|
||||
MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(*this, isa8_mda_device, vsync_changed))
|
||||
MC6845(config, m_crtc, MDA_CLOCK/9);
|
||||
m_crtc->set_screen(HERCULES_SCREEN_NAME);
|
||||
m_crtc->set_show_border_area(false);
|
||||
m_crtc->set_char_width(9);
|
||||
m_crtc->set_update_row_callback(FUNC(isa8_hercules_device::crtc_update_row), this);
|
||||
m_crtc->out_hsync_callback().set(FUNC(isa8_mda_device::hsync_changed));
|
||||
m_crtc->out_vsync_callback().set(FUNC(isa8_mda_device::vsync_changed));
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_pcherc)
|
||||
|
||||
pc_lpt_device &lpt(PC_LPT(config, "lpt"));
|
||||
lpt.irq_handler().set(FUNC(isa8_mda_device::pc_cpu_line));
|
||||
PC_LPT(config, m_lpt);
|
||||
m_lpt->irq_handler().set(FUNC(isa8_mda_device::pc_cpu_line));
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
//-------------------------------------------------
|
||||
@ -654,8 +649,6 @@ MC6845_UPDATE_ROW( isa8_hercules_device::hercules_gfx_update_row )
|
||||
|
||||
WRITE8_MEMBER( isa8_hercules_device::mode_control_w )
|
||||
{
|
||||
mc6845_device *mc6845 = subdevice<mc6845_device>(HERCULES_MC6845_NAME);
|
||||
|
||||
m_mode_control = data;
|
||||
|
||||
switch( m_mode_control & 0x2a )
|
||||
@ -674,28 +667,26 @@ WRITE8_MEMBER( isa8_hercules_device::mode_control_w )
|
||||
m_update_row_type = -1;
|
||||
}
|
||||
|
||||
mc6845->set_clock( m_mode_control & 0x02 ? MDA_CLOCK / 16 : MDA_CLOCK / 9 );
|
||||
mc6845->set_hpixels_per_column( m_mode_control & 0x02 ? 16 : 9 );
|
||||
m_crtc->set_clock( m_mode_control & 0x02 ? MDA_CLOCK / 16 : MDA_CLOCK / 9 );
|
||||
m_crtc->set_hpixels_per_column( m_mode_control & 0x02 ? 16 : 9 );
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER( isa8_hercules_device::io_write )
|
||||
{
|
||||
mc6845_device *mc6845 = subdevice<mc6845_device>(HERCULES_MC6845_NAME);
|
||||
pc_lpt_device *lpt = subdevice<pc_lpt_device>("lpt");
|
||||
switch( offset )
|
||||
{
|
||||
case 0: case 2: case 4: case 6:
|
||||
mc6845->address_w( space, offset, data );
|
||||
m_crtc->address_w( space, offset, data );
|
||||
break;
|
||||
case 1: case 3: case 5: case 7:
|
||||
mc6845->register_w( space, offset, data );
|
||||
m_crtc->register_w( space, offset, data );
|
||||
break;
|
||||
case 8:
|
||||
mode_control_w(space, offset, data);
|
||||
break;
|
||||
case 12: case 13: case 14:
|
||||
lpt->write(space, offset - 12, data);
|
||||
m_lpt->write(space, offset - 12, data);
|
||||
break;
|
||||
case 15:
|
||||
m_configuration_switch = data;
|
||||
@ -727,22 +718,20 @@ READ8_MEMBER( isa8_hercules_device::status_r )
|
||||
READ8_MEMBER( isa8_hercules_device::io_read )
|
||||
{
|
||||
int data = 0xff;
|
||||
mc6845_device *mc6845 = subdevice<mc6845_device>(HERCULES_MC6845_NAME);
|
||||
pc_lpt_device *lpt = subdevice<pc_lpt_device>("lpt");
|
||||
switch( offset )
|
||||
{
|
||||
case 0: case 2: case 4: case 6:
|
||||
/* return last written mc6845 address value here? */
|
||||
break;
|
||||
case 1: case 3: case 5: case 7:
|
||||
data = mc6845->register_r( space, offset );
|
||||
data = m_crtc->register_r( space, offset );
|
||||
break;
|
||||
case 10:
|
||||
data = status_r(space, offset);
|
||||
break;
|
||||
/* 12, 13, 14 are the LPT ports */
|
||||
case 12: case 13: case 14:
|
||||
data = lpt->read(space, offset - 12);
|
||||
data = m_lpt->read(space, offset - 12);
|
||||
break;
|
||||
}
|
||||
return data;
|
||||
@ -759,16 +748,17 @@ DEFINE_DEVICE_TYPE(ISA8_EC1840_0002, isa8_ec1840_0002_device, "ec1840_0002", "EC
|
||||
MACHINE_CONFIG_START(isa8_ec1840_0002_device::device_add_mconfig)
|
||||
MCFG_SCREEN_ADD( MDA_SCREEN_NAME, RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(MDA_CLOCK, 792, 0, 640, 370, 0, 350 )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( MDA_MC6845_NAME, mc6845_device, screen_update )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( MC6845_NAME, mc6845_device, screen_update )
|
||||
|
||||
MCFG_PALETTE_ADD( "palette", 4 )
|
||||
|
||||
MCFG_MC6845_ADD( MDA_MC6845_NAME, MC6845, MDA_SCREEN_NAME, MDA_CLOCK/8)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(isa8_mda_device, crtc_update_row)
|
||||
MCFG_MC6845_OUT_HSYNC_CB(WRITELINE(*this, isa8_mda_device, hsync_changed))
|
||||
MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(*this, isa8_mda_device, vsync_changed))
|
||||
MC6845(config, m_crtc, MDA_CLOCK/8);
|
||||
m_crtc->set_screen(MDA_SCREEN_NAME);
|
||||
m_crtc->set_show_border_area(false);
|
||||
m_crtc->set_char_width(8);
|
||||
m_crtc->set_update_row_callback(FUNC(isa8_mda_device::crtc_update_row), this);
|
||||
m_crtc->out_hsync_callback().set(FUNC(isa8_mda_device::hsync_changed));
|
||||
m_crtc->out_vsync_callback().set(FUNC(isa8_mda_device::vsync_changed));
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
//-------------------------------------------------
|
||||
|
@ -6,6 +6,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "isa.h"
|
||||
#include "machine/pc_lpt.h"
|
||||
#include "video/mc6845.h"
|
||||
#include "emupal.h"
|
||||
|
||||
@ -45,6 +46,9 @@ protected:
|
||||
virtual void device_add_mconfig(machine_config &config) override;
|
||||
virtual const tiny_rom_entry *device_rom_region() const override;
|
||||
|
||||
required_device<mc6845_device> m_crtc;
|
||||
optional_device<pc_lpt_device> m_lpt;
|
||||
|
||||
private:
|
||||
WRITE_LINE_MEMBER(pc_cpu_line);
|
||||
|
||||
|
@ -61,10 +61,10 @@ MACHINE_CONFIG_START(isa8_number_9_rev_device::device_add_mconfig)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(isa8_number_9_rev_device, screen_update)
|
||||
MCFG_PALETTE_ADD("palette", 4096)
|
||||
|
||||
MCFG_DEVICE_ADD("upd7220", UPD7220, XTAL(4'433'619)/2) // unknown clock
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, upd7220_map)
|
||||
MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(isa8_number_9_rev_device, hgdc_display_pixels)
|
||||
MCFG_VIDEO_SET_SCREEN("screen")
|
||||
UPD7220(config, m_upd7220, XTAL(4'433'619)/2); // unknown clock
|
||||
m_upd7220->set_addrmap(0, &isa8_number_9_rev_device::upd7220_map);
|
||||
m_upd7220->set_display_pixels_callback(FUNC(isa8_number_9_rev_device::hgdc_display_pixels), this);
|
||||
m_upd7220->set_screen("screen");
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
//**************************************************************************
|
||||
|
@ -29,10 +29,11 @@ MACHINE_CONFIG_START(nascom_avc_device::device_add_mconfig)
|
||||
|
||||
MCFG_PALETTE_ADD_3BIT_RGB("palette")
|
||||
|
||||
MCFG_MC6845_ADD("mc6845", MC6845, "screen", XTAL(16'000'000) / 8)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(6)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(nascom_avc_device, crtc_update_row)
|
||||
MC6845(config, m_crtc, XTAL(16'000'000) / 8);
|
||||
m_crtc->set_screen("screen");
|
||||
m_crtc->set_show_border_area(false);
|
||||
m_crtc->set_char_width(6);
|
||||
m_crtc->set_update_row_callback(FUNC(nascom_avc_device::crtc_update_row), this);
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
@ -39,18 +39,21 @@ const tiny_rom_entry *sv806_device::device_rom_region() const
|
||||
// device_add_mconfig - add device configuration
|
||||
//-------------------------------------------------
|
||||
|
||||
MACHINE_CONFIG_START(sv806_device::device_add_mconfig)
|
||||
MCFG_SCREEN_ADD_MONOCHROME("80col", RASTER, rgb_t::green())
|
||||
MCFG_SCREEN_RAW_PARAMS((XTAL(12'000'000) / 6) * 8, 864, 0, 640, 317, 0, 192)
|
||||
MCFG_SCREEN_UPDATE_DEVICE("crtc", hd6845_device, screen_update)
|
||||
void sv806_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
screen_device &screen(SCREEN(config, "80col", SCREEN_TYPE_RASTER));
|
||||
screen.set_color(rgb_t::green());
|
||||
screen.set_raw((XTAL(12'000'000) / 6) * 8, 864, 0, 640, 317, 0, 192);
|
||||
screen.set_screen_update("crtc", FUNC(hd6845_device::screen_update));
|
||||
|
||||
MCFG_PALETTE_ADD_MONOCHROME("palette")
|
||||
PALETTE(config, m_palette, 2).set_init("palette", FUNC(palette_device::palette_init_monochrome));
|
||||
|
||||
MCFG_MC6845_ADD("crtc", HD6845, "80col", XTAL(12'000'000) / 6)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(sv806_device, crtc_update_row)
|
||||
MACHINE_CONFIG_END
|
||||
HD6845(config, m_crtc, XTAL(12'000'000) / 6);
|
||||
m_crtc->set_screen("80col");
|
||||
m_crtc->set_show_border_area(false);
|
||||
m_crtc->set_char_width(8);
|
||||
m_crtc->set_update_row_callback(FUNC(sv806_device::crtc_update_row), this);
|
||||
}
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
|
@ -107,10 +107,11 @@ MACHINE_CONFIG_START(vic20_video_pak_device::device_add_mconfig)
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_vic20_video_pak)
|
||||
MCFG_PALETTE_ADD_MONOCHROME("palette")
|
||||
|
||||
MCFG_MC6845_ADD(MC6845_TAG, H46505, MC6845_SCREEN_TAG, XTAL(14'318'181) / 8)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(true)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(vic20_video_pak_device, crtc_update_row)
|
||||
H46505(config, m_crtc, XTAL(14'318'181) / 8);
|
||||
m_crtc->set_screen(MC6845_SCREEN_TAG);
|
||||
m_crtc->set_show_border_area(true);
|
||||
m_crtc->set_char_width(8);
|
||||
m_crtc->set_update_row_callback(FUNC(vic20_video_pak_device::crtc_update_row), this);
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
@ -124,11 +124,12 @@ MACHINE_CONFIG_START(wangpc_lvc_device::device_add_mconfig)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
|
||||
MCFG_MC6845_ADD(MC6845_TAG, MC6845_1, SCREEN_TAG, XTAL(14'318'181)/16)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(true)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(wangpc_lvc_device, crtc_update_row)
|
||||
MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(*this, wangpc_lvc_device, vsync_w))
|
||||
MC6845_1(config, m_crtc, XTAL(14'318'181)/16);
|
||||
m_crtc->set_screen(SCREEN_TAG);
|
||||
m_crtc->set_show_border_area(true);
|
||||
m_crtc->set_char_width(8);
|
||||
m_crtc->set_update_row_callback(FUNC(wangpc_lvc_device::crtc_update_row), this);
|
||||
m_crtc->out_vsync_callback().set(FUNC(wangpc_lvc_device::vsync_w));
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
@ -144,11 +144,12 @@ MACHINE_CONFIG_START(wangpc_mvc_device::device_add_mconfig)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
|
||||
MCFG_MC6845_ADD(MC6845_TAG, MC6845_1, SCREEN_TAG, XTAL(14'318'181)/16)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(true)
|
||||
MCFG_MC6845_CHAR_WIDTH(10)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(wangpc_mvc_device, crtc_update_row)
|
||||
MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(*this, wangpc_mvc_device, vsync_w))
|
||||
MC6845_1(config, m_crtc, XTAL(14'318'181)/16);
|
||||
m_crtc->set_screen(SCREEN_TAG);
|
||||
m_crtc->set_show_border_area(true);
|
||||
m_crtc->set_char_width(10);
|
||||
m_crtc->set_update_row_callback(FUNC(wangpc_mvc_device::crtc_update_row), this);
|
||||
m_crtc->out_vsync_callback().set(FUNC(wangpc_mvc_device::vsync_w));
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
@ -124,15 +124,15 @@ MACHINE_CONFIG_START(wangpc_tig_device::device_add_mconfig)
|
||||
|
||||
MCFG_PALETTE_ADD_MONOCHROME_HIGHLIGHT("palette")
|
||||
|
||||
MCFG_DEVICE_ADD(UPD7720_0_TAG, UPD7220, XTAL(52'832'000)/28)
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, upd7220_0_map)
|
||||
MCFG_UPD7220_DRAW_TEXT_CALLBACK_OWNER(wangpc_tig_device, hgdc_draw_text)
|
||||
MCFG_VIDEO_SET_SCREEN(SCREEN_TAG)
|
||||
UPD7220(config, m_hgdc0, XTAL(52'832'000)/28);
|
||||
m_hgdc0->set_addrmap(0, &wangpc_tig_device::upd7220_0_map);
|
||||
m_hgdc0->set_draw_text_callback(FUNC(wangpc_tig_device::hgdc_draw_text), this);
|
||||
m_hgdc0->set_screen(SCREEN_TAG);
|
||||
|
||||
MCFG_DEVICE_ADD(UPD7720_1_TAG, UPD7220, XTAL(52'832'000)/28)
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, upd7220_1_map)
|
||||
MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(wangpc_tig_device, hgdc_display_pixels)
|
||||
MCFG_VIDEO_SET_SCREEN(SCREEN_TAG)
|
||||
UPD7220(config, m_hgdc1, XTAL(52'832'000)/28);
|
||||
m_hgdc1->set_addrmap(0, &wangpc_tig_device::upd7220_1_map);
|
||||
m_hgdc1->set_display_pixels_callback(FUNC(wangpc_tig_device::hgdc_display_pixels), this);
|
||||
m_hgdc1->set_screen(SCREEN_TAG);
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
@ -12,58 +12,6 @@
|
||||
#pragma once
|
||||
|
||||
|
||||
#define MCFG_MC6845_ADD(_tag, _variant, _screen_tag, _clock) \
|
||||
MCFG_DEVICE_ADD(_tag, _variant, _clock) \
|
||||
MCFG_VIDEO_SET_SCREEN(_screen_tag)
|
||||
|
||||
#define MCFG_MOS8563_ADD(_tag, _screen_tag, _clock, _map) \
|
||||
MCFG_DEVICE_ADD(_tag, MOS8563, _clock) \
|
||||
MCFG_VIDEO_SET_SCREEN(_screen_tag) \
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, _map)
|
||||
|
||||
#define MCFG_MOS8568_ADD(_tag, _screen_tag, _clock, _map) \
|
||||
MCFG_DEVICE_ADD(_tag, MOS8568, _clock) \
|
||||
MCFG_VIDEO_SET_SCREEN(_screen_tag) \
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, _map)
|
||||
|
||||
|
||||
#define MCFG_MC6845_SHOW_BORDER_AREA(_show) \
|
||||
downcast<mc6845_device &>(*device).set_show_border_area(_show);
|
||||
|
||||
#define MCFG_MC6845_VISAREA_ADJUST(_minx, _maxx, _miny, _maxy) \
|
||||
downcast<mc6845_device &>(*device).set_visarea_adjust(_minx, _maxx, _miny, _maxy);
|
||||
|
||||
#define MCFG_MC6845_CHAR_WIDTH(_pixels) \
|
||||
downcast<mc6845_device &>(*device).set_char_width(_pixels);
|
||||
|
||||
#define MCFG_MC6845_RECONFIGURE_CB(_class, _method) \
|
||||
downcast<mc6845_device &>(*device).set_reconfigure_callback(&_class::_method, #_class "::" #_method, this);
|
||||
|
||||
#define MCFG_MC6845_BEGIN_UPDATE_CB(_class, _method) \
|
||||
downcast<mc6845_device &>(*device).set_begin_update_callback(&_class::_method, #_class "::" #_method, this);
|
||||
|
||||
#define MCFG_MC6845_UPDATE_ROW_CB(_class, _method) \
|
||||
downcast<mc6845_device &>(*device).set_update_row_callback(&_class::_method, #_class "::" #_method, this);
|
||||
|
||||
#define MCFG_MC6845_END_UPDATE_CB(_class, _method) \
|
||||
downcast<mc6845_device &>(*device).set_end_update_callback(&_class::_method, #_class "::" #_method, this);
|
||||
|
||||
#define MCFG_MC6845_ADDR_CHANGED_CB(_class, _method) \
|
||||
downcast<mc6845_device &>(*device).set_on_update_addr_change_callback(&_class::_method, #_class "::" #_method, this);
|
||||
|
||||
#define MCFG_MC6845_OUT_DE_CB(_write) \
|
||||
downcast<mc6845_device &>(*device).set_out_de_callback(DEVCB_##_write);
|
||||
|
||||
#define MCFG_MC6845_OUT_CUR_CB(_write) \
|
||||
downcast<mc6845_device &>(*device).set_out_cur_callback(DEVCB_##_write);
|
||||
|
||||
#define MCFG_MC6845_OUT_HSYNC_CB(_write) \
|
||||
downcast<mc6845_device &>(*device).set_out_hsync_callback(DEVCB_##_write);
|
||||
|
||||
#define MCFG_MC6845_OUT_VSYNC_CB(_write) \
|
||||
downcast<mc6845_device &>(*device).set_out_vsync_callback(DEVCB_##_write);
|
||||
|
||||
|
||||
/* callback definitions */
|
||||
#define MC6845_RECONFIGURE(name) void name(int width, int height, const rectangle &visarea, attoseconds_t frame_period)
|
||||
|
||||
@ -107,10 +55,6 @@ public:
|
||||
template <typename... T> void set_end_update_callback(T &&... args) { m_end_update_cb = end_update_delegate(std::forward<T>(args)...); }
|
||||
template <typename... T> void set_on_update_addr_change_callback(T &&... args) { m_on_update_addr_changed_cb = on_update_addr_changed_delegate(std::forward<T>(args)...); }
|
||||
|
||||
template <class Object> devcb_base &set_out_de_callback(Object &&cb) { return m_out_de_cb.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_out_cur_callback(Object &&cb) { return m_out_cur_cb.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_out_hsync_callback(Object &&cb) { return m_out_hsync_cb.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_out_vsync_callback(Object &&cb) { return m_out_vsync_cb.set_callback(std::forward<Object>(cb)); }
|
||||
auto out_de_callback() { return m_out_de_cb.bind(); }
|
||||
auto out_cur_callback() { return m_out_cur_cb.bind(); }
|
||||
auto out_hsync_callback() { return m_out_hsync_cb.bind(); }
|
||||
|
@ -44,26 +44,6 @@
|
||||
#define UPD7220_DRAW_TEXT_LINE_MEMBER(_name) void _name(bitmap_rgb32 &bitmap, uint32_t addr, int y, int wd, int pitch, int lr, int cursor_on, int cursor_addr)
|
||||
|
||||
|
||||
#define MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(_class, _method) \
|
||||
downcast<upd7220_device &>(*device).set_display_pixels_callback(upd7220_device::display_pixels_delegate(&_class::_method, #_class "::" #_method, this));
|
||||
|
||||
#define MCFG_UPD7220_DRAW_TEXT_CALLBACK_OWNER(_class, _method) \
|
||||
downcast<upd7220_device &>(*device).set_draw_text_callback(upd7220_device::draw_text_delegate(&_class::_method, #_class "::" #_method, this));
|
||||
|
||||
#define MCFG_UPD7220_DRQ_CALLBACK(_write) \
|
||||
downcast<upd7220_device &>(*device).set_drq_wr_callback(DEVCB_##_write);
|
||||
|
||||
#define MCFG_UPD7220_HSYNC_CALLBACK(_write) \
|
||||
downcast<upd7220_device &>(*device).set_hsync_wr_callback(DEVCB_##_write);
|
||||
|
||||
#define MCFG_UPD7220_VSYNC_CALLBACK(_write) \
|
||||
downcast<upd7220_device &>(*device).set_vsync_wr_callback(DEVCB_##_write);
|
||||
|
||||
#define MCFG_UPD7220_BLANK_CALLBACK(_write) \
|
||||
downcast<upd7220_device &>(*device).set_blank_wr_callback(DEVCB_##_write);
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
@ -82,13 +62,13 @@ public:
|
||||
// construction/destruction
|
||||
upd7220_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
template <typename Object> void set_display_pixels_callback(Object &&cb) { m_display_cb = std::forward<Object>(cb); }
|
||||
template <typename Object> void set_draw_text_callback(Object &&cb) { m_draw_text_cb = std::forward<Object>(cb); }
|
||||
template <typename... T> void set_display_pixels_callback(T &&... args) { m_display_cb = display_pixels_delegate(std::forward<T>(args)...); }
|
||||
template <typename... T> void set_draw_text_callback(T &&... args) { m_draw_text_cb = draw_text_delegate(std::forward<T>(args)...); }
|
||||
|
||||
template <class Object> devcb_base &set_drq_wr_callback(Object &&cb) { return m_write_drq.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_hsync_wr_callback(Object &&cb) { return m_write_hsync.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_vsync_wr_callback(Object &&cb) { return m_write_vsync.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_blank_wr_callback(Object &&cb) { return m_write_blank.set_callback(std::forward<Object>(cb)); }
|
||||
auto drq_wr_callback() { return m_write_drq.bind(); }
|
||||
auto hsync_wr_callback() { return m_write_hsync.bind(); }
|
||||
auto vsync_wr_callback() { return m_write_vsync.bind(); }
|
||||
auto blank_wr_callback() { return m_write_blank.bind(); }
|
||||
|
||||
DECLARE_READ8_MEMBER( read );
|
||||
DECLARE_WRITE8_MEMBER( write );
|
||||
|
@ -701,12 +701,12 @@ WRITE8_MEMBER( atari_jsa_i_device::pokey_w )
|
||||
MACHINE_CONFIG_START(atari_jsa_i_device::device_add_mconfig)
|
||||
|
||||
// basic machine hardware
|
||||
MCFG_DEVICE_ADD("cpu", M6502, JSA_MASTER_CLOCK/2)
|
||||
MCFG_DEVICE_PROGRAM_MAP(atarijsa1_map)
|
||||
MCFG_DEVICE_PERIODIC_INT_DEVICE("soundcomm", atari_sound_comm_device, sound_irq_gen, JSA_MASTER_CLOCK/4/16/16/14)
|
||||
M6502(config, m_jsacpu, JSA_MASTER_CLOCK/2);
|
||||
m_jsacpu->set_addrmap(AS_PROGRAM, &atari_jsa_i_device::atarijsa1_map);
|
||||
m_jsacpu->set_periodic_int("soundcomm", FUNC(atari_sound_comm_device::sound_irq_gen), attotime::from_hz(JSA_MASTER_CLOCK/4/16/16/14));
|
||||
|
||||
// sound hardware
|
||||
ATARI_SOUND_COMM(config, m_soundcomm, "cpu")
|
||||
ATARI_SOUND_COMM(config, m_soundcomm, m_jsacpu)
|
||||
.int_callback().set(FUNC(atari_jsa_base_device::main_int_write_line));
|
||||
|
||||
YM2151(config, m_ym2151, JSA_MASTER_CLOCK);
|
||||
@ -829,15 +829,15 @@ READ8_MEMBER( atari_jsa_ii_device::rdio_r )
|
||||
//-------------------------------------------------
|
||||
|
||||
// Fully populated JSA-II
|
||||
MACHINE_CONFIG_START(atari_jsa_ii_device::device_add_mconfig)
|
||||
|
||||
void atari_jsa_ii_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
// basic machine hardware
|
||||
MCFG_DEVICE_ADD("cpu", M6502, JSA_MASTER_CLOCK/2)
|
||||
MCFG_DEVICE_PROGRAM_MAP(atarijsa2_map)
|
||||
MCFG_DEVICE_PERIODIC_INT_DEVICE("soundcomm", atari_sound_comm_device, sound_irq_gen, JSA_MASTER_CLOCK/4/16/16/14)
|
||||
M6502(config, m_jsacpu, JSA_MASTER_CLOCK/2);
|
||||
m_jsacpu->set_addrmap(AS_PROGRAM, &atari_jsa_ii_device::atarijsa2_map);
|
||||
m_jsacpu->set_periodic_int("soundcomm", FUNC(atari_sound_comm_device::sound_irq_gen), attotime::from_hz(JSA_MASTER_CLOCK/4/16/16/14));
|
||||
|
||||
// sound hardware
|
||||
ATARI_SOUND_COMM(config, m_soundcomm, "cpu")
|
||||
ATARI_SOUND_COMM(config, m_soundcomm, m_jsacpu)
|
||||
.int_callback().set(FUNC(atari_jsa_base_device::main_int_write_line));
|
||||
|
||||
YM2151(config, m_ym2151, JSA_MASTER_CLOCK);
|
||||
@ -845,9 +845,9 @@ MACHINE_CONFIG_START(atari_jsa_ii_device::device_add_mconfig)
|
||||
m_ym2151->port_write_handler().set(FUNC(atari_jsa_base_device::ym2151_port_w));
|
||||
m_ym2151->add_route(ALL_OUTPUTS, *this, 0.60, AUTO_ALLOC_INPUT, 0);
|
||||
|
||||
MCFG_DEVICE_ADD("oki1", OKIM6295, JSA_MASTER_CLOCK/3, okim6295_device::PIN7_HIGH)
|
||||
MCFG_MIXER_ROUTE(ALL_OUTPUTS, *this, 0.75, 0)
|
||||
MACHINE_CONFIG_END
|
||||
OKIM6295(config, m_oki1, JSA_MASTER_CLOCK/3, okim6295_device::PIN7_HIGH);
|
||||
m_oki1->add_route(ALL_OUTPUTS, *this, 0.75, AUTO_ALLOC_INPUT, 0);
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
@ -912,15 +912,15 @@ READ8_MEMBER( atari_jsa_iii_device::rdio_r )
|
||||
//-------------------------------------------------
|
||||
|
||||
// Fully populated JSA-III
|
||||
MACHINE_CONFIG_START(atari_jsa_iii_device::device_add_mconfig)
|
||||
|
||||
void atari_jsa_iii_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
// basic machine hardware
|
||||
MCFG_DEVICE_ADD("cpu", M6502, JSA_MASTER_CLOCK/2)
|
||||
MCFG_DEVICE_PROGRAM_MAP(atarijsa3_map)
|
||||
MCFG_DEVICE_PERIODIC_INT_DEVICE("soundcomm", atari_sound_comm_device, sound_irq_gen, JSA_MASTER_CLOCK/4/16/16/14)
|
||||
M6502(config, m_jsacpu, JSA_MASTER_CLOCK/2);
|
||||
m_jsacpu->set_addrmap(AS_PROGRAM, &atari_jsa_iii_device::atarijsa3_map);
|
||||
m_jsacpu->set_periodic_int("soundcomm", FUNC(atari_sound_comm_device::sound_irq_gen), attotime::from_hz(JSA_MASTER_CLOCK/4/16/16/14));
|
||||
|
||||
// sound hardware
|
||||
ATARI_SOUND_COMM(config, m_soundcomm, "cpu")
|
||||
ATARI_SOUND_COMM(config, m_soundcomm, m_jsacpu)
|
||||
.int_callback().set(FUNC(atari_jsa_base_device::main_int_write_line));
|
||||
|
||||
YM2151(config, m_ym2151, JSA_MASTER_CLOCK);
|
||||
@ -928,10 +928,10 @@ MACHINE_CONFIG_START(atari_jsa_iii_device::device_add_mconfig)
|
||||
m_ym2151->port_write_handler().set(FUNC(atari_jsa_base_device::ym2151_port_w));
|
||||
m_ym2151->add_route(ALL_OUTPUTS, *this, 0.60, AUTO_ALLOC_INPUT, 0);
|
||||
|
||||
MCFG_DEVICE_ADD("oki1", OKIM6295, JSA_MASTER_CLOCK/3, okim6295_device::PIN7_HIGH)
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, jsa3_oki1_map)
|
||||
MCFG_MIXER_ROUTE(ALL_OUTPUTS, *this, 0.75, 0)
|
||||
MACHINE_CONFIG_END
|
||||
OKIM6295(config, m_oki1, JSA_MASTER_CLOCK/3, okim6295_device::PIN7_HIGH);
|
||||
m_oki1->set_addrmap(0, &atari_jsa_iii_device::jsa3_oki1_map);
|
||||
m_oki1->add_route(ALL_OUTPUTS, *this, 0.75, AUTO_ALLOC_INPUT, 0);
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
@ -965,16 +965,15 @@ atari_jsa_iiis_device::atari_jsa_iiis_device(const machine_config &mconfig, cons
|
||||
//-------------------------------------------------
|
||||
|
||||
// Fully populated JSA_IIIs
|
||||
MACHINE_CONFIG_START(atari_jsa_iiis_device::device_add_mconfig)
|
||||
|
||||
void atari_jsa_iiis_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
atari_jsa_iii_device::device_add_mconfig(config);
|
||||
|
||||
MCFG_DEVICE_MODIFY("ym2151")
|
||||
MCFG_SOUND_ROUTES_RESET()
|
||||
MCFG_MIXER_ROUTE(0, *this, 0.60, 0)
|
||||
MCFG_MIXER_ROUTE(1, *this, 0.60, 1)
|
||||
m_ym2151->reset_routes();
|
||||
m_ym2151->add_route(0, *this, 0.60, AUTO_ALLOC_INPUT, 0);
|
||||
m_ym2151->add_route(1, *this, 0.60, AUTO_ALLOC_INPUT, 1);
|
||||
|
||||
MCFG_DEVICE_ADD("oki2", OKIM6295, JSA_MASTER_CLOCK/3, okim6295_device::PIN7_HIGH)
|
||||
MCFG_MIXER_ROUTE(ALL_OUTPUTS, *this, 0.75, 1)
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, jsa3_oki2_map)
|
||||
MACHINE_CONFIG_END
|
||||
OKIM6295(config, m_oki2, JSA_MASTER_CLOCK/3, okim6295_device::PIN7_HIGH);
|
||||
m_oki2->add_route(ALL_OUTPUTS, *this, 0.75, AUTO_ALLOC_INPUT, 1);
|
||||
m_oki2->set_addrmap(0, &atari_jsa_iiis_device::jsa3_oki2_map);
|
||||
}
|
||||
|
@ -553,10 +553,10 @@ ioport_constructor tx1j_sound_device::device_input_ports() const
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(tx1_sound_device::device_add_mconfig)
|
||||
MCFG_DEVICE_ADD(m_audiocpu, Z80, TX1_PIXEL_CLOCK / 2)
|
||||
MCFG_DEVICE_PROGRAM_MAP(tx1_sound_prg)
|
||||
MCFG_DEVICE_IO_MAP(tx1_sound_io)
|
||||
MCFG_DEVICE_PERIODIC_INT_DEVICE(DEVICE_SELF, tx1_sound_device, z80_irq, TX1_PIXEL_CLOCK / 4 / 2048 / 2)
|
||||
Z80(config, m_audiocpu, TX1_PIXEL_CLOCK / 2);
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &tx1_sound_device::tx1_sound_prg);
|
||||
m_audiocpu->set_addrmap(AS_IO, &tx1_sound_device::tx1_sound_io);
|
||||
m_audiocpu->set_periodic_int(DEVICE_SELF, FUNC(tx1_sound_device::z80_irq), attotime::from_hz(TX1_PIXEL_CLOCK / 4 / 2048 / 2));
|
||||
|
||||
I8255A(config, m_ppi);
|
||||
m_ppi->in_pa_callback().set(FUNC(tx1_sound_device::tx1_ppi_porta_r));
|
||||
@ -1060,10 +1060,10 @@ ioport_constructor buggyboyjr_sound_device::device_input_ports() const
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(buggyboy_sound_device::device_add_mconfig)
|
||||
MCFG_DEVICE_ADD(m_audiocpu, Z80, BUGGYBOY_ZCLK / 2)
|
||||
MCFG_DEVICE_PROGRAM_MAP(buggyboy_sound_prg)
|
||||
MCFG_DEVICE_PERIODIC_INT_DEVICE(DEVICE_SELF, buggyboy_sound_device, z80_irq, BUGGYBOY_ZCLK / 2 / 4 / 2048)
|
||||
MCFG_DEVICE_IO_MAP(buggyboy_sound_io)
|
||||
Z80(config, m_audiocpu, BUGGYBOY_ZCLK / 2);
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &buggyboy_sound_device::buggyboy_sound_prg);
|
||||
m_audiocpu->set_addrmap(AS_IO, &buggyboy_sound_device::buggyboy_sound_io);
|
||||
m_audiocpu->set_periodic_int(DEVICE_SELF, FUNC(buggyboy_sound_device::z80_irq), attotime::from_hz(BUGGYBOY_ZCLK / 2 / 4 / 2048));
|
||||
|
||||
I8255A(config, m_ppi);
|
||||
/* Buggy Boy uses an 8255 PPI instead of YM2149 ports for inputs! */
|
||||
@ -1091,10 +1091,10 @@ MACHINE_CONFIG_START(buggyboy_sound_device::device_add_mconfig)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(buggyboyjr_sound_device::device_add_mconfig)
|
||||
MCFG_DEVICE_ADD(m_audiocpu, Z80, BUGGYBOY_ZCLK / 2)
|
||||
MCFG_DEVICE_PROGRAM_MAP(buggybjr_sound_prg)
|
||||
MCFG_DEVICE_IO_MAP(buggyboy_sound_io)
|
||||
MCFG_DEVICE_PERIODIC_INT_DEVICE(DEVICE_SELF, buggyboy_sound_device, z80_irq, BUGGYBOY_ZCLK / 2 / 4 / 2048)
|
||||
Z80(config, m_audiocpu, BUGGYBOY_ZCLK / 2);
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &buggyboyjr_sound_device::buggybjr_sound_prg);
|
||||
m_audiocpu->set_addrmap(AS_IO, &buggyboyjr_sound_device::buggyboy_sound_io);
|
||||
m_audiocpu->set_periodic_int(DEVICE_SELF, FUNC(buggyboy_sound_device::z80_irq), attotime::from_hz(BUGGYBOY_ZCLK / 2 / 4 / 2048));
|
||||
|
||||
SPEAKER(config, "frontleft", -0.2, 0.0, 1.0);
|
||||
SPEAKER(config, "frontright", 0.2, 0.0, 1.0);
|
||||
|
@ -593,10 +593,10 @@ MACHINE_CONFIG_START(a5105_state::a5105)
|
||||
BEEP(config, "beeper", 500).add_route(ALL_OUTPUTS, "mono", 0.50);
|
||||
|
||||
/* Devices */
|
||||
MCFG_DEVICE_ADD("upd7220", UPD7220, XTAL(15'000'000) / 16) // unk clock
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, upd7220_map)
|
||||
MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(a5105_state, hgdc_display_pixels)
|
||||
MCFG_UPD7220_DRAW_TEXT_CALLBACK_OWNER(a5105_state, hgdc_draw_text)
|
||||
UPD7220(config, m_hgdc, XTAL(15'000'000) / 16); // unk clock
|
||||
m_hgdc->set_addrmap(0, &a5105_state::upd7220_map);
|
||||
m_hgdc->set_display_pixels_callback(FUNC(a5105_state::hgdc_display_pixels), this);
|
||||
m_hgdc->set_draw_text_callback(FUNC(a5105_state::hgdc_draw_text), this);
|
||||
|
||||
z80ctc_device& ctc(Z80CTC(config, "z80ctc", XTAL(15'000'000) / 4));
|
||||
ctc.intr_callback().set_inputline(m_maincpu, 0);
|
||||
|
@ -737,10 +737,11 @@ MACHINE_CONFIG_START(alphatro_state::alphatro)
|
||||
m_dmac->out_iow_cb<2>().set("fdc", FUNC(upd765a_device::mdma_w));
|
||||
m_dmac->out_tc_cb().set("fdc", FUNC(upd765a_device::tc_line_w));
|
||||
|
||||
MCFG_MC6845_ADD("crtc", MC6845, "screen", XTAL(12'288'000) / 8) // clk unknown
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(alphatro_state, crtc_update_row)
|
||||
MC6845(config, m_crtc, XTAL(12'288'000) / 8); // clk unknown
|
||||
m_crtc->set_screen(m_screen);
|
||||
m_crtc->set_show_border_area(false);
|
||||
m_crtc->set_char_width(8);
|
||||
m_crtc->set_update_row_callback(FUNC(alphatro_state::crtc_update_row), this);
|
||||
|
||||
I8251(config, m_usart, 0);
|
||||
m_usart->txd_handler().set(FUNC(alphatro_state::txdata_callback));
|
||||
|
@ -454,12 +454,13 @@ MACHINE_CONFIG_START(amust_state::amust)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
||||
|
||||
/* Devices */
|
||||
MCFG_MC6845_ADD("crtc", H46505, "screen", XTAL(14'318'181) / 8)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(amust_state, crtc_update_row)
|
||||
MCFG_MC6845_OUT_HSYNC_CB(WRITELINE(*this, amust_state, hsync_w))
|
||||
MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(*this, amust_state, vsync_w))
|
||||
h46505_device &crtc(H46505(config, "crtc", XTAL(14'318'181) / 8));
|
||||
crtc.set_screen("screen");
|
||||
crtc.set_show_border_area(false);
|
||||
crtc.set_char_width(8);
|
||||
crtc.set_update_row_callback(FUNC(amust_state::crtc_update_row), this);
|
||||
crtc.out_hsync_callback().set(FUNC(amust_state::hsync_w));
|
||||
crtc.out_vsync_callback().set(FUNC(amust_state::vsync_w));
|
||||
|
||||
UPD765A(config, m_fdc, true, true);
|
||||
m_fdc->drq_wr_callback().set(FUNC(amust_state::drq_w));
|
||||
|
@ -992,13 +992,13 @@ MACHINE_CONFIG_START(apc_state::apc)
|
||||
|
||||
MCFG_DEVICE_ADD(m_gfxdecode, GFXDECODE, m_palette, gfx_apc)
|
||||
|
||||
MCFG_DEVICE_ADD(m_hgdc1, UPD7220, 3579545) // unk clock
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, upd7220_1_map)
|
||||
MCFG_UPD7220_DRAW_TEXT_CALLBACK_OWNER(apc_state, hgdc_draw_text)
|
||||
UPD7220(config, m_hgdc1, 3579545); // unk clock
|
||||
m_hgdc1->set_addrmap(0, &apc_state::upd7220_1_map);
|
||||
m_hgdc1->set_draw_text_callback(FUNC(apc_state::hgdc_draw_text), this);
|
||||
|
||||
MCFG_DEVICE_ADD(m_hgdc2, UPD7220, 3579545) // unk clock
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, upd7220_2_map)
|
||||
MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(apc_state, hgdc_display_pixels)
|
||||
UPD7220(config, m_hgdc2, 3579545); // unk clock
|
||||
m_hgdc2->set_addrmap(0, &apc_state::upd7220_2_map);
|
||||
m_hgdc2->set_display_pixels_callback(FUNC(apc_state::hgdc_display_pixels), this);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, m_speaker).front_center();
|
||||
|
@ -887,11 +887,13 @@ MACHINE_CONFIG_START(applix_state::applix)
|
||||
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "lspeaker", 0.50);
|
||||
|
||||
/* Devices */
|
||||
MCFG_MC6845_ADD("crtc", MC6845, "screen", 30_MHz_XTAL / 16) // MC6545 @ 1.875 MHz
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(applix_state, crtc_update_row)
|
||||
MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(*this, applix_state, vsync_w))
|
||||
MC6845(config, m_crtc, 30_MHz_XTAL / 16); // MC6545 @ 1.875 MHz
|
||||
m_crtc->set_screen("screen");
|
||||
m_crtc->set_show_border_area(false);
|
||||
m_crtc->set_char_width(8);
|
||||
m_crtc->set_update_row_callback(FUNC(applix_state::crtc_update_row), this);
|
||||
m_crtc->out_vsync_callback().set(FUNC(applix_state::vsync_w));
|
||||
|
||||
|
||||
VIA6522(config, m_via, 30_MHz_XTAL / 4 / 10); // VIA uses 68000 E clock
|
||||
m_via->readpb_handler().set(FUNC(applix_state::applix_pb_r));
|
||||
|
@ -1189,9 +1189,9 @@ MACHINE_CONFIG_START(atarisy2_state::atarisy2)
|
||||
MCFG_T11_INITIAL_MODE(0x36ff) /* initial mode word has DAL15,14,11,8 pulled low */
|
||||
MCFG_DEVICE_PROGRAM_MAP(main_map)
|
||||
|
||||
MCFG_DEVICE_ADD("audiocpu", M6502, SOUND_CLOCK/8)
|
||||
MCFG_DEVICE_PROGRAM_MAP(sound_map)
|
||||
MCFG_DEVICE_PERIODIC_INT_DEVICE("soundcomm", atari_sound_comm_device, sound_irq_gen, MASTER_CLOCK/2/16/16/16/10)
|
||||
M6502(config, m_audiocpu, SOUND_CLOCK/8);
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &atarisy2_state::sound_map);
|
||||
m_audiocpu->set_periodic_int("soundcomm", FUNC(atari_sound_comm_device::sound_irq_gen), attotime::from_hz(MASTER_CLOCK/2/16/16/16/10));
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(atarisy2_state,atarisy2)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(atarisy2_state,atarisy2)
|
||||
@ -1233,7 +1233,7 @@ MACHINE_CONFIG_START(atarisy2_state::atarisy2)
|
||||
MCFG_VIDEO_START_OVERRIDE(atarisy2_state,atarisy2)
|
||||
|
||||
/* sound hardware */
|
||||
ATARI_SOUND_COMM(config, "soundcomm", "audiocpu").int_callback().set_nop();
|
||||
ATARI_SOUND_COMM(config, m_soundcomm, m_audiocpu).int_callback().set_nop();
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
YM2151(config, m_ym2151, SOUND_CLOCK/4);
|
||||
|
@ -595,11 +595,12 @@ MACHINE_CONFIG_START(bigbord2_state::bigbord2)
|
||||
MCFG_FLOPPY_DRIVE_ADD("fdc:1", bigbord2_floppies, "8dsdd", floppy_image_device::default_floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_SOUND(true)
|
||||
|
||||
MCFG_MC6845_ADD("crtc", MC6845, "screen", 16_MHz_XTAL / 8)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(bigbord2_state, crtc_update_row)
|
||||
MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(m_ctc1, z80ctc_device, trg3))
|
||||
mc6845_device &crtc(MC6845(config, "crtc", 16_MHz_XTAL / 8));
|
||||
crtc.set_screen("screen");
|
||||
crtc.set_show_border_area(false);
|
||||
crtc.set_char_width(8);
|
||||
crtc.set_update_row_callback(FUNC(bigbord2_state::crtc_update_row), this);
|
||||
crtc.out_vsync_callback().set(m_ctc1, FUNC(z80ctc_device::trg3));
|
||||
|
||||
ls259_device &proglatch(LS259(config, "proglatch")); // U41
|
||||
proglatch.q_out_cb<6>().set("outlatch1", FUNC(ls259_device::clear_w)); // FCRST - also resets the 8877
|
||||
|
@ -722,10 +722,11 @@ MACHINE_CONFIG_START(can09_state::can09)
|
||||
RAM(config, RAM_TAG).set_default_size("768K");
|
||||
|
||||
// CRTC init
|
||||
MCFG_MC6845_ADD("crtc", H46505, "screen", CAN09_CPU_CLOCK) // TODO: Check actual clock source, An 8MHz UKI crystal is also nearby
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
//MCFG_MC6845_UPDATE_ROW_CB(can09_state, crtc_update_row) // not written yet
|
||||
h46505_device &crtc(H46505(config, "crtc", CAN09_CPU_CLOCK)); // TODO: Check actual clock source, An 8MHz UKI crystal is also nearby
|
||||
crtc.set_screen("screen");
|
||||
crtc.set_show_border_area(false);
|
||||
crtc.set_char_width(8);
|
||||
//crtc.set_update_row_callback(FUNC(can09_state::crtc_update_row), this); // not written yet
|
||||
|
||||
/* Setup loop from data table in ROM: 0xFFCB 0xE020 (CRTC register number), 0xFFD0 0xE021 (CRTC register value)
|
||||
Reg Value Comment
|
||||
|
@ -335,10 +335,11 @@ MACHINE_CONFIG_START(dim68k_state::dim68k)
|
||||
MCFG_FLOPPY_DRIVE_ADD("fdc:0", dim68k_floppies, "525hd", floppy_image_device::default_floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_ADD("fdc:1", dim68k_floppies, "525hd", floppy_image_device::default_floppy_formats)
|
||||
|
||||
MCFG_MC6845_ADD("crtc", MC6845, "screen", 1790000)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(dim68k_state, crtc_update_row)
|
||||
MC6845(config, m_crtc, 1790000);
|
||||
m_crtc->set_screen("screen");
|
||||
m_crtc->set_show_border_area(false);
|
||||
m_crtc->set_char_width(8);
|
||||
m_crtc->set_update_row_callback(FUNC(dim68k_state::crtc_update_row), this);
|
||||
|
||||
MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
|
||||
MCFG_GENERIC_KEYBOARD_CB(PUT(dim68k_state, kbd_put))
|
||||
|
@ -801,10 +801,10 @@ MACHINE_CONFIG_START(dmv_state::dmv)
|
||||
config.set_default_layout(layout_dmv);
|
||||
|
||||
// devices
|
||||
MCFG_DEVICE_ADD("upd7220", UPD7220, XTAL(5'000'000)/2) // unk clock
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, upd7220_map)
|
||||
MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(dmv_state, hgdc_display_pixels)
|
||||
MCFG_UPD7220_DRAW_TEXT_CALLBACK_OWNER(dmv_state, hgdc_draw_text)
|
||||
UPD7220(config, m_hgdc, XTAL(5'000'000)/2); // unk clock
|
||||
m_hgdc->set_addrmap(0, &dmv_state::upd7220_map);
|
||||
m_hgdc->set_display_pixels_callback(FUNC(dmv_state::hgdc_display_pixels), this);
|
||||
m_hgdc->set_draw_text_callback(FUNC(dmv_state::hgdc_draw_text), this);
|
||||
|
||||
AM9517A(config, m_dmac, 4_MHz_XTAL);
|
||||
m_dmac->out_hreq_callback().set(FUNC(dmv_state::dma_hrq_changed));
|
||||
|
@ -303,10 +303,11 @@ MACHINE_CONFIG_START(d64plus_state::d64plus)
|
||||
MCFG_PALETTE_ADD_MONOCHROME("palette")
|
||||
|
||||
// crtc
|
||||
MCFG_MC6845_ADD("crtc", HD6845, "plus_screen", 14.218_MHz_XTAL / 4 / 2)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(d64plus_state, crtc_update_row)
|
||||
HD6845(config, m_crtc, 14.218_MHz_XTAL / 4 / 2);
|
||||
m_crtc->set_screen("plus_screen");
|
||||
m_crtc->set_show_border_area(false);
|
||||
m_crtc->set_char_width(8);
|
||||
m_crtc->set_update_row_callback(FUNC(d64plus_state::crtc_update_row), this);
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(dragon_alpha_state::dgnalpha)
|
||||
|
@ -591,12 +591,13 @@ MACHINE_CONFIG_START(excali64_state::excali64)
|
||||
MCFG_PALETTE_ADD("palette", 40)
|
||||
MCFG_PALETTE_INIT_OWNER(excali64_state, excali64)
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_excali64)
|
||||
MCFG_MC6845_ADD("crtc", MC6845, "screen", 16_MHz_XTAL / 16) // 1MHz for lowres; 2MHz for highres
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(excali64_state, update_row)
|
||||
MCFG_MC6845_OUT_HSYNC_CB(WRITELINE(*this, excali64_state, crtc_hs))
|
||||
MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(*this, excali64_state, crtc_vs))
|
||||
MC6845(config, m_crtc, 16_MHz_XTAL / 16); // 1MHz for lowres; 2MHz for highres
|
||||
m_crtc->set_screen("screen");
|
||||
m_crtc->set_show_border_area(false);
|
||||
m_crtc->set_char_width(8);
|
||||
m_crtc->set_update_row_callback(FUNC(excali64_state::update_row), this);
|
||||
m_crtc->out_hsync_callback().set(FUNC(excali64_state::crtc_hs));
|
||||
m_crtc->out_vsync_callback().set(FUNC(excali64_state::crtc_vs));
|
||||
|
||||
/* Devices */
|
||||
MCFG_CASSETTE_ADD( "cassette" )
|
||||
|
@ -1004,23 +1004,20 @@ MACHINE_CONFIG_START(fanucspmg_state::fanucspmg)
|
||||
MCFG_SCREEN_RAW_PARAMS(XTAL(15'000'000), 640, 0, 512, 390, 0, 384 )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( CRTC_TAG, mc6845_device, screen_update )
|
||||
|
||||
MCFG_MC6845_ADD( CRTC_TAG, HD6845, SCREEN_TAG, XTAL(8'000'000)/2)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(fanucspmg_state, crtc_update_row)
|
||||
MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(*this, fanucspmg_state, vsync_w))
|
||||
HD6845(config, m_crtc, XTAL(8'000'000)/2);
|
||||
m_crtc->set_screen(SCREEN_TAG);
|
||||
m_crtc->set_show_border_area(false);
|
||||
m_crtc->set_char_width(8);
|
||||
m_crtc->set_update_row_callback(FUNC(fanucspmg_state::crtc_update_row), this);
|
||||
m_crtc->out_vsync_callback().set(FUNC(fanucspmg_state::vsync_w));
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(fanucspmg_state::fanucspmgm)
|
||||
void fanucspmg_state::fanucspmgm(machine_config &config)
|
||||
{
|
||||
fanucspmg(config);
|
||||
MCFG_DEVICE_REMOVE( CRTC_TAG )
|
||||
|
||||
MCFG_MC6845_ADD( CRTC_TAG, HD6845, SCREEN_TAG, XTAL(8'000'000)/2)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(fanucspmg_state, crtc_update_row_mono)
|
||||
MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(*this, fanucspmg_state, vsync_w))
|
||||
MACHINE_CONFIG_END
|
||||
m_crtc->set_update_row_callback(FUNC(fanucspmg_state::crtc_update_row_mono), this);
|
||||
}
|
||||
|
||||
/* ROM definition */
|
||||
ROM_START( fanucspg )
|
||||
|
@ -98,9 +98,9 @@ MACHINE_CONFIG_START(if800_state::if800)
|
||||
|
||||
|
||||
// PIC8259(config, "pic8259", 0);
|
||||
MCFG_DEVICE_ADD("upd7220", UPD7220, 8000000/4)
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, upd7220_map)
|
||||
MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(if800_state, hgdc_display_pixels)
|
||||
UPD7220(config, m_hgdc, 8000000/4);
|
||||
m_hgdc->set_addrmap(0, &if800_state::upd7220_map);
|
||||
m_hgdc->set_display_pixels_callback(FUNC(if800_state::hgdc_display_pixels), this);
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
|
@ -287,11 +287,12 @@ MACHINE_CONFIG_START(lola8a_state::lola8a)
|
||||
MCFG_SCREEN_SIZE(640, 480)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
|
||||
|
||||
MCFG_MC6845_ADD(HD46505SP_TAG, HD6845, "screen", XTAL(8'000'000) / 8) // HD6845 == HD46505S
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(lola8a_state, crtc_update_row)
|
||||
MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(*this, lola8a_state, crtc_vsync))
|
||||
hd6845_device &crtc(HD6845(config, HD46505SP_TAG, XTAL(8'000'000) / 8)); // HD6845 == HD46505S
|
||||
crtc.set_screen("screen");
|
||||
crtc.set_show_border_area(false);
|
||||
crtc.set_char_width(8);
|
||||
crtc.set_update_row_callback(FUNC(lola8a_state::crtc_update_row), this);
|
||||
crtc.out_vsync_callback().set(FUNC(lola8a_state::crtc_vsync));
|
||||
|
||||
MCFG_PALETTE_ADD_3BIT_BRG("palette")
|
||||
|
||||
|
@ -131,10 +131,11 @@ MACHINE_CONFIG_START(m3_state::m3)
|
||||
MCFG_PALETTE_ADD_MONOCHROME("palette")
|
||||
|
||||
/* Devices */
|
||||
MCFG_MC6845_ADD("crtc", MC6845, "screen", 2'000'000) // clk unknown
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(7)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(m3_state, crtc_update_row)
|
||||
mc6845_device &crtc(MC6845(config, "crtc", 2'000'000)); // clk unknown
|
||||
crtc.set_screen("screen");
|
||||
crtc.set_show_border_area(false);
|
||||
crtc.set_char_width(7);
|
||||
crtc.set_update_row_callback(FUNC(m3_state::crtc_update_row), this);
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
ROM_START( m3 )
|
||||
|
@ -321,10 +321,11 @@ MACHINE_CONFIG_START(mbc200_state::mbc200)
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_mbc200)
|
||||
MCFG_PALETTE_ADD_MONOCHROME("palette")
|
||||
|
||||
MCFG_MC6845_ADD("crtc", H46505, "screen", 8_MHz_XTAL / 4) // HD46505SP
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(mbc200_state, update_row)
|
||||
H46505(config, m_crtc, 8_MHz_XTAL / 4); // HD46505SP
|
||||
m_crtc->set_screen("screen");
|
||||
m_crtc->set_show_border_area(false);
|
||||
m_crtc->set_char_width(8);
|
||||
m_crtc->set_update_row_callback(FUNC(mbc200_state::update_row), this);
|
||||
|
||||
// sound
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
@ -1,7 +1,7 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Phill Harvey-Smith
|
||||
/*
|
||||
drivers/mbc55x.c
|
||||
drivers/mbc55x.cpp
|
||||
|
||||
Machine driver for the Sanyo MBC-550 and MBC-555.
|
||||
|
||||
@ -311,12 +311,13 @@ MACHINE_CONFIG_START(mbc55x_state::mbc55x)
|
||||
m_ppi->in_pc_callback().set(FUNC(mbc55x_state::printer_status_r));
|
||||
m_ppi->out_pc_callback().set(FUNC(mbc55x_state::disk_select_w));
|
||||
|
||||
MCFG_MC6845_ADD(VID_MC6845_NAME, HD6845, SCREEN_TAG, 14.318181_MHz_XTAL / 8) // HD46505SP-1
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(mbc55x_state, crtc_update_row)
|
||||
MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(*this, mbc55x_state, vid_hsync_changed))
|
||||
MCFG_MC6845_OUT_HSYNC_CB(WRITELINE(*this, mbc55x_state, vid_vsync_changed))
|
||||
HD6845(config, m_crtc, 14.318181_MHz_XTAL / 8); // HD46505SP-1
|
||||
m_crtc->set_screen(SCREEN_TAG);
|
||||
m_crtc->set_show_border_area(false);
|
||||
m_crtc->set_char_width(8);
|
||||
m_crtc->set_update_row_callback(FUNC(mbc55x_state::crtc_update_row), this);
|
||||
m_crtc->out_vsync_callback().set(FUNC(mbc55x_state::vid_vsync_changed));
|
||||
m_crtc->out_hsync_callback().set(FUNC(mbc55x_state::vid_hsync_changed));
|
||||
|
||||
/* Backing storage */
|
||||
FD1793(config, m_fdc, 14.318181_MHz_XTAL / 14); // M5W1793-02P (clock is nominally 1 MHz)
|
||||
|
@ -261,8 +261,8 @@ void mc1000_state::mc1000_io(address_map &map)
|
||||
map.global_mask(0xff);
|
||||
map(0x04, 0x04).rw(FUNC(mc1000_state::printer_r), FUNC(mc1000_state::printer_w));
|
||||
map(0x05, 0x05).w("cent_data_out", FUNC(output_latch_device::bus_w));
|
||||
// AM_RANGE(0x10, 0x10) AM_DEVWRITE(MC6845_TAG, mc6845_device, address_w)
|
||||
// AM_RANGE(0x11, 0x11) AM_DEVREADWRITE(MC6845_TAG, mc6845_device, register_r, register_w)
|
||||
// map(0x10, 0x10).w(m_crtc, FUNC(mc6845_device::address_w));
|
||||
// map(0x11, 0x11).rw(m_crtc, FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w));
|
||||
map(0x12, 0x12).w(FUNC(mc1000_state::mc6845_ctrl_w));
|
||||
map(0x20, 0x20).w(AY8910_TAG, FUNC(ay8910_device::address_w));
|
||||
map(0x40, 0x40).r(AY8910_TAG, FUNC(ay8910_device::data_r));
|
||||
|
@ -148,11 +148,12 @@ MACHINE_CONFIG_START(mx2178_state::mx2178)
|
||||
MCFG_PALETTE_ADD_MONOCHROME("palette")
|
||||
|
||||
/* Devices */
|
||||
MCFG_MC6845_ADD("crtc", MC6845, "screen", XTAL(18'869'600) / 8) // clk unknown
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(mx2178_state, crtc_update_row)
|
||||
MCFG_MC6845_OUT_VSYNC_CB(INPUTLINE("maincpu", INPUT_LINE_NMI))
|
||||
mc6845_device &crtc(MC6845(config, "crtc", XTAL(18'869'600) / 8)); // clk unknown
|
||||
crtc.set_screen("screen");
|
||||
crtc.set_show_border_area(false);
|
||||
crtc.set_char_width(8);
|
||||
crtc.set_update_row_callback(FUNC(mx2178_state::crtc_update_row), this);
|
||||
crtc.out_vsync_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
|
||||
|
||||
clock_device &acia_clock(CLOCK(config, "acia_clock", XTAL(18'869'600) / 30));
|
||||
acia_clock.signal_handler().set("acia1", FUNC(acia6850_device::write_txc));
|
||||
|
@ -540,10 +540,11 @@ MACHINE_CONFIG_START(mycom_state::mycom)
|
||||
|
||||
/* Manual states clock is 1.008mhz for 40 cols, and 2.016 mhz for 80 cols.
|
||||
The CRTC is a HD46505S - same as a 6845. The start registers need to be readable. */
|
||||
MCFG_MC6845_ADD("crtc", MC6845, "screen", 1008000)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(mycom_state, crtc_update_row)
|
||||
MC6845(config, m_crtc, 1008000);
|
||||
m_crtc->set_screen("screen");
|
||||
m_crtc->set_show_border_area(false);
|
||||
m_crtc->set_char_width(8);
|
||||
m_crtc->set_update_row_callback(FUNC(mycom_state::crtc_update_row), this);
|
||||
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
|
@ -833,14 +833,14 @@ MACHINE_CONFIG_START(mz3500_state::mz3500)
|
||||
MCFG_FLOPPY_DRIVE_ADD("upd765a:2", mz3500_floppies, "525ssdd", floppy_image_device::default_floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_ADD("upd765a:3", mz3500_floppies, "525ssdd", floppy_image_device::default_floppy_formats)
|
||||
|
||||
MCFG_DEVICE_ADD("upd7220_chr", UPD7220, MAIN_CLOCK/5)
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, upd7220_1_map)
|
||||
MCFG_UPD7220_DRAW_TEXT_CALLBACK_OWNER(mz3500_state, hgdc_draw_text)
|
||||
MCFG_UPD7220_VSYNC_CALLBACK(WRITELINE("upd7220_gfx", upd7220_device, ext_sync_w))
|
||||
UPD7220(config, m_hgdc1, MAIN_CLOCK/5);
|
||||
m_hgdc1->set_addrmap(0, &mz3500_state::upd7220_1_map);
|
||||
m_hgdc1->set_draw_text_callback(FUNC(mz3500_state::hgdc_draw_text), this);
|
||||
m_hgdc1->vsync_wr_callback().set(m_hgdc2, FUNC(upd7220_device::ext_sync_w));
|
||||
|
||||
MCFG_DEVICE_ADD("upd7220_gfx", UPD7220, MAIN_CLOCK/5)
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, upd7220_2_map)
|
||||
MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(mz3500_state, hgdc_display_pixels)
|
||||
UPD7220(config, m_hgdc2, MAIN_CLOCK/5);
|
||||
m_hgdc2->set_addrmap(0, &mz3500_state::upd7220_2_map);
|
||||
m_hgdc2->set_display_pixels_callback(FUNC(mz3500_state::hgdc_display_pixels), this);
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
|
@ -165,9 +165,9 @@ MACHINE_CONFIG_START(mz6500_state::mz6500)
|
||||
MCFG_PALETTE_ADD("palette", 8)
|
||||
|
||||
/* Devices */
|
||||
MCFG_DEVICE_ADD("upd7220", UPD7220, 8000000/6) // unk clock
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, upd7220_map)
|
||||
MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(mz6500_state, hgdc_display_pixels)
|
||||
UPD7220(config, m_hgdc, 8000000/6); // unk clock
|
||||
m_hgdc->set_addrmap(0, &mz6500_state::upd7220_map);
|
||||
m_hgdc->set_display_pixels_callback(FUNC(mz6500_state::hgdc_display_pixels), this);
|
||||
|
||||
UPD765A(config, m_fdc, true, true);
|
||||
MCFG_FLOPPY_DRIVE_ADD("upd765:0", mz6500_floppies, "525hd", floppy_image_device::default_floppy_formats)
|
||||
|
@ -994,11 +994,11 @@ MACHINE_CONFIG_START(ngen_state::ngen)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_UPDATE_DEVICE("crtc",mc6845_device, screen_update)
|
||||
|
||||
MCFG_MC6845_ADD("crtc", MC6845, nullptr, 19980000 / 9) // divisor unknown -- /9 gives 60Hz output, so likely correct
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(9)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(ngen_state, crtc_update_row)
|
||||
MCFG_VIDEO_SET_SCREEN("screen")
|
||||
MC6845(config, m_crtc, 19980000 / 9); // divisor unknown -- /9 gives 60Hz output, so likely correct
|
||||
m_crtc->set_screen("screen");
|
||||
m_crtc->set_show_border_area(false);
|
||||
m_crtc->set_char_width(9);
|
||||
m_crtc->set_update_row_callback(FUNC(ngen_state::crtc_update_row), this);
|
||||
|
||||
// keyboard UART (patent says i8251 is used for keyboard communications, it is located on the video board)
|
||||
I8251(config, m_viduart, 0); // main clock unknown, Rx/Tx clocks are 19.53kHz
|
||||
@ -1108,11 +1108,11 @@ MACHINE_CONFIG_START(ngen386_state::ngen386)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_UPDATE_DEVICE("crtc",mc6845_device, screen_update)
|
||||
|
||||
MCFG_MC6845_ADD("crtc", MC6845, nullptr, 19980000 / 9) // divisor unknown -- /9 gives 60Hz output, so likely correct
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(9)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(ngen386_state, crtc_update_row)
|
||||
MCFG_VIDEO_SET_SCREEN("screen")
|
||||
MC6845(config, m_crtc, 19980000 / 9); // divisor unknown -- /9 gives 60Hz output, so likely correct
|
||||
m_crtc->set_screen("screen");
|
||||
m_crtc->set_show_border_area(false);
|
||||
m_crtc->set_char_width(9);
|
||||
m_crtc->set_update_row_callback(FUNC(ngen386_state::crtc_update_row), this);
|
||||
|
||||
// keyboard UART (patent says i8251 is used for keyboard communications, it is located on the video board)
|
||||
I8251(config, m_viduart, 0); // main clock unknown, Rx/Tx clocks are 19.53kHz
|
||||
|
@ -325,9 +325,10 @@ MACHINE_CONFIG_START(paso1600_state::paso1600)
|
||||
// MCFG_PALETTE_INIT(black_and_white)
|
||||
|
||||
/* Devices */
|
||||
MCFG_MC6845_ADD("crtc", H46505, "screen", 16000000/4) /* unknown clock, hand tuned to get ~60 fps */
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
h46505_device &crtc(H46505(config, "crtc", 16000000/4)); /* unknown clock, hand tuned to get ~60 fps */
|
||||
crtc.set_screen("screen");
|
||||
crtc.set_show_border_area(false);
|
||||
crtc.set_char_width(8);
|
||||
|
||||
PIC8259(config, m_pic, 0);
|
||||
m_pic->out_int_callback().set_inputline(m_maincpu, 0);
|
||||
|
@ -305,10 +305,11 @@ MACHINE_CONFIG_START(pasopia_state::pasopia)
|
||||
MCFG_PALETTE_ADD("palette", 8)
|
||||
|
||||
/* Devices */
|
||||
MCFG_MC6845_ADD("crtc", H46505, "screen", XTAL(4'000'000)/4) /* unknown clock, hand tuned to get ~60 fps */
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(pasopia_state, crtc_update_row)
|
||||
H46505(config, m_crtc, XTAL(4'000'000)/4); /* unknown clock, hand tuned to get ~60 fps */
|
||||
m_crtc->set_screen("screen");
|
||||
m_crtc->set_show_border_area(false);
|
||||
m_crtc->set_char_width(8);
|
||||
m_crtc->set_update_row_callback(FUNC(pasopia_state::crtc_update_row), this);
|
||||
|
||||
I8255A(config, m_ppi0);
|
||||
m_ppi0->out_pa_callback().set(FUNC(pasopia_state::vram_addr_lo_w));
|
||||
|
@ -985,9 +985,10 @@ MACHINE_CONFIG_START(pasopia7_state::p7_raster)
|
||||
MCFG_PALETTE_ADD_3BIT_BRG("palette")
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_pasopia7)
|
||||
|
||||
MCFG_MC6845_ADD("crtc", H46505, "screen", VDP_CLOCK) /* unknown clock, hand tuned to get ~60 fps */
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
H46505(config, m_crtc, VDP_CLOCK); /* unknown clock, hand tuned to get ~60 fps */
|
||||
m_crtc->set_screen("screen");
|
||||
m_crtc->set_show_border_area(false);
|
||||
m_crtc->set_char_width(8);
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
@ -1006,9 +1007,10 @@ MACHINE_CONFIG_START(pasopia7_state::p7_lcd)
|
||||
MCFG_PALETTE_INIT_OWNER(pasopia7_state,p7_lcd)
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_pasopia7)
|
||||
|
||||
MCFG_MC6845_ADD("crtc", H46505, "screen", LCD_CLOCK) /* unknown clock, hand tuned to get ~60 fps */
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
H46505(config, m_crtc, LCD_CLOCK); /* unknown clock, hand tuned to get ~60 fps */
|
||||
m_crtc->set_screen("screen");
|
||||
m_crtc->set_show_border_area(false);
|
||||
m_crtc->set_char_width(8);
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
/* ROM definition */
|
||||
|
@ -2370,14 +2370,14 @@ MACHINE_CONFIG_START(pc9801_state::pc9801_common)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(pc9801_state, screen_update)
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pc9801_state, vrtc_irq))
|
||||
|
||||
MCFG_DEVICE_ADD("upd7220_chr", UPD7220, 21.0526_MHz_XTAL / 8)
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, upd7220_1_map)
|
||||
MCFG_UPD7220_DRAW_TEXT_CALLBACK_OWNER(pc9801_state, hgdc_draw_text)
|
||||
MCFG_UPD7220_VSYNC_CALLBACK(WRITELINE("upd7220_btm", upd7220_device, ext_sync_w))
|
||||
UPD7220(config, m_hgdc1, 21.0526_MHz_XTAL / 8);
|
||||
m_hgdc1->set_addrmap(0, &pc9801_state::upd7220_1_map);
|
||||
m_hgdc1->set_draw_text_callback(FUNC(pc9801_state::hgdc_draw_text), this);
|
||||
m_hgdc1->vsync_wr_callback().set(m_hgdc2, FUNC(upd7220_device::ext_sync_w));
|
||||
|
||||
MCFG_DEVICE_ADD("upd7220_btm", UPD7220, 21.0526_MHz_XTAL / 8)
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, upd7220_2_map)
|
||||
MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(pc9801_state, hgdc_display_pixels)
|
||||
UPD7220(config, m_hgdc2, 21.0526_MHz_XTAL / 8);
|
||||
m_hgdc2->set_addrmap(0, &pc9801_state::upd7220_2_map);
|
||||
m_hgdc2->set_display_pixels_callback(FUNC(pc9801_state::hgdc_display_pixels), this);
|
||||
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
|
@ -440,10 +440,11 @@ MACHINE_CONFIG_START(pg685_state::pg675)
|
||||
MCFG_SCREEN_RAW_PARAMS(12288000, 882, 0, 720, 370, 0, 350 ) // not real values
|
||||
MCFG_SCREEN_UPDATE_DEVICE( "crtc", mc6845_device, screen_update )
|
||||
|
||||
MCFG_MC6845_ADD("crtc", MC6845, "screen", 12288000)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(pg685_state, crtc_update_row)
|
||||
mc6845_device &crtc(MC6845(config, "crtc", 12288000));
|
||||
crtc.set_screen("screen");
|
||||
crtc.set_show_border_area(false);
|
||||
crtc.set_char_width(8);
|
||||
crtc.set_update_row_callback(FUNC(pg685_state::crtc_update_row), this);
|
||||
|
||||
// sound hardware
|
||||
|
||||
@ -489,10 +490,11 @@ MACHINE_CONFIG_START(pg685_state::pg685)
|
||||
MCFG_SCREEN_RAW_PARAMS(12288000, 882, 0, 720, 370, 0, 350 ) // not real values
|
||||
MCFG_SCREEN_UPDATE_DEVICE( "crtc", mc6845_device, screen_update )
|
||||
|
||||
MCFG_MC6845_ADD("crtc", MC6845, "screen", 12288000)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(pg685_state, crtc_update_row)
|
||||
mc6845_device &crtc(MC6845(config, "crtc", 12288000));
|
||||
crtc.set_screen("screen");
|
||||
crtc.set_show_border_area(false);
|
||||
crtc.set_char_width(8);
|
||||
crtc.set_update_row_callback(FUNC(pg685_state::crtc_update_row), this);
|
||||
|
||||
// sound hardware
|
||||
|
||||
@ -540,10 +542,11 @@ MACHINE_CONFIG_START(pg685_state::pg685oua12)
|
||||
MCFG_SCREEN_RAW_PARAMS(12288000, 882, 0, 720, 370, 0, 350 ) // not real values
|
||||
MCFG_SCREEN_UPDATE_DEVICE( "crtc", mc6845_device, screen_update )
|
||||
|
||||
MCFG_MC6845_ADD("crtc", MC6845, "screen", 12288000)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(pg685_state, crtc_update_row_oua12)
|
||||
mc6845_device &crtc(MC6845(config, "crtc", 12288000));
|
||||
crtc.set_screen("screen");
|
||||
crtc.set_show_border_area(false);
|
||||
crtc.set_char_width(8);
|
||||
crtc.set_update_row_callback(FUNC(pg685_state::crtc_update_row_oua12), this);
|
||||
|
||||
// sound hardware
|
||||
|
||||
|
@ -54,25 +54,26 @@ void qvt6800_state::qvt190_mem_map(address_map &map)
|
||||
static INPUT_PORTS_START( qvt6800 )
|
||||
INPUT_PORTS_END
|
||||
|
||||
MACHINE_CONFIG_START(qvt6800_state::qvt190)
|
||||
MCFG_DEVICE_ADD("maincpu", M6800, XTAL(16'669'800) / 9)
|
||||
MCFG_DEVICE_PROGRAM_MAP(qvt190_mem_map)
|
||||
void qvt6800_state::qvt190(machine_config &config)
|
||||
{
|
||||
M6800(config, m_maincpu, XTAL(16'669'800) / 9);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &qvt6800_state::qvt190_mem_map);
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // V61C16P55L + battery
|
||||
|
||||
MCFG_DEVICE_ADD("acia1", ACIA6850, 0)
|
||||
ACIA6850(config, "acia1", 0);
|
||||
|
||||
MCFG_DEVICE_ADD("acia2", ACIA6850, 0)
|
||||
ACIA6850(config, "acia2", 0);
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(XTAL(16'669'800), 882, 0, 720, 315, 0, 300)
|
||||
MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update)
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_raw(XTAL(16'669'800), 882, 0, 720, 315, 0, 300);
|
||||
screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update));
|
||||
|
||||
MCFG_DEVICE_ADD("crtc", MC6845, XTAL(16'669'800) / 9)
|
||||
MCFG_MC6845_CHAR_WIDTH(9)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(qvt6800_state, update_row)
|
||||
MCFG_VIDEO_SET_SCREEN("screen")
|
||||
MACHINE_CONFIG_END
|
||||
mc6845_device &crtc(MC6845(config, "crtc", XTAL(16'669'800) / 9));
|
||||
crtc.set_screen("screen");
|
||||
crtc.set_char_width(9);
|
||||
crtc.set_update_row_callback(FUNC(qvt6800_state::update_row), this);
|
||||
}
|
||||
|
||||
/**************************************************************************************************************
|
||||
|
||||
|
@ -799,11 +799,11 @@ MACHINE_CONFIG_START(qx10_state::qx10)
|
||||
|
||||
I8255(config, m_ppi, 0);
|
||||
|
||||
MCFG_DEVICE_ADD("upd7220", UPD7220, MAIN_CLK/6) // unk clock
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, upd7220_map)
|
||||
MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(qx10_state, hgdc_display_pixels)
|
||||
MCFG_UPD7220_DRAW_TEXT_CALLBACK_OWNER(qx10_state, hgdc_draw_text)
|
||||
MCFG_VIDEO_SET_SCREEN("screen")
|
||||
UPD7220(config, m_hgdc, MAIN_CLK/6); // unk clock
|
||||
m_hgdc->set_addrmap(0, &qx10_state::upd7220_map);
|
||||
m_hgdc->set_display_pixels_callback(FUNC(qx10_state::hgdc_display_pixels), this);
|
||||
m_hgdc->set_draw_text_callback(FUNC(qx10_state::hgdc_draw_text), this);
|
||||
m_hgdc->set_screen("screen");
|
||||
|
||||
MC146818(config, m_rtc, 32.768_kHz_XTAL);
|
||||
m_rtc->irq().set(m_pic_s, FUNC(pic8259_device::ir2_w));
|
||||
|
@ -3240,12 +3240,13 @@ MACHINE_CONFIG_START(rainbow_state::rainbow)
|
||||
|
||||
// *************************** COLOR GRAPHICS (OPTION) **************************************
|
||||
// While the OSC frequency is confirmed, the divider is not (refresh rate is ~60 Hz with 32).
|
||||
MCFG_DEVICE_ADD("upd7220", UPD7220, 31188000 / 32) // Duell schematics shows a 31.188 Mhz oscillator (confirmed by RFKA).
|
||||
MCFG_UPD7220_VSYNC_CALLBACK(WRITELINE(*this, rainbow_state, GDC_vblank_irq)) // "The vsync callback line needs to be below the 7220 DEVICE_ADD line."
|
||||
UPD7220(config, m_hgdc, 31188000 / 32); // Duell schematics shows a 31.188 Mhz oscillator (confirmed by RFKA).
|
||||
m_hgdc->vsync_wr_callback().set(FUNC(rainbow_state::GDC_vblank_irq)); // "The vsync callback line needs to be below the 7220 DEVICE_ADD line."
|
||||
|
||||
m_hgdc->set_addrmap(0, &rainbow_state::upd7220_map);
|
||||
m_hgdc->set_display_pixels_callback(FUNC(rainbow_state::hgdc_display_pixels), this);
|
||||
m_hgdc->set_screen(m_screen2); // set_screen needs to be added after 7720 device in the machine config, not after the screen.
|
||||
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, upd7220_map)
|
||||
MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(rainbow_state, hgdc_display_pixels)
|
||||
MCFG_VIDEO_SET_SCREEN("screen2") // SET_SCREEN needs to be added after 7720 device in the machine config, not after the screen.
|
||||
MCFG_PALETTE_ADD("palette2", 32)
|
||||
|
||||
MCFG_SCREEN_ADD("screen2", RASTER)
|
||||
|
@ -671,10 +671,11 @@ MACHINE_CONFIG_START(sapi1_state::sapi3b)
|
||||
MCFG_DEVICE_PROGRAM_MAP(sapi3b_mem)
|
||||
MCFG_DEVICE_IO_MAP(sapi3b_io)
|
||||
|
||||
MCFG_MC6845_ADD("crtc", MC6845, "screen", 1008000) // guess
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(6)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(sapi1_state, crtc_update_row)
|
||||
mc6845_device &crtc(MC6845(config, "crtc", 1008000)); // guess
|
||||
crtc.set_screen("screen");
|
||||
crtc.set_show_border_area(false);
|
||||
crtc.set_char_width(6);
|
||||
crtc.set_update_row_callback(FUNC(sapi1_state::crtc_update_row), this);
|
||||
|
||||
MCFG_SCREEN_MODIFY("screen")
|
||||
MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update)
|
||||
|
@ -1045,9 +1045,10 @@ MACHINE_CONFIG_START(smc777_state::smc777)
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfxdecode_device::empty)
|
||||
|
||||
MCFG_MC6845_ADD("crtc", H46505, "screen", MASTER_CLOCK/2) /* unknown clock, hand tuned to get ~60 fps */
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(true)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
H46505(config, m_crtc, MASTER_CLOCK/2); /* unknown clock, hand tuned to get ~60 fps */
|
||||
m_crtc->set_screen(m_screen);
|
||||
m_crtc->set_show_border_area(true);
|
||||
m_crtc->set_char_width(8);
|
||||
|
||||
// floppy controller
|
||||
MB8876(config, m_fdc, 1_MHz_XTAL);
|
||||
|
@ -895,11 +895,13 @@ MACHINE_CONFIG_START(spc1500_state::spc1500)
|
||||
MCFG_SCREEN_UPDATE_DEVICE("mc6845", mc6845_device, screen_update )
|
||||
MCFG_PALETTE_ADD("palette", 8)
|
||||
MCFG_PALETTE_INIT_OWNER(spc1500_state, spc)
|
||||
MCFG_MC6845_ADD("mc6845", MC6845, "screen", (VDP_CLOCK/48)) //unknown divider
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(spc1500_state, crtc_update_row)
|
||||
MCFG_MC6845_RECONFIGURE_CB(spc1500_state, crtc_reconfig)
|
||||
MC6845(config, m_vdg, (VDP_CLOCK/48)); //unknown divider
|
||||
m_vdg->set_screen("screen");
|
||||
m_vdg->set_show_border_area(false);
|
||||
m_vdg->set_char_width(8);
|
||||
m_vdg->set_update_row_callback(FUNC(spc1500_state::crtc_update_row), this);
|
||||
m_vdg->set_reconfigure_callback(FUNC(spc1500_state::crtc_reconfig), this);
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(spc1500_state, spc)
|
||||
|
||||
I8255(config, m_pio);
|
||||
|
@ -138,10 +138,11 @@ MACHINE_CONFIG_START(sys9002_state::sys9002)
|
||||
MCFG_PALETTE_ADD_MONOCHROME("palette")
|
||||
|
||||
/* Devices */
|
||||
MCFG_MC6845_ADD("crtc", MC6845, "screen", XTAL(2'000'000)) // clk unknown
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(sys9002_state, crtc_update_row)
|
||||
mc6845_device &crtc(MC6845(config, "crtc", XTAL(2'000'000))); // clk unknown
|
||||
crtc.set_screen("screen");
|
||||
crtc.set_show_border_area(false);
|
||||
crtc.set_char_width(8);
|
||||
crtc.set_update_row_callback(FUNC(sys9002_state::crtc_update_row), this);
|
||||
|
||||
clock_device &uart_clock(CLOCK(config, "uart_clock", 614400));
|
||||
uart_clock.signal_handler().set("uart1", FUNC(i8251_device::write_txc));
|
||||
|
@ -361,10 +361,11 @@ MACHINE_CONFIG_START(tavernie_state::ivg09)
|
||||
MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
|
||||
MCFG_GENERIC_KEYBOARD_CB(PUT(tavernie_state, kbd_put))
|
||||
|
||||
MCFG_MC6845_ADD("crtc", MC6845, "screen", 1008000) // unknown clock
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(tavernie_state, crtc_update_row)
|
||||
mc6845_device &crtc(MC6845(config, "crtc", 1008000)); // unknown clock
|
||||
crtc.set_screen("screen");
|
||||
crtc.set_show_border_area(false);
|
||||
crtc.set_char_width(8);
|
||||
crtc.set_update_row_callback(FUNC(tavernie_state::crtc_update_row), this);
|
||||
|
||||
PIA6821(config, m_pia_ivg, 0);
|
||||
m_pia_ivg->readpb_handler().set(FUNC(tavernie_state::pb_ivg_r));
|
||||
|
@ -724,12 +724,13 @@ MACHINE_CONFIG_START(trs80m2_state::trs80m2)
|
||||
|
||||
MCFG_PALETTE_ADD_MONOCHROME("palette")
|
||||
|
||||
MCFG_MC6845_ADD(MC6845_TAG, MC6845, SCREEN_TAG, 12.48_MHz_XTAL / 8)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(true)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(trs80m2_state, crtc_update_row)
|
||||
MCFG_MC6845_OUT_DE_CB(WRITELINE(*this, trs80m2_state, de_w))
|
||||
MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(*this, trs80m2_state, vsync_w))
|
||||
MC6845(config, m_crtc, 12.48_MHz_XTAL / 8);
|
||||
m_crtc->set_screen(SCREEN_TAG);
|
||||
m_crtc->set_show_border_area(true);
|
||||
m_crtc->set_char_width(8);
|
||||
m_crtc->set_update_row_callback(FUNC(trs80m2_state::crtc_update_row), this);
|
||||
m_crtc->out_de_callback().set(FUNC(trs80m2_state::de_w));
|
||||
m_crtc->out_vsync_callback().set(FUNC(trs80m2_state::vsync_w));
|
||||
|
||||
// devices
|
||||
FD1791(config, m_fdc, 8_MHz_XTAL / 4);
|
||||
@ -812,12 +813,13 @@ MACHINE_CONFIG_START(trs80m16_state::trs80m16)
|
||||
|
||||
MCFG_PALETTE_ADD_MONOCHROME("palette")
|
||||
|
||||
MCFG_MC6845_ADD(MC6845_TAG, MC6845, SCREEN_TAG, 12.48_MHz_XTAL / 8)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(true)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(trs80m2_state, crtc_update_row)
|
||||
MCFG_MC6845_OUT_DE_CB(WRITELINE(*this, trs80m2_state, de_w))
|
||||
MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(*this, trs80m2_state, vsync_w))
|
||||
MC6845(config, m_crtc, 12.48_MHz_XTAL / 8);
|
||||
m_crtc->set_screen(SCREEN_TAG);
|
||||
m_crtc->set_show_border_area(true);
|
||||
m_crtc->set_char_width(8);
|
||||
m_crtc->set_update_row_callback(FUNC(trs80m2_state::crtc_update_row), this);
|
||||
m_crtc->out_de_callback().set(FUNC(trs80m2_state::de_w));
|
||||
m_crtc->out_vsync_callback().set(FUNC(trs80m2_state::vsync_w));
|
||||
|
||||
// devices
|
||||
FD1791(config, m_fdc, 8_MHz_XTAL / 4);
|
||||
|
@ -783,11 +783,12 @@ MACHINE_CONFIG_START(tvc_state::tvc)
|
||||
MCFG_PALETTE_ADD( "palette", 16 )
|
||||
MCFG_PALETTE_INIT_OWNER(tvc_state, tvc)
|
||||
|
||||
MCFG_MC6845_ADD("crtc", MC6845, "screen", 3125000/2) // clk taken from schematics
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8) /*?*/
|
||||
MCFG_MC6845_UPDATE_ROW_CB(tvc_state, crtc_update_row)
|
||||
MCFG_MC6845_OUT_CUR_CB(WRITELINE(*this, tvc_state, int_ff_set))
|
||||
mc6845_device &crtc(MC6845(config, "crtc", 3125000/2)); // clk taken from schematics
|
||||
crtc.set_screen("screen");
|
||||
crtc.set_show_border_area(false);
|
||||
crtc.set_char_width(8); /*?*/
|
||||
crtc.set_update_row_callback(FUNC(tvc_state::crtc_update_row), this);
|
||||
crtc.out_cur_callback().set(FUNC(tvc_state::int_ff_set));
|
||||
|
||||
/* internal ram */
|
||||
RAM(config, RAM_TAG).set_default_size("64K").set_extra_options("32K");
|
||||
|
@ -674,12 +674,12 @@ MACHINE_CONFIG_START(vt240_state::vt240)
|
||||
MCFG_PALETTE_ADD("palette", 32)
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_vt240)
|
||||
|
||||
MCFG_DEVICE_ADD("upd7220", UPD7220, XTAL(16'097'280) / 16) // actually /8?
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, upd7220_map)
|
||||
MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(vt240_state, hgdc_draw)
|
||||
MCFG_UPD7220_VSYNC_CALLBACK(INPUTLINE("charcpu", I8085_RST75_LINE))
|
||||
MCFG_UPD7220_BLANK_CALLBACK(INPUTLINE("charcpu", I8085_RST55_LINE))
|
||||
MCFG_VIDEO_SET_SCREEN("screen")
|
||||
UPD7220(config, m_hgdc, XTAL(16'097'280) / 16); // actually /8?
|
||||
m_hgdc->set_addrmap(0, &vt240_state::upd7220_map);
|
||||
m_hgdc->set_display_pixels_callback(FUNC(vt240_state::hgdc_draw), this);
|
||||
m_hgdc->vsync_wr_callback().set_inputline(m_i8085, I8085_RST75_LINE);
|
||||
m_hgdc->blank_wr_callback().set_inputline(m_i8085, I8085_RST55_LINE);
|
||||
m_hgdc->set_screen("screen");
|
||||
|
||||
MCFG_DEVICE_ADD(m_duart, SCN2681, XTAL(7'372'800) / 2)
|
||||
MCFG_MC68681_IRQ_CALLBACK(WRITELINE(*this, vt240_state, irq13_w))
|
||||
|
@ -2235,9 +2235,10 @@ MACHINE_CONFIG_START(x1_state::x1)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(x1_state, screen_update_x1)
|
||||
|
||||
MCFG_MC6845_ADD("crtc", H46505, "screen", (VDP_CLOCK/48)) //unknown divider
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(true)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
H46505(config, m_crtc, (VDP_CLOCK/48)); //unknown divider
|
||||
m_crtc->set_screen(m_screen);
|
||||
m_crtc->set_show_border_area(true);
|
||||
m_crtc->set_char_width(8);
|
||||
|
||||
MCFG_PALETTE_ADD("palette", 0x10+0x1000)
|
||||
MCFG_PALETTE_INIT_OWNER(x1_state,x1)
|
||||
|
@ -465,9 +465,10 @@ MACHINE_CONFIG_START(x1twin_state::x1twin)
|
||||
MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK/2, huc6260_device::WPF, 70, 70 + 512 + 32, huc6260_device::LPF, 14, 14+242)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(x1twin_state, screen_update_x1pce)
|
||||
|
||||
MCFG_MC6845_ADD("crtc", H46505, "screen", (VDP_CLOCK/48)) //unknown divider
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(true)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
H46505(config, m_crtc, (VDP_CLOCK/48)); //unknown divider
|
||||
m_crtc->set_screen(m_screen);
|
||||
m_crtc->set_show_border_area(true);
|
||||
m_crtc->set_char_width(8);
|
||||
|
||||
MCFG_PALETTE_ADD("palette", 0x10+0x1000)
|
||||
MCFG_PALETTE_INIT_OWNER(x1twin_state,x1)
|
||||
|
@ -693,9 +693,10 @@ MACHINE_CONFIG_START(z100_state::z100)
|
||||
MCFG_PALETTE_ADD("palette", 8)
|
||||
|
||||
/* devices */
|
||||
MCFG_MC6845_ADD("crtc", MC6845, "screen", 14.318181_MHz_XTAL / 8) /* unknown clock, hand tuned to get ~50/~60 fps */
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MC6845(config, m_crtc, 14.318181_MHz_XTAL / 8); /* unknown clock, hand tuned to get ~50/~60 fps */
|
||||
m_crtc->set_screen("screen");
|
||||
m_crtc->set_show_border_area(false);
|
||||
m_crtc->set_char_width(8);
|
||||
|
||||
PIC8259(config, m_picm, 0);
|
||||
m_picm->out_int_callback().set_inputline(m_maincpu, 0);
|
||||
|
@ -67,7 +67,7 @@ void mm1_state::mm1_upd7220_map(address_map &map)
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// UPD7220_INTERFACE( hgdc_intf )
|
||||
// UPD7220 callbacks
|
||||
//-------------------------------------------------
|
||||
|
||||
UPD7220_DISPLAY_PIXELS_MEMBER( mm1_state::hgdc_display_pixels )
|
||||
@ -148,8 +148,8 @@ MACHINE_CONFIG_START(mm1_state::mm1m6_video)
|
||||
MCFG_I8275_VRTC_CALLBACK(WRITELINE(UPD7220_TAG, upd7220_device, ext_sync_w))
|
||||
MCFG_VIDEO_SET_SCREEN(SCREEN_TAG)
|
||||
|
||||
MCFG_DEVICE_ADD(UPD7220_TAG, UPD7220, XTAL(18'720'000)/8)
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, mm1_upd7220_map)
|
||||
MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(mm1_state, hgdc_display_pixels)
|
||||
MCFG_VIDEO_SET_SCREEN(SCREEN_TAG)
|
||||
UPD7220(config, m_hgdc, XTAL(18'720'000)/8);
|
||||
m_hgdc->set_addrmap(0, &mm1_state::mm1_upd7220_map);
|
||||
m_hgdc->set_display_pixels_callback(FUNC(mm1_state::hgdc_display_pixels), this);
|
||||
m_hgdc->set_screen(SCREEN_TAG);
|
||||
MACHINE_CONFIG_END
|
||||
|
@ -116,42 +116,46 @@ void pc_t1t_device::vram_map(address_map &map)
|
||||
map(0x20000, 0x3ffff).noprw();
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(pcvideo_t1000_device::device_add_mconfig)
|
||||
MCFG_SCREEN_ADD(T1000_SCREEN_NAME, RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(XTAL(14'318'181),912,0,640,262,0,200)
|
||||
MCFG_SCREEN_UPDATE_DEVICE( T1000_MC6845_NAME, mc6845_device, screen_update )
|
||||
void pcvideo_t1000_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
screen_device &screen(SCREEN(config, T1000_SCREEN_NAME, SCREEN_TYPE_RASTER));
|
||||
screen.set_raw(XTAL(14'318'181),912,0,640,262,0,200);
|
||||
screen.set_screen_update(T1000_MC6845_NAME, FUNC(mc6845_device::screen_update));
|
||||
|
||||
MCFG_PALETTE_ADD( "palette", 32 )
|
||||
MCFG_PALETTE_INIT_OWNER(pc_t1t_device, pcjr)
|
||||
palette_device &palette(PALETTE(config, "palette", 32));
|
||||
palette.set_init(palette_init_delegate(FUNC(pc_t1t_device::palette_init_pcjr), this));
|
||||
|
||||
MCFG_MC6845_ADD(T1000_MC6845_NAME, MC6845, T1000_SCREEN_NAME, XTAL(14'318'181)/8)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(pc_t1t_device, crtc_update_row)
|
||||
MCFG_MC6845_OUT_DE_CB(WRITELINE(*this, pc_t1t_device, t1000_de_changed))
|
||||
MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(*this, pcvideo_t1000_device, t1000_vsync_changed))
|
||||
MC6845(config, m_mc6845, XTAL(14'318'181)/8);
|
||||
m_mc6845->set_screen(T1000_SCREEN_NAME);
|
||||
m_mc6845->set_show_border_area(false);
|
||||
m_mc6845->set_char_width(8);
|
||||
m_mc6845->set_update_row_callback(FUNC(pc_t1t_device::crtc_update_row), this);
|
||||
m_mc6845->out_de_callback().set(FUNC(pc_t1t_device::t1000_de_changed));
|
||||
m_mc6845->out_vsync_callback().set(FUNC(pcvideo_t1000_device::t1000_vsync_changed));
|
||||
|
||||
ADDRESS_MAP_BANK(config, m_vram).set_map(&pc_t1t_device::vram_map).set_options(ENDIANNESS_LITTLE, 8, 18, 0x4000);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(pcvideo_pcjr_device::device_add_mconfig)
|
||||
MCFG_SCREEN_ADD(T1000_SCREEN_NAME, RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(XTAL(14'318'181), 912, 0, 640, 262, 0, 200)
|
||||
MCFG_SCREEN_UPDATE_DEVICE( T1000_MC6845_NAME, mc6845_device, screen_update )
|
||||
void pcvideo_pcjr_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
screen_device &screen(SCREEN(config, T1000_SCREEN_NAME, SCREEN_TYPE_RASTER));
|
||||
screen.set_raw(XTAL(14'318'181), 912, 0, 640, 262, 0, 200);
|
||||
screen.set_screen_update(T1000_MC6845_NAME, FUNC(mc6845_device::screen_update));
|
||||
|
||||
MCFG_PALETTE_ADD( "palette", 32 )
|
||||
MCFG_PALETTE_INIT_OWNER(pc_t1t_device, pcjr)
|
||||
palette_device &palette(PALETTE(config, "palette", 32));
|
||||
palette.set_init(palette_init_delegate(FUNC(pc_t1t_device::palette_init_pcjr), this));
|
||||
|
||||
MCFG_MC6845_ADD(T1000_MC6845_NAME, MC6845, T1000_SCREEN_NAME, XTAL(14'318'181)/16)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(false)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(pcvideo_pcjr_device, crtc_update_row)
|
||||
MCFG_MC6845_OUT_DE_CB(WRITELINE(*this, pc_t1t_device, t1000_de_changed))
|
||||
MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(*this, pcvideo_pcjr_device, pcjr_vsync_changed))
|
||||
MC6845(config, m_mc6845, XTAL(14'318'181)/16);
|
||||
m_mc6845->set_screen(T1000_SCREEN_NAME);
|
||||
m_mc6845->set_show_border_area(false);
|
||||
m_mc6845->set_char_width(8);
|
||||
m_mc6845->set_update_row_callback(FUNC(pcvideo_pcjr_device::crtc_update_row), this);
|
||||
m_mc6845->out_de_callback().set(FUNC(pc_t1t_device::t1000_de_changed));
|
||||
m_mc6845->out_vsync_callback().set(FUNC(pcvideo_pcjr_device::pcjr_vsync_changed));
|
||||
|
||||
ADDRESS_MAP_BANK(config, m_vram).set_map(&pc_t1t_device::vram_map).set_options(ENDIANNESS_LITTLE, 8, 18, 0x4000);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
@ -110,11 +110,12 @@ void v1050_state::video_start()
|
||||
/* Machine Drivers */
|
||||
|
||||
MACHINE_CONFIG_START(v1050_state::v1050_video)
|
||||
MCFG_MC6845_ADD(H46505_TAG, H46505, SCREEN_TAG, 15.36_MHz_XTAL/8)
|
||||
MCFG_MC6845_SHOW_BORDER_AREA(true)
|
||||
MCFG_MC6845_CHAR_WIDTH(8)
|
||||
MCFG_MC6845_UPDATE_ROW_CB(v1050_state, crtc_update_row)
|
||||
MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(*this, v1050_state, crtc_vs_w))
|
||||
H46505(config, m_crtc, 15.36_MHz_XTAL/8);
|
||||
m_crtc->set_screen(SCREEN_TAG);
|
||||
m_crtc->set_show_border_area(true);
|
||||
m_crtc->set_char_width(8);
|
||||
m_crtc->set_update_row_callback(FUNC(v1050_state::crtc_update_row), this);
|
||||
m_crtc->out_vsync_callback().set(FUNC(v1050_state::crtc_vs_w));
|
||||
|
||||
MCFG_SCREEN_ADD_MONOCHROME(SCREEN_TAG, RASTER, rgb_t::green())
|
||||
MCFG_SCREEN_UPDATE_DEVICE(H46505_TAG, h46505_device, screen_update)
|
||||
|
Loading…
Reference in New Issue
Block a user