Classic Computer Magazine Archive CREATIVE COMPUTING VOL. 11, NO. 3 / MARCH 1985 / PAGE 144

IBM images; adventures in RAMland. (evaluation) Will Fastie.

When the original PC was introduced, it seemed to be offered with many memory options appropriate for the times; 16K in a base machine, 64K in a "standard" version, and expansion to 256K via 64K add-in boards sounded quite reasonable.

Wrong. I think the add-in memory board business may have been the most explosive opportunity for the after market, and third party vendors lost no time filling IBM's vacuum. And just to make it interesting, they also threw in serial ports, clocks, software, and other goodies that gave them an advantage over the competing IBM parts. AST Research didn't get where it is today by building ho-hum products.

Okay. So you figure IBM watches closely and won't make the same mistake again.

Wrong. Well, to be fair, IBM announced PCjr with at least 64K and more commonly 128K, a whopping eight times more than the original PC had and at a considerably lower price. Trouble was, by that time most PCs were in the more than 256K category, and many software products were requiring that much memory. Worse, IBM may have underestimated the number of users taking advantage of electronic disk software on the PC. Suddenly, 128K didn't sound quite so terrific.

Now 128K is actually a fair amount of memory. What makes it marginal is that software developers today do not have the resources (time or money) to build products that fit in smaller memory sizes. They tend to trade your machine's memory for their time; the result is a product out their door and into your hands faster than would otherwise be possible.

The PCjr was rather hobbled by its memory limitation. Many important software programs were not available on the machine, and those that were ran a little slower. Moreover, the add-in vendors were confronted with a new set of problems that made building expansion memory more difficult than it had been for the PC. The less severe of these included the housings for the sidecars (the plastic box that matches the finish of your PCjr) and the strange bolts used to fasten sidecars to the PCjr and one another. The more difficult problems were availability of power to drive the sidecars and the peculiar arrangement of the bottom 128K of PCjr memory.

The less severe problems may have kept quite a few vendors out of the PCjr expansion business. The real problem is that PCjr sidecars requiring greater manufacturing skills and precision than add-in boards for the PC. Tecmar, living in tool-and-die-rich Cleveland, was able to ramp up faster than anyone else and is now in the driver's seat. I know of only two other vendors of PCjr add-on products: IBM and Microsoft.

The power problem was solved by IBM and Tecmar in different ways. IBM now offers a sidecar which does nothing more than deliver 20 watts to up to three other outboard sidecars. Tecmar chose to power each add-on, and although this tends to create a little extra wire clutter, it is also more cost-effective.

The memory problem has also been addressed differently by each vendor. IBM offers only one product: 128K in a sidecar. IBM says that up to three such sidecars can be added, for a total of 512K. One IBM expansion unit can be added to PCjr without the need for extra power, and this seems to imply you could add a first 128K, then the power unit, and then three more 128K sidecars for a total memory configuration of 640K. Experiments have verified this and also demonstrated that a PCjr can get very, very wide: five sidecars add 5 5/8". IBM's memory costs $325, and the power module costs $150.

Tecmar has a more rational approach. The base module, called jrCaptain, includes 128K, a parallel port, and the ubiquitous clock/calendar and is priced at $395.

Included is Tecmar's Treasure Chest of Software, 24 programs that perform a variety of tasks. For more memory expansion, the jrCadet sidecar can be used to expand memory all the way to 640K. Yet another Tecmar product, jrWave, can be used instead of jrCaptain; it does not have the parallel port of the calendar but can expand memory up to 640K all by itself (and with the help of 256K bit chips). Catch 128 . . .

So you thought things were sounding good. The power problem is solved. The memory problem is solved. What's left?

A biggie. PCjr includes one very peculiar feature: it allows the video buffer (that is, the memory used to hold the data to be displayed on the screen) to be assigned to different places in memory. On the PC, this memory was an integral part of the display adapter and was assigned to locations outside the 640K space used for program execution. On PCjr, it is in normal RAM and can be anywhere.

Ah, but not quite. The original PCjr was only 128K and the video buffer was expected to reside at the top of RAM. To make matters worse, PCjr was designed in a way that requires the video memory to reside within the first 128K of memory. This restriction creates a problem when more memory is added: the video buffer is in the middle of memory, with chunks of program memory below and above. Programs written for the PC or PCjr require their program memory to be "contiguous," that is, all in one piece.

Both IBM and Tecmar provide software to solve the problem. The solution is to move the video buffer lower in memory and load programs for execution just after it. That strategy leaves a memory organization as shown in Figure 1 with DOS at the bottom, the video buffer next, and free memory last.

The two software solutions are different, and here, for a change, IBM shines. Their program allows the creation of varying sizes of video buffers as well as electronic disks. So does Tecmar's. Where IBM departs is in the sizing of the video buffer. Both IBM and Tecmar can create a buffer of 16 or 32K. IBM takes the additional, creative step of allowing a 96K buffer, which can be used for multiple pages of data. PCjr can switch between these pages rapidly, providing animation or just fast text display swapping. A more significant advantage is an improvement in the performance of programs.

Because the lower 128K of PCjr memory includes the video buffer, memory cycles must be shared between the CPU and the video display logic. The 8088 CPU does not get as many cycles as it does in a standard PC, and the performance of programs is thus less by about 40%. Add-on memory, however, does not suffer this fate and can deliver every cycle to the CPU. If programs could be loaded entirely in outboard memory, performance similar to that of the PC could be achieved.

Defining a video buffer of 96K pushes the combined size of DOS and the buffer to exactly 128K (the video buffer has to start on a 32K boundary) and allows all loaded programs to reside in expansion memory and, therefore, run faster. It is a nice touch, IBM, and one we would have ordinarily expected from outside sources.

And now the rub. IBM software to perform these tricks is available only in the box with IBM 128K sidecars. Ditto for Tecmar. Well, I guess I'm going to have to write a program to perform the IBM-style memory trick and publish it here. Tecmar is probably alert to this, and I would expect them to make their software do the same.

Summary: IBM 128K expansion is less expensive for the first 128K and comes with the clever software. Tecmar is more expensive, more cost-effective, less expensive at higher memory sizes, and comes with adequate software and the Treasure Chest. You pick. Electronic Disk

I'm probably like a lot of folks: I use some of my 576K, of main memory as an electronic disk drive. On my home system, all the software I use runs in 256K, leaving 320Kb for disk. Having this third hand is, well, handy. Using it effectively takes some thought.

I use it differently for different things. When I use the word processor, RAM disk holds the WP program, and data files are written directly to a floppy. When I'm programming in C, the RAM disk has the source and object files, and the compiler is executed from floppy. For Turbo Pascal, everything is on RAM drive. Other examples follow the same pattern.

Managing the electronic disk is not something that can be taken casually, especially if it contains data. I stopped using vendor software for RAM disks and started using JetDrive, from Tall Tree Systems, because the product includes a utility, called JET, that makes managing electronic disk painless. The most current version includes features and options that make it the electronic disk software of choice, even if it doesn't come for free with your exansion memory board.

The electronic disk software is a little different from most of the "freebies." It includes special support for Tall Tree's memory board product, JRAM-2, and the combination of board and software provides memory exapnsion r the PC well beyond the 1Mb limit. A more important difference is its trap for the Ctrl-Alt-Del "warm start: sequence.

Before the XT came along, most ftware required that the system board switches be set to mark the boundary between program memory and disk memory. Because the PC used the switches to size memory, RAM disk could be protected from a warm start and thus could be preserved across a reboot. The XT, however, has no such switches, and reboots thus clobber RAM disk. Tall Tree Systems has provided their own trap for the reboot key sequence and JetDrive is thus able to preserve electronic disks regardless of switch settings. This facility also lets you have all of memory if desired, or configure different RAM disks to suit different tasks. JET

The JET program is worth the entire purchase price of the JetDrivce package. Period. It is also hard to describe briefly because it is so rich in function and capability. It has so many features that I will not be able to describe them all here.

First and foremost, JET is a replacement for the DOS command COPY. Its most important feature is speed: it runs at least three times faster than COPY. It is even faster than DISKCOPY, and has the added advantage of being able to copy all the files from a disk of one format to a disk of another, something DISKCOPY cannot do.

JET is an update manager. Unless overridden, it copies only files whose date and time are more recent than the file on the target disk, and files that do not exist on the target disk.

The other major feature of Jet is backup: it can split the files it copies onto multiple disks and can recover files in the same way. Again, its virtue over the DOS BACKUP command is one of speed.

Understanding how to use JET effectively is important. I use it for three things: copying disks, setting up RAM disks, and updating data disks. for copying, JET is used just like the DOS COPY command.

RAM disk is a little different. Once a RAM disk has been created, the programs or data files you wish to use must be copied into it. I am somewhat organized; my disks are organized functionally, usually one function per disk. For example, I have only one programming language on my Turbo Pascal disk. Setting up the RAM disk is just a matter of copying files, but JET makes the process so much faster that it is the preferred method. However, I have automated the process a little further. Because I always want to use RAM disk, I like to get it automatically set to go when I turn on my system. My AUTOEXEC.BAT file (Listing 1) thus looks to see if there is a disk in drive B: using the program FDEXIST (see Listing 2) and if so, invokes JET to copy the files from B: to the RAM disk. If the file named FILELIST is on B:, a special option of JET is used to copy only those files specifically listed in FILELIST.

If I have performed one task with the system and then wish to do something else, I use the batch file SETUPC.BAT (Listing 3) to erase C: and perform a load similar to the one in AUTOEXEC.BAT. This can be done at any time, regardless of the state of the RAM disk.

If the RAM disk is being used to hold data files, it is a wise practice periodically to copy any files that have changed back to the master disk. I usually put the master disk into drive B: and issue the command

JET C:B: which copies those files which have changed, or any new files, back to disk. The only drawback to this scheme is deleted files; those files remain on disk because once they are deleted on the RAM disk, JET does not see them. This method is safe because if forces you to delete files directly from the floppy. JET is probably the most important utility I own. It is a very technical piece of software with many options and flexibility but some complexity. I think it is one of the better values in software and well worth the price.