Google Answers Logo
View Question
 
Q: DOS device driver ( Answered 5 out of 5 stars,   0 Comments )
Question  
Subject: DOS device driver
Category: Computers > Programming
Asked by: ga1000-ga
List Price: $10.00
Posted: 30 Jun 2003 20:11 PDT
Expires: 30 Jul 2003 20:11 PDT
Question ID: 223772
(a)How does the DOS device driver handle PCI bus boards? How does it
find out the interrupts used by a PCI board?
(b)Please recommend some reference book or publication regarding this
subject. I have some old DOS device driver books which do not discuss
PCI bus.
Answer  
Subject: Re: DOS device driver
Answered By: mathtalk-ga on 01 Jul 2003 08:20 PDT
Rated:5 out of 5 stars
 
Hi, ga1000-ga:

Some inexpensive (free!) but dated documentation on the PCI
architecture is available here:

[PCI Specifications Documents]
http://members.datafast.net.au/dft0802/specs.htm

Implementation of PCI bus features requires a BIOS that is PCI aware. 
Your specific concern about how the (hardware) interrupts (IRQs) are
allocated among PCI boards is a BIOS-mediated topic.  See here:

[PCI BIOS Specifications]
http://members.datafast.net.au/dft0802/specs/bios21.pdf

See Section 4.2 which describes the low-level interface to query for
available interrupt routing options available on the system
motherboard, including PCI interrupts already allocated.

[It also shows how to set hardware interrupts for PCI boards, but this
is intended for the operating system's use, not by a device driver. 
It is my understanding that while a device driver might need to
"query" for interrupt information, it shouldn't be necessary for the
device driver to attempt to set hardware interrupts, as this would be
against the philosophy of allowing the operating system to manage the
fairly scarce resource of hardware interrupts.]

The most current versions of the PCI specifications are found here:

[PCI Special Interest Group]
http://www.pcisig.com/home

Membership is $3000 per year, but if your company is a member, then
you can request access on that basis.

I'd be happy to point you to further reference materials to your
specific environment (FreeDos? a DOS extender?) if you will provide
the details.  For example, the Phar Lap DOS extended provides tools
for debugging PCI peripherals:

[Phar Lap TNT DOS Extender]
http://www.dinigroup.com/products/pharlap.html

David Lindauer (LADSoft) has written GRDB, an MS-DOS/FreeDOS
compatible real-mode debugger that handles PCI buses, available under
GNU public license with source code:

[Get Real Debugger]
http://members.tripod.com/~ladsoft/frindx.htm?grdb.htm

that may be useful to you in developing and testing your device
driver.

regards, mathtalk-ga

Request for Answer Clarification by ga1000-ga on 01 Jul 2003 08:50 PDT
If the bios is PCI aware, does a commonly available DOS(such as
version 6.2 or later)supports PCI boards?

I have a multiport RS232 board with Linux device driver, but one
customer wants to use it on DOS.

Clarification of Answer by mathtalk-ga on 01 Jul 2003 10:30 PDT
Hi, ga1000-ga:

Yes, MS-DOS 6.2 and more recent "free" DOS substitutes will generally
support PCI boards, given the PCI enabled BIOS on the motherboard.

Rather than write a device driver for a multiport RS232 board, I'd
first investigate whether off the shelf software can handle your
particular board.  For example:

[COMM-DRV/DOS]
http://www.wcscnet.com/CdrvDBro.htm

"COMM-DRV/Dos allows the sharing of individual IRQs on the PC. Several
serial ports can be connected to the same IRQ. IRQ00 through IRQ15 are
supported. Any port address can be assigned to any COM device. Any COM
device can be renamed. Each port supports adjustable communication
buffers of up to 128k bytes. DTR/RTS/DSR/CTS hardware protocol is
supported on both reception and transmission as well as XON/XOFF
software protocol.

"COMM-DRV/Dos operate at speeds in excess of 460.2K baud on cards that
allow it. It supports most non-intelligent multiport serial cards that
have the 8250, 16450, 16550, 16650, or compatible serial chip as well
as many intelligent multiport cards. It supports both ISA and PCI
cards."

At the list price of $189.95, you'd be hard put to cost effectively
write and maintain your own device driver if this one works for you. 
The COMM-DRV/Dos package bundles a handful of utilities, but probably
the piece you are looking for is commdrv.drv, a device driver "that
allows any application or program the ability to write to the serial
port if it can open, read, & write to a standard file."

See the Web site linked above for a listing of supported boards.

regards, mathtalk-ga

Request for Answer Clarification by ga1000-ga on 01 Jul 2003 12:01 PDT
Thank you for your further comments. I will look into this DOS tool.

Clarification of Answer by mathtalk-ga on 01 Jul 2003 12:51 PDT
Thanks for taking time to rate my answer.  The feedback is encouraging...

best wishes, mathtalk-ga
ga1000-ga rated this answer:5 out of 5 stars

Comments  
There are no comments at this time.

Important Disclaimer: Answers and comments provided on Google Answers are general information, and are not intended to substitute for informed professional medical, psychiatric, psychological, tax, legal, investment, accounting, or other professional advice. Google does not endorse, and expressly disclaims liability for any product, manufacturer, distributor, service or service provider mentioned or any opinion expressed in answers or comments. Please read carefully the Google Answers Terms of Service.

If you feel that you have found inappropriate content, please let us know by emailing us at answers-support@google.com with the question ID listed above. Thank you.
Search Google Answers for
Google Answers  


Google Home - Answers FAQ - Terms of Service - Privacy Policy