summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2018-03-06 00:57:51 -0500
committer AJR <ajrhacker@users.noreply.github.com>2018-03-06 00:57:51 -0500
commit7c3a6903f1bf5076fdea53f7f8a7e9a93f9313ee (patch)
tree9aebe1ff4dd2b7e4a6200c7f85a52aa941455d79
parent4a3622950d6ea1498def90b6cb0e3a6f107e6bda (diff)
apple3.cpp: machine().first_screen() -> m_screen; use required_device_array for VIAs (nw)
-rw-r--r--src/mame/drivers/apple3.cpp1
-rw-r--r--src/mame/includes/apple3.h9
-rw-r--r--src/mame/machine/apple3.cpp87
3 files changed, 48 insertions, 49 deletions
diff --git a/src/mame/drivers/apple3.cpp b/src/mame/drivers/apple3.cpp
index 53988c5389b..c53681ea166 100644
--- a/src/mame/drivers/apple3.cpp
+++ b/src/mame/drivers/apple3.cpp
@@ -29,7 +29,6 @@
#include "bus/rs232/rs232.h"
-#include "screen.h"
#include "softlist.h"
#include "speaker.h"
diff --git a/src/mame/includes/apple3.h b/src/mame/includes/apple3.h
index 1b15abe70a8..00090fec707 100644
--- a/src/mame/includes/apple3.h
+++ b/src/mame/includes/apple3.h
@@ -24,6 +24,7 @@
#include "machine/wozfdc.h"
#include "imagedev/floppy.h"
#include "formats/flopimg.h"
+#include "screen.h"
#define VAR_VM0 0x0001
#define VAR_VM1 0x0002
@@ -41,8 +42,7 @@ public:
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_ram(*this, RAM_TAG),
- m_via_0(*this, "via6522_0"),
- m_via_1(*this, "via6522_1"),
+ m_via(*this, "via6522_%u", 0),
m_acia(*this, "acia"),
m_fdc(*this, "fdc"),
m_ay3600(*this, "ay3600"),
@@ -52,6 +52,7 @@ public:
m_dac(*this, "dac"),
m_kbspecial(*this, "keyb_special"),
m_palette(*this, "palette"),
+ m_screen(*this, "screen"),
m_joy1x(*this, "joy_1_x"),
m_joy1y(*this, "joy_1_y"),
m_joy2x(*this, "joy_2_x"),
@@ -67,8 +68,7 @@ public:
required_device<m6502_device> m_maincpu;
required_device<ram_device> m_ram;
- required_device<via6522_device> m_via_0;
- required_device<via6522_device> m_via_1;
+ required_device_array<via6522_device, 2> m_via;
required_device<mos6551_device> m_acia;
required_device<appleiii_fdc_device> m_fdc;
required_device<ay3600_device> m_ay3600;
@@ -78,6 +78,7 @@ public:
required_device<dac_byte_interface> m_dac;
required_ioport m_kbspecial;
required_device<palette_device> m_palette;
+ required_device<screen_device> m_screen;
required_ioport m_joy1x, m_joy1y, m_joy2x, m_joy2y, m_joybuttons;
required_device<timer_device> m_pdltimer;
required_device<floppy_connector> floppy0;
diff --git a/src/mame/machine/apple3.cpp b/src/mame/machine/apple3.cpp
index dd7c02a0f28..ff13007e8a1 100644
--- a/src/mame/machine/apple3.cpp
+++ b/src/mame/machine/apple3.cpp
@@ -47,7 +47,6 @@
#include "emu.h"
#include "includes/apple3.h"
#include "includes/apple2.h"
-#include "screen.h"
#define LOG_MEMORY 1
#define LOG_INDXADDR 1
@@ -145,7 +144,7 @@ READ8_MEMBER(apple3_state::apple3_c0xx_r)
case 0x50: case 0x51: case 0x52: case 0x53:
case 0x54: case 0x55: case 0x56: case 0x57:
- machine().first_screen()->update_partial(machine().first_screen()->vpos());
+ m_screen->update_partial(m_screen->vpos());
/* graphics softswitches */
if (offset & 1)
m_flags |= 1 << ((offset - 0x50) / 2);
@@ -349,7 +348,7 @@ WRITE8_MEMBER(apple3_state::apple3_c0xx_w)
case 0x50: case 0x51: case 0x52: case 0x53:
case 0x54: case 0x55: case 0x56: case 0x57:
- machine().first_screen()->update_partial(machine().first_screen()->vpos());
+ m_screen->update_partial(m_screen->vpos());
/* graphics softswitches */
if (offset & 1)
m_flags |= 1 << ((offset - 0x50) / 2);
@@ -473,8 +472,8 @@ WRITE8_MEMBER(apple3_state::apple3_c0xx_w)
TIMER_DEVICE_CALLBACK_MEMBER(apple3_state::apple3_interrupt)
{
- m_via_1->write_cb1(machine().first_screen()->vblank());
- m_via_1->write_cb2(machine().first_screen()->vblank());
+ m_via[1]->write_cb1(m_screen->vblank());
+ m_via[1]->write_cb2(m_screen->vblank());
}
uint8_t *apple3_state::apple3_bankaddr(uint16_t bank, offs_t offset)
@@ -628,13 +627,13 @@ void apple3_state::apple3_irq_update()
{
// printf(" setting IRQ\n");
m_maincpu->set_input_line(M6502_IRQ_LINE, ASSERT_LINE);
- m_via_1->write_pa7(0); // this is active low
+ m_via[1]->write_pa7(0); // this is active low
}
else
{
// printf(" clearing IRQ\n");
m_maincpu->set_input_line(M6502_IRQ_LINE, CLEAR_LINE);
- m_via_1->write_pa7(1);
+ m_via[1]->write_pa7(1);
}
}
@@ -675,7 +674,7 @@ MACHINE_RESET_MEMBER(apple3_state,apple3)
m_fdc->set_floppies_4(floppy0, floppy1, floppy2, floppy3);
- m_scanstart->adjust(machine().first_screen()->time_until_pos(0, 0));
+ m_scanstart->adjust(m_screen->time_until_pos(0, 0));
m_scanend->adjust(attotime::never);
}
@@ -725,23 +724,23 @@ DRIVER_INIT_MEMBER(apple3_state,apple3)
m_acia->write_cts(0);
/* these are here to appease the Apple /// confidence tests */
- m_via_1->write_pa0(1);
- m_via_1->write_pa1(1);
- m_via_1->write_pa2(1);
- m_via_1->write_pa3(1);
- m_via_1->write_pa4(1);
- m_via_1->write_pa5(1);
- m_via_1->write_pa6(1);
- m_via_1->write_pa7(1);
-
- m_via_1->write_pb0(1);
- m_via_1->write_pb1(1);
- m_via_1->write_pb2(1);
- m_via_1->write_pb3(1);
- m_via_1->write_pb4(1);
- m_via_1->write_pb5(1);
- m_via_1->write_pb6(1);
- m_via_1->write_pb7(1);
+ m_via[1]->write_pa0(1);
+ m_via[1]->write_pa1(1);
+ m_via[1]->write_pa2(1);
+ m_via[1]->write_pa3(1);
+ m_via[1]->write_pa4(1);
+ m_via[1]->write_pa5(1);
+ m_via[1]->write_pa6(1);
+ m_via[1]->write_pa7(1);
+
+ m_via[1]->write_pb0(1);
+ m_via[1]->write_pb1(1);
+ m_via[1]->write_pb2(1);
+ m_via[1]->write_pb3(1);
+ m_via[1]->write_pb4(1);
+ m_via[1]->write_pb5(1);
+ m_via[1]->write_pb6(1);
+ m_via[1]->write_pb7(1);
m_scanstart = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(apple3_state::scanstart_cb),this));
m_scanend = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(apple3_state::scanend_cb),this));
@@ -904,11 +903,11 @@ READ8_MEMBER(apple3_state::apple3_memory_r)
}
else if (offset >= 0xffd0 && offset <= 0xffdf)
{
- rv = m_via_0->read(space, offset);
+ rv = m_via[0]->read(space, offset);
}
else if (offset >= 0xffe0 && offset <= 0xffef)
{
- rv = m_via_1->read(space, offset);
+ rv = m_via[1]->read(space, offset);
}
else
{
@@ -1051,14 +1050,14 @@ WRITE8_MEMBER(apple3_state::apple3_memory_w)
{
if (!machine().side_effects_disabled())
{
- m_via_0->write(space, offset, data);
+ m_via[0]->write(space, offset, data);
}
}
else if (offset >= 0xffe0 && offset <= 0xffef)
{
if (!machine().side_effects_disabled())
{
- m_via_1->write(space, offset, data);
+ m_via[1]->write(space, offset, data);
}
}
else
@@ -1096,21 +1095,21 @@ TIMER_CALLBACK_MEMBER(apple3_state::scanstart_cb)
{
int scanline;
- scanline = machine().first_screen()->vpos();
- //machine().first_screen()->update_partial(machine().first_screen()->vpos());
+ scanline = m_screen->vpos();
+ //m_screen->update_partial(m_screen->vpos());
- m_via_1->write_pb6(0);
+ m_via[1]->write_pb6(0);
- m_scanend->adjust(machine().first_screen()->time_until_pos(scanline, 559));
+ m_scanend->adjust(m_screen->time_until_pos(scanline, 559));
}
TIMER_CALLBACK_MEMBER(apple3_state::scanend_cb)
{
- int scanline = machine().first_screen()->vpos();
+ int scanline = m_screen->vpos();
- m_via_1->write_pb6(1);
+ m_via[1]->write_pb6(1);
- m_scanstart->adjust(machine().first_screen()->time_until_pos((scanline+1) % 224, 0));
+ m_scanstart->adjust(m_screen->time_until_pos((scanline+1) % 224, 0));
}
READ_LINE_MEMBER(apple3_state::ay3600_shift_r)
@@ -1221,7 +1220,7 @@ static const uint8_t key_remap[0x50][4] =
WRITE_LINE_MEMBER(apple3_state::ay3600_data_ready_w)
{
- m_via_1->write_ca2(state);
+ m_via[1]->write_ca2(state);
if (state == ASSERT_LINE)
{
@@ -1344,31 +1343,31 @@ WRITE_LINE_MEMBER(apple3_state::a2bus_irq_w)
{
uint8_t irq_mask = m_a2bus->get_a2bus_irq_mask();
- m_via_1->write_ca1(state);
- m_via_1->write_pa7(state);
+ m_via[1]->write_ca1(state);
+ m_via[1]->write_pa7(state);
if (irq_mask & (1<<4))
{
- m_via_1->write_pa4(ASSERT_LINE);
+ m_via[1]->write_pa4(ASSERT_LINE);
}
else
{
- m_via_1->write_pa4(CLEAR_LINE);
+ m_via[1]->write_pa4(CLEAR_LINE);
}
if (irq_mask & (1<<3))
{
- m_via_1->write_pa5(ASSERT_LINE);
+ m_via[1]->write_pa5(ASSERT_LINE);
}
else
{
- m_via_1->write_pa5(CLEAR_LINE);
+ m_via[1]->write_pa5(CLEAR_LINE);
}
}
WRITE_LINE_MEMBER(apple3_state::a2bus_nmi_w)
{
- m_via_1->write_pb7(state);
+ m_via[1]->write_pb7(state);
if (m_via_0_a & ENV_NMIENABLE)
{