Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
blog:ibm_tp_240 [2024/12/30 20:24] – [Benchmarks (Slowdown)] john | blog:ibm_tp_240 [2025/01/02 10:44] (current) – [DOS Memory Management Optimisation] john | ||
---|---|---|---|
Line 49: | Line 49: | ||
==== Audio Setup ==== | ==== 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/ | ||
+ | 0D: DDMA/ | ||
+ | 0E: Not Used | ||
+ | 0F: Not Used | ||
+ | </ | ||
+ | |||
+ | //Note: definition of ESSOLO.INI taken from: https:// | ||
+ | |||
+ | 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**, | ||
+ | |||
+ | * {{ : | ||
==== PCMCIA Setup ==== | ==== PCMCIA Setup ==== | ||
+ | The PCMCIA chipset in the Thinkpad 240 is supported by Cardsoft drivers, and is available via from the IBM driver repository for the Thinkpad 240. The following entries are needed in config.sys to enable PCMCIA support (tested with several network cards as well as the Roland SCP-55): | ||
+ | |||
+ | < | ||
+ | DEVICEHIGH=C: | ||
+ | DEVICEHIGH=C: | ||
+ | DEVICEHIGH=C: | ||
+ | DEVICEHIGH=C: | ||
+ | </ | ||
+ | |||
+ | Note that the Cardsoft installer adds extra entries (CS_APM.EXE and CARDID.SYS), | ||
+ | |||
+ | 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: | ||
+ | |||
+ | * {{ : | ||
+ | |||
+ | ==== DOS Memory Management Optimisation ==== | ||
+ | |||
+ | === XMS / Real Mode === | ||
+ | |||
+ | In non-EMS mode you can use [[https:// | ||
+ | |||
+ | < | ||
+ | DEVICE=C: | ||
+ | </ | ||
+ | |||
+ | The inclusion ranges above map to the free areas that MSD shows as not being used. CheckIt shows other areas as potentially being free, but this is not the case once all of the PCMCIA drivers are loaded. The best way to test this is to boot without any memory manager loaded (neither HIMEM/ | ||
+ | |||
+ | < | ||
+ | a000 - b000 : 64KB VGA | ||
+ | b000 - b800 : 32KB MDA | ||
+ | b800 - c000 : 32KB CGA | ||
+ | c000 - ca00 : 40KB Neomagic video bios | ||
+ | ca00 - e000 : 88KB NOTHING (but there IS actually something here!!! Do not trust CheckIt!) | ||
+ | e000 - e800 : 32KB Unknown ROM | ||
+ | e800 - ea00 : 8KB NOTHING | ||
+ | ea00 - 0000 : 88KB System ROM | ||
+ | </ | ||
+ | |||
+ | SO my config.sys becomes: | ||
+ | |||
+ | < | ||
+ | DEVICE=C: | ||
+ | DEVICE=C: | ||
+ | DEVICEHIGH=C: | ||
+ | DEVICEHIGH=C: | ||
+ | DEVICEHIGH=C: | ||
+ | DEVICEHIGH=C: | ||
+ | </ | ||
+ | |||
+ | Sadly, for some reason I am unable to loaded all of the PCMCIA drivers high (despite enough UMB to do so). So I am left with 594KB of base memory, rather than the 620KB or so which would be available if all of the PCMCIA drivers were able to be mapped high. | ||
+ | |||
+ | === EMS Mode === | ||
+ | |||
+ | The lack of space in upper memory becomes more of an issue if you want to run EMM386 (or JEMM386 or similar)... since there isn't enough free space with all of the option ROMs to set the 64KB EMS page frame. | ||
==== Benchmarks ==== | ==== Benchmarks ==== | ||
Line 120: | Line 214: | ||
| CPUSPD T3 | 76 | Am5x86 133 | | | CPUSPD T3 | 76 | Am5x86 133 | | ||
| CPUSPD T3 + SETMUL L2D | 68 | 486 DX4 100 | | | CPUSPD T3 + SETMUL L2D | 68 | 486 DX4 100 | | ||
- | | CPUSPD T2 | 51 | 486 DX2 66 | | + | | CPUSPD T2 | 51 | 486 DX2 66 (upper range) |
- | | CPUSPD T2 + SETMUL L2D | 45 | 486 DX2 66 | | + | | CPUSPD T2 + SETMUL L2D | 45 | 486 DX2 66 (lower range) |
| CPUSPD T1 | 25 | 486 DX 33 | | | CPUSPD T1 | 25 | 486 DX 33 | | ||
| CPUSPD T1 + SETMUL L2D | 22 | 486 SX 33 | | | CPUSPD T1 + SETMUL L2D | 22 | 486 SX 33 | | ||
| SETMUL L1D L2D | 12.5 | 386 SX 40 | | | SETMUL L1D L2D | 12.5 | 386 SX 40 | | ||
| CPUSPD T7 + SETMUL L1D | 9 | 286 20 | | | CPUSPD T7 + SETMUL L1D | 9 | 286 20 | |