[net.micro.pc] BIOS Comm. Interupt Problem

iglesias.uci@Rand-Relay@sri-unix.UUCP (09/13/83)

From:  Mike Iglesias <iglesias.uci@Rand-Relay>

I had problems running KERMIT on an XT with DOS 2.0.  It appears that
KERMIT is sending the first character (^A) repeatedly.  I traced the
problem to the following code (the dashed lines are mine):

outchr: mov al,ah               ; Char must be in al.
	mov cx,0
	call dopar		; Set parity appropriately.     [10]
outch1: mov ah,1                ; Output it.
	mov dx,0
        int comm
;-------------------------------------------------
	cmp ah,00H
	je outch3
	loop outch1
	 jmp r
;-------------------------------------------------
outch3:	jmp rskp

I ran KERMIT with the debugger and found that after the 'int comm',
ah was non-zero.  Looking at the BIOS listing for the XT, ah has the
status of the line unless the character couldn't be sent, in which case
bit 7 is set in ah.  If I remove the code between the dashed lines,
it seems to work.  To all you XT wizards out there:  what code should
be between the dashed lines to make it run properly on an XT?

Thanks for any help you can provide.

jph@whuxlb.UUCP (09/19/83)

#R:sri-arpa:-545300:whuxlb:6400018:000:336
whuxlb!jph    Sep 18 22:13:00 1983

I would assume if the real status that they want to
check is just bit 7 of AH on return, then the following
code should be substituted for the CMP:

	test	ah,10000000B

This should produce the desired results. The problem is
that the line status is non-zero when the character is
transmitted correctly, and that is the reason it
fails.