mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
novag_const: darker button panel background,
fdelity clockdiv: remove dummy bg timer
This commit is contained in:
parent
2a3d90ea7e
commit
83abe16d5b
@ -2,15 +2,10 @@
|
||||
// copyright-holders:hap
|
||||
/*******************************************************************************
|
||||
|
||||
Fidelity Electronics 6502 dynamic(offset-dependent) CPU clock divider base class.
|
||||
Used to compensate slow memory chips in chess computer models: SC12, AS12, PC, EAS, EAG.
|
||||
Fidelity Electronics 6502 dynamic CPU clock divider
|
||||
|
||||
TODO:
|
||||
- improve clock divider? it seems a little bit slower than the real machine.
|
||||
Currently, a dummy timer workaround is needed, or it's much worse (doing it with
|
||||
a synchronize() will make it even worse).
|
||||
Is the problem here due to timing of CPU addressbus changes? We can only 'sense'
|
||||
the addressbus at read or write accesses.
|
||||
Offset-dependent CPU clock divider base class. Used to compensate slow memory
|
||||
chips in chess computer models: SC12, AS12, PC, EAS, EAG.
|
||||
|
||||
*******************************************************************************/
|
||||
|
||||
@ -18,15 +13,6 @@ TODO:
|
||||
#include "clockdiv.h"
|
||||
|
||||
|
||||
// machine start
|
||||
|
||||
void fidel_clockdiv_state::machine_start()
|
||||
{
|
||||
// dummy timer for cpu divider
|
||||
m_div_timer = machine().scheduler().timer_alloc(timer_expired_delegate());
|
||||
}
|
||||
|
||||
|
||||
// input ports
|
||||
|
||||
INPUT_PORTS_START( fidel_clockdiv_2 )
|
||||
@ -48,16 +34,24 @@ INPUT_PORTS_END
|
||||
|
||||
// implementation
|
||||
|
||||
void fidel_clockdiv_state::div_set_cpu_freq(offs_t offset)
|
||||
void fidel_clockdiv_state::machine_start()
|
||||
{
|
||||
// set up trigger for breaking out of 6502 execution (not using synchronize())
|
||||
m_div_timer = timer_alloc(FUNC(fidel_clockdiv_state::div_set_cpu_freq), this);
|
||||
}
|
||||
|
||||
TIMER_CALLBACK_MEMBER(fidel_clockdiv_state::div_set_cpu_freq)
|
||||
{
|
||||
// when a13/a14 is high, XTAL goes through divider(s)
|
||||
// (depending on factory-set jumper, either one or two 7474)
|
||||
m_maincpu->set_clock_scale(param ? m_div_scale : 1.0);
|
||||
m_div_status = param;
|
||||
}
|
||||
|
||||
void fidel_clockdiv_state::div_prep_cpu_freq(offs_t offset)
|
||||
{
|
||||
if (offset != m_div_status)
|
||||
{
|
||||
// when a13/a14 is high, XTAL goes through divider(s)
|
||||
// (depending on factory-set jumper, either one or two 7474)
|
||||
m_maincpu->set_clock_scale(offset ? m_div_scale : 1.0);
|
||||
|
||||
m_div_status = offset;
|
||||
}
|
||||
m_div_timer->adjust(attotime::zero, offset);
|
||||
}
|
||||
|
||||
void fidel_clockdiv_state::div_refresh(ioport_value val)
|
||||
@ -76,10 +70,6 @@ void fidel_clockdiv_state::div_refresh(ioport_value val)
|
||||
m_div_status = ~0;
|
||||
m_div_scale = (val & 1) ? 0.25 : 0.5;
|
||||
|
||||
// stop high frequency background timer if cpu divider is disabled
|
||||
attotime period = (val) ? attotime::from_hz(m_maincpu->clock()) : attotime::never;
|
||||
m_div_timer->adjust(period, 0, period);
|
||||
|
||||
// set up memory passthroughs
|
||||
m_read_tap.remove();
|
||||
m_write_tap.remove();
|
||||
@ -94,7 +84,7 @@ void fidel_clockdiv_state::div_refresh(ioport_value val)
|
||||
[this] (offs_t offset, u8 &data, u8 mem_mask)
|
||||
{
|
||||
if (!machine().side_effects_disabled())
|
||||
div_set_cpu_freq(offset & 0x6000);
|
||||
div_prep_cpu_freq(offset & 0x6000);
|
||||
},
|
||||
&m_read_tap);
|
||||
m_write_tap = program.install_write_tap(
|
||||
@ -102,7 +92,7 @@ void fidel_clockdiv_state::div_refresh(ioport_value val)
|
||||
"program_div_w",
|
||||
[this] (offs_t offset, u8 &data, u8 mem_mask)
|
||||
{
|
||||
div_set_cpu_freq(offset & 0x6000);
|
||||
div_prep_cpu_freq(offset & 0x6000);
|
||||
},
|
||||
&m_write_tap);
|
||||
}
|
||||
|
@ -41,7 +41,8 @@ private:
|
||||
double m_div_scale = 0;
|
||||
emu_timer *m_div_timer = nullptr;
|
||||
|
||||
inline void div_set_cpu_freq(offs_t offset);
|
||||
inline void div_prep_cpu_freq(offs_t offset);
|
||||
TIMER_CALLBACK_MEMBER(div_set_cpu_freq);
|
||||
};
|
||||
|
||||
|
||||
|
@ -65,25 +65,25 @@ license:CC0-1.0
|
||||
<element name="text_p11"><image file="chess/br.svg"></image></element>
|
||||
<element name="text_p12"><image file="chess/bp.svg"></image></element>
|
||||
|
||||
<element name="text_rb01a"><text string="Multi Move"><color red="0.83" green="0.82" blue="0.81" /></text></element>
|
||||
<element name="text_rb01b"><text string="Player / Player"><color red="0.83" green="0.82" blue="0.81" /></text></element>
|
||||
<element name="text_rb02a"><text string="Best Move"><color red="0.83" green="0.82" blue="0.81" /></text></element>
|
||||
<element name="text_rb02b"><text string="Random"><color red="0.83" green="0.82" blue="0.81" /></text></element>
|
||||
<element name="text_rb03"><text string="Sound"><color red="0.83" green="0.82" blue="0.81" /></text></element>
|
||||
<element name="text_rb07"><text string="Set Level"><color red="0.83" green="0.82" blue="0.81" /></text></element>
|
||||
<element name="text_rb08"><text string="Take Back"><color red="0.83" green="0.82" blue="0.81" /></text></element>
|
||||
<element name="text_rb01a"><text string="Multi Move"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_rb01b"><text string="Player / Player"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_rb02a"><text string="Best Move"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_rb02b"><text string="Random"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_rb03"><text string="Sound"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_rb07"><text string="Set Level"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_rb08"><text string="Take Back"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
|
||||
<element name="text_rb11"><text string="New Game"><color red="0.83" green="0.82" blue="0.81" /></text></element>
|
||||
<element name="text_rb12a"><text string="Verify"><color red="0.83" green="0.82" blue="0.81" /></text></element>
|
||||
<element name="text_rb12b"><text string="Set Up"><color red="0.83" green="0.82" blue="0.81" /></text></element>
|
||||
<element name="text_rb13"><text string="Change Color"><color red="0.83" green="0.82" blue="0.81" /></text></element>
|
||||
<element name="text_rb14"><text string="Clear Board"><color red="0.83" green="0.82" blue="0.81" /></text></element>
|
||||
<element name="text_rb17a"><text string="Hint"><color red="0.83" green="0.82" blue="0.81" /></text></element>
|
||||
<element name="text_rb17b"><text string="Show Moves"><color red="0.83" green="0.82" blue="0.81" /></text></element>
|
||||
<element name="text_rb18"><text string="Go"><color red="0.83" green="0.82" blue="0.81" /></text></element>
|
||||
<element name="text_rb11"><text string="New Game"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_rb12a"><text string="Verify"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_rb12b"><text string="Set Up"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_rb13"><text string="Change Color"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_rb14"><text string="Clear Board"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_rb17a"><text string="Hint"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_rb17b"><text string="Show Moves"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_rb18"><text string="Go"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
|
||||
<element name="text_setup">
|
||||
<rect><color red="0.5" green="0.37" blue="0.3" /></rect>
|
||||
<rect><color red="0.35" green="0.26" blue="0.21" /></rect>
|
||||
<text string="SET UP"><color red="0.83" green="0.82" blue="0.81" /></text>
|
||||
</element>
|
||||
|
||||
@ -352,7 +352,8 @@ license:CC0-1.0
|
||||
<view name="Internal Layout">
|
||||
<bounds left="-12.5" right="114" top="-0.5" bottom="88.5" />
|
||||
|
||||
<element ref="cblack"><bounds x="3.5" y="2.5" width="102.5" height="81" /></element>
|
||||
<element ref="cblack"><bounds x="3.5" y="2.5" width="90" height="81" /></element>
|
||||
<element ref="brown"><bounds x="84.5" y="2.5" width="21.5" height="81" /></element>
|
||||
<group ref="sb_board"><bounds x="4" y="3" width="80" height="80" /></group>
|
||||
<element ref="cwhite"><bounds x="83.95" y="2.5" width="1" height="81" /></element>
|
||||
|
||||
@ -398,7 +399,7 @@ license:CC0-1.0
|
||||
|
||||
<!-- right side buttons -->
|
||||
<element ref="cwhite"><bounds x="95.333" y="12.5" width="9.333" height="29" /></element>
|
||||
<element ref="cblack"><bounds x="95.533" y="12.7" width="8.933" height="28.6" /></element>
|
||||
<element ref="brown"><bounds x="95.533" y="12.7" width="8.933" height="28.6" /></element>
|
||||
<element ref="text_setup"><bounds x="96.5" y="11.8" width="7" height="1.5" /></element>
|
||||
|
||||
<element ref="text_rb01a"><bounds x="86" y="4.2" width="10" height="1.5" /></element>
|
||||
|
Loading…
Reference in New Issue
Block a user