Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a skeleton for IBM ThinkPad 600 series #12834

Merged
merged 2 commits into from
Oct 1, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 89 additions & 0 deletions src/mame/ibm/thinkpad600.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
// license:BSD-3-Clause
// copyright-holders:
/*************************************************************************************************************
Skeleton driver for IBM ThinkPad 600 series.
The IBM ThinkPad 600 series was a series of notebook computers introduced in 1998 by IBM as an lighter and
slimmer alternative to the 770 series. Three models were produced, the 600, 600E, and 600X.

Hardware for the 600E model.
Main PCB:
-Intel Pentium II 366 Mobile MMC-2 (PMG36602002AA).
-Texas Instruments PCIbus SN104698GFN.
-Intel PCIset FW82371EB (PCI-TO-ISA / IDE XCELERATOR PIIX4)
Copy link
Member

@angelosa angelosa Sep 30, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MMC-2 should be i440bx-ish in a chip. Is it possible to run a PCI scan on this?

  • FreeDOS pcisleep L, or pci.exe;
  • lspci -vxxx on *nix;

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, sorry, it won't work anymore.
Anyway, it's for sure a PMG36602002AA CPU, TI SN104698GFN and Intel FW82371EB, see the pics:

88a36665-f814-410a-b3b8-36a873dfa849

IBM Thinkpad 600E 27L5053 Mainboard BOTTOM

-NeoMagic MagicMedia 256AV NM2200C-A.
-Crystal CS4610C-CQ (CrystalClear SoundFusion PCI Audio Accelerator).
-Crystal CS4239-KQ (CrystalClear Portable ISA Audio System).
-National Semiconductor PC97338VJG (ACPI 1.0 and PC98/99 Compliant SuperI/O).
-Hitachi HD64F3437TF.
-Atmel 24C01A (SEEPROM).
-Other chips: IMI-SG577DYB, TI SN75LVDS84, 4 x IBM 0364164PT3B, IBM 20H2987, IBM 10L3953, Motorols MC145583V,
Maxim MAX1632EAI, etc.
Modem PCB:
-Epson 11J9289.
-Five IS62LV256L-15T (isn't it too much RAM for a modem?).
-Atmel ATF1500AL.
-TI TCM320AC36C (Voice-Band Audio Processor [VBAPE]).
-Large BGA chip silkscreened "IPI I8L7360 F27904A".

*************************************************************************************************************/

#include "emu.h"
#include "cpu/h8/h8325.h"
#include "cpu/i386/i386.h"
#include "machine/pci.h"
#include "speaker.h"


namespace {

class thinkpad600_state : public driver_device
{
public:
thinkpad600_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
{ }


void thinkpad600(machine_config &config);

private:
required_device<cpu_device> m_maincpu;
};


static INPUT_PORTS_START(thinkpad600)
INPUT_PORTS_END

void thinkpad600_state::thinkpad600(machine_config &config)
{
PENTIUM2(config, m_maincpu, 366'000'000); // Intel Pentium II 366 Mobile MMC-2 (PMG36602002AA)

PCI_ROOT(config, "pci", 0);
// ...

H8325(config, "mcu", XTAL(16'000'000)); // Actually an Hitachi HD64F3437TF, unknown clock

SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
}


ROM_START(thinkpad600e)
ROM_REGION( 0x80000, "maincpu", 0 )
ROM_LOAD( "e28f004b5t80-10l1056_rev15_h0399m.u60", 0x00000, 0x80000, CRC(fba7567b) SHA1(a84e7d4e5740150e78e5002714c9125705f3356a) ) // BIOS

ROM_REGION(0x0f780, "mcu", 0)
ROM_LOAD( "hd64f3437tf-10l1057_rev04_h0499m.u39", 0x00000, 0x0f780, CRC(c21c928b) SHA1(33e3e6966f003655ffc2f3ac07772d2d3245740d) )

ROM_REGION(0x00080, "seeprom", 0)
ROM_LOAD( "atmel_24c01a.u98", 0x00000, 0x00080, CRC(7ce51001) SHA1(6f25666373a6373ce0014c04df73a066f4da938b) )

ROM_REGION(0x00c39, "plds", 0)
ROM_LOAD( "atf1500al-modemboard.u12", 0x00000, 0x00c39, CRC(7ecd4b79) SHA1(b69ef5fe227b466f331f863ba20efd7e23056809) ) // On modem PCB
ROM_END

} // anonymous namespace

// YEAR, NAME, PARENT, COMPAT, MACHINE, INPUT, CLASS, INIT, COMPANY, FULLNAME, FLAGS
COMP( 1999, thinkpad600e, 0, 0, thinkpad600, thinkpad600, thinkpad600_state, empty_init, "IBM", "ThinkPad 600E", MACHINE_IS_SKELETON )
3 changes: 3 additions & 0 deletions src/mame/mame.lst
Original file line number Diff line number Diff line change
Expand Up @@ -19980,6 +19980,9 @@ rtpc020 // IBM RT PC Model 020
rtpc025 // IBM RT PC Model 025
rtpca25 // IBM RT PC Model A25

@source:ibm/thinkpad600.cpp
thinkpad600e // IBM Thinkpad 600E

@source:ibm/thinkpad8xx.cpp
thinkpad850 // IBM Thinkpad 850

Expand Down
Loading