News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests

Main Menu

32 Bit DOS Protected Mode Application

Started by Gunther, January 17, 2022, 07:46:23 AM

Previous topic - Next topic

Gunther

Andreas,

Quote from: _japheth on January 19, 2022, 09:41:52 PM
That depends what you want to achieve.

a Beowulf cluster with FreeDOS.

Quote from: _japheth on January 19, 2022, 09:41:52 PM
Accessing memory beyond the 4 GB barrier requires some low-level work for a DOS app, since there exists no "unreal"-mode trick to do that.

that's surprising at all. I thought this is only possible in Long Mode. Are there any examples of this?
You have to know the facts before you can distort them.

_japheth

Quote from: Gunther on January 21, 2022, 07:13:58 AM
a Beowulf cluster with FreeDOS.
I see.

Quote from: Gunther on January 21, 2022, 07:13:58 AM
that's surprising at all. I thought this is only possible in Long Mode. Are there any examples of this?

Memory beyond 4 GB can be accessed by using special paging types:

1. PSE paging. I used it in https://github.com/Baron-von-Riedesel/HimemSX to create a special XMS host that can access up to 1 TB.
It's also used by CWSDPMI v6/7 to backup virtual memory up to 4 GB.


2. PAE paging. That's more powerful ( and the type of paging also used in long mode). For a simple usage in DOS see https://github.com/Baron-von-Riedesel/DOS32pae
Dummheit, gepaart mit Dreistigkeit - eine furchtbare Macht.

Gunther

Andreas,

thank you for your advice.

Quote from: _japheth on January 21, 2022, 06:53:04 PM
Memory beyond 4 GB can be accessed by using special paging types:

1. PSE paging. I used it in https://github.com/Baron-von-Riedesel/HimemSX to create a special XMS host that can access up to 1 TB.
It's also used by CWSDPMI v6/7 to backup virtual memory up to 4 GB.

1 TB for a DOS application sounds very impressive. If I understand correctly, HimemSX can be included under FreeDOS. That would already be a viable alternative for me. This should then even work in a virtual machine.

Quote from: _japheth on January 21, 2022, 06:53:04 PM
2. PAE paging. That's more powerful ( and the type of paging also used in long mode). For a simple usage in DOS see https://github.com/Baron-von-Riedesel/DOS32pae

That would be almost Long Mode. I'll have a look at that as well.
You have to know the facts before you can distort them.

Gunther

Andreas,

I found this on FreeDOS. It's JEMM version 5.79d.

In the XMS v3.5 API you've written:
Quote
  In V86 mode, the XMM's 'move extended memory' function (AH=0Bh) will need the
  help of the Expanded Memory Manager (EMM), since privileged code has to be
  executed. The only EMMs that currently support accessing memory beyond 4 GB
  are Jemm386/JemmEx v5.80+. Their Int 15h API has been exhanced as well.
Is there a binary package available for download of version 5.80?
You have to know the facts before you can distort them.

_japheth

Dummheit, gepaart mit Dreistigkeit - eine furchtbare Macht.

Gunther

You have to know the facts before you can distort them.