<< 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 >>