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