> RBIL sort of implies that all sizes should work, but dword is broken
> and the byte/word distinction is only partially explained in RBIL?


In my actual testing, the only thing that works properly is Bytes.


> Have you seen apps which make use of the QPI way, apart from
> SoftMPU?


No, I haven't.  But they could exist.  I've ran across a dozen or so 
implementations of the MS API.  Many of them are just "test" programs, though, 
and I never kept track of them.  My USBJSTIK (for USB joysticks/gamepads) is a 
"real" implementation of the MS API.


Is your implementation a superset of QPI? Or MS style? Both?


Just MS.  Qualitas provided a superset of the MS API also, and mine is a 
superset of the Qualitas superset.


> How understandable is the API by reading source comments, as
> no docs are there yet, so software beyond your USB drivers
> can start to use the extra features? :-)


As I think you are aware, I do a pretty good job of commenting my code so just 
reading the comments (especially the comments in the test program which tests 
all the features) will give you a good idea of what's going on.  BTW, the test 
program is written for NASM.


> I would suggest that you publish your code so people can look
> around in it and ponder adding it to JEMM. Maybe even Japheth
> himself would want to test it in the current state already :-)


I really don't think that's a good idea, but maybe could be convinced 
otherwise.  I don't think a "willy nilly" approach to this is a good idea -- it 
needs to be centralized so that there ends up only being one API.  I know lots 
of folks don't like the idea of a "centralized" approach to something like 
this, but I think it's needed here.


> Of course I would be happy to absorb some of your thoughts
> and put them into some text file if you think that helps,
> in comparison to you providing a readme yourself.


I know you would, Eric, and I do appreciate everything you do.  That's perhaps 
a little premature for now, though.  I think I might be willing to publish the 
test program right away, though (without documentation).


> To be honest, I am not aware of JLM (loadable protected mode
> drivers) beyond the demo KEYB provided by Japheth.


I'm not aware of any "real" JLMs either (other than test programs), but there 
may be some out there.


> Also, is your goal to provide I/O trapping accessible by JLM, or
> is there a general compatibility problem which breaks all JLM
> as soon as the I/O trapping (your style, QPI or MS style?)


My goal is simply be to not break existing JLM compatibility, though I don't 
see JLMs as the way to go in the future.  That would particularly apply if Bob 
ever did publish the source code for QEMM since JLMs are strictly a JEMM thing.


> Apart from the sound cards (although even those have VESA/AI)
> you can probably virtualize all of those at the BIOS level or
> packet driver level without too much compatibility loss with
> common apps or drivers.


The problem is that even where there are BIOS-level APIs for things (like 
keyboards, joysticks, mice, and even serial ports) the BIOS API's aren't always 
used (and in the case of joysticks and serial ports, are almost never used).  
To maintain compatibility with as many old programs as possible, I/O and, at 
least in some cases, DMA virtualization is required.


> Of course, a BIOS would probably use SMM for port level
> virtualization, which is not a style which user drivers like yours
> can use.


Exactly.  That would need to be implemented by the BIOS (or EFI/UEFI) -- the 
can be only one SMM "manager".  As you know, BIOS implementations of USB only 
address keyboards, mice, and/or disks.  I've never seen a BIOS that supports 
USB COM ports, joysticks, sound cards, or Ethernet, though some Virtual 
Machines do.


> But all of those would not yet be used by any other software ;-)


The use of these is to set up a "virtualization layer" so other programs that 
don't understand the newer hardware can still work.  E.g., a program can in 
fact be "talking to" a USB keyboard when it believes it is "talking to" a PS2 
keyboard even when it is accessing the keyboard at the hardware (I/O port) 
level.

> Thanks once again for your low level coding! Eric


Thank You!!! 


_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to