^X (was: an odd question

From: Jerome Fine <jhfine_at_idirect.com>
Date: Sun Aug 12 17:12:43 2001

>Tony Duell wrote:

> Am I the only person here who instinctively uses ^S to halt screen output
> and ^Q to restart it?

Jerome Fine replies:

Absolutely NOT!! But I find that I rarely do so except on the VT220 and
upward compatible VTxxx terminals.

However, while ^S/^Q work equally well on a VT100, the "NO/SCROLL"
key at the lower left of the VT100 keyboard seems to be much more convenient.

IN ADDITION, I also run RT-11 on my PC using the E11 emulator (which
includes most of the emulation for VT100 - and also allows for some portions
of the VT220 keyboard to be easily activated). In this environment, ^S/^Q
also works correctly, BUT I FIND IT MUCH TOO SLOW!!!!! When
that aspect is added to the (initially) awkward location of the "Ctrl" key, "Caps
Lock" key and lack of a NO/SCROLL key, I finally decided to change the
"Caps Lock" key into the "Ctrl" key AND change the "Ctrl" key into the
"NO/SCROLL" key. Then keyscripts under E11 also allows me to then use
the "Caps Lock" key in a double duty mode - if any one (or more) of the
"Shift/Ctrl/Alt" keys are depressed before the "Caps Lock" key is depressed,
then the "Caps Lock" function changes from "Ctrl" back to "Caps Lock".
The implementation of the NO/SCROLL key (using the PC keyboard "Ctrl"
key) is a bit unusual and takes getting used to, but is the best way I could find
to handle the situation. First, I implemented:
DEFINE KEYPRESS LCTRL = CHR$(19)
DEFINE KEYRELEASE LCTRL = CHR$(17)
Even though ^S/^Q are still available, under E11 the screen display is so rapid
that I can't seem to be fast enough between ^Q and ^S to allow only a small
number of lines to be displayed.

>I still do, sometimes at least. The output has gotten faster
>(and I've probably gotten slower). So it's a lot harder to
>control how many lines I let scroll than it was 20 years ago.
>Brian L. Stuart

On the other hand, under E11, the above two definitions seem much more
responsive. I find it is possible to "KEYRELEASE" followed by "KEYPRESS"
on the "LCTRL" key just about twice as fast as I can ever "^Q/^S" when I
am running RT-11 under E11. Note that with a standard VTxxx terminal,
this is never necessary since the serial nature of the interface limits the
speed of the display. When the "console" is the monitor on the PC, the
output display seems to be at least 100 times as fast.

One addition that I added to the use of the "LCTRL" as the "NO/SCROLL"
equivalent was:
DEFINE KEYPRESS LCTRL = CHR$(19) : NONREPEATING : NOREPEATS : NONDATA
DEFINE KEYRELEASE LCTRL = &
  IF NOT SHIFT THEN CHR$(17) : NONREPEATING : NOREPEATS : NONDATA : ENDIF
This allows the user to stop the "^Q" during the "KEYRELEASE" by first pressing
the "SHIFT" key, either with the right finger or (I find it somewhat more convenient)
using "left Peter Pointer" for the "LCTRL" key and "left Toby Tall" at the same time
for the "LSHIFT" key while "left Peter Pointer" is being released.

If anyone else likes this, please let me know. Perhaps we can get John Wilson
to make this a standard feature. I have included "S1.CMD" for those who want
the complete file.

Sincerely yours,

Jerome Fine

=========================================================
! DEFINITIONS for "CAPS LOCK" and "LCTRL"
! by Jerome Fine (C) Copyright 2001 - All Rights Reserved
! It is expected that this file will be made available by
! John Wilson at the Dbit site. There is no charge for this file.
!
! This file changes the distribution definitions for Ersatz-11
! (Copyright by John Wilson) of the CAPS LOCK and LCTRL keys.
! There are two reasons:
! (a) The standard PC keyboard differs from the emulated VT100
! keyboard in that the (ONLY) CTRL key is on the same row as
! the "ASDFGHJKL" keys. Although the VT100 CAPS LOCK key
! is also on the same row (between the CTRL key and the "A"
! key), the CAPS LOCK key is rarely used while the CTRL key
! is used far more often. Consequently, it is far more
! important to allow the CAPS LOCK key function to be
! replaced by the LCTRL function.
! (b) On the standard VT100 keyboard, the key at the very left-
! most side and bottom (except for the SPACE bar) of the
! keyboard is the NOSCROLL key. It is extremely convenient
! to be able to use a key which has the same function as
! the NOSCROLL key on the VT100 keyboard so as to maintain
! as much compatibility as possible.
! Note, however, that the definitions in this file make a very
! significant change in the action of the NOSCROLL key functionality
! which differs from that of the standard VT100 keyboard. Whereas
! for the VT100, depressing the NOSCROLL key TOGGLES the status,
! the definitions in this file require the user to hold down the
! NOSCROLL key (which is labelled as the LCTRL key) to enable the
! function of NOSCROLL to continue to be active. Releasing the
! NOSCROLL key deactivates the desired functionality and allows
! scrolling to continue. If this aspect is deemed to be too
! different, then a second file is available for which the desired
! functionality is identical. However, the user will probably find
! that the definitions in this file allow for a much faster response
! between activating and deactivating the scrolling and for this reason,
! the definitions in this file may be preferred.
!
! One very practical addition has been made to this version of the
! definitions. In some cases, the user may wish to keep scrolling
! off and still be able to release the LCTRL key. For this case, if
! the user first presses the SHIFT key, then the LCTRL key will not
! send the CTRL/Q = CHR$(17) character to the emulated PDP-11 which
! again activates scrolling. Instead, the user may release the LCTRL
! key until such time as scrolling is again desired. Assuming that
! no keys are already being held (all keys are off - released), then
! pressing LCTRL will send a second CTRL/S (which will have no effect).
! At this point, releasing the LCTRL will have the usual effect of
! sending a CTRL/Q = CHR$(17) and scrolling will again begin.
!
DEFINE KEYPRESS CAPSLOCK = &
 IF ALT OR CTRL OR SHIFT THEN &
  TOGGLE CAPS : NONREPEATING : NOREPEATS : NONDATA &
 ELSE &
  SET LCTRL : NONREPEATING : NOREPEATS : NONDATA &
 ENDIF
DEFINE KEYRELEASE CAPSLOCK = &
 IF LCTRL THEN CLEAR LCTRL : NONREPEATING : NOREPEATS : NONDATA : ENDIF
DEFINE KEYPRESS LCTRL = CHR$(19) : NONREPEATING : NOREPEATS : NONDATA
DEFINE KEYRELEASE LCTRL = &
 IF NOT SHIFT THEN CHR$(17) : NONREPEATING : NOREPEATS : NONDATA : ENDIF
==================================================================
Received on Sun Aug 12 2001 - 17:12:43 BST

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:33:32 BST