mirror of
https://github.com/holub/mame
synced 2025-04-22 08:22:15 +03:00
mos6530n: 6530 irq pin output is enabled when PB7 ddr is set to input,
kim1: move driver to commodore folder, invqix: fix screensize off-by-1 error
This commit is contained in:
parent
8ef3dd279f
commit
1703769bee
@ -229,9 +229,9 @@ void mos6530_new_device::update_pb()
|
||||
{
|
||||
uint8_t data = (m_pb_out & m_pb_ddr) | (m_pb_ddr ^ 0xff);
|
||||
|
||||
if (m_ie_timer) {
|
||||
if (!BIT(m_pb_ddr, 7)) {
|
||||
// active low!
|
||||
if (m_irq_timer)
|
||||
if (m_ie_timer && m_irq_timer)
|
||||
data &= ~IRQ_TIMER;
|
||||
else
|
||||
data |= IRQ_TIMER;
|
||||
|
@ -101,16 +101,16 @@ public:
|
||||
DECLARE_INPUT_CHANGED_MEMBER(trigger_nmi);
|
||||
void kim1(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
private:
|
||||
uint8_t kim1_u2_read_a();
|
||||
void kim1_u2_write_a(uint8_t data);
|
||||
uint8_t kim1_u2_read_b();
|
||||
void kim1_u2_write_b(uint8_t data);
|
||||
|
||||
// device overrides
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(kim1_cassette_input);
|
||||
|
||||
void mem_map(address_map &map);
|
||||
@ -124,9 +124,9 @@ private:
|
||||
required_ioport_array<3> m_row;
|
||||
required_ioport m_special;
|
||||
|
||||
uint8_t m_u2_port_b;
|
||||
uint8_t m_311_output;
|
||||
uint32_t m_cassette_high_count;
|
||||
uint8_t m_u2_port_b = 0;
|
||||
uint8_t m_311_output = 0;
|
||||
uint32_t m_cassette_high_count = 0;
|
||||
};
|
||||
|
||||
|
||||
@ -306,7 +306,7 @@ void kim1_state::kim1(machine_config &config)
|
||||
m_cass->set_formats(kim1_cassette_formats);
|
||||
m_cass->set_default_state(CASSETTE_STOPPED);
|
||||
m_cass->add_route(ALL_OUTPUTS, "mono", 0.05);
|
||||
m_cass->set_interface ("kim1_cass");
|
||||
m_cass->set_interface("kim1_cass");
|
||||
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
@ -323,8 +323,8 @@ void kim1_state::kim1(machine_config &config)
|
||||
|
||||
ROM_START(kim1)
|
||||
ROM_REGION(0x0800,"maincpu",0)
|
||||
ROM_LOAD("6530-003.bin", 0x0000, 0x0400, CRC(a2a56502) SHA1(60b6e48f35fe4899e29166641bac3e81e3b9d220))
|
||||
ROM_LOAD("6530-002.bin", 0x0400, 0x0400, CRC(2b08e923) SHA1(054f7f6989af3a59462ffb0372b6f56f307b5362))
|
||||
ROM_LOAD("6530-003", 0x0000, 0x0400, CRC(a2a56502) SHA1(60b6e48f35fe4899e29166641bac3e81e3b9d220))
|
||||
ROM_LOAD("6530-002", 0x0400, 0x0400, CRC(2b08e923) SHA1(054f7f6989af3a59462ffb0372b6f56f307b5362))
|
||||
ROM_END
|
||||
|
||||
} // anonymous namespace
|
||||
@ -334,5 +334,5 @@ ROM_END
|
||||
// SYSTEM DRIVERS
|
||||
//**************************************************************************
|
||||
|
||||
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
|
||||
COMP( 1975, kim1, 0, 0, kim1, kim1, kim1_state, empty_init, "MOS Technologies", "KIM-1", MACHINE_SUPPORTS_SAVE)
|
||||
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
|
||||
COMP( 1976, kim1, 0, 0, kim1, kim1, kim1_state, empty_init, "MOS Technology", "KIM-1", MACHINE_SUPPORTS_SAVE)
|
@ -16186,6 +16186,9 @@ chmate //
|
||||
@source:commodore/clcd.cpp
|
||||
clcd // Commodore LCD
|
||||
|
||||
@source:commodore/kim1.cpp
|
||||
kim1 // Commodore (MOS) KIM-1 1976
|
||||
|
||||
@source:commodore/mps1230.cpp
|
||||
mps1000 // 1986 Commodore MPS-1000 (dot matrix printer)
|
||||
mps1230 // 1988 Commodore MPS-1230 near-letter-quality dot matrix printer
|
||||
@ -31881,9 +31884,6 @@ mpz80 //
|
||||
@source:morrow/tricep.cpp
|
||||
tricep //
|
||||
|
||||
@source:mos/kim1.cpp
|
||||
kim1 // Commodore (MOS) KIM-1 1975
|
||||
|
||||
@source:motorola/ampscarp.cpp
|
||||
ampscarp // Motorola Amps Car Phone
|
||||
|
||||
|
@ -132,8 +132,8 @@ namespace {
|
||||
class invqix_state : public driver_device
|
||||
{
|
||||
public:
|
||||
invqix_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
invqix_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_eeprom(*this, "eeprom"),
|
||||
m_vram(*this, "vram")
|
||||
@ -141,6 +141,9 @@ public:
|
||||
|
||||
void invqix(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void video_start() override;
|
||||
|
||||
private:
|
||||
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
|
||||
@ -162,9 +165,6 @@ private:
|
||||
required_device<eeprom_serial_93cxx_device> m_eeprom;
|
||||
required_shared_ptr<uint16_t> m_vram;
|
||||
|
||||
// driver_device overrides
|
||||
virtual void video_start() override;
|
||||
|
||||
uint16_t m_vctl = 0; // 0000 for normal, 0001 for flip, 0100 when going to change (blank?)
|
||||
};
|
||||
|
||||
@ -287,13 +287,13 @@ void invqix_state::invqix_prg_map(address_map &map)
|
||||
static INPUT_PORTS_START( invqix )
|
||||
PORT_START("SYSTEM")
|
||||
PORT_SERVICE_NO_TOGGLE( 0x01, IP_ACTIVE_LOW )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 ) // coin 1
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Left 1 player start") // start A-1 ("left start" - picks Space Invaders)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) // service
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) // coin 2
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START3 ) PORT_NAME("Left 2 players start") // start A-2
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 ) // coin 1
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Left 1 player start") // start A-1 ("left start" - picks Space Invaders)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) // service
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) // coin 2
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START3 ) PORT_NAME("Left 2 players start") // start A-2
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START("P1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
|
||||
@ -313,7 +313,7 @@ static INPUT_PORTS_START( invqix )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Right 1 player start") // start B-1 ("Right start" - picks Qix)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
void invqix_state::invqix(machine_config &config)
|
||||
@ -341,7 +341,7 @@ void invqix_state::invqix(machine_config &config)
|
||||
screen.set_refresh_hz(60);
|
||||
screen.set_screen_update(FUNC(invqix_state::screen_update));
|
||||
screen.set_size(640, 480);
|
||||
screen.set_visarea(0, 256, 0, 240);
|
||||
screen.set_visarea(0, 256-1, 0, 240-1);
|
||||
|
||||
PALETTE(config, "palette").set_entries(65536);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user