delorie.com/archives/browse.cgi   search  
Mail Archives: opendos/2000/12/04/15:28:35

X-Apparently-From: <pmoran22 AT yahoo DOT com>
Message-ID: <008101c05d17$e51937c0$a3881004@dbcooper>
From: "Patrick Moran" <pmoran22 AT yahoo DOT com>
To: <opendos AT delorie DOT com>
References: <8F361C761C5 AT reze-1 DOT rz DOT rwth-aachen DOT de> <004101c05c41$8a42b0f0$e4881004 AT dbcooper> <2 DOT 07b7 DOT FVTF DOT G4XS7T AT belous DOT munic DOT msk DOT su>
Subject: Re: Optimizing CONFIG.SYS...
Date: Sat, 2 Dec 2000 13:24:29 -0700
MIME-Version: 1.0
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.3018.1300
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.3018.1300
Reply-To: opendos AT delorie DOT com

----- Original Message -----
From: "Arkady V.Belousov" <ark AT belous DOT munic DOT msk DOT su>
To: <opendos AT delorie DOT com>
Sent: Saturday, December 02, 2000 3:38 AM
Subject: Re: Optimizing CONFIG.SYS...


> X-Comment-To: Patrick Moran
>
> No!
>
> 2-δΕΛ-2000 02:04 pmoran22 AT yahoo DOT com (Patrick Moran) wrote to
> <opendos AT delorie DOT com>:
>
> PM> I am checking up on XMS memory now, in the book "DOS beyond 640K" It
does
> PM> refer to XMS memory in it but was not listed in the index. It is
extended
> PM> memory and from what I have read so far, it is NOT swap memory, it is
in
> PM> fact extended memory.
>
>      XMS is _not_ an memory.

I am not going to argue this any more. It is real physical memory that is
beyond 1MB. It is a meory manager, not a spcification. DPMI and VCPI are
specifications. It is all extended memory and physically exists in your
computer if you have it installed. It is not virtual memory, it is real and
you can look at it and touch it physically. It is merely managed by LIM 4.0,
EMS, EMM386, HIMEM.SYS, EEMS, XMS, JQRYBIZ18941, or whatever other memory
manager someone gives a name to.

> PM> But I need to poke around the book some more about it.
> PM> I think some of the comments made about XMS is untrue. It should be
much
> PM> faster than EMS because there is no window to swap memory through I
believe
>
>      You prosecute me as liar?!

Not a liar. Probably just confused with some of the terminology used. It was
stated that EMS can swap memory faster than XMS can access memory. That is
not true, because XMS does not swap memory, it allows DOS to directly access
extended memory. EMS swaps it out between conventional and extended through
a tiny window.

> PM> that Task Manager is using DPMS through the extended memory created by
XMS.
>
>      1. When "real mode" app works with EMS it can create and handle it
data
> directly in EMS window without any _additional_ copying, as this is
required
> for XMS. 2. XMS _not_ create any memory.

Taks Manager DOES NOT NEED ANY EMS MEMORY, period, period. You can, however,
use expnded memory if it is available when a program is running in Task
manager. For example, you can run DV in Task manager if you so desired, I
don't have any idea why anyone would but you can. You can also run windows
in a Task manager task. Why anyone would want to beats me, but it can be
done.

XMS does create memory. Without it DOS cannot access that memory, unless
another memory manager is used. XMS makes the exyended memory available to
DOS. Without it, DOS only has 1MB of memory to work with and DOS by itself
cannot use all of that. It cannot use A000-FFFF or the first 64K minus 16
bytes above 1MB. It needs a memory manager that will allow it to do this. Of
course there are some exceptions. Tandy DOS could use the A000-B7FF range
for a total of 736K conventional memory. But that was specially written for
the Tandy computers. AST could also do things that the normal releases of
DOS could not do, but these were modified OEN DOSes. Some would not even
work on other computers. Some Tandy DOSes will not work on IBM Clones, 2.1
for example. I did start out using a Tandy DOS on a 286 clone, but that was
a 286 Tandy DOS.

> PM> What I can't figure out is why do you even need a memory manager at
all for
> PM> extended memory.
>
>      Because "real mode" apps have "native" access only to 1M of memory.

Only because Gates never wrote DOS and DOS was never written the way it
should have been and can be written. look at Flex for example. It can run
native DOS prgrams and run in 32 bit protected mode. It is a 32 bit
protected mode DOS, and most likely the way DOS should have been similarly
written in the first place.

>
> PM> It already exist, all you have to do is use it. DOS,
>
>      This shows you don't know machine laguage of x86. "Real mode" apps
have
> access to 64k segments (because 16 bit offset) with 64K of "paragraphs"
> (64K*16=1M). To access additional memory "real mode" apps _must_ use
> additional hardware (expanded memory boards or copying/mapping extended
> memory fatures, present in memory managers).

Not true.

Take a look at a block diagram of the internals of the 8086 CPU. You will
find that it is basically two 8085 CPUs running in parallel. One 16 bit
address register is offset by 4 bits, not 16 bits from the other 8085 and
thus gives a total of 20 address lines: A0-A19.

Although I can see where you are comming from, yes there are 16 64K pages
so-to speak. 4 bits has 16 possible combinations, thus you have 16 64k pages
of conventionl memory. However, you also have an additional page of memory
minus 16 bytes. because these two processors address registers are added
together before the address if actually sent to the 20 address lines on the
CPU. However, since the 8086/88 only has 20 address lines, this additional
page of memory is wrapped around to the beginning of memory, i.e. 0000-FFEF.

NOTE: that last number is F F E F.

When you add;        0FFFF
and                          FFFF0
You get                 10FFEF

The 8086 does not know what to do with the leading 1 so it is ignored and
you get the last 16 bytes of the lower 1MB and then wrap around to 0 and
start over again.

The rest of  each 8085 8 bit registers are tied together in parallel to make
16 bit registers. I believe, without looking it up, that the status register
just used one of the 8085 8 bit status registers. New microcode was added to
support 16 bit operations and some of the old 8 bit code was deleted. Thus
you cannot run 8008/8080/Z-80/8085 programs on it that have not been
converted. The 8086/88 can also directly replace an 8085 CPU and use the
8085 hardware. One pin on the 8086/88 CPU will modify the 8086/88 to do
this. As a result you can not use an 8087 co-processor.

If you put a physical switch, say an unused logic gate, into the hardware
and have software enable and disable it, the 8086 could in fact address what
we now call the HMA area (64k -16 bytes above 1MB RAM.) The 8086 by itself
cannot access this area because of only having 20 address lines, but it can
address this memory with outside help. DOS is not even capable of doing
this. Hardware is used to flip this 21st address line on and off (A20) and
this is called the A20 gate. it was orinially implemented in the keyboard
ROM and still is if you turn off the fast A20 gate in CMOS. Had this feature
been implemented in the 8086 and an external formerely unsued logic gate
been used and DOS had been written to access this and all the memory below
1MB, we probably would not have the need for any memory managers. DOS would
also have had to been written to use flat memory rather than segmented
offset memory.

Pat




_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019