mirror of
https://github.com/holub/mame
synced 2025-04-23 08:49:55 +03:00
misc h8 drivers: digital I/O ports are 8bit (probably leftover from when they were in AS_IO address map)
This commit is contained in:
parent
8a64d24937
commit
8f5259ee6f
@ -145,14 +145,14 @@ private:
|
||||
// screen updates
|
||||
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
|
||||
uint16_t port7_r()
|
||||
uint8_t port7_r()
|
||||
{
|
||||
auto row = keyboard & 0x0f;
|
||||
if(row <= 8)
|
||||
return io_kbrow[row]->read();
|
||||
|
||||
// seems to be able to control power-on self test if not 0xff
|
||||
return 0xffff;
|
||||
return 0xff;
|
||||
}
|
||||
uint16_t keyboard_r()
|
||||
{
|
||||
|
@ -118,12 +118,12 @@ void cybiko_state::cybikoxt_mem(address_map &map)
|
||||
map(0xe00000, 0xefffff).r(FUNC(cybiko_state::cybikoxt_key_r));
|
||||
}
|
||||
|
||||
void cybiko_state::serflash_w(uint16_t data)
|
||||
void cybiko_state::serflash_w(uint8_t data)
|
||||
{
|
||||
m_flash1->cs_w ((data & 0x10) ? 0 : 1);
|
||||
m_flash1->cs_w((data & 0x10) ? 0 : 1);
|
||||
}
|
||||
|
||||
uint16_t cybiko_state::clock_r()
|
||||
uint8_t cybiko_state::clock_r()
|
||||
{
|
||||
if (m_rtc->sda_r())
|
||||
{
|
||||
@ -133,13 +133,13 @@ uint16_t cybiko_state::clock_r()
|
||||
return 0x04;
|
||||
}
|
||||
|
||||
void cybiko_state::clock_w(uint16_t data)
|
||||
void cybiko_state::clock_w(uint8_t data)
|
||||
{
|
||||
m_rtc->scl_w((data & 0x02) ? 1 : 0);
|
||||
m_rtc->sda_w((data & 0x01) ? 0 : 1);
|
||||
}
|
||||
|
||||
uint16_t cybiko_state::xtclock_r()
|
||||
uint8_t cybiko_state::xtclock_r()
|
||||
{
|
||||
if (m_rtc->sda_r())
|
||||
{
|
||||
@ -149,13 +149,13 @@ uint16_t cybiko_state::xtclock_r()
|
||||
return 0;
|
||||
}
|
||||
|
||||
void cybiko_state::xtclock_w(uint16_t data)
|
||||
void cybiko_state::xtclock_w(uint8_t data)
|
||||
{
|
||||
m_rtc->scl_w((data & 0x02) ? 1 : 0);
|
||||
m_rtc->sda_w((data & 0x40) ? 0 : 1);
|
||||
}
|
||||
|
||||
uint16_t cybiko_state::xtpower_r()
|
||||
uint8_t cybiko_state::xtpower_r()
|
||||
{
|
||||
// bit 7 = on/off button
|
||||
// bit 6 = battery charged if "1"
|
||||
@ -172,7 +172,7 @@ uint16_t cybiko_state::adc2_r()
|
||||
return 0x00;
|
||||
}
|
||||
|
||||
uint16_t cybiko_state::port0_r()
|
||||
uint8_t cybiko_state::port0_r()
|
||||
{
|
||||
// bit 3 = on/off button
|
||||
return 0x08;
|
||||
|
@ -61,15 +61,15 @@ public:
|
||||
void cybikoxt(machine_config &config);
|
||||
|
||||
private:
|
||||
void serflash_w(uint16_t data);
|
||||
uint16_t clock_r();
|
||||
void clock_w(uint16_t data);
|
||||
uint16_t xtclock_r();
|
||||
void xtclock_w(uint16_t data);
|
||||
uint16_t xtpower_r();
|
||||
void serflash_w(uint8_t data);
|
||||
uint8_t clock_r();
|
||||
void clock_w(uint8_t data);
|
||||
uint8_t xtclock_r();
|
||||
void xtclock_w(uint8_t data);
|
||||
uint8_t xtpower_r();
|
||||
uint16_t adc1_r();
|
||||
uint16_t adc2_r();
|
||||
uint16_t port0_r();
|
||||
uint8_t port0_r();
|
||||
|
||||
uint16_t cybiko_lcd_r(offs_t offset, uint16_t mem_mask = ~0);
|
||||
void cybiko_lcd_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
|
||||
|
@ -1065,7 +1065,7 @@ void metro_state::puzzlet_map(address_map &map)
|
||||
}
|
||||
|
||||
|
||||
void metro_state::puzzlet_portb_w(u16 data)
|
||||
void metro_state::puzzlet_portb_w(u8 data)
|
||||
{
|
||||
// popmessage("PORTB %02x", data);
|
||||
}
|
||||
|
@ -116,7 +116,7 @@ private:
|
||||
u16 gakusai_input_r();
|
||||
void blzntrnd_sh_bankswitch_w(u8 data);
|
||||
void puzzlet_irq_enable_w(u8 data);
|
||||
void puzzlet_portb_w(u16 data);
|
||||
void puzzlet_portb_w(u8 data);
|
||||
void k053936_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void gakusai_oki_bank_hi_w(u8 data);
|
||||
void gakusai_oki_bank_lo_w(u8 data);
|
||||
|
@ -242,11 +242,11 @@ private:
|
||||
required_shared_ptr<uint16_t> m_shared_ram;
|
||||
|
||||
uint8_t m_h8_irq5_enabled = 0;
|
||||
uint16_t m_p8 = 0;
|
||||
uint8_t m_p8 = 0;
|
||||
|
||||
uint16_t mcu_p7_read();
|
||||
uint16_t mcu_pa_read();
|
||||
void mcu_pa_write(uint16_t data);
|
||||
uint8_t mcu_p7_read();
|
||||
uint8_t mcu_pa_read();
|
||||
void mcu_pa_write(uint8_t data);
|
||||
uint16_t cuskey_r(offs_t offset);
|
||||
void cuskey_w(offs_t offset, uint16_t data);
|
||||
uint16_t printer_r();
|
||||
@ -441,17 +441,17 @@ static INPUT_PORTS_START( abcheck )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
uint16_t namcond1_state::mcu_p7_read()
|
||||
uint8_t namcond1_state::mcu_p7_read()
|
||||
{
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
uint16_t namcond1_state::mcu_pa_read()
|
||||
uint8_t namcond1_state::mcu_pa_read()
|
||||
{
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
void namcond1_state::mcu_pa_write(uint16_t data)
|
||||
void namcond1_state::mcu_pa_write(uint8_t data)
|
||||
{
|
||||
m_p8 = data;
|
||||
}
|
||||
@ -504,7 +504,6 @@ void namcond1_state::namcond1(machine_config &config)
|
||||
m_mcu->read_porta().set(FUNC(namcond1_state::mcu_pa_read));
|
||||
m_mcu->write_porta().set(FUNC(namcond1_state::mcu_pa_write));
|
||||
|
||||
|
||||
config.set_maximum_quantum(attotime::from_hz(6000));
|
||||
|
||||
YGV608(config, m_ygv608, 0);
|
||||
|
@ -1359,7 +1359,7 @@ void namcos10_state::namcos10_mgexio(machine_config &config)
|
||||
HOPPER(config, m_mgexio_hopper[2], attotime::from_msec(100), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH);
|
||||
|
||||
mgexio.port4_read_callback().set([this] (offs_t offset) {
|
||||
uint16_t r = 0;
|
||||
uint8_t r = 0;
|
||||
r |= (m_mgexio_outputs[6] & 1); // divider sol (l) sensor
|
||||
r |= (m_mgexio_outputs[7] & 1) << 1; //divider sol (r) sensor
|
||||
return r;
|
||||
@ -1370,7 +1370,7 @@ void namcos10_state::namcos10_mgexio(machine_config &config)
|
||||
});
|
||||
|
||||
mgexio.porta_read_callback().set([this] (offs_t offset) {
|
||||
uint16_t r = 0b1111;
|
||||
uint8_t r = 0b1111;
|
||||
|
||||
// update coin states
|
||||
auto curtime = machine().time();
|
||||
@ -1395,11 +1395,11 @@ void namcos10_state::namcos10_mgexio(machine_config &config)
|
||||
return r;
|
||||
});
|
||||
|
||||
mgexio.port4_write_callback().set([this] (uint16_t data) {
|
||||
mgexio.port4_write_callback().set([this] (uint8_t data) {
|
||||
m_mgexio_outputs[8] = BIT(data, 6); // win lamp
|
||||
});
|
||||
|
||||
mgexio.portb_write_callback().set([this] (uint16_t data) {
|
||||
mgexio.portb_write_callback().set([this] (uint8_t data) {
|
||||
m_mgexio_hopper[0]->motor_w(BIT(data, 0));
|
||||
m_mgexio_hopper[1]->motor_w(BIT(data, 1));
|
||||
m_mgexio_hopper[2]->motor_w(BIT(data, 4));
|
||||
@ -3260,18 +3260,18 @@ static INPUT_PORTS_START( mgexio_medal )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
PORT_START("MGEXIO_SENSOR")
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Check Sensor(2)")
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Check Sensor(1)")
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Check Sensor(4)")
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Check Sensor(3)")
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Check Sensor(6)")
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Check Sensor(5)")
|
||||
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("Check Sensor(7)")
|
||||
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_TILT )
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Check Sensor(2)")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Check Sensor(1)")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Check Sensor(4)")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Check Sensor(3)")
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Check Sensor(6)")
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Check Sensor(5)")
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("Check Sensor(7)")
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_TILT )
|
||||
|
||||
PORT_START("MGEXIO_COIN")
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_NAME("Coin Sensor(L)") PORT_CHANGED_MEMBER(DEVICE_SELF, namcos10_state, mgexio_coin_start, 0)
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_NAME("Coin Sensor(R)") PORT_CHANGED_MEMBER(DEVICE_SELF, namcos10_state, mgexio_coin_start, 1)
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_NAME("Coin Sensor(L)") PORT_CHANGED_MEMBER(DEVICE_SELF, namcos10_state, mgexio_coin_start, 0)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_NAME("Coin Sensor(R)") PORT_CHANGED_MEMBER(DEVICE_SELF, namcos10_state, mgexio_coin_start, 1)
|
||||
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
@ -208,13 +208,13 @@ void namcos10_mgexio_device::map(address_map &map)
|
||||
}
|
||||
|
||||
template <int Port>
|
||||
uint16_t namcos10_mgexio_device::port_r()
|
||||
uint8_t namcos10_mgexio_device::port_r()
|
||||
{
|
||||
return m_port_read[Port](0);
|
||||
}
|
||||
|
||||
template <int Port>
|
||||
void namcos10_mgexio_device::port_w(uint16_t data)
|
||||
void namcos10_mgexio_device::port_w(uint8_t data)
|
||||
{
|
||||
m_port_write[Port](data);
|
||||
}
|
||||
|
@ -116,8 +116,8 @@ protected:
|
||||
private:
|
||||
void map(address_map &map);
|
||||
|
||||
template <int Port> uint16_t port_r();
|
||||
template <int Port> void port_w(uint16_t data);
|
||||
template <int Port> uint8_t port_r();
|
||||
template <int Port> void port_w(uint8_t data);
|
||||
|
||||
TIMER_CALLBACK_MEMBER(cpu_reset_timeout);
|
||||
|
||||
@ -125,8 +125,8 @@ private:
|
||||
required_shared_ptr<uint16_t> m_ram;
|
||||
required_device<nvram_device> m_nvram;
|
||||
|
||||
devcb_read16::array<7> m_port_read;
|
||||
devcb_write16::array<7> m_port_write;
|
||||
devcb_read8::array<7> m_port_read;
|
||||
devcb_write8::array<7> m_port_write;
|
||||
|
||||
emu_timer *m_cpu_reset_timer;
|
||||
|
||||
|
@ -108,11 +108,11 @@ public:
|
||||
|
||||
void mpeg_dreq_w(int state);
|
||||
|
||||
uint16_t p6_r();
|
||||
void p6_w(uint16_t data);
|
||||
uint16_t pb_r();
|
||||
void pb_w(uint16_t data);
|
||||
void pa_w(uint16_t data);
|
||||
uint8_t p6_r();
|
||||
void p6_w(uint8_t data);
|
||||
uint8_t pb_r();
|
||||
void pb_w(uint8_t data);
|
||||
void pa_w(uint8_t data);
|
||||
|
||||
uint8_t cs0_r(offs_t offset);
|
||||
void cs0_w(offs_t offset, uint8_t data);
|
||||
@ -141,12 +141,12 @@ void hrdvd_state::mpeg_dreq_w(int state)
|
||||
m_subcpu->set_input_line(H8_INPUT_LINE_DREQ0, m_mpeg_dreq && !(m_p6 & 0x04));
|
||||
}
|
||||
|
||||
uint16_t hrdvd_state::p6_r()
|
||||
uint8_t hrdvd_state::p6_r()
|
||||
{
|
||||
return m_p6;
|
||||
}
|
||||
|
||||
void hrdvd_state::p6_w(uint16_t data)
|
||||
void hrdvd_state::p6_w(uint8_t data)
|
||||
{
|
||||
u8 delta = data ^ m_p6;
|
||||
m_p6 = data;
|
||||
@ -158,12 +158,12 @@ void hrdvd_state::p6_w(uint16_t data)
|
||||
logerror("p6 %02x\n", m_p6);
|
||||
}
|
||||
|
||||
uint16_t hrdvd_state::pb_r()
|
||||
uint8_t hrdvd_state::pb_r()
|
||||
{
|
||||
return m_pb;
|
||||
}
|
||||
|
||||
void hrdvd_state::pb_w(uint16_t data)
|
||||
void hrdvd_state::pb_w(uint8_t data)
|
||||
{
|
||||
u8 delta = data ^ m_pb;
|
||||
m_pb = (m_pb & 0xc0) | (data & 0x3f);
|
||||
@ -174,7 +174,7 @@ void hrdvd_state::pb_w(uint16_t data)
|
||||
logerror("pb %02x\n", data);
|
||||
}
|
||||
|
||||
void hrdvd_state::pa_w(uint16_t data)
|
||||
void hrdvd_state::pa_w(uint8_t data)
|
||||
{
|
||||
u8 delta = data ^ m_pa;
|
||||
m_pa = data;
|
||||
|
@ -56,8 +56,8 @@ private:
|
||||
virtual void machine_reset() override;
|
||||
|
||||
void scsp_irq(offs_t offset, uint8_t data);
|
||||
uint16_t p6_r();
|
||||
void p6_w(uint16_t data);
|
||||
uint8_t p6_r();
|
||||
void p6_w(uint8_t data);
|
||||
|
||||
required_device<h83007_device> m_maincpu;
|
||||
required_device<m68000_device> m_scspcpu;
|
||||
@ -82,12 +82,12 @@ uint32_t flashbeats_state::screen_update(screen_device &screen, bitmap_rgb32 &bi
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint16_t flashbeats_state::p6_r()
|
||||
uint8_t flashbeats_state::p6_r()
|
||||
{
|
||||
return (m_eeprom->do_read() << 3);
|
||||
}
|
||||
|
||||
void flashbeats_state::p6_w(uint16_t data)
|
||||
void flashbeats_state::p6_w(uint8_t data)
|
||||
{
|
||||
m_eeprom->clk_write((data & 0x02) ? ASSERT_LINE : CLEAR_LINE);
|
||||
m_eeprom->di_write((data >> 2) & 1);
|
||||
|
@ -851,7 +851,7 @@ void funcube_state::funcube_sub_map(address_map &map)
|
||||
|
||||
#define FUNCUBE_SUB_CPU_CLOCK (XTAL(14'745'600))
|
||||
|
||||
uint16_t funcube_state::coins_r()
|
||||
uint8_t funcube_state::coins_r()
|
||||
{
|
||||
uint8_t ret = ioport("SWITCH")->read();
|
||||
uint8_t coin_bit0 = 1; // active low
|
||||
@ -886,7 +886,7 @@ void funcube_state::funcube_debug_outputs()
|
||||
//popmessage("LED: %02x OUT: %02x", m_funcube_leds, m_outputs);
|
||||
}
|
||||
|
||||
void funcube_state::leds_w(uint16_t data)
|
||||
void funcube_state::leds_w(uint8_t data)
|
||||
{
|
||||
m_funcube_leds = data;
|
||||
|
||||
@ -902,13 +902,13 @@ void funcube_state::leds_w(uint16_t data)
|
||||
funcube_debug_outputs();
|
||||
}
|
||||
|
||||
uint16_t funcube_state::outputs_r()
|
||||
uint8_t funcube_state::outputs_r()
|
||||
{
|
||||
// Bits 1,2,3 read
|
||||
return m_outputs;
|
||||
}
|
||||
|
||||
void funcube_state::outputs_w(uint16_t data)
|
||||
void funcube_state::outputs_w(uint8_t data)
|
||||
{
|
||||
m_outputs = data;
|
||||
|
||||
@ -925,7 +925,7 @@ void funcube_state::outputs_w(uint16_t data)
|
||||
funcube_debug_outputs();
|
||||
}
|
||||
|
||||
uint16_t funcube_state::battery_r()
|
||||
uint8_t funcube_state::battery_r()
|
||||
{
|
||||
return ioport("BATTERY")->read() ? 0x40 : 0x00;
|
||||
}
|
||||
|
@ -187,11 +187,11 @@ private:
|
||||
void nvram_w(offs_t offset, uint8_t data) { m_nvram[offset] = data; }
|
||||
|
||||
uint32_t debug_r();
|
||||
uint16_t coins_r();
|
||||
void leds_w(uint16_t data);
|
||||
uint16_t outputs_r();
|
||||
void outputs_w(uint16_t data);
|
||||
uint16_t battery_r();
|
||||
uint8_t coins_r();
|
||||
void leds_w(uint8_t data);
|
||||
uint8_t outputs_r();
|
||||
void outputs_w(uint8_t data);
|
||||
uint8_t battery_r();
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(funcube_interrupt);
|
||||
|
||||
@ -201,7 +201,7 @@ private:
|
||||
|
||||
void funcube_debug_outputs();
|
||||
|
||||
uint16_t m_outputs, m_funcube_leds;
|
||||
uint8_t m_outputs, m_funcube_leds;
|
||||
uint64_t m_coin_start_cycles = 0;
|
||||
uint8_t m_hopper_motor = 0;
|
||||
};
|
||||
|
@ -147,14 +147,14 @@ protected:
|
||||
private:
|
||||
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
|
||||
uint16_t port3_r();
|
||||
void port3_w(uint16_t data);
|
||||
uint16_t port5_r();
|
||||
void port5_w(uint16_t data);
|
||||
uint16_t port6_r();
|
||||
void port6_w(uint16_t data);
|
||||
uint16_t porta_r();
|
||||
uint16_t portg_r();
|
||||
uint8_t port3_r();
|
||||
void port3_w(uint8_t data);
|
||||
uint8_t port5_r();
|
||||
void port5_w(uint8_t data);
|
||||
uint8_t port6_r();
|
||||
void port6_w(uint8_t data);
|
||||
uint8_t porta_r();
|
||||
uint8_t portg_r();
|
||||
|
||||
void vctl_w(uint16_t data);
|
||||
|
||||
@ -228,42 +228,42 @@ uint32_t invqix_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint16_t invqix_state::port3_r()
|
||||
uint8_t invqix_state::port3_r()
|
||||
{
|
||||
return (m_eeprom->do_read() << 5) | 0x03;
|
||||
}
|
||||
|
||||
void invqix_state::port3_w(uint16_t data)
|
||||
void invqix_state::port3_w(uint8_t data)
|
||||
{
|
||||
m_eeprom->cs_write((data >> 2) & 1);
|
||||
m_eeprom->di_write((data >> 4) & 1);
|
||||
m_eeprom->clk_write((data >> 3) & 1);
|
||||
}
|
||||
|
||||
uint16_t invqix_state::port5_r()
|
||||
uint8_t invqix_state::port5_r()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
void invqix_state::port5_w(uint16_t data)
|
||||
void invqix_state::port5_w(uint8_t data)
|
||||
{
|
||||
}
|
||||
|
||||
uint16_t invqix_state::port6_r()
|
||||
uint8_t invqix_state::port6_r()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
void invqix_state::port6_w(uint16_t data)
|
||||
void invqix_state::port6_w(uint8_t data)
|
||||
{
|
||||
}
|
||||
|
||||
uint16_t invqix_state::porta_r()
|
||||
uint8_t invqix_state::porta_r()
|
||||
{
|
||||
return 0xf0;
|
||||
}
|
||||
|
||||
uint16_t invqix_state::portg_r()
|
||||
uint8_t invqix_state::portg_r()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
@ -53,9 +53,9 @@ private:
|
||||
u16 adc_battery_r();
|
||||
u16 adc_midisw_r();
|
||||
|
||||
void p6_w(u16 data);
|
||||
void pa_w(u16 data);
|
||||
void pb_w(u16 data);
|
||||
void p6_w(u8 data);
|
||||
void pa_w(u8 data);
|
||||
void pb_w(u8 data);
|
||||
u8 pb_r();
|
||||
|
||||
void mu10_map(address_map &map);
|
||||
@ -98,13 +98,13 @@ u16 mu10_state::adc_midisw_r()
|
||||
return 0x000;
|
||||
}
|
||||
|
||||
void mu10_state::p6_w(u16 data)
|
||||
void mu10_state::p6_w(u8 data)
|
||||
{
|
||||
cur_p6 = data;
|
||||
logerror("reset swp %d dac %d\n", BIT(data, 2), BIT(data, 0));
|
||||
}
|
||||
|
||||
void mu10_state::pb_w(u16 data)
|
||||
void mu10_state::pb_w(u8 data)
|
||||
{
|
||||
cur_pb = data;
|
||||
logerror("led %d gain %d\n", BIT(data, 0), BIT(data, 2));
|
||||
@ -116,7 +116,7 @@ u8 mu10_state::pb_r()
|
||||
return 8;
|
||||
}
|
||||
|
||||
void mu10_state::pa_w(u16 data)
|
||||
void mu10_state::pa_w(u8 data)
|
||||
{
|
||||
cur_pa = data;
|
||||
logerror("mac host pin 1 %d\n", !BIT(data, 2));
|
||||
|
@ -199,19 +199,19 @@ protected:
|
||||
u16 adc_midisw_r();
|
||||
u16 adc_battery_r();
|
||||
|
||||
void p1_w(u16 data);
|
||||
u16 p1_r();
|
||||
void p2_w(u16 data);
|
||||
void p3_w(u16 data);
|
||||
void p5_w(u16 data);
|
||||
void p6_w(u16 data);
|
||||
u16 p6_r();
|
||||
void pa_w(u16 data);
|
||||
u16 pa_r();
|
||||
void pb_w(u16 data);
|
||||
u16 pb_r();
|
||||
void pf_w(u16 data);
|
||||
void pg_w(u16 data);
|
||||
void p1_w(u8 data);
|
||||
u8 p1_r();
|
||||
void p2_w(u8 data);
|
||||
void p3_w(u8 data);
|
||||
void p5_w(u8 data);
|
||||
void p6_w(u8 data);
|
||||
u8 p6_r();
|
||||
void pa_w(u8 data);
|
||||
u8 pa_r();
|
||||
void pb_w(u8 data);
|
||||
u8 pb_r();
|
||||
void pf_w(u8 data);
|
||||
void pg_w(u8 data);
|
||||
|
||||
void ext_serial_update();
|
||||
void h8_tx(int state);
|
||||
@ -305,12 +305,12 @@ u16 mu100r_state::adc_type_r()
|
||||
return 0x3ff;
|
||||
}
|
||||
|
||||
void mu100_state::p1_w(u16 data)
|
||||
void mu100_state::p1_w(u8 data)
|
||||
{
|
||||
m_cur_p1 = data;
|
||||
}
|
||||
|
||||
u16 mu100_state::p1_r()
|
||||
u8 mu100_state::p1_r()
|
||||
{
|
||||
if((m_cur_p2 & P2_LCD_ENABLE)) {
|
||||
if(m_cur_p2 & P2_LCD_RW) {
|
||||
@ -334,9 +334,9 @@ u16 mu100_state::p1_r()
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
void mu100_state::p2_w(u16 data)
|
||||
void mu100_state::p2_w(u8 data)
|
||||
{
|
||||
// LCB enable edge
|
||||
// LCD enable edge
|
||||
if(!(m_cur_p2 & P2_LCD_ENABLE) && (data & P2_LCD_ENABLE)) {
|
||||
if(!(m_cur_p2 & P2_LCD_RW)) {
|
||||
if(m_cur_p2 & P2_LCD_RS)
|
||||
@ -349,44 +349,44 @@ void mu100_state::p2_w(u16 data)
|
||||
m_cur_p2 = data;
|
||||
}
|
||||
|
||||
void mu100_state::p3_w(u16 data)
|
||||
void mu100_state::p3_w(u8 data)
|
||||
{
|
||||
m_cur_p3 = data;
|
||||
logerror("A/D gain control %d\n", (data >> 4) & 3);
|
||||
}
|
||||
|
||||
void mu100_state::p5_w(u16 data)
|
||||
void mu100_state::p5_w(u8 data)
|
||||
{
|
||||
m_cur_p5 = data;
|
||||
logerror("Rotary reset %d\n", (data >> 3) & 1);
|
||||
}
|
||||
|
||||
void mu100_state::p6_w(u16 data)
|
||||
void mu100_state::p6_w(u8 data)
|
||||
{
|
||||
m_cur_p6 = data;
|
||||
m_cur_sw = (m_cur_sw & 0xc) | BIT(m_cur_pf, 2, 2);
|
||||
ext_serial_update();
|
||||
}
|
||||
|
||||
u16 mu100_state::p6_r()
|
||||
u8 mu100_state::p6_r()
|
||||
{
|
||||
// logerror("plug in detect read\n");
|
||||
return 0x00;
|
||||
}
|
||||
|
||||
void mu100_state::pa_w(u16 data)
|
||||
void mu100_state::pa_w(u8 data)
|
||||
{
|
||||
m_cur_pa = data;
|
||||
logerror("rotary encoder %d\n", (data >> 6) & 3);
|
||||
}
|
||||
|
||||
u16 mu100_state::pa_r()
|
||||
u8 mu100_state::pa_r()
|
||||
{
|
||||
logerror("offline detect read\n");
|
||||
return 0x00;
|
||||
}
|
||||
|
||||
void mu100_state::pf_w(u16 data)
|
||||
void mu100_state::pf_w(u8 data)
|
||||
{
|
||||
if(!(m_cur_pf & 0x01) && (data & 0x01)) {
|
||||
m_cur_ic32 = m_cur_p1;
|
||||
@ -397,7 +397,7 @@ void mu100_state::pf_w(u16 data)
|
||||
ext_serial_update();
|
||||
}
|
||||
|
||||
void mu100_state::pg_w(u16 data)
|
||||
void mu100_state::pg_w(u8 data)
|
||||
{
|
||||
m_cur_pg = data;
|
||||
m_cur_sw = (m_cur_sw & 0xb) | (BIT(m_cur_pg, 0) << 2);
|
||||
|
@ -34,7 +34,7 @@ public:
|
||||
mu15_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
// , m_nvram(*this, "ram")
|
||||
//, m_nvram(*this, "ram")
|
||||
, m_lcd(*this, "lcd")
|
||||
, m_ram1(*this, "ram1")
|
||||
, m_ram2(*this, "ram2")
|
||||
@ -106,7 +106,7 @@ u16 mu15_state::adc_battery_r()
|
||||
return 0x200;
|
||||
}
|
||||
|
||||
void mu15_state::p6_w(u16 data)
|
||||
void mu15_state::p6_w(u8 data)
|
||||
{
|
||||
data ^= P6_LCD_ENABLE;
|
||||
if(!(cur_p6 & P6_LCD_ENABLE) && (data & P6_LCD_ENABLE)) {
|
||||
@ -121,32 +121,32 @@ void mu15_state::p6_w(u16 data)
|
||||
cur_p6 = data;
|
||||
}
|
||||
|
||||
u16 mu15_state::p6_r()
|
||||
u8 mu15_state::p6_r()
|
||||
{
|
||||
return cur_p6;
|
||||
}
|
||||
|
||||
u16 mu15_state::pb_r()
|
||||
u8 mu15_state::pb_r()
|
||||
{
|
||||
return cur_pb;
|
||||
}
|
||||
|
||||
void mu15_state::pb_w(u16 data)
|
||||
void mu15_state::pb_w(u8 data)
|
||||
{
|
||||
cur_pb = data;
|
||||
}
|
||||
|
||||
void mu15_state::pa_w(u16 data)
|
||||
void mu15_state::pa_w(u8 data)
|
||||
{
|
||||
cur_pa = data;
|
||||
}
|
||||
|
||||
void mu15_state::pc_w(u16 data)
|
||||
void mu15_state::pc_w(u8 data)
|
||||
{
|
||||
cur_pc = data;
|
||||
}
|
||||
|
||||
u16 mu15_state::pa_r()
|
||||
u8 mu15_state::pa_r()
|
||||
{
|
||||
if((cur_p6 & P6_LCD_ENABLE)) {
|
||||
if(cur_p6 & P6_LCD_RW)
|
||||
@ -161,9 +161,9 @@ u16 mu15_state::pa_r()
|
||||
return cur_pa;
|
||||
}
|
||||
|
||||
u16 mu15_state::pc_r()
|
||||
u8 mu15_state::pc_r()
|
||||
{
|
||||
u16 res = cur_pc | 0x7c;
|
||||
u8 res = cur_pc | 0x7c;
|
||||
if(!(cur_pc & 0x01))
|
||||
res &= m_ioport_o0->read();
|
||||
if(!(cur_pc & 0x02))
|
||||
|
@ -52,10 +52,10 @@ private:
|
||||
u8 m_lcd_ctrl = 0U;
|
||||
u8 m_lcd_data = 0U;
|
||||
|
||||
void lcd_ctrl_w(u16 data);
|
||||
u16 lcd_ctrl_r();
|
||||
void lcd_data_w(u16 data);
|
||||
u16 lcd_data_r();
|
||||
void lcd_ctrl_w(u8 data);
|
||||
u8 lcd_ctrl_r();
|
||||
void lcd_data_w(u8 data);
|
||||
u8 lcd_data_r();
|
||||
|
||||
u8 m_matrixsel;
|
||||
u8 matrix_r();
|
||||
@ -98,7 +98,7 @@ u8 mu5_state::matrix_r()
|
||||
return data;
|
||||
}
|
||||
|
||||
void mu5_state::lcd_ctrl_w(u16 data)
|
||||
void mu5_state::lcd_ctrl_w(u8 data)
|
||||
{
|
||||
// bit 2 = rs
|
||||
// bit 1 = r/w
|
||||
@ -124,17 +124,17 @@ void mu5_state::lcd_ctrl_w(u16 data)
|
||||
}
|
||||
}
|
||||
|
||||
u16 mu5_state::lcd_ctrl_r()
|
||||
u8 mu5_state::lcd_ctrl_r()
|
||||
{
|
||||
return m_lcd_ctrl;
|
||||
}
|
||||
|
||||
void mu5_state::lcd_data_w(u16 data)
|
||||
void mu5_state::lcd_data_w(u8 data)
|
||||
{
|
||||
m_lcd_data = data;
|
||||
}
|
||||
|
||||
u16 mu5_state::lcd_data_r()
|
||||
u8 mu5_state::lcd_data_r()
|
||||
{
|
||||
return m_lcd_data;
|
||||
}
|
||||
|
@ -96,14 +96,14 @@ private:
|
||||
u16 adc_midisw_r();
|
||||
u16 adc_battery_r();
|
||||
|
||||
void p6_w(u16 data);
|
||||
u16 p6_r();
|
||||
void pa_w(u16 data);
|
||||
u16 pa_r();
|
||||
void pb_w(u16 data);
|
||||
u16 pb_r();
|
||||
void pc_w(u16 data);
|
||||
u16 pc_r();
|
||||
void p6_w(u8 data);
|
||||
u8 p6_r();
|
||||
void pa_w(u8 data);
|
||||
u8 pa_r();
|
||||
void pb_w(u8 data);
|
||||
u8 pb_r();
|
||||
void pc_w(u8 data);
|
||||
u8 pc_r();
|
||||
|
||||
void mu50_map(address_map &map);
|
||||
|
||||
@ -157,7 +157,7 @@ u16 mu50_state::adc_battery_r()
|
||||
return 0x200;
|
||||
}
|
||||
|
||||
void mu50_state::p6_w(u16 data)
|
||||
void mu50_state::p6_w(u8 data)
|
||||
{
|
||||
data ^= P6_LCD_ENABLE;
|
||||
if(!(cur_p6 & P6_LCD_ENABLE) && (data & P6_LCD_ENABLE)) {
|
||||
@ -172,32 +172,32 @@ void mu50_state::p6_w(u16 data)
|
||||
cur_p6 = data;
|
||||
}
|
||||
|
||||
u16 mu50_state::p6_r()
|
||||
u8 mu50_state::p6_r()
|
||||
{
|
||||
return cur_p6;
|
||||
}
|
||||
|
||||
u16 mu50_state::pb_r()
|
||||
u8 mu50_state::pb_r()
|
||||
{
|
||||
return cur_pb;
|
||||
}
|
||||
|
||||
void mu50_state::pb_w(u16 data)
|
||||
void mu50_state::pb_w(u8 data)
|
||||
{
|
||||
cur_pb = data;
|
||||
}
|
||||
|
||||
void mu50_state::pa_w(u16 data)
|
||||
void mu50_state::pa_w(u8 data)
|
||||
{
|
||||
cur_pa = data;
|
||||
}
|
||||
|
||||
void mu50_state::pc_w(u16 data)
|
||||
void mu50_state::pc_w(u8 data)
|
||||
{
|
||||
cur_pc = data;
|
||||
}
|
||||
|
||||
u16 mu50_state::pa_r()
|
||||
u8 mu50_state::pa_r()
|
||||
{
|
||||
if((cur_p6 & P6_LCD_ENABLE)) {
|
||||
if(cur_p6 & P6_LCD_RW)
|
||||
@ -212,9 +212,9 @@ u16 mu50_state::pa_r()
|
||||
return cur_pa;
|
||||
}
|
||||
|
||||
u16 mu50_state::pc_r()
|
||||
u8 mu50_state::pc_r()
|
||||
{
|
||||
u16 res = cur_pc | 0x7c;
|
||||
u8 res = cur_pc | 0x7c;
|
||||
if(!(cur_pc & 0x01))
|
||||
res &= m_ioport_o0->read();
|
||||
if(!(cur_pc & 0x02))
|
||||
|
@ -211,12 +211,12 @@ private:
|
||||
u16 adc_midisw_r();
|
||||
u16 adc_battery_r();
|
||||
|
||||
void p6_w(u16 data);
|
||||
u16 p6_r();
|
||||
void pa_w(u16 data);
|
||||
u16 pa_r();
|
||||
void pb_w(u16 data);
|
||||
u16 pb_r();
|
||||
void p6_w(u8 data);
|
||||
u8 p6_r();
|
||||
void pa_w(u8 data);
|
||||
u8 pa_r();
|
||||
void pb_w(u8 data);
|
||||
u8 pb_r();
|
||||
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
@ -267,12 +267,12 @@ u16 mu80_state::adc_battery_r()
|
||||
return 0x200;
|
||||
}
|
||||
|
||||
void mu80_state::pb_w(u16 data)
|
||||
void mu80_state::pb_w(u8 data)
|
||||
{
|
||||
cur_pb = data;
|
||||
}
|
||||
|
||||
u16 mu80_state::pb_r()
|
||||
u8 mu80_state::pb_r()
|
||||
{
|
||||
if((cur_pa & PA_LCD_ENABLE)) {
|
||||
if(cur_pa & PA_LCD_RW) {
|
||||
@ -297,17 +297,17 @@ u16 mu80_state::pb_r()
|
||||
return cur_pb;
|
||||
}
|
||||
|
||||
void mu80_state::p6_w(u16 data)
|
||||
void mu80_state::p6_w(u8 data)
|
||||
{
|
||||
cur_p6 = data;
|
||||
}
|
||||
|
||||
u16 mu80_state::p6_r()
|
||||
u8 mu80_state::p6_r()
|
||||
{
|
||||
return cur_p6;
|
||||
}
|
||||
|
||||
void mu80_state::pa_w(u16 data)
|
||||
void mu80_state::pa_w(u8 data)
|
||||
{
|
||||
data ^= PA_LCD_ENABLE;
|
||||
if(!(cur_pa & PA_LCD_ENABLE) && (data & PA_LCD_ENABLE)) {
|
||||
@ -325,7 +325,7 @@ void mu80_state::pa_w(u16 data)
|
||||
cur_pa = data;
|
||||
}
|
||||
|
||||
u16 mu80_state::pa_r()
|
||||
u8 mu80_state::pa_r()
|
||||
{
|
||||
return cur_pa;
|
||||
}
|
||||
|
@ -83,9 +83,9 @@ private:
|
||||
u16 adc_midisw_r();
|
||||
u16 adc_battery_r();
|
||||
|
||||
void pa_w(u16 data);
|
||||
void pb_w(u16 data);
|
||||
u16 pb_r();
|
||||
void pa_w(u8 data);
|
||||
void pb_w(u8 data);
|
||||
u8 pb_r();
|
||||
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
@ -140,12 +140,12 @@ u16 mu90_state::adc_battery_r()
|
||||
return 0x200;
|
||||
}
|
||||
|
||||
void mu90_state::pb_w(u16 data)
|
||||
void mu90_state::pb_w(u8 data)
|
||||
{
|
||||
cur_pb = data;
|
||||
}
|
||||
|
||||
u16 mu90_state::pb_r()
|
||||
u8 mu90_state::pb_r()
|
||||
{
|
||||
u8 res = 0xff;
|
||||
if((cur_pa & 0x20)) {
|
||||
@ -167,7 +167,7 @@ u16 mu90_state::pb_r()
|
||||
return res;
|
||||
}
|
||||
|
||||
void mu90_state::pa_w(u16 data)
|
||||
void mu90_state::pa_w(u8 data)
|
||||
{
|
||||
if(!(cur_pa & 0x01) && (data & 0x01)) {
|
||||
m_lcd->set_contrast(cur_pb & 7);
|
||||
|
@ -107,7 +107,7 @@ private:
|
||||
|
||||
u8 sw_sel;
|
||||
|
||||
void pa_w(u16 data) { if (data) sw_sel = data; }
|
||||
void pa_w(u8 data) { if (data) sw_sel = data; }
|
||||
u8 sw_in();
|
||||
u16 adc_bkupbat_r() { return 0x2a0; }
|
||||
void mem_map(address_map &map);
|
||||
|
@ -59,24 +59,12 @@ public:
|
||||
void vl70(machine_config &config);
|
||||
|
||||
private:
|
||||
enum {
|
||||
P2_LCD_RS = 0x01,
|
||||
P2_LCD_RW = 0x02,
|
||||
P2_LCD_ENABLE = 0x04
|
||||
};
|
||||
|
||||
enum {
|
||||
P6_LCD_RS = 0x04,
|
||||
P6_LCD_RW = 0x02,
|
||||
P6_LCD_ENABLE = 0x01
|
||||
};
|
||||
|
||||
enum {
|
||||
PA_LCD_RS = 0x02,
|
||||
PA_LCD_ENABLE = 0x20,
|
||||
PA_LCD_RW = 0x40
|
||||
};
|
||||
|
||||
required_device<h83003_device> m_vl70cpu;
|
||||
required_device<dspv_device> m_dspv;
|
||||
required_device<meg_device> m_meg;
|
||||
@ -85,20 +73,18 @@ private:
|
||||
required_ioport m_ioport_b1;
|
||||
required_ioport m_ioport_b2;
|
||||
|
||||
u8 cur_p1, cur_p2, cur_p3, cur_p5, cur_p6, cur_pa, cur_pc, cur_pf, cur_pg;
|
||||
u8 cur_ic32;
|
||||
u8 cur_p6, cur_pa, cur_pc;
|
||||
|
||||
u16 adc_midisw_r();
|
||||
u16 adc_battery_r();
|
||||
u16 adc_breath_r();
|
||||
|
||||
void p6_w(u16 data);
|
||||
u16 p6_r();
|
||||
void pa_w(u16 data);
|
||||
u16 pa_r();
|
||||
void pb_w(u16 data);
|
||||
void pc_w(u16 data);
|
||||
u16 pc_r();
|
||||
void p6_w(u8 data);
|
||||
void pa_w(u8 data);
|
||||
u8 pa_r();
|
||||
void pb_w(u8 data);
|
||||
void pc_w(u8 data);
|
||||
u8 pc_r();
|
||||
|
||||
virtual void machine_start() override;
|
||||
void vl70_map(address_map &map);
|
||||
@ -106,7 +92,7 @@ private:
|
||||
|
||||
void vl70_state::machine_start()
|
||||
{
|
||||
cur_p1 = cur_p2 = cur_p3 = cur_p5 = cur_p6 = cur_pa = cur_pc = cur_pf = cur_pg = cur_ic32 = 0xff;
|
||||
cur_p6 = cur_pa = cur_pc = 0xff;
|
||||
}
|
||||
|
||||
void vl70_state::vl70_map(address_map &map)
|
||||
@ -135,7 +121,7 @@ u16 vl70_state::adc_breath_r()
|
||||
return 0x000;
|
||||
}
|
||||
|
||||
void vl70_state::p6_w(u16 data)
|
||||
void vl70_state::p6_w(u8 data)
|
||||
{
|
||||
if(!(cur_p6 & P6_LCD_ENABLE) && (data & P6_LCD_ENABLE)) {
|
||||
if(!(cur_p6 & P6_LCD_RW)) {
|
||||
@ -149,17 +135,17 @@ void vl70_state::p6_w(u16 data)
|
||||
cur_p6 = data;
|
||||
}
|
||||
|
||||
void vl70_state::pb_w(u16 data)
|
||||
void vl70_state::pb_w(u8 data)
|
||||
{
|
||||
m_lcd->set_leds(bitswap<6>((data >> 2) ^ 0x3f, 5, 3, 1, 4, 2, 0));
|
||||
}
|
||||
|
||||
void vl70_state::pc_w(u16 data)
|
||||
void vl70_state::pc_w(u8 data)
|
||||
{
|
||||
cur_pc = data;
|
||||
}
|
||||
|
||||
u16 vl70_state::pc_r()
|
||||
u8 vl70_state::pc_r()
|
||||
{
|
||||
u8 r = 0xff;
|
||||
if(!(cur_pc & 0x01))
|
||||
@ -171,17 +157,12 @@ u16 vl70_state::pc_r()
|
||||
return r;
|
||||
}
|
||||
|
||||
u16 vl70_state::p6_r()
|
||||
{
|
||||
return cur_p6;
|
||||
}
|
||||
|
||||
void vl70_state::pa_w(u16 data)
|
||||
void vl70_state::pa_w(u8 data)
|
||||
{
|
||||
cur_pa = data;
|
||||
}
|
||||
|
||||
u16 vl70_state::pa_r()
|
||||
u8 vl70_state::pa_r()
|
||||
{
|
||||
if((cur_p6 & P6_LCD_ENABLE)) {
|
||||
if(cur_p6 & P6_LCD_RW)
|
||||
@ -209,7 +190,6 @@ void vl70_state::vl70(machine_config &config)
|
||||
m_vl70cpu->read_adc<5>().set_constant(0);
|
||||
m_vl70cpu->read_adc<6>().set_constant(0);
|
||||
m_vl70cpu->read_adc<7>().set_constant(0);
|
||||
m_vl70cpu->read_port6().set(FUNC(vl70_state::p6_r));
|
||||
m_vl70cpu->write_port6().set(FUNC(vl70_state::p6_w));
|
||||
m_vl70cpu->read_porta().set(FUNC(vl70_state::pa_r));
|
||||
m_vl70cpu->write_porta().set(FUNC(vl70_state::pa_w));
|
||||
|
Loading…
Reference in New Issue
Block a user