Previous 199869 Revisions Next

r41645 Saturday 7th November, 2015 at 17:50:13 UTC by fulivi
imds2: serial ports added, they seem ok.
[src/mame/drivers]imds2.c
[src/mame/includes]imds2.h

trunk/src/mame/drivers/imds2.c
r250156r250157
2626// A82 2732     EPROM with monitor & boot firmware (assembly source of this ROM is in [4])
2727// A66 8259A    System PIC
2828// A89 8259A    Local PIC
29//*A86 8253     PIT
30//*A91 8251A    Serial channel #0
31//*A90 8251A    Serial channel #1
29// A86 8253     PIT
30// A91 8251A    Serial channel #0
31// A90 8251A    Serial channel #1
3232//
3333// **********
3434// I/O Controller (IOC)
r250156r250157
6060//
6161// A3 8741      CPU @ 3.58 MHz
6262//
63// ICs that are not emulated yet are marked with "*"
64//
6563// NOTE:
6664// Firmware running on PIO is NOT original because a dump is not available at the moment.
6765// Emulator runs a version of PIO firmware that was specifically developped by me to implement
r250156r250157
6967//
7068// TODO:
7169// - Find a dump of the original PIO firmware
72// - Emulate serial channels on IPC
73// - Emulate PIT on IPC
7470// - Adjust speed of processors. Wait states are not accounted for yet.
7571//
7672// Huge thanks to Dave Mabry for dumping IOC firmware, KB firmware and character generator. This driver would not
r250156r250157
176172        m_ipctimer(*this , "ipctimer"),
177173        m_ipcusart0(*this , "ipcusart0"),
178174        m_ipcusart1(*this , "ipcusart1"),
175        m_serial0(*this , "serial0"),
176        m_serial1(*this , "serial1"),
179177   m_ioccpu(*this , "ioccpu"),
180178   m_iocdma(*this , "iocdma"),
181179   m_ioccrtc(*this , "ioccrtc"),
r250156r250157
787785                MCFG_I8251_RTS_HANDLER(DEVWRITELINE("ipcusart0" , i8251_device , write_cts))
788786                MCFG_I8251_RXRDY_HANDLER(DEVWRITELINE("ipclocpic" , pic8259_device , ir0_w))
789787                MCFG_I8251_TXRDY_HANDLER(DEVWRITELINE("ipclocpic" , pic8259_device , ir1_w))
788                MCFG_I8251_TXD_HANDLER(DEVWRITELINE("serial0" , rs232_port_device , write_txd))
790789
791790                MCFG_DEVICE_ADD("ipcusart1" , I8251 , 0)
792791                MCFG_I8251_RXRDY_HANDLER(DEVWRITELINE("ipclocpic" , pic8259_device , ir2_w))
793792                MCFG_I8251_TXRDY_HANDLER(DEVWRITELINE("ipclocpic" , pic8259_device , ir3_w))
793                MCFG_I8251_TXD_HANDLER(DEVWRITELINE("serial1" , rs232_port_device , write_txd))
794                MCFG_I8251_RTS_HANDLER(DEVWRITELINE("serial1" , rs232_port_device , write_rts))
795                MCFG_I8251_DTR_HANDLER(DEVWRITELINE("serial1" , rs232_port_device , write_dtr))
794796
797      MCFG_RS232_PORT_ADD("serial0" , default_rs232_devices , NULL)
798                MCFG_RS232_RXD_HANDLER(DEVWRITELINE("ipcusart0" , i8251_device , write_rxd))
799                MCFG_RS232_DSR_HANDLER(DEVWRITELINE("ipcusart0" , i8251_device , write_dsr))
800
801      MCFG_RS232_PORT_ADD("serial1" , default_rs232_devices , NULL)
802                MCFG_RS232_RXD_HANDLER(DEVWRITELINE("ipcusart1" , i8251_device , write_rxd))
803                MCFG_RS232_CTS_HANDLER(DEVWRITELINE("ipcusart1" , i8251_device , write_cts))
804                MCFG_RS232_DSR_HANDLER(DEVWRITELINE("ipcusart1" , i8251_device , write_dsr))
805
795806      MCFG_CPU_ADD("ioccpu" , I8080A , IOC_XTAL_Y2 / 18)     // 2.448 MHz but running at 50% (due to wait states & DMA usage of bus)
796807      MCFG_CPU_PROGRAM_MAP(ioc_mem_map)
797808      MCFG_CPU_IO_MAP(ioc_io_map)
trunk/src/mame/includes/imds2.h
r250156r250157
1717#include "imagedev/flopdrv.h"
1818#include "bus/centronics/ctronics.h"
1919#include "machine/i8251.h"
20#include "bus/rs232/rs232.h"
2021
2122class imds2_state : public driver_device
2223{
r250156r250157
7980   required_device<pit8253_device> m_ipctimer;
8081        required_device<i8251_device> m_ipcusart0;
8182        required_device<i8251_device> m_ipcusart1;
83   required_device<rs232_port_device> m_serial0;
84   required_device<rs232_port_device> m_serial1;
8285   required_device<i8080a_cpu_device> m_ioccpu;
8386   required_device<i8257_device> m_iocdma;
8487   required_device<i8275_device> m_ioccrtc;


Previous 199869 Revisions Next


© 1997-2024 The MAME Team