<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Thu, 05 May 1983 10:36:17-PDT (Thu)
From   : ihnp4!spanky!burl!duke!mcnc!unc!bch@ucb-vax.arpa
Subject: Re: vt180 & mboot3

I have gotten a version of Modem working on the VT-180 but have used
a slightly different approach than that reported earlier.  Rather
than check the status of the port by attacking the magic control block
location in the bios, I installed an interrupt trap between the
RST location and the system interrupt handler.  This gives me first
crack at incoming data from the communication line before the vt-180
BIOS can get its hands on it.  As it turns out, the device handler
for the communication line likes to ignore certain characters (like
NUL) which can thoroughly upset file transfer.  This method gives
me everything and allows me to sense disconnection, parity errors,
overruns and framing errors as well.

As part of INITMOD:

...
	LHLD	00011H		;load interrupt handler address
	SHLD	INTHAND+1	;store in jump location
	LXI	H,RXINT		;load trap routine address
	DI			;be careful
	SHLD	00011h		;save in RST10 JMP address
	EI			;let it go
...

Now, in an independent module:

RXINT	PUSH	A		;save register
	IN	059H		;read status port
	STA	COMSTAT		;save value
	ANI	02H		;is this our interrupt?
	JZ	RXRET		;no
	IN	058H		;get incoming character
	STA	COMBYTE		;save it
RXRET	POP	A		;restore accumulator
INTHAND JMP	$-$		;exit through system
COMSTAT	DB	0		;result of status port read
COMBYTE	DB	0		;result of data port read


Your recieve data handler can then treat the locations COMSTAT and
COMBYTE as if they were memory mapped IO, though your transmit
data routine must use ported IO.

Clearly, there are a number of more complicated things one can do
with this approach, including building a ring buffer to buffer
incoming data until something as slow as Microsoft Basic can get to
it.

				Good Luck,
					Byron
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>