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 SOSLIB:[907,016].
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 ( 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_BROWSEFOLDERxs and MX_GETSHELLPATHxs) |
evtmsg.def |
Symbols used with EVTMSGxs |
gtlang.map |
Mapped structure used by GTLANGxs (get language definition) |
hook.def |
Symbols used by the file hook mechanism (see MX_FILEHOOKxs) |
http.def |
Symbols used by HTTPxs |
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_READJCBxs |
msboxx.def |
Symbols related to MSBOXXxs |
regex.def |
Symbols related to regular expressions |
sql.def |
Symbols related to SQLxs |
trmchr.map |
Mapped structure used by TRMCHRxs (terminal characteristics) |
xcall.bsi |
Startup code useful in writing custom SBX routines |
xtext.def |
Symbols related to XTEXTxs |
xtext.sdf |
Structure definitions for XTEXTxs parameters |
xtree.def |
Symbols related to XTREExs |
xtree.map |
Mapped structures compatible with XTREExs |
xtree.sdf |
Structure definitions for XTREExs parameters |