Please enable JavaScript to view this site.

A-Shell Development History

881.1.1

SET AUTOTPRINT was interfering with the operation of TAB(-10,x) and status line-related TAB commands.

881.1.2

(ATE) About box now appends the underlying ashw32 edit number to the ATE version number.

881.0.1

XCALL MIAMEX,129,OP,GUIFLAGS can now be used to query or set certain GUI-related flags which make it easier to for multi-environment developers to sort out which GUI-related functions are applicable to the current environment.

As with other MIAMEX get/set functions, set OP to 0 to get the current flags into the passed parameter, and to 1 to set the flags from the passed parameter. The flags are as follows:

ASHELL.BSI

Value

Description

AGF'LWG

1

Local Windows w/ GUI (e.g. PCTDVG)

AGF'LWN

2

Local Windows w/o GUI (e.g. PCTDV)

AGF'ATE

4

Running ATE on client

AGF'RWN

8

Remote windows (ATS)

AGF'TNT

16

Telnet

AGF'ASH

32

A-Shell

AGF'LOCWIN

3

Local Windows (AGF'LWN or AGF'LWG)

AGF'ANYWIN

11

Any windows platform ('LWN or 'LWG or 'RWN)

AGF'GUIEXT

5

GUI extensions avail (AGF'LWG or AGF'ATE)

 

Here are some example of using this information. All of them would start with retrieving the current flags as follows:

xcall MIAMEX,129,0,GUIFLAGS       ! retrieve GUI flags

 

Before using a TAB(-10,x) function, you should check for either AGF'LWG or AGF'ATE. Since these are combined in AGF'GUIEXT, we can simply check it as follows:

if (GUIFLAGS and AGF'GUIEXT) then ?TAB(-10,x);.....

 

If you wanted to display a file for the user, either using NOTEPAD (if applicable) or else EZTYP (if not), you might use the following logic:

if (GUIFLAGS and AGF'LOCWIN) then &

   XCALL HOSTEX,"NOTEPAD "+F$ &

else if (((GUIFLAGS and AGF'ATE)#0) and &

   ((GUIFLAGS and AGF'TNT)#0)) then &

   call XFER'TO'PC: &

   call LAUNCH'NOTEPAD'ON'CLIENT &

else &

   xcall EZTYP,F$

 

In the above example, if running Windows locally, we can just launch NOTEPAD using XCALL HOSTEX. Otherwise, if running ATE on the client over telnet, we could transfer the file to the PC and then launch NOTEPAD, both of which could be done via TAB(-10,x) commands. Otherwise, we could just use EZTYP on the server. (You might also want to test for other telnet emulators, such as ZTERM, which are capable of doing file transfers and launching commands on the client, but that exceeds the scope of this example.) Note that when testing multiple AND conditions, you need the extra set of parentheses and the #0 test as shown above to get the desired effect. Otherwise the confusion between the logical and arithmetic AND in BASIC will cause the test to fail.

If you merely wanted to test whether you were running under A-Shell Windows or A-Shell/UNIX (or some other platform, presumably AMOS), you could do this:

if (GUIFLAGS and AGF_ASH) then        ! running A-Shell

   if (GUIFLAGS and AGF'ANYWIN)       ! any Windows platform

      ? "A-Shell Windows"

   else

      ? "A-Shell UNIX"

   endif

else

   ? "Non A-Shell (AMOS?)"

endif

 

881.0.2

INFLD supports a new mechanism for encoding pseudo-function keys which works better in heterogeneous environments involving ATE or the Windows control implementation of INFLD. The new scheme also allows for an unlimited range of virtual function keys (whereas the previous scheme only really supported F1 thru F127.) The new encoding format is:

CHR(7) + CHR(250) + FNUM$ + "."

where FNUM$ is the string representation of the function key number (e.g. "1" for F1, "793" for F793). Since the number has a variable length, a terminator character is required. In the above example we use a period, but any non-numeric character will work.

As an example, if you want to set up an INFLD field so that when you click on it, it acts like a virtual F122 (i.e. returning EXITCODE -122), then you could set the HLPIDX string as follows:

HLPIDX = chr(127)+chr(7)+chr(250)+"122."

As of Build 883, this syntax as been changed to:

   HLPIDX = chr(126)+chr(7)+chr(250)+"122."

Note that this takes advantage of a new INFLD feature relating to HLPIDX (which see below in this document). The leading CHR(127) is needed to tell INFLD that what follows is a mouseclick string.

881.0.3

(WINDOWS) The F10 and HOME keys were not working properly in the edit-control implementation of INFLD.

881.0.4

(WINDOWS/ATE) A problem with the settings file (default.ash) format getting corrupted by a blank line, leading to anomolies in saving and restoring settings, as been cleared up. (You may need to re-save your settings though to clean up existing settings files.)

881.0.5

(UNIX/ATE) XCALL MIAMEX,119 (create buttons) is now supported on UNIX platforms when ATE is on the client. It does this by converting the MIAMEX,119 call to the equivalent TAB(-10,20) statement, and then using the keyboard interface to retrieve the status and button ID parameters back from ATE.