Score!

Kinja'd!!! by "bhtooefr" (bhtooefr)
Published 04/15/2017 at 20:44

Tags: retro computers ; nibbybait ; ibm ; pcjr
STARS: 4


Kinja'd!!!

So, this is the inside of a PCjr RAM sidecar, which normally adds 128 kiB of RAM to a PCjr. In fact, this is the official IBM version, released after several other companies released aftermarket RAM sidecars.

A base PCjr had 64 kiB, it could be internally expanded with another 64 kiB (with improvements in video capability), and then you needed sidecars after that - think similar to an ISA card, but in a plastic enclosure that attached to the side of the case, so that you didn’t have to open the case to add them, and the case could be smaller. IBM supported running three of these sidecars on one machine to get a total of 512 kiB, and running a fourth to get 640 kiB was trivial (I mean, it had four switches, they told you turn on switch 1 for the first, switch 2 for the second, and switch 3 for the third... so switch 4 for the fourth is only logical.)

However, note that there’s 16 RAM chips in there. By default, they were 4164s - 1 bit wide, 64 kilobit RAM chips, organized in two 8 bit wide banks. I bought this off of eBay, intending to add sockets and upgrade it to 41256s, which are 1 bit wide, and 256 kilobit. (Really attentive people will have already seen what’s up.)

But, I noticed that all four switches were turned on... so I put it on my PCjr, and noticed that it passed POST, stating 640 KB! That’s when I cracked it open, and found out that someone had already done the mod that I was going to do, and the seller didn’t even say that in the auction. Score! (If you zoom in, you’ll notice socketed chips, and that they’re 41256s already.)


Replies (4)

Kinja'd!!! "Nibby" (nibby68)
04/15/2017 at 20:50, STARS: 1

How to make MS-DOS happy :)

Kinja'd!!! "bhtooefr" (bhtooefr)
04/15/2017 at 21:34, STARS: 1

Of course, the PCjr has the additional quirk that... its BIOS reports a maximum of 128 kiB in the BIOS data area (at 0040:0013), even if the POST has detected more RAM (which, every BIOS data area map out there says 0015 is reserved, but it’s actually where the PCjr stores true RAM count).

So, you need a utility to patch that to tell DOS how much RAM there actually is, maybe remap some things (typical is to allocate a bunch of RAM in the bottom 128k to avoid DOS and programs going there as much as possible, as PCjr internal RAM has 2 wait states (on top of the 4 cycles that 8088 RAM access normally takes) due to video sharing it, whereas external RAM can have zero wait states), and restart DOS.

Kinja'd!!! "facw" (facw)
04/15/2017 at 21:51, STARS: 0

MS-DOS? This machine would have come with PC DOS (yes they’re the same thing, and yeah, the memory tweaks might have it running something else).

Kinja'd!!! "bhtooefr" (bhtooefr)
04/15/2017 at 22:47, STARS: 1

Here’s what you got with a PCjr 4860-067:

Kinja'd!!!

(PCjr 4860-004 was 64 kiB, no floppy, and no diskettes.)

Those disks had PC DOS 2.10 (the first version with PCjr support) on them, but they didn’t have the DOS utilities, so if you wanted to actually use DOS, you had to buy that separate product.

It’s also worth noting that there’s some slight differences here and there between MS-DOS and PC DOS, even before the split.

There were some oddball releases like MS-DOS 2.11, which merged the internationalization supported added to MS-DOS 2.01 (and removed from PC DOS 2.10) back into PC DOS 2.10's kernel. And, before MS-DOS 3.20, Microsoft basically only delivered a kernel, and each OEM had to implement their own utilities - MS-DOS 3.20 had Microsoft rewrites of the IBM utilities, and MS-DOS 3.30 had licensed IBM utilities (although, interestingly, MS-DOS 3.30 actually has a different RAM usage on a clean boot, compared to PC DOS 3.30).

The other big example I can think of is that IBM forked MS-DOS 5.0 to make two bugfix releases that had no Microsoft counterpart (one of which also had new features, that Microsoft merged into the MS-DOS 6.0 codebase), after Microsoft’s own bugfix release. After that, the split began (although the PC-DOS 6.x branch was a fork of MS-DOS 6.x (but with IBM utilities replacing many of the Microsoft utilities), before the rewrite for PC-DOS 7.x). Of course, none of that matters for the PCjr - PC DOS 3.30 was the last supported version. (Although, PC DOS 5.02's bootloader is often patched to run on it - the patch grabs actual memory (instead of maximum usable memory) from the BDA, because DOS 5 won’t boot on the 128 kiB system that the BDA otherwise claims, and then you have to set STACKS=0,0 as the first line in CONFIG.SYS to kill DOS 5's NMI/keyboard handlers that are PCjr-incompatible.)