Please consider a donation to the Higher Intellect project. See https://preterhuman.net/donate.php or the Donate to Higher Intellect page for more info.

WHAT IS HIGH MEMORY, WHY DO I CARE, AND HOW CAN I USE IT

From Higher Intellect Vintage Wiki
Jump to navigation Jump to search


        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.





  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.