[comp.sys.ibm.pc] 640kb limit on DOS?

nala@ihlpl.ATT.COM (A. Flora-Holmquist) (12/08/88)

Greetings,

My father-in-law owns a PS-2 mod 50 and runs DOS 3.2. He would like to
know what version of DOS allows him to use more than 640kb for an
application and what are the advantages of DOS 4.0 over DOS 3.x versions?

Thanks ,

Al Flora-Holmquist
att!ihlpl!nala

brown@nicmad.UUCP (Vidiot (Vid-e-it)) (12/09/88)

In article <8043@ihlpl.ATT.COM> nala@ihlpl.ATT.COM (A. Flora-Holmquist) writes:
<Greetings,
<
<My father-in-law owns a PS-2 mod 50 and runs DOS 3.2. He would like to
<know what version of DOS allows him to use more than 640kb for an
<application and what are the advantages of DOS 4.0 over DOS 3.x versions?

NO version of DOS allows for anything except 640K.  OS/2 programs will.
Programs like Lotus 1-2-3 use expanded memory to do stuff.  This skirts the
DOS memory issue.

Sorry for the bad news.
-- 
	       harvard-\	 att--\
Vidiot            ucbvax!uwvax!astroatc!nicmad!brown
	       rutgers-/      decvax--/
	ARPA/INTERNET: brown%nicmad.UUCP@spool.cs.wisc.edu

maa@nbires.nbi.com (Mark Armbrust) (12/10/88)

In article <3521@nicmad.UUCP> brown@nicmad.UUCP (Vidiot (Vid-e-it)) writes:
>In article <8043@ihlpl.ATT.COM> nala@ihlpl.ATT.COM (A. Flora-Holmquist) writes:
>
>NO version of DOS allows for anything except 640K.  OS/2 programs will.
>Programs like Lotus 1-2-3 use expanded memory to do stuff.  This skirts the
>DOS memory issue.
>
I guess I better not tell this to my Tandy 2000 with 768K of memory or my NBI
2000 with 800K of DOS memory.

The problem is that PC clones have video memory starting at 0C000h which limits
contiguous low memory (The only memory normally used by DOS) to 640K.  This is
a design limitation that made sense when the PC was first introduced with only
64K of memory and 640K seemed like more than you would ever need in a PERSONAL
computer.

Note that the first "personal" computer I owned [1/3 of] was an IBM 1620 with
20K of memory and a card read/punch and console typewriter for I/O.  We later
got a line printer and two disk drives (1 meg each on a 5? platter 16" diameter
pack).  It's amazing where this industry has gone in the last 20 years; where
do you suppose it will be 20 years hence?

Happy Hacking
Mark
D
got a line printer and two disk drives (1 meg on a 4 platter

16012_3045@uwovax.uwo.ca (Paul Gomme) (12/10/88)

In article <3521@nicmad.UUCP>, brown@nicmad.UUCP (Vidiot (Vid-e-it)) writes:
> In article <8043@ihlpl.ATT.COM> nala@ihlpl.ATT.COM (A. Flora-Holmquist) writes:
> <Greetings,
> <
> <My father-in-law owns a PS-2 mod 50 and runs DOS 3.2. He would like to
> <know what version of DOS allows him to use more than 640kb for an
> <application and what are the advantages of DOS 4.0 over DOS 3.x versions?
> 
> NO version of DOS allows for anything except 640K.  OS/2 programs will.
> Programs like Lotus 1-2-3 use expanded memory to do stuff.  This skirts the
> DOS memory issue.
> 
> Sorry for the bad news.
> -- 
> 	       harvard-\	 att--\
> Vidiot            ucbvax!uwvax!astroatc!nicmad!brown
> 	       rutgers-/      decvax--/
> 	ARPA/INTERNET: brown%nicmad.UUCP@spool.cs.wisc.edu

larry@tapa.UUCP (Larry Pajakowski) (12/11/88)

You can cheat on the 640k barrier with a 386 or an All Charge Card.
QEMM from Quaterdeck will allow you to use memory below the vidio RAM if it is
avialable.  It alwyas isn't.  We use CGA cards (ugh!) because the video RAM
starts at paragraph B800 thus giving us 738k to do DOS development in.  We
couldn't do the database work in much less.

All Charge Card purports to do the same.  I have one and will be trying it on
a 286 system.  I believe 386toTheMax might do something similar.

We've been using QEMM for about 1.5 years know starting with V1.1 and really
like it.

simon@ms.uky.edu (Simon Gales) (12/11/88)

In article <593@tapa.UUCP> larry@tapa.UUCP (Larry Pajakowski) writes:
>You can cheat on the 640k barrier with a 386 or an All Charge Card.
> ...

With a 386 box, running DOS 3.x, how does one cheat on the 640k limit.
Yes the box has bios shadow ram and exteded memory, but how exactly can
a 386 help you break DOS's 640k limit?

-- 
/--------------------------------------------------------------------------\
  Simon Gales@University of Ky         UUCP:   {rutgers, uunet}!ukma!simon 
                                       Arpa:   simon@ms.uky.edu 
  MaBell: 263-2285/257-3597            BitNet: simon@UKMA.BITNET  

mcdonald@uxe.cso.uiuc.edu (12/11/88)

>Note that the first "personal" computer I owned [1/3 of] was an IBM 1620 with
>20K of memory and a card read/punch and console typewriter for I/O.  We later

That's 20K DECIMAL DIGITS of memory - 6bits per digit, 4 for the 
number, one parity, one flag bit. "Word" length was up to the full
memory length, one add instruction could add two 9000 digit long words.
The system clock actually slowed to 10Hz when the typewriter was
working (literally, the logic ran at 10 Hz. Not 10 kilohertz or
10 Megahertz, really 10 Hertz).

The first personal computer I "owned" was a PDP-8e - a RISC machine
with a 3.3 Mhz clock and 12bit words. :-)

brown@nicmad.UUCP (Vidiot (Vid-e-it)) (12/12/88)

In article <10687@s.ms.uky.edu> simon@ms.uky.edu (Simon Gales) writes:
<In article <593@tapa.UUCP> larry@tapa.UUCP (Larry Pajakowski) writes:
<>You can cheat on the 640k barrier with a 386 or an All Charge Card.
<> ...
<
<With a 386 box, running DOS 3.x, how does one cheat on the 640k limit.
<Yes the box has bios shadow ram and exteded memory, but how exactly can
<a 386 help you break DOS's 640k limit?

PS/MS-DOS does not, nor can it ever, access anything except the first 1 MB
of memory.  The first 640K being RAM and the rest being various hardware.
DOS is designed for the lowest common chip, the 8088, which only knows 1MB.

Even if you run Windows/386, DesqVIEW or VM/386, the DOS partition that is
created can only run like an 8088, ie, 640K of user memory for programs.

The only way to get more is to run OS/2 and applications designed for OS/2.
-- 
	       harvard-\	 att--\
Vidiot            ucbvax!uwvax!astroatc!nicmad!brown
	       rutgers-/      decvax--/
	ARPA/INTERNET: brown%nicmad.UUCP@spool.cs.wisc.edu

cs4571ao@ariel.unm.edu (12/13/88)

The first PC I owned was a MIKE-2 with an 8008 processor, a keypad
front panel, and 4K of RAM, connected to a SWTP 40 column, 12 line
terminal.  Storage was by a Digital Group cassette interface, storing
data at a screaming 1200 baud.

The next PC was a Digital Group computer with 48K of memory (power user :)),
part of which was 16 k of graphics memory. And the same cassette interface.

I now have a Zenith Z286 with 1 Meg of ram and a hard drive.  And I'm lusting
for more RAM but can't afford it yet (though 1 MEG of ram costs less
than either computer cost me originally).  How times change!

Pat O'Connell

nelson@sun.soe.clarkson.edu (Russ Nelson) (12/13/88)

In article <3534@nicmad.UUCP> brown@nicmad.UUCP (Vidiot (Vid-e-it)) writes:

   In article <10687@s.ms.uky.edu> simon@ms.uky.edu (Simon Gales) writes:
   <In article <593@tapa.UUCP> larry@tapa.UUCP (Larry Pajakowski) writes:
   <>You can cheat on the 640k barrier with a 386 or an All Charge Card.

   PS/MS-DOS does not, nor can it ever, access anything except the first 1 MB
   of memory.  

Well, strictly speaking, you're wrong.  You can access 1 MB + 64 K -
16 bytes directly via HIMEM.SYS, and up to 8 Meg indirectly through
EMS.  Given that you have to load a segment register to access memory
(ack), you may as well be forced to make an EMS memory manager.  Just
doesn't add that much complexity.
--
--russ (nelson@clutx [.bitnet | .clarkson.edu])
To surrender is to remain in the hands of barbarians for the rest of my life.
To fight is to leave my bones exposed in the desert waste.

maa@nbires.nbi.com (Mark Armbrust) (12/13/88)

In article <3534@nicmad.UUCP> brown@nicmad.UUCP (Vidiot (Vid-e-it)) writes:
>
>PS/MS-DOS does not, nor can it ever, access anything except the first 1 MB
>of memory.  The first 640K being RAM and the rest being various hardware.
>DOS is designed for the lowest common chip, the 8088, which only knows 1MB.
>
>Even if you run Windows/386, DesqVIEW or VM/386, the DOS partition that is
>created can only run like an 8088, ie, 640K of user memory for programs.
>
With Windows 2.1 is supplied a driver, HIMEM.SYS, that allows applications
that know how to use it to get to slightly less than 64K of memory above the
one megabyte limit.  It makes use of a feature? of the 286/386 chips: when
the physical address is calculated, there is a carry into the A20 line.  
AT's have an I/O bit controlled by the keyboard coprocessor called "A20
gate" that normally forces A20 to 0 so that these overflow addresses will
wrap around back to 0.

The convention is that a segment register is set to 0xFFFE, and then 65503
bytes of memory are available at offsets 0x0020 - 0xFFFF.  To use this memory,
A20 gate must be disabled.

A20 gate was included in the AT design to allow programs that expected the
address to wrap in the 8088 way to run on AT's.

Happy Hacking,
Mark

vu0112@bingvaxu.cc.binghamton.edu (Cliff Joslyn) (12/13/88)

When I was your age, son, we had to lick the road clean every morning. ..

:-)

-- 
O---------------------------------------------------------------------->
| Cliff Joslyn, Cybernetician at Large
| Systems Science, SUNY Binghamton, vu0112@bingvaxu.cc.binghamton.edu
V All the world is biscuit shaped. . .

Ralf.Brown@B.GP.CS.CMU.EDU (12/13/88)

In article <3534@nicmad.UUCP>, brown@nicmad.UUCP (Vidiot (Vid-e-it)) writes:
}Even if you run Windows/386, DesqVIEW or VM/386, the DOS partition that is
}created can only run like an 8088, ie, 640K of user memory for programs.
}
}The only way to get more is to run OS/2 and applications designed for OS/2.

When I finally get a working ALL ChargeCard for my 286, I will be able to run
a 960K DOS partition (it does require that direct-video-write programs be
patched, but the software includes patches and a loader for about 150 popular
programs).

--
UUCP: {ucbvax,harvard}!cs.cmu.edu!ralf -=-=-=- Voice: (412) 268-3053 (school)
ARPA: ralf@cs.cmu.edu  BIT: ralf%cs.cmu.edu@CMUCCVMA  FIDO: Ralf Brown 1:129/31
Disclaimer? I     |Ducharm's Axiom:  If you view your problem closely enough
claimed something?|   you will recognize yourself as part of the problem.

gardner@kodak.UUCP (dick gardner) (12/13/88)

In article <3534@nicmad.UUCP> brown@nicmad.UUCP (Vidiot (Vid-e-it)) writes:
>In article <10687@s.ms.uky.edu> simon@ms.uky.edu (Simon Gales) writes:
><In article <593@tapa.UUCP> larry@tapa.UUCP (Larry Pajakowski) writes:
><>You can cheat on the 640k barrier with a 386 or an All Charge Card.
><> ...
><
><With a 386 box, running DOS 3.x, how does one cheat on the 640k limit.
><Yes the box has bios shadow ram and exteded memory, but how exactly can
><a 386 help you break DOS's 640k limit?
>
>PS/MS-DOS does not, nor can it ever, access anything except the first 1 MB
>of memory.  The first 640K being RAM and the rest being various hardware.
>DOS is designed for the lowest common chip, the 8088, which only knows 1MB.
>
>Even if you run Windows/386, DesqVIEW or VM/386, the DOS partition that is
>created can only run like an 8088, ie, 640K of user memory for programs.
>
>The only way to get more is to run OS/2 and applications designed for OS/2.
>-- 
The ONLY way (if you want much smaller programs that run much faster) is to
run QNX and applications designed for QNX. For now, DOS runs as a guest
under QNX, but soon, the Quantum people will introduce a new product, RUNDOS,
that will allow multiple copies of DOS applications run directly as tasks.

Stay tuned for more developments.

=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#
   Dick Gardner -- Eastman Kodak Co.  Rochester, New York  14652-4201
                   Phone: (716) 477-1002
                   UUCP: {allegra,rutgers}!rochester!kodak!gardner

  "Brain as big as a planet and you want me to do WHAT??!?!!?"  -------
     					     Marvin, the Paranoid Android
=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#
  

mcdonald@uxe.cso.uiuc.edu (12/13/88)

<<With a 386 box, running DOS 3.x, how does one cheat on the 640k limit.
<<Yes the box has bios shadow ram and exteded memory, but how exactly can
<<a 386 help you break DOS's 640k limit?

(see below for several answers)

<PS/MS-DOS does not, nor can it ever, access anything except the first 1 MB
<of memory.  The first 640K being RAM and the rest being various hardware.
<DOS is designed for the lowest common chip, the 8088, which only knows 1MB.

This is, in a sense, true -- PC-DOS has no way on its own to access more
than the memory below the screen memory. However, this is not necessarily
640K. On a PC with only a CGA there is 640+64+32 = 736K available.
On a PC with NO screen memory ( yes, they exist, a friend of mine has
a VERY non-clone machine that is that way - he wrote the bios himself) 
you can have 768K. However, nothing prohibits a program RUNNING UNDER
PC-DOS from using a 386 in any way it pleases. See below.

<Even if you run Windows/386, DesqVIEW or VM/386, the DOS partition that is
<created can only run like an 8088, ie, 640K of user memory for programs.

I believe that this is indeed quite true.

<The only way to get more is to run OS/2 and applications designed for OS/2.
This is ABSOLUTELY NOT TRUE. NOT TRUE. Read my lips: not true. You can
run Xenix or some other Unix variant on your 286 or 386. These are not
so limited. On a 386 some Unixes are real 32bit sustems, some aren't.

On a 386 you can also run a "386 extender" program in genuine 386 mode.
This is not quite PURE "running under PC-DOS" - but is indeed IS
"running under PC-DOS". Its impurity comes from the fact that you have
something between your 386 code and PC-DOS - either the Phar Lar
or AI ARchitects extender, or something similar. But to your program,
it appears to indeed BE PC-DOS: all the usual interrupts work as usual,
the screen is directly mapped (though it can be anywhere in the 4 gigabyte
address space), etc. I know this sounds like magic to people used
to the "classic" 8086. But it is true - the magic is called "paging",
and it is part of the 386. OF course, there are very few real 386
(32 bit) programs out there - but there are some commercially
available. I believe that IBM Interleaf Publisher is such a beast (
no flames if I am wrong, please - this is by memory.) I have written several
programs myself.

If you want more space for code or data, but not 32 bit operation,
you can switch a 386 to virtual 8086 mode and use paging to move
any part of memory into the lower 640 K. In this case there is NO
quibble about running "under PC-DOS". What is not clear to me,
despite having a two-inch thick book on the subject in my lap at
this very instant, is whether manipulating the page tables can
be done from virtual 8086 mode or whether you have to switch to 386 mode.
I haven't tried any of this; I like real 386 mode!

If you are a programmer, have a 386, enough memory, and the dough to shell
out, get the Phar Lap extender, and one of the 386 C or Fortran
compilers (from Microway or Metaware).

Doug McDonald (mcdonald@uxe.cso.uiuc.edu)
.

brown@nicmad.UUCP (Vidiot (Vid-e-it)) (12/14/88)

In article <NELSON.88Dec12161451@sun.soe.clarkson.edu> nelson@clutx.clarkson.edu writes:
<In article <3534@nicmad.UUCP> brown@nicmad.UUCP (Vidiot (Vid-e-it)) writes:
<
<   In article <10687@s.ms.uky.edu> simon@ms.uky.edu (Simon Gales) writes:
<   <In article <593@tapa.UUCP> larry@tapa.UUCP (Larry Pajakowski) writes:
<   <>You can cheat on the 640k barrier with a 386 or an All Charge Card.
<
<   PS/MS-DOS does not, nor can it ever, access anything except the first 1 MB
<   of memory.  
<
<Well, strictly speaking, you're wrong.  You can access 1 MB + 64 K -
<16 bytes directly via HIMEM.SYS, and up to 8 Meg indirectly through
<EMS.  Given that you have to load a segment register to access memory
<(ack), you may as well be forced to make an EMS memory manager.  Just
<doesn't add that much complexity.

Well, strickly speaking, you're wrong as well.  The original question,
missing from here, wanted to be able to address more ram with DOS.  My
statement above stands, ie, DOS cannot address anything except the first
1 MB of memory.

Yes, there are other things that help it "cheat", but DOS itself can't.
EMS does not help DOS, it only helps the applications that understand the
EMS way of doing things.  Good 'ole DOS can't/doesn't use EMS.

Now do you understand what I am talking about?
-- 
	       harvard-\	 att--\
Vidiot            ucbvax!uwvax!astroatc!nicmad!brown
	       rutgers-/      decvax--/
	ARPA/INTERNET: brown%nicmad.UUCP@spool.cs.wisc.edu

carroll@s.cs.uiuc.edu (12/14/88)

/* Written  9:24 am  Dec 12, 1988 by brown@nicmad.UUCP in s.cs.uiuc.edu:comp.sys.ibm.pc */
(...)
The only way to get more is to run OS/2 and applications designed for OS/2.
/* End of text from s.cs.uiuc.edu:comp.sys.ibm.pc */

What about UNIX? You can run that on a '286 (AT) or a '386, although the '386
versions work a lot better.

Alan M. Carroll          "How many danger signs did you ignore?
carroll@s.cs.uiuc.edu     How many times had you heard it all before?" - AP&EW
CS Grad / U of Ill @ Urbana    ...{ucbvax,pur-ee,convex}!s.cs.uiuc.edu!carroll

brookn@btree.uucp (Paul Francis) (12/14/88)

In article <1653@bingvaxu.cc.binghamton.edu> vu0112@bingvaxu.cc.binghamton.edu.cc.binghamton.edu (Cliff Joslyn) writes:

>When I was your age, son, we had to lick the road clean every morning. ..

>:-)

You were lucky, when we were young we wished for a road to clean.

But if you tell that to the young people today they won't believe you.

8-) 8*) 8<) 8^)


>O---------------------------------------------------------------------->
>| Cliff Joslyn, Cybernetician at Large
>| Systems Science, SUNY Binghamton, vu0112@bingvaxu.cc.binghamton.edu
>V All the world is biscuit shaped. . .


-- 
 Paul ( Sicnarf ) Francis                            backbone!ucsd!btree!brookn
 "you tried it just for once, found it alright for kicks
  but now you find out you have a habit that sticks, you're an orgasm addict,
  you're always at it, and you're an orgasm addict"               the Buzzcocks

larry@tapa.UUCP (Larry Pajakowski) (12/14/88)

Since chkdsk says I have 738k on my 386 PC let me explain.  We use QEMM.  What
QEMM does is map some extended memory above 1mb. to the space where the 640k
stops and the CGA display adapter has it's RAM memory.  These are addresses
A0000 to B7FFF.  DOS finds and uses this very nicely as part of the contiguous
memory.  As a side benefit I can load TSR's above the CGA RAM and below the
BIOS ROMS.  This space is a little more tricky to manage since things like
network adapters and LIM memory lives up there.

To do this QEMM puts the 386 into protected mode and creates a virtual 8086
machine for DOS.  DesqView expoits this by allowing you to create multiple
virtual 8086 machines much like VP/ix does under Xenix/Unix.  When running
DesqView you don't get as much memory however.

Please don't tell me anymore I can't do it because I'm it works just fine.
I like having 738k for DOS and moving my TSR's out of the lower 640!

Larry

rogers@orion.SRC.Honeywell.COM (Brynn Rogers) (12/14/88)

 I run a Lisp everyday on a PC .
it will not run in under 5 Meg. (we have 16 Meg)
If your application program wants (or needs) extended ram, it
can use it all it wants. (it just ignores dos, I guess)

We run Gold Hill Common lisp on a compaq 386/20.
I believe that GClisp uses the bottom 640k just for communication with
the outside world. (We have a bunch of C code graphics routines down there.)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'Seek out new life and civilizations'	| Brynn Rogers    Honeywell S&RC
					| Internet: rogers@src.honeywell.com
       "Honey, come see what I   	| UUCP: rogers@srcsip.uucp

toma@tekgvs.GVS.TEK.COM (Tom Almy) (12/14/88)

In article <3534@nicmad.UUCP> brown@nicmad.UUCP (Vidiot (Vid-e-it)) writes:
<In article <10687@s.ms.uky.edu> simon@ms.uky.edu (Simon Gales) writes:
<<In article <593@tapa.UUCP> larry@tapa.UUCP (Larry Pajakowski) writes:
<<<You can cheat on the 640k barrier with a 386 or an All Charge Card.
<<< ...
<<
<<With a 386 box, running DOS 3.x, how does one cheat on the 640k limit?
<<Yes the box has bios shadow ram and exteded memory, but how exactly can
<<a 386 help you break DOS's 640k limit?
<
<PS/MS-DOS does not, nor can it ever, access anything except the first 1 MB
<of memory.

Buy a copy of Phar Lap DOS/EXTENDER, and compilers from either Metaware or
Microway.  This will cost at least $1,000, but then you can write programs
that run in the 80386 Protected mode.  The advantages are:

1.	Extended memory and the lower 640k are mapped (using the built in
	paging registers) into one contiguous memory.

2	All programs are "small model", small being 4 gigabytes, so run
	faster than their 8088 compiled large model equivalents.

3	You can take advantage of the 32 bit data paths, registers, and
	arithmetic.  Slopily written VAX UNIX programs stand a better 
	chance of running because sizeof(int) == sizeof (*in) == sizeof (long.

4	Demand paged virtual memory is almost available (at extra cost).

5	Almost all DOS calls (main exception being the older CP/M style
	file functions) are handled by the PharLap package, which passes them
	back to MS DOS for handling.  You don't see any performance hit, even
	with highly I/O intensive code.  You can also write interrupt routines
	which run in either real or protected mode.

The PharLap package includes a Microsoft style assembler.  Metaware has
advanced C and Pascal compilers.  Microway has C, Fortran, and Pascal 
compilers that are more in the UNIX fashion (C isn't ANSI, they produce
asm code which gets assembled, command options like UNIX...).

Using this environment I have successfully compiled xlisp, microemacs, and
Spice 2G.6.

Also for the 80386 is Laboratory Microsystems UR/FORTH 386, which at $350
gives a cheaper way to play around in protected mode (Phar Lap product not
needed).  It includes an assembler and Forth machine code compiler besides
the normal interpreted environment.

 Tom Almy
toma@tekgv.tek.com
Standard Disclaimers Apply, except I wrote the 80386 Forth compiler for
which I receive a royalty worth about a dinner at McDonalds.

br0w+@andrew.cmu.edu (Bruno W. Repetto) (12/15/88)

I have seen no response to the message that follows, and I think it should be
commented upon.  It says that the suggested modifications work for true-blue
IBM-PC's.  What about clones with other processors?  For instance, I own a
clone with a NEC V20 chip.  It already has 768k, but the additional 128k is
accessible as a ramdisk only.  Will modifications like the one suggested work
in cases like this?

Any response will be apprediated.

Bruno br0w+@andrew.cmu.edu

Message follows--------------------------------------------------------
-----------------------------------------------------------------------
From: Ted.Tang@f3.n121.z1.FIDONET.ORG (Ted Tang)
Subject: 869K total memory modification?
Date: 11 Dec 88 18:53:18 GMT

The following article was picked up by me and claims to be a hardware patch
that will enable an IBM PC/XT to have a total of 869K memory instead of the
usual 640K.  Comments on this before I go and try this out?  My comments end
above the cut line, the rest is the entire article.  I am in no way
associated with the authors of the article below, just a curious PC user who
needs to find out more before trying this patch out:

Ted Tang

 _ _ _ _ _ _O/_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
            O\  cut here

        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.



--
Ted Tang - via FidoNet node 1:121/1
UUCP: ...!uwvax!geowhiz!circle!3!Ted.Tang
ARPA: Ted.Tang@f3.n121.z1.FIDONET.ORG

brown@nicmad.UUCP (Vidiot (Vid-e-it)) (12/15/88)

In article <213400017@s.cs.uiuc.edu> carroll@s.cs.uiuc.edu writes:
<
</* Written  9:24 am  Dec 12, 1988 by brown@nicmad.UUCP in s.cs.uiuc.edu:comp.sys.ibm.pc */
<(...)
<The only way to get more is to run OS/2 and applications designed for OS/2.
</* End of text from s.cs.uiuc.edu:comp.sys.ibm.pc */
<
<What about UNIX? You can run that on a '286 (AT) or a '386, although the '386
<versions work a lot better.

The original poster asked about DOS programs.  Yes, UNIX, preferrably 386 type,
can run UNIX stuff in all kinds of memory.  But, if you open up a DOS partition
in UNIX, that partition still will only give 640K for the application, minus
DOS overhead.
-- 
	       harvard-\	 att--\
Vidiot            ucbvax!uwvax!astroatc!nicmad!brown
	       rutgers-/      decvax--/
	ARPA/INTERNET: brown%nicmad.UUCP@spool.cs.wisc.edu

brown@nicmad.UUCP (Vidiot (Vid-e-it)) (12/15/88)

In article <45900179@uxe.cso.uiuc.edu> mcdonald@uxe.cso.uiuc.edu writes:
<
<<<With a 386 box, running DOS 3.x, how does one cheat on the 640k limit.
<<<Yes the box has bios shadow ram and exteded memory, but how exactly can
<<<a 386 help you break DOS's 640k limit?
<
<(see below for several answers)
<
<<PS/MS-DOS does not, nor can it ever, access anything except the first 1 MB
<<of memory.  The first 640K being RAM and the rest being various hardware.
<<DOS is designed for the lowest common chip, the 8088, which only knows 1MB.
<
<This is, in a sense, true -- PC-DOS has no way on its own to access more
<than the memory below the screen memory. However, this is not necessarily
<640K. On a PC with only a CGA there is 640+64+32 = 736K available.
<On a PC with NO screen memory ( yes, they exist, a friend of mine has
<a VERY non-clone machine that is that way - he wrote the bios himself) 
<you can have 768K. However, nothing prohibits a program RUNNING UNDER
<PC-DOS from using a 386 in any way it pleases. See below.

PC/MS-DOS will not, on its own, access 736K.  There are drivers out there
to do it for you.  But, that 96K isn't really much, considering the Megs
of memory that can be added to a 386 machine.

MS/PC-DOS is purposely written to stay within the 640K limit.  That is
why they are producing OS/2.  Unfortunatly OS/2 will NOT run existing
DOS applications (expect one in a DOS partition, true?).

I think the original poster would like to be able to load an application,
say like DBASE, that would like to have lots of memory for lots of records,
but can't because DOS won't let him.  This may be a lousy example, but I
hope you understand.  For me, I would like to be able to use QuickBASIC
compiled programs that work with lots of data in the 4MB that I have, but
it won't because DOS won't let me.

<<Even if you run Windows/386, DesqVIEW or VM/386, the DOS partition that is
<<created can only run like an 8088, ie, 640K of user memory for programs.
<
<I believe that this is indeed quite true.
<
<<The only way to get more is to run OS/2 and applications designed for OS/2.
<This is ABSOLUTELY NOT TRUE. NOT TRUE. Read my lips: not true. You can
<run Xenix or some other Unix variant on your 286 or 386. These are not
<so limited. On a 386 some Unixes are real 32bit sustems, some aren't.

Sorry, I should have included the UNIX operating systems.  But the original
poster was talking about DOS, and OS/2 is supposed to be the next generation
DOS.  Excuse me if I don't think so.

<On a 386 you can also run a "386 extender" program in genuine 386 mode.
<This is not quite PURE "running under PC-DOS" - but is indeed IS
<"running under PC-DOS". Its impurity comes from the fact that you have
<something between your 386 code and PC-DOS - either the Phar Lar
<or AI ARchitects extender, or something similar. But to your program,
<it appears to indeed BE PC-DOS: all the usual interrupts work as usual,
<the screen is directly mapped (though it can be anywhere in the 4 gigabyte
<address space), etc. I know this sounds like magic to people used
<to the "classic" 8086. But it is true - the magic is called "paging",
<and it is part of the 386. OF course, there are very few real 386
<(32 bit) programs out there - but there are some commercially
<available. I believe that IBM Interleaf Publisher is such a beast (
<no flames if I am wrong, please - this is by memory.) I have written several
<programs myself.

Doesn't the application have to be written for the AI Architects type code?
The Teradyne CAE package (known as CASE) uses the AI stuff for their 4.0
version of the CAE package.  For a user to get, say QuickBASIC, to work
with 4MB of memory would require the QuickBASIC code to be expressly designed
to work with AI, is this not so?
-- 
	       harvard-\	 att--\
Vidiot            ucbvax!uwvax!astroatc!nicmad!brown
	       rutgers-/      decvax--/
	ARPA/INTERNET: brown%nicmad.UUCP@spool.cs.wisc.edu

dhesi@bsu-cs.UUCP (Rahul Dhesi) (12/15/88)

In article <3545@nicmad.UUCP> brown@nicmad.UUCP (Vidiot (Vid-e-it)) writes:
>Sorry, I should have included the UNIX operating systems.  But the original
>poster was talking about DOS, and OS/2 is supposed to be the next generation
>DOS.  Excuse me if I don't think so.

It's not clear to me why OS/2 should be considered a "next generation
DOS", considering it is designed primarily for the the nearly-obsolete
80286 processor, cannot take advantage of better architectures such as
the 80386 and the 68030, provides no virtual memory, is not available
in source form, and cannot support multiple users with any reasonable
protection mechanism.
-- 
Rahul Dhesi         UUCP:  <backbones>!{iuvax,pur-ee}!bsu-cs!dhesi

il@csri.toronto.edu (Indra Laksono) (12/16/88)

>I guess I better not tell this to my Tandy 2000 with 768K of memory or my NBI
>2000 with 800K of DOS memory.
>
>The problem is that PC clones have video memory starting at 0C000h which limits
>contiguous low memory (The only memory normally used by DOS) to 640K.  This is

I think you have it backwards.  If you have video memory starting at C0000h,
then, assuming that you are able to use everything below this, you will
have 12x64K=768K of CONTINGUOUS memory.

>a design limitation that made sense when the PC was first introduced with only
>64K of memory and 640K seemed like more than you would ever need in a PERSONAL
>computer.
>

The ega has video ram starting at A0000h (4 zeros, not 3), this would
mean that only 640K is ever usable in a system with ega.  Though it is
doubtful if ms designed msdos with ega in mind way back then, still
The MDA was introduced way back and it had display memory at B0000
or B8000 (I forgot).

hollombe@ttidca.TTI.COM (The Polymath) (12/16/88)

In article <4090@charon.unm.edu> cs4571ao@ariel.unm.edu.UUCP () writes:
}The first PC I owned was a MIKE-2 with an 8008 processor, a keypad
}front panel, and 4K of RAM, connected to a SWTP 40 column, 12 line
}terminal.  Storage was by a Digital Group cassette interface, storing
}data at a screaming 1200 baud.

Since we're reminiscing ...

I'm still using the first PC I owned.  A genuine, original, tan case
Osborne-1.  Came with 64K of memory, 2 90K, 5.25" floppies and a 52 column
by 24 row, 5" diagonal screen for $1750.

6 years and many hassles latter it's been upgraded to 187K floppies, a
52/80/104 column screen, a 12" external monitor, 300 baud modem and a 360K
RAM disk.  I've also got a battery pack for it that I've only used to run
my portable CD player.  These days the whole setup is worth about $500
new, if you can find one.

Who knows?  Someday it may have antique value.

Meanwhile, my SO just bought her first PC:  An IBM PS/2-50Z with mouse, 1M
memory, 30M hard disk, 1.4M 3.5" floppy and 12" VGA color monitor -- all
true blue IBM (except for the Logitech mouse).  Total cost about $3500,
not counting the printer (academic discount deal).  She uses it primarily
for word processing and ignores the mouse.  Grrrr .... (-:

(I'm getting a C compiler for it in a week or so.  Got to give the poor
thing _some_ exercise (-: ).

-- 
The Polymath (aka: Jerry Hollombe, hollombe@ttidca.tti.com)  Illegitimati Nil
Citicorp(+)TTI                                                 Carborundum
3100 Ocean Park Blvd.   (213) 452-9191, x2483
Santa Monica, CA  90405 {csun|philabs|psivax}!ttidca!hollombe

winch@hpihoah.HP.COM (Bill Winchester) (12/17/88)

The first computer that I had hands on use of was an Adage, Inc. Ambilog 200
advertised as having a 4 micro-second cycle time, 8k of 30 bit words of core,
and a 300 char/sec paper tape reader/punch.  This was in 1966.

I am writing this on an HP 9000/350, 25mh clock, 8mb of ram, 150mb disk.  This
system runs Xwindows on a 17in hi res color monitor.  The cpu sits under my
desk in a rack.

I knew practically every gate and flip-flop, and every line of operating
system code on the Adage.  I'm not sure that my 350 will last long enough as
a product for me learn this much about it.

davidsen@steinmetz.ge.com (William E. Davidsen Jr) (12/20/88)

In article <3545@nicmad.UUCP> brown@nicmad.UUCP (Vidiot (Vid-e-it)) writes:

| PC/MS-DOS will not, on its own, access 736K.  There are drivers out there
| to do it for you.  But, that 96K isn't really much, considering the Megs
| of memory that can be added to a 386 machine.
| 
| MS/PC-DOS is purposely written to stay within the 640K limit.  That is
| why they are producing OS/2.  Unfortunatly OS/2 will NOT run existing
| DOS applications (expect one in a DOS partition, true?).

  PC-DOS accesses 640k, because a PC or compatible may have devices
starting above that. The versions of MS-DOS designed for PC compatibles
also honor that limit. However, generaic versions of MS-DOS will run all
the memory you have, such as the version for the Tandy 2000 (I have 768k
when 512 was a big PC).

  Other versions, such as PC-PRO, which use a serial console option, can
use the whole MB if you pull out the memory mapped console code. A
terminal running at 38.4kb is pretty easy to take for non-graphic
applications, and I can write some HUGE applications.

  Today's trick: If you really need to run something big, take a little
assembler program and add the memory from 640k-704k to the free memory
list, use CTTY to change to a serial console, and use your CGA memory
for program execution. This is crude, but it works, and you can
sometimes get the stack segment in display memory and "watch" your
program run. Your milage may vary, I don't have the program handy - RTM.
-- 
	bill davidsen		(wedu@ge-crd.arpa)
  {uunet | philabs}!steinmetz!crdos1!davidsen
"Stupidity, like virtue, is its own reward" -me

raymond@pioneer.arc.nasa.gov.arpa (Eric A. Raymond) (12/20/88)

Does adding EMS to your software buy you anything more than
creating a large ramdisk, copying overlays to it, and then
running the program using overlays?

Anyway, what documentation is available to make EMS
available to me?  Extended Memory?

---------

Name: Eric A. Raymond
ARPA: raymond@pioneer.arc.nasa.gov
SLOW: NASA Ames Research Center, MS 244-17, Moffett Field, CA 94035

Nothing left to do but :-) :-) :-)

davidsen@steinmetz.ge.com (William E. Davidsen Jr) (12/21/88)

In article <3575@ttidca.TTI.COM> hollombe@ttidcb.tti.com (The Polymath) writes:

| Since we're reminiscing ...
|
| I'm still using the first PC I owned.  A genuine, original, tan case
| Osborne-1.  Came with 64K of memory, 2 90K, 5.25" floppies and a 52 column
| by 24 row, 5" diagonal screen for $1750.

  Did you see _War Games_? I still have my IMSAI, the same model as was
use in the movie. The 2MHz 8080 was upgraded through Z80's, 8086's, a
286/Z80 combo, a 68k, and briefly to a 386. It's now running an 8086,
and a hacked version of PC-DOS (not MS-DOS, PC-DOS, but hacked ;-) with
CP/M disk reading capability.

  I keep it running because there is still a demand to convert old 8
inch CP/M disks to PC-DOS format.
--
        bill davidsen                (wedu@ge-crd.arpa)
  {uunet | philabs}!steinmetz!crdos1!davidsen
"Stupidity, like virtue, is its own reward" -me

stevec@cacilj.UUCP (Steve Covault) (12/21/88)

Gee, you were lucky that you had a road to dream about licking clean...

We lived in a lake, and he to swim 20 miles to school every day :-)

OK, OK, so I stole it from "Monty Python".

-------------------------------------------------------------------------------
Steve Covault          3344 North Torrey Pines Court   Fax: 619/457-1184
Technical Support      La Jolla, California  92037     E-mail: stevec@cacilj
CACI Products Company  619/457-9681 (Voice)
-------------------------------------------------------------------------------