mirror of
https://github.com/holub/mame
synced 2025-04-19 15:11:37 +03:00
nubus/8lc.cpp: Add support for the RasterOps 8LC card for the original Macintosh LC. [R. Belmont]
* This card provides unaccelerated 1024x768 video, which isn't the greatest idea on a 68020. video/tms34061.h: Added accessors to get the horizontal and vertical visible resolution and totals. [R. Belmont] nubus/cards.cpp, apple/maclc.cpp: Support a list of cards for only the original Macintosh LC. [R. Belmont]
This commit is contained in:
parent
ae5e13e023
commit
095da87df0
@ -3030,6 +3030,8 @@ if (BUSES["NUBUS"]~=null) then
|
||||
MAME_DIR .. "src/devices/bus/nubus/nubus_image.h",
|
||||
MAME_DIR .. "src/devices/bus/nubus/nubus_wsportrait.cpp",
|
||||
MAME_DIR .. "src/devices/bus/nubus/nubus_wsportrait.h",
|
||||
MAME_DIR .. "src/devices/bus/nubus/8lc.cpp",
|
||||
MAME_DIR .. "src/devices/bus/nubus/8lc.h",
|
||||
MAME_DIR .. "src/devices/bus/nubus/bootbug.cpp",
|
||||
MAME_DIR .. "src/devices/bus/nubus/bootbug.h",
|
||||
MAME_DIR .. "src/devices/bus/nubus/quadralink.cpp",
|
||||
|
@ -2,13 +2,14 @@
|
||||
// copyright-holders:R. Belmont
|
||||
/***************************************************************************
|
||||
|
||||
NuBus, SE/30 PDS, and LC PDS slot cards
|
||||
NuBus, SE/30 PDS, and LC slot cards
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "cards.h"
|
||||
|
||||
#include "8lc.h"
|
||||
#include "bootbug.h"
|
||||
#include "laserview.h"
|
||||
#include "nubus_48gc.h"
|
||||
@ -65,6 +66,13 @@ void mac_pdslc_cards(device_slot_interface &device)
|
||||
device.option_add("macconilc", PDSLC_MACCONILC); // Asante MacCON i LC Ethernet card
|
||||
}
|
||||
|
||||
// cards for the LC PDS slot that only work in the original LC
|
||||
void mac_pdslc_orig_cards(device_slot_interface &device)
|
||||
{
|
||||
device.option_add("macconilc", PDSLC_MACCONILC); // Asante MacCON i LC Ethernet card
|
||||
device.option_add("ro8lc", PDSLC_COLORVUE8LC); // RasterOps ColorVue 8LC
|
||||
}
|
||||
|
||||
// IIsi can take either one SE/30 PDS or one NuBus card
|
||||
void mac_iisi_cards(device_slot_interface &device)
|
||||
{
|
||||
|
@ -14,6 +14,7 @@
|
||||
void mac_nubus_cards(device_slot_interface &device) ATTR_COLD;
|
||||
void mac_pds030_cards(device_slot_interface &device) ATTR_COLD;
|
||||
void mac_pdslc_cards(device_slot_interface &device) ATTR_COLD;
|
||||
void mac_pdslc_orig_cards(device_slot_interface &device) ATTR_COLD;
|
||||
void mac_iisi_cards(device_slot_interface &device) ATTR_COLD;
|
||||
|
||||
#endif // MAME_BUS_NUBUS_CARDS_H
|
||||
|
@ -52,6 +52,10 @@ public:
|
||||
u8 const &vram(unsigned row) const { return m_display.vram[row << m_rowshift]; }
|
||||
u16 xyoffset() const { return m_display.regs[TMS34061_XYOFFSET]; }
|
||||
u16 xyaddress() const { return m_display.regs[TMS34061_XYADDRESS]; }
|
||||
u16 hvisible() const { return (m_display.regs[TMS34061_HORENDBLNK] - m_display.regs[TMS34061_HORSTARTBLNK]) << 2; }
|
||||
u16 vvisible() const { return (m_display.regs[TMS34061_VERENDBLNK] - m_display.regs[TMS34061_VERSTARTBLNK]); }
|
||||
u16 htotal() const { return m_display.regs[TMS34061_HORTOTAL]; }
|
||||
u16 vtotal() const { return m_display.regs[TMS34061_VERTOTAL]; }
|
||||
|
||||
// TODO: encapsulate this properly
|
||||
tms34061_display m_display;
|
||||
|
@ -366,7 +366,6 @@ void maclc_state::maclc_base(machine_config &config)
|
||||
// V8 supports interrupts for slots $C, $D, and $E, but the LC, LC II, and Color Classic
|
||||
// only hook the slot $E IRQ up to the PDS slot.
|
||||
nubus.out_irqe_callback().set(m_v8, FUNC(v8_device::slot_irq_w<0x20>));
|
||||
NUBUS_SLOT(config, "lcpds", "pds", mac_pdslc_cards, nullptr);
|
||||
|
||||
MACADB(config, m_macadb, C15M);
|
||||
|
||||
@ -396,6 +395,8 @@ void maclc_state::maclc(machine_config &config)
|
||||
{
|
||||
maclc_base(config);
|
||||
|
||||
NUBUS_SLOT(config, "lcpds", "pds", mac_pdslc_orig_cards, nullptr);
|
||||
|
||||
m_ram->set_default_size("2M");
|
||||
m_ram->set_extra_options("4M,6M,10M");
|
||||
m_v8->set_baseram_is_4M(false);
|
||||
@ -405,6 +406,8 @@ void maclc_state::maclc2(machine_config &config)
|
||||
{
|
||||
maclc_base(config);
|
||||
|
||||
NUBUS_SLOT(config, "lcpds", "pds", mac_pdslc_cards, nullptr);
|
||||
|
||||
M68030(config.replace(), m_maincpu, C15M);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &maclc_state::maclc_map);
|
||||
m_maincpu->set_dasm_override(std::function(&mac68k_dasm_override), "mac68k_dasm_override");
|
||||
@ -445,6 +448,8 @@ void maclc_state::maccclas(machine_config &config)
|
||||
m_v8->pb5_callback().set(m_cuda, FUNC(cuda_device::set_tip));
|
||||
m_v8->cb2_callback().set(m_cuda, FUNC(cuda_device::set_via_data));
|
||||
|
||||
NUBUS_SLOT(config, "lcpds", "pds", mac_pdslc_cards, nullptr);
|
||||
|
||||
m_ram->set_default_size("4M");
|
||||
m_ram->set_extra_options("6M,8M,10M");
|
||||
m_v8->set_baseram_is_4M(true);
|
||||
@ -470,7 +475,6 @@ void maclc_state::macclas2(machine_config &config)
|
||||
m_v8->cb2_callback().set(m_egret, FUNC(egret_device::set_via_data));
|
||||
|
||||
// Classic II doesn't have an LC PDS slot (and its ROM has the Slot Manager disabled)
|
||||
config.device_remove("lcpds");
|
||||
config.device_remove("pds");
|
||||
|
||||
m_ram->set_default_size("4M");
|
||||
|
Loading…
Reference in New Issue
Block a user