Skip to content

Commit 8283606

Browse files
authored
Add (not working) ThinkPad 600X, 760XD, and 770Z laptops (#12867)
New systems marked not working ------------------------------ IBM ThinkPad 600X [ArcadeHacker] IBM ThinkPad 760XD [ArcadeHacker] IBM ThinkPad 770Z [ArcadeHacker]
1 parent 7089e23 commit 8283606

File tree

2 files changed

+163
-15
lines changed

2 files changed

+163
-15
lines changed

src/mame/ibm/thinkpad600.cpp

Lines changed: 160 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,30 +2,49 @@
22
// copyright-holders: Angelo Salese
33
/**************************************************************************************************
44
5-
IBM ThinkPad 600 series
5+
IBM ThinkPad 6xx and 7xx series.
6+
More info from IBM: https://psref.lenovo.com/syspool/Sys/PDF/withdrawnbook/twbook.pdf
67
78
TODO:
89
- Intel e28f004b5t80 flash ROM;
9-
- RTC (what's the CMOS here?);
10+
- RTC (DS17485S-5);
1011
- keyboard (thru H8/3437);
1112
1213
===================================================================================================
1314
1415
The IBM ThinkPad 600 series was a series of notebook computers introduced in 1998 by IBM as an lighter and
1516
slimmer alternative to the 770 series. Three models were produced, the 600, 600E, and 600X.
1617
18+
Hardware for the 600X model.
19+
Main PCB:
20+
-Intel Pentium III 650 Mobile MMC-2 (PMM65002101AB).
21+
There were options for Pentium III at either 450 MHz, 500 MHz, or 650 MHz.
22+
-Intel PCIset FW82371MB (PCI-TO-ISA / IDE XCELERATOR PIIX4).
23+
-NeoMagic MagicMedia 256ZX NM2360A-A.
24+
-Crystal CS4624-CQ (CrystalClear SoundFusion PCI Audio Accelerator).
25+
-Crystal CS4297A-JQZ (CrystalClear SoundFusion Audio Codec).
26+
-National Semiconductor PC97338VJG (ACPI 1.0 and PC98/99 Compliant SuperI/O).
27+
-Hitachi HD64F3437TF.
28+
-Texas Instruments TI PCI1450GJG (PC Card Controller).
29+
-Atmel 24RF08CT (SEEPROM).
30+
-Other chips: IMI-SG577DYB, TI SN75LVDS84, 4 x IBM 0364164PT3B (64 MB of RAM on the motherboard),
31+
IBM 20H2987, IBM 10L3953, Motorola MC145583V, Maxim MAX1632EAI, etc.
32+
Enhanced video PCB:
33+
-Chrontel CH7004C-T (Digital PC to TV Encoder with Macrovision).
34+
1735
Hardware for the 600E model.
1836
Main PCB:
1937
-Intel Pentium II 366 Mobile MMC-2 (PMG36602002AA).
20-
There were options for Pentium II at either 300 MHz, 366 MHz, or 400 MHz
38+
There were options for Pentium II at either 300 MHz, 366 MHz, or 400 MHz.
2139
-Texas Instruments PCIbus SN104698GFN.
22-
-Intel PCIset FW82371EB (PCI-TO-ISA / IDE XCELERATOR PIIX4)
40+
-Intel PCIset FW82371EB (PCI-TO-ISA / IDE XCELERATOR PIIX4).
2341
-NeoMagic MagicMedia 256AV NM2200C-A.
2442
-Crystal CS4610C-CQ (CrystalClear SoundFusion PCI Audio Accelerator).
2543
-Crystal CS4239-KQ (CrystalClear Portable ISA Audio System).
2644
-National Semiconductor PC97338VJG (ACPI 1.0 and PC98/99 Compliant SuperI/O).
2745
-Hitachi HD64F3437TF.
2846
-Atmel 24C01A (SEEPROM).
47+
-Dallas DS17485S-5 (real-time clock/calendar).
2948
-Other chips: IMI-SG577DYB, TI SN75LVDS84, 4 x IBM 0364164PT3B (64 MB of RAM on the motherboard),
3049
IBM 20H2987, IBM 10L3953, Motorola MC145583V, Maxim MAX1632EAI, etc.
3150
Modem PCB:
@@ -46,6 +65,7 @@ Hardware for the 600 model.
4665
-National Semiconductor PC97338VJG (ACPI 1.0 and PC98/99 Compliant SuperI/O).
4766
-Hitachi HD64F3437TF.
4867
-Atmel 24C01A (SEEPROM).
68+
-Dallas DS17485S-5 (real-time clock/calendar).
4969
-Other chips: IMI-SG571BYB, TI SN75LVDS84, 4 x Mitsubishi M5M4V64S40ATP (64 MB of RAM on the motherboard),
5070
IBM 20H2987, IBM 10L3932, Maxim MAX1631EAI, etc.
5171
Modem PCB (same as 600E model):
@@ -55,6 +75,86 @@ Hardware for the 600 model.
5575
-TI TCM320AC36C (Voice-Band Audio Processor [VBAPE]).
5676
-Large BGA chip silkscreened "IPI I8L7360 F27904A".
5777
78+
IBM ThinkPad 760 was a notebook computer introduced in 1995 by IBM as part of the ThinkPad 700-series.
79+
Eleven models were produced: 760C, 760CD, 760L, 760LD, 760E, 760ED, 760EL, 760ELD, 760XL, 760XD, and 760D/L.
80+
81+
Hardware for the 760XD model.
82+
CPU PCB:
83+
-Intel Mobile Pentium MMX 166 (TT80503166).
84+
-Two Samsung KM732V589T-15 (Cache SRAM, 32KX32).
85+
-One IDT 71V256 (Lower Power 3.3V CMOS Fast SRAM 256K [32K x 8-Bit]).
86+
RAM PCB:
87+
-Four on-board Toshiba TC51V18165CFTS-60 (1M X 16 EDO DRAM).
88+
-Two DIMM slots.
89+
Main PCB:
90+
-Intel PCIset SB82437MX.
91+
-Intel PCIset SB82371FB.
92+
-Two Intel PCIset FA82438MX.
93+
-W48C60-402G.
94+
-Four M5M4V18165CTTP (1M x 16 EDO DRAM).
95+
-Dallas DS17485S-5 (real-time clock/calendar).
96+
-NEC 53G9037.
97+
-NEC 53G9038.
98+
-IBM 89G7219.
99+
-IBM 20H2888.
100+
-IBM 94G0207.
101+
-HD6433436A18F (mask ROM, IBM-branded).
102+
-Maxim MAX3243CAI.
103+
-C46CM6 (SEEPROM, for BIOS settings).
104+
-Texas Instruments PCIbus PCI1130PDV.
105+
-Texas Instruments 90G9510.
106+
-Intel Flash E28F004 (BIOS).
107+
Video PCB:
108+
-NEC 53G9037.
109+
-IBM 20H2929.
110+
-IBM 03H9515.
111+
-Trident Cyber9385T.
112+
-Two National Semiconductor DS90CF561MTD (LVDS 18-Bit Color Flat Panel Display [FPD] Link).
113+
-Six KM416V256DT-L6 (256K x 16Bit CMOS Dynamic RAM with Fast Page Mode).
114+
-AD722JR (RGB to NTSC/PAL Encoder).
115+
-Philips SAA7110A WP.
116+
Sound PCB:
117+
-HM62W4032HFP25.
118+
-Crystal CS4218-KQ.
119+
-Texas Instruments TCM320AC36C (Voice-Band Audio Processor).
120+
Two separate small PCBs with two IR transceivers.
121+
122+
123+
IBM ThinkPad 770 was a laptop designed and manufactured by IBM targeted for the business, enterprise and professional user.
124+
It was the last lineup in the ThinkPad 700-series, succeeding the 760 as the high-end laptop of the ThinkPad lineup.
125+
The line was produced from October 1997 to May 2000, and eventually replaced by the ThinkPad models A20m and A20p.
126+
127+
Hardware for the 770Z model.
128+
129+
Main PCB:
130+
-Intel Mobile Pentium II 366 MMC-2 (PMG36602002AA).
131+
-Texas Instruments PCIbus SN104698GFN.
132+
-Intel PCIset FW82371EB (PCI-TO-ISA / IDE XCELERATOR PIIX4)
133+
-Crystal CS4610C-CQ (CrystalClear SoundFusion PCI Audio Accelerator).
134+
-Crystal CS4239-KQ (CrystalClear Portable ISA Audio System).
135+
-National Semiconductor PC97338VJG (ACPI 1.0 and PC98/99 Compliant SuperI/O).
136+
-Hitachi HD64F3437TF (near a 33.868 MHz xtal).
137+
-Atmel 24C01A (SEEPROM).
138+
-Dallas DS17485S-5 (real-time clock/calendar).
139+
-Other chips: NEC-J 1K3153 919LW, National SemiconductorLMC6034IM, IBM 20H2987
140+
IBM 10L3953, IMI SSC660EYB, IMI SG577DYB
141+
Modem PCB:
142+
-IBM 3780i Mwave DSP.
143+
-Epson 11J9289.
144+
-Five AS7C3256-15TC (RAM).
145+
-Atmel ATF1500AL.
146+
-TI TCM320AC36C (Voice-Band Audio Processor [VBAPE]).
147+
Video PCB:
148+
-Trident Cyber9397DVD.
149+
-Two KM4132G512TQ-8.
150+
DVD and enhaced video PCB.
151+
-IBM MPEGCD1MPFC21C (near a 27 MHz xtal).
152+
-Analog Devices ADV7175AKS (integrated digital video encoder).
153+
-M5M4V16S40CTP.
154+
-CS8404A-CS.
155+
-Philips SAA7111A (video input processor).
156+
157+
58158
**************************************************************************************************/
59159

60160
#include "emu.h"
@@ -67,6 +167,7 @@ Hardware for the 600 model.
67167
#include "bus/rs232/terminal.h"
68168
#include "cpu/h8/h83337.h"
69169
#include "cpu/i386/i386.h"
170+
#include "machine/ds17x85.h"
70171
#include "machine/pci.h"
71172
#include "machine/pci-ide.h"
72173
#include "machine/i82443bx_host.h"
@@ -153,9 +254,11 @@ static void isa_internal_devices(device_slot_interface &device)
153254
void thinkpad600_state::thinkpad600_base(machine_config &config)
154255
{
155256
// TODO: move away, maps on MB resource, bump to H83437
156-
h83337_device &mcu(H83337(config, "mcu", XTAL(16'000'000))); // Actually an Hitachi HD64F3437TF, unknown clock
257+
h83337_device &mcu(H83337(config, "mcu", 10_MHz_XTAL)); // Actually an Hitachi HD64F3437TF
157258
mcu.set_addrmap(AS_PROGRAM, &thinkpad600_state::mcu_map);
158259
// mcu.set_disable();
260+
261+
DS17485(config, "rtc", 16'000'000); // Dallas DS17485S-5, unknown clock
159262
}
160263

161264
void thinkpad600_state::thinkpad600e(machine_config &config)
@@ -207,7 +310,7 @@ void thinkpad600_state::thinkpad600e(machine_config &config)
207310

208311
void thinkpad600_state::thinkpad600(machine_config &config)
209312
{
210-
PENTIUM2(config, m_maincpu, 300'000'000); // Intel Pentium II 300 Mobile MMC-1 (PMD30005002AA)
313+
PENTIUM2(config, m_maincpu, 300'000'000); // Intel Pentium II 300 Mobile MMC-1 (PMD30005002AA) on the 600 model
211314
m_maincpu->set_disable();
212315

213316
// TODO: fill me, uses earlier PIIX4 AB
@@ -217,6 +320,31 @@ void thinkpad600_state::thinkpad600(machine_config &config)
217320
}
218321

219322

323+
ROM_START(thinkpad760xd)
324+
ROM_REGION( 0x80000, "pci:07.0", 0 )
325+
ROM_LOAD( "e28f004_89g8164_rev37_h1897m.u17", 0x00000, 0x80000, CRC(6092594f) SHA1(25681e4952a432e1170f69ae75f3260245b6b44b) ) // BIOS
326+
327+
ROM_REGION( 0x0f780, "mcu", 0)
328+
ROM_LOAD( "ibm_hd6433436a18f_40h8792.u39", 0x00000, 0x0f780, NO_DUMP ) // Mask ROM, undumped
329+
330+
ROM_REGION( 0x00080, "seeprom", 0)
331+
ROM_LOAD( "st93c46c.u30", 0x00000, 0x00080, CRC(22cac7b5) SHA1(ee48ecf5d59e243e9afb0ca7e41ed8437eec8097) ) // BIOS settings
332+
ROM_END
333+
334+
ROM_START(thinkpad600)
335+
ROM_REGION( 0x80000, "pci:07.0", 0 )
336+
ROM_LOAD( "tms28f004b_18l9949_rev16-i2298m.u76", 0x00000, 0x80000, CRC(00a52b32) SHA1(08db425b8edb3a036f22beb588caa6f050fc8eb2) )
337+
338+
ROM_REGION(0x0f780, "mcu", 0)
339+
ROM_LOAD( "hd64f3437tf_10l9950_rev08_i2798m.u32", 0x00000, 0x0f780, CRC(546ec51c) SHA1(5d9b4be590307c4059ff11c434d0901819427649) )
340+
341+
ROM_REGION(0x00080, "seeprom", 0)
342+
ROM_LOAD( "atmel_24c01a.u49", 0x00000, 0x00080, CRC(9a2e2a18) SHA1(29e2832c97bc93debb4fb09fcbed582335b57efe) ) // BIOS settings
343+
344+
ROM_REGION(0x00c39, "plds", 0)
345+
ROM_LOAD( "atf1500al-modemboard.u12", 0x00000, 0x00c39, CRC(7ecd4b79) SHA1(b69ef5fe227b466f331f863ba20efd7e23056809) ) // On modem PCB
346+
ROM_END
347+
220348
ROM_START(thinkpad600e)
221349
ROM_REGION( 0x80000, "bios", 0 )
222350
ROM_LOAD( "e28f004b5t80-10l1056_rev15_h0399m.u60", 0x00000, 0x80000, CRC(fba7567b) SHA1(a84e7d4e5740150e78e5002714c9125705f3356a) )
@@ -233,7 +361,7 @@ ROM_START(thinkpad600e)
233361
ROM_LOAD( "hd64f3437tf-10l1057_rev04_h0499m.u39", 0x00000, 0x0f780, CRC(c21c928b) SHA1(33e3e6966f003655ffc2f3ac07772d2d3245740d) )
234362

235363
ROM_REGION(0x00080, "seeprom", 0)
236-
ROM_LOAD( "atmel_24c01a.u98", 0x00000, 0x00080, CRC(7ce51001) SHA1(6f25666373a6373ce0014c04df73a066f4da938b) )
364+
ROM_LOAD( "atmel_24c01a.u98", 0x00000, 0x00080, CRC(7ce51001) SHA1(6f25666373a6373ce0014c04df73a066f4da938b) ) // BIOS settings
237365

238366
ROM_REGION(0x00420, "seeprom2", 0)
239367
ROM_LOAD( "at24rf08bt.u99", 0x00000, 0x00420, CRC(c7ce9600) SHA1(4e6ed66250fed838614c3f1f6044fd9a19a2d0de) )
@@ -242,22 +370,39 @@ ROM_START(thinkpad600e)
242370
ROM_LOAD( "atf1500al-modemboard.u12", 0x00000, 0x00c39, CRC(7ecd4b79) SHA1(b69ef5fe227b466f331f863ba20efd7e23056809) ) // On modem PCB
243371
ROM_END
244372

245-
ROM_START(thinkpad600)
246-
ROM_REGION( 0x80000, "pci:07.0", 0 )
247-
ROM_LOAD( "tms28f004b_18l9949_rev16-i2298m.u76", 0x00000, 0x80000, CRC(00a52b32) SHA1(08db425b8edb3a036f22beb588caa6f050fc8eb2) )
373+
ROM_START(thinkpad600x)
374+
ROM_REGION( 0x80000, "pci:07.0", 0 )
375+
ROM_LOAD( "e28f004b5t80_08k3492_rev25_b0800m.u36", 0x00000, 0x80000, CRC(5c64ef91) SHA1(1aa2d68aff96c1ccc6859c5480fcfc5e73ab250d) )
248376

249377
ROM_REGION(0x0f780, "mcu", 0)
250-
ROM_LOAD( "hd64f3437tf_10l9950_rev08_i2798m.u32", 0x00000, 0x0f780, CRC(546ec51c) SHA1(5d9b4be590307c4059ff11c434d0901819427649) )
378+
ROM_LOAD( "hd64f3437tf_08k3493_rev05_b1100m.u75", 0x00000, 0xc000, CRC(99d21cad) SHA1(92a2809e5c7ca3a63489f9cd1c9a7dc57c6a1343) )
379+
380+
ROM_REGION(0x00080, "seeprom", 0)
381+
ROM_LOAD( "atmel24rf08ct.u79", 0x00000, 0x00080, NO_DUMP ) // BIOS settings
382+
ROM_END
383+
384+
ROM_START(thinkpad770z)
385+
ROM_REGION( 0x80000, "pci:07.0", 0 )
386+
ROM_LOAD( "e28f004b5t80-10l1055-rev09-d0999m.u59", 0x00000, 0x80000, CRC(f9f255c5) SHA1(ee209802d08c6498a42e52c5c45ce469dc095ad4) )
387+
388+
ROM_REGION(0x0f780, "mcu", 0)
389+
ROM_LOAD( "hd64f3437tf-10l1049-rev05-e2699m.u10", 0x00000, 0x0f780, CRC(c1bad151) SHA1(73d0d1b15c083a18aff6b80188443b0dc1d976c3) )
251390

252391
ROM_REGION(0x00080, "seeprom", 0)
253-
ROM_LOAD( "atmel_24c01a.u49", 0x00000, 0x00080, CRC(9a2e2a18) SHA1(29e2832c97bc93debb4fb09fcbed582335b57efe) )
392+
ROM_LOAD( "atmel24c01a.u94", 0x00000, 0x00080, CRC(7ce51001) SHA1(6f25666373a6373ce0014c04df73a066f4da938b) ) // BIOS settings
393+
394+
ROM_REGION(0x00420, "seeprom2", 0)
395+
ROM_LOAD( "una-at24rf08bt.bin", 0x00000, 0x00420, CRC(9ccddd43) SHA1(262af18b5649b01f70ef1587a14405f8f6cd8fe2) )
254396

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

259401
} // anonymous namespace
260402

261-
// YEAR, NAME, PARENT, COMPAT, MACHINE, INPUT, CLASS, INIT, COMPANY, FULLNAME, FLAGS
262-
COMP( 1999, thinkpad600e, 0, 0, thinkpad600e, thinkpad600, thinkpad600_state, empty_init, "IBM", "ThinkPad 600E", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
263-
COMP( 1998, thinkpad600, 0, 0, thinkpad600, thinkpad600, thinkpad600_state, empty_init, "IBM", "ThinkPad 600", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
403+
// YEAR, NAME, PARENT, COMPAT, MACHINE, INPUT, CLASS, INIT, COMPANY, FULLNAME, FLAGS
404+
COMP( 1995, thinkpad760xd, 0, 0, thinkpad600, thinkpad600, thinkpad600_state, empty_init, "IBM", "ThinkPad 760XD", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
405+
COMP( 1998, thinkpad600, 0, 0, thinkpad600, thinkpad600, thinkpad600_state, empty_init, "IBM", "ThinkPad 600", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
406+
COMP( 1999, thinkpad600e, 0, 0, thinkpad600e, thinkpad600, thinkpad600_state, empty_init, "IBM", "ThinkPad 600E", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
407+
COMP( 1999, thinkpad600x, 0, 0, thinkpad600, thinkpad600, thinkpad600_state, empty_init, "IBM", "ThinkPad 600X", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
408+
COMP( 1999, thinkpad770z, 0, 0, thinkpad600, thinkpad600, thinkpad600_state, empty_init, "IBM", "ThinkPad 770Z", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )

src/mame/mame.lst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20433,6 +20433,9 @@ rtpca25
2043320433
@source:ibm/thinkpad600.cpp
2043420434
thinkpad600
2043520435
thinkpad600e
20436+
thinkpad600x
20437+
thinkpad760xd
20438+
thinkpad770z
2043620439

2043720440
@source:ibm/thinkpad8xx.cpp
2043820441
thinkpad850

0 commit comments

Comments
 (0)