Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the board
Thread view  Mix view  Order
CandyMan(R)

06.10.2018, 18:24
(edited by CandyMan, 06.10.2018, 19:16)
 

EMS64 - EMS 4.0 simulator (Announce)

A device driver & program (TSR) that emulates the Lotus/Intel/Microsoft Expanded Memory Specification, Version 4.0, in software, permitting extended memory above 4GB in x64 machines to be used as expanded memory. It uses unreal mode that cannot work in virtual 8086 mode. The XMS driver must be installed before EMS64.EXE because it uses XMS memory for handles, handle names and paging tables. Ideal for creating large RAMDISK if you have more than 4GB memory and 64-bit CPU and you use DOS.

It is possible to download program from (search EMS64.7Z file):
https://drive.google.com/drive/folders/0B_wEiYjzVkC0ZGtkbENENzF1Nms
or
https://drive.google.com/open?id=1bDqAS0d9WVGvDBB67fIelI8LUqk50TPS

RayeR(R)

Homepage

CZ,
07.10.2018, 23:09

@ CandyMan

EMS64 - EMS 4.0 simulator

Nice, but I see the no-v86 as a several limitation. Do you think it would be possible to switch to long mode with CLI just for a moment to not disturb v86 monitor? Or do you plan to explore virtualization to make a simple hypervisor that may solve this issue (VM monitor runs beyond ring 0)?

---
DOS gives me freedom to unlimited HW access.

RayeR(R)

Homepage

CZ,
10.10.2018, 23:12

@ CandyMan

EMS64 - EMS 4.0 simulator

Hi, I tried EMS64 and ramdisk on my system with 4GB RAM but I can make only ~500MB RAMDISK. If I requested bigger size it failed that not enough memory. I loaded the driver via devload under MSDOS 7.1 (devload EMS64.EXE, devload SRDEMS.SYS). Does it mean that EMS64 can use really only memory beyond 4GB boundary and cannot use memory below? I don't have more RAM so I cannot try. In my case BIOS probably remapped some RAM that would be overlapped by MMIO beyond 4GB...

---
DOS gives me freedom to unlimited HW access.

Japheth(R)

Homepage

Germany (South),
11.10.2018, 13:59

@ CandyMan

EMS64 - EMS 4.0 simulator

> A device driver & program (TSR) that emulates the Lotus/Intel/Microsoft
> Expanded Memory Specification, Version 4.0, in software, permitting
> extended memory above 4GB in x64 machines to be used as expanded memory. It
> uses unreal mode that cannot work in virtual 8086 mode. The XMS driver must
> be installed before EMS64.EXE because it uses XMS memory for handles,
> handle names and paging tables. Ideal for creating large RAMDISK if you
> have more than 4GB memory and 64-bit CPU and you use DOS.
>
> It is possible to download program from (search EMS64.7Z file):
> https://drive.google.com/drive/folders/0B_wEiYjzVkC0ZGtkbENENzF1Nms
> or
> https://drive.google.com/open?id=1bDqAS0d9WVGvDBB67fIelI8LUqk50TPS

Could you be a bit more specific as to how the driver works. You mention "unreal mode", but also "paging tables" in XMS-memory. How does both fit together?

---
MS-DOS forever!

CandyMan(R)

12.10.2018, 19:18
(edited by CandyMan, 12.10.2018, 22:34)

@ Japheth

EMS64 - EMS 4.0 simulator

> Hi, I tried EMS64 and ramdisk on my system with 4GB RAM but I can make only
> ~500MB RAMDISK. If I requested bigger size it failed that not enough
> memory. I loaded the driver via devload under MSDOS 7.1 (devload EMS64.EXE,
> devload SRDEMS.SYS). Does it mean that EMS64 can use really only memory
> beyond 4GB boundary and cannot use memory below? I don't have more RAM so I
> cannot try. In my case BIOS probably remapped some RAM that would be
> overlapped by MMIO beyond 4GB...
The driver this way was constructed in order to use only a memory unavailable to DOS. if you want to use the memory below 4GB use other driver. To a maximum it can be 1GB (since can be maximum 0xFFFF of pages every for 16KB)

> Could you be a bit more specific as to how the driver works. You mention
> "unreal mode", but also "paging tables" in XMS-memory. How does both fit
> together?
The driver temporarily is switching over to the long mode without interrupts in order to copy the memory to/from the page frame. The paging tables are being initiated after the run a driver (using unreal mode) only once and can be in an extended memory.

Japheth(R)

Homepage

Germany (South),
13.10.2018, 14:15

@ CandyMan

EMS64 - EMS 4.0 simulator

> The driver temporarily is switching over to the long mode without
> interrupts in order to copy the memory to/from the page frame. The paging
> tables are being initiated after the run a driver (using unreal mode) only
> once and can be in an extended memory.

I see. So unreal mode is just used to fill the page tables.

During my (brief) tests I noticed:

1. Uninstall works, but the driver uninstalles even if there is still EMS memory allocated. This shouldn't be.

2. Page frame address is just paragraph aligned ( according to docs "should" be 16 kB aligned ). Some programs won't run in such an environment.

3. The driver assumes that it is the only consumer of RAM beyond the 4 GB boundary. That's a bit reckless, for example there's CWSDPMI v7, which may also use this RAM ( via PSE ). The driver should intercept Int 15, ax=e820h and ensure that the memory it used is no longer reported as "available".

---
MS-DOS forever!

CandyMan(R)

13.10.2018, 22:35
(edited by CandyMan, 14.10.2018, 09:13)

@ Japheth

EMS64 - EMS 4.0 simulator

> 1. Uninstall works, but the driver uninstalles even if there is still EMS
> memory allocated. This shouldn't be.
>
> 2. Page frame address is just paragraph aligned ( according to docs
> "should" be 16 kB aligned ). Some programs won't run in such an
> environment.
>
> 3. The driver assumes that it is the only consumer of RAM beyond the 4 GB
> boundary. That's a bit reckless, for example there's CWSDPMI v7, which may
> also use this RAM ( via PSE ). The driver should intercept Int 15, ax=e820h
> and ensure that the memory it used is no longer reported as "available".
Your suggestions were considered. Thanks.

Back to the board
Thread view  Mix view  Order
15606 Postings in 1414 Threads, 258 registered users, 7 users online (0 registered, 7 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum