Please enable JavaScript to view this site.

A-Shell Reference

Navigation: Command Files

DO File Statements

Scroll Prev Top Next More

Reviewed and reorganized June 2020

System Commands in DO Files

Several system commands are of use mainly or only in the context a command or DO file. Those system commands are:

Command

Description

ECHO

Echoes <text> to screen.

ELSE

Conditional flow in command file.

ENDIF

IF

EXIT

Exit command or DO file.

IF / ELSE / ENDIF Statements

These statements are similar to their ASB counterparts. The following functions and expressions are supported by IF, with the same syntax as for ASB:

ABS

CHR

FACT

LEFT

MID

SPACE

UCS

ACS

COS

FIX

LEN

RIGHT

SQR

VAL

ASC

DATN

INSTR

LOG

RND

STR

 

ASN

DEVICE

INT

LOG10

SGN

TAN

 

ATN

EXP

LCS

LOOKUP

SIN

TIME

 

 

The following operators are supported:

Relational Operators

 

Mathematical Operators

Symbol

Meaning

 

Symbol

Meaning

=

Equal

 

+

Addition

<>

Not equal

 

-

Subtraction

#

Not equal

 

*

Multiplication

>

Greater than

 

/

Division

>=

Greater than or equal

 

^

Raise to power

<

Less than

 

**

Raise to power

<=

Less than or equal

 

 

 

 

Comments

Note that unlike in ASB where many of the above functions could optionally have a $ suffix (e.g. LEFT or LEFT$), in DO files the $ variation is not acceptable.

IF statements frequently operate on the Special $ Variables, which see for further comments and examples.

GOTO and EXIT Statements

GOTO is similar to the ASB GOTO statement, except that it can only jump forward in the command file. The syntax of a label consists of a semicolon followed by the label name. See the label ";DONE" in the sample MAIN.DO file.

EXIT causes an immediate exit to the A-Shell command prompt, even if you are currently nested multiple levels deep in a command file.

LOOKUP Statement

The most useful of the above functions, LOOKUP, works slightly differently than the BASICplus equivalent. Instead of returning the file size, it always returns –1 if the file exists, else 0. The syntax is also different:

LOOKUP <fspec>/Optional message if not found

If the specified file is not found, the optional message (following the /, which is mandatory) is displayed and execution continues with the following line. Otherwise, the following line is skipped. Typically this is used with GOTO to create a conditional branch, as in the following:

LOOKUP $0/$0 does not exist!

GOTO DONE                           ; (EXIT might also be appropriate here)

VUE $0

;DONE