Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!seismo!columbia!rutgers!husc6!endor!arena
From: arena@endor.harvard.edu (Mike Arena)
Newsgroups: comp.sys.ibm.pc
Subject: Accessing COM2 from assembly language: Help Needed
Message-ID: <985@husc6.UUCP>
Date: Mon, 12-Jan-87 16:41:14 EST
Article-I.D.: husc6.985
Posted: Mon Jan 12 16:41:14 1987
Date-Received: Tue, 13-Jan-87 00:45:56 EST
Sender: news@husc6.UUCP
Reply-To: arena@endor.UUCP (Mike Arena)
Distribution: na
Lines: 37

I have been trying to write a small terminal emulation program in assembly
language by directly manipulating the serial port registers and taking over
the communications interrupts.
The serial port registers for COM1 are at 3F8-3FE.
I use the OUT command to write directly to the transmit register.
I Take over the interrupt 0C which monitors the Data Available Interrupt
and captures characters asynchronously into a 1K buffer.
I use the BIOS Interrupt 14 to initialize the comm port.

This works great for COM1 even at 9600 baud.

The problem is that I tried to make another version which would run on COM2.
I changed all of the addresses for the serial port to 2F8-2FE (which is COM2)
and still used interrupt 0C to capture incoming data.
I also changed my call to INT 14 so that it initialized COM2 instead of COM1.
So then I had an exact duplicate of the first program except that some addresses
were changed and a few data bytes.
The program could transmit data but not receive.

I poked around in some other tiny comm programs (JaxTalk and TTalk, both just
a few hunderd bytes) which I got off of a bulletin board and they used 
interrupt 0B instead of 0C to capture data for COM2.
So I made the change but still no effect.
In fact JaxTalk and TTalk did not work on COM2!!!!

The computer I was using was a Compaq which might be the source of the problem
but I doubt it since they are so compatible.  I don't have access to a regular
IBM PC with two comm ports so I don't know if it even works on that machine.

If anyone has an idea what the problem is, please post an answer or mail to me
at arena@harvard.harvard.edu.

Michael J. Arena
316 Conant Hall
36 Oxford Street
Harvard University
Cambridge, MA  02138