Guys,

   Yeah, it clearly will be the best for me to use XMS functions. There is 
still a lot I don't know about the different ways to access PM memory 
(including protected mode itself) so some things you guys say are perfectly 
clear to me while others are full of mistery :P   Is there any site where I can 
read in very good detail and in a way that is easy to understand, how flat-real 
mode, VCPI and DPMI work and how they deal with other previously loaded systems 
to avoid collisions?
   I really want to learn all that and whenever I find info on that it's rather 
cryptic. If one or more of you are willing to give me some "lessons" over Skype 
or something, I am willing to be very cooperative :P ha, ha. I really want to 
learn this thing.
   DOS386 mentioned "if you want PM, you have VCPI", I think, meaning if I 
wanted to access PM memory. If that is the case, that line is indeed very 
significative to me!  Only I wish I knew more about VCPI. Because of the nature 
of my driver, the memory access does not have to be very messy and it will 
probably be enough to just rely on XMS functions for now.
   One doubt I have about XMS functions is this: the XMM specification states 
that if I lock some memory, I must unlock it as soon as possible. How soon is 
that?  What exactly is a lock count?  I may, for many things, not need to know 
where my memory block is located, but sometimes, when I do need it, it would be 
important to keep it locked for as long as the driver is running, because it is 
a driver and other programs would be relying on it. Can I keep memory locked 
like for the whole time one process is running (i.e.: half an hour)?  How bad 
is that?
   About what hardware the driver is for... well, it's not for just one piece 
of hardware. What I am working on is a spec to link different APIs for 
different pieces of hardware and software. The idea is that all the elements 
can be accessed together in the same way and at the times they are really 
needed. This would keep as much free conventional memory as possible at all 
times, allowing dynamic modules and also providing a connection with a 
call-point and parameters that could be projected on any software/hardware 
platform. For example, we could use an interrupt number, say, 49h and registers 
EAX trhough EDX... but we could also use a PM pointer to code memory to be 
called with the parameters pushed into stack, etc.... and the spec would still 
hold. The result is that any operating system and any computer would be able to 
use the same structure (if they were interested) and OSs who participate in it 
will be able to help one another instead of working
 separatedly. It goes further, but I would need to write a whole document to 
explain my exact idea, so I want some code running, before I present it neatly. 
What do you reckon?

                  Lucas



--- On Fri, 30/10/09, Christian Masloch <c...@bttr-software.de> wrote:

From: Christian Masloch <c...@bttr-software.de>
Subject: Re: [Freedos-devel] Fw: Re: About my driver, HIMEM/EMM386 and 
interrupts
To: freedos-devel@lists.sourceforge.net
Received: Friday, 30 October, 2009, 1:16 PM

>> but then virtual-86 mode is set and I can no loger use 32bit real-mode  
>> pointers!
>
> IF you need PM from V86 there is VCPI.

Protected mode isn't the same as flat real mode.

>> Yet, there has to be a way, because HIMEM works even though EMM386 is  
>> loaded.
>
> As said, it uses INT $15 / AH=$87 then. That's also what you can use
> to access
> PCI memory mapped I/O (>= 2 GiB) from real mode code, even if EMM386 is  
> there.
>
> BTW, RBIL is wrong here, it says "linear address" but the call in fact  
> eats
> physical addresses, at least those above 1+1/16 MiB AKA $0011'0000.

Yes, you're right. All areas above the 1088 KiB (- 16 byte) accessible in  
real mode access the physical memory. Since the XMM works by switching to  
protected/flat real mode (without remapping memory) or using Int15.87  
provided by EMM386, the linear address returned when locking a XMS memory  
block should be usable as physical address as well.

Regards,
Christian

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel



      
------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to