WHAT IS HIGH MEMORY, WHY DO I CARE, AND HOW CAN I USE IT? BY CY ATKINSON WHAT IS IT: The 8088 chip, the engine in the PC and XT, can address one meg in 16 64K segments numbered 0 thru F. IBM has designed the hardware of the PC and XT to make the first 640K available to PCDOS and the user, and reserved the upper 360K for various hardware functions such as ROS and screen buffers, etc. This upper portion of the 1 meg address capability is refered to as HIGH MEMORY, and it is available for the user in 64K segments IF THE SPECIFIC HARDWARE WHICH USES THAT SEGMENT IS NOT INSTALLED. With the exception of the area from 640 to 704K (the eleventh 64K seg- ment, and hence segment 'A'), HIGH MEMORY can not be directly addressed by DOS. But it can be used by various special programs. These programs include RAMDISK programs such as HIGHDISK, which use a portion of HIGH MEMORY as a virtual disk drive; DOS extenders, such as RAMADE, which allow you to load DOS "extensions" into this normally unused space; and simple "lid lifters" such as DOSMEM, which change the maximum size of the DOS region from 640K to 704K (and even in some special circumstances, to 736K). WHY DO I CARE: A COUPLE OF MONTHS AGO, A DISCUSSION WAS ENTERED IN AN INTERNAL IBM BBS as to how storage addresses are decoded on the IBM PC XT motherboard. The idea was advanced that it should be possible to replace all four banks of 64K chips with 256K chips, plug in a "custom" prom at U44, and depending on the system's hardware configuration, have up to 256K of additional HIGH MEMORY available for ramdisk, print spooler, DOS extensions, or whatever. Well, it's been done. IT WORKS! IT'S EASY! IT INVOLVES NO SOLDERING OR MODIFICATIONS TO THE MOTHERBOARD EXCEPT REPLACING SOCKETED CHIPS --- AND IT'S *C*H*E*A*P*!* At current San Jose prices, the cost of taking an XT from 640K to 896K is under $50. It would cost less than $95 to go all the way from 256K to 896K. On my PPC, I run a 360k ramdisk, a 96k ramdisk, a 30K print spooler, and still have 410K left for DOS and applications. A friend runs 192K of ramdisk, print spoolers, and DOS extensions, and still has a 704K DOS address space. HOW DO I DO IT: The six 64K sebments above 640K are reserved as follows: * Segment A is reserved for the fully expanded Enhanced Graphics Adapter. * Segment B is reserved for the Mono and Color graphics adapters. * Segment C is reserved for the Hard Disk Adapter, and the 3270 card. * Segments D and E are reserved for extended/expanded memory (In the PC Jr, this space is used for the rom cartridges.) * Segment F is reserved for BIOS and Basic Rom, and is not available. To access HIGH MEMORY (any combination of segments A C D E) on an IBM PC XT which already has 640K on the motherboard, all you have to do is: 1. Replace the 64K chips in the appropriate banks with 256K chips. (see the information below on options for programming the U44 decoder chip). 2. Replace the original U44 decoder ROM with one programmed to your needs according to the information in this article. 3. Set the jumpers at E2, and SW2 positions 3 and 4, to select the desired memory configuration (determined by how the new U44 is programmed and by your hardware configuration). (If you have not already expanded to 640K, you will also have to insert a 74LS158 chip in the empty chip socket U84, and you may have to install a jumper at E2, in addition to inserting the extra storage chips) TELL ME ALL ABOUT U44: U44 is a 256 X 4 bit prom. That is, it has 256 addresses, each of which contains a single hex digit (four bits) of data. This data is arranged into sixteen decoding tables, each of which has sixteen entries. These tables are what tell the machine whether a particular 64K segment of storage exists, and in which bank of chips it is located. Which table is used is determined by the E2 jumpers and SW2 pos 3 & 4. These comprise the four high order input bits to U44 (A7-A4). The two jumpers (A7 & A6) select one of four sets of tables, and the switches (A5 & A4) select the specific table within a given set. Which entry in the selected table will be used to decode a specific storage address is determined by the four high order bits of that storage address (CA19-CA16 of the PC address bus), which are directed to the four low order input bits to U44 (A3-A0). Each entry in U44's decoding tables contains one of five hexidecimal values: x'9' (select bank 0), x'B' (select bank 1), x'D' (select bank 2), x'F' (select bank 3), or x'E' (segment not addressable). BY BUILDING A TABLE WITH THE APPROPRIATE VALUES, IT IS POSSIBLE TO DECODE ANY COMBINA- TION OF 64K AND/OR 256K STORAGE CHIPS UP TO ONE MEG -- SO LONG AS IT DOES NOT CONFLICT WITH INSTALLED ADAPTERS! THE FOURTH SET OF TABLES REPRESENTS A MAJOR BREAKTHROUGH FOR OWNERS OF VERY OLD XT'S, WHICH HAVE 64K CHIPS SOLDERED INTO BANK 0 (NO SOCKETS). IT ENABLES THEM TO UPGRADE TO 640K BY INSTALLING 256K CHIPS INTO BANKS 1 AND 2, AND LEAVING 64K CHIPS IN BANKS 0 AND 3. OR, THEY MAY INSTALL 256K CHIPS INTO BANKS 1, 2, AND 3, AND ACCESS 640K PLUS UP TO 192K OF HIGH MEMORY. AGAIN, NO CHANGES ARE REQUIRED AT THE E2 JUMPER BLOCK. Using this program, you have switch selectable storage configurations to accomodate the most common hardware configurations. However, if this example isn't suitable for your particular case, it should be reasonably easy, using the information provided, to develop a special version for any particular circumstance. IBM usually uses a 24S10 for the U44 chip, but any of several subs will work fine. Blank chips can be located in most areas for well under two dollars. The only hard part is getting them programmed. IF I DO IT THIS WAY, HOW DO I SET THE SWITCHES: With a chip programmed to my recommendations installed at U44, and a jumper installed at E2 1 - 2, four new memory configurations are switch selectable: NOTE: in the tables which follow, "Closed" means that the switch is ON. "Open" means that the switch is OFF. SW2 4 & 3 = 00 (both closed)========> 640K plus Segments A, D, and E (OK with Hard Disk only) SW2 4 & 3 = 01 (4 closed, 3 open)===> 640K plus Segments C, D, and E (OK with EGA only) SW2 4 & 3 = 10 (4 open, 3 closed)===> 640K plus Segments D and E (OK with EGA and Hard Disk) SW2 4 & 3 = 11 (both open)==========> 640K (NO HIGH MEMORY) HOW CAN I GET A REPLACEMENT U44 PROM LIKE THE ONE DESCRIBED HERE: Of course, anyone who has access to a prom programmer, such as a DATIO box, can make these proms up very easily, and is welcome to do so using this information in any way he (or she) desires. But not every one has the ability to do-it-himself. Enough of those who have already been sent this information, or who have read my appends in PORTABLE FORUM, have asked me for assistance in obtaining the chips that I have been able to interest someone here in San Jose in making them up. Based ON CURRENT LOCAL PRICES FOR THE BLANKS, WE ARE OFFERING U44 CHIPS PROGRAMMED according to the listing in this article for $6.00. HERES HOW WE'LL DO IT: 1. If you live in the U.S., please mail your order to: Cy Atkinson (CHIPS) 5218 Running Bear Drive San Jose, CA 95136 Please include a check in the amount of $6.00 for each chip ordered, PLUS an additional $3.00 for postage and handling for 1 to 10 chips, $6.00 for 11 to 20, etc. 2. If you live outside the U.S., mail your order to the same address, but please include $6.00 for each chip, PLUS an additional $5.00 for 1 to 10 chips, etc. Please don't forget to clearly indicate YOUR mailing address in your order. We will attempt to handle all orders as promptly as possible. THAT'S ALL: I hope you've found this interesting and useful. Regardless of how you obtain your U44 replacement, please feel free to write to me at the address above if you run into any problems. It may take a while, but I'll try to respond. Thanks, and Happy Computing!! >>>>>>>>>>================>> Cy Atkinson EDITOR'S NOTES: 1. Assistance on this upgrade can also be obtained from the microCHIP editor who has also performed it on his portable PC. 2. IF YOU HAVE A PC1 OR PC2 (BUT NOT A PC Jr): If your ps is not the 8-slot motherboard type, but is a 5-slot motherboard, it is possible to put four banks of 256K chips on the motherboard... BUT the modification is not for the faint of heart. According to the author of the instructions for modifying 5-slot PCs, distribution is limited to IBMers and their families. The instructions for PC upgrades can be obtained from the microCHIP editor.