# ASB Keywords
> [HTML Version](asbkeywords.htm)
Notes:
1. The "Switches" column shows the compiler switch(es) required to enable this feature.
2. When more than one switch is listed, "or" is implied—i.e., just one of the switches is required.
3. Some keywords ("Note 3" references below) behave differently depending on the compiler switch specified; see topic link for details.
4. Although not listed here, both [System-Defined Functions](system-defined-functions.htm.md) and [Dot Variables](dotvariables.htm.md) are also effectively keywords in that they cannot be used as custom variable names.
| **Keyword** | **Switches** | **Category** | **Description** |
|------|------|------|------|
| [ALLOCATE](allocate_random.htm.md) | | [File I/O Statement](fileiostatements.htm.md) | Allocate a random file. |
| [AMOS](amos_asb.htm.md) | X:1 | Control Statement | Execute AMOS commands as subroutines. |
| AND | | [Operator](operators.htm.md) | Logical AND. |
| [AUTO\_EXTERN](auto_extern.htm.md) | X:2 | | Enables or disables the visibility of variables defined globally. |
| [.BINDSTRUCT](bindstruct.htm.md) | X:2 | Dyn Struct Statement | Binds the specified DYNSTRUCT variable to the structure definition. |
| BYTE | | | BYTE(x) reads memory-mapped ports. |
| [CALL ](call.htm.md) | | Control Statement | Unstructured subroutine call. |
| CASE | X:1, RC | Control Struc Stmt | Label option within [SWITCH](switch_ctrl_struct.htm.md). |
| CHAIN | | | Provides the ability to pass command line arguments. |
| .[CLEAR](clear_asb.htm.md) | X:2 | Array Statement | Removes all the elements of the array without destroying the array itself. |
| [CLOSE](genericfiles.htm.md) | | [File I/O Statement](fileiostatements.htm.md) | Close file. |
| [CMDLIN](cmdlinsystemvariable.htm.md) | X:1 | | Retrieve command line. |
| DATA | | General Statement | List of data elements with program. |
| [DATE](otherfunctions.htm.md) | | [System Variable](systemvariables.htm.md) | Returns system date. |
| [DEBUG](debug-statements.htm.md) | X:2 | | |
| [DEFALIAS](defalias.htm.md) | | Compiler Directive | Allows aliases to be defined for the names of functions and procedures. |
| DEFAULT | X:1, RC | | Default label option within [SWITCH](switch_ctrl_struct.htm.md). |
| [DEFINE](define_compiler.htm.md) | X:1, RC | Compiler Directive | Define a symbolic constant. |
| [DEFSTRUCT](defstruct.htm.md) | X:2 | Compiler Directive | Define a structure. |
| [DEFTYPE](deftype.htm.md) | X:2 | Compiler Directive | Defines an alias for a data type. |
| DIM | | | Deprecated; use [DIMX](dynamic_arrays_(dimx).htm.md) instead. Dimension an array at runtime. |
| [DIMX](dynamic_arrays_(dimx).htm.md) | X:2 | | Enhanced dynamic array allocation. |
| [DIVIDE’BY’0](divideby0stmt.htm.md) | X:1 | | Treat division by zero as zero rather than error. |
| [DO](dowhileuntil.htm.md) | X:1, RC | Ctrl Struct Statement | Repeat loop while (or until) a condition is (or becomes) true. |
| [DPRINT](proportionalfonttextobjects.htm.md) | X:2 | | Like PRINT but creates a static text control. |
| ECHO | X:1 | | Set terminal echo mode; same as [Xcall ECHO](echo_noechosbr.htm.md). |
| [++ELIF](conditionalcompilation.htm.md) | | | Conditionals based on evaluating a constant expression. |
| [ELSE](if_ctrl_struct.htm.md) | | Ctrl Struct Statement | Final alternative clause within an IF statement. |
| [ELSEIF](elseifclauses.htm.md) | X:2, RC | Ctrl Struct Statement | Intermediate alternative clauses an IF statement. |
| END | | Control Statement | Terminate execution of program. |
| ENDFUNCTION | X:2 | | Marks end of a function. |
| [ENDIF](if_endif_ctrl_struct.htm.md) | | Ctrl Struct Statement | Terminates IF...ENDIF blocks. |
| ENDPROCEDURE | X:2 | | Marks end of a procedure. |
| [ENDSTRUCT](defstruct.htm.md) | X:2 | | End of a DEFSTRUCT ... ENDSTRUCT block. |
| [ENDSWITCH](switch_ctrl_struct.htm.md) | X:1, RC | | End of SWITCH statement. |
| [EQV](booleanbitwisearithmetic.htm.md) | | [Operator](operators.htm.md) | Logical equivalence. |
| [++ERROR](error_compiler.htm.md) | X:2 | | Force error within compilation. |
| [\$EXIT](exit_label_$exit.htm.md) | X:2 | | Special exit label within function / procedure. |
| [EXIT](exit.htm.md) | X:1 | Control Statement | Exit from inner-most loop or block (DO, FOR, SWITCH). |
| [EXITFUNCTION](exit.htm.md) | X:2 | Control Statement | Exit the current function. |
| [EXITPROCEDURE](exit.htm.md) | X:2 | Control Statement | Exit the current procedure. |
| [EXITPROGRAM](exit.htm.md) | X:2 | Control Statement | Exit the current function or procedure to label \$EXITPROGRAM |
| \++[EXTERN](extern_statements.htm.md) | X:2 | | Exposes individual global variables. |
| [FILEBASE](filebase_random.htm.md) | | [File I/O Statement](fileiostatements.htm.md) | Set numeric offset for first file record. |
| [FOR](for_next_ctrl_struct.htm.md) | Note 3 | Ctrl Struct Statement | |
| [FOREACH](foreach.htm.md) | X:2 | Ctrl Struct Statement | Used to iterate through [Ordered Maps](orderedmaps.htm.md). |
| .FSTAT | X:2 | | Returns file status for the last ISAM-A operation on the specified channel. |
| FUNCTION | X:2 | | Begin definition of function. |
| GOSUB | | Control Statement | Same as CALL. |
| [GOTO](goto.htm.md) | | Control Statement | Jump to specified line number, label or variable. |
| GRIDMAP | X:2 | [GRIDMAP](gridmaps.htm.md) | A variation of ordered map with two keys and one value. |
| IF | Note 3 | Ctrl Struct Statement | Traditional form of [IF](if_ctrl_struct.htm.md) statement, and block-structured form of [IF … ENDIF](if_endif_ctrl_struct.htm.md). |
| [++IF](conditionalcompilation.htm.md) | | Ctrl Struct Statement | |
| [++INCLUDE](include.htm.md) | Note 3 | | Include specified file at compile time. |
| [INPUT](input_seq.htm.md) | | [File I/O Statement](fileiostatements.htm.md) | Input field(s) from keyboard or file. |
| INDEXED | | [File I/O Statement](fileiostatements.htm.md) | File [OPEN for ISAM](openforisam.htm.md) or for [ISAM-A](openforisam-a.htm.md) mode. |
| INDEXED'EXCLUSIVE | | [File I/O Statement](fileiostatements.htm.md) | File [OPEN for ISAM](openforisam.htm.md) or for [ISAM-A](openforisam-a.htm.md) mode. |
| IO | | | IO(X) pseudo reads from memory-mapped I/O port. |
| ISAM'INDEXED | | [File I/O Statement](fileiostatements.htm.md) | File [OPEN for ISAM](openforisam.htm.md) mode. |
| ISAM'INDEXED'EXCLUSIVE | | [File I/O Statement](fileiostatements.htm.md) | File [OPEN for ISAM](openforisam.htm.md) mode. |
| ISAMP'INDEXED | | [File I/O Statement](fileiostatements.htm.md) | File [OPEN for ISAM-A](openforisam-a.htm.md) mode. |
| ISAMP'INDEXED'EXCLUSIVE | | [File I/O Statement](fileiostatements.htm.md) | File [OPEN for ISAM-A](openforisam-a.htm.md) mode. |
| [.KEY](specialordmapfunctions.htm.md) | X:2 | | May be appended to an ordered map iterator, i.e. \$\$iKEY, to reference the key associated with that interator. \$\$i.KEY is equivalent to .KEY(\$\$i). |
| [KILL](genericfiles.htm.md) | | [File I/O Statement](fileiostatements.htm.md) | Delete a file. |
| LET | | | Assignment statement. |
| [LOCK](lock-for-isam.htm.md) | | | |
| [LOOKUP](filefunctions.htm.md) | | | Return size of file in blocks. |
| [LOOP](dowhileuntil.htm.md) | X:1, RC | | |
| [MAP](variablescope.htm.md) | | | Variable declaration. |
| MAX | | [Operator](operators.htm.md) | Maximum of two operands. |
| [++MESSAGE](message_compiler.htm.md) | X:2 | | Output message during compilation. Also see [++ERROR](error_compiler.htm.md). |
| MIN | | [Operator](operators.htm.md) | Minimum of two operands. |
| [MLIST](multi-level_list_mlist.htm.md) | X:2 | [Multi-level List](multi-level_list_mlist.htm.md) | A bidirectional linked list. |
| MOD | | [Operator](operators.htm.md) | Modulo. |
| [NO’DIVIDE’BY’0](miscellaneous-statements.htm.md) | X:1 | | Force divide by zero to generate error 10 (default). |
| NOECHO | X:1 | | Set terminal noecho mode. Same as [Xcall NOECHO](echo_noechosbr.htm.md). |
| NOT | | [Operator](operators.htm.md) | Logical NOT. |
| ON - GOSUB | | | Call one of list of subroutines, based on value. |
| ON - GOTO | | | Goto one of list of labels, based on value. |
| ON ERROR GOTO | | Control Statement | Specify error handling routine. |
| OPEN | | [File I/O Statement](fileiostatements.htm.md) | Open file. |
| OPEN for APPEND | X:1 | | Enhancement to OPEN #CH, FSPEC, APPEND. |
| OR | | [Operator](operators.htm.md) | Logical OR. |
| [ORDMAP](orderedmaps.htm.md) | X:2 | | An associative array that maps keys to values |
| [ORDMAPM](ordered_multi-map.htm.md) | X:2 | | Same as ORDMAP but supports multiple keys of the same value. |
| POP | | | Deprecated. Pops the current GOSUB return address from the stack. |
| .POPBACK | X:2 | [Multi-level List](multi-level_list_mlist.htm.md) | Remove last element from an MLIST. |
| .POPFRONT | X:2 | [Multi-level List](multi-level_list_mlist.htm.md) | Removes first element from an MLIST. |
| [++PRAGMAs](pragmas.htm.md) | X:1 | | [Compiler Directives](readforisam-a.htm.md). |
| PRINT | | [File I/O Statement](fileiostatements.htm.md) | Output variables and expressions to screen or file. |
| PROCEDURE | X:2 | | Start definition of a procedure. |
| [PROGRAM](program_statement.htm.md) | | | Program header declaration. |
| RANDOMIZE | | Numeric Function | Initialize [Random Number Generator](randomnumbergenerators.htm.md) with a randomly selected seed. |
| [READ](read.htm.md) | | [File I/O Statement](fileiostatements.htm.md)
Misc Statement | Read record from file or from embedded [DATA](datareadrestore.htm.md) statement. |
| [READL](read.htm.md) | | [File I/O Statement](fileiostatements.htm.md) | Read record and lock. See file access statements |
| [READ'ONLY](read.htm.md) | | [File I/O Statement](fileiostatements.htm.md) | File [OPEN](open_random.htm.md) mode modifier. |
| [READ'READ'ONLY](read.htm.md) | X:2 | [File I/O Statement](fileiostatements.htm.md) | Read record, explicitly without locking. |
| [REDIMX](redimx.htm.md) | X:2 | Array Statement | Re-dimensions an array originally created with [Dynamic Arrays (DIMX)](dynamic_arrays_(dimx).htm.md). |
| [REPEAT](repeat_ctrl_stmt.htm.md) | X:1, RC | Control Statement | Jump to top of loop structure to begin next iteration. |
| RESTORE | | General Statement | Reset DATA access pointer to beginning. |
| [RESUME](resume_ctrl_stmt.htm.md) | | Control Statement | Resume execution after trapping an error. |
| RESUME WITH ERROR | X:2 | Control Modifier | Modifier for RESUME within an error trap in a function |
| RETURN | Note 3 | Control Statement | Return from unstructured subroutine. Also return value from [XFUNC()](xfunc().htm.md). |
| SCALE | | | Declare scaled arithmetic. |
| [SET'RECNO](set-recno.htm.md) | X:2 | [File I/O Statement](fileiostatements.htm.md) | Sets the record number of a file. |
| [SIGNIFICANCE](significance.htm.md) | | General Statement | Set output/format significance of floating point values. |
| [SLEEP](sleepstmt.htm.md) | X:1 | General Statement | Sleep for specified seconds. Same as Xcall SLEEP. |
| .SORT | X:2 | [Multi-level List](multi-level_list_mlist.htm.md) | Sort elements in MLIST by value. |
| SPAN | | [File I/O Statement](fileiostatements.htm.md) | File [OPEN](open_random.htm.md) mode modifier. |
| .SPLICE | X:2 | [Multi-level List](multi-level_list_mlist.htm.md) | Splice elements from one MLIST to another. |
| [STEP ](for_next_ctrl_struct.htm.md) | | | Set loop counter increment. |
| [STOP](stopstmt.htm.md) | | Misc Statement | Program stop, wait for CR to continue. |
| [STRSIZ](strsiz.htm.md) | | Compiler Directive | Sets the default length of string variables. |
| .SUBLIST | X:2 | [Multi-level List](multi-level_list_mlist.htm.md) | Specify sublist of element. |
| [SWITCH](switch_ctrl_struct.htm.md) | X:1, RC | Ctrl Struct Statement | Conditional execution based on value of an expression. |
| [TAB](tabfunctions.htm.md) | | | Convert high-level display commands into ESCAPE sequences for terminal. |
| [THEN](if_ctrl_struct.htm.md) | | Ctrl Struct Statement | Separates IF condition from statement. |
| TIME | X:2 | [System Function](otherfunctions.htm.md) | Returns system time in number of seconds since midnight. |
| [TO](for_next_ctrl_struct.htm.md) | | Ctrl Struct Statement | |
| TPRINT | X:2 | | See [Expressions](expressions.htm.md). |
| [TRACE](trace_statements.htm.md) | X:2 | | |
| [UNDEF](undef.htm.md) | | Compiler Directive | Cancels (UNDEFines) a symbol created by a prior DEF... directive. |
| [UNLOKR](unlokr.htm.md) | X:2 | [File I/O Statement](fileiostatements.htm.md) | Release lock on file or record. |
| [UNTIL](dowhileuntil.htm.md) | X:1, RC | Ctrl Struct Statement | Repeat loop while (or until) a condition is (or becomes) true. |
| USING | | [Operator](operators.htm.md) | Formatting by template. |
| [VXCALL](runtimeresolutionofnames.htm.md) | X:2 | | Same as XCALL but uses a string expression for the subroutine name. |
| WEND | /D | | Same as ENDIF. |
| WAIT'FILE | | [File I/O Statement](fileiostatements.htm.md) | File [OPEN](open_random.htm.md) mode modifier. |
| WAIT'RECORD | | [File I/O Statement](fileiostatements.htm.md) | File [OPEN](open_random.htm.md) mode modifier. |
| WHEN | /D | | Same as IF. |
| [WHILE](dowhileuntil.htm.md) | X:1, RC | Ctrl Struct Statement | Repeat loop while (or until) a condition is (or becomes) true. |
| [WITH\_ERROR](errortrappinginfunctions.htm.md) | X:2 | Modifier | Modifier for [RESUME](resume_ctrl_stmt.htm.md) within an error trap in a function. |
| WORD | | | WORD(X) reads memory-mapped ports. |
| [WRITE](write.htm.md) | | [File I/O Statement](fileiostatements.htm.md) | Write to random file. |
| [WRITECD](writecd.htm.md) | X:2 | [File I/O Statement](fileiostatements.htm.md) | Output comma delimited values. |
| [WRITEL](write.htm.md) | X:1 | [File I/O Statement](fileiostatements.htm.md) | Write record not previously locked. |
| [WRITELN](write.htm.md) | X:1 | [File I/O Statement](fileiostatements.htm.md) | Same as WRITEL but leave record locked. |
| [WRITEN](write.htm.md) | X:1 | [File I/O Statement](fileiostatements.htm.md) | Same as WRITE but leave record locked. |
| WRITETD | X:2 | | Deprecated; see [WRITECD](writecd.htm.md). |
| [XCALL](callingexternalroutines.htm.md) | | | Call subroutine. |
| [XGETARG(S)](xgetarg_xgetargs.htm.md) | X:2 | General Statement | Retrieve subroutine parameters. |
| [XOPEN](xopenforisam-a.htm.md) | X:2 | [File I/O Statement](fileiostatements.htm.md) | Variation on OPEN statement fo ISAM-A. |
| XOR | | [Operator](operators.htm.md) | Logical XOR; exclusive OR. |
| [XPUTARG](xgetarg_xgetargs.htm.md) | X:2 | General Statement | Return subroutine parameters. |
| [XREAD, XWRITE, XUNLOKR](xreadxwritexunlokr.htm.md) | X:2 | [File I/O Statement](fileiostatements.htm.md) | Allow record access via explicit record numbers. |