summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/includes/mac.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mess/includes/mac.h')
-rw-r--r--src/mess/includes/mac.h212
1 files changed, 105 insertions, 107 deletions
diff --git a/src/mess/includes/mac.h b/src/mess/includes/mac.h
index ca733eba0ad..02022056a0f 100644
--- a/src/mess/includes/mac.h
+++ b/src/mess/includes/mac.h
@@ -27,17 +27,17 @@
#define MAC_539X_2_TAG "scsi:539x_2"
// model helpers
-#define ADB_IS_BITBANG ((mac->m_model == MODEL_MAC_SE || mac->m_model == MODEL_MAC_CLASSIC) || (mac->m_model >= MODEL_MAC_II && mac->m_model <= MODEL_MAC_IICI) || (mac->m_model == MODEL_MAC_SE30) || (mac->m_model == MODEL_MAC_QUADRA_700))
-#define ADB_IS_BITBANG_CLASS ((m_model == MODEL_MAC_SE || m_model == MODEL_MAC_CLASSIC) || (m_model >= MODEL_MAC_II && m_model <= MODEL_MAC_IICI) || (m_model == MODEL_MAC_SE30) || (m_model == MODEL_MAC_QUADRA_700))
-#define ADB_IS_EGRET (m_model >= MODEL_MAC_LC && m_model <= MODEL_MAC_CLASSIC_II) || ((m_model >= MODEL_MAC_IISI) && (m_model <= MODEL_MAC_IIVI))
-#define ADB_IS_EGRET_NONCLASS (mac->m_model >= MODEL_MAC_LC && mac->m_model <= MODEL_MAC_CLASSIC_II) || ((mac->m_model >= MODEL_MAC_IISI) && (mac->m_model <= MODEL_MAC_IIVI))
-#define ADB_IS_CUDA ((m_model >= MODEL_MAC_COLOR_CLASSIC && m_model <= MODEL_MAC_LC_580) || ((m_model >= MODEL_MAC_QUADRA_660AV) && (m_model <= MODEL_MAC_QUADRA_630)) || (m_model >= MODEL_MAC_POWERMAC_6100))
-#define ADB_IS_CUDA_NONCLASS ((mac->m_model >= MODEL_MAC_COLOR_CLASSIC && mac->m_model <= MODEL_MAC_LC_580) || ((mac->m_model >= MODEL_MAC_QUADRA_660AV) && (mac->m_model <= MODEL_MAC_QUADRA_630)) || (mac->m_model >= MODEL_MAC_POWERMAC_6100))
-#define ADB_IS_PM_VIA1 (m_model >= MODEL_MAC_PORTABLE && m_model <= MODEL_MAC_PB100)
-#define ADB_IS_PM_VIA2 (m_model >= MODEL_MAC_PB140 && m_model <= MODEL_MAC_PBDUO_270c)
-#define ADB_IS_PM_VIA1_CLASS (m_model >= MODEL_MAC_PORTABLE && m_model <= MODEL_MAC_PB100)
-#define ADB_IS_PM_VIA2_CLASS (m_model >= MODEL_MAC_PB140 && m_model <= MODEL_MAC_PBDUO_270c)
-#define ADB_IS_PM_CLASS ((m_model >= MODEL_MAC_PORTABLE && m_model <= MODEL_MAC_PB100) || (m_model >= MODEL_MAC_PB140 && m_model <= MODEL_MAC_PBDUO_270c))
+#define ADB_IS_BITBANG ((mac->m_model == MODEL_MAC_SE || mac->m_model == MODEL_MAC_CLASSIC) || (mac->m_model >= MODEL_MAC_II && mac->m_model <= MODEL_MAC_IICI) || (mac->m_model == MODEL_MAC_SE30) || (mac->m_model == MODEL_MAC_QUADRA_700))
+#define ADB_IS_BITBANG_CLASS ((m_model == MODEL_MAC_SE || m_model == MODEL_MAC_CLASSIC) || (m_model >= MODEL_MAC_II && m_model <= MODEL_MAC_IICI) || (m_model == MODEL_MAC_SE30) || (m_model == MODEL_MAC_QUADRA_700))
+#define ADB_IS_EGRET (m_model >= MODEL_MAC_LC && m_model <= MODEL_MAC_CLASSIC_II) || ((m_model >= MODEL_MAC_IISI) && (m_model <= MODEL_MAC_IIVI))
+#define ADB_IS_EGRET_NONCLASS (mac->m_model >= MODEL_MAC_LC && mac->m_model <= MODEL_MAC_CLASSIC_II) || ((mac->m_model >= MODEL_MAC_IISI) && (mac->m_model <= MODEL_MAC_IIVI))
+#define ADB_IS_CUDA ((m_model >= MODEL_MAC_COLOR_CLASSIC && m_model <= MODEL_MAC_LC_580) || ((m_model >= MODEL_MAC_QUADRA_660AV) && (m_model <= MODEL_MAC_QUADRA_630)) || (m_model >= MODEL_MAC_POWERMAC_6100))
+#define ADB_IS_CUDA_NONCLASS ((mac->m_model >= MODEL_MAC_COLOR_CLASSIC && mac->m_model <= MODEL_MAC_LC_580) || ((mac->m_model >= MODEL_MAC_QUADRA_660AV) && (mac->m_model <= MODEL_MAC_QUADRA_630)) || (mac->m_model >= MODEL_MAC_POWERMAC_6100))
+#define ADB_IS_PM_VIA1 (m_model >= MODEL_MAC_PORTABLE && m_model <= MODEL_MAC_PB100)
+#define ADB_IS_PM_VIA2 (m_model >= MODEL_MAC_PB140 && m_model <= MODEL_MAC_PBDUO_270c)
+#define ADB_IS_PM_VIA1_CLASS (m_model >= MODEL_MAC_PORTABLE && m_model <= MODEL_MAC_PB100)
+#define ADB_IS_PM_VIA2_CLASS (m_model >= MODEL_MAC_PB140 && m_model <= MODEL_MAC_PBDUO_270c)
+#define ADB_IS_PM_CLASS ((m_model >= MODEL_MAC_PORTABLE && m_model <= MODEL_MAC_PB100) || (m_model >= MODEL_MAC_PB140 && m_model <= MODEL_MAC_PBDUO_270c))
/* for Egret and CUDA streaming MCU commands, command types */
enum mac_streaming_t
@@ -54,22 +54,22 @@ enum
RBV_TYPE_RBV = 0,
RBV_TYPE_V8,
RBV_TYPE_SONORA,
- RBV_TYPE_DAFB
+ RBV_TYPE_DAFB
};
/* tells which model is being emulated (set by macxxx_init) */
enum model_t
{
- MODEL_MAC_128K512K, // 68000 machines
+ MODEL_MAC_128K512K, // 68000 machines
MODEL_MAC_512KE,
MODEL_MAC_PLUS,
MODEL_MAC_SE,
MODEL_MAC_CLASSIC,
- MODEL_MAC_PORTABLE, // Portable/PB100 are sort of hybrid classic and Mac IIs
+ MODEL_MAC_PORTABLE, // Portable/PB100 are sort of hybrid classic and Mac IIs
MODEL_MAC_PB100,
- MODEL_MAC_II, // Mac II class 68020/030 machines
+ MODEL_MAC_II, // Mac II class 68020/030 machines
MODEL_MAC_II_FDHD,
MODEL_MAC_IIX,
MODEL_MAC_IICX,
@@ -80,35 +80,35 @@ enum model_t
MODEL_MAC_IIFX,
MODEL_MAC_SE30,
- MODEL_MAC_LC, // LC class 68030 machines, generally using a V8 or compatible gate array
+ MODEL_MAC_LC, // LC class 68030 machines, generally using a V8 or compatible gate array
MODEL_MAC_LC_II,
MODEL_MAC_LC_III,
MODEL_MAC_LC_III_PLUS,
MODEL_MAC_CLASSIC_II,
MODEL_MAC_COLOR_CLASSIC,
- MODEL_MAC_LC_475, // LC III clones with Cuda instead of Egret and 68LC040 on most models
- MODEL_MAC_LC_520,
- MODEL_MAC_LC_550,
+ MODEL_MAC_LC_475, // LC III clones with Cuda instead of Egret and 68LC040 on most models
+ MODEL_MAC_LC_520,
+ MODEL_MAC_LC_550,
MODEL_MAC_TV,
- MODEL_MAC_LC_575,
- MODEL_MAC_LC_580,
+ MODEL_MAC_LC_575,
+ MODEL_MAC_LC_580,
- MODEL_MAC_PB140, // 68030 PowerBooks. 140/145/145B/170 all have the same machine ID
+ MODEL_MAC_PB140, // 68030 PowerBooks. 140/145/145B/170 all have the same machine ID
MODEL_MAC_PB160, // 160/180/165 all have the same machine ID too
MODEL_MAC_PB165c,
MODEL_MAC_PB180c,
MODEL_MAC_PB150, // 150 is fairly radically different from the other 1x0s
- MODEL_MAC_PBDUO_210, // 68030 PowerBook Duos
+ MODEL_MAC_PBDUO_210, // 68030 PowerBook Duos
MODEL_MAC_PBDUO_230,
MODEL_MAC_PBDUO_250,
MODEL_MAC_PBDUO_270c,
- MODEL_MAC_QUADRA_700, // 68(LC)040 desktops
+ MODEL_MAC_QUADRA_700, // 68(LC)040 desktops
MODEL_MAC_QUADRA_610,
MODEL_MAC_QUADRA_650,
- MODEL_MAC_QUADRA_800,
+ MODEL_MAC_QUADRA_800,
MODEL_MAC_QUADRA_900,
MODEL_MAC_QUADRA_950,
MODEL_MAC_QUADRA_660AV,
@@ -116,7 +116,7 @@ enum model_t
MODEL_MAC_QUADRA_605,
MODEL_MAC_QUADRA_630,
- MODEL_MAC_PB550c, // 68(LC)040 PowerBooks
+ MODEL_MAC_PB550c, // 68(LC)040 PowerBooks
MODEL_MAC_PB520,
MODEL_MAC_PB520c,
MODEL_MAC_PB540,
@@ -124,16 +124,16 @@ enum model_t
MODEL_MAC_PB190,
MODEL_MAC_PB190cs,
- MODEL_MAC_POWERMAC_6100, // NuBus PowerMacs
+ MODEL_MAC_POWERMAC_6100, // NuBus PowerMacs
MODEL_MAC_POWERMAC_7100,
MODEL_MAC_POWERMAC_8100
};
// video parameters for classic Macs
-#define MAC_H_VIS (512)
-#define MAC_V_VIS (342)
-#define MAC_H_TOTAL (704) // (512+192)
-#define MAC_V_TOTAL (370) // (342+28)
+#define MAC_H_VIS (512)
+#define MAC_V_VIS (342)
+#define MAC_H_TOTAL (704) // (512+192)
+#define MAC_V_TOTAL (370) // (342+28)
/*----------- defined in machine/mac.c -----------*/
@@ -148,7 +148,7 @@ void mac_fdc_set_enable_lines(device_t *device, int enable_mask);
/*----------- defined in audio/mac.c -----------*/
class mac_sound_device : public device_t,
- public device_sound_interface
+ public device_sound_interface
{
public:
mac_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
@@ -188,33 +188,33 @@ public:
m_via1(*this, "via6522_0"),
m_via2(*this, "via6522_1"),
m_asc(*this, "asc"),
- m_awacs(*this, "awacs"),
- m_egret(*this, EGRET_TAG),
- m_cuda(*this, CUDA_TAG),
+ m_awacs(*this, "awacs"),
+ m_egret(*this, EGRET_TAG),
+ m_cuda(*this, CUDA_TAG),
m_ram(*this, RAM_TAG),
- m_screen(*this, MAC_SCREEN_NAME),
- m_539x_1(*this, MAC_539X_1_TAG),
- m_539x_2(*this, MAC_539X_2_TAG),
+ m_screen(*this, MAC_SCREEN_NAME),
+ m_539x_1(*this, MAC_539X_1_TAG),
+ m_539x_2(*this, MAC_539X_2_TAG),
m_ncr5380(*this, "scsi:ncr5380"),
- m_mackbd(*this, MACKBD_TAG),
+ m_mackbd(*this, MACKBD_TAG),
m_rtc(*this,"rtc"),
m_vram(*this,"vram"),
m_vram16(*this,"vram16")
- { }
+ { }
required_device<cpu_device> m_maincpu;
required_device<via6522_device> m_via1;
optional_device<via6522_device> m_via2;
optional_device<asc_device> m_asc;
optional_device<awacs_device> m_awacs;
- optional_device<egret_device> m_egret;
- optional_device<cuda_device> m_cuda;
+ optional_device<egret_device> m_egret;
+ optional_device<cuda_device> m_cuda;
required_device<ram_device> m_ram;
- optional_device<screen_device> m_screen;
- optional_device<ncr539x_device> m_539x_1;
- optional_device<ncr539x_device> m_539x_2;
- optional_device<ncr5380_device> m_ncr5380;
- optional_device<mackbd_device> m_mackbd;
+ optional_device<screen_device> m_screen;
+ optional_device<ncr539x_device> m_539x_1;
+ optional_device<ncr539x_device> m_539x_2;
+ optional_device<ncr5380_device> m_ncr5380;
+ optional_device<mackbd_device> m_mackbd;
optional_device<rtc3430042_device> m_rtc;
virtual void machine_start();
@@ -268,7 +268,7 @@ public:
// Portable/PB100 Power Manager IC comms (chapter 4, "Guide to the Macintosh Family Hardware", second edition)
UINT8 m_pm_data_send, m_pm_data_recv, m_pm_ack, m_pm_req, m_pm_cmd[32], m_pm_out[32], m_pm_dptr, m_pm_sptr, m_pm_slen, m_pm_state;
- UINT8 m_pmu_int_status, m_pmu_last_adb_command, m_pmu_poll;
+ UINT8 m_pmu_int_status, m_pmu_last_adb_command, m_pmu_poll;
emu_timer *m_pmu_send_timer;
// 60.15 Hz timer for RBV/V8/Sonora/Eagle/VASP/etc.
@@ -279,14 +279,14 @@ public:
UINT32 m_rbv_colors[3], m_rbv_count, m_rbv_clutoffs, m_rbv_immed10wr;
UINT32 m_rbv_palette[256];
UINT8 m_sonora_vctl[8];
- emu_timer *m_vbl_timer, *m_cursor_timer;
- UINT16 m_cursor_line;
- UINT16 m_dafb_int_status;
- int m_dafb_scsi1_drq, m_dafb_scsi2_drq;
- UINT8 m_dafb_mode;
- UINT32 m_dafb_base, m_dafb_stride;
-
- // this is shared among all video setups with vram
+ emu_timer *m_vbl_timer, *m_cursor_timer;
+ UINT16 m_cursor_line;
+ UINT16 m_dafb_int_status;
+ int m_dafb_scsi1_drq, m_dafb_scsi2_drq;
+ UINT8 m_dafb_mode;
+ UINT32 m_dafb_base, m_dafb_stride;
+
+ // this is shared among all video setups with vram
optional_shared_ptr<UINT32> m_vram;
optional_shared_ptr<UINT16> m_vram16;
@@ -308,7 +308,7 @@ public:
void rtc_incticks();
void adb_talk();
void mouse_callback();
- void rbv_recalc_irqs();
+ void rbv_recalc_irqs();
void pmu_exec();
void mac_adb_newaction(int state);
void set_adb_line(int linestate);
@@ -342,47 +342,47 @@ public:
DECLARE_READ16_MEMBER(mac_config_r);
- DECLARE_READ32_MEMBER(biu_r);
- DECLARE_WRITE32_MEMBER(biu_w);
- DECLARE_READ8_MEMBER(oss_r);
- DECLARE_WRITE8_MEMBER(oss_w);
- DECLARE_READ32_MEMBER(buserror_r);
- DECLARE_READ8_MEMBER(swimiop_r);
- DECLARE_WRITE8_MEMBER(swimiop_w);
- DECLARE_READ8_MEMBER(scciop_r);
- DECLARE_WRITE8_MEMBER(scciop_w);
-
- DECLARE_READ8_MEMBER(hmc_r);
- DECLARE_WRITE8_MEMBER(hmc_w);
- DECLARE_READ8_MEMBER(amic_dma_r);
- DECLARE_WRITE8_MEMBER(amic_dma_w);
- DECLARE_READ8_MEMBER(pmac_diag_r);
-
- DECLARE_READ8_MEMBER(mac_gsc_r);
- DECLARE_WRITE8_MEMBER(mac_gsc_w);
-
- DECLARE_READ8_MEMBER(mac_5396_r);
- DECLARE_WRITE8_MEMBER(mac_5396_w);
-
- DECLARE_READ32_MEMBER(dafb_r);
- DECLARE_WRITE32_MEMBER(dafb_w);
- DECLARE_READ32_MEMBER(dafb_dac_r);
- DECLARE_WRITE32_MEMBER(dafb_dac_w);
-
- DECLARE_READ32_MEMBER(macwd_r);
- DECLARE_WRITE32_MEMBER(macwd_w);
-
- DECLARE_WRITE_LINE_MEMBER(nubus_irq_9_w);
- DECLARE_WRITE_LINE_MEMBER(nubus_irq_a_w);
- DECLARE_WRITE_LINE_MEMBER(nubus_irq_b_w);
- DECLARE_WRITE_LINE_MEMBER(nubus_irq_c_w);
- DECLARE_WRITE_LINE_MEMBER(nubus_irq_d_w);
- DECLARE_WRITE_LINE_MEMBER(nubus_irq_e_w);
-
- DECLARE_WRITE_LINE_MEMBER(irq_539x_1_w);
- DECLARE_WRITE_LINE_MEMBER(drq_539x_1_w);
-
- DECLARE_WRITE_LINE_MEMBER(cuda_reset_w);
+ DECLARE_READ32_MEMBER(biu_r);
+ DECLARE_WRITE32_MEMBER(biu_w);
+ DECLARE_READ8_MEMBER(oss_r);
+ DECLARE_WRITE8_MEMBER(oss_w);
+ DECLARE_READ32_MEMBER(buserror_r);
+ DECLARE_READ8_MEMBER(swimiop_r);
+ DECLARE_WRITE8_MEMBER(swimiop_w);
+ DECLARE_READ8_MEMBER(scciop_r);
+ DECLARE_WRITE8_MEMBER(scciop_w);
+
+ DECLARE_READ8_MEMBER(hmc_r);
+ DECLARE_WRITE8_MEMBER(hmc_w);
+ DECLARE_READ8_MEMBER(amic_dma_r);
+ DECLARE_WRITE8_MEMBER(amic_dma_w);
+ DECLARE_READ8_MEMBER(pmac_diag_r);
+
+ DECLARE_READ8_MEMBER(mac_gsc_r);
+ DECLARE_WRITE8_MEMBER(mac_gsc_w);
+
+ DECLARE_READ8_MEMBER(mac_5396_r);
+ DECLARE_WRITE8_MEMBER(mac_5396_w);
+
+ DECLARE_READ32_MEMBER(dafb_r);
+ DECLARE_WRITE32_MEMBER(dafb_w);
+ DECLARE_READ32_MEMBER(dafb_dac_r);
+ DECLARE_WRITE32_MEMBER(dafb_dac_w);
+
+ DECLARE_READ32_MEMBER(macwd_r);
+ DECLARE_WRITE32_MEMBER(macwd_w);
+
+ DECLARE_WRITE_LINE_MEMBER(nubus_irq_9_w);
+ DECLARE_WRITE_LINE_MEMBER(nubus_irq_a_w);
+ DECLARE_WRITE_LINE_MEMBER(nubus_irq_b_w);
+ DECLARE_WRITE_LINE_MEMBER(nubus_irq_c_w);
+ DECLARE_WRITE_LINE_MEMBER(nubus_irq_d_w);
+ DECLARE_WRITE_LINE_MEMBER(nubus_irq_e_w);
+
+ DECLARE_WRITE_LINE_MEMBER(irq_539x_1_w);
+ DECLARE_WRITE_LINE_MEMBER(drq_539x_1_w);
+
+ DECLARE_WRITE_LINE_MEMBER(cuda_reset_w);
DECLARE_WRITE_LINE_MEMBER(adb_linechange_w);
DECLARE_DIRECT_UPDATE_MEMBER(overlay_opbaseoverride);
@@ -396,8 +396,8 @@ private:
void pmu_one_byte_reply(UINT8 result);
void pmu_three_byte_reply(UINT8 result1, UINT8 result2, UINT8 result3);
- // wait states for accessing the VIA
- int m_via_cycles;
+ // wait states for accessing the VIA
+ int m_via_cycles;
// ADB mouse state
int m_adb_mouseaddr;
@@ -410,13 +410,13 @@ private:
// PRAM for ADB MCU HLEs (mostly unused now)
UINT8 m_adb_pram[256];
- UINT8 m_oss_regs[0x400];
+ UINT8 m_oss_regs[0x400];
- // AMIC for x100 PowerMacs
- UINT8 m_amic_regs[0x200];
+ // AMIC for x100 PowerMacs
+ UINT8 m_amic_regs[0x200];
- // HMC for x100 PowerMacs
- UINT64 m_hmc_reg, m_hmc_shiftout;
+ // HMC for x100 PowerMacs
+ UINT64 m_hmc_reg, m_hmc_shiftout;
public:
emu_timer *m_scanline_timer;
@@ -497,5 +497,3 @@ public:
};
#endif /* MAC_H_ */
-
-