This is an old revision of the document!
IBM Thinkpad 240
- Intel Celeron 300 / 366 / 400MHz
- 64MB PC66 RAM onboard + 1 SODIMM socket (maximum of 192MB, or 230MB - with low density modules)
- Intel 440DX chipset
- NeoMagic 128XD 2MB video
- ESS Solo-1 sound
- 1x PCMCIA/Cardbus, 1x Parallel, 1x Serial, 1x IRDA, 1x USB, Line-in/Mic-in/Headphone out
- IBM Floppy connector
Bought December 2024 with a cracked screen (which I knew about). Fortunately it is all working, as tested via the VGA output:
LCD Parts ComparisonType A LCD
From the Thinkpad 240 Hardware Reference Manual:
There are two models of LCD panel used with the ThinkPad 240: LCD Type A and LCD Type B. Check the last five letters of the unit's serial number you are servicing to determine the model.
LCD Type A:
All ThinkPad 240 computers that have serial numbers whose last five alphanumeric characters are “00001” to “YZZZZ” are fitted with Type A panels.
Note: The number range is from 00001 to 99999, and the letter range is from AAAAA to YZZZZ.
LCD Type B:
All ThinkPad 240 computers that have serial numbers whose last five letters are “ZAAAA” to “ZZZZZ” are fitted with Type B panels.
The servicer need only check the fifth letter from the end.
If the fifth letter from the end is “0 — Y” (inclusive), then the LCD panel is Type A. If the fifth letter from the end is “Z”, then the LCD panel is Type B.
Part | Thinkpad 240 Type A LCD | Thinkpad 240 Type B LCD | Thinkpad 240X Type A LCD | Thinkpad 240X Type B LCD |
---|---|---|---|---|
Misc parts | 10L1955 | 10L1955 | | |
Bezel | 10L1941 | 10L1941 | | |
LCD unit | 05K9523 (Sharp LQ104S1LH11) | 05k9589 (Hitachi TX26D31VC1CAA) | | |
LCD Cable | 05K2859 | 27L0489 | | 27L0489 |
Hinge | 10L1943 | 10L1943 | 10L1943 | 10L1943 |
Rear cover | 10L1939 | 08K5820 | | 08K5820 |
Inverter | 10L1306 | 10L1431 | | 10L1431 |
tldr; The screens are not swappable between Type A and Type B systems. It is the entire lid that is needed.
Fixed Screen
Audio Setup
The ESS 1946 Solo-1E is a PCI sound chip that is Soundblaster Pro compatible. It is the last variation from ESS which contained their excellent ESFM technology for great-sounding FM music. Everything after this (both the ESS Allegro and ESS Maestro parts) sounds very poor in comparison.
This did take me a while to figure out, as I was trying to configure the ESS chip not to use the standard MPU401 port (since my Roland SCP-55 MIDI card also wanted it). I initially tried to disable the use of that port by the ESS drivers, but on doing so it would block access to the IBM keyboard! So, if you do have a Thinkpad 240 AND a Roland SCP-55, do not configure the ESS .ini file to disable MPU401, but instead move it to a different port (e.g. 0x300 instead of the standard 0x330>
You need the following three files to configure the ESS card fully:
- ESSOLO.SYS - loaded in config.sys
- ESSOLO.COM - loaded in autoexec.bat
- ESSOLO.INI - configuration file to set resources used
If the ESS card is configured correctly it should not leave behind a driver or TSR in memory (at least in real mode - YMMV with EMM386). Note that ESSOLO.INI is a binary file and needs to be edited with a hex editor
BYTE POSITION / MEANING 00: Sound Blaster IO (20 = 220, 40 = 240) 01: Sound Blaster IO (02 = 2xx (Cannot be changed)) 02: DMA (00, 01, 03) 03: DMA (Not used and don't change, default 00) 04: FM Address (Default is 88 for 388h (Cannot be changed)) 05: FM Address (Default is 03 for 388h (Cannot be changed)) 06: IRQ (05, 07, 09, 10 (0A), 11-14 (0B-0E, serialized IRQ only)) 07: IRQ (Not used and do not change, default 00) 08: Gameport Address (Default 01 for 201h (Cannot be changed))) 09: Gameport Address (Default 02 for 2xxh, change this to anything else to disable the Gameport) 0A: MPU401 Address (Default 30 for 330h, can be 00, 20, 30, 40) 0B: MPU401 Address (Default 03 for 3xxh, change this to anything else to disable MPU401) 0C: DDMA/TDMA/SB-Link (00 (DDMA), 01 (TDMA), 02 (SB-Link aka PC/PCI, set to this if using SB-Link connector on board)) 0D: DDMA/TDMA/SB-Link (Not used and don't change, default 00) 0E: Not Used 0F: Not Used
Note: definition of ESSOLO.INI taken from: https://www.vogons.org/viewtopic.php?t=79832
It seems that on the Thinkpad 240 IBM wired up the ESS Solo-1E in PC/PCI mode, which gives it the highest level of compatibility possible.
Drivers and config for my ESS configuration (Address: 0x220, Interrupt: 5, DMA: 1, MPU: 0x300, Game Port: Disabled, DMA mode: PC/PCI), of course you should also set a BLASTER line in autoexec.bat (e.g. SET BLASTER=A220 D1 I5 T4):
PCMCIA Setup
The PCMCIA chipset in the Thinkpad 240 is supported by Cardsoft drivers, and is available via
DEVICEHIGH=C:\DRIVERS\CARDSOFT\CARDXTND.SYS DEVICEHIGH=C:\DRIVERS\CARDSOFT\SSCBTI.SYS /numada:1 /ada1skts:1 DEVICEHIGH=C:\DRIVERS\CARDSOFT\CS.SYS DEVICEHIGH=C:\DRIVERS\CARDSOFT\CSALLOC.EXE
Here is a copy of the IBM-distributed Cardsoft drivers for the Thinkpad 240, extracted from the floppy-disk .exe they use, and compressed into a simple .zip:
Benchmarks
Test | Base Config | +FASTVID |
---|---|---|
3DBench 1.0c | 205.8 fps | 362.5 fps |
Chris 3D Bench | 195.6 fps | 238.8 fps |
Chris 3D Bench SVGA | Mode not supported | Mode not supported |
PC Player VGA | 80.4 fps | 86.3 fps |
PC Player SVGA | 21.7 fps | 36.5 fps |
Doom (low detail) | 259 realtics | 246 realtics |
Doom (high detail) | 1041 realtics | 991 realtics |
Quake (320×200) | 66.3 fps | 70.1 fps |
Quake (360×480) | 27.4 fps | 27.3 fps |
Quake (640×480) | 13.4 fps | 27.5 fps |
Norton SI | 747.1 | 747.1 |
Landmark CPU | 2865 MHz | 2865 MHz |
Landmark FPU | 4862 MHz | 4862 MHz |
Landmark Video | 15360 | 22861 |
Fastvid: FASTVID.EXE 011 2 F5000000
Benchmarks (Slowdown)
Benchmarks using 3DBench 1.0c and various slowdown techniques.
Using a combination of the SETMUL utility and the IBM PS2 Speed option:
PS2 Speed FixedMax (300MHz) | PS2 Speed FixedMedium (225MHz) | PS2 Speed FixedSlow (150MHz) | PS2 Speed FixedMin (3) | |
---|---|---|---|---|
SETMUL L1E L2E | 205.8 fps | 154.3 | 91.3 | ??? |
SETMUL L1E L2D | 183.2 fps | 137.3 | 91.3 | ??? |
SETMUL L1D L2E | 12.5 | 61.7 (1) | 35.3 (2) | ??? |
SETMUL L1D L2D | 12.5 | 61.7 (1) | 35.3 (2) | ??? |
- Although reported as 61.7fps, this was in reality much, much slower. More likely single-digit fps speeds. Possible bug in the benchmark?
- Reported as 35.3fps, but was actually much, much slower.
- Although the lowest possible value set by the PS2 tool, 'FixedMin' seems to result in a processor clock equal to 'FixedMedium'.
Using a combination of the CPUSPD utility, along with SETMUL:
Default | SETMUL L2D | SETMUL L1D | |
---|---|---|---|
CPUSPD T8 | 206.2 | 183.2 | 12.5 |
CPUSPD T7 | 180.3 | 160.5 | 9.0 |
CPUSPD T6 (1) | 154.4 | 137.6 | TOO SLOW |
CPUSPD T5 (1) | 128.5 | 114.5 | TOO SLOW |
CPUSPD T4 (1) | 102.7 | 91.5 | TOO SLOW |
CPUSPD T3 (1) | 76.8 | 68.5 | TOO SLOW |
CPUSPD T2 (1) | 51.0 | 45.5 | TOO SLOW |
CPUSPD T1 (1) | 25.1 | 22.4 | TOO SLOW |
- Using the PS2 Speed utility, to access states at T6 and below, you must have set PS2 SPEED FIXEDMEDIUM or less. If the PS2 tool has been set to FIXEDMAX the new state will not stick.
This gives the following approximate speed levels:
Configuration | 3DBench 1.0c Score | Nearest Equivalent |
---|---|---|
Default + Fastvid | 362 | |
Default | 205 | |
SETMUL L2D | 183 | Pentium II 233 |
CPUSPD T7 + SETMUL L2D | 160 | Pentium MMX 233 |
CPUSPD T6 | 154 | Pentium MMX 200 |
CPUSPD T6 + SETMUL L2D | 137 | Pentium MMX 166 |
CPUSPD T5 | 128 | Pentium MMX 133 |
CPUSPD T5 + SETMUL L2D | 114 | Pentium 150 |
CPUSPD T4 | 102 | Pentium 133 |
CPUSPD T4 + SETMUL L2D | 91 | Pentium 100 |
CPUSPD T3 | 76 | Am5x86 133 |
CPUSPD T3 + SETMUL L2D | 68 | 486 DX4 100 |
CPUSPD T2 | 51 | 486 DX2 66 (upper range) |
CPUSPD T2 + SETMUL L2D | 45 | 486 DX2 66 (lower range) |
CPUSPD T1 | 25 | 486 DX 33 |
CPUSPD T1 + SETMUL L2D | 22 | 486 SX 33 |
SETMUL L1D L2D | 12.5 | 386 SX 40 |
CPUSPD T7 + SETMUL L1D | 9 | 286 20 |