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@oakhill
earl@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."