mattp@oakhill.UUCP (Matt Pressly) (03/08/89)
I recently got a CompuAdd 286/20 with 1MB RAM on the system board, and
I am a little confused as to how this memory can be used. The users'
manual states that memory above 1024K can be used as extended -- I
assume this refers to the memory you can put in the 4 SIMM slots. It
also states that the memory between 640K and 1024K (the unusable memory)
is for ROM shadowing and system useage.
[I'm beginning to think there are 3 categories for the memory in excess
of 640K: extended, expanded, and inaccessible.]
I've got 64K of the 384K used for ROM shadowing, but that leaves 320K which
seems to be inaccessible. Here are some questions that I have about
that inaccessible memory. I would greatly appreciate any answers anyone
can provide.
(1) What does the manual mean by saying this memory is for system
use. It doesn't appear to be used AT ALL.
(2) Is there any way to use this memory as extended memory?
The setup program doesn't allow me to do that, but is there
some other way? What about as expanded?
(3) Are there any disk caching programs that make use of this
memory? From what I've seen, all of the disk caching
software uses extended and/or expanded and/or base memory
only.
(4) Is there a way I can access this memory from programs that I
write in Pascal/C/Assembly? Can I access it in protected mode?
(5) If I can access it, how do I go about that? Do I need to toggle
some soft-switch to bank switch it in, since it seems to reside
in the same address space as Video RAM and BIOS ROM and probably
IO space? How are the chip selects generated for those chips?
Note: some of the address decode logic seems to be configureable
through software, since a setup program, XSET, allows you to
specify what memory you have in the computer, and the computer
quits working if you tell XSET something which is not so.
(6) I called CompuAdd tech-support, and they claimed it can't be
accessed, and that the hardware designers have gone out of
their was to make it inaccessible (OS/2 and UNIX can't use it,
according to the technician). But he did mention that a software
package called SOFTBYTES might be able to make it useable by
fooling the computer into thinking that it's expanded/extended.
Does anyone know anything about this package? Will it work?
If it works, how did they do it?
(6.5) The technician said that on the high-end '286s, the memory
was organized the same was as for the 386s. If you know how
the 386 memory is structured, that info would be just about
as helpful to me.
(7) Does anyone have a schematic of the motherboard that they'd
be willing to loan me :-) ?
If anyone can answer any of these questions or just provide any
information at all about this system-board memory, it would be
a really great help, and you will be handsomely rewarded with a
copy of any software I write that will use this memory for
something useful. Note: I've seen other computers which use
this memory as extended rather than inaccessible, so I feel like
there's some hope. I really find it hard to believe that computer
manufacturers would put in memory that cannot be accessed.
Thanks,
Matthew Pressly
--
address: mattp@oakhillearl@trsvax.UUCP (03/09/89)
/* ---------- "System Board RAM above 640K (long)" ---------- */
I recently got a CompuAdd 286/20 with 1MB RAM on the system board, and
I am a little confused as to how this memory can be used. The users'
manual states that memory above 1024K can be used as extended -- I
assume this refers to the memory you can put in the 4 SIMM slots. It
also states that the memory between 640K and 1024K (the unusable memory)
is for ROM shadowing and system useage.
I've got 64K of the 384K used for ROM shadowing, but that leaves 320K which
seems to be inaccessible. Here are some questions that I have about
that inaccessible memory. I would greatly appreciate any answers anyone
can provide.
Thanks,
Matthew Pressly
--
address: mattp@oakhill
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Most all the companies have more or less given up on using this RAM
above 640k for anything. It gets complicated real fast. For example:
Segment A000 to A7FF used for video (CGA), unless you have EGA, then you
need to set aside A000 to AFFF, but if it's VGA you can use A000 to
AFFF unless your using the enhanced Hi-res modes, of which you need to
set aside from A000 up to as much as BFFF in some cases. Other video
boards can add or subtract accordingly from the video RAM areas.
At first, if you using monochrome video, it looks promising here, as
you only need 2k to 4k set aside for video; but usually the hardware
address decoding only decodes down to a 32 or 64k level, thus you
can't get more precise with video memory. It depends on the video
board of course.
The hard disk usually gets C000 to CFFF set aside for it. But some boards
may let you get to C000 to C7FF if your lucky. It depends on how
sophisticated the boards are.
The BIOS normally uses from FE00 on up, but some machines go ahead and
lock out F000 on up. It depends a lot on the hardware. You might be
able to get to some of this memory area and use it for RAM.
If I remember correctly, a 8086 doesn't use E000 to EFFF but the 80286
uses this memory, thus you can't use it with a 80286. But I forget
right now.
If you have a network board, you generally get D000 to DFFF reserved for
it too. Of course if you aren't using a hard disk (diskless workstation)
you could set the network board to C000-CFFF.
Then you have the LIM 4.0 spec EMS boards. They need chunks or RAM above
640k for paging in EMS memory as requested. Hmmm.. I guess the network
board has to go, no more places to put it.
There are lots of other boards, but the above makes it complicated enough.
We still haven't got into things like CMOS RAM's, Multi-port serial
boards, smart parallel and serial boards, ESDI and SCSI interfaces,
IEEE-488 interfaces, Super-VGA boards, special numeric calculator
co-processing boards, RISC co-processors (aka IBM's RT), etc.
Anyway, that nice pretty chunk of 384k above 640k is a real problem. Thus
virtually all the companies have given up on using it for anything. If you
want to use it, you have to set or unset or mask the interrupts accordingly,
and then page or switch in or out the proper chunk, do something and then
set eveything back to normal, before the machine crashes. If you do get a
neat program for using this 384k or memory, it may only work on your
machine only, nobody else will likely have that same hardware configuration.
I hope this helps explain why it's reserved for system useage.
***********************************************************************
<This information is provided by an individual and is not nor should be
construed as being provided by Radio Shack or Tandy Corp. Radio
Shack/Tandy Corp has no obligation to support the information provided
in any way.>
Earl W. Bollinger
@ <trsvax!earl>
"You were in the Clone Wars!", said Luke excitedly.
"Yes", replied Obi Wan, "I was a DOS programmer. But that was before the dark
times, before OS2."