mirror of
https://github.com/holub/mame
synced 2025-06-29 15:38:53 +03:00
novag6502: machine config for 5/6mhz cpu freq (nw)
This commit is contained in:
parent
f2aa19b113
commit
e742fb5a64
@ -14,7 +14,6 @@
|
|||||||
- sforte/sexpert internal layout button panel
|
- sforte/sexpert internal layout button panel
|
||||||
- verify supercon IRQ and beeper frequency
|
- verify supercon IRQ and beeper frequency
|
||||||
- why is sforte H and 1 leds always on?
|
- why is sforte H and 1 leds always on?
|
||||||
- sforte/sexpert selectable 5/6MHz CPU speed
|
|
||||||
- sforte/sexpert optional ACIA (only works in version C?)
|
- sforte/sexpert optional ACIA (only works in version C?)
|
||||||
- printer port
|
- printer port
|
||||||
|
|
||||||
@ -29,8 +28,9 @@ Super Constellation Chess Computer (model 844):
|
|||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
Super Expert (model 878/887/902):
|
Super Expert (model 878/887/902):
|
||||||
- 65C02 @ 5 or MHz (10 or 12MHz XTAL)
|
- 65C02 @ 5MHz or 6MHz (10MHz or 12MHz XTAL)
|
||||||
- 8KB RAM battery-backed, 3*32KB ROM
|
- 8KB RAM battery-backed, 3*32KB ROM
|
||||||
|
- HD44780 LCD controller (16x1)
|
||||||
- beeper(32KHz/32), IRQ(32KHz/128) via MC14060
|
- beeper(32KHz/32), IRQ(32KHz/128) via MC14060
|
||||||
- optional R65C51P2 ACIA @ 1.8432MHz, for IBM PC interface
|
- optional R65C51P2 ACIA @ 1.8432MHz, for IBM PC interface
|
||||||
- printer port, magnetic sensors, 8*8 chessboard leds
|
- printer port, magnetic sensors, 8*8 chessboard leds
|
||||||
@ -119,6 +119,8 @@ public:
|
|||||||
HD44780_PIXEL_UPDATE(sexpert_pixel_update);
|
HD44780_PIXEL_UPDATE(sexpert_pixel_update);
|
||||||
DECLARE_MACHINE_RESET(sexpert);
|
DECLARE_MACHINE_RESET(sexpert);
|
||||||
DECLARE_DRIVER_INIT(sexpert);
|
DECLARE_DRIVER_INIT(sexpert);
|
||||||
|
DECLARE_INPUT_CHANGED_MEMBER(sexpert_cpu_freq);
|
||||||
|
void sexpert_set_cpu_freq();
|
||||||
|
|
||||||
// Super Forte
|
// Super Forte
|
||||||
DECLARE_WRITE8_MEMBER(sforte_lcd_control_w);
|
DECLARE_WRITE8_MEMBER(sforte_lcd_control_w);
|
||||||
@ -404,6 +406,12 @@ READ8_MEMBER(novag6502_state::sexpert_input2_r)
|
|||||||
return ~read_inputs(8) >> 3 & 0xe0;
|
return ~read_inputs(8) >> 3 & 0xe0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void novag6502_state::sexpert_set_cpu_freq()
|
||||||
|
{
|
||||||
|
// machines were released with either 5MHz or 6MHz CPU
|
||||||
|
m_maincpu->set_unscaled_clock((ioport("FAKE")->read() & 1) ? (XTAL_12MHz/2) : (XTAL_10MHz/2));
|
||||||
|
}
|
||||||
|
|
||||||
MACHINE_RESET_MEMBER(novag6502_state, sexpert)
|
MACHINE_RESET_MEMBER(novag6502_state, sexpert)
|
||||||
{
|
{
|
||||||
membank("bank1")->set_entry(0);
|
membank("bank1")->set_entry(0);
|
||||||
@ -698,9 +706,7 @@ static INPUT_PORTS_START( supercon )
|
|||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
|
||||||
static INPUT_PORTS_START( sforte )
|
static INPUT_PORTS_START( sexy_shared )
|
||||||
PORT_INCLUDE( cb_buttons )
|
|
||||||
|
|
||||||
PORT_MODIFY("IN.0")
|
PORT_MODIFY("IN.0")
|
||||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_A) PORT_NAME("Go")
|
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_A) PORT_NAME("Go")
|
||||||
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Q) PORT_NAME("Take Back / Analyze Games")
|
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Q) PORT_NAME("Take Back / Analyze Games")
|
||||||
@ -740,51 +746,26 @@ static INPUT_PORTS_START( sforte )
|
|||||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_K) PORT_NAME("New Game")
|
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_K) PORT_NAME("New Game")
|
||||||
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_I) PORT_NAME("Player/Player / Gambit Book / King")
|
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_I) PORT_NAME("Player/Player / Gambit Book / King")
|
||||||
PORT_BIT(0x400, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_8) PORT_NAME("Print Board / Interface")
|
PORT_BIT(0x400, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_8) PORT_NAME("Print Board / Interface")
|
||||||
|
|
||||||
|
PORT_START("FAKE")
|
||||||
|
PORT_CONFNAME( 0x01, 0x00, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, novag6502_state, sexpert_cpu_freq, nullptr) // factory set
|
||||||
|
PORT_CONFSETTING( 0x00, "5MHz" )
|
||||||
|
PORT_CONFSETTING( 0x01, "6MHz" )
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
INPUT_CHANGED_MEMBER(novag6502_state::sexpert_cpu_freq)
|
||||||
|
{
|
||||||
|
sexpert_set_cpu_freq();
|
||||||
|
}
|
||||||
|
|
||||||
static INPUT_PORTS_START( sexpert )
|
static INPUT_PORTS_START( sexpert )
|
||||||
PORT_INCLUDE( cb_magnets )
|
PORT_INCLUDE( cb_magnets )
|
||||||
|
PORT_INCLUDE( sexy_shared )
|
||||||
|
INPUT_PORTS_END
|
||||||
|
|
||||||
PORT_MODIFY("IN.0")
|
static INPUT_PORTS_START( sforte )
|
||||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_A) PORT_NAME("Go")
|
PORT_INCLUDE( cb_buttons )
|
||||||
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Q) PORT_NAME("Take Back / Analyze Games")
|
PORT_INCLUDE( sexy_shared )
|
||||||
PORT_BIT(0x400, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_NAME("->")
|
|
||||||
|
|
||||||
PORT_MODIFY("IN.1")
|
|
||||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_S) PORT_NAME("Set Level")
|
|
||||||
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_W) PORT_NAME("Flip Display / Time Control")
|
|
||||||
PORT_BIT(0x400, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_NAME("<-")
|
|
||||||
|
|
||||||
PORT_MODIFY("IN.2")
|
|
||||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_D) PORT_NAME("Hint / Next Best")
|
|
||||||
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_E) PORT_NAME("Priority / Tournament Book / Pawn")
|
|
||||||
PORT_BIT(0x400, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_NAME("Yes/Start / Start of Game")
|
|
||||||
|
|
||||||
PORT_MODIFY("IN.3")
|
|
||||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_F) PORT_NAME("Trace Forward / AutoPlay")
|
|
||||||
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_NAME("Pro-Op / Restore Game / Rook")
|
|
||||||
PORT_BIT(0x400, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) PORT_NAME("No/End / End of Game")
|
|
||||||
|
|
||||||
PORT_MODIFY("IN.4")
|
|
||||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_G) PORT_NAME("Clear Board / Delete Pro-Op")
|
|
||||||
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_NAME("Best Move/Random / Review / Knight")
|
|
||||||
PORT_BIT(0x400, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_NAME("Print Book / Store Game")
|
|
||||||
|
|
||||||
PORT_MODIFY("IN.5")
|
|
||||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_H) PORT_NAME("Change Color")
|
|
||||||
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Y) PORT_NAME("Sound / Info / Bishop")
|
|
||||||
PORT_BIT(0x400, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_NAME("Print Moves / Print Evaluations")
|
|
||||||
|
|
||||||
PORT_MODIFY("IN.6")
|
|
||||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_J) PORT_NAME("Verify/Set Up / Pro-Op Book/Both Books")
|
|
||||||
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_U) PORT_NAME("Solve Mate / Infinite / Queen")
|
|
||||||
PORT_BIT(0x400, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_7) PORT_NAME("Print List / Acc. Time")
|
|
||||||
|
|
||||||
PORT_MODIFY("IN.7")
|
|
||||||
PORT_BIT(0x100, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_K) PORT_NAME("New Game")
|
|
||||||
PORT_BIT(0x200, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_I) PORT_NAME("Player/Player / Gambit Book / King")
|
|
||||||
PORT_BIT(0x400, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_8) PORT_NAME("Print Board / Interface")
|
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
|
||||||
@ -814,7 +795,7 @@ MACHINE_CONFIG_END
|
|||||||
static MACHINE_CONFIG_START( sexpert, novag6502_state )
|
static MACHINE_CONFIG_START( sexpert, novag6502_state )
|
||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
MCFG_CPU_ADD("maincpu", M65C02, XTAL_10MHz/2)
|
MCFG_CPU_ADD("maincpu", M65C02, XTAL_10MHz/2) // or XTAL_12MHz/2
|
||||||
MCFG_CPU_PROGRAM_MAP(sexpert_map)
|
MCFG_CPU_PROGRAM_MAP(sexpert_map)
|
||||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", novag6502_state, irq_on, attotime::from_hz(XTAL_32_768kHz/128))
|
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", novag6502_state, irq_on, attotime::from_hz(XTAL_32_768kHz/128))
|
||||||
MCFG_TIMER_START_DELAY(attotime::from_hz(XTAL_32_768kHz/128) - attotime::from_nsec(21500)) // active for 21.5us
|
MCFG_TIMER_START_DELAY(attotime::from_hz(XTAL_32_768kHz/128) - attotime::from_nsec(21500)) // active for 21.5us
|
||||||
|
Loading…
Reference in New Issue
Block a user