Expanded Memory Boards for 8088/8086 machines?

Support and general discussion.
Post Reply
-Nepomuk-
Posts: 4
Joined: Wed 12 Apr, 2017 6:45 pm

Expanded Memory Boards for 8088/8086 machines?

Post by -Nepomuk- »

Hi.

Actually any 8088/8086 machine can't use more than 640k base memory.
Do you think it is possible to add expanded memory boards to pcem?

Maybe Intel Above Boards?

http://www.winhistory.de/downloads/date ... boards.pdf

Thanks
User avatar
omarsis81
Posts: 945
Joined: Thu 17 Dec, 2015 6:20 pm

Re: Expanded Memory Boards for 8088/8086 machines?

Post by omarsis81 »

I did't read that link yet, but I understand the 808x processors can't address more than 1mb of memory
Do you want the 384kb remaining?
-Nepomuk-
Posts: 4
Joined: Wed 12 Apr, 2017 6:45 pm

Re: Expanded Memory Boards for 8088/8086 machines?

Post by -Nepomuk- »

Just read the link, its in english language. ;)

EMS can be used on 8088/8086 processors too.


##################################################
Byte Magazine 06-1985
----------------------------------------------------------------------
Lotus, Intel Agree on 8-megabyte Memory Standard for IBM PC

Lotus and Intel have announced an expanded-memory specification for addressing memory
above the IBM PC's 640K-byte limit and the PC AT's 3-megabyte limit. New versions of
Lotus 1-2-3 and Symphony and Ashton-Tate's Framework will be able to directly address up
to 4 megabytes of memory.

Intel's new Personal Computer Enhancement Operation division announced the first ex-
pansion cards that address and also go beyond the specification. Each of Intel's Above
Board expansion cards adds up to 2 megabytes of RAM to the IBM PC and 4 megabytes to
the IBM PC AT. The Above Board/PC card, with 64K bytes already installed, is $395; the
Above Board/AT card will be available next month for $595 with 128K bytes installed.

:mrgreen:


Thats interesting too:
https://books.google.de/books?id=My8EAA ... 84&f=false
vbdasc
Posts: 37
Joined: Tue 21 Mar, 2017 10:53 am

Re: Expanded Memory Boards for 8088/8086 machines?

Post by vbdasc »

-Nepomuk- wrote:Actually any 8088/8086 machine can't use more than 640k base memory.
Are you sure? IMHO, SCP Gazelle could access 896Kb of RAM, and Altos 986 could access almost 1024K. Of course, neither of these machines was PC-compatible :)

But, the idea about expanded memory boards seems good. Some DOS business apps, as well as Windows 2.1 and real mode Windows 3.0 made good use of such hardware.
-Nepomuk-
Posts: 4
Joined: Wed 12 Apr, 2017 6:45 pm

Re: Expanded Memory Boards for 8088/8086 machines?

Post by -Nepomuk- »

Well, i mean virtual pcem machines :)
User avatar
ender
Posts: 51
Joined: Tue 14 Oct, 2014 12:51 pm

Re: Expanded Memory Boards for 8088/8086 machines?

Post by ender »

vbdasc wrote:Are you sure? IMHO, SCP Gazelle could access 896Kb of RAM, and Altos 986 could access almost 1024K. Of course, neither of these machines was PC-compatible :)
PC-compatibles are limited to 640k (which IIRC wasn't enough to link Microsoft's linker, so they had a special machine with 1MB addressable RAM just for linking the linker :)
Zup
Posts: 83
Joined: Mon 30 Nov, 2015 10:47 am

Re: Expanded Memory Boards for 8088/8086 machines?

Post by Zup »

ender wrote:PC-compatibles are limited to 640k (which IIRC wasn't enough to link Microsoft's linker, so they had a special machine with 1MB addressable RAM just for linking the linker :)
The 640k barrier is a convention, not a limit. The CPU can address up to 1 Mb, but DOS gets only the first 640 Kb (because memory above 0xA0000 is reserved). It would be possible to put some RAM in "holes" (space unused between mapped memory and BIOSes) and address it via device drivers. That's the way EMS memory is accessed, and EMS cards were supported by DOS software (i.e.: Quattro Pro) even on a PC.

Usually, PCs that shipped or supported more than 640 Kb had not fully compatible BIOS (Apricot PC) or their own EMS circuits (Schneider Euro PC II). The Schneider Euro PC II could be an example of a 8086 computer, 100% IBM compatible that have more than 640 Kb.
vbdasc
Posts: 37
Joined: Tue 21 Mar, 2017 10:53 am

Re: Expanded Memory Boards for 8088/8086 machines?

Post by vbdasc »

Zup wrote:The 640k barrier is a convention, not a limit. The CPU can address up to 1 Mb, but DOS gets only the first 640 Kb (because memory above 0xA0000 is reserved).
If the machine has an EGA or VGA-compatible videocard, then by definition, the region from 0xA0000 to 0xBFFFF is unavailable. You can place some RAM higher, but it wouldn't be contiguous, and hence - not very useful, except for TSRs, drivers, expanded memory and similar things.
User avatar
omarsis81
Posts: 945
Joined: Thu 17 Dec, 2015 6:20 pm

Re: Expanded Memory Boards for 8088/8086 machines?

Post by omarsis81 »

Zup wrote:The 640k barrier is a convention, not a limit. The CPU can address up to 1 Mb, but DOS gets only the first 640 Kb (because memory above 0xA0000 is reserved).
That why I said in my first post, if the 808x can only address 1 MB how do these boards work?
User avatar
JohnElliott
Posts: 113
Joined: Sun 31 Jan, 2016 7:29 pm

Re: Expanded Memory Boards for 8088/8086 machines?

Post by JohnElliott »

Bank-switching. The board has (perhaps) 2Mb of memory divided into pages of 16k. 64k of the 8086's address space is used for a 'page frame' (usually above 0xC0000). Writing to registers on the board selects which four 16k pages appear in the frame and are visible to the 8086.
User avatar
omarsis81
Posts: 945
Joined: Thu 17 Dec, 2015 6:20 pm

Re: Expanded Memory Boards for 8088/8086 machines?

Post by omarsis81 »

JohnElliott wrote:Bank-switching. The board has (perhaps) 2Mb of memory divided into pages of 16k. 64k of the 8086's address space is used for a 'page frame' (usually above 0xC0000). Writing to registers on the board selects which four 16k pages appear in the frame and are visible to the 8086.
Thank you JohnElliott, I was suspecting something like that
Greatpsycho
Posts: 151
Joined: Tue 22 Mar, 2016 10:03 am
Location: Korea
Contact:

Re: Expanded Memory Boards for 8088/8086 machines?

Post by Greatpsycho »

According to this document, VTech Laser XT series(It has been supported since version 10) natively supports up to 1MB EMS memory. It doesn't seem to be difficult to implement.
Greatpsycho
Posts: 151
Joined: Tue 22 Mar, 2016 10:03 am
Location: Korea
Contact:

Re: Expanded Memory Boards for 8088/8086 machines?

Post by Greatpsycho »

Greatpsycho wrote:According to this document, VTech Laser XT series(It has been supported since version 10) natively supports up to 1MB EMS memory. It doesn't seem to be difficult to implement.
I've just submitted experimental EMS support on Laser XT series. Link is here.
vbdasc
Posts: 37
Joined: Tue 21 Mar, 2017 10:53 am

Re: Expanded Memory Boards for 8088/8086 machines?

Post by vbdasc »

Sadly, technical info about EMS boards seems very scarce...
EtchedPixels
Posts: 3
Joined: Mon 16 Oct, 2017 5:57 pm

Re: Expanded Memory Boards for 8088/8086 machines?

Post by EtchedPixels »

One option would be to emulate the lo-tech EMS board as that has driver source and an open hardware design ?

Alan
EtchedPixels
Posts: 3
Joined: Mon 16 Oct, 2017 5:57 pm

Re: Expanded Memory Boards for 8088/8086 machines?

Post by EtchedPixels »

Just because I have it in front of me

The Intel Aboveboard (the original 2MB beastie) works like this

I/O port defaults to 0x258/9
Memory region used is either C000:0 or D000:0 software selected

The ports used are actually the one given then +0x4000 +0x8000, +0xC000

In the Intel case

0x258 top bit set enables the napping for the low 16K, and the other 7 bits are A21-A14 of the address
0x4258 is this for second 16K
0x8258 for third
0xC258 for last

The 0x259/4259/8259/C259 is written by four writes in a row as

0x80 0x0 0x0 0x0 for C000:0
0x80 0x0 0x80 0x0 for D000:0

(and the Intel driver by default probes to look which is free)

Many of the clones use the same data port model often putting the upper bits in 0/4/8/C of port + 1

The Intel drivers don't appear to have a way to ask the board how much RAM is present so while I've not traced that bit I assume it simply tests each 16K
page until either it gets an alias or one that doesn't work.

Alan
User avatar
JohnElliott
Posts: 113
Joined: Sun 31 Jan, 2016 7:29 pm

Re: Expanded Memory Boards for 8088/8086 machines?

Post by JohnElliott »

While implementing the motherboard EMS support on the T3100e, I disassembled the EMS driver (EMM33.SYS from TOSHEMM.ZIP). It checks port ranges:

0x0208 / 0x4208 / 0x8208 / 0xC208
0x0218 / 0x4218 / 0x8218 / 0xC218
0x0258 / 0x4258 / 0x8258 / 0xC258
0x0268 / 0x4268 / 0x8268 / 0xC268
0x02A8 / 0x42A8 / 0x82A8 / 0xC2A8
0x02B8 / 0x42B8 / 0x82B8 / 0xC2B8
0x02E8 / 0x42E8 / 0x82E8 / 0xC2E8

The first four of those ranges are implemented by the T3100e motherboard, so I'd guess that the other three would be provided by expansion cards. If it's in EMS 4.0 mode, the driver also probes ports at 0x020B, 0x420B etc.

As with the Intel card, the top bit of the byte written is set to enable a 16k page, and the remaining 7 give the page number. That gives up to 2Mb. The T3100e motherboard has four sets of ports, so can access up to 8Mb of memory as EMS (writing to 0x0208-0xC208 will select a page in the first 2Mb range, writing to 0x0218-0xC218 will use the second 2Mb range, and so on).

The driver also seems to do quite a bit with port 0x020A; this may be to do with setting the pageframe location, or controlling features of add-on memory boards.
User avatar
JohnElliott
Posts: 113
Joined: Sun 31 Jan, 2016 7:29 pm

Re: Expanded Memory Boards for 8088/8086 machines?

Post by JohnElliott »

Following up on my own information: The Toshiba T1000 ROM drive contains an earlier and simpler EMS driver (EMS 3.2 rather than 4.0). It checks the same ports as listed above, but doesn't touch 0x020B, 0x420B etc. Nor does it access 0x020A. It just picks the first set of four registers that it can read and write, and then tries to locate the pageframe that they control.
EtchedPixels
Posts: 3
Joined: Mon 16 Oct, 2017 5:57 pm

Re: Expanded Memory Boards for 8088/8086 machines?

Post by EtchedPixels »

That would seem to make sense. EMS 3.0 exposed the hardware port behaviour somewhat although 3.2 'removed' the interface. To get 8MB they are in fact implementing it as four standard 2MB EMS boards. Of course that's a perfectly valid real configuration so long as you don't map two boards to the same address at once.

I wonder if some of the other EMM 3.x boards pull that same trick.

Alan
Post Reply