summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/isbc.cpp
diff options
context:
space:
mode:
authorGravatarGravatar cracyc <cracyc@users.noreply.github.com>2016-11-26 15:56:05 -0600
committerGravatarGravatar cracyc <cracyc@users.noreply.github.com>2016-11-26 15:56:05 -0600
commit1637c91a5ccf77dae40a3edab7af1e0b64b92bf7 (patch) (github)
tree9482545ef58b0a6149a3503299fe4bc09a86cbfa /src/mame/drivers/isbc.cpp
parent1287e5687db08bfa9977f2dfd1195b98e6b3e963 (diff)
downloadmame-1637c91a5ccf77dae40a3edab7af1e0b64b92bf7.tar.bz2
mame-1637c91a5ccf77dae40a3edab7af1e0b64b92bf7.zip
isbc_208: add device [Carl]
Diffstat (limited to 'src/mame/drivers/isbc.cpp')
-rw-r--r--src/mame/drivers/isbc.cpp23
1 files changed, 21 insertions, 2 deletions
diff --git a/src/mame/drivers/isbc.cpp b/src/mame/drivers/isbc.cpp
index df24679d7d7..f5c526270b9 100644
--- a/src/mame/drivers/isbc.cpp
+++ b/src/mame/drivers/isbc.cpp
@@ -10,6 +10,10 @@ Notes:
isbc86 commands: BYTE WORD REAL EREAL ROMTEST. ROMTEST works, the others hang.
+Press capital-U to drop into the monitor on the isbc 86/05 and 86/30
+The 86/05 can boot floppies with the b command but appears to mostly be
+able to deal with 8" disks as it fails to properly load the irmx86 5.25" images.
+
****************************************************************************/
#include "bus/rs232/rs232.h"
@@ -24,6 +28,7 @@ isbc86 commands: BYTE WORD REAL EREAL ROMTEST. ROMTEST works, the others hang.
#include "bus/centronics/ctronics.h"
#include "bus/isbx/isbx.h"
#include "machine/isbc_215g.h"
+#include "machine/isbc_208.h"
class isbc_state : public driver_device
{
@@ -72,7 +77,7 @@ void isbc_state::machine_reset()
static ADDRESS_MAP_START(rpc86_mem, AS_PROGRAM, 16, isbc_state)
ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x00000, 0x3ffff) AM_RAM
+ AM_RANGE(0x00000, 0xcffff) AM_RAM
AM_RANGE(0xfc000, 0xfffff) AM_ROM AM_REGION("user1",0)
ADDRESS_MAP_END
@@ -92,6 +97,11 @@ static ADDRESS_MAP_START(rpc86_io, AS_IO, 16, isbc_state)
AM_RANGE(0x00de, 0x00df) AM_DEVREADWRITE8("uart8251", i8251_device, status_r, control_w, 0x00ff)
ADDRESS_MAP_END
+static ADDRESS_MAP_START(isbc8605_io, AS_IO, 16, isbc_state)
+ AM_RANGE(0x0000, 0x002f) AM_DEVICE8("isbc_208", isbc_208_device, map, 0xffff)
+ AM_IMPORT_FROM(rpc86_io)
+ADDRESS_MAP_END
+
static ADDRESS_MAP_START(isbc86_mem, AS_PROGRAM, 16, isbc_state)
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00000, 0xfbfff) AM_RAM
@@ -276,6 +286,15 @@ static MACHINE_CONFIG_START( rpc86, isbc_state )
//MCFG_ISBX_SLOT_MINTR1_CALLBACK(DEVWRITELINE("pic_0", pic8259_device, ir6_w))
MACHINE_CONFIG_END
+static MACHINE_CONFIG_DERIVED( isbc8605, rpc86 )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_IO_MAP(isbc8605_io)
+
+ MCFG_DEVICE_ADD("isbc_208", ISBC_208, 0)
+ MCFG_ISBC_208_MAINCPU("maincpu")
+ MCFG_ISBC_208_IRQ(DEVWRITELINE("pic_0", pic8259_device, ir5_w))
+MACHINE_CONFIG_END
+
static MACHINE_CONFIG_START( isbc286, isbc_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", I80286, XTAL_16MHz/2)
@@ -398,7 +417,7 @@ ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
COMP( 19??, rpc86, 0, 0, rpc86, isbc, driver_device, 0, "Intel", "RPC 86",MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
COMP( 1978, isbc86, 0, 0, isbc86, isbc, driver_device, 0, "Intel", "iSBC 86/12A",MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
-COMP( 1981, isbc8605, 0, 0, rpc86, isbc, driver_device, 0, "Intel", "iSBC 86/05",MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
+COMP( 1981, isbc8605, 0, 0, isbc8605, isbc, driver_device, 0, "Intel", "iSBC 86/05",MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
COMP( 1981, isbc8630, 0, 0, rpc86, isbc, driver_device, 0, "Intel", "iSBC 86/30",MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
COMP( 19??, isbc286, 0, 0, isbc286, isbc, driver_device, 0, "Intel", "iSBC 286",MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
COMP( 1983, isbc2861, 0, 0, isbc2861, isbc, driver_device, 0, "Intel", "iSBC 286/10", MACHINE_NO_SOUND)