Using the Mouse

The numbers in the following table refer to the notes following the table.

Technique

AShell/ Windows

ATE > AShell

ZTERM > Ashell

ATE > AMOS

ZTERM > AMOS

SmartMouse / AutoMouse

1

1

1

1

1

Hot Spots: Tab(-1,162)

2

3

5

4

5

Mouse Cursor Reporting Tab(-1,158)

6

7

8

7

9

Mouse Cursor Shapes: Tab(-1,160),

AG_SETCURSOR; see note 14

10

11

13

12

 13

Mouse Cursor Positioning

15

 

 

 

 

Clipboard

16,18

16,17,18

16,17

16,17

16,17

AUI

19

20

 

21

 

 

1.  SmartMouse (ZTERM) and AutoMouse (ATE/A-Shell) are similar, although the parsing logic may differ slightly between them. In both cases, they attempt to isolate the "token", strip off obvious formatting characters (like a period following a number), and transmit to the host. There is essentially nothing to configure and no need to modify your programs to support it (except perhaps to format your menu text to be compatible with the concept). Note that because they work entirely on the client side, host differences have no effect.

2.  Hot Spots originated with the AM72 terminal and InSight. They have been supported in A-Shell/Windows since 4.8. The application uses TAB(-1,162) to define up to 75 rectangular regions at a time, each which can associate a string of up to 16 characters with a single left-click on the area. Unlike SmartMouse / AutoMouse, or Mouse Cursor Reporting, it requires a fair amount of setup in order to define the hot spots for each screen. But, once defined, they are easy to support (since you can define them to send any arbitrary strings you want, include those that generate exitcode values in INFLD). See the sample program AMOUSE in EXLIB:[908,36] for an example.

3.  Hot Spots were not implemented in the ATE environment until 5.1.1192.0 (both on the server and client side). On the server side, the main requirement is simply that the TDV support the TCRT codes 159, 160 and 162. (Support was added to the AM75* and AM62C* drivers in 5.1.1192.0.) You can hard-code the ESC sequences if using an older version of A-Shell or a TDV that doesn't support the codes. You can use XCALL WINFLG to test for support on the server side.

4.  The Hot Spot TCRT commands were only implemented under AMOS in am72.tdv (which virtually no one uses!) and in the am62cg.tdv distributed with ATE as of 5.1.1192. However, the ESC sequences can easily be added to any driver.

5.  ZTERM does not support Hot Spots.

6.  Mouse Cursor Reporting is a protocol whereby the client transmits an application-defined leadin followed by a standard byte sequence identifying the cursor position whenever the mouse is clicked. This is approximately equivalent to defining a separate Hot Spot for every row/col position on the screen, except that the click sequence has to be decoded. So it's easier to set up, but harder to support in your application once activated. Both A-Shell/Windows and ZTERM have supported it for many years. But in the case of ZTERM, you need a terminal driver on the server side that supports TAB(-1,158) and TAB(-1,159) commands; see notes 8 and 9. See the program MOUSEC in EXLIB:[908,36] for an example.

7.  Mouse Cursor Reporting didn't start working in ATE until 5.1.1192.0

8.  Mouse Cursor Reporting (TCRT 158 and 159) were added to most of the A-Shell server-side terminal drivers in 5.0.

9.  (AMOS support for Mouse Cursor Reporting) – The only drivers known to support this feature on the AMOS side are zterm*.tdv, am62cg.tdv and am72.tdv. (Not sure about AlphaLAN drivers.) However, adding support is easy (only two ESC sequences are required, and you can bypass the driver and just send the ESC sequences directly to the client if necessary.)

10.  Mouse cursor shapes – TAB(-1,160) - have been supported in A-Shell/Windows since at least 4.8.

11.  ATE has supported mouse cursor shapes since 5.0, but it required that the TDV on the server side support the TAB(-1,160), which was not always the case. As of 5.1.1192.0 it should be supported in all A-Shell server-side terminal drivers. Also see note 15.

12.  No standard AMOS TDVs support TAB(-1,160), except am72.tdv, and the ATE-supplied am62cg.tdv

13.  ZTERM does not support mouse cursor shapes.

14.  A-Shell and ATE support an alternate TAB protocol, AG_SETCURSOR for changing the mouse cursor shape (which works with any version of a " G" driver, i.e. AM62CG, AM75G etc. under either AMOS or A-Shell servers.).

15.  A-Shell/Windows supports a primitive mechanism to position the cursor by clicking on an area of the screen. This only makes sense in an application that can move the cursor via arrow key commands (like VUE). Scrolling with the mouse wheel is similarly supported (translated into up/down arrow keys).

16.  A-Shell/Windows, ATE and ZTERM support the ability to mark a rectangular section of the screen and paste it into the clipboard. The also both support pasting text from the clipboard (although they have no control over how the application on the receiving end will handle it.)

17.  Both ATE and ZTERM support the ZTERM ESC sequence to paste clipboard text.

18.  A-Shell (both standalone Windows and server when the client is ATE) support the MX_CLIPBOARD function.

19.  The AUI (A-Shell User Interface) subsystem was added to A-Shell in 5.0, although there are on-going enhancements.

20.  Most AUI functions are supported in the ATE environment also, although there may be some limitations – see the documentation for the particular routines of interest.

21.  A limited subset of the AUI capabilities is available under AMOS when accessed via ATE. You must install the MIAMEX.SBR, XTREE.SBR, IMAGE.SBR subroutines and am62cg.tdv on the server (and use the AM62CG emulation). For INFLD GUI features, you need INFLD.SBR 7.0 (latest edit is 387). (Only a subset of GUI features are supported, but programs should be mostly compatible across platforms and between INFLD/text and INFLD/GUI implementations.