diff options
Diffstat (limited to 'src/mess/includes/mac.h')
-rw-r--r-- | src/mess/includes/mac.h | 212 |
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_ */ - - |