## Entire Arrays - [ALL]

Normally the internals of how the [ALL] array subscript is implimented is of no concern to the Business Basic programer That is:

    1000 CALL "PROGA",X[ALL]
    and
    10 ENTER Y[ALL]

The CALL/ENTER above is simply a call-by-reference.
However if you want to manipulate entire arrays you must fully understand the following:
Under SM32 the [ALL] gives access to entire array including internal pointers. Therefore:

    10 DIM X[A]
    20 X[B]=10
    30 OPEN(1)"SAVEARRAY"
    40 WRITE(1)X[all],A,B

is an INVALID operation since X[ALL] may contain a $0A$. Note the WRITE ARCHIVE could have been used since it handles binary data.
Any manipulation must always return the exact data:

    10 DIM K!
    20 A$=HTA(K![ALL])
    30 B$=ATH(A$)
    40 K2![ALL]=B$

Is valid.
X[ALL]="" is also a valid way to null an ARRAY
The follwing may be useful for array manipulations:
Commpression/Decompression with CMPR DCMP
Encryption with CRYPT
String Archiving with WARCHIVE RARCHIVE
File Archiving with WRITE ARCHIVE READ ARCHIVE