The program is written around a pop-down stack similar to that on a Hewlett-Packard calculator, except that the stack elements in this case are complete spectra (data+header). Spectra move up and down the stack automatically in response to the various reduction options, and may also be manipulated explicitly for more complicated processing. Thus XY interchanges the bottom two spectra, ROLL rotates the stack down etc..
One difference between the calculator and SPECX is that in the latter the number and length of the stack positions are user-definable . At present a given amount of memory is set aside for the stack, so that you can declare a very long stack of short spectra, or a short stack of very long spectra, as required. Eventually I will move over to a dynamic stack, of arbitrary length.
Spectra may also be stored in any of 5 storage registers, and retrieved from them, or written to an output data file. Output files and input files have identical formats, and any data file may be opened for Read, Write or Read/Write access as desired.