1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
// license:BSD-3-Clause
// copyright-holders:Wilbert Pol
/***********************************************************************************************************
MSX (logical) internal slot interfacing
The MSX standard uses logically defined slots, subslots, and pages to access rom and optional components
in a system. There are no physical slots inside the system. A piece of rom/component can occur in multiple
pages; and multiple pieces of rom/ram/components can occur in a single slot.
***********************************************************************************************************/
#include "emu.h"
#include "slot.h"
msx_internal_slot_interface::msx_internal_slot_interface(const machine_config &mconfig, device_t &device)
: m_mem_space(device, finder_base::DUMMY_TAG, -1)
, m_io_space(device, finder_base::DUMMY_TAG, -1)
, m_maincpu(device, finder_base::DUMMY_TAG)
, m_start_address(0)
, m_size(0)
, m_end_address(0)
, m_page{nullptr, nullptr, nullptr, nullptr}
{
(void)mconfig;
}
void msx_internal_slot_interface::configure_subslot(msx_internal_slot_interface &subslot)
{
subslot.m_mem_space.set_tag(m_mem_space);
subslot.m_io_space.set_tag(m_io_space);
subslot.m_maincpu.set_tag(m_maincpu);
}
void msx_internal_slot_interface::install(memory_view::memory_view_entry *page0, memory_view::memory_view_entry *page1, memory_view::memory_view_entry *page2, memory_view::memory_view_entry *page3)
{
m_page[0] = page0;
m_page[1] = page1;
m_page[2] = page2;
m_page[3] = page3;
}
|