# Limits and Capacities > [HTML Version](limitsandcapacities.htm) **Files and Related** For details on ISAM-A files, see ISAM-A [Specifications \& Features](specificationsfeatures.htm.md). | | | | |------|------|------| | **Item** | **Size / limit / capacity / description** | **Updated in A-Shell **
**build...; old value** | | Files | none; see ISMA-A [File Size Limits](file_size_limits.htm.md). | 948 of Dec 05; 2GB | | Filenames | 72+8 (72 character filename plus 8 character extension). Allowable characters are A-Z, 0-9, dollar sign ( \$ ), hyphen ( - ) and underscore ( \_ ). | 1662 of June 2019; 10+3 | | Expanded DO file | ~122K | 864 of Feb 04; 62K | | Random file record size | No limit. Note, however, that this applies to READ and WRITE operations; there is a 2048 byte limit for SERCH. | 1246 of Apr 12; 64K | | EFS limit of sequential files open | 512 (or the FILES specification in miame.ini, whichever is less). | 1244 of Feb 11; 30 | | Range of file channels | 0 to 2^31 -1 | | **Subroutines** | | | | |------|------|------| | **Item** | **Size / limit / capacity / description** | **Updated in A-Shell **
**build...; old value** | | Number of parameters than can be passed to a subroutine, function or procedure | 1024 | 6.5.1628 of Feb 2018; 128 | | Size of subroutine name | Six characters for internal SBR names, ten characters for SBX names. | | | Size of a parameter passed in or out of a subroutine | 2\*\*24-1 (16,777,215) bytes | | | Number of subroutines on disk or called in a single program | No limit | | | Number of modules that can be loaded into user memory | 96 (per job). Subroutines are modules, but unless manually loaded (with LOAD.LIT) they will be auto-loaded, cached, and auto-updated if the SBX on disk gets updated. Auto-loaded modules will be freed to make room for new ones as needed. | 854 of Nov 03; 32 | | AUI: number of controls | No limit. The control table expands as needed. | 1166.6.1 of 16 Nov 09; 600 | | AUI: number of menu items | No limit. The menu table expands as needed. | 1166.6.1 of 16 Nov 09; 250 | | AUI\_MENU: length of individual menu item command line | 200 | | | AUI\_MENU: length of individual menu item description | 64 | 1159 of Sep 09; 32 | | BASORT: max record size | 6K | 7.0.1778 of Sep 25; 4K | | INFLD: length of entry (multi-line field) | No limit | 1159 of Sep 09; 16K | | INFLD: length of multi-line edit box (|M) | 4K | 6.5.1671 of Nov 19; 1600 | | INFLD: SETDEF match length | 300 | 1111 of May 08; 50 | | INFLD: tooltip characters | 1023 | 5.1.1175, 300 | | MX\_CLIPBOARD: buffer size | No limit | 1194 of Nov 10; 3K | | MX\_GETOFD: _fname_ parameter length | 256 | 1222 of Jul 11; 80 | | MX\_FINDFIRST, MX\_FINDNEXT, MX\_FINDEND | 20: number of directories (or sub-directory levels) open via MX\_FINDFIRST for scanning with MX\_FINDNEXT without closing via MX\_FINDEND | | | MX\_PWCRYPT: password length | 128 | 1175 of Feb 10; 24 | | MX\_SHELLEX: parameter length | 1024 individual parameter; 4096 for all parameters combined | 1202 of Jan 11; 500 | | PCKLST: rows | 32K | | | REGEX: submatches | 100 | 1210 of Mar 11; 20 | | XTEXT: line length | 1998 characters | 1253 of June 12; 998 | | XTREE: columns | 200, may be editable or not | 1691 of Oct 2020; 100 | | XTREE: rows | No limit | 1159 of Sept 09; | | XTREE: number of trees allowed | No limit | old limit = 32 | | XTREE: tooltip length | 1023 characters | 1205 of Feb 11 | | XTREE: multi-level trees | 63 | 1737 of Aug 23; 9 | **Compiler** | | | | |------|------|------| | **Item** | **Size / limit / capacity / description** | **Updated in A-Shell **
**build...; old value** | | Length of a single BASIC statement including continuations | 16K | 6.5.1628 of Feb 2018; 128; 3K | | [Nested ++INCLUDEs](nestedincludes.htm.md) | 38 | 6.4.1547 of March 2017; 20 | | Nesting level of SWITCH statements | 8 | | | Nesting level of TRACE\_BEGIN / END blocks | 38 | 6.5.1644 of Aug 2018; 1 | | [One Time ++INCLUDEs](onetimeincludes.htm.md) | No limit | 5.1.1235 of Oct 11; ~400 | | Length of a variable or symbol name | 260 | | | Length of a DEFSTRUCT name | 64 | | | Number of dimensions (subscripts) in an array | 16 | | | Number of variables | Without /AV switch, about 6400 (fewer for arrays); with /AV, about 1.6 million | | | Size of RUN module | Without /A switch, calls/gotos limited to about 64K;; with /A switch, about 16 million | | | Size of DATA embedded in RUN | 512K | 6.5.1657 of March 2019 | | Number of functions/procedures | No specific limit other than memory available to compiler | | | Number of defines, deftypes | | | DATA statements | 1024 bytes | 6.5.1721 of Nov 2022; 512 bytes | **Other** | | | | |------|------|------| | **Item** | **Size / limit / capacity / description** | **Updated in A-Shell **
**build...; old value** | | //XL parameter length | 512 characters | 6.5.1725 of Feb 203; 256 characters | | Ordered map key length | Unlimited | 6.5.1716 of May 2022; 511 bytes | | Windows printer names | 100 characters | 5.1.1148 of May 2009; 50 | | Print filter SBX names | 10 characters | 6.2.144 of Jan 2016; 6 | | ATE server side timeout on initial handshake | 6 seconds | 6.2.144 of Jan 2016; 3 | | Scrollback buffer | 200 lines | 6.2.1422 of Jan 2016; 100 | | Associative array key | 511 bytes | 6.2.1421 of Nov 2015; 259 | | [QUEUE](queue_sp.htm.md) | 65,535 | | | DEVICE name | Three or four alphabetic characters, followed by one or two numeric digits, with a maximum length of five combined characters. | | | Device definitions | 300 for Unix, 1000 for Windows | | | Ersatz name | One to ten alphabetic or numeric characters, starting with an alphabetic character, and immediately followed by a colon. | | | Ersatz table auto-refresh | Every 30 seconds | | | Ersatz devices allowed | 1000 | 979 of Jan 06; 400 | | ERSATZ=fspec length | 160 | 1208 of Mar 11; 70 | | Printer ini file line length | 256 characters | 987 of Apr 07; 100 | | Trace message in ashlog.log, length | 2000 | | | Trace.print statement, length | 16K | 1639 of July 2018; 800 | | Ashlog.log maximum filesize | 10MB; new file with extension .01, .02, etc. will be created when maximum filesize is reached | 1662 of June 2019; 3MB for Win, 5MB for Unix | | Command line length | 300 characters | 916 of Feb 05; 200 | | Number of GUI objects that can be defined at any one time | No limit | 1166 of Nov 09; 250 | | Number of modules that can be loaded into user memory | 128 (per job). Note that subroutines are modules. | 6.5.1679 of April 2020; 96 | | Input CSV line length | No limit | 995 of Sep 07; 4K | | INPUT statement, all forms | No limit | uncertain; 4K | | Windows printer name | 100 characters | 1148 of May 09; 50 | | Command line history buffer | 25 lines | 1168 of Dec 09; 10 | | VUE line length | There is effectively no limit. When opening a file, VUE reads the longest line in the file and to that number adds 8K. | 6.5.1631 of February 2018, VUE edit 371; previously VUE looked only at the first 100 lines, and then added 1K, with an overall minimum limit of 4K. | | [Dynamically Sized Variables](dynamically-sized_variables.htm.md) | No limit | | | HOST.LIT response capture buffer | 256 | 2.0(105) of Aug 11; 64K | | PAD\$(expr,len) return expression length | 4096 | 1175 of Feb 10; 257 | | TAB(col) columns | 4095 | 1105 of Feb 08; 472 | | Buffer to expand strings containing %env% variables. | No limit | 512 bytes; 6.0.1263 of Oct 12 | | Nested function/procedure calls | Set limit of 99 as a way of reducing the likelihood and severity of problems caused by accidental infinite recursion. | Unlimited; 6.1. 1387 of July 2014 | | Length of individual GDI print directives | No limit | 512 bytes; 6.5.1664 of August 2019 |