summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2017-04-22 14:51:07 -0400
committer AJR <ajrhacker@users.noreply.github.com>2017-04-22 14:51:07 -0400
commitb80d130133b758b54b92e559ccefea2634400166 (patch)
tree16a7a93167c93e67488040e118107baca1a67e6d
parent7eb367b7fbedc913621562186d8b0dcef68b0303 (diff)
bingoc: Add eight UARTs (nw)
-rw-r--r--src/mame/drivers/bingoc.cpp29
1 files changed, 27 insertions, 2 deletions
diff --git a/src/mame/drivers/bingoc.cpp b/src/mame/drivers/bingoc.cpp
index aeb1fbc789c..5d4df9034d2 100644
--- a/src/mame/drivers/bingoc.cpp
+++ b/src/mame/drivers/bingoc.cpp
@@ -33,6 +33,7 @@ SOUND : YM2151 uPD7759C
#include "cpu/m68000/m68000.h"
#include "cpu/z80/z80.h"
#include "machine/gen_latch.h"
+#include "machine/i8251.h"
#include "sound/ym2151.h"
#include "sound/upd7759.h"
#include "screen.h"
@@ -121,8 +122,23 @@ WRITE8_MEMBER(bingoc_state::sound_play_w)
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, bingoc_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0x100000, 0x10007f) AM_READ(unknown_r) //comms? lamps?
- AM_RANGE(0x180000, 0x18007f) AM_READ(unknown_r) //comms? lamps?
+ AM_RANGE(0x100000, 0x100001) AM_DEVREADWRITE8("uart1", i8251_device, data_r, data_w, 0x00ff)
+ AM_RANGE(0x100002, 0x100003) AM_DEVREADWRITE8("uart1", i8251_device, status_r, control_w, 0x00ff)
+ AM_RANGE(0x100008, 0x100009) AM_DEVREADWRITE8("uart2", i8251_device, data_r, data_w, 0x00ff)
+ AM_RANGE(0x10000a, 0x10000b) AM_DEVREADWRITE8("uart2", i8251_device, status_r, control_w, 0x00ff)
+ AM_RANGE(0x100010, 0x100011) AM_DEVREADWRITE8("uart3", i8251_device, data_r, data_w, 0x00ff)
+ AM_RANGE(0x100012, 0x100013) AM_DEVREADWRITE8("uart3", i8251_device, status_r, control_w, 0x00ff)
+ AM_RANGE(0x100018, 0x100019) AM_DEVREADWRITE8("uart4", i8251_device, data_r, data_w, 0x00ff)
+ AM_RANGE(0x10001a, 0x10001b) AM_DEVREADWRITE8("uart4", i8251_device, status_r, control_w, 0x00ff)
+ AM_RANGE(0x100020, 0x100021) AM_DEVREADWRITE8("uart5", i8251_device, data_r, data_w, 0x00ff)
+ AM_RANGE(0x100022, 0x100023) AM_DEVREADWRITE8("uart5", i8251_device, status_r, control_w, 0x00ff)
+ AM_RANGE(0x100028, 0x100029) AM_DEVREADWRITE8("uart6", i8251_device, data_r, data_w, 0x00ff)
+ AM_RANGE(0x10002a, 0x10002b) AM_DEVREADWRITE8("uart6", i8251_device, status_r, control_w, 0x00ff)
+ AM_RANGE(0x100030, 0x100031) AM_DEVREADWRITE8("uart7", i8251_device, data_r, data_w, 0x00ff)
+ AM_RANGE(0x100032, 0x100033) AM_DEVREADWRITE8("uart7", i8251_device, status_r, control_w, 0x00ff)
+ AM_RANGE(0x100038, 0x100039) AM_DEVREADWRITE8("uart8", i8251_device, data_r, data_w, 0x00ff)
+ AM_RANGE(0x10003a, 0x10003b) AM_DEVREADWRITE8("uart8", i8251_device, status_r, control_w, 0x00ff)
+ AM_RANGE(0x180000, 0x18007f) AM_READ(unknown_r) //lamps?
#if !SOUND_TEST
AM_RANGE(0x180010, 0x180011) AM_WRITE(main_sound_latch_w) //WRONG there...
#endif
@@ -164,6 +180,15 @@ static MACHINE_CONFIG_START( bingoc, bingoc_state )
MCFG_CPU_VBLANK_INT_DRIVER("screen", bingoc_state, nmi_line_pulse)
#endif
+ MCFG_DEVICE_ADD("uart1", I8251, 4000000) // unknown
+ MCFG_DEVICE_ADD("uart2", I8251, 4000000) // unknown
+ MCFG_DEVICE_ADD("uart3", I8251, 4000000) // unknown
+ MCFG_DEVICE_ADD("uart4", I8251, 4000000) // unknown
+ MCFG_DEVICE_ADD("uart5", I8251, 4000000) // unknown
+ MCFG_DEVICE_ADD("uart6", I8251, 4000000) // unknown
+ MCFG_DEVICE_ADD("uart7", I8251, 4000000) // unknown
+ MCFG_DEVICE_ADD("uart8", I8251, 4000000) // unknown
+
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)