The ASHINC: ersatz directory (normally DSK0:[907,16]) contains the ++include files supplied with A-Shell. Although these files are not mandatory for programming, they help minimize the confusion and potential for error inherent in the complicated data structures and thousands of opcodes, options and flags which are typically employed in XCALL and function parameters. By referencing the relevant ++include files in your programs, you gain instant access to standardized MAPs, structures, and symbols that make your programs easier to read, write, and share with others, as well as maximizing the utility of our documentation, which is heavily indexed and/or searchable on these same symbols and map/structure names.
The most recent versions of the ASHINC: files can—and regularly should—be obtained from the 907016 folder of the SOSLIB.
The ASHINC: directory contains the following kinds of files, identified by their extension:
Extension |
Description |
DEF |
Symbol definitions (e.g. define MBF_STATIC = &h00040000) |
MAP |
MAP statements |
SDF |
Structure definitions |
BSI |
Actual code (possibly including MAP statements, function/procedure definitions, etc.) |
Other than a small version signature (about 40 bytes), DEF and SDF files do not increase the size of the resulting RUN programs. They merely expand the "vocabulary" of the compiler. They do, however, require the COMPIL /X:2 switch. When there is both an SDF and MAP file, the SDF is generally preferable, as it allows multiple copies of the structures to be declared, using your own prefixes. The MAP files represent the older approach used before defined structures were introduced.
Here is an overview of the most commonly used files. New ones are added periodically, typically with names matching the XCALL or subsystem to which they refer.
Filename |
Description |
ashell.bsi |
Code commonly used in LIT programs (e.g. command line processing) |
ashell.def |
A core set of symbols used in nearly every A-Shell program, especially those containing MIAMEX calls |
ashell.sdf |
Structure definitions associated with common MIAMEX calls |
csidl.def |
CSIDL_xxxx symbol definitions (used by MX_BROWSEFOLDER and MX_GETSHELLPATH) |
evtmsg.def |
Symbols used with XCALL EVTMSG |
gtlang.map |
Mapped structure used by XCALL GTLANG (get language definition) |
hook.def |
Symbols used by the file hook mechanism (see MX_FILEHOOK) |
http.def |
Symbols used by XCALL HTTP |
isam.def |
Symbols related to ISAM |
jobtbl.def |
Symbols related to fields in the job table |
jobtbl.map |
Mapped structure representing JOBTBL.SYS records - see MX_READJCB |
msboxx.def |
Symbols related to XCALL MSBOXX |
regex.def |
Symbols related to regular expressions |
sql.def |
Symbols related to XCALL SQL |
trmchr.map |
Mapped structure used by XCALL TRMCHR (terminal characteristics) |
xcall.bsi |
Startup code useful in writing custom SBX routines |
xtext.def |
Symbols related to XCALL XTEXT |
xtext.sdf |
Structure definitions for XCALL XTEXT parameters |
xtree.def |
Symbols related to XCALL XTREE |
xtree.map |
Mapped structures compatible with XCALL XTREE |
xtree.sdf |
Structure definitions for XCALL XTREE parameters |