• Please review our updated Terms and Rules here

Compaq Portable III - how to get 640KB of base RAM?

mikerofone

Member
Joined
Aug 9, 2020
Messages
46
Location
Switzerland
Hi all,

Edit: I found the missing 128KB, they are right next to the RAM sockets:
ram.jpg

I guess the chips themselves or something on their path is bad, and I need to debug this. Leaving the rest of my post for posterity - thanks everyone for being my rubber ducks. :D

Any suggestions on how to debug the broken chips welcome.

Cheers
mikerofone

I cannot wrap my head around how one would get 640KB of base memory in a Compaq Portable III, even though that seems to have been the default config. I cannot find any information online about how base memory works on that machine, only on extended/expanded memory (see last page in this pdf which claims that 640KB are on the mainboard). Does anyone have a manual? I could only find Compaq Portable 386 documentation online, hardly anything on the III.

Mine came with the switches etc set for 640KB of base RAM, but it complains about memory errors unless I set it to 512KB. Digging into the configuration options, I do not understand how this machine would be configured for 640KB, unless 320KB RAM modules are a thing?

The mainboard takes two 30-pin SIMM RAM modules, in the bottom middle:
IMG_20210305_163255.jpg

These are populated with 2x256KB modules (I googled the markings on the chips). Here's a closeup:
IMG_20210305_163300.jpg

So it makes perfect sense that only 512KB work - there are simply 128KB missing. There is an additional way to add memory, a Compaq memory expansion card that can be configured for XMS or "Compaq Expanded Memory":
IMG_20210305_163452.jpg
It was populated with 2x256KB when I got it, but I replaced them with the 1MB SIMMs I had lying around. These work perfectly fine in both XMS and Compaq EMS mode.
However, that still leaves the hole between 512-1024KB; I couldn't make any of that RAM be used for base memory.

There's a third memory card that came with the computer, but it was a regular ISA card that was installed in the external ISA extension box. However, the ISA extension module seems to have a short that I have yet to debug, so I haven't been able to see what happens when that card is plugged in.
This is the card, holding what seems to be 2MB of RAM in 18x1MBit chips:
IMG_20210305_163401.jpg
Given that it has to be installed in the optional, bulky ISA extension box, I highly doubt that the "default" of 640KB base RAM requires such a card to be present.

The configuration stickers in the case don't bring any clarity for me:
IMG_20210305_163333.jpg IMG_20210305_163318.jpg

  1. The "No Extended Memory / Select Address Bank XXX" jumpers in the left image control how much of the RAM on the expansion board (RAM2) are configured as XMS. One can have none, some, or all banks configured for XMS; the rest becomes EMS. I've tried various combinations, nothing added more base.
  2. I'm not 100% sure what DIP switches 3 and 4 control exactly, since I don't know what "640KB + XXX" is supposed to mean. I've stuffed 2 1MB SIMMs into the mainboard sockets and tried various combinations of these, but I never got it to recognize more than 512KB.

If I don't install any RAM at all, the computer immediately throws an error before even attempting to POST. I was curious whether there should be 128KB soldered onto the mainboard, but that doesn't seem to be the case.

Any suggestions welcome! Only having 512KB RAM available in DOS is quite annoying. ;)

Cheers
mikerofone
 
Last edited:

mikerofone

Member
Joined
Aug 9, 2020
Messages
46
Location
Switzerland
I found http://www.1000bit.it/ad/bro/compaq/CompaqProtable3.pdf which on page 10 clearly states that the 640KB should be somewhere on the mainboard. The "motherboard" section of https://oldcrap.org/2018/11/12/compaq-portable-iii has some very high res pictures of the mainboard and RAM chips, which are the same as the ones that I have. So these 128KB have to come from somewhere else.

I guess need to find those chips and hopefully can figure out what's wrong with them.

If I set the DIP switches to 640KB, the errors I get are:

  • Code:
    080000 F000 201-Memory Error
    during POST on cold boot, counting RAM stops at 512KB.
  • The machine can boot, and running Compaq Setup yields
    Code:
    Memory Size error
    on start, and then clarifies it as
    Code:
    memory parity Error occurred during the sizing of memory
    , suggesting that the dip switches might be set incorrectly. The setup only reports 512KB of RAM, ignoring all extended memory.
  • If instead of booting, I soft-reset using Ctrl+Alt+Del after the failed POST, the computer prints
    Code:
    Parity Check 2 080000 000
    and then locks up hard.

The service manual for the Portable 286 describes the error code format on PDF page 34. Copying here for reference:

COMPAQ PORTABLE 286 Memory Error Codes
Memory error codes are in the XX000B YYZZ format.
  • XX equals the 128 Kbyte memory segment (bank) in which an error is detected.
  • 000 is always equal to 000 (not used)
  • B identifies whether the defective memory chip is in the high byte or the low byte of the memory bank.
  • When B = 0, YY defines the defective chip row location within the low byte of the memory bank.
  • When B = 1, ZZ defines the defective chip row location within the high byte of the memory bank.

[...]

COMPAQ PORTABLE 286 Memory Configuration
==============================================================================
RAM Type Error Code Memory See
xx Value Device Location Table
Code:
------------------------------------------------------------------------------
64 Kbyte       00 to 02 (0 - 256 Kbytes) System Board 5.4-1
256 Kbyte      00 to 08 (0 - 640 Kbytes) System Board 5.4-2
64 Kbyte or    10 to 2E (1 - 3 megabytes) Memory Expansion Board 5.4-3
256 Kbyte 
------------------------------------------------------------------------------
NOTE: xx codes 0A to 0F represent the memory space for the video memory and
system ROMs. Errors in the video memory or system ROM space are not reported
in the XX000B YYZZ error message format.
==============================================================================

Applying the same logic here, the issue seems to be in the last 64KB of the memory range since xx=08, and affecting the low byte since B=0. The YY=F0 value cannot be translated using that table. Hrmpf. I haven't found the service manual for the III floating around anywhere, neither schematics. I'm afraid my best guess is to replace the couple chips one by one until the problem goes away / changes?
 
Last edited:
Top