TIP: Click on subject to list as thread! ANSI
echo: os2prog
to: Mike Bilow
from: Brian Converse
date: 1995-01-31 23:59:02
subject: OS/2 VDD, PDD, VDMs

MB> OS/2 does provide important services to 
MB> device drivers through the DevHelp interface and also to
MB> lock memory into position so that it 
MB> is present when the hardware goes looking for it.  It is 
MB> the responsibility of the driver to make sure explicitly 
MB> that any block of memory needed at interrupt time is 
MB> correctly addressed and locked present.

But look how nice that is- you simply lock the memory you
need to DMA into. As I understood what I read, in Windows,
if you need a DMA buffer, it's allocated at boot and remains
allocated thereafter. I'm not sure I'd want to run around in
an OS/2 driver locking and unlocking memory over just freezing
some at init time, but sounds like you can do it either way.

MB>  BC> for OS/2 is there a good ref. on how IRQs and DMA are
MB>  BC> handled? I presume something more civilized is used to
MB>  BC> feed the VDMs. 
MB> 
MB> I doubt it, but I bought the DDK and never really went 
MB> looking for an alternative.  OS/2 virtual device drivers 
MB> are a rather complex area...

had one all the time...went back an read the DOS section of The
Design of OS/2 2.0 book. it's all turgid and aimed at a different
understanding than I want, but it's mostly there. One part of the
text really needs some work, as you are pulled into the "VDM has
interrupts disabled" case as if it's part of the general handling.
Sigh- there is a VPIC too. With multiple DOS sessions running,
you can't do much else without doing violence to compatibility, I
guess. At least, the VPIC part is done outside the VDM's
time slice, so the final limit on OS/2 VDM IRQ handling rate is
determined more by the time slicing mechanism, and less by how
thick the PDD, VDD, and VPIC code is.

BTW, I'd forgotten how little "there" is there in the VDM under
OS/2-just the DOS stub and the rest is in the shared VDM engine,
and much of that reflects up into 32-bit OS/2 services.

MB> On the DDK, IBM does give the full source code to 
MB> VFLPY.SYS, which provides virtualization of all of the 
MB> floppy disk hardware, including its DMA and IRQ aspects.

I should have bought one when the price was good. I figured the
PPC age would be upon us much faster than it has; still, I'm not
real interested in reading/writing protected mode i286 code. But
even a cursory look a VFLPY.SYS might be worth the price versus
accumulating less-than-helpful texts. Floppy DMA: I used to think
that was an oxymoron, until seeing the DOS Fastback use it in an
elegant manner.

MB> The more experience I get with OS/2 device drivers, the 
MB> more convinced I am that Mastrianni's book is incomprehensible

"Writing OS/2 Device Drivers in C" sounded like ANOTHER oxymoron,
and I've flipped through it in bookstores now and then. Recently,
it was said that Warp has S3 drivers written by IBM in C, though.

___
 X KWQ/2 1.2g X Good enough for grandpa, good enough for me: ND27

--- Maximus/2 2.02
* Origin: OS/2 Shareware BBS, Fairfax, VA: 703-385-4325 (1:109/347)
SEEN-BY: 12/2442 620/243 624/50 632/348 640/820 690/660 711/409 410 413 430
SEEN-BY: 711/807 808 809 934 942 949 955 712/515 713/888 800/1 7877/2809
@PATH: 109/347 2 7 3615/50 229/2 12/2442 711/409 808 809 934

SOURCE: echomail via fidonet.ozzmosis.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.