mirror of
https://github.com/holub/mame
synced 2025-04-22 16:31:49 +03:00
tms99xx: Checked min/max cycles, reverted tms9980a clock change.
This commit is contained in:
parent
86f0b315b6
commit
708193c747
@ -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
|
||||
|
@ -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
|
||||
|
@ -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); }
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user