[net.micro.trs-80] New, improved TERM program

ronbe@tekred.UUCP (Little Guy) (05/20/85)

The TERM program I announced about a month and a half ago has been
improved. The program will now work at baud rates above 300 (1200,
maybe more, I haven't tried).  If I mailed you the program, and you
want the new version, let me know.  Also, I've still got available
the TRANSLAT program which converts Intel Hex to and from TRS-80
executable /CMD format.  Unless you want source, I will mail the
programs in Intel Hex format.  Of course, I will have to send the
source for TRANSLAT.  Also available:  DISASM disassembles memory
or object files;  DBUG improved debugger with built-in disassembly;
and various other utilities for the Z-80 programmer.

More about TERM:  Running at 1200 baud, characters coming in were
getting lost.  I figured this was because the (slow) 2.5 MHz Z-80
in my Model III couldn't scroll the screen and handle other video
control stuff fast enough to poll the RS-232 as often as it had to.
The program has a much-thought-out printer spooler involved, and
so I copied that algorithm and created a smaller circular buffer for
characters received from the RS-232.  Making some small patches into
the system RAM, I created my own interrupt handler for receive
character available, and buffered them in the circular buffer in real
time.  Once I had that going, I was disappointed to find that I was
still losing characters.  After digging into my disassembled ROM
listing, I found that interrupts are disabled while doing screen
handling.  The perfect excuse to write my own screen handler!  Mine
does carriage return and line feed in the traditional manner without
a kludge, as I had done before.  Also, BELL (ascii 7) is sent to the
printer since the Model III doesn't make noise.  I also made tabs
work without the previous kludge.  All this, and much faster, too.
No gobbledy gook contortions that the ROM routines go through.

The bottom line is that no more characters are lost, even with
the print spooler running and entering and exiting the command menu
(automatic X-on/X-off).  I can now dump a 50,000 character document
to my printer at 1200 baud, be finished receiving it while the printer
is still on page 3, end the connection, and let the printer finish
the spooling off line without losing a character.  The program also
features upload and download capability in any ascii format.

You want it?  You got it.  I'm giving it to anyone interested.
In keeping with my own modesty, I've got to admit it's the best
terminal program I've seen for the TRS-80.  I've also got a termcap
to make it work for UNIX (yes, that's a tradmark).  Send me e-mail
or a disk in USnail and I'll get copies off to anyone interested.
These are copyrighted, meaning no money shall be made by anyone but
me, but I'm not interested in making money.  If you're into Z-80
I'm also willing to send sources for hacking.

	Ron Bemis
	659 SW 29th St
	Redmond, OR  97756
-- 
New dictionary entries:
recursion: see recursive
recursive: see recursion
	...tektronix!tekred!ronbe (Ron Bemis)

sda@packard.UUCP (DA Schrader) (05/21/85)

I was wondering how smart the TERM program is for UNIX?  Does it run VI and
use the CURSES and TERMINFO procedures?  I have a program which uses these
features and has been fully tested at 9600 baud.  It supports XON/XOFF and
runs a printer at 1200 baud while running the comm line at 9600 baud.  I
would be happy to make available the code for this to interested parties.

It does involve creating a TERMCAP/TERMINFO definition for it to use the 
smart terminal interface though.  I have a copy of the one used for 
testing if interesed also.

ronbe@tekred.UUCP (Little Guy) (05/24/85)

> From: sda@packard.UUCP (DA Schrader)
> I was wondering how smart the TERM program is for UNIX?  Does it run VI and
> use the CURSES and TERMINFO procedures?
Well, this should probably be private mail, but for general info, I'm
posting.  Yes, TERM works very well with vi.  I don't use CURSES, so
I can't answer that one.  The program was written for UNIX, but works
well on the bulletin boards that I've been on.  For example, when
downloading things to a UNIX system, the program sends a ^D at the end
of the file.  I use the termcap:
--------------------------------------------------------------
setenv TERMCAP 'M6|trs80|trs-80:\
ae=^V:am:as=^V:bs:bw:cd=\037:\
ce=\036:cl=20*\034\037:co#64:do=^Z:ho=\034:\
is=\034\037:kr=\t:ku=[:li#16:ll=\034\033:\
nd=^Y:up=\E'
--------------------------------------------------------------
and have had no problems.  The fastest I've run the program is
at 2400 baud on a direct line.  That's the speed of our VT100's
here at work, and I just haven't got around to trying it at a
faster rate with one of our neato 834 data communications testers.
It SHOULD work up to 9600 baud (the fastest the TRS-80 will allow?)
since the character received buffer is 50 bytes long, allowing
enough buffering for any scrolling slow-downs.  Since my TRS-80
Model III does not have a serial printer port (yours does?) I don't
know how fast I'm printing.  Theoretically, I could print faster
than I'm receiving characters if the machine was configurable at
a fast enough rate, but most printers can't print that fast.  My
theory was to just print as fast as the printer would go.

I'm also planning to pull some code out of KERMIT to allow use of
that protocol in TERM.  KERMIT, as received from Columbia, has
the same problems mine used to have, namely, you lose characters
while doing screen control at anything above 300 baud.  Since
there's not much screen control going on while transferring files,
it works well in send and receive modes.  Yes, yet another release
will be coming out some day that does KERMIT protocol.

Thanks for the enquiries.
	Ron Bemis
	659 SW 29th St
	Redmond, OR  97756
	(503) 923-4460 (work)
	(503) 923-0580 (home)
-- 
New dictionary entries:
recursion: see recursive
recursive: see recursion
	...tektronix!tekred!ronbe (Ron Bemis)