<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Sun, 27 Nov 1983 08:52:00-PST
From   : ABN.ISCAMS@usc-isid
Subject: Re:  KERMIT and TAC

Mark (also also Keith at W8SDZ):

Fully agree with the host properly hanging up/reconfiguring.

The KERMIT patch, though is SO very simple.  Atchd is my patch I recently
sent to a local user who's emulating an IBM PC (kind of) with a Wang PC.
Same problem; same fix outta work.

David Kirschbaum
Toad Hall

To: ABN.20E-SP@USC-ISID
Subject: Re: TAC X/ON X/OFF
In-Reply-To: <[USC-ISID]26-Nov-83 13:42:41.ABN.20E-SP>
Sir,

I don't have the source code of PCKERMIT available now, so I can't move an
actual patch over to you.

However -- if you can grab the chunk of assembler that actually sends
characters out the port when sending packets (in my version its the
section with OUTCHR, OUTCH0, OUTCH1, etc...) and move/message it to me,
I can put in the patches.

What you do is get the character from a register or memory (wherever
KERMIT put it)(the character you want to send as part of a packet,
that is, and compare it to 40H (the @ sign).  If it isn't an @ sign,
just go ahead and send it.  If it IS -- send it twice!.

In my code (8080), it looks like this...

outchr:	mov a,e		; get the char into A
		call setpar	; This is the routine that sets parity on
				; the char to your desires.  I moved it
				; up here to keep it out of the TAC loop.
		mov e,a		; Put the character back into E while we
				; use A to check port status.
		cpi 40h		; compare immediate A with the @ sign.
		cz outch1	; Yep - got an @.  Call the OUT routine to
				; send it the first time, and fall through to
				; send it the second time (elegant, no?)

outch1:	in mnprts	; Get the output ready flat from the Tx
				; status port.
		ani output	; Is the ready bit set?
		jz outch1	; Not ready, loop...
		mov a,e		; Char back into A register
outch2:	out mnport	; Put it out the modem port (finally).
		ret		; Return the first time to the OUTCHR
				; call, the second time (if there IS a second
				; time) to whatever called this.


That's all there is to it!  Now your code and registers are going to be
a bit different, but basically the simple idea works.

Have fun...

SGM K
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>