From 056b963e27395367b79c9154ae9d70ae1932defa Mon Sep 17 00:00:00 2001 From: Sergey Svishchev Date: Mon, 19 Dec 2016 01:01:31 +0300 Subject: [PATCH] New skeleton: Toshiba T1000 laptop (1987) --- scripts/target/mame/mess.lua | 1 + src/mame/drivers/tosh1000.cpp | 136 ++++++++++++++++++++++++++++++++++ src/mame/mame.lst | 3 + src/mame/mess.flt | 1 + 4 files changed, 141 insertions(+) create mode 100644 src/mame/drivers/tosh1000.cpp diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index b2fa12977c0..63f393a2914 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -2443,6 +2443,7 @@ files { MAME_DIR .. "src/mame/drivers/pc.cpp", MAME_DIR .. "src/mame/drivers/pcipc.cpp", MAME_DIR .. "src/mame/drivers/tandy1t.cpp", + MAME_DIR .. "src/mame/drivers/tosh1000.cpp", MAME_DIR .. "src/mame/video/pc_t1t.cpp", MAME_DIR .. "src/mame/video/pc_t1t.h", } diff --git a/src/mame/drivers/tosh1000.cpp b/src/mame/drivers/tosh1000.cpp new file mode 100644 index 00000000000..376241770ab --- /dev/null +++ b/src/mame/drivers/tosh1000.cpp @@ -0,0 +1,136 @@ +// license:BSD-3-Clause +// copyright-holders:Sergey Svishchev +/*************************************************************************** + + Toshiba T1000 portable + + 80C88 CPU @ 5 MHz [OKI MSM80C88A-10GS-K (56 pin PQFP)] + 512KB RAM + 16KB video RAM + 32KB BIOS ROM [Toshiba TC54256AD] + 256KB MS-DOS 2.11 ROM [Toshiba TC534000] + SuperIO chip (Toshiba T7885) = 82C84 + 82C88 + 82C59 + upd765 + 82C53 + 82C37 + 82C55 + Real Time Clock chip: TC8521 + Keyboard controller: 80C50 + RS232C controller: 8250 + + NB: dumps of ROM-DOS and CGA chargen are missing. + +***************************************************************************/ + + +#include "emu.h" + +#include "machine/genpc.h" +#include "bus/isa/isa_cards.h" +#include "bus/pc_kbd/keyboards.h" +#include "cpu/i86/i86.h" +#include "machine/bankdev.h" +#include "machine/ram.h" +#include "machine/rp5c01.h" +#include "softlist.h" + + +#define VERBOSE_DBG 1 /* general debug messages */ + +#define DBG_LOG(N,M,A) \ + do { \ + if(VERBOSE_DBG>=N) \ + { \ + if( M ) \ + logerror("%11.6f at %s: %-10s",machine().time().as_double(),machine().describe_context(),(char*)M ); \ + logerror A; \ + } \ + } while (0) + + + +class tosh1000_state : public driver_device +{ +public: + tosh1000_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_bankdev(*this, "romdos") + { } + + DECLARE_MACHINE_RESET(tosh1000); + DECLARE_DRIVER_INIT(tosh1000); + +protected: + required_device m_maincpu; + optional_device m_bankdev; +}; + + +DRIVER_INIT_MEMBER( tosh1000_state, tosh1000 ) +{ +} + +MACHINE_RESET_MEMBER( tosh1000_state, tosh1000 ) +{ +} + + +static ADDRESS_MAP_START( tosh1000_map, AS_PROGRAM, 8, tosh1000_state ) + ADDRESS_MAP_UNMAP_HIGH + AM_RANGE(0xa0000, 0xaffff) AM_NOP // AM_DEVREADWRITE("romdos", address_map_bank_device, read8, write8) + AM_RANGE(0xf0000, 0xfffff) AM_ROM AM_REGION("bios", 0) +ADDRESS_MAP_END + +static ADDRESS_MAP_START( tosh1000_io, AS_IO, 8, tosh1000_state ) + ADDRESS_MAP_UNMAP_HIGH + AM_RANGE(0x0000, 0x00ff) AM_DEVICE("mb", ibm5160_mb_device, map) + AM_RANGE(0x00c8, 0x00c8) AM_NOP // ROM-DOS page select [p. B-15] + AM_RANGE(0x00e0, 0x00ef) AM_NOP // ??? + AM_RANGE(0x02c0, 0x02cf) AM_DEVREADWRITE("rtc", rp5c01_device, read, write) +ADDRESS_MAP_END + + +static MACHINE_CONFIG_FRAGMENT( cfg_fdc_35 ) + MCFG_DEVICE_MODIFY("fdc:0") + MCFG_SLOT_DEFAULT_OPTION("35dd") + MCFG_SLOT_FIXED(true) + + MCFG_DEVICE_REMOVE("fdc:1") +MACHINE_CONFIG_END + +static MACHINE_CONFIG_START( tosh1000, tosh1000_state ) + MCFG_CPU_ADD("maincpu", I8088, XTAL_5MHz) + MCFG_CPU_PROGRAM_MAP(tosh1000_map) + MCFG_CPU_IO_MAP(tosh1000_io) + MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb) + + MCFG_MACHINE_RESET_OVERRIDE(tosh1000_state, tosh1000) + + MCFG_IBM5160_MOTHERBOARD_ADD("mb", "maincpu") + + MCFG_DEVICE_ADD("rtc", RP5C01, XTAL_32_768kHz) + + MCFG_ISA8_SLOT_ADD("mb:isa", "isa1", pc_isa8_cards, "cga", false) + MCFG_ISA8_SLOT_ADD("mb:isa", "isa2", pc_isa8_cards, "fdc_xt", false) + MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc_xt", cfg_fdc_35) + MCFG_ISA8_SLOT_ADD("mb:isa", "isa3", pc_isa8_cards, "lpt", false) + MCFG_ISA8_SLOT_ADD("mb:isa", "isa4", pc_isa8_cards, "com", false) + +// MCFG_SOFTWARE_LIST_ADD("flop_list","tosh1000") + + MCFG_PC_KBDC_SLOT_ADD("mb:pc_kbdc", "kbd", pc_xt_keyboards, STR_KBD_KEYTRONIC_PC3270) + + MCFG_RAM_ADD(RAM_TAG) + MCFG_RAM_DEFAULT_SIZE("512K") +MACHINE_CONFIG_END + + +ROM_START( tosh1000 ) + ROM_REGION16_LE(0x20000,"bios", 0) + ROM_SYSTEM_BIOS(0, "v410", "V4.10") + ROMX_LOAD( "tosh1000bios410.bin", 0x8000, 0x8000, CRC(a854939f) SHA1(0ff532f295a40716f53949a2fd64d02bf76d575a), ROM_BIOS(1)) + + /* XXX IBM 1501981(CGA) and 1501985(MDA) Character rom */ + ROM_REGION(0x2000,"gfx1", 0) + ROM_LOAD("5788005.u33", 0x00000, 0x2000, CRC(0bf56d70) SHA1(c2a8b10808bf51a3c123ba3eb1e9dd608231916f)) /* "AMI 8412PI // 5788005 // (C) IBM CORP. 1981 // KOREA" */ +ROM_END + + +/* YEAR ROM NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ +COMP ( 1987, tosh1000, ibm5150, 0, tosh1000, 0, tosh1000_state, tosh1000, "Toshiba", "Toshiba T1000", MACHINE_IS_SKELETON) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index f48508e7129..b0399f510bb 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -35939,6 +35939,9 @@ topspeedu // B14 (c) 1987 Taito America Corporation (US) toratora // (c) 1980 Game Plan toratorab // (c) 1980 Game Plan +@source:tosh1000.cpp +tosh1000 + @source:tourtabl.cpp tourtab2 // 030170 1978/03 [6507] tourtabl // 030170 1978/03 [6507] diff --git a/src/mame/mess.flt b/src/mame/mess.flt index 61358680303..e701eea7b43 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -625,6 +625,7 @@ tm990189.cpp tmc1800.cpp tmc2000e.cpp tmc600.cpp +tosh1000.cpp tr606.cpp tranz330.cpp tricep.cpp