tms99xx: Checked min/max cycles, reverted tms9980a clock change.

This commit is contained in:
Michael Zapf 2019-04-15 22:31:03 +02:00
parent 86f0b315b6
commit 708193c747
4 changed files with 31 additions and 9 deletions

View File

@ -2746,15 +2746,22 @@ void tms99xx_device::alu_int()
}
/**************************************************************************/
/*
The minimum number of cycles applies to a command like STWP R0.
*/
uint32_t tms99xx_device::execute_min_cycles() const
{
return 2;
return 8;
}
// TODO: Compute this value, just a wild guess for the average
/*
The maximum number of cycles applies to a DIV command, depending on the
data to be divided, and the mode of adressing.
*/
uint32_t tms99xx_device::execute_max_cycles() const
{
return 10;
return 124;
}
uint32_t tms99xx_device::execute_input_lines() const

View File

@ -80,7 +80,6 @@
/****************************************************************************
Constructor
****************************************************************************/
tms9980a_device::tms9980a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
: tms99xx_device(mconfig, type, tag, 8, 14, 11, owner, clock)
{
@ -277,15 +276,22 @@ void tms9980a_device::acquire_instruction()
/**************************************************************************/
/*
The minimum number of cycles applies to a command like STWP R0.
*/
uint32_t tms9980a_device::execute_min_cycles() const
{
return 2;
return 12;
}
// TODO: Compute this value, just a wild guess for the average
/*
The maximum number of cycles applies to a DIV command, depending on the
data to be divided, and the mode of adressing.
*/
uint32_t tms9980a_device::execute_max_cycles() const
{
return 10;
return 136;
}
uint32_t tms9980a_device::execute_input_lines() const

View File

@ -46,6 +46,7 @@ protected:
uint32_t execute_input_lines() const override;
void execute_set_input(int irqline, int state) override;
// The clock is internally divided by 4
virtual uint64_t execute_clocks_to_cycles(uint64_t clocks) const override { return (clocks + 4 - 1) / 4; }
virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const override { return (cycles * 4); }

View File

@ -3471,14 +3471,22 @@ void tms9995_device::alu_int()
}
/**************************************************************************/
/*
The minimum number of cycles applies to a command like SETO R0 with
R0 in on-chip RAM.
*/
uint32_t tms9995_device::execute_min_cycles() const
{
return 2;
return 3;
}
/*
The maximum number of cycles applies to a STCR command with the destination
operand off-chip and 16 bits of transfer.
*/
uint32_t tms9995_device::execute_max_cycles() const
{
return 44;
return 47;
}
uint32_t tms9995_device::execute_input_lines() const