summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/nscsi/cdu561.cpp
blob: 2d2506f474f836113b187456ea19aa173db7ad44 (plain) (blame)
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
// license:BSD-3-Clause
// copyright-holders:AJR
/*******************************************************************************

    Skeleton device for Sony CDU561-52 CD-ROM drive.

    PCB: MAIN 1-644-812-13

    Microcontroller:
    - Mitsubishi M37732S4AFP

    Memories:
    - TI TMS27C010A-12 EPROM or equivalent
    - Mosel MS62256CLL-10FC or Sony CXK58257AM-10L 32,768x8 Static RAM
    - Mosel MS514256A-70VC 262,144x4 Fast Page Mode DRAM (x2; near CXD1198)
    - Fujitsu MB81C79A-45 or Sony CXK5971AM-35 8,192x9 Static RAM (near CXD1186)

    Other major digital ICs:
    - Sony CXD1185CQ SCSI Controller
    - Sony CXD1186Q CD-ROM Decoder
    - Sony CXD1198AQ CD-ROM Subcode Decoder
    - Sony CXD2500BQ CD Digital Signal Processor
    - Sony CXD2568M
    - Sony CXD8416Q

    Linear ICs:
    - Sony CXA1372AQ RF Signal Processing Servo Amplifier for CD Player
    - Sony CXA1571M RF Amplifier for CD Player
    - Toshiba TA8406P Dual Power Operational Amplifier (x3)

    XTALs:
    - D169 (near CXD2500B)
    - 24.00MX (near CXD1198)

*******************************************************************************/

#include "emu.h"
#include "cdu561.h"

#include "cpu/m37710/m37710.h"
#include "machine/cxd1185.h"

DEFINE_DEVICE_TYPE(CDU561_25, cdu561_25_device, "cdu561_25", "Sony CDU561-25")

cdu561_25_device::cdu561_25_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
	: device_t(mconfig, CDU561_25, tag, owner, clock)
	, nscsi_slot_card_interface(mconfig, *this, "scsic")
{
}

void cdu561_25_device::device_start()
{
}

void cdu561_25_device::mem_map(address_map &map)
{
	map(0x000880, 0x007fff).ram();
	map(0x008000, 0x01ffff).rom().region("eprom", 0x8000);
	map(0x020000, 0x02ffff).rom().region("eprom", 0);
	map(0x030000, 0x03000f).noprw(); // CXD1186?
	map(0x050000, 0x05000f).m("scsic", FUNC(cxd1185_device::map));
	map(0x070000, 0x070001).nopr(); // ?
}

void cdu561_25_device::device_add_mconfig(machine_config &config)
{
	m37732s4_device &mcu(M37732S4(config, "mcu", 24_MHz_XTAL / 2));
	mcu.set_addrmap(AS_PROGRAM, &cdu561_25_device::mem_map);

	CXD1185(config, "scsic", 24_MHz_XTAL / 2);
}

ROM_START(cdu561_25)
	ROM_REGION16_LE(0x20000, "eprom", 0)
	ROM_SYSTEM_BIOS(0, "19a", "apl1.9a")
	ROMX_LOAD("apl1.9a_83fb.ic302", 0x00000, 0x20000, CRC(0efc50eb) SHA1(8bfd6ebc0863017914808e8282a5914cdc828f56), ROM_BIOS(0))
	ROM_SYSTEM_BIOS(1, "18f", "apl1.8F")
	ROMX_LOAD("apl1.8f_d905.ic302", 0x00000, 0x20000, CRC(3ea92e48) SHA1(2f409fd59c5f09d22e00b39f4b0b57e16316090d), ROM_BIOS(1))
ROM_END

const tiny_rom_entry *cdu561_25_device::device_rom_region() const
{
	return ROM_NAME(cdu561_25);
}