www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2003/02/05/02:00:12

From: "John Henderson" <jhenRemoveThis AT bigpond DOT com>
Newsgroups: comp.os.msdos.djgpp
Subject: Determining interrupt vector for serial port
Date: Wed, 5 Feb 2003 17:45:21 +1100
Organization: no affiliation
Lines: 28
Message-ID: <b1qcar$16070j$1@ID-83062.news.dfncis.de>
NNTP-Posting-Host: 144.139.221.85
X-Trace: fu-berlin.de 1044427932 39853075 144.139.221.85 (16 [83062])
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1106
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

As a retired programmer, I'm still an absolute novice where PC
internal architecture is concerned.  But I'm learning and I'm
stuck.

I'm using DJGPP and writing a program which involves servicing
serial ports.  I've developed a working ISR that compiles with
gcc, and I'm satisfied it runs correctly.

I'm also aware that I can read COM1's address with the C command:

 addr =  _farpeekw(_dos_ds, 0x400);

(and using 0x402 to 0x406 instead for COMs 2 to 4).

But I've been unable to discover how to "read" the associated IRQ
value for each port.  So far I've found them hardcoded as 4, 3,
4, 3 respectively in all examples.  But I've got to look no
further than my own PC to find COM3 using IRQ5 (on an ISA card).
How does a program discover this?

In the interests of robust software, is someone able to help me
move forwards here?

TIA

John


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019