[comp.sys.amiga] More bugs in DBW's VT100

mark@ece-csc.UUCP (Mark Lanzo) (11/29/86)

Engineering.
I have been using Dave Wecker's VT100 program (v2.3, 861101), and have 
found that the function keys (including arrows) do not seem to work reliably.

If I hit the cursor keys SLOWLY (ie, maybe wait a second between successive
keystrokes), things usually work ok.  However, if I hit the keys a little
bit more rapidly, or just hold one down, VT100 invariably gets sick
and splatters lots of garbage out.  Usually this garbage consists of a 
a single character repeated over and over -- usually I'll get the letter
"U" printed many times.  Usually after it spits out enough characters
it stops and things work again (as long as I don't use the arrow keys).
Sometimes it just spits out the character seemingly forever; other times
the system freezes and I have to exit the program (that hasn't happened
many times though and I can't remember if VT100 still exited neatly via
the close gadget or whether it required a reboot to kill the process).
This same behavior is shown by the other function keys.

The compiler doesn't seem to be at fault this time -- both Lattice 3.03B and
Manx versions of the program do the same thing.


Does anybody know what the problem might be?

Also:  some people have complained about the visible beep option not working.
       That DOES work just fine in my version (I edited vt100.h to set
       default beep volume to zero).
 
Oh yes -- I *did* edit vt100.h to make sure the #define LATTICE and
          #define MANX were set appropriately for the compiler being used.

Other than for this one problem, the program seems to work really well;
overall I am extremely pleased with it.  I just wish I could use my
functions keys with my editor!

   -- Mark Lanzo --

vanam@pttesac.UUCP (Marnix van Ammers) (12/01/86)

In article <3131@ece-csc.UUCP> mark@ece-csc.UUCP (Mark Lanzo) writes:
>Engineering.
>I have been using Dave Wecker's VT100 program (v2.3, 861101), and have 
>found that the function keys (including arrows) do not seem to work reliably.

I just checked and my VT100 V2.3 does not have this problem.  I just
used vi to look through a file and I could type any of the arrow
keys (didn't test the function keys) as fast as I wanted.  I could also
hold them down so they'd repeat.  All worked just fine.

I compiled with manx.

I have hit a different problem/bug twice though.  Once using version 2.2
and once now with version 2.3 .  And that is that all of a sudden I find
that my period (.) key is acting like a break key.  Typing the right
Amiga key doesn't clear the problem.  When this happened I could not
find a way to clear the problem short of rebooting the whole system.

Marnix
-- 
Marnix A.  van\ Ammers		Work: (415) 545-8334
Home: (707) 644-9781		CEO: MAVANAMMERS:UNIX
{ihnp4|ptsfa}!pttesac!vanam	CIS: 70027,70

wen@husc2.UUCP (wen) (12/01/86)

In article <341@pttesac.UUCP> vanam@pttesac.UUCP (Marnix van Ammers) writes:
>
>I have hit a different problem/bug twice though.  Once using version 2.2
>and once now with version 2.3 .  And that is that all of a sudden I find
>that my period (.) key is acting like a break key.

Me, too.  Aliasing "." to "." in my vt100.init seems to have cleared the
problem up.

			A. Wen
			wen@harvunxu.BITNET
			wen%husc4@harvard.HARVARD.EDU

srinivas@ut-sally.UUCP (Srinivasan Sankaran) (12/01/86)

In article <341@pttesac.UUCP> vanam@pttesac.UUCP (Marnix van Ammers) writes:
>In article <3131@ece-csc.UUCP> mark@ece-csc.UUCP (Mark Lanzo) writes:
 >>Engineering.
 >>I have been using Dave Wecker's VT100 program (v2.3, 861101), and have 
 >>found that the function keys (including arrows) do not seem to work reliably.
>
>I just checked and my VT100 V2.3 does not have this problem.  I just
>used vi to look through a file and I could type any of the arrow
>keys (didn't test the function keys) as fast as I wanted.  I could also
>hold them down so they'd repeat.  All worked just fine.
>
>I compiled with manx.
>
>Marnix
---------------------
I compiled with Lattice (version ?.??). If I keep pressing any of the arrow 
keys in vi, a lot of lines with just one character (usually "C") get inserted 
in the in the file.

-srinivas

srinivas@sally.utexas.edu

rick@mips.UUCP (Rick Frazier) (12/02/86)

> ---------------------
> I compiled with Lattice (version ?.??). If I keep pressing any of the arrow 
> keys in vi, a lot of lines with just one character (usually "C") get inserted 
> in the in the file.
> 

I'm sure that many of the "netlanders" out there have seen this particular
"symptom" before , especially those working on *nix systems.  It seems to be
a result of the control codes that the vt100 sends for the arrow keys, 
with interaction due to character buffering:

In vi, an escape [ESC] (alone) signals the program to exit the current mode.
However, the arrow keys for a vt100 terminals send [ESC] O A for the up, 
[ESC] O B for the down, [ESC] O C for the right, and [ESC] O D for the left
arrows.  Since O is the vt100 command for "open line above", the result,
if you are trying to scroll up, is a string of lines with a capital A in
column 1.  (the editor sees the following:  [ESC] (quit doing last command)
O (open line above) A (this is the character it puts on the line) for each
time the up arrow is pressed.  

Two things seem to be involved:
1) the rate at which you press the key (or repeat rate of the terminal)
2) the system load.

When a system is lightly loaded, there is time to take each character
individually and operation is what we consider normal.  As the system load
increases, the characters get stacked in a buffer, and there is no data
to indicate relative timing of the input of the characters, and the editor
seems to take these characters (from the buffer) as individual keystrokes,
not as a composite keycode (what was actually sent when you pressed the
arrow key)

A third event can cause the same result is pressing any of the arrow keys
while you are in any of the insert modes (I just did in rn, and it reminded
me in the usual fashion, a string of single-character lines).
This particular problem is an operator error, and cannot be considered a
fault of any vt100 emulator/terminal/system.

Whether the (long) response above is directly applicable to the program 
running on the amiga or not, I think it is important that those out there
without the "benefit" of having lived on *nix systems for years be aware
that we have lived with this problem all along, so the problem may not be
a fault in the program at all........ It's a FEATURE of vi  :-)   and has
been for as long as I have been working on *nix systems.

-- 
--Rick Frazier--  DISCLAIMER: The above is individual opinion (the result of my
imperfect recall of facts, real or imagined) in no way representing anyone else.
UUCP:  {decvax,ucbvax,ihnp4}!decwrl!mips!rick         DDD: 408-720-1700 x278 

chapman@eris.BERKELEY.EDU (Brent Chapman) (12/02/86)

In article <1047@husc2.UUCP> wen@husc2.UUCP (wen) writes:
>In article <341@pttesac.UUCP> vanam@pttesac.UUCP (Marnix van Ammers) writes:
>>
>>I have hit a different problem/bug twice though.  Once using version 2.2
>>and once now with version 2.3 .  And that is that all of a sudden I find
>>that my period (.) key is acting like a break key.
>
>Me, too.  Aliasing "." to "." in my vt100.init seems to have cleared the
>problem up.

I've hit this several times.

I haven't yet taken the time to track it down (final exams are coming up
soon...), but it seems that it only happens when I invoke a new CLI using
POPCLI, and then do an 'endcli' before returning to vt100.  (Side note:
most of the time when I invoke POPCLI from within vt100, it's to format
a disk, so the FORMAT program might be part of the problem as well.)

To reset things after the '.' key wedges, I usually just have to exit and
then restart vt100.

So, lessee, we've got a bad interaction somewhere, between at least
four, and possibly five programs: VT100, POPCLI, NEWCLI, ENDCLI, and possibly
FORMAT.  Anyone want to take the time to track it down?  I'll do it when I
get around to it, but that may not be soon.


Brent

--
Brent Chapman

chapman@eris.berkeley.edu	or	ucbvax!eris!chapman

wtm@neoucom.UUCP (Bill Mayhew) (12/03/86)

In article <6478@ut-sally.UUCP>, srinivas@ut-sally.UUCP (Srinivasan Sankaran) writes:
> ...
> I compiled with Lattice (version ?.??). If I keep pressing any of the arrow 
> keys in vi, a lot of lines with just one character (usually "C") get inserted 
> in the in the file.
> 
> -srinivas

I sounds like you are getting bitten by the timeout in vi that
differntiates terminal generated escape sequences from the the user
pressing the escape key, then after n milliseconds typing some
command.

On the VT100, the right arrow generates ^[ [ C, and in the keypad
mode generates ^[ O c, which means that if things are going slow,
and vi has you in keypad mode (which it does for the "normal" vt100
termcap or terminfo) that you are going to exit from insert mode,
and then suddenly find yourself with a capital C on the line above
the one you were working on.

Here, we run over ethernet servers to the Vax and occasionally, an
arrow escape sequence gets broken up between two ethernet packets
and results in an unwanted insetion of A,B,C, or D depending on the
arrow pushed.  That's how I first encountered this on a real
vt100.

I'm not a vi expert; perhaps, you could change the durration of the
timeout, or else operate at a lower baud rate, as the timeouts are
calculated proportional to the baud rate.

You also might try recompiling under Aztec rather than Lattice, as
the stdio functions are faster in Lattice, so I'm told.  I have a
version of DBW's vt100 version 2.3 that was compiled under Lattice
that our vax seems to believe is a real vt100 without problems.

BTW:  thanks DBW.  vt100 is really nice, especially the kermit.

Bill Mayhew
Division of Basic Medical Sciences
Northeastern Ohio Universities' College of Medicine
Rootstown, OH  44272  USA    phone:  216-325-2511
(...!cbatt!neoucom!wtm    wtm@neoucom.UUCP)

wtm@neoucom.UUCP (Bill Mayhew) (12/03/86)

Hold it!  Before you mail me that nastly letter, what I meant to
say in that last article was "Maybe you should try to recompile
using Aztec C rather than Lattice, as the stdio functions are
faster than in Lattice, so I've been told"

What I said was accidentally turned around!  Chalk it up to not
having enough cups of coffee yet this morning!  Sorry if I raised
anybody's blood pressure!

--Bill

chas@gtss.UUCP (Charles Cleveland) (12/04/86)

In article <6478@ut-sally.UUCP> srinivas@ut-sally.UUCP (Srinivasan Sankaran) writes:
>I compiled with Lattice (version ?.??). If I keep pressing any of the arrow 
>keys in vi, a lot of lines with just one character (usually "C") get inserted 
>in the in the file.

I think your bug (that's the right arrow key you usually hit, right?) is due to
the lack of a normal/application mode for the cursor keys which is independent
of the normal/application mode for the keypad.  Wecker sets application cursor
keys whenever application keypad keys are set.  As I mentioned in another
posting, which only went out today due to hardware problems, I fixed this and
will post diffs if enough interest is displayed in it.


-- 
Charles Cleveland			chas@ss.physics.gatech.edu
Georgia Tech School of Physics
Atlanta, GA 30332			Georgia Tech Surface Studies

...!{akgua,allegra,amd,hplabs,ihnp4,masscomp,ut-ngp,rlgvax,sb1,
	uf-cgrl,unmvax,ut-sally}!gatech!gtss!chas

sean@ukma.ms.uky.csnet (Sean Casey) (12/05/86)

In article <782@mips.UUCP> rick@mips.UUCP (Rick Frazier) writes:
>> I compiled with Lattice (version ?.??). If I keep pressing any of the arrow
>> keys in vi, a lot of lines with just one character (usually "C") get inserted
>> in the in the file.
>
>I'm sure that many of the "netlanders" out there have seen this particular
>"symptom" before , especially those working on *nix systems.  It seems to be
>a result of the control codes that the vt100 sends for the arrow keys,
>with interaction due to character buffering:

The explanation is a good one.  I have experienced the same problem on
both VT100s and VT102s (real ones from DEC).  Considering that <ESC> can
be both a mode switch for vi AND an arrow key sequence, vi does quite
well in differentiating the two.

The solution:

Don't use arrow keys in vi!  Use 'h','j','k', and 'l'.  This way you (1) don't
have the problem with holding down the keys, (2) have your fingers much
closer to the home keys, (3) can move much quicker because your fingers don't
have to leave the keys, and (4) will be ready to play games that use 
the hjkl keys :-).  If you need to move rapidly right and left, use 'w',
and 'b' to move forward and back words, and use '0', and '$' to move to the
beginning and end of a line.  To move up and down quickly, use ^F, ^B, ^D,
and ^U.  Almost any vi command can be prefixed with a repeat count.

Happy editing!


Sean
-- 
===========================================================================
Sean Casey      UUCP:  cbosgd!ukma!sean           CSNET:  sean@ms.uky.csnet
		ARPA:  ukma!sean@anl-mcs.arpa    BITNET:  sean@UKMA.BITNET

gary@well.UUCP (Gary J. Albert) (12/06/86)

ips.UUCP>
Sender: 
Reply-To: gary@well.UUCP (Gary J. Albert)
Followup-To: 
Distribution: 
Organization: Whole Earth Lectronic Link, Sausalito CA
Keywords: 



I used to have the problem in 'vi' if having the escape at the start of the
arrow key's sequence being mistaken to mean exit insert mode.  Then I read
the manual again and found that the 'h', 'j', 'k', and 'l' keys do the same
thing without sending any excapes, thereby preventing the problem.  This
has the added advantage of letting you keep your hands on the home row for
those typists out there.

		Gary ALbert

stever@videovax.Tek.COM (Steven E. Rice, P.E.) (12/07/86)

In article <158@gtss.UUCP>, Charles Cleveland (chas@gtss.UUCP) writes:

[ quotes description of arrow key bug ]

> I think your bug (that's the right arrow key you usually hit, right?) is
> due to the lack of a normal/application mode for the cursor keys which
> is independent of the normal/application mode for the keypad.  Wecker
> sets application cursor keys whenever application keypad keys are set.
> As I mentioned in another posting, which only went out today due to
> hardware problems, I fixed this and will post diffs if enough interest
> is displayed in it. 

Mail the diffs!  Post the diffs!  But please, send 'em!!

					Steve Rice

----------------------------------------------------------------------------
{decvax | hplabs | ihnp4 | uw-beaver}!tektronix!videovax!stever

robinson@shadow.Berkeley.EDU (Michael Robinson) (12/08/86)

[Intel]

I have found a quick fix to the "." wedge problem in VT100.  If you move
the mouse cursor around randomly for a while by using the keybaord commands 
to do this ([shift]-Amiga-{up|down|left|right}-arrow), the "." key becomes
unstuck.  I guess the status of the Amiga key gets stuck in VT100 someplace,
and all this geferken around gets it unstuck.  Still not pretty, but beats 
a re-boot.

------------------------------------------------------------------------------
         "If you study the logistics and heuristics of the mystics,
          You will find that their minds rarely move in a line"

Abu Nidal is conspiring to assasinate Reagan and smuggle bombs into the NSA.

Mike Robinson                                 USENET:  ucbvax!ernie!robinson
                                              ARPA: robinson@ernie.berkeley.edu

rar@auc.UUCP (Rodney Ricks) (12/08/86)

In article <2164@well.UUCP> gary@well.UUCP (Gary J. Albert) writes:
>I used to have the problem in 'vi' if having the escape at the start of the
>arrow key's sequence being mistaken to mean exit insert mode.
[Rest of message deleted]
>
>		Gary ALbert

Yes, we have also had that problem, but I don't think that it is caused by
faulty vt100 emulation.  The terminals that we have this problem on are true
Digital VT100's.  We had the same problem on the Esprit Executive 10/102's,
which emulate a VT102.

The problem was caused by an inadequate delay when sending the sequence.  The
delay on the VT100 terminfo files for the 3B5's and 3B2's that we use was
originally set to 2 milliseconds.  I wrote a very simple program that changed
the settings in the compiled database to give a longer delay (I believed I
used about 20 milliseconds), and the problem disappeared. 

The best way would probably be to get the source for the VT100 terminfo
(not termcap), then modify that.  If you can get that, please mail a copy of
it to me.  I couldn't figure out how to modify the escape sequences in the
compiled code for scrolling, and we're still having problems with that.

By the way, our VT100's also left behind part of the escape sequence on the
screen, and, if you were in command mode, it took you into insert mode.

Hope this helps.

                                    Rodney


[ Insert an appropriate disclaimer here ]

Rodney Ricks,
  Atlanta University Center Computation Center

mwm@eris.BERKELEY.EDU (Mike (Don't have strength to leave) Meyer) (12/09/86)

In article <5261@ukma.ms.uky.csnet> sean@ukma.UUCP (Sean Casey) writes:
>Don't use arrow keys in vi!  Use 'h','j','k', and 'l'.  This way you (1) don't

Better yet, use Emacs! :-) [Really, I *DON'T* want to start a round of
editor wars, but I couldn't resist!]

I've got mouse support code in vt100 (real easy to do), so I can point
with my mouse and just click. Or C-click to delete a char, or
ALT-click to delete a word, or ....

As soon as I de-X-ify the GNU elisp, I'm going to turn it all loose.
Sometime next week, I hope. The GNU stuff should look like the mouse
support in the hot-mouse version of mg1a.

	<mike