mirror of
https://github.com/holub/mame
synced 2025-04-19 23:12:11 +03:00
x37: Populate devices. [Curt Coder]
This commit is contained in:
parent
e76d23fc73
commit
2bbbff6146
@ -156,7 +156,6 @@ license:CC0
|
||||
<rom name="etc_bin_x37_OBS_PC_FORMAT.img" size="737280" crc="0336a022" sha1="57776a18bb868961248945036ff1a39cd0e242e3"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
|
||||
</software>
|
||||
|
||||
<software name="cremount">
|
||||
|
@ -11,21 +11,72 @@
|
||||
|
||||
#include "emu.h"
|
||||
#include "softlist_dev.h"
|
||||
#include "bus/nscsi/devices.h"
|
||||
#include "cpu/m68000/m68000.h"
|
||||
#include "formats/abc1600_dsk.h"
|
||||
#include "imagedev/floppy.h"
|
||||
#include "machine/e0516.h"
|
||||
#include "machine/hd63450.h"
|
||||
#include "machine/nmc9306.h"
|
||||
#include "machine/ns32081.h"
|
||||
#include "machine/nscsi_bus.h"
|
||||
#include "machine/nscsi_cb.h"
|
||||
#include "machine/wd_fdc.h"
|
||||
#include "machine/z80scc.h"
|
||||
#include "machine/z8536.h"
|
||||
#include "video/abc1600.h"
|
||||
|
||||
#define MC68010_TAG "14m"
|
||||
#define NS32081_TAG "06o"
|
||||
#define MC68450_TAG "11m"
|
||||
#define Z8536A_TAG "06l"
|
||||
#define NMC9306_TAG "05k"
|
||||
#define E050_16_TAG "03j"
|
||||
#define Z8530A_0_TAG "16m"
|
||||
#define Z8530A_1_TAG "16h"
|
||||
#define Z8530A_2_TAG "16o"
|
||||
#define FD1797_TAG "15g"
|
||||
|
||||
class x37_state : public driver_device
|
||||
{
|
||||
public:
|
||||
x37_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu")
|
||||
m_cpu(*this, MC68010_TAG),
|
||||
m_fpu(*this, NS32081_TAG),
|
||||
m_dmac(*this, MC68450_TAG),
|
||||
m_cio(*this, Z8536A_TAG),
|
||||
m_nvram(*this, NMC9306_TAG),
|
||||
m_scc0(*this, Z8530A_0_TAG),
|
||||
m_scc1(*this, Z8530A_1_TAG),
|
||||
m_scc2(*this, Z8530A_2_TAG),
|
||||
m_fdc(*this, FD1797_TAG),
|
||||
m_floppy0(*this, FD1797_TAG":0"),
|
||||
m_floppy1(*this, FD1797_TAG":1"),
|
||||
m_floppy2(*this, FD1797_TAG":2"),
|
||||
m_sasi(*this, "sasi:7:scsicb")
|
||||
{ }
|
||||
|
||||
void x37(machine_config &config);
|
||||
|
||||
private:
|
||||
required_device<m68000_base_device> m_maincpu;
|
||||
required_device<m68000_base_device> m_cpu;
|
||||
required_device<ns32081_device> m_fpu;
|
||||
required_device<hd63450_device> m_dmac;
|
||||
required_device<z8536_device> m_cio;
|
||||
required_device<nmc9306_device> m_nvram;
|
||||
required_device<scc8530_device> m_scc0;
|
||||
required_device<scc8530_device> m_scc1;
|
||||
required_device<scc8530_device> m_scc2;
|
||||
required_device<fd1797_device> m_fdc;
|
||||
required_device<floppy_connector> m_floppy0;
|
||||
required_device<floppy_connector> m_floppy1;
|
||||
required_device<floppy_connector> m_floppy2;
|
||||
required_device<nscsi_callback_device> m_sasi;
|
||||
|
||||
virtual void machine_reset() override;
|
||||
|
||||
static void floppy_formats(format_registration &fr);
|
||||
|
||||
void program_map(address_map &map);
|
||||
void cpu_space_map(address_map &map);
|
||||
@ -33,23 +84,62 @@ private:
|
||||
|
||||
void x37_state::program_map(address_map &map)
|
||||
{
|
||||
map(0x000000, 0x007fff).rom().region("maincpu", 0);
|
||||
map(0x000000, 0x007fff).rom().region(MC68010_TAG, 0);
|
||||
}
|
||||
|
||||
void x37_state::cpu_space_map(address_map &map)
|
||||
{
|
||||
map(0xffff0, 0xfffff).m(m_maincpu, FUNC(m68010_device::autovectors_map));
|
||||
map(0xffff0, 0xfffff).m(m_cpu, FUNC(m68010_device::autovectors_map));
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START( x37 )
|
||||
INPUT_PORTS_END
|
||||
|
||||
void x37_state::machine_reset()
|
||||
{
|
||||
m_fpu->reset();
|
||||
}
|
||||
|
||||
static void x37_floppies(device_slot_interface &device)
|
||||
{
|
||||
device.option_add("525qd", FLOPPY_525_QD);
|
||||
}
|
||||
|
||||
void x37_state::floppy_formats(format_registration &fr)
|
||||
{
|
||||
fr.add_mfm_containers();
|
||||
fr.add(FLOPPY_ABC1600_FORMAT);
|
||||
}
|
||||
|
||||
void x37_state::x37(machine_config &config)
|
||||
{
|
||||
// basic machine hardware
|
||||
M68010(config, m_maincpu, 10000000);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &x37_state::program_map);
|
||||
m_maincpu->set_addrmap(m68000_base_device::AS_CPU_SPACE, &x37_state::cpu_space_map);
|
||||
M68010(config, m_cpu, 20'000'000/2);
|
||||
m_cpu->set_addrmap(AS_PROGRAM, &x37_state::program_map);
|
||||
m_cpu->set_addrmap(m68000_base_device::AS_CPU_SPACE, &x37_state::cpu_space_map);
|
||||
|
||||
NS32081(config, m_fpu, 20'000'000/2);
|
||||
|
||||
HD63450(config, m_dmac, 20'000'000/2, m_cpu);
|
||||
|
||||
Z8536(config, m_cio, 6000000);
|
||||
NMC9306(config, m_nvram, 0);
|
||||
E0516(config, E050_16_TAG, 32'768);
|
||||
|
||||
SCC8530N(config, m_scc0, 6000000);
|
||||
SCC8530N(config, m_scc1, 6000000);
|
||||
SCC8530N(config, m_scc2, 6000000);
|
||||
|
||||
FD1797(config, m_fdc, 16'000'000/16);
|
||||
|
||||
FLOPPY_CONNECTOR(config, FD1797_TAG":0", x37_floppies, nullptr, x37_state::floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, FD1797_TAG":1", x37_floppies, nullptr, x37_state::floppy_formats).enable_sound(true);
|
||||
FLOPPY_CONNECTOR(config, FD1797_TAG":2", x37_floppies, "525qd", x37_state::floppy_formats).enable_sound(true);
|
||||
|
||||
NSCSI_BUS(config, "sasi");
|
||||
NSCSI_CONNECTOR(config, "sasi:0", default_scsi_devices, "s1410");
|
||||
NSCSI_CONNECTOR(config, "sasi:7", default_scsi_devices, "scsicb", true)
|
||||
.option_add_internal("scsicb", NSCSI_CB);
|
||||
|
||||
// video hardware
|
||||
ABC1600_MOVER(config, ABC1600_MOVER_TAG, 0);
|
||||
@ -59,8 +149,20 @@ void x37_state::x37(machine_config &config)
|
||||
}
|
||||
|
||||
ROM_START( x37 )
|
||||
ROM_REGION( 0x8000, "maincpu", 0 )
|
||||
ROM_LOAD( "x37.rom", 0x0000, 0x8000, CRC(d505e7e7) SHA1(a3ad839e47b1f71c394e5ce28bce199e5e4810d2) )
|
||||
ROM_REGION( 0x8000, MC68010_TAG, 0 )
|
||||
ROM_LOAD( "x37.07o", 0x0000, 0x8000, CRC(d505e7e7) SHA1(a3ad839e47b1f71c394e5ce28bce199e5e4810d2) )
|
||||
|
||||
ROM_REGION( 0x104, "plds", 0 )
|
||||
ROM_LOAD( "pat8003.12l", 0x000, 0x104, NO_DUMP )
|
||||
ROM_LOAD( "pat8031.05h", 0x000, 0x104, NO_DUMP )
|
||||
ROM_LOAD( "pat8032.07h", 0x000, 0x104, NO_DUMP )
|
||||
ROM_LOAD( "pat8033.06h", 0x000, 0x104, NO_DUMP )
|
||||
ROM_LOAD( "pat8034.12g", 0x000, 0x104, NO_DUMP )
|
||||
ROM_LOAD( "pat8035.05g", 0x000, 0x104, NO_DUMP )
|
||||
ROM_LOAD( "pat8036.07g", 0x000, 0x104, NO_DUMP )
|
||||
ROM_LOAD( "pat8037.10k", 0x000, 0x104, NO_DUMP )
|
||||
ROM_LOAD( "pat8038.04n", 0x000, 0x104, NO_DUMP )
|
||||
ROM_LOAD( "pat8039.12h", 0x000, 0x104, NO_DUMP )
|
||||
ROM_END
|
||||
|
||||
COMP( 1985, x37, 0, 0, x37, x37, x37_state, empty_init, "Luxor", "X37 (prototype)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
|
||||
|
Loading…
Reference in New Issue
Block a user