mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
Merge pull request #2489 from bmunger/r9751
r9751: smioc - add 8237 DMA controllers, rs232 ports, and update documentation.
This commit is contained in:
commit
0a48ae3cd9
@ -20,8 +20,12 @@
|
||||
* CPU - Intel N80C188 L0450591 @ ??MHz - U23
|
||||
* MCU - Signetics SC87C451CCA68 220CP079109KA 97D8641 - U70
|
||||
* DMA - KS82C37A - U46, U47, U48, U49, U50
|
||||
* SCC - Signetics SCC2698BC1A84 - U67
|
||||
* Memory - NEC D43256AGU-10LL 8948A9038 SRAM 32KB - U51
|
||||
* Memory - Mitsubishi M5M187AJ 046101-35 SRAM 64K X 1?? - U37
|
||||
* Memory - AT&T M79018DX-15B 2K X 9 Dual Port SRAM - U53
|
||||
* Memory - AT&T M79018DX-15B 2K X 9 Dual Port SRAM - U54
|
||||
|
||||
Logic:
|
||||
* U8 - 22V10-25JC
|
||||
* U33 - 22V10-25JC
|
||||
@ -38,10 +42,23 @@
|
||||
Program Memory:
|
||||
* 0x00000 - 0x07FFF : SRAM D43256AGU-10LL 32KB
|
||||
* 0xF8000 - 0xFFFFF : ROM 27C256 PLCC32 32KB
|
||||
* 0xC0080 - 0xC008F : KS82C37A - Probably RAM DMA
|
||||
* 0xC0090 - 0xC009F : KS82C37A - Serial DMA (Port 1 and 2?)
|
||||
* 0xC00A0 - 0xC00AF : KS82C37A - Serial DMA (Port 3 and 4?)
|
||||
* 0xC00B0 - 0xC00BF : KS82C37A - Serial DMA (Port 5 and 6?)
|
||||
* 0xC00C0 - 0xC00CF : KS82C37A - Serial DMA (Port 7 and 8?)
|
||||
|
||||
IO Memory:
|
||||
* Unknown
|
||||
|
||||
TODO:
|
||||
* Emulate SCC and hook up RS232 ports
|
||||
* Hook up console to RS232 port 1
|
||||
* Hook up System Monitor II to RS232 port 2
|
||||
* Dump 87C451 rom data and emulate MCU
|
||||
* Dump 87C51 on SMIOC interconnect box
|
||||
* Dump all PAL chips
|
||||
* Hook up status LEDs
|
||||
*/
|
||||
|
||||
#include "emu.h"
|
||||
@ -84,6 +101,11 @@ const tiny_rom_entry *smioc_device::device_rom_region() const
|
||||
|
||||
static ADDRESS_MAP_START( smioc_mem, AS_PROGRAM, 8, smioc_device )
|
||||
AM_RANGE(0x00000, 0x07FFF) AM_RAM AM_SHARE("smioc_ram")
|
||||
AM_RANGE(0xC0080, 0xC008F) AM_DEVREADWRITE("dma8237_1",am9517a_device,read,write) // Probably RAM DMA
|
||||
AM_RANGE(0xC0090, 0xC009F) AM_DEVREADWRITE("dma8237_2",am9517a_device,read,write) // Serial DMA
|
||||
AM_RANGE(0xC00A0, 0xC00AF) AM_DEVREADWRITE("dma8237_3",am9517a_device,read,write) // Serial DMA
|
||||
AM_RANGE(0xC00B0, 0xC00BF) AM_DEVREADWRITE("dma8237_4",am9517a_device,read,write) // Serial DMA
|
||||
AM_RANGE(0xC00C0, 0xC00CF) AM_DEVREADWRITE("dma8237_5",am9517a_device,read,write) // Serial DMA
|
||||
AM_RANGE(0xF8000, 0xFFFFF) AM_ROM AM_REGION("rom", 0)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -91,6 +113,24 @@ MACHINE_CONFIG_MEMBER( smioc_device::device_add_mconfig )
|
||||
/* CPU - Intel 80C188 */
|
||||
MCFG_CPU_ADD(I188_TAG, I80188, XTAL_20MHz / 2) // Clock division unknown
|
||||
MCFG_CPU_PROGRAM_MAP(smioc_mem)
|
||||
|
||||
/* DMA */
|
||||
MCFG_DEVICE_ADD("dma8237_1", AM9517A, XTAL_20MHz / 4) // Clock division unknown
|
||||
MCFG_DEVICE_ADD("dma8237_2", AM9517A, XTAL_20MHz / 4)
|
||||
MCFG_DEVICE_ADD("dma8237_3", AM9517A, XTAL_20MHz / 4)
|
||||
MCFG_DEVICE_ADD("dma8237_4", AM9517A, XTAL_20MHz / 4)
|
||||
MCFG_DEVICE_ADD("dma8237_5", AM9517A, XTAL_20MHz / 4)
|
||||
|
||||
/* RS232 */
|
||||
/* Port 1: Console */
|
||||
MCFG_RS232_PORT_ADD("rs232_p1", default_rs232_devices, nullptr)
|
||||
MCFG_RS232_PORT_ADD("rs232_p2", default_rs232_devices, nullptr)
|
||||
MCFG_RS232_PORT_ADD("rs232_p3", default_rs232_devices, nullptr)
|
||||
MCFG_RS232_PORT_ADD("rs232_p4", default_rs232_devices, nullptr)
|
||||
MCFG_RS232_PORT_ADD("rs232_p5", default_rs232_devices, nullptr)
|
||||
MCFG_RS232_PORT_ADD("rs232_p6", default_rs232_devices, nullptr)
|
||||
MCFG_RS232_PORT_ADD("rs232_p7", default_rs232_devices, nullptr)
|
||||
MCFG_RS232_PORT_ADD("rs232_p8", default_rs232_devices, nullptr)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
//**************************************************************************
|
||||
@ -104,6 +144,19 @@ MACHINE_CONFIG_END
|
||||
smioc_device::smioc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
device_t(mconfig, SMIOC, tag, owner, clock),
|
||||
m_smioccpu(*this, I188_TAG),
|
||||
m_dma8237_1(*this, "dma8237_1"),
|
||||
m_dma8237_2(*this, "dma8237_2"),
|
||||
m_dma8237_3(*this, "dma8237_3"),
|
||||
m_dma8237_4(*this, "dma8237_4"),
|
||||
m_dma8237_5(*this, "dma8237_5"),
|
||||
m_rs232_p1(*this, "rs232_p1"),
|
||||
m_rs232_p2(*this, "rs232_p2"),
|
||||
m_rs232_p3(*this, "rs232_p3"),
|
||||
m_rs232_p4(*this, "rs232_p4"),
|
||||
m_rs232_p5(*this, "rs232_p5"),
|
||||
m_rs232_p6(*this, "rs232_p6"),
|
||||
m_rs232_p7(*this, "rs232_p7"),
|
||||
m_rs232_p8(*this, "rs232_p8"),
|
||||
m_smioc_ram(*this, "smioc_ram")
|
||||
{
|
||||
}
|
||||
|
@ -12,6 +12,8 @@
|
||||
#pragma once
|
||||
|
||||
#include "cpu/i86/i186.h"
|
||||
#include "machine/am9517a.h"
|
||||
#include "bus/rs232/rs232.h"
|
||||
|
||||
//**************************************************************************
|
||||
// MACROS / CONSTANTS
|
||||
@ -38,6 +40,22 @@ protected:
|
||||
private:
|
||||
/* Attached devices */
|
||||
required_device<cpu_device> m_smioccpu;
|
||||
|
||||
required_device<am9517a_device> m_dma8237_1;
|
||||
required_device<am9517a_device> m_dma8237_2;
|
||||
required_device<am9517a_device> m_dma8237_3;
|
||||
required_device<am9517a_device> m_dma8237_4;
|
||||
required_device<am9517a_device> m_dma8237_5;
|
||||
|
||||
required_device<rs232_port_device> m_rs232_p1;
|
||||
required_device<rs232_port_device> m_rs232_p2;
|
||||
required_device<rs232_port_device> m_rs232_p3;
|
||||
required_device<rs232_port_device> m_rs232_p4;
|
||||
required_device<rs232_port_device> m_rs232_p5;
|
||||
required_device<rs232_port_device> m_rs232_p6;
|
||||
required_device<rs232_port_device> m_rs232_p7;
|
||||
required_device<rs232_port_device> m_rs232_p8;
|
||||
|
||||
required_shared_ptr<uint8_t> m_smioc_ram;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user