mirror of
https://github.com/holub/mame
synced 2025-04-23 08:49:55 +03:00
tms9927: Eliminate MCFG macros and register_postload; remove "wr_" from callback getters (nw)
This commit is contained in:
parent
6002d0718f
commit
445c6e1461
@ -91,9 +91,7 @@ void tms9927_device::device_start()
|
||||
m_vsync_timer = timer_alloc(TIMER_VSYNC);
|
||||
m_hsync_timer = timer_alloc(TIMER_HSYNC);
|
||||
|
||||
/* register for state saving */
|
||||
machine().save().register_postload(save_prepost_delegate(FUNC(tms9927_device::state_postload), this));
|
||||
|
||||
// register for state saving
|
||||
save_item(NAME(m_reg));
|
||||
save_item(NAME(m_start_datarow));
|
||||
save_item(NAME(m_reset));
|
||||
@ -181,7 +179,7 @@ void tms9927_device::device_timer(emu_timer &timer, device_timer_id id, int para
|
||||
}
|
||||
}
|
||||
|
||||
void tms9927_device::state_postload()
|
||||
void tms9927_device::device_post_load()
|
||||
{
|
||||
recompute_parameters(true);
|
||||
}
|
||||
|
@ -10,30 +10,13 @@
|
||||
#define MAME_VIDEO_TMS9927_H
|
||||
|
||||
|
||||
#define MCFG_TMS9927_VSYN_CALLBACK(_write) \
|
||||
downcast<tms9927_device &>(*device).set_vsyn_wr_callback(DEVCB_##_write);
|
||||
|
||||
#define MCFG_TMS9927_HSYN_CALLBACK(_write) \
|
||||
downcast<tms9927_device &>(*device).set_hsyn_wr_callback(DEVCB_##_write);
|
||||
|
||||
#define MCFG_TMS9927_CHAR_WIDTH(_pixels) \
|
||||
downcast<tms9927_device &>(*device).set_char_width(_pixels);
|
||||
|
||||
#define MCFG_TMS9927_REGION(_tag) \
|
||||
downcast<tms9927_device &>(*device).set_region_tag(_tag);
|
||||
|
||||
#define MCFG_TMS9927_OVERSCAN(_left, _right, _top, _bottom) \
|
||||
downcast<tms9927_device &>(*device).set_overscan(_left, _right, _top, _bottom);
|
||||
|
||||
class tms9927_device : public device_t, public device_video_interface
|
||||
{
|
||||
public:
|
||||
tms9927_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
template <class Object> devcb_base &set_vsyn_wr_callback(Object &&cb) { return m_write_vsyn.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_hsyn_wr_callback(Object &&cb) { return m_write_hsyn.set_callback(std::forward<Object>(cb)); }
|
||||
auto vsyn_wr_callback() { return m_write_vsyn.bind(); }
|
||||
auto hsyn_wr_callback() { return m_write_hsyn.bind(); }
|
||||
auto vsyn_callback() { return m_write_vsyn.bind(); }
|
||||
auto hsyn_callback() { return m_write_hsyn.bind(); }
|
||||
|
||||
void set_char_width(int pixels) { m_hpixels_per_column = pixels; }
|
||||
void set_region_tag(const char *tag) { m_selfload.set_tag(tag); }
|
||||
@ -62,6 +45,7 @@ protected:
|
||||
virtual void device_reset() override;
|
||||
virtual void device_clock_changed() override;
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
|
||||
virtual void device_post_load() override;
|
||||
|
||||
private:
|
||||
enum
|
||||
@ -70,7 +54,6 @@ private:
|
||||
TIMER_HSYNC
|
||||
};
|
||||
|
||||
void state_postload();
|
||||
void recompute_parameters(bool postload);
|
||||
void generic_access(address_space &space, offs_t offset);
|
||||
|
||||
|
@ -1229,8 +1229,8 @@ MACHINE_CONFIG_START(alphatp_12_state::alphatp2)
|
||||
|
||||
CRT5027(config, m_crtc, 12.8544_MHz_XTAL / 8);
|
||||
m_crtc->set_char_width(8);
|
||||
m_crtc->hsyn_wr_callback().set_inputline("maincpu", I8085_RST55_LINE);
|
||||
m_crtc->vsyn_wr_callback().set_inputline("maincpu", I8085_RST65_LINE).exor(1);
|
||||
m_crtc->hsyn_callback().set_inputline("maincpu", I8085_RST55_LINE);
|
||||
m_crtc->vsyn_callback().set_inputline("maincpu", I8085_RST65_LINE).exor(1);
|
||||
m_crtc->set_screen("screen");
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_alphatp3)
|
||||
@ -1306,7 +1306,7 @@ MACHINE_CONFIG_START(alphatp_34_state::alphatp3)
|
||||
|
||||
CRT5037(config, m_crtc, 12.8544_MHz_XTAL / 8);
|
||||
m_crtc->set_char_width(8);
|
||||
m_crtc->vsyn_wr_callback().set_inputline("maincpu", I8085_RST65_LINE).exor(1);
|
||||
m_crtc->vsyn_callback().set_inputline("maincpu", I8085_RST65_LINE).exor(1);
|
||||
m_crtc->set_screen("screen");
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_alphatp3)
|
||||
|
@ -31,6 +31,7 @@ public:
|
||||
ampex_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_vtac(*this, "vtac")
|
||||
, m_uart(*this, "uart")
|
||||
, m_dbrg(*this, "dbrg")
|
||||
, m_p_chargen(*this, "chargen")
|
||||
@ -68,6 +69,7 @@ private:
|
||||
std::unique_ptr<u16[]> m_paged_ram;
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<crt5037_device> m_vtac;
|
||||
required_device<ay31015_device> m_uart;
|
||||
required_device<com8116_device> m_dbrg;
|
||||
required_region_ptr<u8> m_p_chargen;
|
||||
@ -170,7 +172,7 @@ void ampex_state::mem_map(address_map &map)
|
||||
map(0x5843, 0x5843).r(m_uart, FUNC(ay31015_device::receive)).w(FUNC(ampex_state::write_5843));
|
||||
map(0x5846, 0x5846).r(FUNC(ampex_state::read_5846));
|
||||
map(0x5847, 0x5847).r(FUNC(ampex_state::read_5847));
|
||||
map(0x5c00, 0x5c0f).rw("vtac", FUNC(crt5037_device::read), FUNC(crt5037_device::write));
|
||||
map(0x5c00, 0x5c0f).rw(m_vtac, FUNC(crt5037_device::read), FUNC(crt5037_device::write));
|
||||
map(0x8000, 0x97ff).rw(FUNC(ampex_state::page_r), FUNC(ampex_state::page_w));
|
||||
map(0xc000, 0xcfff).ram(); // video RAM
|
||||
}
|
||||
@ -207,18 +209,19 @@ void ampex_state::machine_start()
|
||||
save_pointer(NAME(m_paged_ram), 0x1800 * 4);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(ampex_state::ampex)
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, XTAL(23'814'000) / 9) // clocked by 8224?
|
||||
MCFG_DEVICE_PROGRAM_MAP(mem_map)
|
||||
void ampex_state::ampex(machine_config &config)
|
||||
{
|
||||
Z80(config, m_maincpu, 23.814_MHz_XTAL / 9); // clocked by 8224?
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &ex_state::mem_map);
|
||||
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_raw(23.814_MHz_XTAL / 2, 105 * CHAR_WIDTH, 0, 80 * CHAR_WIDTH, 270, 0, 250);
|
||||
screen.set_screen_update(FUNC(ampex_state::screen_update));
|
||||
|
||||
MCFG_DEVICE_ADD("vtac", CRT5037, XTAL(23'814'000) / 2 / CHAR_WIDTH)
|
||||
MCFG_TMS9927_CHAR_WIDTH(CHAR_WIDTH)
|
||||
MCFG_TMS9927_VSYN_CALLBACK(WRITELINE(*this, ampex_state, vsyn_w))
|
||||
MCFG_VIDEO_SET_SCREEN("screen")
|
||||
CRT5037(config, m_vtac, 23.814_MHz_XTAL / 2 / CHAR_WIDTH);
|
||||
m_vtac->set_char_width(CHAR_WIDTH);
|
||||
m_vtac->vsyn_callback().set(FUNC(ampex_state::vsyn_w));
|
||||
m_vtac->set_screen("screen");
|
||||
|
||||
AY31015(config, m_uart, 0); // COM8017, actually
|
||||
m_uart->write_so_callback().set(FUNC(ampex_state::so_w));
|
||||
@ -228,7 +231,7 @@ MACHINE_CONFIG_START(ampex_state::ampex)
|
||||
COM5016_5(config, m_dbrg, 4.9152_MHz_XTAL);
|
||||
m_dbrg->fr_handler().set(m_uart, FUNC(ay31015_device::write_rcp));
|
||||
m_dbrg->ft_handler().set(m_uart, FUNC(ay31015_device::write_tcp));
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
ROM_START( dialog80 )
|
||||
ROM_REGION( 0x3000, "roms", 0 )
|
||||
|
@ -1187,10 +1187,10 @@ MACHINE_CONFIG_START(attache_state::attache)
|
||||
FLOPPY_CONNECTOR(config, "fdc:0", attache_floppies, "525dd", floppy_image_device::default_floppy_formats);
|
||||
FLOPPY_CONNECTOR(config, "fdc:1", attache_floppies, "525dd", floppy_image_device::default_floppy_formats);
|
||||
|
||||
MCFG_DEVICE_ADD("crtc", TMS9927, 12324000 / 8)
|
||||
MCFG_TMS9927_CHAR_WIDTH(8)
|
||||
MCFG_TMS9927_VSYN_CALLBACK(WRITELINE("ctc", z80ctc_device, trg2))
|
||||
MCFG_VIDEO_SET_SCREEN("screen")
|
||||
TMS9927(config, m_crtc, 12.324_MHz_XTAL / 8);
|
||||
m_crtc->set_char_width(8);
|
||||
m_crtc->vsyn_callback().set(m_ctc, FUNC(z80ctc_device::trg2));
|
||||
m_crtc->set_screen("screen");
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
||||
@ -1277,10 +1277,10 @@ MACHINE_CONFIG_START(attache816_state::attache816)
|
||||
FLOPPY_CONNECTOR(config, "fdc:0", attache_floppies, "525dd", floppy_image_device::default_floppy_formats);
|
||||
FLOPPY_CONNECTOR(config, "fdc:1", attache_floppies, "525dd", floppy_image_device::default_floppy_formats);
|
||||
|
||||
MCFG_DEVICE_ADD("crtc", TMS9927, 12324000)
|
||||
MCFG_TMS9927_CHAR_WIDTH(8)
|
||||
MCFG_TMS9927_VSYN_CALLBACK(WRITELINE("ctc", z80ctc_device, trg2))
|
||||
MCFG_VIDEO_SET_SCREEN("screen")
|
||||
TMS9927(config, m_crtc, 12.324_MHz_XTAL / 8);
|
||||
m_crtc->set_char_width(8);
|
||||
m_crtc->vsyn_callback().set(m_ctc, FUNC(z80ctc_device::trg2));
|
||||
m_crtc->set_screen("screen");
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
||||
|
@ -31,6 +31,7 @@ public:
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_bank_16k(*this, {"block0", "block4", "block8", "blockc"})
|
||||
, m_crtc(*this, "crtc")
|
||||
, m_rom_chargen(*this, "chargen")
|
||||
, m_ram_chargen(*this, "chargen")
|
||||
, m_videoram(*this, "videoram")
|
||||
@ -72,6 +73,7 @@ private:
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device_array<address_map_bank_device, 4> m_bank_16k;
|
||||
required_device<crt5037_device> m_crtc;
|
||||
required_region_ptr<u8> m_rom_chargen;
|
||||
required_shared_ptr<u8> m_ram_chargen;
|
||||
required_shared_ptr<u8> m_videoram;
|
||||
@ -326,8 +328,7 @@ MACHINE_CONFIG_START(cdc721_state::cdc721)
|
||||
MCFG_PALETTE_INIT_OWNER(cdc721_state, cdc721)
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_cdc721)
|
||||
|
||||
MCFG_DEVICE_ADD("crtc", CRT5037, 12.936_MHz_XTAL / 8)
|
||||
MCFG_TMS9927_CHAR_WIDTH(8)
|
||||
CRT5037(config, m_crtc, 12.936_MHz_XTAL / 8).set_char_width(8);
|
||||
|
||||
z80ctc_device& ctc(Z80CTC(config, "ctc", 6_MHz_XTAL)); // Zilog Z8430B (M1 pulled up)
|
||||
ctc.intr_callback().set(FUNC(cdc721_state::int_w<6>));
|
||||
|
@ -409,12 +409,12 @@ MACHINE_CONFIG_START(compucolor2_state::compucolor2)
|
||||
|
||||
MCFG_PALETTE_ADD_3BIT_RGB("palette")
|
||||
|
||||
MCFG_DEVICE_ADD(CRT5027_TAG, CRT5027, XTAL(17'971'200)/2/6)
|
||||
MCFG_TMS9927_CHAR_WIDTH(6)
|
||||
MCFG_TMS9927_VSYN_CALLBACK(WRITELINE("blink", ripple_counter_device, clock_w))
|
||||
MCFG_VIDEO_SET_SCREEN("screen")
|
||||
CRT5027(config, m_vtac, XTAL(17'971'200)/2/6);
|
||||
m_vtac->set_char_width(6);
|
||||
m_vtac->vsyn_callback().set("blink", FUNC(ripple_counter_device::clock_w));
|
||||
m_vtac->set_screen("screen");
|
||||
|
||||
ripple_counter_device &blink(RIPPLE_COUNTER(config, "blink", 0)); // 74LS393 at UG10
|
||||
ripple_counter_device &blink(RIPPLE_COUNTER(config, "blink")); // 74LS393 at UG10
|
||||
blink.set_stages(8);
|
||||
blink.count_out_cb().set(m_mioc, FUNC(tms5501_device::sens_w)).bit(4);
|
||||
|
||||
|
@ -556,10 +556,13 @@ MACHINE_CONFIG_START(intv_state::intvkbd)
|
||||
MCFG_PALETTE_INIT_OWNER(intv_state, intv)
|
||||
|
||||
/* crt controller */
|
||||
MCFG_DEVICE_ADD("crtc", TMS9927, XTAL(7'159'090)/8)
|
||||
MCFG_TMS9927_CHAR_WIDTH(8)
|
||||
MCFG_TMS9927_OVERSCAN(stic_device::OVERSCAN_LEFT_WIDTH*stic_device::X_SCALE*INTVKBD_X_SCALE, stic_device::OVERSCAN_RIGHT_WIDTH*stic_device::X_SCALE*INTVKBD_X_SCALE,
|
||||
stic_device::OVERSCAN_TOP_HEIGHT*stic_device::Y_SCALE*INTVKBD_Y_SCALE, stic_device::OVERSCAN_BOTTOM_HEIGHT*stic_device::Y_SCALE*INTVKBD_Y_SCALE)
|
||||
TMS9927(config, m_crtc, XTAL(7'159'090)/8);
|
||||
m_crtc->set_char_width(8);
|
||||
m_crtc->set_overscan(
|
||||
stic_device::OVERSCAN_LEFT_WIDTH*stic_device::X_SCALE*INTVKBD_X_SCALE,
|
||||
stic_device::OVERSCAN_RIGHT_WIDTH*stic_device::X_SCALE*INTVKBD_X_SCALE,
|
||||
stic_device::OVERSCAN_TOP_HEIGHT*stic_device::Y_SCALE*INTVKBD_Y_SCALE,
|
||||
stic_device::OVERSCAN_BOTTOM_HEIGHT*stic_device::Y_SCALE*INTVKBD_Y_SCALE);
|
||||
|
||||
MCFG_SCREEN_MODIFY("screen")
|
||||
MCFG_SCREEN_UPDATE_DRIVER(intv_state, screen_update_intvkbd)
|
||||
|
@ -724,8 +724,7 @@ MACHINE_CONFIG_START(itt3030_state::itt3030)
|
||||
/* devices */
|
||||
ADDRESS_MAP_BANK(config, "lowerbank").set_map(&itt3030_state::lower48_map).set_options(ENDIANNESS_LITTLE, 8, 20, 0xc000);
|
||||
|
||||
MCFG_DEVICE_ADD("crt5027", CRT5027, 6_MHz_XTAL / 8)
|
||||
MCFG_TMS9927_CHAR_WIDTH(8)
|
||||
CRT5027(config, m_crtc, 6_MHz_XTAL / 8).set_char_width(8);
|
||||
|
||||
FD1791(config, m_fdc, 20_MHz_XTAL / 20);
|
||||
m_fdc->intrq_wr_callback().set(FUNC(itt3030_state::fdcirq_w));
|
||||
|
@ -399,10 +399,10 @@ MACHINE_CONFIG_START(micral_state::micral)
|
||||
MCFG_PALETTE_ADD_MONOCHROME("palette")
|
||||
//MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_micral)
|
||||
|
||||
MCFG_DEVICE_ADD("crtc", CRT5037, 4000000 / 8) // xtal freq unknown
|
||||
MCFG_TMS9927_CHAR_WIDTH(8) // unknown
|
||||
//MCFG_TMS9927_VSYN_CALLBACK(WRITELINE(TMS5501_TAG, tms5501_device, sens_w))
|
||||
MCFG_VIDEO_SET_SCREEN("screen")
|
||||
CRT5037(config, m_crtc, 4000000 / 8); // xtal freq unknown
|
||||
m_crtc->set_char_width(8); // unknown
|
||||
//m_crtc->vsyn_callback().set(TMS5501_TAG, FUNC(tms5501_device::sens_w));
|
||||
m_crtc->set_screen("screen");
|
||||
|
||||
/* sound hardware */
|
||||
//MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
@ -831,7 +831,7 @@ MACHINE_CONFIG_START(notetaker_state::notetakr)
|
||||
MCFG_PALETTE_ADD_MONOCHROME("palette")
|
||||
|
||||
/* Devices */
|
||||
MCFG_DEVICE_ADD( "crt5027", CRT5027, (36_MHz_XTAL / 4) / 8) // See below
|
||||
CRT5027(config, m_crtc, (36_MHz_XTAL / 4) / 8); // See below
|
||||
/* the clock for the crt5027 is configurable rate; 36MHz xtal divided by 1*,
|
||||
2, 3, 4, 5, 6, 7, or 8 (* because this is a 74s163 this setting probably
|
||||
means divide by 1; documentation at
|
||||
@ -841,17 +841,17 @@ MACHINE_CONFIG_START(notetaker_state::notetakr)
|
||||
on reset, bitclk is 000 so divider is (36mhz/8)/8; during boot it is
|
||||
written with 101, changing the divider to (36mhz/4)/8 */
|
||||
// TODO: for now, we just hack it to the latter setting from start; this should be handled correctly in iop_reset();
|
||||
MCFG_TMS9927_CHAR_WIDTH(8) //(8 pixels per column/halfword, 16 pixels per fullword)
|
||||
m_crtc->set_char_width(8); //(8 pixels per column/halfword, 16 pixels per fullword)
|
||||
// TODO: below is HACKED to trigger the odd/even int ir4 instead of vblank int ir7 since ir4 is required for anything to be drawn to screen! hence with the hack this interrupt triggers twice as often as it should
|
||||
MCFG_TMS9927_VSYN_CALLBACK(WRITELINE("iop_pic8259", pic8259_device, ir4_w)) // note this triggers interrupts on both the iop (ir7) and emulatorcpu (ir4)
|
||||
MCFG_VIDEO_SET_SCREEN("screen")
|
||||
m_crtc->vsyn_callback().set("iop_pic8259", FUNC(pic8259_device::ir4_w)); // note this triggers interrupts on both the iop (ir7) and emulatorcpu (ir4)
|
||||
m_crtc->set_screen("screen");
|
||||
|
||||
AY31015(config, m_kbduart, 0); // HD6402, == AY-3-1015D
|
||||
AY31015(config, m_kbduart); // HD6402, == AY-3-1015D
|
||||
m_kbduart->set_rx_clock(960_kHz_XTAL); // hard-wired to 960KHz xtal #f11 (60000 baud, 16 clocks per baud)
|
||||
m_kbduart->set_tx_clock(960_kHz_XTAL); // hard-wired to 960KHz xtal #f11 (60000 baud, 16 clocks per baud)
|
||||
m_kbduart->write_dav_callback().set("iop_pic8259", FUNC(pic8259_device::ir6_w)); // DataRecvd = KbdInt
|
||||
|
||||
AY31015(config, m_eiauart, 0); // HD6402, == AY-3-1015D
|
||||
AY31015(config, m_eiauart); // HD6402, == AY-3-1015D
|
||||
m_eiauart->set_rx_clock(((960_kHz_XTAL/10)/4)/5); // hard-wired through an mc14568b divider set to divide by 4, the result set to divide by 5; this resulting 4800hz signal being 300 baud (16 clocks per baud)
|
||||
m_eiauart->set_tx_clock(((960_kHz_XTAL/10)/4)/5); // hard-wired through an mc14568b divider set to divide by 4, the result set to divide by 5; this resulting 4800hz signal being 300 baud (16 clocks per baud)
|
||||
m_eiauart->write_dav_callback().set("iop_pic8259", FUNC(pic8259_device::ir3_w)); // EIADataReady = EIAInt
|
||||
|
@ -630,8 +630,7 @@ MACHINE_CONFIG_START(statriv2_state::statriv2)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(statriv2_state, screen_update_statriv2)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_DEVICE_ADD("tms", TMS9927, MASTER_CLOCK/2/8)
|
||||
MCFG_TMS9927_CHAR_WIDTH(8)
|
||||
TMS9927(config, m_tms, MASTER_CLOCK/2/8).set_char_width(8);
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_horizontal)
|
||||
MCFG_PALETTE_ADD("palette", 2*64)
|
||||
|
@ -286,8 +286,7 @@ MACHINE_CONFIG_START(tdv2324_state::tdv2324)
|
||||
|
||||
MCFG_PALETTE_ADD_MONOCHROME("palette")
|
||||
|
||||
MCFG_DEVICE_ADD(TMS9937NL_TAG, TMS9927, 25.39836_MHz_XTAL / 8)
|
||||
MCFG_TMS9927_CHAR_WIDTH(8)
|
||||
TMS9927(config, m_tms, 25.39836_MHz_XTAL / 8).set_char_width(8);
|
||||
|
||||
// devices
|
||||
MCFG_DEVICE_ADD(P8259A_TAG, PIC8259, 0)
|
||||
|
@ -410,9 +410,10 @@ MACHINE_CONFIG_START(thief_state::thief)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(thief_state, screen_update_thief)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_DEVICE_ADD("tms", TMS9927, XTAL(20'000'000)/4/8)
|
||||
MCFG_TMS9927_CHAR_WIDTH(8)
|
||||
MCFG_TMS9927_VSYN_CALLBACK(ASSERTLINE("maincpu", 0))
|
||||
TMS9927(config, m_tms, XTAL(20'000'000)/4/8);
|
||||
m_tms->set_char_width(8);
|
||||
m_tms->vsyn_callback().set_inputline("maincpu", 0, ASSERT_LINE);
|
||||
|
||||
MCFG_PALETTE_ADD("palette", 16)
|
||||
|
||||
// sound hardware
|
||||
|
@ -896,7 +896,7 @@ void tv912_state::tv912(machine_config &config)
|
||||
|
||||
TMS9927(config, m_crtc, 23.814_MHz_XTAL / CHAR_WIDTH);
|
||||
m_crtc->set_char_width(CHAR_WIDTH);
|
||||
m_crtc->vsyn_wr_callback().set_inputline(m_maincpu, MCS48_INPUT_IRQ);
|
||||
m_crtc->vsyn_callback().set_inputline(m_maincpu, MCS48_INPUT_IRQ);
|
||||
m_crtc->set_screen("screen");
|
||||
|
||||
AY51013(config, m_uart);
|
||||
|
@ -371,8 +371,8 @@ MACHINE_CONFIG_START(v100_state::v100)
|
||||
CRT5037(config, m_vtac, XTAL(47'736'000) / CHAR_WIDTH);
|
||||
m_vtac->set_char_width(CHAR_WIDTH);
|
||||
m_vtac->set_screen("screen");
|
||||
m_vtac->hsyn_wr_callback().set(FUNC(v100_state::picu_r_w<7>)).invert();
|
||||
m_vtac->vsyn_wr_callback().set(FUNC(v100_state::picu_r_w<6>)).invert();
|
||||
m_vtac->hsyn_callback().set(FUNC(v100_state::picu_r_w<7>)).invert();
|
||||
m_vtac->vsyn_callback().set(FUNC(v100_state::picu_r_w<6>)).invert();
|
||||
|
||||
I8214(config, m_picu, XTAL(47'736'000) / 12);
|
||||
m_picu->int_wr_callback().set_inputline(m_maincpu, 0, ASSERT_LINE);
|
||||
|
Loading…
Reference in New Issue
Block a user