summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/drivers/sys2900.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mess/drivers/sys2900.c')
-rw-r--r--src/mess/drivers/sys2900.c129
1 files changed, 129 insertions, 0 deletions
diff --git a/src/mess/drivers/sys2900.c b/src/mess/drivers/sys2900.c
new file mode 100644
index 00000000000..6c550b4a146
--- /dev/null
+++ b/src/mess/drivers/sys2900.c
@@ -0,0 +1,129 @@
+/***************************************************************************
+
+ System 2900
+
+ 12/05/2009 Skeleton driver.
+
+ The system contains 4 S100 boards, 2 8" floppies, enormous power supply,
+ 1/4" thick mother board, 4 RS232 I/F boards, and an Australian made
+ "Computer Patch Board".
+ The S100 boards that make up the unit are:
+ CPU board - Model CPC2810 Rev D
+ The board has a Z80A CPU, CTC, PIO, DART and SIO.
+ U16 (24 pin) is missing (boot EPROM?).
+ It has a lot of jumpers and an 8 way DIP switch.
+ Memory board - Model HDM2800 Rev B
+ This contains 18 4164's and a lot of logic.
+ Again, a lot of jumpers, and several banks of links.
+ Also contains 2 Motorola chips I cannot identify,
+ MC3480P (24 pin) and MC3242AP (28 pin).
+ (I have searched the Motorola site and the Chip
+ Directory; nothing even close.)
+ Disk Controller board - Model FDC2800 Rev D
+ This board is damaged. The small voltage regulators
+ for +/- 12V have been fried.
+ Also, 3 sockets are empty - U1 and U38 (16 pin)
+ appear to be spares, and U10 (14 pin).
+ 8 port Serial I/O board - Model INO2808 Rev C
+ Room for 8 8251 USART's.
+ I have traced out this board and managed to get it
+ working in another S100 system.
+ The "Computer Patch Board" seems to provide some sort of watch dog
+ facility.
+
+****************************************************************************/
+
+#include "emu.h"
+#include "cpu/z80/z80.h"
+
+
+class sys2900_state : public driver_device
+{
+public:
+ sys2900_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag) { }
+
+ DECLARE_DRIVER_INIT(sys2900);
+};
+
+
+static ADDRESS_MAP_START(sys2900_mem, AS_PROGRAM, 8, sys2900_state)
+ ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE( 0x0000, 0x07ff ) AM_RAMBANK("boot")
+ AM_RANGE( 0x0800, 0xefff ) AM_RAM
+ AM_RANGE( 0xf000, 0xf7ff ) AM_ROM
+ AM_RANGE( 0xf800, 0xffff ) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START(sys2900_io, AS_IO, 8, sys2900_state)
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ADDRESS_MAP_END
+
+/* Input ports */
+static INPUT_PORTS_START( sys2900 )
+INPUT_PORTS_END
+
+
+/* after the first 4 bytes have been read from ROM, switch the ram back in */
+static TIMER_CALLBACK( sys2900_boot )
+{
+ sys2900_state *state = machine.driver_data<sys2900_state>();
+ state->membank("boot")->set_entry(0);
+}
+
+static MACHINE_RESET(sys2900)
+{
+ sys2900_state *state = machine.driver_data<sys2900_state>();
+ state->membank("boot")->set_entry(1);
+ machine.scheduler().timer_set(attotime::from_usec(5), FUNC(sys2900_boot));
+}
+
+DRIVER_INIT_MEMBER(sys2900_state,sys2900)
+{
+ UINT8 *RAM = memregion("maincpu")->base();
+ membank("boot")->configure_entries(0, 2, &RAM[0x0000], 0xf000);
+}
+
+static VIDEO_START( sys2900 )
+{
+}
+
+static SCREEN_UPDATE_IND16( sys2900 )
+{
+ return 0;
+}
+
+static MACHINE_CONFIG_START( sys2900, sys2900_state )
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz)
+ MCFG_CPU_PROGRAM_MAP(sys2900_mem)
+ MCFG_CPU_IO_MAP(sys2900_io)
+
+ MCFG_MACHINE_RESET(sys2900)
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(50)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
+ MCFG_SCREEN_SIZE(640, 480)
+ MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
+ MCFG_SCREEN_UPDATE_STATIC(sys2900)
+
+ MCFG_PALETTE_LENGTH(2)
+ MCFG_PALETTE_INIT(black_and_white)
+
+ MCFG_VIDEO_START(sys2900)
+MACHINE_CONFIG_END
+
+/* ROM definition */
+ROM_START( sys2900 )
+ ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
+ ROM_LOAD( "104401cpc.bin", 0xf000, 0x0800, CRC(6c8848bc) SHA1(890e0578e5cb0e3433b4b173e5ed71d72a92af26))
+ROM_END
+
+/* Driver */
+
+/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
+COMP( 1981, sys2900, 0, 0, sys2900, sys2900, sys2900_state, sys2900, "Systems Group", "System 2900", GAME_NOT_WORKING | GAME_NO_SOUND)
+