Please enable JavaScript to view this site.

A-Shell Reference

Navigation: Subroutines > Introduction to Subroutines

Additional Subroutine Topics

Scroll Prev Top Next More

Subroutine Name Length

Subroutine names may be up to 10 characters long. This is accomplished by automatically converting subroutine statements with names between seven and ten characters long to VXCALL statements. This feature requires /X:2 and is not supported by /RC.

Note the potential for a backwards compatibility problem if you start using longer names in your subroutine statements and then try to RUN the resulting RUN files on an earlier version of A-Shell, which will only be looking at the first 6 characters. Presumably that would cause an SBX not found error, unless there happened to be an existing routine that matched the first six characters. For this reason, when using seven to ten character SBX names, you should avoid picking names for which an existing SBX would match the first six characters.

Creating Subroutines

A-Shell also supports external, dynamically-loaded subroutines which you can write in BASIC and which are called in the exact same way from within your program. These routines have an extension of SBX, so named to avoid confusion with the SBR extension used under AMOS. See SBX Subroutines for information on writing your own routines.

Configurable Subroutines

Some of the routines have been modified by developers for their own purposes. In order to make those changes and improvements available to all A-Shell users, many of the more common and useful modifications have been implemented as configurable patches. These are specified using the SBR directive in the system configuration file. The subroutines which have configurable functionality are:

INFLD

MESAG

COMMON

BASORT

XLOCK

ODTIM

SERCH

LSTLIN

JOBNAM

PRINT

TRIM

PRTCHK

XPPN

ASHELL

 

 

 

 

 

The subroutines GETJTB, SETJTB and PRTCHK are supplied for use under AMOS in the AMOS subdirectory. It is hoped that this will ease the writing of portable code. In particular, use of GETJTB can eliminate the need for many of the GETxxx routines to get information about your job, terminal, ppn, etc.