# ASHINC Include Files > [HTML Version](ashincincludefiles.htm) 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\]](https://bitbucket.org/microsabio/soslib/src/master/907016/). 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\_BROWSEFOLDER[xs](keyword-types.htm.md) and MX\_GETSHELLPATH[xs](keyword-types.htm.md)) | | evtmsg.def | Symbols used with EVTMSG[xs](keyword-types.htm.md) | | gtlang.map | Mapped structure used by GTLANG[xs](keyword-types.htm.md) (get language definition) | | hook.def | Symbols used by the file hook mechanism (see MX\_FILEHOOK[xs](keyword-types.htm.md)) | | http.def | Symbols used by HTTP[xs](keyword-types.htm.md) | | 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[xs](keyword-types.htm.md) | | msboxx.def | Symbols related to MSBOXX[xs](keyword-types.htm.md) | | regex.def | Symbols related to regular expressions | | sql.def | Symbols related to SQL[xs](keyword-types.htm.md) | | trmchr.map | Mapped structure used by TRMCHR[xs](keyword-types.htm.md) (terminal characteristics) | | xcall.bsi | Startup code useful in writing custom SBX routines | | xtext.def | Symbols related to XTEXT[xs](keyword-types.htm.md) | | xtext.sdf | Structure definitions for XTEXT[xs](keyword-types.htm.md) parameters | | xtree.def | Symbols related to XTREE[xs](keyword-types.htm.md) | | xtree.map | Mapped structures compatible with XTREE[xs](keyword-types.htm.md) | | xtree.sdf | Structure definitions for XTREE[xs](keyword-types.htm.md) parameters |