tms9927: Configure using character clock rather than dot clock

This commit is contained in:
AJR 2018-02-28 18:04:30 -05:00
parent cbe301c460
commit 5c8b9fc33d
14 changed files with 15 additions and 16 deletions

View File

@ -128,7 +128,7 @@ void tms9927_device::device_clock_changed()
void tms9927_device::device_stop()
{
osd_printf_debug("TMS9927: Final params: (%d, %d, %d, %d, %d, %d, %d)\n",
clock(),
clock() * m_hpixels_per_column,
m_total_hpix,
0, m_visible_hpix,
m_total_vpix,
@ -351,7 +351,7 @@ void tms9927_device::recompute_parameters(bool postload)
rectangle visarea(0, m_overscan_left + m_visible_hpix + m_overscan_right - 1,
0, m_overscan_top + m_visible_vpix + m_overscan_bottom - 1);
attoseconds_t refresh = clocks_to_attotime(m_total_hpix * m_total_vpix).as_attoseconds();
attoseconds_t refresh = clocks_to_attotime(HCOUNT * m_total_vpix).as_attoseconds();
osd_printf_debug("TMS9927: Total = %dx%d, Visible = %dx%d, HSync = %d-%d, VSync = %d-%d, Skew=%d, Upscroll=%d, Period=%f Hz\n", m_total_hpix, m_total_vpix, m_visible_hpix, m_visible_vpix, m_hsyn_start, m_hsyn_end, m_vsyn_start, m_vsyn_end, SKEW_BITS, m_start_datarow, ATTOSECONDS_TO_HZ(refresh));

View File

@ -1220,7 +1220,7 @@ MACHINE_CONFIG_START(alphatp_12_state::alphatp2)
MCFG_PALETTE_ADD_MONOCHROME("palette")
MCFG_DEVICE_ADD("crtc", CRT5027, XTAL(12'854'400))
MCFG_DEVICE_ADD("crtc", CRT5027, XTAL(12'854'400) / 8)
MCFG_TMS9927_CHAR_WIDTH(8)
MCFG_TMS9927_HSYN_CALLBACK(INPUTLINE("maincpu", I8085_RST55_LINE))
MCFG_TMS9927_VSYN_CALLBACK(INPUTLINE("maincpu", I8085_RST65_LINE)) MCFG_DEVCB_XOR(1)

View File

@ -206,8 +206,7 @@ MACHINE_CONFIG_START(ampex_state::ampex)
MCFG_SCREEN_RAW_PARAMS(XTAL(23'814'000) / 2, 105 * CHAR_WIDTH, 0, 80 * CHAR_WIDTH, 270, 0, 250)
MCFG_SCREEN_UPDATE_DRIVER(ampex_state, screen_update)
// FIXME: dot clock should be divided by char width
MCFG_DEVICE_ADD("vtac", CRT5037, XTAL(23'814'000) / 2)
MCFG_DEVICE_ADD("vtac", CRT5037, XTAL(23'814'000) / 2 / CHAR_WIDTH)
MCFG_TMS9927_CHAR_WIDTH(CHAR_WIDTH)
MCFG_TMS9927_VSYN_CALLBACK(WRITELINE(ampex_state, vsyn_w))
MCFG_VIDEO_SET_SCREEN("screen")

View File

@ -1167,7 +1167,7 @@ MACHINE_CONFIG_START(attache_state::attache)
MCFG_FLOPPY_DRIVE_ADD("fdc:0", attache_floppies, "525dd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", attache_floppies, "525dd", floppy_image_device::default_floppy_formats)
MCFG_DEVICE_ADD("crtc", TMS9927, 12324000)
MCFG_DEVICE_ADD("crtc", TMS9927, 12324000 / 8)
MCFG_TMS9927_CHAR_WIDTH(8)
MCFG_TMS9927_VSYN_CALLBACK(DEVWRITELINE("ctc", z80ctc_device, trg2))

View File

@ -161,7 +161,7 @@ MACHINE_CONFIG_START(cdc721_state::cdc721)
MCFG_PALETTE_INIT_OWNER(cdc721_state, cdc721)
MCFG_GFXDECODE_ADD("gfxdecode", "palette", cdc721)
MCFG_DEVICE_ADD("crtc", TMS9927, 2000000) // clock guess
MCFG_DEVICE_ADD("crtc", TMS9927, 2000000 / 8) // clock guess
MCFG_TMS9927_CHAR_WIDTH(8)
MACHINE_CONFIG_END

View File

@ -406,7 +406,7 @@ MACHINE_CONFIG_START(compucolor2_state::compucolor2)
MCFG_PALETTE_ADD_3BIT_RGB("palette")
MCFG_DEVICE_ADD(CRT5027_TAG, CRT5027, XTAL(17'971'200)/2)
MCFG_DEVICE_ADD(CRT5027_TAG, CRT5027, XTAL(17'971'200)/2/6)
MCFG_TMS9927_CHAR_WIDTH(6)
MCFG_TMS9927_VSYN_CALLBACK(DEVWRITELINE("blink", ripple_counter_device, clock_w))
MCFG_VIDEO_SET_SCREEN("screen")

View File

@ -550,7 +550,7 @@ MACHINE_CONFIG_START(intv_state::intvkbd)
MCFG_PALETTE_INIT_OWNER(intv_state, intv)
/* crt controller */
MCFG_DEVICE_ADD("crtc", TMS9927, XTAL(7'159'090))
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)

View File

@ -722,7 +722,7 @@ MACHINE_CONFIG_START(itt3030_state::itt3030)
MCFG_ADDRESS_MAP_BANK_ADDR_WIDTH(20)
MCFG_ADDRESS_MAP_BANK_STRIDE(0xc000)
MCFG_DEVICE_ADD("crt5027", CRT5027, XTAL(6'000'000))
MCFG_DEVICE_ADD("crt5027", CRT5027, XTAL(6'000'000) / 8)
MCFG_TMS9927_CHAR_WIDTH(8)
MCFG_FD1791_ADD("fdc", XTAL(20'000'000) / 20)

View File

@ -392,7 +392,7 @@ MACHINE_CONFIG_START(micral_state::micral)
MCFG_PALETTE_ADD_MONOCHROME("palette")
//MCFG_GFXDECODE_ADD("gfxdecode", "palette", micral)
MCFG_DEVICE_ADD("crtc", CRT5037, 4000000) // xtal freq unknown
MCFG_DEVICE_ADD("crtc", CRT5037, 4000000 / 8) // xtal freq unknown
MCFG_TMS9927_CHAR_WIDTH(8) // unknown
//MCFG_TMS9927_VSYN_CALLBACK(DEVWRITELINE(TMS5501_TAG, tms5501_device, sens_w))
MCFG_VIDEO_SET_SCREEN("screen")

View File

@ -620,7 +620,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)
MCFG_DEVICE_ADD("tms", TMS9927, MASTER_CLOCK/2/8)
MCFG_TMS9927_CHAR_WIDTH(8)
MCFG_GFXDECODE_ADD("gfxdecode", "palette", horizontal)

View File

@ -279,7 +279,7 @@ MACHINE_CONFIG_START(tdv2324_state::tdv2324)
MCFG_PALETTE_ADD_MONOCHROME("palette")
MCFG_DEVICE_ADD(TMS9937NL_TAG, TMS9927, XTAL(25'398'360))
MCFG_DEVICE_ADD(TMS9937NL_TAG, TMS9927, XTAL(25'398'360) / 8)
MCFG_TMS9927_CHAR_WIDTH(8)
// devices

View File

@ -407,7 +407,7 @@ 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)
MCFG_DEVICE_ADD("tms", TMS9927, XTAL(20'000'000)/4/8)
MCFG_TMS9927_CHAR_WIDTH(8)
MCFG_TMS9927_VSYN_CALLBACK(ASSERTLINE("maincpu", 0))
MCFG_PALETTE_ADD("palette", 16)

View File

@ -903,7 +903,7 @@ MACHINE_CONFIG_START(tv912_state::tv912)
MCFG_SCREEN_RAW_PARAMS(XTAL(23'814'000), 105 * CHAR_WIDTH, 0, 80 * CHAR_WIDTH, 270, 0, 240)
MCFG_SCREEN_UPDATE_DRIVER(tv912_state, screen_update)
MCFG_DEVICE_ADD("crtc", TMS9927, XTAL(23'814'000))
MCFG_DEVICE_ADD("crtc", TMS9927, XTAL(23'814'000) / CHAR_WIDTH)
MCFG_TMS9927_CHAR_WIDTH(CHAR_WIDTH)
MCFG_TMS9927_VSYN_CALLBACK(INPUTLINE("maincpu", MCS48_INPUT_IRQ))
MCFG_VIDEO_SET_SCREEN("screen")

View File

@ -388,7 +388,7 @@ MACHINE_CONFIG_START(v100_state::v100)
MCFG_SCREEN_UPDATE_DRIVER(v100_state, screen_update)
// FIXME: dot clock should be divided by char width
MCFG_DEVICE_ADD("vtac", CRT5037, XTAL(47'736'000))
MCFG_DEVICE_ADD("vtac", CRT5037, XTAL(47'736'000) / CHAR_WIDTH)
MCFG_TMS9927_CHAR_WIDTH(CHAR_WIDTH)
MCFG_VIDEO_SET_SCREEN("screen")
MCFG_TMS9927_HSYN_CALLBACK(WRITELINE(v100_state, picu_r_w<7>)) MCFG_DEVCB_INVERT