896K-MEM
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.