mirror of
https://github.com/holub/mame
synced 2025-04-22 08:22:15 +03:00
fidel6502: improved SC12 emulation
This commit is contained in:
parent
5041e43092
commit
d960922c77
@ -32,12 +32,14 @@ public:
|
||||
fidel6502_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: fidelz80base_state(mconfig, type, tag),
|
||||
m_6821pia(*this, "6821pia"),
|
||||
m_speaker(*this, "speaker")
|
||||
m_speaker(*this, "speaker"),
|
||||
m_irq_off(*this, "irq_off")
|
||||
{ }
|
||||
|
||||
// devices/pointers
|
||||
optional_device<pia6821_device> m_6821pia;
|
||||
optional_device<speaker_sound_device> m_speaker;
|
||||
optional_device<timer_device> m_irq_off;
|
||||
|
||||
// model CSC
|
||||
void csc_prepare_display();
|
||||
@ -54,10 +56,11 @@ public:
|
||||
DECLARE_READ_LINE_MEMBER(csc_pia1_ca1_r);
|
||||
DECLARE_READ_LINE_MEMBER(csc_pia1_cb1_r);
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(irq_timer);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
// model SC12
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(irq_off);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(sc12_irq);
|
||||
DECLARE_WRITE8_MEMBER(sc12_control_w);
|
||||
DECLARE_READ8_MEMBER(sc12_input_r);
|
||||
};
|
||||
|
||||
|
||||
@ -196,35 +199,83 @@ WRITE_LINE_MEMBER(fidel6502_state::csc_pia1_ca2_w)
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
SC12
|
||||
******************************************************************************/
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(fidel6502_state::irq_timer)
|
||||
// interrupt handling
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(fidel6502_state::irq_off)
|
||||
{
|
||||
m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
|
||||
m_maincpu->set_input_line(M6502_IRQ_LINE, CLEAR_LINE);
|
||||
}
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(fidel6502_state::sc12_irq)
|
||||
{
|
||||
m_maincpu->set_input_line(M6502_IRQ_LINE, ASSERT_LINE);
|
||||
m_irq_off->adjust(attotime::from_nsec(15250)); // active low for 15.25us
|
||||
}
|
||||
|
||||
|
||||
// TTL
|
||||
|
||||
WRITE8_MEMBER(fidel6502_state::sc12_control_w)
|
||||
{
|
||||
// d0-d3: 7442 a0-a3
|
||||
// 7442 0-8: led data, input mux
|
||||
UINT16 sel = 1 << (data & 0xf) & 0x3ff;
|
||||
m_inp_mux = sel & 0x1ff;
|
||||
|
||||
// 7442 9: speaker out
|
||||
m_speaker->level_w(sel >> 9 & 1);
|
||||
|
||||
// d6,d7: led select (active low)
|
||||
display_matrix(9, 2, sel & 0x1ff, ~data >> 6 & 3);
|
||||
|
||||
// d4,d5: printer
|
||||
//..
|
||||
}
|
||||
|
||||
READ8_MEMBER(fidel6502_state::sc12_input_r)
|
||||
{
|
||||
// a0-a2,d7: multiplexed inputs (active low)
|
||||
return (read_inputs(9) << (offset^7) & 0x80) ^ 0xff;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Address Maps
|
||||
******************************************************************************/
|
||||
|
||||
// CSC
|
||||
|
||||
static ADDRESS_MAP_START( csc_map, AS_PROGRAM, 8, fidel6502_state )
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_MIRROR(0x4000)
|
||||
AM_RANGE(0x0800, 0x0bff) AM_RAM AM_MIRROR(0x4400)
|
||||
AM_RANGE(0x1000, 0x1003) AM_DEVREADWRITE("pia0", pia6821_device, read, write) AM_MIRROR(0x47fc)
|
||||
AM_RANGE(0x1800, 0x1803) AM_DEVREADWRITE("pia1", pia6821_device, read, write) AM_MIRROR(0x47fc)
|
||||
AM_RANGE(0x2000, 0x3fff) AM_ROM AM_MIRROR(0x4000)
|
||||
AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x4000) AM_RAM
|
||||
AM_RANGE(0x0800, 0x0bff) AM_MIRROR(0x4400) AM_RAM
|
||||
AM_RANGE(0x1000, 0x1003) AM_MIRROR(0x47fc) AM_DEVREADWRITE("pia0", pia6821_device, read, write)
|
||||
AM_RANGE(0x1800, 0x1803) AM_MIRROR(0x47fc) AM_DEVREADWRITE("pia1", pia6821_device, read, write)
|
||||
AM_RANGE(0x2000, 0x3fff) AM_MIRROR(0x4000) AM_ROM
|
||||
AM_RANGE(0xa000, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
// SC12
|
||||
|
||||
static ADDRESS_MAP_START( sc12_map, AS_PROGRAM, 8, fidel6502_state )
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x0000, 0x0fff) AM_RAM
|
||||
AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x1fff) AM_WRITE(sc12_control_w)
|
||||
AM_RANGE(0x8000, 0x9fff) AM_ROM
|
||||
AM_RANGE(0xc000, 0xcfff) AM_ROM AM_MIRROR(0x1000)
|
||||
AM_RANGE(0xa000, 0xa007) AM_MIRROR(0x1ff8) AM_READ(sc12_input_r)
|
||||
AM_RANGE(0xc000, 0xcfff) AM_MIRROR(0x1000) AM_ROM
|
||||
AM_RANGE(0xe000, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
// FEV
|
||||
|
||||
static ADDRESS_MAP_START( fev_map, AS_PROGRAM, 8, fidel6502_state )
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x0000, 0x1fff) AM_RAM
|
||||
@ -232,6 +283,7 @@ static ADDRESS_MAP_START( fev_map, AS_PROGRAM, 8, fidel6502_state )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Input Ports
|
||||
******************************************************************************/
|
||||
@ -337,11 +389,98 @@ static INPUT_PORTS_START( csc )
|
||||
PORT_BIT(0x100,IP_ACTIVE_HIGH, IPT_UNUSED) PORT_UNUSED
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( sc12 )
|
||||
PORT_START("IN.0")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
|
||||
PORT_START("IN.1")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
|
||||
PORT_START("IN.2")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
|
||||
PORT_START("IN.3")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
|
||||
PORT_START("IN.4")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
|
||||
PORT_START("IN.5")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
|
||||
PORT_START("IN.6")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
|
||||
PORT_START("IN.7")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD)
|
||||
|
||||
PORT_START("IN.8")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RV / Pawn") PORT_CODE(KEYCODE_1)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("DM / Knight") PORT_CODE(KEYCODE_2)
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("TB / Bishop") PORT_CODE(KEYCODE_3)
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("LV / Rook") PORT_CODE(KEYCODE_4)
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PV / Queen") PORT_CODE(KEYCODE_5)
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PB / King") PORT_CODE(KEYCODE_6)
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL) // clear
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RE") PORT_CODE(KEYCODE_R) // reset
|
||||
INPUT_PORTS_END
|
||||
|
||||
void fidel6502_state::machine_start()
|
||||
{
|
||||
fidelz80base_state::machine_start();
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
@ -351,11 +490,9 @@ void fidel6502_state::machine_start()
|
||||
static MACHINE_CONFIG_START( csc, fidel6502_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M6502, 3900000/2)
|
||||
MCFG_CPU_ADD("maincpu", M6502, 3900000/2) // from 3.9MHz resonator
|
||||
MCFG_CPU_PROGRAM_MAP(csc_map)
|
||||
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_timer", fidel6502_state, irq_timer, attotime::from_hz(38400/64))
|
||||
MCFG_CPU_PERIODIC_INT_DRIVER(fidelz80base_state, irq0_line_hold, 600) // 38400kHz/64
|
||||
|
||||
MCFG_DEVICE_ADD("pia0", PIA6821, 0)
|
||||
MCFG_PIA_READPB_HANDLER(READ8(fidel6502_state, csc_pia0_pb_r))
|
||||
@ -385,12 +522,13 @@ static MACHINE_CONFIG_START( csc, fidel6502_state )
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
static MACHINE_CONFIG_START( sc12, fidel6502_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", R65C02, XTAL_4MHz)
|
||||
MCFG_CPU_PROGRAM_MAP(sc12_map)
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("sc12_irq", fidel6502_state, sc12_irq, attotime::from_hz(780)) // from 556 timer
|
||||
MCFG_TIMER_DRIVER_ADD("irq_off", fidel6502_state, irq_off)
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelz80base_state, display_decay_tick, attotime::from_msec(1))
|
||||
MCFG_DEFAULT_LAYOUT(layout_fidel_sc12)
|
||||
@ -401,8 +539,6 @@ static MACHINE_CONFIG_START( sc12, fidel6502_state )
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
||||
static MACHINE_CONFIG_START( fev, fidel6502_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
@ -420,6 +556,7 @@ static MACHINE_CONFIG_START( fev, fidel6502_state )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
ROM Definitions
|
||||
******************************************************************************/
|
||||
@ -459,6 +596,6 @@ ROM_END
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */
|
||||
COMP( 1981, csc, 0, 0, csc, csc, driver_device, 0, "Fidelity Electronics", "Champion Sensory Chess Challenger", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
|
||||
COMP( 1984, fscc12, 0, 0, sc12, csc, driver_device, 0, "Fidelity Electronics", "Sensory Chess Challenger 12-B", MACHINE_NOT_WORKING )
|
||||
COMP( 1984, fscc12, 0, 0, sc12, sc12, driver_device, 0, "Fidelity Electronics", "Sensory Chess Challenger 12-B", MACHINE_NOT_WORKING )
|
||||
|
||||
COMP( 1987, fexcelv, 0, 0, fev, csc, driver_device, 0, "Fidelity Electronics", "Voice Excellence", MACHINE_NOT_WORKING )
|
||||
|
@ -310,6 +310,7 @@ Champion Sensory Chess Challenger (CSC) (6502 based -> fidel6502.cpp driver)
|
||||
|
||||
Memory map:
|
||||
-----------
|
||||
|
||||
0000-07FF: 2K of RAM
|
||||
0800-0FFF: 1K of RAM (note: mirrored twice)
|
||||
1000-17FF: PIA 0 (display, TSI speech chip)
|
||||
@ -598,9 +599,40 @@ Sensory Chess Challenger (SC12-B) (6502 based -> fidel6502.cpp driver)
|
||||
|
||||
RE information by Berger
|
||||
|
||||
8*(8+1) buttons, 8+8+2 red LEDs
|
||||
DIN 41524C printer port
|
||||
36-pin edge connector
|
||||
CPU is a R65C02P4, running at 4MHz
|
||||
|
||||
NE556 dual-timer IC:
|
||||
- timer#1, one-shot at power-on, to CPU _RESET
|
||||
- timer#2: R1=82K, R2=1K, C=22nf, to CPU _IRQ: ~780Hz, active low=15.25us
|
||||
|
||||
|
||||
Memory map:
|
||||
-----------
|
||||
|
||||
6000-0FFF: 4K of RAM (2016 * 2)
|
||||
2000-5FFF: cartridge
|
||||
6000-7FFF: control(W)
|
||||
8000-9FFF: 8K ROM SSS SCM23C65E4
|
||||
A000-BFFF: keypad(R)
|
||||
C000-DFFF: 4K ROM TI TMS2732AJL-45
|
||||
E000-FFFF: 8K ROM Toshiba TMM2764D-2
|
||||
|
||||
control: (74LS377)
|
||||
--------
|
||||
|
||||
Q0-Q3: 7442 A0-A3
|
||||
Q4: enable printer port pin 1 input
|
||||
Q5: printer port pin 5 output
|
||||
Q6,Q7: LEDs common anode
|
||||
|
||||
7442 0-8: input mux and LEDs cathode
|
||||
7442 9: buzzer
|
||||
|
||||
The keypad is read through a 74HC251, where S0,1,2 is from CPU A0,1,2, Y is connected to CPU D7.
|
||||
If control Q4 is set, printer data can be read from I0.
|
||||
|
||||
|
||||
******************************************************************************
|
||||
@ -1126,7 +1158,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( vcc_map, AS_PROGRAM, 8, fidelz80_state )
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x0000, 0x2fff) AM_ROM
|
||||
AM_RANGE(0x4000, 0x43ff) AM_RAM AM_MIRROR(0x1c00)
|
||||
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x1c00) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( vcc_io, AS_IO, 8, fidelz80_state )
|
||||
@ -1140,8 +1172,8 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( vsc_map, AS_PROGRAM, 8, fidelz80_state )
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x0000, 0x3fff) AM_ROM
|
||||
AM_RANGE(0x4000, 0x4fff) AM_ROM AM_MIRROR(0x1000)
|
||||
AM_RANGE(0x6000, 0x63ff) AM_RAM AM_MIRROR(0x1c00)
|
||||
AM_RANGE(0x4000, 0x4fff) AM_MIRROR(0x1000) AM_ROM
|
||||
AM_RANGE(0x6000, 0x63ff) AM_MIRROR(0x1c00) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
// VSC io: A2 is 8255 _CE, A3 is Z80 PIO _CE - in theory, both chips can be accessed simultaneously
|
||||
@ -1187,8 +1219,8 @@ WRITE8_MEMBER(fidelz80_state::vbrc_speech_w)
|
||||
static ADDRESS_MAP_START( vbrc_main_map, AS_PROGRAM, 8, fidelz80_state )
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x0000, 0x5fff) AM_ROM
|
||||
AM_RANGE(0x6000, 0x63ff) AM_RAM AM_MIRROR(0x1c00)
|
||||
AM_RANGE(0xe000, 0xffff) AM_WRITE(vbrc_speech_w) AM_MIRROR(0x1fff)
|
||||
AM_RANGE(0x6000, 0x63ff) AM_MIRROR(0x1c00) AM_RAM
|
||||
AM_RANGE(0xe000, 0xffff) AM_MIRROR(0x1fff) AM_WRITE(vbrc_speech_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( vbrc_main_io, AS_IO, 8, fidelz80_state )
|
||||
|
@ -14,26 +14,26 @@
|
||||
<view name="Internal Layout">
|
||||
<bounds left="0" right="20" top="0" bottom="20" />
|
||||
|
||||
<bezel name="0.0" element="led"><bounds x="1" y="1" width="1" height="1" /></bezel>
|
||||
<bezel name="0.1" element="led"><bounds x="1" y="2" width="1" height="1" /></bezel>
|
||||
<bezel name="0.2" element="led"><bounds x="1" y="3" width="1" height="1" /></bezel>
|
||||
<bezel name="0.3" element="led"><bounds x="1" y="4" width="1" height="1" /></bezel>
|
||||
<bezel name="0.4" element="led"><bounds x="1" y="5" width="1" height="1" /></bezel>
|
||||
<bezel name="0.5" element="led"><bounds x="1" y="6" width="1" height="1" /></bezel>
|
||||
<bezel name="0.6" element="led"><bounds x="1" y="7" width="1" height="1" /></bezel>
|
||||
<bezel name="0.7" element="led"><bounds x="1" y="8" width="1" height="1" /></bezel>
|
||||
<bezel name="1.0" element="led"><bounds x="1" y="1" width="1" height="1" /></bezel>
|
||||
<bezel name="1.1" element="led"><bounds x="1" y="2" width="1" height="1" /></bezel>
|
||||
<bezel name="1.2" element="led"><bounds x="1" y="3" width="1" height="1" /></bezel>
|
||||
<bezel name="1.3" element="led"><bounds x="1" y="4" width="1" height="1" /></bezel>
|
||||
<bezel name="1.4" element="led"><bounds x="1" y="5" width="1" height="1" /></bezel>
|
||||
<bezel name="1.5" element="led"><bounds x="1" y="6" width="1" height="1" /></bezel>
|
||||
<bezel name="1.6" element="led"><bounds x="1" y="7" width="1" height="1" /></bezel>
|
||||
<bezel name="1.7" element="led"><bounds x="1" y="8" width="1" height="1" /></bezel>
|
||||
|
||||
<bezel name="1.0" element="led"><bounds x="2" y="9" width="1" height="1" /></bezel>
|
||||
<bezel name="1.1" element="led"><bounds x="3" y="9" width="1" height="1" /></bezel>
|
||||
<bezel name="1.2" element="led"><bounds x="4" y="9" width="1" height="1" /></bezel>
|
||||
<bezel name="1.3" element="led"><bounds x="5" y="9" width="1" height="1" /></bezel>
|
||||
<bezel name="1.4" element="led"><bounds x="6" y="9" width="1" height="1" /></bezel>
|
||||
<bezel name="1.5" element="led"><bounds x="7" y="9" width="1" height="1" /></bezel>
|
||||
<bezel name="1.6" element="led"><bounds x="8" y="9" width="1" height="1" /></bezel>
|
||||
<bezel name="1.7" element="led"><bounds x="9" y="9" width="1" height="1" /></bezel>
|
||||
<bezel name="0.0" element="led"><bounds x="2" y="9" width="1" height="1" /></bezel>
|
||||
<bezel name="0.1" element="led"><bounds x="3" y="9" width="1" height="1" /></bezel>
|
||||
<bezel name="0.2" element="led"><bounds x="4" y="9" width="1" height="1" /></bezel>
|
||||
<bezel name="0.3" element="led"><bounds x="5" y="9" width="1" height="1" /></bezel>
|
||||
<bezel name="0.4" element="led"><bounds x="6" y="9" width="1" height="1" /></bezel>
|
||||
<bezel name="0.5" element="led"><bounds x="7" y="9" width="1" height="1" /></bezel>
|
||||
<bezel name="0.6" element="led"><bounds x="8" y="9" width="1" height="1" /></bezel>
|
||||
<bezel name="0.7" element="led"><bounds x="9" y="9" width="1" height="1" /></bezel>
|
||||
|
||||
<bezel name="2.0" element="led"><bounds x="11" y="7" width="1" height="1" /></bezel>
|
||||
<bezel name="2.1" element="led"><bounds x="11" y="8" width="1" height="1" /></bezel>
|
||||
<bezel name="1.8" element="led"><bounds x="11" y="7" width="1" height="1" /></bezel>
|
||||
<bezel name="0.8" element="led"><bounds x="11" y="8" width="1" height="1" /></bezel>
|
||||
|
||||
</view>
|
||||
</mamelayout>
|
||||
|
Loading…
Reference in New Issue
Block a user