mirror of
https://github.com/holub/mame
synced 2025-06-05 12:26:35 +03:00
fidel*: prepare for untangling (nw)
This commit is contained in:
parent
11dbdf8364
commit
347609f8da
@ -485,6 +485,7 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(sc9_control_w);
|
||||
DECLARE_WRITE8_MEMBER(sc9_led_w);
|
||||
DECLARE_READ8_MEMBER(sc9_input_r);
|
||||
DECLARE_READ8_MEMBER(sc9d_input_r);
|
||||
DECLARE_MACHINE_RESET(sc9c);
|
||||
DECLARE_INPUT_CHANGED_MEMBER(sc9c_cpu_freq);
|
||||
void sc9c_set_cpu_freq();
|
||||
@ -494,7 +495,6 @@ public:
|
||||
DECLARE_READ8_MEMBER(sc12_trampoline_r);
|
||||
DECLARE_WRITE8_MEMBER(sc12_control_w);
|
||||
DECLARE_READ8_MEMBER(sc12_input_r);
|
||||
DECLARE_READ8_MEMBER(sc12_cart_r);
|
||||
void sc12_set_cpu_freq(offs_t offset);
|
||||
|
||||
// Excellence
|
||||
@ -774,6 +774,12 @@ READ8_MEMBER(fidel6502_state::sc9_input_r)
|
||||
return read_inputs(9) ^ 0xff;
|
||||
}
|
||||
|
||||
READ8_MEMBER(fidel6502_state::sc9d_input_r)
|
||||
{
|
||||
// a0-a2,d7: multiplexed inputs (active low)
|
||||
return (read_inputs(9) >> offset & 1) ? 0 : 0x80;
|
||||
}
|
||||
|
||||
void fidel6502_state::sc9c_set_cpu_freq()
|
||||
{
|
||||
// SC9(C01) was released with 1.5MHz, 1.6MHz, or 1.9MHz CPU
|
||||
@ -841,14 +847,6 @@ READ8_MEMBER(fidel6502_state::sc12_input_r)
|
||||
return (read_inputs(9) >> offset & 1) ? 0 : 0x80;
|
||||
}
|
||||
|
||||
READ8_MEMBER(fidel6502_state::sc12_cart_r)
|
||||
{
|
||||
if (m_cart->exists())
|
||||
return m_cart->read_rom(space, offset);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
@ -1107,7 +1105,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( eas_map, AS_PROGRAM, 8, fidel6502_state )
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("nvram")
|
||||
AM_RANGE(0x2000, 0x5fff) AM_READ(sc12_cart_r)
|
||||
AM_RANGE(0x2000, 0x5fff) AM_READ(cartridge_r)
|
||||
AM_RANGE(0x7000, 0x7003) AM_DEVREADWRITE("ppi8255", i8255_device, read, write)
|
||||
AM_RANGE(0x7020, 0x7027) AM_WRITE(eas_segment_w) AM_READNOP
|
||||
AM_RANGE(0x7030, 0x7037) AM_WRITE(eas_led_w) AM_READNOP
|
||||
@ -1119,7 +1117,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( eag_map, AS_PROGRAM, 8, fidel6502_state )
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("nvram")
|
||||
AM_RANGE(0x2000, 0x5fff) AM_READ(sc12_cart_r)
|
||||
AM_RANGE(0x2000, 0x5fff) AM_READ(cartridge_r)
|
||||
AM_RANGE(0x7000, 0x7003) AM_DEVREADWRITE("ppi8255", i8255_device, read, write)
|
||||
AM_RANGE(0x7020, 0x7027) AM_WRITE(eas_segment_w) AM_READNOP
|
||||
AM_RANGE(0x7030, 0x7037) AM_WRITE(eas_led_w) AM_READNOP
|
||||
@ -1133,7 +1131,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( sc9_map, AS_PROGRAM, 8, fidel6502_state )
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x1800) AM_RAM
|
||||
AM_RANGE(0x2000, 0x5fff) AM_READ(sc12_cart_r)
|
||||
AM_RANGE(0x2000, 0x5fff) AM_READ(cartridge_r)
|
||||
AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x1fff) AM_WRITE(sc9_control_w)
|
||||
AM_RANGE(0x8000, 0x8007) AM_MIRROR(0x1ff8) AM_WRITE(sc9_led_w) AM_READNOP
|
||||
AM_RANGE(0xa000, 0xa000) AM_MIRROR(0x1fff) AM_READ(sc9_input_r)
|
||||
@ -1141,7 +1139,7 @@ static ADDRESS_MAP_START( sc9_map, AS_PROGRAM, 8, fidel6502_state )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( sc9d_map, AS_PROGRAM, 8, fidel6502_state )
|
||||
AM_RANGE(0xa000, 0xa007) AM_MIRROR(0x1ff8) AM_READ(sc12_input_r)
|
||||
AM_RANGE(0xa000, 0xa007) AM_MIRROR(0x1ff8) AM_READ(sc9d_input_r)
|
||||
AM_IMPORT_FROM( sc9_map )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -1155,7 +1153,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( sc12_map, AS_PROGRAM, 8, fidel6502_state )
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x0000, 0x0fff) AM_RAM
|
||||
AM_RANGE(0x2000, 0x5fff) AM_READ(sc12_cart_r)
|
||||
AM_RANGE(0x2000, 0x5fff) AM_READ(cartridge_r)
|
||||
AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x1fff) AM_WRITE(sc12_control_w)
|
||||
AM_RANGE(0x8000, 0x9fff) AM_ROM
|
||||
AM_RANGE(0xa000, 0xa007) AM_MIRROR(0x1ff8) AM_READ(sc12_input_r)
|
||||
|
@ -195,7 +195,6 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(eag_7seg_w);
|
||||
DECLARE_WRITE8_MEMBER(eag_mux_w);
|
||||
DECLARE_READ8_MEMBER(eag_input2_r);
|
||||
DECLARE_READ8_MEMBER(eag_cart_r);
|
||||
};
|
||||
|
||||
|
||||
@ -270,14 +269,6 @@ WRITE8_MEMBER(fidel68k_state::eag_mux_w)
|
||||
eag_prepare_display();
|
||||
}
|
||||
|
||||
READ8_MEMBER(fidel68k_state::eag_cart_r)
|
||||
{
|
||||
if (m_cart->exists())
|
||||
return m_cart->read_rom(space, offset);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
@ -319,7 +310,7 @@ static ADDRESS_MAP_START( eag_map, AS_PROGRAM, 16, fidel68k_state )
|
||||
AM_RANGE(0x104000, 0x107fff) AM_RAM
|
||||
AM_RANGE(0x300000, 0x30000f) AM_MIRROR(0x000010) AM_READWRITE8(eag_input1_r, eag_leds_w, 0x00ff)
|
||||
AM_RANGE(0x300000, 0x30000f) AM_MIRROR(0x000010) AM_WRITE8(eag_7seg_w, 0xff00) AM_READNOP
|
||||
AM_RANGE(0x400000, 0x407fff) AM_READ8(eag_cart_r, 0xff00)
|
||||
AM_RANGE(0x400000, 0x407fff) AM_READ8(cartridge_r, 0xff00)
|
||||
AM_RANGE(0x400000, 0x400001) AM_WRITE8(eag_mux_w, 0x00ff)
|
||||
AM_RANGE(0x400002, 0x400007) AM_WRITENOP // ?
|
||||
AM_RANGE(0x604000, 0x607fff) AM_RAM AM_SHARE("nvram")
|
||||
@ -332,7 +323,7 @@ static ADDRESS_MAP_START( eagv7_map, AS_PROGRAM, 32, fidel68k_state )
|
||||
AM_RANGE(0x200000, 0x2fffff) AM_RAM
|
||||
AM_RANGE(0x300000, 0x30000f) AM_MIRROR(0x000010) AM_READWRITE8(eag_input1_r, eag_leds_w, 0x00ff00ff)
|
||||
AM_RANGE(0x300000, 0x30000f) AM_MIRROR(0x000010) AM_WRITE8(eag_7seg_w, 0xff00ff00) AM_READNOP
|
||||
AM_RANGE(0x400000, 0x407fff) AM_READ8(eag_cart_r, 0xff00ff00)
|
||||
AM_RANGE(0x400000, 0x407fff) AM_READ8(cartridge_r, 0xff00ff00)
|
||||
AM_RANGE(0x400000, 0x400003) AM_WRITE8(eag_mux_w, 0x00ff0000)
|
||||
AM_RANGE(0x400004, 0x400007) AM_WRITENOP // ?
|
||||
AM_RANGE(0x604000, 0x607fff) AM_RAM AM_SHARE("nvram")
|
||||
@ -345,7 +336,7 @@ static ADDRESS_MAP_START( eagv11_map, AS_PROGRAM, 32, fidel68k_state )
|
||||
AM_RANGE(0x00200000, 0x003fffff) AM_RAM
|
||||
AM_RANGE(0x00b00000, 0x00b0000f) AM_MIRROR(0x00000010) AM_READWRITE8(eag_input1_r, eag_leds_w, 0x00ff00ff)
|
||||
AM_RANGE(0x00b00000, 0x00b0000f) AM_MIRROR(0x00000010) AM_WRITE8(eag_7seg_w, 0xff00ff00) AM_READNOP
|
||||
AM_RANGE(0x00c00000, 0x00c07fff) AM_READ8(eag_cart_r, 0xff00ff00)
|
||||
AM_RANGE(0x00c00000, 0x00c07fff) AM_READ8(cartridge_r, 0xff00ff00)
|
||||
AM_RANGE(0x00c00000, 0x00c00003) AM_WRITE8(eag_mux_w, 0x00ff0000)
|
||||
AM_RANGE(0x00c00004, 0x00c00007) AM_WRITENOP // ?
|
||||
AM_RANGE(0x00e04000, 0x00e07fff) AM_RAM AM_SHARE("nvram")
|
||||
|
@ -770,6 +770,14 @@ DEVICE_IMAGE_LOAD_MEMBER(fidelbase_state, scc_cartridge)
|
||||
return image_init_result::PASS;
|
||||
}
|
||||
|
||||
READ8_MEMBER(fidelbase_state::cartridge_r)
|
||||
{
|
||||
if (m_cart->exists())
|
||||
return m_cart->read_rom(space, offset);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Devices, I/O
|
||||
|
@ -52,6 +52,7 @@ public:
|
||||
|
||||
u16 read_inputs(int columns);
|
||||
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(scc_cartridge);
|
||||
virtual DECLARE_READ8_MEMBER(cartridge_r);
|
||||
|
||||
// display common
|
||||
int m_display_wait; // led/lamp off-delay in milliseconds (default 33ms)
|
||||
|
Loading…
Reference in New Issue
Block a user