• Please review our updated Terms and Rules here

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

mikerofone

Experienced Member
Joined
Aug 9, 2020
Messages
69
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:
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:
I hate to necro this, but did you ever find a resolution? I am having the identical problem currently, recognises 640kb but only counts 512kb, gives a memory error, boots and memory test shows the same behaviour. I've replaced both 2x256kb SIMMs and the onboard 128kb to no avail...
 
Hi silvervest,

No worries about the necro. :) I didn't continue the investigation further as I didn't have replacement chips at hand, and instead turned to another machine in my ever-growing incoming project queue...

Are you sure that the replacement 128kB you tried were good, i.e. were you able to test them? You might try to run the Compaq diagnostics and see whether the error reported changes at all when you change the chips. Good luck!

Cheers
mikerofone
 
Thanks for getting back so fast! That's a bummer, would love to hear if you ever get it back up and running. Love these machines!

Are you sure that the replacement 128kB you tried were good, i.e. were you able to test them?
I've put them through my retro chip tester and they passed, as well as the originals. Not exactly a full test, but it's the best I've got at the moment.. I've actually tried a whole pile of different brands, speeds etc now and same result. Moving the chips around doesn't seem to affect the error code, though I haven't tried in DIAGNOSTICS yet!

We desperately need to find the III service manual, the 286 and 386 ones are so close but so far from providing the correct answers
 
Okay, I just spent a painful evening hunched over my bench testing and checking and comparing against a working unit, and I found multiple broken traces AND a faulty U71 - 74F280 9-bit parity generator/checker

I'm pretty sure the U71 is the actual culprit, and I can't really verify whether the broken traces were my own fault during rework, or previous damage. Either way, the board is a pile of bodges and now I'll have to hunt down a replacement 74F280.

Having said all that, during my debugging, I made a table of the fault codes when different memory chips are removed. 080000 F000 seems to mean that U58 of the onboard 4464 RAM ICs is missing/faulty, so hopefully that's your problem!
 
Wow, great job hunting down the culprit! The magic of having more than one device cake to the rescue again. :)

Thanks a lot for demystifying my error code in the process! I'll hope that it's a dead RAM chip indeed, instead of the same parity checker chip you found to be bad. I won't be able to dig into it this month, but hopefully I'll remember to get back to it when my current busy period is over.

Fingers crossed that once you replaced U71, your Portable will be ready for action again!

Cheers
mikerofone
 
I have two of these headed to me from ebay. It sounds like silvervest is better suited to help, but if you need any readings from a working board, let me know! I only have a cheap multimeter and might need instructions on how to read the value, but I'm willing. One of my earliest computer experiences was with one of these. My best friend's dad had one and I thought the orange screen was the coolest lol.
 
Well, the replacement 74F280 is in and it's now counting up to 640KB and booting, however the TEST diskette is failing the various memory tests with error 211-01 (during the random pattern test) or 203-02 (during regular memory tests), always at 080000 ???? or 090000 ????
I think 08 points to one specific memory segment, and 09 means 01 and 08, but without the actual Portable 3 service manual, I'm shooting blind. I've tried changing just about every memory IC and SIMM in there to no avail.
So close yet so far!
 
Back
Top