Decide on Environments

This is a fairly important first step, since if affects which features you can rely on and the extent to which you need to include conditional logic to support different runtime (or even compile-time) environments. At one extreme, you may want to maintain both compile and runtime compatibility across AMOS, UNIX (including dumb serial terminals), as well as Windows, taking advantage of GUI improvements only where appropriate. In this case you have to avoid using any language statements that won’t compile under AMOS, as well as including "IF TEXT THEN X ELSE Y" or similar conditional logic for runtime decisions on GUI versus text mode functions. You also have to avoid the use of SBX routines, unless you are willing to write AMOS equivalents in assembler.

At the opposite extreme, you may decide you only care about the Windows environment, in which case you can use every GUI enhancement available (and can skip the rest of this topic).

Somewhere in the middle are those that no longer care about AMOS compatibility, or who are willing to compile under A-Shell even run AMOS runtimes. If you don’t need AMOS compatibility even at runtime, then you should probably take advantage of SBX routines as much as possible to encapsulate the details of text vs. GUI methods. If you do need AMOS runtime compatibility, you can’t use SBX routines (unless you are willing to write them in AMOS assembler), but might use a scheme involving different sets of ++INCLUDE modules for different environments. If you don’t mind compiling under A-Shell and moving the RUN files to AMOS, then you can use TPRINT and DPRINT. The following table summarizes some of the compatibility relationships between features and environments.


Technique

AMOS Compile

AMOS Runtime

Dumb
CRT

Notes

SBX

Y

?

Y

Requires equivalent SBR written for AMOS for runtime compatibility

Tab(-10,x)

Y

?

N

AMOS requires ATE client and am62cg.tdv terminal driver.

TPRINT
DPRINT

N

Y

Y

Can be compiled as if PRINT under A-Shell for AMOS runtime compatibility; automatically treated as PRINT by A-Shell if not a graphic-enabled TDV

INFLD

Y

Y

 

Global TYPE |G can activate GUI mode; auto-reverts to text mode if no GUI avail.

AUI CONTROL
AUI IMAGE

Y

?

N

AMOS compatibility would require ATE client plus creation of AUI.SBR. No chance for dumb CRT; better to use conditional logic for text vs. GUI

AUI MENU

Y

?

N

<same as for AUI CONTROL>

XTREE

Y

?

N

AMOS requires ATE client, am62cg.tdv driver, XTREE.SBR (which supports a limited subset of XTREE functionality). For very simple trees, you can use INMEMO instead.

AUI EN­VIROMENT

Y

?

Y

Use other SBR (such as GETJTB) to determine AMOS environment

AUI CONTROL

Y

?

N

AMOS requires ATE client, am62cg.tdv driver; use XCALL MIAMEX,119 (MX_CONTROL) instead of AUI_CONTROL.

AUI IMAGE

Y

Y

N

AMOS requires ATE client, am62cg.tdv driver; use XCALL MIAMEX,119 (MX_CONTROL) instead of AUI_CONTROL.

MOUSE

 

 

 

See the following section on "Using the Mouse."