Unlike my floppy drive box, only a single goat has pissed on my PCjr box
-
Here are some of the sidecars available:
Cluster Adapter - this was a pre-ethernet networking standard that could connect up to 64 computers on a coaxial cable.
Parallel Port - you want to print? Some printers were serial, but parallel printers became somewhat ubiquitous over time.
Speech Attachment - you remember Dr Sbaitso, that creepy voice thing that came with your Soundblaster drivers? Did you love that? Well, do I have the sidecar for you. If you can afford it.
Memory Sidecars - several kinds of these were available - IBM had some, but companies like Racore and even Microsoft made them. Usually the expansion RAM was faster than the onboard PCjr RAM, so these were pretty essential upgrades.
@gloriouscow The key with memory sidecars wasn't that the RAM itself was fast, it was the fact that the RAM wasn't shared with the video adapter, so it could run at equivalent speed to a normal XT.
Once I got my memory sidecar, I immediately wrote a TSR that ate up all the shared video RAM so that everything else I ran went at full speed. Made a huge difference!
-
@gloriouscow wait... cluster adapter?
@petrillic Cluster Adapter!

-
@gloriouscow The key with memory sidecars wasn't that the RAM itself was fast, it was the fact that the RAM wasn't shared with the video adapter, so it could run at equivalent speed to a normal XT.
Once I got my memory sidecar, I immediately wrote a TSR that ate up all the shared video RAM so that everything else I ran went at full speed. Made a huge difference!
@aaronsgiles I will eventually delve into the horrors of PCjr wait states.
Today you can use JRCONFIG.SYS to relocate MS-DOS above the 128K boundary, but it is a bit odd as your system basically boots twice.
-
Here are some of the sidecars available:
Cluster Adapter - this was a pre-ethernet networking standard that could connect up to 64 computers on a coaxial cable.
Parallel Port - you want to print? Some printers were serial, but parallel printers became somewhat ubiquitous over time.
Speech Attachment - you remember Dr Sbaitso, that creepy voice thing that came with your Soundblaster drivers? Did you love that? Well, do I have the sidecar for you. If you can afford it.
Memory Sidecars - several kinds of these were available - IBM had some, but companies like Racore and even Microsoft made them. Usually the expansion RAM was faster than the onboard PCjr RAM, so these were pretty essential upgrades.
Since @aaronsgiles brought it up, let's talk about the PCjr's video system.
The VGA.
No, not that VGA.
-
Since @aaronsgiles brought it up, let's talk about the PCjr's video system.
The VGA.
No, not that VGA.
The PCjr has a Video Gate Array. You're thinking about the later 256 color standard, the Video Graphics Array.
Easy mistake to make. Tandy's version of this would get unofficially named "TGA", something you might have seen when selecting your graphics options in that spiffy new DOS game you just bought.
In any case, the PCjr has no dedicated video memory, the system has shared memory. Just like your fancy new MacBook! Okay nothing at all like that, actually, because if you hadn't guessed by now, it's terrible.
-
The PCjr has a Video Gate Array. You're thinking about the later 256 color standard, the Video Graphics Array.
Easy mistake to make. Tandy's version of this would get unofficially named "TGA", something you might have seen when selecting your graphics options in that spiffy new DOS game you just bought.
In any case, the PCjr has no dedicated video memory, the system has shared memory. Just like your fancy new MacBook! Okay nothing at all like that, actually, because if you hadn't guessed by now, it's terrible.
The IBM PC uses the 8253 timer and 8237 DMA controller to refresh the system's DRAM. The D in DRAM stands for Dynamic and dynamic means if we do not refresh the RAM by accessing it periodically the contents go bye-byte.
Doing this saved IBM a decent amount of money on making dedicated refresh circuitry, at the cost of about 5-6% of your CPU performance.
-
The IBM PC uses the 8253 timer and 8237 DMA controller to refresh the system's DRAM. The D in DRAM stands for Dynamic and dynamic means if we do not refresh the RAM by accessing it periodically the contents go bye-byte.
Doing this saved IBM a decent amount of money on making dedicated refresh circuitry, at the cost of about 5-6% of your CPU performance.
@gloriouscow we should never have strayed from core memory.
-
The IBM PC uses the 8253 timer and 8237 DMA controller to refresh the system's DRAM. The D in DRAM stands for Dynamic and dynamic means if we do not refresh the RAM by accessing it periodically the contents go bye-byte.
Doing this saved IBM a decent amount of money on making dedicated refresh circuitry, at the cost of about 5-6% of your CPU performance.
But the PCjr has no DMA controller. Ruh roh! How are we going to refresh the DRAM??
Easy peasy. We just make the system RAM also the video RAM. As the PCjr's VGA reads video memory to scan out to the display, it hits all the RAS and CAS lines and we get our DRAM refreshed! Yay!
Except our CPU can't access RAM while it is doing this! Boo!
-
But the PCjr has no DMA controller. Ruh roh! How are we going to refresh the DRAM??
Easy peasy. We just make the system RAM also the video RAM. As the PCjr's VGA reads video memory to scan out to the display, it hits all the RAS and CAS lines and we get our DRAM refreshed! Yay!
Except our CPU can't access RAM while it is doing this! Boo!
IBM tells us the CPU gets one cycle every 1.1 microseconds, which is practically an eon in computer time. A CPU cycle at 4.77MHz is around 200ns, for comparison.
IBM gives some handwavy math to explain how you might see 2 wait states as a result. In unlucky code sequences you could see 3-5.
This made your peanut slow


-
The PCjr has a Video Gate Array. You're thinking about the later 256 color standard, the Video Graphics Array.
Easy mistake to make. Tandy's version of this would get unofficially named "TGA", something you might have seen when selecting your graphics options in that spiffy new DOS game you just bought.
In any case, the PCjr has no dedicated video memory, the system has shared memory. Just like your fancy new MacBook! Okay nothing at all like that, actually, because if you hadn't guessed by now, it's terrible.
@gloriouscow
It's a good thing that a "Tandy" "Gate Array" doesn't have any other meanings either, nope none at all... -
IBM tells us the CPU gets one cycle every 1.1 microseconds, which is practically an eon in computer time. A CPU cycle at 4.77MHz is around 200ns, for comparison.
IBM gives some handwavy math to explain how you might see 2 wait states as a result. In unlucky code sequences you could see 3-5.
This made your peanut slow


Manufacturers of RAM expansion cards had to provide refresh circuitry for the RAM sitting on their expansion cards, because your PCjr's VGA did not access it.
This wasn't something your IBM PC memory expansion card needed to worry about, because the PC will refresh any extra memory your put in (set your jumpers properly!)
But it also means that code running out of a PCjr RAM expansion sidecar could, in theory, run even faster than on its big older brother. Yay, peanut!
-
Manufacturers of RAM expansion cards had to provide refresh circuitry for the RAM sitting on their expansion cards, because your PCjr's VGA did not access it.
This wasn't something your IBM PC memory expansion card needed to worry about, because the PC will refresh any extra memory your put in (set your jumpers properly!)
But it also means that code running out of a PCjr RAM expansion sidecar could, in theory, run even faster than on its big older brother. Yay, peanut!
Code running out of the ROM , like the BIOS, and any cartridge you might have plugged in before everyone gave up on that idea, was also fast.
-
Code running out of the ROM , like the BIOS, and any cartridge you might have plugged in before everyone gave up on that idea, was also fast.
Tandy, when copying the PCjr to make the Tandy 1000, looked at this and saw that it was bad.
The Tandy 1000 also has a 128K window of shared DRAM, but they did two things to make the Tandy 1000 not terrible.
First, they shuffled some stuff around and tweaked some timings and basically halved the number of wait states required. Yay!
Secondly, they made the 128K shared window configurable - the system would normally move it to the top of RAM, where you were less likely to need to run code out of it, especially important stuff like DOS. Yay!
-
Tandy, when copying the PCjr to make the Tandy 1000, looked at this and saw that it was bad.
The Tandy 1000 also has a 128K window of shared DRAM, but they did two things to make the Tandy 1000 not terrible.
First, they shuffled some stuff around and tweaked some timings and basically halved the number of wait states required. Yay!
Secondly, they made the 128K shared window configurable - the system would normally move it to the top of RAM, where you were less likely to need to run code out of it, especially important stuff like DOS. Yay!
On some later Tandys you can even install a whopping 768K of RAM and have the 128K of video memory live up there above the 640K boundary and have your cake and eat it too.
There was a lot of cool stuff the VGA/TGA could do. I mean, being able to instantly switch to rendering graphics anywhere in a 128K window was a pretty crazy cool feature when you think about it - the CGA only had a measly 16K of video memory by comparison.
Unfortunately, nobody was going to make a game that relied on that, because your game had to work on the PC if you actually liked, you know, making money.
-
@gloriouscow
It's a good thing that a "Tandy" "Gate Array" doesn't have any other meanings either, nope none at all...@TechTangents so much future Tandyposting to do
-
On some later Tandys you can even install a whopping 768K of RAM and have the 128K of video memory live up there above the 640K boundary and have your cake and eat it too.
There was a lot of cool stuff the VGA/TGA could do. I mean, being able to instantly switch to rendering graphics anywhere in a 128K window was a pretty crazy cool feature when you think about it - the CGA only had a measly 16K of video memory by comparison.
Unfortunately, nobody was going to make a game that relied on that, because your game had to work on the PC if you actually liked, you know, making money.
Shall we see if my peanut even boots?
-
Shall we see if my peanut even boots?
-
The IBM PC uses the 8253 timer and 8237 DMA controller to refresh the system's DRAM. The D in DRAM stands for Dynamic and dynamic means if we do not refresh the RAM by accessing it periodically the contents go bye-byte.
Doing this saved IBM a decent amount of money on making dedicated refresh circuitry, at the cost of about 5-6% of your CPU performance.
@gloriouscow The 8257 is pretty mid, good thing IBM used the somewhat better 8237.
-
@gloriouscow The 8257 is pretty mid, good thing IBM used the somewhat better 8237.
-
I'm currently having all the wireless IBM Keyboard Adventures, and you're not. Jealous?
I'm sitting about ten feet away from the peanut and the keyboard seems to work just fine. Although, this is a fresh set of batteries, and it's relatively dim in here because I live like some kind of techno-troll.

