forlang.hlp (Table of Contents; Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
$STORAGE
                                             Up Contents Index Back
─────$STORAGE───────────────────────────────────────────────────────────────
 
     Action
 
     $STORAGE allocates <n> bytes of memory for all variables declared as
     integer or logical variables
 
     Syntax  $STORAGE:n
 
     Remarks
 
     <n> must be either 2 or 4. The default is 4.
 
     The code required to perform 16-bit arithmetic is faster and more
     compact than the code required to perform 32-bit arithmetic.
     Setting $STORAGE to 2 allows programs to run faster and to be
     smaller but does not allow 32-bit arithmetic.
 
     $STORAGE does not affect the memory allocation of variables
     declared with an explicit length.
 
     If several files of a source program are compiled and linked
     together, be careful that they are consistent in their allocation
     of memory for variables.
 
     $STORAGE must precede the first declaration statement.
 
     The $STORAGE metacommand is equivalent to the /4I{2 | 4} compiler
     option.
 
     Example
 
     $STORAGE:2
 
     C     b and c are declared without a byte length, so they default
     C     to the $STORAGE value of 2 bytes. a and d will be 4 bytes.
 
           INTEGER*4 a, d
           INTEGER   b, c
 
           a = 65537
           b = 1024
 
     C     Since c is 2 bytes, it is assigned only the lower 2 bytes
     C     of a+b.
           c = a + b
           d = a + b
 
     C     The following statement produces:  1025        66561
           WRITE (*, *) c, d
           END
                                    -♦-