WHATSNEW.DOC
Revision Status of NUTS NMR Data Processing Program

5/25/2003 1:43 PM
AR - A new arrayed mode and associated data structure was added. 
The new mode is 4D Complex Arrayed mode which packs the data into 
a 4 dimension data matrix. It has its own ProcessType (PT) similar 
to the Generic 3D called Generic 4D. Once this mode has been set 
with the PT command, the AR command will automatically in the mode 
when issued without arguments. The AR command with the argument 
"4" or "4D" will force the arrayed mode to start in the 4D Complex 
Arrayed mode. The FT and EM commands are now array aware of the 
mode and the Acquisition Parameters Dialog box (CO) will display 
the parameters for all dimensions when there is a point count 
grater than 1 in the 4th dimension.

Truman Brown has supplied some CSI spectroscopy data which is a 4D 
data set (512 complex by 8 by 8 by 8) and an import filter for 
this data has been written and depends on the presence of two 
files: NAME.ddf and NAME.raw. The DDF file has the parameters in a 
specific format and the RAW file is the data points as 2 byte 
integers in big endian format.


5/10/2003 2:13 PM
IG of IMAGE - An import filter for images supplied by Truman Brown 
was added to the import filters. A new routine to display these 
images was added ==> 2-lettered command IG or non-2-lettered 
command IMAGE.  The command has several optional arguments:
1. IMAGE (Actualsize or A) displays the image in the same number 
of pixels on the screen as the image has. Otherwise the image is 
scaled within  NUTS.
2. IMAGE (NegativeImage or Negative or N) toggles the display of 
the negative of the image. Another argument is allowed which can 
be ON or OFF which allows setting this feature in an absolute 
manner.
3. IMAGE (SquareImage or Square or S) toggles the forcing of the 
image to be square; otherwise the image is scaled within NUTS. By 
default NUTS starts in the square image display mode.


4/28/2003 5:23 PM
TL or TILT - A command was added to tilt a 2D data set. With no 
arguments the command will tilt the 2D data set 45 degrees in 
hertz in a counter-clockwise direction. The command also 
recognizes a "C" or ""CC" argument which defines the direction of 
the tilt to be clockwise or counter-clockwise respectively. If 
these arguments are not followed by another argument the amount of 
tilt is 45 degrees in hertz. An additional argument is taken as 
the number of points to tilt per slice (fractional points 
allowed).  

If the TILT command is given with an argument which is not "C" or 
"CC" then the argument is taken as the number of points to tilt 
per slice (fractional points allowed) and the tilt will by default 
be in the counter-clockwise direction.  


4/23/2003 4:24 PM
Title Bar - The files comment was added to the NUTS application 
title bar at the top of the NUTS window.


3/12/2003 3:21 PM
IM - There were somewhat duplicate fields in the NUTS header: 
"Owner" and "User". To avoid confusion the "User" field was 
eliminated and all references to "User" and "Owner" were directed 
to the "Owner" field.


3/11/2003 4:01 PM
2D Menu - Some of the key stroke shortcuts for the display of 2D 
projections on the side of intensity and contour plots were not 
working. No reason could be found so the shortcut keys were 
eliminated and the resources re-compiled. The shortcuts were then 
re-installed and the resources re-compiled and they now work 
again.


3/11/2003 10:48 AM
BR, JE - The commands have been changed from their previous 
operations. Before they moved in the characteristic amount for the 
instruments they are designed for (as described previously) 
zeroing the end points and adjusting the DC and tilt for the data 
set. This has been changed such that it ignores the same amount of 
data on each end, removes the DC and tilt from the data, and 
removes the DC of the end sections but does not zero the data 
points. In the non-2-lettered command mode these commands can take 
a number argument to over-ride the automatic method to determine 
the amount of data to ignore on each end. The commands can also 
take and argument of "ZeroPts". When this argument is followed by 
a third argument of "1" (one) then the ignored end points will be 
zeroed. When this argument is followed by "0" (zero) then the 
points are not zeroed.


3/8/2003 2:53 PM
AP, QP, QA - The automatic phasing routines were redone to be 
faster and more accurate. QP is a subset of AP and therefore 
somewhat faster and slightly less accurate. QA also uses the new 
automatic phasing routines but only phases the zero order phase.  
The new process is usually much faster and better than the old 
automatic phasing routines.

The AP and QP  commands can take several non-case sensitive 
arguments in the non-2-lettered command mode.
  AP ? 
will display possible arguments.
  AP log
will do the AP process and log the steps the AP routine takes to 
the current data directory.
  AP stepA #
sets the initial step size for the zero order phase.
  AP stepB #
sets the initial step size for the first order phase.
  AP A
will phase only the zero order phase.
  AP look 
will exchange the current data for the automatically generated 
reduced data point data buffer used by the AP routine.
  AP enhanced #
will set the AP routine to use advanced baseline detection when # 
is one. When # is zero the AP process will not use advanced 
baseline detection. This feature works better with spectra which 
having peak free baseline at each end.
  AP IgnorePts  #
will set the number of points on each end to ignore in the phasing 
process to #. By default (IgnorePts = -1) the AP process ignores 
5% of the data points on each end of the spectrum. When the data 
set to be phased has peaks close to the ends it is better to set 
this number to the minimum allowed by the data's baseline.
  AP RMS #
will set the number of RMS noise multiples to use in the advanced 
baseline peak detection mode. Default is 100 times.
  AP Pts2Ave $
will set the number of points to average when making the reduced 
data set for the AP process. The default value is zero which 
allows the AP process to automatically determine how much to 
reduce the data based on initial data sizes. QP reduces the data 
more than AP. If this argument is set to one then the data is not 
reduced and the process is slightly better but a lot slower.
  AP quality
does not do an automatic phase process but returns the value used 
by the AP process for the quality of the current spectrum's phase.
  AP Simplex
does the AP process using the Simplex method and creates a log to 
the current data directory.
  AP map
sets the first order phase to -360 degrees and doses an zero order 
optimization. It then increases the B phase in 10 degree steps and 
optimizes the zero order phase at each step until the first order 
phase reaches positive 360 degrees. It then corrects the current 
data set to the best phase values it found in this mapping 
process. This process also creates a log to the current data 
directory.


JE - A new command "JE" or "JEOL" was added which is like the BR 
command but uses a default of 5% of the spectrum on each end 
instead of the BR commands default of 2%;


2/24/2003 2:38 PM
IM - The import filter for Bruker XWin processed data where the 
TITLE file was absent gave an incorrect error message and got 
stuck in an endless loop. The error message was corrected and the 
endless loop was avoided.


2/24/2003 10:42 AM
BR - Some non-reproducible crashes from the BR command were 
corrected with a redefinition of data pointer during the reduce 
and expand points routines.


2/13/2003 10:54 AM
/2 and *2 - NUTS has had a command (brickwall or /2) which when 
used without arguments  reduces the data set by eliminating one 
quarter of the data points at each end of the spectrum. When used 
with an argument, the command eliminates the number of points 
defined by the argument at each end of the dataset.

A new command has been added (expand or *2) which, when used 
without arguments, expands the data set to the next power of two 
data points by adding points to each end of the spectrum. When 
used with an argument, the data set is expanded by adding the 
number of data points define in the argument to each end of the 
spectrum.


2/12/2003 3:02 PM
BR - A new command was added to help when processing Bruker 
digitally filtered data. This new command removes the very ends of 
the spectrum after FT so that the typical sharp curves at the 
spectrums end were eliminated. This makes many of NUTS's commands 
- like QA, QP and AP - work better.
When the two lettered command "BR" or the non-2-lettered command 
"BRUKER" is given without arguments the program reduces the 
spectral data size by 2% on each end, does a BC operation, an RI 
operation, another BC operation, another RI operation and expands 
the data set to the next power of two size with zeros on each end.

When the command is given with an argument the argument is used as 
the number of data points to adjust on each end.  


2/12/2003 1:06 PM
AP - The AP routine was hanging when doing an auto-phasing 
operation on a data set which was not a power of two in size. A 
trap was added so that an error message was given to the user 
instead of the program hanging. 

2/12/2003 12:03 PM
IM = Many users were reporting that Bruker XWIN NMR data files 
were importing such that the spectra were requiring an SR after an 
FT. The import filter was changed to invert the imaginaries on 
import thereby eliminating the need for the SR. 


2/12/2003 10:14 AM
ID and PP - An error in NUTS which was causing NUTS to not read 
any ID list or PP list saved in a type 3 header was corrected. 


2/10/2003 9:08 AM
IM, GA, GB - When some fields were blank when a file was imported 
then these fields were left unchanged; i.e.; the same as the 
previous file's field. Examples included comment, UID and similar 
fields. This was changed such that if the field is blank when the 
file is opened or imported the field will be made blank and not 
retain the previous files information.

2/7/2003 1:01 PM
IM - New import filters for 3D NMR data required changing the 
routines to write out the imported data to a new file. Some older 
import filters were affected and only imported one data point of 
data. This was corrected by making all dimensions of imported data 
to have the point count set to one as a minimum.


2/6/2003 3:31 PM
GA - The Macintosh file opening routines were misidentifying NUTS 
format data with type I or type II header styles. This was 
corrected.

2/5/2003 3:37 PM
FB, FX - The FB and FX baseline correcting routines can be used 
while in a zoomed display mode. When so used, the baselines of the 
regions outside the zoomed display region can be adjusted in DC 
value to prevent a discontinuity in the total spectral. The 
default mode NUTS uses can be set in the NUTS.INI file:
  CONTINUOUS_BASELINE = TRUE   //  baseline is DC adjusted
  CONTINUOUS_BASELINE = FALSE  //  baseline is NOT DC adjusted

Inside of NUTS the "-c" argument can be used to set the current 
mode of operation. The non-2-lettered commands:
  FB -c on
enables the DC adjustment of the baseline and
  FB -c off
disables the DC adjustment of baseline outside the current zoomed 
display region and leave a baseline discontinuity at the ends of 
the zoomed region.

One of the reasons for the different modes of operation is that 
sometimes, the user would rather have the baseline become 
discontinuous and therefore the integral values outside of the 
zoomed display region are not changed by a DC baseline adjustment


1/30/2003 3:33 PM
MH and auto PP - When NUTS is in its base level of operation and 
the right mouse button is pressed then a target crosshair is 
displayed on the screen. While the crosshair is being displayed, 
the "M" sub-command resets the MH value to the level of the 
horizontal crosshair. It is sometimes convenient to have NUTS 
automatically do a new PP command when the M sub-command is given. 
The default action can be set in the NUTS.INI with the line:
  DO_PP_WITH_M = TRUE
This action can also be set while running NUTS with the MH command 
while in the non-2-lettered command mode"
  MH -p on
Sets NUTS to do the PP when the MH level is reset with the "M" 
sub-command.
  MH -p off
Sets NUTS to NOT do the PP when the MH level is reset with the "M" 
sub-command.


11/28/2002 12:44 PM
TILT - The non 2-lettered command "tilt" started in the middle of 
the slices and shifted each slice one point per slice thereby 
tilting the 2D data set 45 degrees by points. This could be done 
in either the clockwise or counter-clockwise direction by using a 
"c" or "cc" argument. Another argument could be given to set the 
number of points per slice to shift the data, however, only 
integers could be entered.  This was modified to allow the entry 
of fractional points. When a fractional point is used then the 
points are shifted only when the cumulative amount becomes more 
than a fraction. A feature was also added to allow NUTS to do the 
45 degree shifting by hertz instead of points.

Example commands:
  tilt cc 0.1
This command would tilt the 2D spectrum 0.1 point per slice in the 
counter-clockwise direction.
  tilt c 0.1
This command would tilt the 2D spectrum 0.1 point per slice in the 
clockwise direction.
  tilt 0.1
This command would tilt the 2D spectrum 0.1 point per slice in the 
counter-clockwise direction (the default direction).
  tilt
This command will calculate the hertz per point in the 1st 
dimension and the hertz per slice in the 2nd dimension and use 
this information to tilt the spectrum 45 degrees by hertz in the 
default counter-clockwise direction.
  tilt c
This command will calculate the hertz per point in the 1st 
dimension and the hertz per slice in the 2nd dimension and use 
this information to tilt the spectrum 45 degrees by hertz in the 
clockwise direction.

The ability to do issue the "tilt" command without arguments with 
the two-lettered command "TL" was added.


11/26/2002 10:37 AM
Axis - The user has always been able to set the 1D and 2D axis 
dimension types by (from the 1D display mode) selecting View/Type 
from the main menu. A coding error was found which cause NUTS CP 
and IP modes ignore the 2nd dimension value and use only the 1st 
dimension type for both dimension axis. This was corrected.

11/18/2002 1:57 PM
ID - The integral labeling routine was modified to allow the 
integral labels for broken integrals to be either horizontal or 
vertical. In the ID sub-routine an "H" sub-command sets the font 
orientation to horizontal and a "V" sub-command sets the font 
orientation to vertical. In the macro routines, the command to 
change the integral label font size was changed to accommodate 
horizontal and vertical orientation. The old macro command: 
  SET FONT_INTEGRAL +10
is now either
  SET FONT_INTEGRAL_HORIZONTAL +10
or
  SET FONT_INTEGRAL_VERTICAL +10
In addition to changing the font size it sets the integral font 
labels to the indicated orientation.

The default orientation for the font label can be set in the 
NUTS.INI with the line:
  ID_HORIZONTAL_FONT=FALSE
or
  ID_HORIZONTAL_FONT=TRUE


11/15/2002 11:22 AM
IM - A generalized error in the import filter caused the PulProg 
parameter of XWinNMR data to be read correctly and ignored. This 
was corrected.

11/12/2002 9:40 AM
IM - A fix for when users had multi-line comments in imported 
files (particularly Tecmag) was added previously. This fix looked 
at up to 100 lines and quit when the next line of the header 
started with #. Some users that used multi-line comments used 
comment lines starting with #. NUTS was modified to stop reading 
multi-line comments when the first two characters of the next line 
of the header were #.

11/7/2002 8:07 AM
GA - When adding the GA change from 10/29/2002 a coding error stop 
all file readings except from a Professional license. The error in 
module FILE.CPP was corrected.

11/6/2002 2:47 PM
NUTS - When a particular file extension was associated with NUTS 
and a file with that extension was selected, NUTS would sometimes 
fail to locate the file. The issue was a combination of spaces in 
the directory or file name and the operating system's use of 
quotes for these path names. A work-around was developed to 
correct the problems and the file associations now work with or 
without spaces.

11/6/2002 12:53 PM
AR - A new argument for the command to enter the arrayed mode was 
added - "tppi2pairwise". This argument should be entered while not 
in arrayed mode and file A should be the desired 2D_TPPI raw data 
file. When given the current File A will be read into memory such 
that a PairWise data set is created with each slice of the current 
data being the A pair and the B pair is set to zeros. The process 
type is set to "2D_TPPI" and the TD will do no swapping of data 
pairs. 

10/30/2002 11:05 AM
Tailer Read - When auto tailer read was turned on and a 2D file 
which had a peak pick list was opened while not in the arrayed 
mode the program would crash if the three point peak interpolation 
was turned on. The code was changed to read the slices in and do 
the three point interpolation while not in the arrayed mode.

10/29/2002 5:39 PM
GA - The reading of a file which had been saved by NUTS with a 
Process Type (PT) was modified to detect the Process Type and 
enter the correct arrayed mode. All versions of NUTS except NUTS 
professional return an error when opening files of this type.

10/29/2002 10:39 AM
MF - When MF was placed inside of a macro or link which also 
changed the vertical size of the displayed data (like an FT) the 
scaling factors were not updated. The symptom was that the "MF" 
command needed to be issued twice in the macro or link to have the 
desired affect. This was corrected.

10/29/2002 9:41 AM
TB - An error in memory allocation when sending integral lists to 
the clipboard while using tab separators was identified and 
corrected. A similar problem with peak pick list to clipboard was 
also corrected.

10/19/2002 2:09 PM
Offset Information – Added a NUTS.INI section to allow the user to 
set the default methods used when setting the chemical shift 
offset. When in the target display mode (crosshair on the screen) 
pressing "V" brings up the Offset Information dialog box. The user 
then enters the chemical shift information for the current 
crosshair position. By default the system uses a three point Peak 
Interpolation for setting the chemical shift. Also by default the 
system will "snap to tallest nearby peak" mode when setting the 
chemical shift. The user can set the set the default modes below 
by removing the comment semi-colon and setting the argument to 
either TRUE or FALSE. The Peak Interpolation is also used by the 
peak picking routine when reporting peak positions. The two new 
entries to the NUTS.INI are:
  INTERPOLATE_PEAKS=FALSE
  SNAP_TO_PEAK=FALSE

10/17/2002 12:03 PM
Exports – Added a method to increment a file name extension in a 
macro or link when exporting a series of files. This can be done 
with the new 2 letter command “EI” or the macro command:
  do INCREMENT_EXPORT_FILENAME

8/4/2002 1:48 PM
FB – A problem was corrected where FB was done in the full display 
mode and repeated in the zoomed display mode the data was either 
zeroed or the program crashed. This was traced to a pointer to the 
data not being zeroed when exiting the FB routine.

8/4/2002 9:31 AM
AR – A problem causing a crash was found when the following 
conditions were met:
  When a spectrum was processed in Pairwise Complex Arrayed mode.
  The spectrum had a 2D peakpick list.
  The spectrum was saved.
  The spectrum was recalled with auto tailer read turned on.
  Peak interpolation was turned on.
The problem was a pointer to the data in the peak interpolation 
routine was not pointing to pairwise data but to a NULL pointer. 
The code was changed to point to the correct data for this mode of 
operation.

7/25/2002 1:48 PM
StartUp - If the user wants to use a different NUT.INI when NUTS 
starts it is signaled by a "-i" option argument and the next 
argument must be the path to the nuts.ini file to use enclosed in 
double or single quotes.

If the user wants to run a macro it is signaled by a "-m" option 
and the next argument must be the path to the macro enclosed in 
double or single quotes.

If user wants to load a file it is signaled by a "-f" option and 
the next argument must be the path to the file enclosed in double 
or single quotes.

If there is a lone argument (not following an option signal "-") 
it is assumed to be a path to a file to load when NUTS is run and 
is space insensitive.


7/24/2002 4:36 PM
projection or proj – This non-2-lettered command has been 
modified. Its new format requires at least two arguments. The 
first argument defines which side projection is the focus of the 
command:
  -1
  -top
  -t		Top Projection

  -2
  -right
  -r		Right projection

  -3
  -bottom
  -b		Bottom projection

  -4
  -left
  -l		Left projection

The second required argument specifies if this projection is 
shown:
  -on
  -off

A third optional argument defines a file name to use for the 
specified side projection spectrum


7/8/2002 3:56 PM
IM - XWin Bruker data imports had a problem when a pdata/1 
directory existed but there was no file called "title" the import 
routine would hang or crash. This was corrected so than the 
absence of the file "title" would be ignored by the import routine 
but there will be no "Comment" in the imported data.


7/2/02 3:40 PM
NUTS.INI – The Autoexec and MacroDir entries in the NUTS.INI did 
not allow spaces. This was changed to allow spaces for these 
entries.


7/1/02 2:54 PM
HI – The HI command was modified to force the outputted histogram 
file to have four figures after the decimal place. It was also 
modified to accept and optional second argument which is used as 
the histogram output file name.


6/20/02 3:53 PM
FB – A routine to reread an exported mask file and allow continued 
editing was added under the FB File menu.

IM – The Bruker Xwin imports of time domain data was modified to 
look in the pdata/1 sub-directory for a file called “title”. If 
present it is read as the imported Comment.


6/19/2002 2:12 PM
HI - (non-2-lettered command "histogram") This command generates a 
text file which is a list of intensity descriptors. The first item 
in each line of the descriptor file is the PPM value of the start 
of the descriptor. The second item is a relative sum of the 
intensity in the descriptor PPM range which by default is 0.04 PPM 
wide.  The descriptor file has the following characteristics:
- All negative sums are zeroed.
- The sum of all descriptors is 1.0

By default the size of each descriptor is 0.04 PPM. By default the 
total spectrum is used for the descriptor file and all data points 
in the file are used. In the non-2-lettered command mode, the 
command will take a file an argument which is the name for a 
descriptor properties template file. A sample file is below:

  Histogram_Template
  Descriptor_Size 0.1
  Include 10.0  0.0
  Eliminate 9.50 9.0
  Eliminate 5.00 4.00


6/18/02 1:24 PM
FB, FX – A new method of baseline correction was added to the FB 
routine – Linear Spline. This method starts at the left side of 
the spectrum and un-dcs and un-tilts to the first selected region 
and then repeatly un-dcs and un-tilts from there to the next 
selected region until all selected regions have been corrected. 
The sub-command in the FB routine is “3”.

This mask can be saved and applied in the FX routine with the non-
2-lettered command
  FX –s mask.name
or
  FX –3 mask.name

6/14/02 5:28 PM
FX – This tool is a baseline correction routine similar to FB but 
using a mask file predefined and saved in the FB routine. 
Previously FX routine only did polynomial corrections. This was 
maintained as the default operation but an option was added for 
doing linear baseline “fudges” identical to the FB routine’s F 
sub-command. Examples:
  FX mask.name
  FX –p mask.name
  FX –1 mask.name
Both these commands do a polynomial fit using a mask file called 
mask.name.
  FX –f mask.name
  FX –3 mask.name
This command does a series of linear fudges using a mask file 
called mask.name.


6/12/2002 12:34 PM
DC - When in the DC offset sub-routine the value of the DC offset 
is printed in the upper left corner of the screen. Originally it 
was printed to the right of the scroll bar left justified. Work on 
the axis caused this value to be printed right justified so it was 
under the scroll bar. The printing of the value was forced to be 
right justified and is now visible to the right of the scroll bar.

6/11/2002 10:59 AM
ZE - In a macro or link the ZE command asked if you were sure each 
time it was called. This was changed do that it asks only if you 
are not in a link or macro.

5/17/2002 2:51 PM
SV (non-2-lettered command mode “solvent” ) This command was added 
to allow the user to set the solvent. The solvent string is stored 
in the NUTS header when using header type 3.

5/17/2002 1:40 PM
US – The user field saved in a type 3 NUTS header was terminated 
with the first space when recalled. This was changed to allow 
spaces and a length of 128 characters.

IF – The length of the Name fields was limited to 39 characters 
when a NUTS header type 3 was re-read. This was changed to allow a 
field length of 128 characters.

5/17/2002 12:01 PM
TB – (non-2-lettered command mode “tabs” ) This command changes 
the format for the peak pick and integral lists when they go to 
the clipboard. In the 2 lettered command mode it is a toggle 
between two table formats:
1)	space separated columns such that, when a fixed size font is 
used, the columns line up. Best for pasting into Notepad
2)	tab separated columns. Best for pasting into a spreadsheet 
program.

The default mode can be set in the NUTS.INI file with the 
“UseTabs” line set to TRUE for tables using tabs and FALSE to use 
spaces.


5/10/2002 2:17 PM
PT – (non-2-lettered command mode “ProcessType” ) This command 
sets a flag to be used by the AR and TD commands. When the flag is 
set correctly the proper arrayed mode is entered with the AR 
command and the proper transposition and swapping is done with the 
TD command. Possible values for the ProcessType flag are:
1D
2D_Magnitude
2D_TPPI
2D_HyperComplex
2D_EchoAntiEcho
2D_SatesTPPI
3D_Generic

The command can take the non-case-sensitive arguments listed 
above. Without arguments a dialog box is presented to the user for 
checking the processing type. The Process type is saved in the 
file header.


5/3/2002 3:25 PM
Target – M When at base level with the left mouse button pressed 
the user can set the minimum height for peak picking and auto-
integration by placing the horizontal line at the desired level 
and typing “M”. Before this action also redid a PP command, this 
automatic PP command was removed from this operation.

SO – This two letter command (non-2-lettered command SMOOTH) was 
added to do a smooth operation. With no arguments or in the two-
lettered command mode, a three point smooth is done. In the non-2-
lettered command mode a first argument is used as the number of 
points to smooth. An optional second argument is the number of 
types to repeat the smooth operation.


AI -  the Automatic Integration command was reworked. The 
operation was made dependent on the display mode. When doing a 
full display any currently defined broken integrals are deleted 
and a new set of broken integrals is defined. When in a zoomed 
display new set of broken integrals is appended to any existing 
set. 

The selection of the broken integral regions depends on the noise 
and peaks in spectral regions and is very sensitive to the MH 
value. Also, any broken integral region crossing zero PPM is 
ignored. The minimum broken integral the last displayed region 
when the AI command issued is set to 1.00 by this command.

PH – A marker for the pivot point position was added to the PH 
phasing display routine.


4/12/2002 3:30 PM
AB or non-2-lettered command SwitchAB works on data when in 
PairWise Complex Arrayed Mode. It swaps data between the A and B 
complex pairs (see description below). In the non-2-lettered 
command mode some arguments can be used:
  AB real
  AB ArBr
would swap the reals pairwise.
  AB imag
  AB AiBi
would swap the imaginaries pairwise.
  AB ArBi
would swap the first pair reals with the second pair imaginaries.
  AB AiBr
would swap the first pair imaginaries with the second pair reals.


TD - When in the PairWise Complex Arrayed Mode the TD command 
without any arguments does the TD in the manner described below 
where each segment of data (A.r, A.i, B.r and B.i) are 
individually transposed AND A.i and B.r are interchanged. When the 
TD command is issued in the non-2-lettered command mode it can 
have arguments “AiBr” or “hyper” and have the same action as the 
default. 

When in the PairWise Complex Arrayed Mode the TD command can also 
take the arguments “AiBi” or “echo”. With these arguments each 
segment of data (A.r, A.i, B.r and B.i) are individually 
transposed AND A.i and B.i are interchanged.

In addition, when in the PairWise Complex Arrayed Mode the TD 
command can also take the arguments “noswap”. With this argument 
each segment of data (A.r, A.i, B.r and B.i) are individually 
transposed AND no segments are interchanged.


4/11/2002 3:16 PM
ARRAYED Mode 2 – A new manner of structuring the data was 
introduced with the non-2-lettered command mode command:
  AR 2
This command enters a PairWise Complex Arrayed Mode where the data 
slices are viewed as a Pair of Complex pairs. For discussion lets 
call the first complex pair A and the second complex pair B. We 
then have the first complex pair: A.r and A.i. The second complex 
pair is then: B.r and B.i. When this mode is entered the user 
views only the A.r data but commands operate on the A.r and A.i 
complex pair. Any command given is also done to the “invisible” 
B.r and B.i complex pair. By default when in this mode a TD is 
done in this mode each segment of data (A.r, A.i, B.r and B.i) are 
individually transposed AND A.i and B.r are interchanged. This 
allows the second dimension complex pair to be used in future 
operations. If/When the data is TDed again the first dimension 
complex pair is again in place allowing such operations as 
additional phasing. This behavior is similar to the TR TR ST 
operation with the imaginaries being carried along instead of 
discarded.

4/5/2002 12:17 PM
Header – This non-2-lettered command was used to set or inspect 
the header type (1, 2 or 3) of a NUTS formatted file. It was 
expanded to take an additional argument “length” which will tell 
the user the length of the header on the current file.
  Usage: header length<ENTER>

SE – Non-2-lettered command SEE is a new command to aid in the 
visual inspection of unknown data files. In the 2-lettered command 
mode the command first brings up a dialog box and allows the user 
to select the file to look at. After this selection, another 
dialog box comes up which allows the user to specify how he wants 
to view the data. After selecting all the options and clicking OK 
the data is imported without translation in that manner as a 1D 
file thereby allowing the user to visually “see”. This can aid if 
finding actual NMR data in unknown files. Hint – It is often 
useful to first load an NMR file with NMR data of about the 
vertical scale size the user expects and then do an FS to fix the 
scale. This allows all the “junk” to be imported and go off-scale 
without shrinking smaller NMR data so small as not to be seen.

In the non-2-lettered command mode, the SEE command with no 
arguments behaves as above. The user can give arguments as shown 
below to directly import the specified file as instructed in the 
arguments:
  SEE [Bytes2Skip] [WordType] [Complex] [Endian] [FileName]
where:
  Bytes2Skip is the number of bytes to move into the file before
     starting to read the data
  WordType is one of CHAR / SHORT / INT / FLOAT / DOUBLE
  Complex is one of REAL / COMPLEX
  Endian is one of BIG / LITTLE
  FileName is the name of the file to import.


4/4/2002 1:23 PM
MACRO QUESTION – The question function was modified to work with 
the current code. It appeared to have been broken by some MACRO 
additions.
   //  Each question needs to start with one line of "QUESTION"
   //  The following lines are for the question - up to 15 lines
   //  Then four addition lines
   //  First line starts with YES_BUTTON <desired action>
   //  Next  line starts with NO_BUTTON <desired action>
   //  Next  line starts with CANCEL_BUTTON <desired action>
   //  4th and LAST line needs to be END_QUESTION
   //  <desired action> can be one of three things
   //    1. ABORT
   //    2. CONTINUE
   //    3. New macro name to start

Sample usage macro:
nutsmacro
QUESTION
Click YES to continue the macro execution with
      the next line after this question.
Click NO  to abort the macro execution.
Click CANCEL to abort the macro execution.
YES_BUTTON CONTINUE
NO_BUTTON ABORT
CANCEL_BUTTON ABORT
END_QUESTION
ft
end


3/28/2002 1:53 PM
NF – A new command (NoiseFigure or NF in the non-2-lettered 
command mode) has been added to calculate an NMR instrument’s 
noise figure. To use first replace the NMR spectrometer’s probe 
with a 50 Ohm metal film resistor. At the gain and frequency 
settings of interest for the NMR instrument take one scan of data 
with the resistor at room temperature and save the file with a 
file name like “HOT.NMR”. Cool the resistor in liquid nitrogen and 
take another scan and save this file with a file name like 
“COLD.NMR”. Enter the NF command and follow the directions. NUTS 
will load the two data files and calculate the system noise 
figure. In the non-2-lettered command mode the user can also enter 
the name of the hot file as argument 2 and the name of the cold 
file as argument 3.


3/18/2002 9:51 AM
MO – Work was done to improve the quality of the meta-objects 
created by nuts when the “A” sub-command is issued in the MO sub-
routine.

3/15/2002 3:40 PM
FB – When the user gets a set of areas desired for a baseline 
selected this pattern or mask can be saved to a text file with the 
sub-command “M” or by selecting File/Save Mask on the menu while 
in the FB routine.

FX – New command. In the 2-lettered command mode or issued without 
arguments in the non-2-lettered command mode this command is an 
array aware version of QB. It will correct a 1D file like QB. When 
the file is a 2D file, it will correct the current slice when in 
the non-arrayed mode, and will individually select regions and 
calculate and apply polynomial baseline corrections to each slice 
of a 2D file when in the arrayed mode.

When in the non-2-lettered command mode the command accepts an 
argument of an FB mask file name to use when calculating the 
polynomial fit. The mask must be for the same 1D data size as the 
current data. If the mask was done while in a zoomed display mode 
this command will use the same display region for the polynomial 
fit and NUTS will end up displaying that zoomed region when the 
command completes.

If polynomial corrections are made while in a zoomed display, then 
the data outside of the display will be dc adjusted to keep the 
data set continuous with the ends of the corrected regions.

3/13/2002 4:06 PM
PH and PE – An addition to the NUTS.INI allows the user to change 
the mouse sensitivity for PH and PE independently. The variables 
are:
  MOUSE_SCALING_PE = 500
  MOUSE_SCALING_PH = 500
In addition, the current mouse scaling is divide by 3 when the 
CONTROL key is depressed.

3/13/2002 1:48 PM
Inserts – When saved inserts in the file header were being 
recalled, some were being read at the wrong Y position and 
therefore were being drawn off the screen and were not visible.

Inserts – The Font Selection for Inserts was being done but the 
information was not being used to draw the axis for the Inserts. 
Code was added to use the Font Information.

FB When FB was used in a link a code error in reading the NUTS.INI 
file for the default fitting type caused it to always be 2. This 
was corrected and FB is now useful in a Link or Macro.

3/12/2002 11:28 AM
Axis – Some of the axis labels were slightly offset to the 
appropriate tick mark.  The axis routine was modified to help
align these label and tick marks better.

3/10/2002 11:25 AM
NUTS.INI A flag was added to the NUTS.INI file which causes NUTS 
to not overwrite any existing file:
  NO_FILE_OVERWRITE = TRUE
If set to anything other than TRUE it will be taken as FALSE.
If commented out the default operation of NUTS is FALSE.

3/1/2002 11:14 AM
FB – When using FB for a zoomed region, there was a set of 
conditions where round-off errors would cause one less segment to 
be chosen than could be fitted into the zoomed region. The round-
off error was corrected.

2/25/2002 5:43 PM
CB This command was a toggle to turn on and off the display of the 
clipboard in the NUTS window.  IT was modified such that in the 
non-2-lettered mode it can accept arguments: “on” and “off”. 
Without arguments, it operation remains the same; i.e.,a toggle.


2/21/2002 4:56 PM
Start – The way NUTS starts from a command line was changed such 
that multiple arguments can be included in the NUTS command line. 
If any argument has a format described below it will cause the 
action described.

path\NUTS.INI then this NUTS.INI file will be used by NUTS as the 
NUTS.INI file for this session.

path\*.MAC  then nuts will run this macro at startup. Macro files 
CANNOT be in the NUTS root directory. If no path is given the 
macro is assumed to be in the NUTS\MAC directory.

any other argument will be used by NUTS as a filename to load.


1/15/2002 1:07 PM
DI – The DI command (non 2-lettered command DIR2) was changed from 
emailing a copy of the NUTS root directory to support@acornnmr.com to 
creating a Notepad application showing the current NUTS root 
directory.


1/7/2002 6:13 PM
LF – Using the A sub-command of LF with more than 1 selected line 
was causing memory corruption and usually a crash. This was 
located to be in the memory allocation used when locking some 
parameters for NO iteration. The memory allocation problem was 
corrected.

12/27/2001 9:55 AM
tilt – a new non-two-command which is valid only in the arrayed 
mode 2D file processing. The command without arguments twists the 
data one point per slice in the clockwise direction.  The first 
argument can be either a number (number of points to twist the 
data per slice) or the letter “C” (clockwise) or the letter “CC” 
(counter-clockwise). If the letter “C” or letters “CC” are the 
first argument then an optional second argument is a number 
(number of points to twist the data per slice) in the direction 
specified by the first argument.  An invalid first argument is 
used as the number of points to shift and any second argument is 
ignored. The slice number_of_slices divided by two is taken as the 
“center” and is left unshifted.

IM – An import filter for Hitachi R-1500 files which have been 
exported from the native CP/M-68K operating system to a PC DOS 
file was added to NUTS imports.


12/20/2001 11:52 AM
IM – Bruker XWin 2D data files were not being imported with all 
the slices.  This was an error in reading the wrong file for the 
2D parameters which was created when a more robust search for all 
the different Bruker file names was implemented.

12/17/2001 4:22 PM
FB and QB - It was possible to crash nuts if there were too few 
points in the spectral region being displayed. A error message was 
added with a more graceful exit.

12/17/2001 11:26 AM
IS - The Insert routine saving was modified to capture the Zoom 
limits and display condition (Full or Zoomed) of the display. When 
inserts are incorporated into a display and the file is saved, and 
the file is later recalled and the tailer read, the display will 
be returned to the Zoom limits and display type used when the file 
was saved.

12/16/2001 10:22 AM
E6 - JCAMP NTUPLES export was changed to scale the data with the 
FACTOR variable to better reproduce very large or very small data 
sets.

12/7/2001 3:25 PM
IS Any INSERTS in the display will be saved in the NUTS header 
when the file is saved when using Type 3 header. If the file is 
opened again the previous Inserts can be re-displayed by reading 
the "tailer" by either having the Auto Tailer Read turned on or by 
doing a Tailer read All command (TA). Any existing Inserts will be 
cleared and replaced by the Inserts stored in the file header with 
this operation.


12/6/2001 4:58 PM
NO - Any composed NOTES being displayed when the file is saved is 
saved in the header when using NUTS header Type 3.  If the file is 
opened again the previous notes can be re-displayed by reading the 
"tailer" by either having the Auto Tailer Read turned on or by 
doing a Tailer read All command (TA). Any existing notes will be 
cleared and replaced by the NOTES stored in the file header with 
this operation.

12/6/2001 9:55 AM
IM  The file types to "force" a specific type of translation 
process were removed from the menus.  Use of a "force" type is 
almost always wrong and can cause import problems. The recommended 
import process is to do IM and let NUTS do its own auto 
identification process.

If you MUST force a type, the user can enter the non-two-lettered 
command mode and enter a command like:
  IM -type "force_type"
where allow words for "force_type" are:
NTDEXTER
NTTMON
GN
QE
NTDEXTER_NICNET
NTTMON_NICNET
GN_NICNET
QE_NICNET
OMEGA_ONE_FILE
OMEGA_TWO_FILE
BRUKERASPECT
FELIXNEW
ASC
CDFFDOS
CDFFUNIX
JEOL
JEOL_GENERIC
ATI
BRUKERASPECTBS
BRUKERETHERNET
SMIS
VARUNIX
BRUKERUNIX1
BRUKERUNIX2
BRUKERUNIXSGI1
BRUKERUNIXSGI2
BRUKERX32_1D
BRUKERX32_2D
BRUKNET
PCT
FXQ
ANALOGIC
LYBRICS
CHEMAGNETICS1
CHEMAGNETICS2
CHEMAGNETICS3
GALACTIC
IRIS_FELIX
CDFFINT
MACFID1
MACFID2
MACNMR1
MACNMR2
GEMS
FLXAII
NMRI
PHILIP_MR
JEOL_LAMBDA
WINNMR1DOF        //  Bruker WinNMR 1D Old Conversion FID
WINNMR1DOS        //  Bruker WinNMR 1D Old Conversion Spectrum
WINNMR2DOF        //  Bruker WinNMR 2D Old Conversion FID
WINNMR2DOS        //  Bruker WinNMR 2D Old Conversion Spectrum
WINNMR1DNF        //  Bruker WinNMR 1D New Conversion FID
WINNMR1DNS        //  Bruker WinNMR 1D New Conversion Spectrum
WINNMR2DNF        //  Bruker WinNMR 1D New Conversion
WINNMR2DNS        //  Bruker WinNMR 1D New Conversion
WINNMRAQS_FID     //  Bruker WinNMR using *.aqs file
WINNMRAQS_R       //  Bruker WinNMR using *.aqs file
WINNMRAQS_I       //  Bruker WinNMR using *.aqs file
WINNMRAQS_SER     //  Bruker WinNMR using *.aqs file
WINNMR1D97        //  Bruker WinNMR 1D year 1997
WINNMR2D97        //  Bruker WinNMR 2D year 1997
BRUKER_24_to_32   //  Bruker Aspect transfers with LightNet to X32
BRUKER_1R         //  Bruker Real Only data
JEOL_ALS          //  JEOL ALS data
JEOL_ALPHA        //  JEOL Alpha data
JEOL_DELTA        //  JEOL Delta data
JCAMP             //  JCAMP data
XWINNMR           //  Bruker XWin NMR data
TECMAG_NT         //  TecMag NT data
AZARA             //  Azara data
ELCINT            //  Elcint Imaging/spectroscopy data
PHILIPS2          //  Philips MRi Spectroscopy Data - Type II
SIEMENS           //  Siemens MRi Spectroscopy Data

12/5/2001 11:32 AM
IM - JCAMPDX imports.  NUTS failed to import a JCAMP export from a 
JEOL Alice system. Examining the file revealed a tab character was 
embedded in the strings. Filtering for the tab character was added 
to the JCAMP import filter and the file imports correctly.
 

12/2/2001 2:54 PM
2D contour levels - When a new set of contour levels was to be 
displayed the user entered a new value for Minimum Height (MH). 
This has been supplemented by the addition of a scroll bar to the 
right of the 2D intensity or contour display which allows the user 
to interactively adjust the MH level. Due to the speed of contour 
plot recalculation on older PCs or with large 2D data sets this is 
best done in the intensity display mode or in a zoomed region if 
in the contour display mode.

The PageUp, PageDown, Arrow Up, Arrow Down, "<" key or ">" key are 
also active for these functions.


11/30/2001 1:09 PM
The Aspect import filter was redone to improve the detection of 
FID versus spectrum. The previous filter was confused by any 
before BC or EM done before the data was transferred as well as 
being confused when some different means were used to transfer the 
data from the Aspect to the PC.


11/16/2001 11:19 AM
IM - Imports for a new file format for Philips Spectroscopy data 
was added to the import filters.  The files need to have the 
naming system where there is a pair of files name.spar and 
name.sdat. The user selects the *.spar file for NUTS's auto-id 
import feature to start when using the IM command.

11/13/2001 4:20 PM
Undo - A class bug was found where if the axis is being displayed 
in Hertz and the undo command is active, then when NUTS plots it 
converts the axis to PPM before and after the plot. The bug was 
fixed. The work-around for older copies is to turn off undo before 
plotting.

11/1/2001 2:58 PM
FT - The FT command was modified to accept arguments in the non-
two-lettered command mode. The command can be "FT" or 
FourierTransform". Allowed arguments are:
  complex
  complex_norotate
  complex_nosort
  hilbert
  inverse
  real
  sequential


10/10/2001 6:58 PM
Bruker XWIN Imports - The Bruker XWIN imports were updated to 
accommodate Bruker systems using Windows NT and SGI computers. 


10/8/2001 2:54 PM
CmdLog - Command logging for MS was updated to capture the 
sineshift value.

9/28/2001 1:23 PM
ZG, VP, GS The virtual spectrometer commands were made active in 
all versions of NUTS.

9/28/2001 11:43 PM
CmdLog - Command logging for PH and PS were not correctly 
displaying the new total phase values. This was corrected.

9/26/2001 3:35 PM
The Pulse Width and Pulse Delay variables in the header were 
modified through out the program to pulse_delay from pd and d5 and 
pulse_width from pw, p2.


9/24/2001 3:13 PM
Comment - The manner the comment is stored internally and in the 
header was changed to protect against buffer overflow with longer 
comments and multi-line comments both on file importing and under 
user control. Technically, the comment was changed from a public 
variable in the NMR parameter class to a private variable with the 
necessary class functions to modify and protect the variable.


9/14/2001 12:11 PM
commandlog OR cmdlog - The logging start/stop was changed from 
stopping when a Save command was issued to starting when a file is 
opened.


9/12/2001 11:15 PM
AS - On screen indicators for mode of operation was added to the 
Add/Subtract routine. The menu was expanded to hit at the feature 
which allows shifting the spectrum left and right with the arrow 
keys.


8/31/2001 2:43 PM
commandlog OR cmdlog - a non-two-lettered command which controls 
the command logging operation of NUTS. Logged commands are stored 
in the NUTS header (only if NUTS Header Type 3 is used) when the 
file is saved. If any opened file has a command log it will be 
read and additional commands will be appended. Whether NUTS logs 
commands is controlled by an entry in the NUTS.INI file:
  NUTS_LOG_COMMANDS = TRUE
if this entry is commented out, set to anything other than TRUE, 
or is absent then NUTS by default will not log the commands.

The command logging can be turned on with the command
  cmdlog on
and command logging can be turned off with the command
  cmdlog off

The "cmdlog" command without any argument will bring up a dialog 
box from which the user selects a file, then notepad.exe will be 
started and the command log for the selected file will be 
displayed.


8/29/2001 10:34 AM
IP and CP - Having the 2D display as a sub-routine was causing a 
lot of confusion with users when they attempted to issue commands.  
Some of the commands were one letter commands typical of sub-
routines, while other commands were 2-lettered commands which 
could invoke other sub-routines. Additional confusion was arising 
by using <ENTER> to exit these additional sub-routines as well as 
the 2D display sub-routine.  To address this issue 2D display 
routines were changed from a sub-routine to a display mode. The 
user can enter the 2D display mode with commands like "CP", "IP" 
or the new command "2D". To revert back to the 1D display mode the 
user uses the command "1D".

The following single letter sub-routine commands needed to be and 
were modified:
1 to P1 - display top projection
2 to P2 - display right projection
3 to P3 - display bottom projection
4 to P4 - display left projection
C to CP - contour plot or display
I to IP - intensity plot or display
+ to C+ - positive contours only
= to C+ - positive contours only
- to C- - negative contours only
0 to C0 - both positive and negative contours
] to "plane +" move to next plane of 3D data
[ to "plane -" move to the previous plane of 3D data

8/27/2001 2:26 PM
COMPARE - A new non-two-lettered command which allows the 
comparison of a previously peak-picked 2D file to the current 2D 
display. The files do not need to be the same sweep widths, 
spectrometer frequencies or data sizes.  The previously peak-
picked and saved 2D data set has its header read and an assigned 
letter is displayed over any current 2D display wherever a peak 
was picked using the PPMs values in both dimensions. While doing a 
1D or 2D display  issue the non-two-lettered command "compare 
<ENTER>". A dialog box will be presented to the user in which to 
select any previously peak-picked 2D spectrum saved in NUTS type 3 
header (this operation requires NUTS Professional version).

Other commands are:
  compare       // ask for a filename for 2D comparison
  compare -on   // turns on compare display when doing 2D display
  compare -n    // turns on compare display when doing 2D display
  compare -off  // turns off compare display when doing 2D display
  compare -f    // turns off compare display when doing 2D display
  compare -clear   // clears the 2D comparison list
  compare -c       // clears the 2D comparison list
  compare -marker X    // set marker letter for this file to "X"
                       // and ask for a filename
  compare -m X         // set marker letter for this file to "X"
                       // and ask for a filename
  compare <filename>  //  compare to file named
  compare -m X <filename> // compare to filename using marker "X"

If no filenames are given in the command line a dialog box will be 
presented to the user allowing selection of a filename for the 
compare operation. This is true regardless of whether a -m letter 
assignment is given. If a -m letter assignment is not given by the 
user, then the first comparison file uses the letter "A", the 
second comparison file uses letter "B" and so on.

8/24/2001 3:19 PM
LC or LoadCurrentFile - A command was added similar to GA except 
if, through other means there has already been prepared a file 
name for FileA, the command does not ask for a filename but just 
loads the current FileA. If there is no current FileA name a 
dialog box pops up requesting the user to select a file for 
loading. In the non-two-lettered command mode an argument can be 
used as the file name to be loaded, making the command identical 
to GA with an argument.

8/22/2001 9:31 AM
IM - Elcint -Added the calculation of SW from "pixel bandwidth" in 
the Elcint header at group_number 0x0018 and element number 
0x0095. The "pixel bandwidth" was taken as AT.

8/15/2001 10:28 AM
HDRSEARCH - the header search routine had problems when spaces 
were in the key word field before the equal sign. The routine was 
modified so that when the desired search field has spaces before 
the equal sign it can be enclosed in double quotes and the routine 
works as expected.

8/14/2001 2:11:22 PM
LF The "O" sub-command to optimize a single NMR line was causing a 
crash while the "A" sub-command to optimize all lines worked 
normally.  This was fixed so both work as desired

8/9/2001 3:13 PM
Fonts - The color selection for fonts was not working. The problem 
was identified and code was added to let the user select the 
various font colors.

8/8/2001 2:07 PM
FA  When the font for a 2D right hand vertical axis was made 
larger than 12 point, it changed to a horixontial font and would 
not go back to a vertical font without restarting NUTS.  The code 
was checked and there was no coding error but it seems that the 
Windows Common Dialog routines for font selection do this on their 
own.  Code was added to force vertical orientation whenever this 
font was changed.

7/12/2001 1:01 PM
The HeaderSearch and UID search commands were changed to create 
the search results file which is displayed by Notepad.EXE to be 
created in the current windows defined TEMP directory.  This 
should allow read-only cd archives to be searched.

7/11/2001 3:27 PM
HeaderSearch -  a new non-2-lettered command was added, similar to 
the UID command, which allows the user to search for any sub-
string in any header field. The command is "hdrsearch" or 
HeaderSearch and takes a first argument of the NUTS header field 
to be searched and a second argument of a sub-string in that 
header field to be matched.  Examples:

hdrsearch ##TITLE benzene

HeaderSearch ##TITLE benzene

either command would allow the user to pick any file in a user 
specified directory.  Then all NUTS files in that directory would 
be searched in the comment field (keyword ##TITLE in the NUTS 
header) for a sub-string case-insensitive match to "benzene". 
Notepad will open in a windows and the search results displayed.


7/10/2001 11:39 AM
UID  A new field has been added to the Acquisitions Parameters 
called UID for Unique IDentifier. It is a string for use by the 
user to identify a sample or set of samples. An example of its use 
could be to identify all spectra run for job number <AnyString>. 
The UID is stored when a file is saved and is recalled when a file 
is read if a UID exists in the header for all NUTS files of Type 3 
only. Associated with this command is the non-2-lettered command 
"passwd". Usages are exampled below:

passwd <new password> <old password if password currently exists>

if UID does not now exist regardless of password:
uid <UID>

if UID exists and no password has been set
uid <UID>

if UID exists and password is set
uid <NEW_UID> <root passwd> 

To search for all files with sub-string matched to "SearchUID"
uid -s SearchUID
and select any file in the desired search directory. Notepad will 
be opened and the results displayed.


7/4/2001 6:43:32 PM
IM - Added Elcint Imager(now owned by GE Medical Systems) 
spectroscopy data import filter. To import the file double-click 
on the desired file. There are still a lot of open questions about 
this file import. As we gain more information we hope to improve 
the filter.

7/4/2001 11:41:32 AM
IM - Added Azara Unix Real Blocked data import filter. To import 
the file double-click on the text parameter file.  The parameter 
file usually ends in "*.par".

6/30/2001 8:42 AM
ED - (non-2-lettered command "EliminateDispersion") was modified 
for ways to provide faster operation. In the 2-lettered command 
mode, or in the non-2-lettered command mode with no arguments, 
NUTS uses the zoom region to do a 1 parameter fit to amplitude 
using a fixed T2 = 10.0 and W0 = 0.0.

The command will take arguments when operating in the non-2-
lettered command mode. Examples are:
  ED 1          //  same as default mode above
  ED 1 20       //  1 parameter fit to amplitude using T2 = 20.0 
and W0 = zero. 
  ED 2          //  2 parameter fit to amplitude and T2 with W0 = 
zero. 
  ED 3          //  3 parameter fit to amplitude, T2 and W0.

6/28/2001 10:50 AM
ED - (non-2-lettered command "EliminateDispersion") A routine to 
reduce residual dispersion lines at the center of a water 
saturated spectrum was added at the request of Jerry Dallas and 
Marc Alder at Berlex per the reference:
Adler  M.,  and  Wagner, G. "A New Technique for the Removal of 
Baseline Distortions  Caused  by  Strong  Water Signals." (1991) 
J. Magn. Reson. 91, 450
To use it zoom in on the residual water peak. That region will be 
used to fit a dispersion line:
   I(w) = a*(wo-w) / ( (1/T2)2 + (wo-w)2 )
using three parameters wo, T2, and a.  This fitted calculated 
dispersion line is subtracted from the entire spectrum (all real 
data points).

6/26/2001 1:38 PM
Some Unix NMR data files are in directories where the parameters 
are ASII files with keywords. Reports and examples of parameter 
files with unexpected blank lines started being found.  This may 
be the result of changes in the way the Vendors were writing to 
these files or due to corruption during data transfers between 
multiple computers.  Changes were made to the NUTS importing 
filters to make the imports less sensitive to these unexpected 
blank lines.

4/25/2001 4:12 PM
Expert Mode - A command to set the "expert mode" was added to the 
non 2-lettered command mode.  Type "expertmode <ENTER" for usage.

4/25/2001 2:12 PM
IM or Import - The Import command was expanded to work with the 
non 2-lettered command mode and be capable of taking an argument 
which is the filename to import.

4/25/2001 12:01 PM
IM - Some corrections were added to the program to help prevent 
trouble when files with multi-line comments are imported.

3/9/2001 3:33 PM
IM - Tecmag files were being incorrectly imported. The problem was 
structure alignment in C.  All structures were forced to 2 byte 
alignment to sole the problem.

3/6/2001 2:30 PM
LN The Forward Linear Prediction was causing non-reproducible 
crashes in the arrayed mode.  It also showed a false picture of 
the data after completing the LN when it did not crash.  The 
memory allocation routines were changed to a more conservative 
method which fixed the second problem and has avoided the crash in 
tests to date.

2/27/2001 2:39 PM
IM – Some Windows 9X systems were crashing after a file was 
imported, a plot was done, and another file was imported.  This 
never occurred on Windows NT, Windows 2000 and did not happen on 
most Windows 9X systems.  After much effort it appears that this 
is due to an OpenGL math floating point but in the Windows 9X 
operation systems.  We made a change in the importing routines to 
“work-around” this problem.  Hopefully the bug will stay dead!

In the process of developing this work-around and for other 
developmental considerations the importing code was removed from a 
DLL and incorporated into the NUTS executable program itself.  
Therefore the TRANLIB.DLL module is no longer required for NUTS 
operation. 

2/20/2001 2:48 PM
JCAMP – some changes were made to the JCAMP exports in response to 
a BARF and to be more compliant with JCAMPDX examples.

2/1/2001 4:51 PM
IM – The TranLib.DLL auto identification for JCAMP files was made 
less sensitive to spaces around the “=”.

2/1/2001 4:36 PM
EZ a default selection of the first zoom value allowed an <Enter> 
to close the dialog box.

2/1/2001 3:40 PM
ID In the ID subroutine, the Menu Baseline / Apply Baseline 
Correction did not work. This was corrected.

11/7/2000 10:42 AM
IS -  The axis tick density adjustment was not working for 
Inserts.  This was corrected.

10/24/2000 11:23 AM
PS – this command was broken by adding phase number readout to the 
PH routine.  This was corrected again.

10/24/2000 11:18 AM
DI - A command (DI) to take a directory listing of the NUTS root 
directory and email it as an attachment was added to NUTS.

10/23/2000 3:40 PM
NUTS - Checks for file errors in the Licensing configuration were 
added to the NUTS startup routines.

10/22/2000 11:03 AM
IM - A first pass at direct importing of JEOL Delta data files was 
added.

10/13/2000 11:14 AM
invert – A command was added to invert either the even or odd 
slices of a 2 or 3D dataset.  This command works only in the non-
two-lettered command mode and only during arrayed mode operation.
Examples:
  invert odd
The above command would invert every odd numbered slice of the 
current dataset.

  invert even
The above command would invert every even numbered slice of the 
current dataset.

  invert real
The above command would invert all reals for every slice of the 
current dataset.

  invert imag
The above command would invert all imaginiares for every slice of 
the current dataset.


10/6/2000 10:33 AM
PH – The onscreen reported phasing done was not being updated when 
a TD was done or when a new file was loaded.  Therefore, the 
reported phasing was incorrect after the first time it was used.  
The correct updating was added.


9/27/2000 11:53 AM
IP - Protection was added to the code for doing side projections 
to prevent a program crash when the user tried to use a spectrum 
which had no data points in the desired display range.


9/25/2000 9:34 AM
LF – The manual menu selection for File/Write would work only if a 
filename had been previously set in a macro.  This was corrected 
to always force a file write dialog box when manually selected.

9/21/2000 1:48 PM
XT -  The extract spectral region command was expanded to allow 
extraction of slices from a 2D data set.  When in the non-arrayed 
mode or the two-lettered command mode, the command works as before 
and extracts to spectral region defined by the zoom limits.

When used for extracting slices of a 2D data set, the command 
works only in the Arrayed mode and only in the non-two-lettered 
command mode.  It takes at least two arguments with an optional 
third argument.  The base command can be XT or extract.  Examples:

Extract –2 FirstHalf
This command would take the current data set and remove the last 
half of the data slices.

Extract –2 LastHalf
This command would take the current data set and remove the first 
half of the data slices.

Extract –2 128 256
This command would take the current data reduce it to the slices 
between 128 and 256 inclusively.


9/21/2000 1:46 PM
Yn  - The command to peak register data slices was modified to 
register on the largest absolute value point and not the largest 
positive point.


9/3/2000 12:31 PM
UUENCODE AND UUDECODE – When Nuts is in the non two-lettered 
command mode a file may be uuencoded or uudecoded with the 
following format of commands:
Uuencode FileNameIn FileNameOut
Uudecode FileNameIn FileNameOut

If the filenames donot contain a full path then the path is 
assumed to be the NUTS root directory.

9/2/2000 2:42 PM
AxisPen – When NUTS is in the non two-lettered command mode the 
command “axispen” may be used to change some of the 
characteristics of the axis line. Examples are:
Change the screen only axis line to a width of 2
  axispen screen 2
Change the axis line to a width of 2 only when printing
  axispen print 2
Change the axis line to a width of 2 for both screen display and 
printing
  axispen both 2
Change the color of the axis line to red 
  axispen 255 0 0
Change the color of the axis line to green 
  axispen 0 255 0
Change the color of the axis line to blue 
  axispen 0 0 255



8/24/2000 4:03 PM
GB – When any GA, GB, or GC command was given the current file 
name for File A was updated to the file name given.  This was 
causing some problems when reading and interleaving a complex 2D 
data set when the reals and the imags were in separate files. This 
was changed so that the file name was not ALWAYS updated/

Interleave – A new command was written to interleave two data sets 
into a new data set.  This command works only in the non-two-
lettered command mode and only for the Complex Arrayed Mode.  The 
two data sets must have the same number of points and slices.  The 
resulting data set will not have been saved.

Interleave FileName1 FileName2


8/24/2000 10:19 AM
IS – The InSert routine was modified to include any DC offset the 
displayed spectrum had when the insert was created.  In addition 
the “[“ and “]” keys were activated when in the insert routine to 
add and subtract DC offset for the current insert.

8/24/2000 9:01 AM
ID – The menu selection under Edit for zeroing out the integrals 
did not do anything.  The “Z” keystroke did work correctly. The 
menu choice was activated and now both the menu choice and the “z” 
keystroke work.


8/23/2000 5:03 PM
SUM – There was a coding error in the sum routine which put the 
sum of the reals into both the reals and imaginaries. This was 
corrected so that the sum of the reals goes into the reals and the 
sum of the imaginaries goes into the imaginaries.

8/21/2000 1:42 PM
IE – When used in the non-two-letter command mode, IE (or 
IncrementExt) can now take arguments. With no argument, the 
command acts as previously (increments the file extensions of 
FileA, FileB and the Import File name, if they have numerical file 
extensions which can be incremented).  The new functionality 
allows the use of arguments.  If IE is followed by either "A" or 
"B" with no second argument, then the extension for file A or B, 
respectively,  will be incremented by one.  If there is a second 
argument it will be used as the amount by which the file extension 
is incremented. If the second argument is "2" the file extension 
will be incremented by 2, etc. Negative numbers are allowed as 
long as the decremented (negative increment) extension will be 
greater than zero.
IE [A or B] [amount] 
IncrementExt [A or B] [amount]
It is important to understand the subtle distinction between the 
commands "IA" and "IE A".  IA increments the slice counter of a 2D 
file to the next slice.  "IE A" changes the current name of file A 
by incrementing its file extension (provided file A's name has a 
numerical file extension).

8/18/2000 8:08 AM
ZeroDiagonal – A non-two-lettered command which takes either one 
or two arguments.  If only one argument is given then the command 
takes a 2D data set and zeros the diagonal plus and minus the 
argument number of points.  If two arguments are given then the 2D 
data set’s diagonal is zeroed plus the first argument number of 
points and minus the second argument number of points.
Usage:
ZeroDiagonal [+ points] [-points]


RU - The ability to set the default directory for NUTS macros was 
added to the NUTS.INI

WP – The current default path for NUTS macros was added to the 
Which Paths (WP) command.

RU - The ability to set SW1 and SW2 was added to the DO MATH macro 
routines.

IM – The Bruker JCAMPDX exports were found to be using a non-JCAMP 
standard for setting the reference offsets.  In addition, these 
exports were found to be incorrectly setting the FIRSTX values.  
This combination of errors was producing a JCAMPDX import from 
Bruker JCAMPDX exports with an incorrect reference value.  The 
import filter was changed to look for the ##$OFFSET value in a 
JCAMPDX import and if found to use it to set the referencing.  If 
not found the referencing is still set with the values from FIRSTX 
and LASTX.

8/5/2000 10:11 AM
PI – The Phase Increment (PI) command was expanded.  In the non-
two-lettered command mode, the PI or PhaseIncrement command can 
take optional arguments. If one argument is given it is used as 
the A phase value when doing the phase incrementing. If two 
arguments are given they are used as the A and B phase values when 
doing the phase incrementing. If three arguments are given they 
are used as the A, B and C phase values when doing the phase 
incrementing. In addition, if the first argument is “-cosy” the 
command does a special case of phase incrementing which allows the 
diagonal of a 2D data set to be phased to the desired addition 
three arguments as above.

8/1/2000 1:31:25 PM
PC (Long command PhaseCorrect) Some filters on Varian and JEOL 
data create peaks which cannot be phased with only a zero and 
first order phase correction.  The phasing routines were modified 
so that in the non 2-lettered command mode, the PC and 
PhaseCorrect commands can take 3 arguments.  The first argument is 
the zero order phase amount, the second argument is the first 
order phase amount and the third argument is the second order 
phase amount.

JJ - Carbon shift search - The non 2-lettered command mode 
commands “pattern”, “name”, “range” and “reference” were changed 
to “cpattern”, “cname”, “crange” and “creference”. This is in 
preparation for adding the proton equivalents -“hpattern”, 
“hname”, “hrange” and “hreference”.

7/23/2000 11:34 AM
SUM – a new command for the non 2-lettered mode of operation was 
added.  This command with no arguments (or SU in the 2-lettered 
command mode) adds all slices of an arrayed data set and creates a 
single 1D data set which is the sum of the slices.  In the non 2-
lettered command mode it can take two arguments:
Sum [start] [end]
Used with one argument sum will create a 1D spectrum which is the 
sum of all remaining slices starting with slice [start].  Used 
with two arguments sum will create a 1D spectrum which is the sum 
of all slices from slice [start] to slice [end] inclusive.

DIVIDE – a non 2-lettered command mode takes in one argument and 
divides the current data set by that number.

MULTIPLY – a non 2-lettered command mode takes in one argument and 
multiplyes the current data set by that number.

VW – When viewing an arrayed data set in complex arrayed mode, a 
“Z” will zero the displayed slice.


7/20/2000 11:21 AM
GA – Many times users with a Macintosh anywhere on their network 
contaminates a data file with a Macintosh Resource Fork.  With a 
type 3 NUTS header, the NUTS detection and reading routines were 
modified to ignore a Macintosh Resource Fork if it is present.

7/19/2000 11:13 AM
GA – The identifying as a nuts file and the reading of a Type 3 
header was modified to be insensitive to multiple line comments.

LF – Reading a lines file in a non-macro mode failed to ask the 
user for a file name.  This was corrected to bring up a dialog box 
for selecting the file name to open.

7/16/2000 9:04 AM
ZO – A bug which crashed NUTS when the F sub-command of the ZO 
sub-routine was issued only on Windows 9x systems only after 
printing was isolated and fixed.

7/11/2000 11:27 AM
IM  The reference offset (O1) was changed in the MacFID import 
filter.

7/7/2000 12:21 PM
IM – Processed Galactic SPC type III data saved as reals only was 
being imported with incorrect referencing. The TRANLIB.DLL was 
updated to get this information correct.

7/7/2000 8:12 AM
LF – Single letter sub-commands were added for the “Get Lines 
Information File” (G) and Write Lines Information File (W).  New 
macro commands were added to set the file names for these 
operations:
  SET LF_GET_FILENAME   = xxxxxxx.yyy
  SET LF_WRITE_FILENAME = xxxxxxx.yyy
The operation of these commands were made Macro aware.

Another set of Macro Commands were added to increment any filename 
extensions for these file names (xxx.001 to xxx.002):
  DO INCREMENT_LF_GET_FILENAME
  DO INCREMENT_LF_WRITE_FILENAME

6/14/2000 12:33 PM
SM  Computer shimming was added to the SAM module.  Two methods 
were added, one where the system shims like a person would (Sub-
Command A) and another which uses Simplex(Sub-Command B).  Both 
shim to the same Z level as Randomize Level is set to (Sub-Command 
E). If a spectrum is being displayed (Sub-Command S) then the Lock 
Level is used for shimming. If a FID is being displayed (Sub-
Command F) then the power value of the FID points is used. When 
shimming with the A Sub-Command, a shim log (shimlog.txt) is 
created in the current NUTS data directory.

6/12/2000 10:17 AM
For NUTS header type 3, the D1 list was neither saved nor read.  
This was changed to read and save any D1 list with the file.  The 
TRANLIB.DLL was also updated to have this feature.

6/1/2000 3:28 PM
DP – 2D DP pick lists can now be saved with the file in header 
type 3 when in arrayed mode.  When re-loading the file the DP list 
will be loaded if NUTS is set to auto read the tailer or on the TA 
command.

5/29/2000 8:45 AM
BT – A code error on doing a Bruker FT with a non-power of 2 data 
set was corrected.

5/24/2000 1:46 PM
TA – An extra CR/LF was being added to the tailer with header 
types 1 and 2.  This was causing a failure when the tailer was 
read from these files.  Broken integrals and other tailer 
information could not be successfully recalled with the TA 
command.  This problem was corrected.

5/18/2000 5:30 PM
Edit Display Parameters while in IP/CP routine -  The old values 
for the margins were not being saved when the user entered the 
Edit Display Parameters from the Edit menu while in the IP or CP 
display routines.  This cause the values to be set to zero if the 
user canceled with the CANCEL button. This was fixed.

5/12/2000 2:01 PM
IN – The In command was modified to allow batch processing with 
the FF command to be done on files which do not have file name 
extensions which can be increment.  Links like:
  FF FT PS SA IN
Before the modification links like the one above would fail if the 
file names could not be incremented even though the incremented 
filename was not being used.  Now if NUTS is running a link with 
an FF command the IN command is aware of this process and responds 
accordingly.

5/11/2000 1:51 PM
Display Crash – On some Windows NT 4.0 systems with the display 
running at 1280 x 1024 or higher resolution, making the NUTS 
window go to full screen was causing a memory violation.  This 
happened only in the QD mode and not the SD mode.  One user 
reported that it happened only sometimes and another reported that 
it happened every time. It only happened with NT 4.0 and only on 
some systems not on all NT 4.0 systems and never on a Windows 2000 
or Windows 9x systems. We could not reproduce this in house on 
several NT 4.0 systems but did a fresh NT 4.0 SP6 installation on 
an old P90 system and got reproducible failures. The display 
compression code was found to be the area of the memory failure, 
but no coding or compiling errors were found. The drawing of the 
spectrum was changed from a single Polyline of screen width 
resolution to a series of Polylines of 256 steps per Polyline.  
This fixed the problem on our one problem test system.

4/28/2000 11:19 AM 
LF - The LF fitting routines were modified to allow some of the 
fitting parameters to be held constant during the calculation of 
the best fit.

4/22/2000 10:14 AM 
R# - where # is a digit between 0 and 9.  This routine registers 
an arrayed set of 1D spectra.  The desired spectral region is 
selected by setting the region while in ZOom with the # key where 
# is a digit between 0 and 9.  The corresponding R# command will 
use this region to find the tallest peak in the region and left or 
right shift the remaining spectra to make the tallest peak in each 
subsequent region have the same chemical shift.  The ends of the 
shifted spectra are lost or set to zero.  This routine works in 
the non-arrayed mode or Complex Arrayed Mode.

In the process of this change, the old command R2 for take the 
square root of the data was changed to RO.

4/22/2000 10:31 AM 
Axis in SP - Bug which cause the axis to be full x size in stacked 
plot was corrected to allow x size equal to the first spectrum.

4/22/2000 3:44 PM 
MH - The MH command was modified to allow use in the non-two 
letter command mode.  The command can be MH or MinHt and if it has 
no arguments then the standard dialog box comes up and allows the 
user to enter an MH value.  If it has one argument that argument 
is converted to a number between zero and 100.0 and the MH value 
is set to that number.  If it has two arguments and the second 
argument is "rms" then the first argument is converted to a number 
and the MH value is set to that argument times the current rms 
noise of the spectrum.


4/23/2000 2:50 PM
The LF routine was modified to allow exclusion of some line 
parameters during the auto-fitting routine.  The default was set 
to fit all parameters of each line except the Fraction Lorentzian 
lineshape parameter which is by default set to 1.

4/23/2000 3:24 PM 
Some corrections were added to better handle some Bruker WinNMR 
data.

1/13/2000 Version 200001xx
JJ-  A new carbon pattern search routine was added to NUTS.  This 
routine is documented in the help files.

10/18/99 Version 199910xx
DP  An error in the placement of peak labels for negative 
peaks when baseline DC position was not zero and when 
peak labels at top was turned off was corrected.

DP  A menu check item under the DP / Edit menu was added to 
change the default behavior of the automatic peak picking 
for the labels On Top.

DP and PP  A tendency for NUTS to falsely find a small peak 
to the right of an already selected negative peak was 
corrected.

10/17/99
BU  Two errors in the Buffers sub-routine 
addition/subtraction/multiplication/division routines 
were corrected.  Error 1 gave an offset frequency error 
proportional to the distance from PPM equal zero when the 
two spectra had different SF values.  Error 2 was an 
incorrect interpolation when the data points were 
unequal.

QB  QB was modified to take optional parameters in the non 2 
letter command mode.  If no parameters are given then the 
routine works as before and automatically selects regions 
and corrects the baseline by a least squares fifth order 
polynomial.  If there is a first parameter it is used as 
the block size in points for the segmented correction and 
the multiple of RMS noise is the value of fRMS set in the 
peak picking routines.  If a second argument is given it 
is used as the multiple of RMS noise.  If a third 
parameter is given and is "show" then the current data 
set is replaced by the deduced baseline.

10/7/99
PH and PE – These commands were modified to be array mode 
aware.  When used in the arrayed mode to interactively 
phase a single slice these commands on exited apply the 
determined phase correction to each slice of the data 
set.

10/6/99 Version 199910xx
TD – The use of header type three was creating some illegal 
memory errors when doing "some" TDs in the non-arrayed 
mode.  This was worked around by eliminating some of the 
unused header information.

9/28/99 Version 199909xx
License – A new encryption method for the NUTS license was 
developed and placed in a DLL.  This was done because of 
a Russian cracker was distributing a license generator 
for NUTS.  All NUTS licenses will need to be regenerated 
when upgrading to newer versions of NUTS.

10/1/99 Version 199910xx
Windows 3.1  Memory allocations methods were changed to 
allow the Windows 3.1 Win32s version to be updated to the 
current level of NUTS.

7/26/99 Version 199907xx
Substitute - In the non-2 letter command mode and in arrayed 
mode only, this command takes either 2 or 3 arguments.

If there are 2 arguments then the first argument is the 
target slice and the second argument is the source slice.  
If the program is in the "complex arrayed mode" then the 
source slice will be written over the target slice.   If 
the program is in the "3D complex arrayed mode" then the 
source slice will be written over the target slice for 
every plane.

If there are 3 arguments then the first argument is the 
plane in which the second argument (target slice) will be 
written over by the third argument (source slice).  This 
works only in the "3D complex arrayed mode".

Planes - In the non-2 letter command mode this command takes 
an argument of the plane number of a 3D data set to make 
the current default.  Substitute 

Transpose 2 or 3 - In the non-2 letter command mode the 
Transpose (TD) command accepts an optional argument of 
"2" or "3".  The default action if no argument is present 
is "2".  This command operates on the current multi-
dimensional data set to bring the indicated dimension 
into the first dimension.  Whatever dimension of the data 
is in the first dimension has the power of NUTS's 1D 
processing tools available.

Array – (AR)  Professional Version Only. In the non-2 letter 
command mode, the array command now accepts a "3d" 
argument.  When the command is processed the current data 
set is loaded into memory as a 3D NMR data set with pts3d 
planes of pts2d slices of pts1d complex points of data 
and the status bar shows the program in the "3D Complex 
Arrayed" mode of operation.  Similar to the older 
"Complex Arrayed" mode of processing 2D data, when 
commands which are "array aware" (such as FT MS etc) are 
issued the entire data set is processed with a single 
command.

DIMS – A command available in the non-2 letter command mode 
which allows a block of data to be redefined as to the 
number of points in the four dimensions.  The total data 
size is checked before and after the redimensioning and 
an error is generated if they are not the same.  If the 
user is really sure (NOT RECOMMENDED) a fifth argument of 
"override" is allowed and the redimensioning will take 
place regardless of whether the point count before and 
after are different.

For example:
  Dims 512 64 4 1 override
Would change the block of NMR data to have:
  512 complex points in the first dimension
   64 slices of data in the second dimension
    4 planes of data in the 3rd dimension
    1 volume of data in the 4th dimension
Improper use of this command can cause program crashes 
when processing the data after its improper use. 

6/29/99
IP - The 2D display routine has been expanded to provide 
more options for displaying high resolution spectra on 
the borders.  Spectra can now be placed at the top, 
bottom, left and/or right edges.  These border spectra 
can now be clipped to allow showing of small peaks.

The 2D axes now have editable labels, so they can be more 
descriptive.  They can be edited in the View / Spectral 
Parameters dialog box.

6/11/99 Version 9911xx
IM – Bruker Aspect imports changed to show date in Nuts as 
4-digit year instead of 2-digit year.  If year as read 
from file is <80, Nuts assumes this must be a date after 
2000.  Otherwise, it is assumed to be a date 19xx.

Bruker XWin-NMR import of 2D .ser files was modified to 
read the chemical shift offset for the indirect dimension 
from the proc2s file.

Bruker X32 imports changed to read PULPROG instead of 
AUNM for the name of the pulse program.

Bruker X32 1D imports changed to read OFFSET from procs 
file to get correct chemical shift reference.

Bruker XWin-NMR import was changed to swap real and 
imaginary halves of the data, as this seemed to always be 
required.


CR – A dialog box allowing the setting of the contour colors 
has been added.

LV – A dialog box allowing the setting of the contour levels 
has been added.


6/04/99
MA -  There are 100 memory locations (even though the Math 
dialog box shows only the first 10). The memory registers 
above 9 in the math routines could not be transferred to 
a register.  This was corrected so that Memory x to 
Register y works for x between 0 and 99 and y between 0 
and 9 inclusively.

IP – Some changes have been made to display of projections 
or 1D spectra on the edges of contour plots.  The Display 
menu now has commands to clip each projection to prevent 
the tall peaks from being drawn over the contours when 
the vertical display is increase enough to see small 
peaks.  If a true projection is used, rather than a 1D 
spectrum, it can now be scaled and clipped also, and is 
no longer recalculated when the screen is redrawn.

XB and XR – These commands have been replaced by menu items 
inside the contour plot subroutine, and so have been 
eliminated.

Header Type 3 – the NUTS header type three is now ready for 
use.  This header is a JCAMPDX style ASCII header with 
several NUTS specific options.  The data remains binary 
IEEE floats in Little Endian (Intel) format after a ^Z in 
the header. 

NUTS can transparently read all NUTS header types and 
saves data according to a flag in the NUTS.INI.  Header 
Type 3 is where most new features of NUTS will be 
supported and can expand indefinitely to allow for newer 
features.  The header type can also be set and queried 
with the "header" command (See Commands.txt).

In bringing out this header, 2D and File C operations 
were extensively debugged for all headers.
 
5/26/99 Version 9905xx
FB  A memory allocation error involving the FB and Zoom 
routines was corrected.  This error could cause Nuts to 
crash when Zoom was entered following baseline correction 
of an expanded spectral region.
 
5/24/99
IM  Files from some programs which output files in Felix New 
format failed to import correctly.  This was because 
these programs had a location in the header which 
indicated the wrong header type.  NUTS was modified to 
just assume these were NUTS files of header type 1.

5/23/99
Close File C – A bug developed keeping track of File C 
pointers and name.  This showed up mostly with header 
type 3, but was also present with other NUTS headers.  
Problems were most apparent when importing Bruker files 
with the RI on import flag set in the NUTS.INI file, or 
when zero filling (or processing with a FT on a non power 
of two points data set) in the non-arrayed mode.

5/15/99 Version 9905xx
2N and 2F – Commands executed in the NUTS base level were 
originally two letter commands that automatically 
executed after entering the second character on the 
keyboard. A new mode has been created allowing longer 
commands, which requires <ENTER> to execute a command. 
In this non two-letter command mode, commands can be 
longer than two letters.  This mode can be toggled on and 
off while NUTS is running with the 2N (2 letter command 
mode oN) and 2F (2 letter command mode oFf).
If the flag below in the NUTS.INI file is set to TRUE 
then the default behavior is that an <ENTER> is required 
before the command is executed.  
CR_FOR_COMMANDS = FALSE.
When this flag is set to TRUE all two letter commands 
will require an <ENTER> before they execute.

^C  A bug which prevented copying to the clipboard with the 
Control C command was fixed.

IM – The GE/Nicolet NT import filter was modified to correct 
dates after 12/31/99.  The NT software represents the 
year by 2 digits, and does not recognize 00 as a valid 
year.  NT owners should set the spectrometer's date to 
1980 for the year 2000, and to 1981 for 2001, etc.  When 
Nuts detects a date earlier than 1985, it will assume it 
is a false date, and will add 20 years to the date.

IM – The import filter for GE Medical Systems "raw" data 
from Signa systems was modified to read critical 
parameters from the file header.

5/14/99
^Z  An undo feature was added for the base level commands.  
Before any base level command is executed, a copy of the 
current file is saved to a temporary 10-layer file cache.  
After a base level command is executed, a Control-Z 
command can return the system to the state before the 
command was executed, by re-loading the previously saved 
copy.  This feature does not work in the subroutines.  
The undo function can be turned on with the UN (Undo oN) 
command and turned off with the UF (Undo ofF) command.  
Its default state when NUTS is started is defined by a 
line in the NUTS.INI file which is
UNDO = FALSE

Note 1 – The unsave feature is automatically disabled 
when processing 2D files in the non-arrayed mode.

   Note 2 - ^Z within the Zoom subroutine is a totally 
unrelated command.

5/12/99
IM  Some further improvements in the Galactic SPC file 
import filter were added.

5/5/99
FB-S  A new sub-command to the FB subroutine which selects 
all regions.  Useful if it is easier to deselect a few 
regions than to select a lot of regions not automatically 
selected.

FB-F  A new sub-command to the FB subroutine which is 
appropriately titled Fudge the baseline.  It takes all 
the selected regions and corrects each one for dc and 
tilt in each selected regions.  Unselected regions are 
corrected for DC and tilt based on the selected region 
before and after the unselected region, to avoid 
discontinuities.  This is useful for very distorted 
baselines that cannot be fit with a polynomial.

5/2/99
VP, GS, ZG  commands and vSpec menu were disabled in the 
Anazasi OEM copies of the NUTS program.

4/30/99 Version 9904xx
IM Anasazi files were being imported in a manner requiring 
an SR after FT.  This was corrected.

EF  Email File was added as a command on the File menu on 
the Windows platform only. If your system already has a 
Windows email client set up, you can email the current 
file to someone with this command. Since the disk copy of 
this file is what is emailed as an attachment, be sure to 
save the file if ANY processing has been done of the file 
since it was loaded from the disk.

WV  SH and VW caused problems while in the WV routine.  
These commands were disallowed while in the VW routine 
with an error message.

4/23/99
Y#  A new routine was added to do block averaging of an 
arrayed file.  If a series of 1D files are collected and 
stored as slices of a 2D file, then this routine can be 
used to average these files with peak registration to 
create a 1D file which is the sum of the slices.  A 
region containing a peak to be used for registration is 
chosen while in the zoom routine and assigned to a 
numbered zoom region by pressing a number key between 0 
and 9.  Then the command Y# is executed(# is a number 
with the same value as the chosen zoom region).  The 
result will be a 1D spectrum in memory which is the sum 
of all individual slices with peak registration on the 
tallest peak in the chosen zoom region.

CF A bug cause this routine to be broken. The bug was fixed. 

3/22/99 Version 990322
Galactic Import Filter – The Galactic Industries data format 
import filter was greatly expanded to support their 
importing.

3/20/99
License.NMR the reading of the License.nmr file was changed 
with improved encryption..

2/18/99 Version 990218
Gridlines – The ability to display gridlines on the screen 
and plots was added to NUTS. The display of gridlines can 
be toggled on and off with the Ctrl-G command. The 
default NUTS behavior is set in the NUTS.INI file with 
the parameter:
GRIDLINES = TRUE
If this parameter is set to anything else, the gridlines 
will not be displayed by default, but can still be turned 
on with Ctrl-G.  

IP Right Projection – a bug was fixed which had caused the 
Right Projection not to be displayed on full-spectrum 
contour plots. 

2/15/99 Version 990216
SL  In the non-arrayed mode, when a slice was loaded using 
SL, the parameters were not being reloaded.  This created 
problems, particularly if processing of a slice included 
any operation which changed the number of points in the 
data set (such as ZF or RT).  When a new slice was 
loaded, the parameters were incorrect.  The program was 
changed to force a re-reading and updating of the 
parameters with each new slice.  This slows the 
processing of 2D data in the non-arrayed mode a little 
but avoids operator confusion.

Target Cursor – A new feature was added to the cursor 
routine for read-out of frequencies.  In difference mode, 
the new feature shows the average chemical shift between 
the marker and the current position, in addition to the 
frequency difference.  This can be useful when measuring 
both the coupling constants and chemical shift of 
splitting patterns such as a doublet.   

2/13/99 Version 9902xx
LICENSE.NMR  The configuration of the NUTS software and its 
options have been changed.  All existing licenses should 
be automatically recognized and run as the correct new 
version.  The new configurations are:  

The demonstration version now allows printing, but with 
"Demonstration Copy" printed over the spectrum.  The 
demonstration version now includes the Virtual 
Spectrometer and Shimming Simulator.

NUTS Lite includes everything in the demonstration 
version, plus saving, printing and copying.  NUTS Lite 
now comes in two versions – with support and without 
support.  The "without support" version costs less but is 
not eligible for upgrades, technical support or site 
licensing. The "with support" version is eligible for 
upgrades, technical support and site licensing.

NUTS 1D includes everything in the Lite version, plus 
expanded tools for 1D NMR processing and now includes the 
Searchable Archiving tool.

NUTS 2D includes everything in the 1D version, plus tools 
for processing and displaying 2D data.

NUTS Professional includes everything in the 2D version, 
plus tools which allow arrayed mode processing.  On 
modern computers with enough memory, the arrayed mode is 
12 times faster on Windows and 40 times faster on a 
Macintosh.


2/10/99 Version 9902xx
RT and ZF  A bug was discovered and fixed when using these 
commands for the non-arrayed mode 2D processing of data 
which was not a power of two in size.

2/5/99
Macro   Added Macro commands to ask for the user to set 
values for the following processing parameters:
LB
GF
T1
T2
S#
For example, the format to ask the user for a value for 
line broadening (LB) the macro command would be:
ASK LB

2/5/99
MATH Added the macro commands below to the MATH routines:

DO MATH ZOOM_REGION i x y    

Sets Zoom Region i.  The value in register x becomes the 
left end of Zoom Region i (in ppm), and the value in 
register y becomes the right end (in ppm).  

DO MATH REGISTER x SW1 
Puts 1st Dimension sweep width into Register x 

DO MATH REGISTER x SW2   
Puts 2nd Dimension sweep width into Register x 

DO MATH MEMORY x SW1	
Puts 1st Dimension sweep width into Memory x

DO MATH MEMORY x SW2
Puts 2nd Dimension sweep width into Memory x

2/2/99 Version
IM Added the import filter for Bruker XWINNMR 2RR files.


1/24/99 Version 9901xx
IM Added the Date to the import filter for Bruker X32 files.

IM New import filters for JEOL AL files which have the 
extension *.als was added. These have been tested on 1D 
files only.

Some new Arrayed Mode commands were added, as follows.  
These commands facilitate processing of gradient data 
which must be processed by adding or subtracting pairs of 
slices.  (An example is Varian g_hsqc data, which uses 
the new C2 command.)

C1  This command works only in arrayed mode with data sets 
which have an even number of slices.  This command adds 
the reals and imaginariess of even and odd slices and 
gives back a data set with half the number of slices. 

C2   This command works only in arrayed mode with data sets 
which have an even number of slices.  This command adds 
the reals and subtracts the imaginaries of even and odd 
slices and gives back a data set with half the number of 
slices. 

C3  This command works only in arrayed mode with data sets 
which have an even number of slices.  This command 
subtracts the reals and adds the imaginaries of even and 
odd slices and gives back a data set with half the number 
of slices. 

C4  This command works only in arrayed mode with data sets 
which have an even number of slices.  This command 
subtracts the reals and subtracts the imaginaries of even 
and odd slices and gives back a data set with half the 
number of slices. 

1/20/99 Version 9901xx
Math  Four new items were added to the MATH macro commands.
DO MATH SF1   //  Put Reg 0 into SF1
DO MATH SF2	  //  Put Reg 0 into SF2
DO MATH REGISTER x SF1  //  Put SF1 into Reg x
DO MATH REGISTER x SF2  //  Put SF2 into Reg x
DO MATH MEMORY x SF1    //  Put SF1 into Memory x
DO MATH MEMORY x SF2    //  Put SF2 into Memory x

1/19/99 Version 9901xx
IM  Bruker Xwin NMR data files in directories with the sub-
directory name was a number greater than 99 were being 
mis-identified as a different kind of Bruker file.  This 
was changed to allow names to be numbers up to 999.

1/19/99 Version 9901xx
MO  An axis font multiplier was added to the MO_Helper 
dialog.  This is the factor by which the axis font will 
be multiplied when the inset plot is created.  The axis 
font of the main plot is not affected.

1/7/99 Version 9901xx
Metafiles  Metafiles were giving some problems with the size 
of the axis fonts depending on what was done with NUTS 
before the metafile was transferred to the clipboard or 
the a disk file.  The metafile creation routine was 
rewritten to improve this situation.

1/5/99 Version 9901xx
SM  Some timer functions were added to the ShiMming 
simulator in NUTS.  When the magnet homogeneity is 
randomized with the "?" sub-command, a timer is started.  
When the user says he is done and examines the correct 
answers with the ":" sub-command, the elapsed time is 
calculated and a shimming score is calculated based on 
the quality of the shims and the length of time it took 
the user to shim.

12/16/98 Version 9812xx
PP  Each time the PP command was issued the peak label 
setting was forced to be PPM.  This was eliminated so 
that whatever peak picking type chosen (hertz or PPM) in 
the DP routine was left in effect for the PP command.

12/15/98
BU  Dividing a spectrum by the buffer was added to the BU 
routine.

12/14/98
Cmd Key Q on the Macintosh  -  The Macintosh version of NUTS 
would exit on a CmdKey Shift Q key.  This was expanded to 
also exit on CmdKey "q" key.

ID  -  The V subcommand in the ID routine has two dialog 
boxes for data entry and display.  The size of these 
boxes was expanded to avoid clipping off digits.

12/10/98
ZO A bug got into the code where the Zoom Regions could not 
be assigned with a number key while in zoom.  The switch 
routine was keying on the ASCII code for the number key 
instead of the value for the number key except for "1" 
and "2".  This was corrected so that the appropriate zoom 
regions were assigned with the number key.

11/5/98 Version 9811xx
IM  -  The parameters for processing Bruker digitally 
filtered data was added to the JCAMP import filter.

MA  -  A provision for adding the number of decimal places 
to show was added to the Math calculator.  The Macro 
command for using this to set the number of decimal 
places to show to "x" is:
   SET MATH DECPLACES x

11/4/98
PP – A bug was fixed where if there a peak list from a 
recent spectrum was retained for display when a new 
smaller spectrum was recalled the program could crash 
when the program attempted to display peaks at data 
points beyond the end of the current data set.

11/2/98
JCAMP – The import filters were enhanced to import to import 
the following JCAMP-DX5 formats.
     XYDATA   //  For Reals only spectra
     BLOCKS   //  For Real and Imag pairs  
     NTUPLES  //  For Real and Imag pairs
Each of these JCAMP types can have five different forms 
of compression:
     FIX or AFFN  //  Uncompressed ASC II
     ASDF         //  Compressed ASCII
       * PAC    //  Packed 
       * SQZ    //  Squeezed
       * DIF    //  Difference
       * DIFDUP //  Difference with duplicate suppression

NUTS can export data as FIX XYData or NTUPLES.  No form 
of compression is supported for export.  2D copies of 
NUTS can export 2D data sets as NTUPLES.

10/15/98 Version 9810xx
MA – A new routine for doing calculations (Math) was added. 
While the routine can be used as a calculator from the 
user interface, its utility is in the macro area

There are 10 REGISTER, 10 MEMORY and 10 INTEGRAL 
locations.

The REGISTERs act like a stack where when a math 
operation is done it is performed between REGISTER_0 and 
REGISTER_1 and the answer is put in REGISTER_0 and 
REGISTERs 2 thru 9 roll down one level.

Use of the ENTER function puts the value in  REGISTER_0 
and rolls the stack up.

There is one comment field which will precede the value 
in Register 0 when the Note is created.

The math operations possible are:
   add
   subtract
   multiply
   divide
   reciprocal
   natural log
   log base 10
   exponential
   power


MACRO COMMANDS: --------------------------------------
SET MATH REGISTER x value  //  Set Reg x to "value"
SET MATH COMMENT string    Make "string" a comment

DO MATH +           //  These operations take 
DO MATH -           //  place on Register 0
DO MATH *
DO MATH /
DO MATH RECIPROCAL  //  1/Reg0
DO MATH EXP
DO MATH LN    //  Natural Log
DO MATH LOG   //  Log Base 10
DO MATH POWER //  Reg0**Reg1
DO MATH OF1   //  Put Reg 0 into 1st dimension offset(O1)
DO MATH OF2	  //  Put Reg 0 into 2nd dimension offset(O2)

DO MATH CLEAR //  Clear all registers, memory & integrals
DO MATH REGISTER x OF1  //  Put 1st Dim O1 into Reg x
DO MATH REGISTER x OF2  //  Put 2nd Dim O2 into Reg x
DO MATH MEMORY x OF1	  //  Put 1st Dim O1 into Memory x
DO MATH MEMORY x OF2	  //  Put 2nd Dim O2 into Memory x
DO MATH REGISTER x REGISTER y  //  Reg x to Reg y
DO MATH REGISTER x MEMORY y    //  Reg x to Mem y
DO MATH MEMORY x REGISTER y    //  Mem x to Reg y
DO MATH INTEGRAL x REGISTER y  //  Integral x to Reg y
DO MATH INTEGRAL x MEMORY y    //  Integral x to Mem y
DO MATH NOTE x_pos y_pos //  Cats together COMMENT and
                         //  Reg0 to a NOTE
                         //  at x_pos, y_pos 
                         //  percent of display,
                         //   a number between 0 and 100
DO MATH GET_INT  //  puts the Integral of Zoom Region x
                 //  into INTEGRAL x 
DO MATH ENTER value   //  Puts "value" into REG 0 and
                      // rolls the stack up.

ASK MATH REGISTER x   //  Ask for a value for Reg x
ASK MATH MEMORY x     //  Ask for a value for Mem x


10/5/98
SM – ShiM  A small version of the shimming simulator (SAM) 
has been added to NUTS.

9/8/98 Version 9809xx
NS – The memory allocation method used in the NS routine was 
causing some problems on some systems when doing 10, 11, 
and 12 spin simulations depending on which OS was used 
and how much memory was available.  This area was 
improved to cure the problems found.

9/3/98
IP – A bug was reported in the beta which was tracked down 
to a problem when the file header needed to be updated.  
By default any header writing to the disk copy of the 
file was done in the new format.  The problem was tracked 
down to a few places where the header was updated (to the 
new file format) and the data part of the file was left 
as it was (in the old format).  This was corrected.

IM – The Macintosh version of the import routine failed to 
identify and import the NMRi VAX data while the Windows 
version functioned correctly.  This was due to a byte 
swap problem and was corrected.

8/31/98 Version 9808xx
IP – A menu specific to the IP routine was added. Included 
on this menu is the ability to define the spectra to be 
used at the right and/or bottom edge of the 2D display.  
This method can be used in addition to XB and XR 
commands.

8/28/98
BU – A new routine was added to NUTS (full 1D and above – 
not available in NUTS Lite) which allows 10 memory 
buffers to be filled with the current displayed data 
(zoom region or full data set depending on display type). 
This buffer can then be displayed above any data set 
loaded into NUTS even if the point size or spectrometer 
frequency is different.  The displays are registered in 
PPM with the current data set.  Amplitude and vertical 
display position for each buffer can be adjusted in the 
BU routine.  The current data set can also be added, 
subtracted or multiplied by any buffer.  Since the number 
of data points in the current data set or any buffer does 
not have to be the same, the addition routines make an 
attempt interpolate between points to do the addition or 
subtraction.  When the spectrum and buffers are very 
different the results are sometimes not as good as 
desired.    

8/1/98
File format -  To make way for expansion of NUTS to more 
than 2D spectra, a new NUTS data format (NUTS data format 
Type 2) was developed from the original format (NUTS data 
format Type 1 or CDFF). NUTS can automatically read 
either format but will write the Type 2 format by 
default.  There is a flag in the NUTS.INI allowing the 
user to tell NUTS to write the old type 1 format. 

7/16/98 Version 9807xx
IS -  The IS routine was modified such that if in the IS 
routine an Insert is partially out of the current display 
it can still be moved with the mouse.  Before the entire 
Insert needed to be inside the current display before it 
could be moved.

PP and DP – A flag was put into the NUTS.INI file to allow 
the user to turn off the automatic peak label avoidance.  
This feature can also be invoked in the DP peak 
description dialog box the user gets when right clicking 
on peak label while in the DP routine.

7/4/98 
Help – The NUTS help system was converted to HTML help.

7/1/98 
IM – A new import filter for TecMag NTNMR data was added.

6/29/98 Version 9806xx
ZF - A pointer to a memory allocation space was changed to 
eliminate a strange program crash.  The crash was strange 
in that it did not happen every time and happened 
differently on different PCs.

LN –In arrayed mode, a call to free memory used the wrong 
pointer.  While no errors were visible to the user, a 
memory leak was happening.

5/30/98 Version 9805xx
NS – The NMR spin-spin simulation routines were improved to 
be faster.  For example with a Pentium Pro 200 computer 
the molecule propane (8 spins) took about 16 seconds to 
calculate.  After the modification the calculation takes 
about 1.5 seconds.  On the same computer butane (10 
spins) took 54 minutes 16 seconds (3256 seconds) before 
and takes under a minute (55 seconds) after the code 
changes.  The number of calculations required increases 
much faster with increasing spins than the number of 
spins.  Therefore, the speed improvements are greater 
with a higher number of spins.

5/29/98
IM  - A new type of Bruker file format was discovered. This 
type arises which the file is transferred from a Bruker 
Aspect computer to a PC with a file transfer method 
called BrukNet.  This transfer starts with a file with a 
name like BASENAME.EXT.  When transferred to the PC the 
user gets two files with names like:
  BASENAME.EXT+   The binary data
  p_BASENAME.EXT  The parameters
An import filter for this file type was added. The user 
needs to select the parameter file and NUTS will auto-
identify the new file format.


5/19/98
IP and CP – Changes were made to the target routines in 
these functions to make the initial target position to be 
at the mouse cursor position instead of one toolbar 
height above.

Target – The printing of information at the bottom right of 
the display was modified to attempt to keep it from 
writing over the axis.

5/15/98 Version 9805xx
AR  Arrayed mode processing was tested on some 2D file 
processing.  It is about 12 times faster on a PC and 50 
times faster on a Macintosh.

E6 – NTUPLES JCAMP-DX5 exports were exporting the same slice 
over and over for 2D files.  This was corrected.

AR – Problems with some new code for automatic scaling were 
causing the Arrayed mode to fail. This was corrected.

IM and GA – Some additional protection was added to keep the 
lack of NULL string terminators from causing comment and 
pulse experiment string corruption in the header.

Macintosh PPC version had some byte swapping when writing 
out files.  This caused the program not to be able to 
read files it had just written to the disk. This was 
corrected.

5/7/98 Version 9805xx
IM – Jeol Generic imports were assumed to be always double 
floats.  In some cases Jeol data can be a long integer.  
Detection for this was added to the IM routines so that 
both types of data import correctly.

D1 – The dialog box for the D1 list was failing to appear 
because of a mis-spelling in the code.  This was 
corrected.

IM and GA – Some data exported to NUTS CDFF format was 
failing to NULL terminate strings in the header.  This 
was causing NUTS to write the strings over other header 
information and resulting in various problems.  NULL 
termination was forced when NUTS reads the data to 
prevent this problem.

Macro – An Ask Shift command was added to the macro 
commands.  This command will ask the user for the 
chemical shift to use with the Position Reference (PR) 
command.  The PR command will set the chemical shift of 
the tallest peak in the currently displayed region to the 
value returned from the Ask Shift macro command.

4/28/98 Version 9804xx
RD  RD in a link or macro required the user to manually do 
the first spectrum to initialize the number of points to 
rotate the data before using RD in a Link or Macro.  This 
was changed to initialize to the default values even if 
RD had not been done manually when RD was used in a Link 
or Macro.

PH and PE - If the user was in the PH or PE subroutine and 
tried to do a QA, QP, or AP without exiting the Ph or PE 
subroutine, the program crashed with a memory conflict.  
The PH and PE routines were changed to ignore all 
keyboard commands until they are exited.

4/22/98 Version
ZF When ZF is now used in the frequency domain the following 
parameters are now updated to keep the spectrum's 
chemical shifts and axis accurate:
      number of points in the first dimension
      sweep width
      offset frequency

2A (To Average) Brings up a dialog box allowing the 
viewing/editing/entry of the number of points to use when 
averaging the ends of regions when correcting the 
baseline with the BF or FR commands.  An entry of zero 
lets the program automatically determine the number of 
points to average.  The automatic algorithm is of the 
selected region is bigger than 256 points then 16 points 
is used in the averaging.  If the selected region is less 
than 256 points and greater than 64 points then 8 points 
are used for averaging.  If the selected region is less 
than 64 points and greater than 16 points then 2 points 
are used for averaging. If the selected region is less 
than 16 points then the end points are used directly 
without averaging.

If the number of points set by the user is greater than 
the entire selected region then the entire selected 
region is averaged.

POINTS_TO_AVERAGE  is a macro command used with the set 
macro function to set the number of points to average 
when calling the BF or FR command.  Usage:
   set POINTS_TO_AVERAGE 64

4/21/98 
ZO  - A new feature of the ZO command is the ability to 
define ten different Zoom regions (zero through 9) by 
highlighting a zoom region and pressing a 0 to 9 key 
while in the zoom routine.  These regions are stored in 
PPM not in points as the main Zoom region is stored.  A 
defined Zoom region can be recalled with the Z0, Z1, Z2, 
Z3, Z4, Z5, Z6, Z7, Z8 or Z9 commands.  Note that regions 
#1 and #2 are the regions used by the PE command when 
phase correcting.

Zoom_Region  - This macro command can be used set the zoom 
regions in a macro.  Usage:
  set ZOOM_REGION  1   2.30   1.10
where:
ZOOM_REGION is the keyword for the set macro command
1 is the region number being set
2.30 is the starting PPM value for the region
1/10 is the ending PPM value for the region

X0  - This command extracts the spectral region defined by 
Zoom region number 0 (zero).

X1  - This command extracts the spectral region defined by 
Zoom region number 1 (one).

X2  - This command extracts the spectral region defined by 
Zoom region number 2.

X3  - This command extracts the spectral region defined by 
Zoom region number 3.

X4  - This command extracts the spectral region defined by 
Zoom region number 4.

X5  - This command extracts the spectral region defined by 
Zoom region number 5.

X6  - This command extracts the spectral region defined by 
Zoom region number 6.

X7  - This command extracts the spectral region defined by 
Zoom region number 7.

X8  - This command extracts the spectral region defined by 
Zoom region number 8.

X9  - This command extracts the spectral region defined by 
Zoom region number 9.

Extract_PPM  - This macro command can be used extract a 
spectral region in a macro.  Usage:
  do EXTRACT_PPM   2.30   1.10
where:
EXTRACT_PPM is the keyword for the "do" macro command
2.30 is the starting PPM value for the extraction
1/10 is the ending PPM value for the extraction


FR  - Flatten Region - This command removes the baseline 
offset and tilt of the current zoom region.  It is 
similar to the BF command except the BF command makes an 
effort to keep the baseline at the ends of the zoom 
region continuous while the FR command does not.

4/6/98 Version 9804xx
NO  - When the Notes function was modified to have the 
dialog box accept pasting from the clipboard the Windows 
3.1 version stopped accepting any new notes.  The paste 
from the clipboard was disallowed for the Windows 3.1 
version.

Toolbar  - The toolbar icons were enlarged 50%.  Page Setup 
was added to the toolbar.  The icons were replaced with 
icons which should imply the function called.  The 
tooltips still indicate what the toolbar button does in 
plan language.

4/3/98
PW and PD – The new NUTS version created a bug where the PW 
and PD values were read in correctly, but saved as zero 
if the file was resaved.

4/2/98
AS – Additions to the NUTS.INI file:
       Intial values for the AS (Add/Subtract) routine
       AS_Mult is the initial multiplier 
       AS_DC  is the initial percent vertical screen offset
          AS_Mult = 1.0
          AS_DC = 33.0


3/31/98 Version 9803xx
NO -  The NOtes routine was modified to allow pasting to the 
edit box from the clipboard and to allow vertical 
scrolling for longer text notes.

PE -  The PE routine was modified to use the tallest peak in 
region 1 as a pivot point.  Region 1 is then phase 
corrected by mouse movement with A phase only and region 
2 has the same A correction applied then is corrected 
with B correction with mouse movement.

NO – The Notes routine was modified to allow pasting from 
the clipboard to the Note dialog box. 

3/17/
Toolbar -  Many changes were made to address the problems 
created by the addition of the toolbar.

3/16/AL and AS  The AL and AS commands were made array 
aware.  In the arrayed mode AL now loads the entire 
matrix into a buffer when in arrayed mode. The AS command 
now adds/subtracts each slice of the current spectrum to 
the corresponding slice in the buffer.

IP and CP  The mouse selection of slices and zoom regions 
was being done incorrectly if the toolbar was turned on.  
This was updated.

3/15/98
IM  The spectrum name of an imported file was reported 
incorrectly on the plots.  This was corrected.

IM  Importing of Chemagnetics SpinSight data was not getting 
the pulse width or recycle delay values correct.  This 
was corrected.

RI  The RI command had a bug if the arrayed mode which was 
corrected.

3/10/98 Version 9803xx
Toolbar – A tool bar was added to NUTS for a few basic 
functions.  This can be turned off in the NUTS.INI file.

3/1/98 Version 9803xx
FP Fid Play was writing a temporary file to the same 
directory as the NUTS Help files.  This was creating some 
problems on restricted network installations of NUTS.  
This was corrected to write the file to the Windows 
temporary directory.  The error messages in this routine 
were also expanded to help provide more useful feedback 
an system configurations having problems with playing the 
audio of an FID.

2/27/98 Version 9802xx
PP and DP on the Macintosh versions of NUTS now supports the 
vertical font alignment of the peak labels.

Expert Mode -  For people who like less questions and dialog 
boxes popping up, a flag has been added to the NUTS.INI 
file that stops NUTS for asking "Are You Sure??" type 
questions in a lot of areas. 

DP – When NUTS is in the "Arrayed Mode", the DP command can 
now automatically pick peaks in the 2D data set.  This 
data can now be directly saved in the same format as 
SpecMan from Spectrum Research (subcommand lowercase s)as 
well as the standard NUTS peak data format(subcommand 
capital S).  The data saved in the SpecMan format is 
ready to be used by NMRSAMS from Spectrum Research. It 
has been our experience that 2D automatic peak picking is 
more subject to false peaks than a standard 1D automatic 
peak picking.  This is probably due to a combination of 
factors: lower digital resolution, lower signal to noise 
and increased presence of artifacts.  NUTS does allow for 
quick graphical addition ( mouse click) and elimination 
(K subcommand of the DP) of automatically picked peaks.
    
AR - A new optional ($250) processing mode accessory has be 
added to NUTS.  This option is called "Arrayed Mode" 
processing.  It is intended for NUTS users who have more 
advanced PC systems with a lot of memory (greater than 32 
Mbytes) where 2D processing speed is important.  When 
NUTS is toggled into this processing mode with the AR 
command, the entire 2D data set is loaded into memory.  
Then NUTS commands which are "Arrayed Mode aware" operate 
on the entire data set when issued.  For example, when 
the user enters the FT command all slices of the 2D data 
set are Fourier Transformed with the single command.  
This mode of operation provides a 12 fold speed 
improvement when processing a 2D data set.

Metafiles -  Working with the GDI experts at Microsoft, the 
code for metafile creation was enhanced to greatly reduce 
the number of GDI instructions included in the metafile.  
Using several compression techniques, the enhancements 
create much smaller metafiles which seem to work better 
when placed into other Windows applications like Word.  
With previous versions of NUTS, Enhanced Metafiles seem 
to always print when placed inside Word but Placeable 
Metafiles failed to print properly after two or three 
spectra were added to the Word document.  Even though the 
enhanced metafiles did print, they were much larger files 
than the current NUTS version generates and made Word 
operate slower.

It is our recommendation that, with the Windows versions 
of NUTS, metafiles be saved to the disk using the "Copy 
Printer DC Enhanced Metafile to File" option.  The next 
best choice is "Copy Placeable Metafile to File".  In our 
hands these two choices insert into Word and print 
correctly.  With the Macintosh versions of NUTS, the 
similar options to the clipboard should be used.  The 
objects in the clipboard can then be pasted into Word 
from the clipboard.

2/6/98 Version 9802xx
DM and DS The work on DP peak labeling created an area where 
if a spectrum in a database did not have a peak list the 
search aborted with an error.  This was corrected.

1/23/98 Version 9801xx
IS  In the IS routine and when right clicking on an Insert, 
a Tick Density for that Insert was added to the Dialog 
box.

1/22/98 Version 9801xx
IM  We have come across a Bruker XWINNMR Version 2.0 data 
set where the data was in floating point as opposed to 
integer.  After examining the ACQUS for how to tell these 
two formats apart, we made a WAG and have the import 
filter working for the one example of this data that we 
have. 

E6  NUTS supports the JCAMP-DX 5.0 standard data format for 
import and export.  Two classes of data types are 
supported XYDATA and NTUPLES.  XYDATA is useful for data 
being displayed by some other display program and 
contains only the reals from the spectrum.  To be able to 
process data imported in this format requires doing a 
Hilbert Transform to create a complex fid from the reals 
only data.  

NTUPLES supports RI pairs.  Bruker software can import 
and export data in this format using extensions which are 
Bruker specific.  NUTS follows this technique by using 
extensions to the JCAMP-DX standard which are specific to 
NUTS.  Efforts have been made to make these extensions 
the same as the Bruker extensions whenever possible.  
This means that NUTS can import Bruker exported JCAMP-DX 
spectra and, hopefully, Bruker can import NUTS exported 
JCAMP-DX spectra.

NUTS can also export 2D spectra in the JCAMP-DX style.  
This is outside the JCAMP-DX standard definitions and is 
not supported by Bruker.  If we become aware of any 
further definitions to the JCAMP-DX standard, we will 
make efforts to keep our exports faithful to the defined 
standard.

Even though NUTS does export a TD and TD_2D term in the 
parameters for the number of points in both dimensions of 
a data set, they are ignored on import with the actual 
number of points being determined as the data is being 
imported. 

1/16/98 Version 9801xx
IM  JEOL alpha data has an older format with a different 
header size.  Information in the header was used to 
automatically adjust the import filter for the two 
different formats.

1/13/98 Version 9801xx
WS  Window Size – to aid in the use of the bitmap clipboard 
and getting a known size for the bitmap, this command 
sets the computer display size to a given value in X and 
Y pixels.

1/11/98 Version 9801xx
Menu The Tools menu was updated to be more compact and to 
show the IS and NO commands.

NO A new routine called NOtes was added to NUTS. This 
routine allows the addition of multiple line notes to be 
added to the spectrum.  While in the NO subroutine the 
following subcommands and actions are available:

- The mouse can be used to move a Note.

"A" or Left mouse click brings up a dialog box to add a 
note. As computer memory allows, there can be MANY Notes 
added to each spectrum.

"C" subcommand clears all current Notes from memory.

"S" toggles the display of Notes on and off.  Control L 
does this at the Base Level of NUTS operation.

Right Mouse Click on a Note while in the NO subroutine 
brings up a dialog box allowing the selected Note to be 
deleted or the note font and font to be individually set 
for each insert.

IS A new routine called InSert was added to NUTS. This 
routine takes the currently defined zoom region and makes 
it into an inset plot (Insert) on the current spectrum.  
While in the IS subroutine the following subcommands and 
actions are available:

- The mouse can be used to move and resize an Insert.

"A" subcommand adds the currently defined zoom region as 
the next Insert. As computer memory allows there can be 
MANY Inserts added to each spectrum.

"C" subcommand clears all current Inserts from memory.

"S" toggles the display of Inserts on and off.

Right Mouse Click on an Insert while in the IS subroutine 
brings up a dialog box allowing the selected insert to be 
deleted or the type of axis, the axis font and font size 
and hertz per centimeter on the plot to be individually 
set for each insert.



12/30/97 Version 9712xx
DP, PP, QB  The DP, PP and QB commands were added to the 
platforms other than Win95/NT.  

12/22/97 Version 9712xx
QB  (Win95/NT Version) This command was added to do a Quick 
Baseline correction equivalent to an FB,L,A series of 
commands.  This quick baseline correction is allowed in 
NUTS Lite whereas the full FB routine is not in NUTS 
Lite.  

ID  (Win95/NT Version) The integral value display position 
algorithm was modified to display in three different 
positions:
1	At the end of the integral value( 1 = slightly above 
the integral end, 2 = at the integral end and 3 = = 
slightly below the integral end ).
2	at the top of the display centered in the x direction 
at the middle of the integral.
3	at the bottom of the display just above the axis 
centered in the x direction at the middle of the 
integral.
These three positions can be toggled through with the m 
sub-command while in the ID sub-routine.  

DP  (Win95/NT Version) The overlap avoidance algorithm was 
further refined with an option to fan the peak labels at 
the top of the display above the peaks.  

PP  (Win95/NT Version) The PP routine was modified to use 
algorithms from the DP routine to label peaks 
automatically.  These labels can be further modified in 
the DP routine. This command now labels picked peaks in 
the NUTS Lite whereas the full DP routine is not 
available in NUTS Lite.

ZL  (Win95/NT Version) This command was added to allow quick 
removal of all current peak label information.  It is the 
equivalent of a DP, C series of commands.

12/05/97 Version 9712xx
DP  (Win95/NT Version) A routine was added to the DP routine 
to allow single line comments to be added to the displays 
and plots.  

DP  (Win95/NT Version) The DP routine was enhanced with an 
overlap avoidance algorithm to keep the labels from 
writing over themselves.  

12/01/97 Version 9712xx
NS  (Win95/NT Version) The Dialog Box for data entry was 
divided between two dialog boxes because of size.  The 
simulation routine was expanded to handle 12 spins. The 
calculations take a VERY long time (can be days) and are 
not recommended.  

11/26/97 Version 9711xx
JCAMP-DX Import filter. (Win95/NT Version) The JCAMP-DX 
import filter was improved to take either Hz of PPM in 
the X units.  The auto-identifying routine was improved 
to add JCAMPDX to the JCAMP-DX identifying strings.

11/22/97 Version 9711xx
Tailer Some fields with information in the IF routine were 
not being saved to the file tailer if there was no ID 
list or DP list.  This was changed to always save the 
tailer even if no ID or DP lists are present.  Therefore 
the IF fields are also always saved.

11/19/97
T+ A severe bug in the tailer read caused the current File A 
to be destroyed.  This was corrected and some error 
messages added to make errors more enlightening.

11/5/97
FP  New command to play the FID to the audio output.  This 
lets you hear the fid.  If the sound drivers continue 
after an fid is played then the next sound will reset the 
drivers (type G and <return> to get a beep).

Pen Width – an entry in the NUTS.INI file allows the setting 
for the default pen width to be something other than 1.

10/9/97 Version 9710xx
ZO,F and SP  A bug where the 2nd dimension slices was being 
reset when the ZO F subroutine was used to set the zoom 
frequency range was FINALLY found and fixed. This problem 
showed up mostly when SP was used to display a zoomed 
region for a stacked plot.

9/3/97 Version 9709xx
SZ  The SZ commands sets the tallest peak in the displayed 
region to zero PPM chemical shift.  This command has been 
expanded to work in the second dimension also.  If the 
current display is an intensity or contour display then 
the tallest peak in the displayed region is set to zero 
PPM in both dimensions.

Macro Commands -  Several new Macro Commands were added.
DO DELETEFILE FileName
This macro command deletes a file with name "FileName".
Wildcards are allowed on the Windows versions but only a 
single name is allowed on the Macintosh versions

SET OF1 value
This Macro Command set the o1 frequency or the frequency 
of the center of the spectrum in hertz to "value" hertz.

SET OF2 value
This Macro Command set the o1 frequency or the frequency 
of the center of the spectrum in hertz to "value" hertz.

SET SPPLOTX value
This Macro Command sets x offset for an SP plot.

SET SPPLOTY value
This Macro Command sets y offset for an SP plot.

SET SHIFT value1D value2D
This Macro Command sets the tallest peak in the displayed 
region to the values indicated.  If only one value is 
given then only the chemical shift in the first dimension  
of the spectrum is set to "value1D" PPM.  If both values 
are given AND the current display is a 2D intensity or 
contour display then the chemical shift in the first 
dimension is set to "value1D" PPM and the chemical shift 
in the second dimension is set to "value2D" PPM.

7/17/97 Version 9707xx
IM  The new Bruker XWin NMR data format was added to the 
import filters.

IM  The Windows 95/NT version had a problem importing the 
Tecmag data.  This was due to a structure alignment 
problem in the importing DLL.  This was fixed.

6/27/97 Version 9706xx
IM  JEOL Alpha import filters were added to the NUTS import 
filters.  Most of the desired parameters were identified 
and imported; however, the chemical shift reference 
frequency was not found.  If anyone knows if JEOL saves 
this information and where it is located in the header, 
please let us know (support@acornnmr.com).

IM  The NUTS.INI line which allows for RI on import was not 
working in the Windows 3.1 and Macintosh versions.  This 
bug was squashed.

IM  The scaling factor for the JEOL FXQ import filters was 
identified and used with these imports.  This allows 
these filtered spectra to be normalized when a set of 
spectra are imported.

6/23/97 Version 9706xx
IM  With the changes to the new NUTS95 (for Windows 95 and 
Window NT) format with DLLs the importing filters save a 
copy of all imported files (1D and 2D) after importing.  
Previous versions of NUTS saved the file only if it was a 
2D file.  The bug where the request for RI with Bruker 
Aspect file importing was ignored has been corrected in 
the NUTS95/NT version.


The versions for the different platforms has now changed 
such that the Windows 95/NT version has several DLL files 
which need to be present in the NYTS directory:
       TranLib.DLL  //  Importing filters
       Matrix.DLL   //  Matrix math functions
       FTLib.DLL    //  FFT routines
   These files are not present in the Windows 3.1 using 
Win32s version 1.3, the Windows 3.1 using Win32s version 
1.25 (runs on OS/2 Wrap), the Macintosh 68K or Macintosh 
PPC versions.  This is the first step toward converting 
NUTS to COM objects and has the side advantage the the 
download times for updates can be less since all the DLLs 
do not have to be downloaded.  Also separate isolated 
functions located in the DLLs can be updated by just 
updating the DLLs only.
  

5/9/97 Version 9705xx
DR  Problems with fonts which caused the output lines to 
overlap when the DR display was printed were fixed. 

5/8/97
IM  A routine was added to import and export the real parts 
of spectra in JCAMP-DX5 format. More work needs to be 
done to address both real and imaginary data, fids and 2D 
data. 

IM  A certain kind of data file transferred From a Bruker 
instrument by Bruknet is a Unix byte order floating point 
file without parameters.  This file in the past had the 
first word 0x04000100 and the second word the number of 
data points.  These files still worked but another flavor 
of the Bruker data was found which had the first word 
0x04000100.  This was added to the auto-identification 
procedures.

DM  -  The Database Make command had a Windows 3.1 bug which 
was causing the database not to be made in certain cases.  
The problem was related to the tracking the path to the 
files.  Additional code was added to eliminate the 
problem area.

MO  -  The order of the search for metafile types ( 
enhanced, standard and placeable) was working on all 
platforms but Windows 3.11. There the placeable metafile 
was successfully oped by a standard metafile call leaving 
the metaobject empty.  The order was changed to work 
around the Windows 3.11 bug. 

Versions  -  The NUTS NMR processing software package has 
now been separated into code targeted for the platforms 
noted below:
     Windows 95/NT
     Windows 3.11 with Win32s Version 1.3
     Windows 3.11 with Win32s Version 1.25 for OS/2 Wrap
     Macintosh Power PC with OS 7.0 or greater
     Macintosh 68K (slow especially with floating point)

The new NUTS programs will have a Version Number which is 
a reverse date (YYMMDD) and will state the target 
platform for which it was compiled in the about box which 
is displayed at the start of the program.

Each of these code packages are separately maintained and 
are compiled with different Versions of Visual C++.  To 
the extent possible, all new features and bug fixes are 
added to all platforms.  Features not supported by the 
older Visual C++ versions will not be added to the 
respective code packages. With the dwindling support from 
Microsoft for the Macintosh and Windows 3.11, these code 
packages will not have the new features available in  
Windows 95 and Windows NT.  An example is the lack of a 
Task Bar in the version for OS/2.

It is our experience that Windows NT (Workstation or 
Server) is the most stable platform with the least 
problem areas.  We would recommend this platform to NUTS 
users capable of converting to it.
 
ES The Export Full ASC file command was eliminated.

4/8/97 Version 5.109
ES The Export Full ASC file command was eliminated.

E1 This command now does a full ASC export of the current 
data ( See File / Export in the main menu).

E2 This command now does a header ASC export of the current 
data ( See File / Export in the main menu).

E3 This command now does a reals only ASC export of the 
current data ( See File / Export in the main menu).

E4 This command now does a real/imaginary pairs ASC export 
of only the current data ( See File / Export in the main 
menu).

E5 This command now does a frequency/intensity ASC export of 
the current data ( See File / Export in the main menu).

SET ExportFile.  This command was added to the macro 
commands to assign a name for the ASC export file.
  Usage: SET EXPORTFILE filename
This set file name is erased after any export command is 
executed.

ASK ExportFile.  This command was added to the macro 
commands to ask the user for a name for the ASC export 
file.
  Usage: ASK EXPORTFILE
This set file name is erased after any export command is 
executed.

File/Export.  This command was deactivated for the demo copy 
of NUTS.


4/8/97 Version 5.108
DM Database Make - This command is available with the 
Searchable Archive accessory for NUTS.  On the Windows 
PCs it will take all the NUTS files in the selected 
directory and construct a text file with links to the 
NUTS data files.  This operation makes the database 
(Searchable Archive).

Due to limitations of the Macintosh operating system and 
the Microsoft NT cross compiler for the Macintosh, this 
operation must select a test file which has a list of 
NUTS files in the current directory from which to 
construct the database.
 
DS Database Search - This command is available with the 
Searchable Archive accessory for NUTS.  It brings up a 
dialog box where the user can enter search criteria for 
searching the user selected database file.  All the 
search criteria are ANDed.  The compound name entry can 
have several words separated by spaces.  Each of these 
words are ANDed to do the search.  When the search is 
complete, NUTS informs the user of the number of files 
meeting the search criteria.  After this a dialog box 
comes up with information about the first match.  The 
user has the option to cancel the match display, to move 
the next match or load the current match file into NUTS 
for display. 

VS View Search - This command is available with the 
Searchable Archive accessory for NUTS.  After a database 
has been constructed and searched, this command brings up 
the last set of matches for the user to re-examine.

B1 Transfer the current data to buffer 1.

B2 Transfer the current data to buffer 2.

B+ Add buffer 1 to buffer 2 and put the sum in place of the 
current data. 

B- Subtract buffer 2 from buffer 1 and put the difference in 
place of the current data. 

B1 Transfer the current data to buffer 1.

B2 This command existed for a long time.  Its purpose was to 
do a BC operation on fid data using all the data points 
instead of only the last section of the fid.  This 
command was changed from B2 to BA.

4/2/97
IM More work was done to get the Bruker Unix files to import 
in a more robust manner and with the correct SR 
orientation.  The program now expects the user to double 
click on the file named fid.  It then goes back up the 
directory structure until a directory with a name longer 
than 1 character that is not "PDATA" is found.  This is 
assumed to be the name of the file of interest.  Various 
searches are tried below this directory to find the 
"ACQUS" and a "PROCS" files.  If these files are not 
found then another search looks for "ACQU" and "PROC" 
files.  If these files are found then the information in 
them is used during the import process.

A similar search is preformed when the "1R" file is 
selected for importing.  These files are always assumed 
to be transformed spectra and will be paired with "1I" 
files if they are present.

TD An authorization logic error prevented the program from 
allowing a TD operation.  This error was created when 
adding the ability to do database operations.  The coding 
error was corrected.

3/28/97 Version 5.107
ID The C subcommand of the ID routine to clear the broken 
integral list was not in the menus.  This was added to 
the menus.

TD An error in the authorization logic caused the 2D 
versions not to be able to do a TD.  The error was 
corrected.

3/12/97 Version 5.107
Import ASC - This import filer failed to identify all the 
possible parameters that the ASC export routine included. 
It also got the two data pairs reversed.  Both of these 
items were corrected.

Export RI Only - This exported the data but added header 
information.  This was corrected.

Export Header - This function failed to open a file for 
output.  This was corrected.

IM  NMRi data did not identify or import on the Macintosh.
This importing bug was fixed.

PH  The PH phasing was modified to allow the user to select 
a pivot point for the PH phasing operation.  This is done 
from the "target" routine (press and hold the left mouse 
button from the Base Level of NUTS) by positioning the 
cursor at the desired pivot point and typing "P".  This 
pivot point will be used for all PH operations until 
changed by the user.

DM – Some database features have been added to NUTS as an 
optional accessory.  The Database Make command constructs 
a keyed text file from all NUTS files in the specified 
directory.  This text file contains information from the 
IF command, the DP peak list and the ID integral list.  
This text file can be searched by any text editor or 
other program of the users choice.  It can also be 
searched by the DS command in NUTS.  

DS – The Database Search command brings up a dialog box 
which allows the user to enter some information.  This 
information is used to search a database made by the DM 
command.  The result of this search is another text file 
with the hits and a dialog box showing information about 
the first hit.  The user can chose to proceed to an 
inspection of the next hit or load the current hit into 
NUTS for closer inspection.

3/4/97 Version 5.106
DP – Problems with deleting resource objects (such as fonts) 
and recovering the resources (memory, handles and etc) 
with Windows 95 (not with Windows NT or the Macintosh) 
were reproduced in house.  It appears that, in spite of 
the Microsoft documentation to the contrary, Windows 95 
and Windows 3.1 under Win32s do not allow resource 
objects to be deleted and recovered indefinitely. All 
this seems to work as advertised under Windows NT. To 
attempt a work-around for this problem the method NUTS 
uses to handle fonts was modified.  The new method seems 
to have greatly reduced (eliminated??) the problem in the 
DP routine where the fonts would change from vertical to 
horizontal as more peaks were added and some systems 
would not print after this happened.  The current changes 
have eliminated the problems on all in-house tests.

PL -  While making the changes to the font handling (as 
described above under DP), a possible cause for the 
Macintosh first plot being displaced toward the axis was 
discovered.  It is possible that this problem has been 
fixed. It has with all in-house Macintosh computers.

PL -  Several changes to the plotting routines were made to 
make the parameter boxes line up better with the plots.


2/27/97 Version 5.105
DP – A bug in the DP routine which crashed the program only 
on Windows 95 was identified and corrected.  This bug was 
reproducible whenever two peaks were selected in the DP 
routine and the first peak selected was deleted with the 
Kill command.

2/26/97
IM – Feedback from the NUTS mailing list 
(nutsuser@acornnmr.com) indicated that all Varian Unix 
files were requiring an SR after an FT.  The import 
filter was changed to cure this problem.

2/16/97 Version 5.104
MO – A Windows 95 specific problem where the operating 
system would get caught in an endless loop of error 
messages if the metafile requested in the NUTS.INI did 
not exist was fixed.

2/16/97 Version 5.103
MO – The ability to save in the file tailer the current Meta 
Objects was added.  It is a limited save along the 
following guidelines:

The are three types of Meta Objects: Clipboard, Memory 
and Disk File.

The Clipboard and Memory Meta Objects are volatile and 
are not saved in the tailer and are lost when NUTS is 
closed.  Disk File based Meta Objects are non volatile 
and are saved with their current path information in the 
tailer.  As long as that path information is correct, 
these Meta Objects are recalled when the tailer is 
recalled. 
  
MO – A problem where what type of Meta Object was done 
before an enhanced metafile was discovered.  The symptom 
was that the enhanced metafile became attached to the 
previous Meta Object instead of the main window.  This 
problem was corrected.
  
LF – The Save Digitized Spectrum option failed because of 
improper string initialization.  This was corrected.
  
2/16/97 Version 5.102
ID  A command (L) in the integral subroutine was added to 
delete the last broken integral in the list.
  
IM  Importing some GE Omega files was causing some string 
overloads.  The code was adjusted to eliminate this 
problem.
  
IM  One type of "pascal" JEOL headers was found to lead to 
an endless loop for some header information.  This caused 
the program to hang while the endless loop was executed 
forcing the user to close and restart NUTS.  This was 
corrected.
  
2/15/97
MO  The Meta Objects routines have been expanded. The user 
can now capture spectral regions and place them in the 
display and plots as "inset plots".  The position and 
size of the Meta Objects can be controlled with mouse 
operations by the user.  This feature is now available 
for the Macintosh versions of NUTS.  

The MO routine now uses a "Helper" window.  This is an 
effort to make NUTS subroutines easier to use.  The 
helper window can be disabled with an option in the Main 
Menu.  The helper window is a separate window which can 
be placed anywhere on the screen and provides mouse 
options for subroutine operations as well as informing 
the user of their keyboard equivalents.

The Meta Objects themselves have been expanded to include 
not only spectral regions captured out of NUTS but also 
metafiles in the clipboard or on the disk.  This provides 
the user with increased annotations on each plot such as 
his own logo and the chemical structure.

2/5/97
MainMenu | Parameters - The main menu item Parameters was 
eliminated.  There is now a new item in the MainMenu | 
View called Spectral Parameters which will serve the same 
purpose as the eliminated MainMenu | Parameters item. 

MO The toolbar in the Meta Objects routine was modified to 
show the entering and exiting of the Meta Objects 
routine.

1/31/97 Version 5.101
IM Chemagnetics data import's offsets were being done 
incorrectly due to a misidentified parameter (rmvunits 
instead of rmvunits1).  The result was an apparent 
problem if the spectrum was referenced in PPM instead of 
hertz.  The problem was corrected.

1/30/97 Version
IM Routines to identify JEOL ALS and Alpha data formats were 
added to the import filters.  These routines do not 
identify many if any parameters.  The ALS filter will 
import 1D and 2D data but the data samples we have at 
this time seem to import  real/imag set into the reals 
and another real/imag set into the imaginaries.  Doing a 
SH after importing gives the correct looking data but at 
half the size.  The Alpha data gets no parameters and is 
good ONLY for 1D data.

1/23/97 Version 5.100
SA and SB - When saving a series of 1D files and 
incrementing extensions, NUTS was always asking for the 
file name even in a link or macro.  This was modified to 
ask only when no file extensions have been incremented.

1/19/97 Version 5.098
IM - Importing of Bruker DMX data was updated to be aware of 
newer versions of firmware (DSPFVS) which are included 
with the newer digital quadrature detection (DQD) 
instruments.

1/8/97 Version 5.097
AI - Issuing the AI command with no data loaded caused a 
program crash.  This was corrected.

12/6/96
IM - Lybrix data imports were modified to allow 2D Lybrics 
files to be imported.  The number of 2nd dimension points 
is determined by the size of the file minus the size of 
the header divided by the number of 1D data points.

12/5/96 Version 5.096
IM - NMRi imports auto-identification was modified. Some 
NUTS users were unable to correctly identify VAX versus 
Unix NMR data.  The minimum SF frequency was changed from 
0.0 MHz to 1.0 MHz.  This change allowed the customers 
with the problems to correctly import the data.

12/2/96
DP - It was possible to define a DP peak list, not clear it 
before reading a new file and have those frequencies 
translate to a data points outside the legal limits of 
the new file.  This would lead to a NUTS crash from 
trying to access illegal memory.  To prevent these 
crashes, the routine to translate the frequencies to 
corresponding data points was modified to return the 
closest legal data point.

IP and CP - If an intensity plot or contour plot was being 
displayed and the user deleted that file, NUTS would hang 
or crash on the first redraw of the screen. Changes were 
added to the NUTS code to provide some protection from 
this unexpected scenario. 


11/22/96
Macros - New macro commands were added to allow the size of 
fonts to be changed in a macro.  The macro line:
   SET FONT_AXIS +10 
will increase the Axis font 1 unit.  Note the amount to 
change the font in the macro command is ten times the 
amount of change of the font. 

Other fonts can also be changed.  Examples:
	   SET FONT_CLIP +20
	 SET FONT_PEAK -20
	 SET FONT_INTEGRAL +10
	 SET FONT_CmdLine -10

Metafiles - Some NUTS users were having trouble getting NUTS 
standard and placeable metafiles in Word documents to 
print on some printers.  We were not able to reproduce 
the problem at Acorn NMR.  To provide more flexibility in 
this area, Enhanced Metafiles were added to NUTS.  Use of 
enhanced metafiles addressed the known problems.

11/15/
IM  A problem importing some Nicolet NT floating point data 
files was discovered and corrected.

11/7/96
RU The Macro execution was changed such that if a File A 
name has been set in the Macro and a SA command is called 
thereafter in that Macro, the SA command will be executed 
without user questions for file names or saving the 
current slice of a 2D data set as a 1D file.  A similar 
change was made for the Set File B commands and the SB 
command.

Set Integral x1 x2 command in a macro allowed the user to 
attempt to set integral regions  outside of the spectrum.  
When the user made this mistake it could lead to a 
program crash.  This was changed so that the program 
notified the user of the problem and recovered without a 
crash.

DP The command combination "^M" in a link or macro failed to 
exit the DP routine.  This was corrected.

11/5/96
IM MacNMR files with the Macintosh Resource Fork were 
correctly identified and imported using Auto Detection, 
but failed when the MacNMR type was forced using the 
menus.  This problem was corrected.

10/25/96 Version 5.094
INI file  For testing purposes and to help configure NUTS to 
different PC system configurations, a section has been 
added to the NUTS.INI to configure the memory management 
mode used by NUTS.  The keyword in the NUTS.INI file is
MEMMGR.  It has three possible values, two of which can 
be set from the NUTS.INI file.  The third value is used 
internally by NUTS when the PC is running out of memory.
The possible values are:
0 (zero) invokes standard memory management
1 (one)  invokes NUTS internal block memory management
2 (two)  used internally to stop future block allocations

0 is somewhat slower on some systems but should be the 
most robust system of memory management.  In normal 1D 
file operations there is no disadvantage to mode 0. 1 is 
the fastest mode of memory management for NUTS.  In the 1 
mode NUTS allocates a huge chunk of memory and manages it 
internally.  This can be very fast especially for 
processing 2D files.  Only mode 0 is available on the 
Macintosh platforms.

10/18/96 Version 5.094
INI file  When the NUTS program is started on the Windows 
platforms only, any argument after the NUTS.EXE is also 
read.  If this argument has a path and the file name 
NUTS.INI, this INI file will be used when NUTS starts.  
If the file name is not NUTS.INI then this argument will 
be assumed to be a filename to be opened when NUTS 
starts.  As mentioned these features are available only 
on the Windows platforms.

IF  This command brings up a dialog box to allow the user to 
enter some information about the current spectrum This  
information is saved after the file data on the disk in a 
file "tailer".

ID  When a integral list is present when a file is saved, 
information about this list is saved after the file data 
on the disk in a file "tailer".

DP  When a DP list is present when a file is saved, 
information about this list is saved after the file data 
on the disk in a file "tailer".

TA  If any spectral processing information has been saved in 
a file "tailer", this command recalls all that 
information from the tailer.

TS If any spectral processing information has been saved in 
a file "tailer", this command saves that information as a 
ASCII file.

DP  To be more consistent with the sub-commands of the sub-
routines, the command for zeroing all currently selected 
peaks in the DP routine was changed from "Z" to "C" which 
now stands for clear all selected peaks in the DP list.

9/25/96 Version 5.092
RD - Rotate Data used calculations to determine how many 
points to cyclically rotate the data based on the 
decimation number in the Bruker header.  When the 
decimation number was a power of two, a different 
calculation should have been used.  The RD process was 
changed to use the proper calculation when the decimation 
was a power of two.

9/23/96 Version 5.091
DP - The default for the information label in DP was the PPM 
of the peak picked.  This was changed so that the default 
is the peak number.  This allows for peak listing 
correlation to a label on the spectrum.

DP - The default label orientation for DP labels was 
vertical if in a 1D display mode and horizontal if in a 
2D display mode.  This is still the same but lines have 
been added to the NUTS.INI file to allow the user to 
select the default orientation.

DP - The DP peak information box brought up by the right 
mouse button now contains a check box which allows that 
peaks orientation to be selected independently.

IM - Certain kinds of imports where the data was just being 
read in and back out with minor changes, such as CDFF 
integer, were failing. This was because NUTS failed to 
open a file for writing data to after checking if this 
file already exists.  The problem has been fixed, but a 
work-around for older versions is to copy the file to a 
file with the same name with a "$" added to the front.  
Then try to open the original file and when NUTS asks if 
the file with the "$" name should be replaced say yes.

9/18/96 Version 5.090
DP - A preliminary version of the ability to select a DP 
label and drag it to a new position with the mouse was 
added to the DP routine.

Windows 95 - Many Windows 95 customers have complained that 
NUTS crashes inside the DP routine.  This problem is not 
reproducible on Windows 95 systems at Acorn NMR.  The 
problem therefore has something to do with system 
configurations.  This type of problem is commonly the 
result of the graphics driver.  When the DP attempted to 
draw its peak labels it did not prevent the drawing of 
peak labels outside the displayed area.  In an attempt to 
reduce the Windows 95 DP problems, a check in the DP 
routine was added to bypass the drawing of peak labels 
outside the display area.

Links and Macros - The Statusbar addition had produced a 
problem with Link and Macro execution.  The problem was 
that the link or macro would pause execution until some 
user input was received such as mouse movement.  This was 
corrected and the links and macros now execute without 
the need for user inputs.

9/10/96
StartUp Macro - A new entry to the NUT.INI file allows the 
user to enter the path to a macro file. If this line 
contains a valid macro, the macro will  be executed when 
NUTS starts.  A sample line for the NUTS.INI file is:
          AutoExecMacro =  C:\NUTS\MAC\GET_EB.MAC

7/15/96 Version 5.08
IM  A New type of Bruker Aspect file was found.  This one is 
transferred by LightNet to an X32.  When this happens the 
files are expanded from 24 bit Words to 32 bit Words.  A 
file import filter was created for this type of file.  It 
is known to work for a very limited number of samples.

Right Mouse Button  Since the standard Macintosh mouse only 
has one button, some NUTS features were difficult to use 
on the Macintosh.  These are features which require using 
both mouse buttons simultaneously.  A workaround allows 
the period on the keyboard to substitute for pressing the 
right mouse button in two cases.

The first case is the base level "difference" cursor 
mode.  Instead of using the 2 mouse buttons together, the 
green marker cursor is set by pressing the period key 
while the red crosshair cursor is displayed (with the 
left mouse button).  Then, as the crosshair cursor is 
moved, the difference between the cursor position and the 
marker cursor is displayed in real time.  

The second case is to display slices in real time while 
displaying a 2D intensity or contour plot. Press the left 
mouse button to display the red cross-hair, and then 
press the period key to display the slice at the cursor 
position.  The slice display is updated in real time as 
the cursor is moved.

IM  There were problems importing JEOL files on the 
Macintosh platform.  The import routines were reworked to 
eliminate the problems. 

RU  There were problems running macros on the Macintosh 
platform.  The macro routines were reworked to eliminate 
the problems. 

SS  Disk accessing was changed to make the SS command much 
faster.

IP  Disk accessing was changed to make the IP displays 
faster.

ID  Some of the text at the bottom right of the screen 
showing a real time digital readout of the cross-hair 
cursor position and the integral readout was being 
covered by the new status bar.  This information was 
moved up on the display to clear the status bar.  This 
problem was also corrected on the Macintosh platform.


6/10/96 Version 5.07
IM  Bruker WinNMR file import filters have been added.  
These files are in a directory which will be used as the 
imported file name.  WinNMR files come in two flavors and 
need to have certain files present in that directory for 
successful importing:
  Old Conversion
      filename.par   //  ASCII parameter file
      filename.fid   //  Complex 1D time domain data
      filename.ser   //  Complex 2D time domain data
      filename.1r    //  Real frequency domain data
      filename.1i    //  Imaginary frequency domain data

  New Conversion.  
      filename.dis   //  ASCII parameter file
      filename.fid   //  Complex 1D time domain data
      filename.ser   //  Complex 2D time domain data
      filename.1r    //  Real frequency domain data
      filename.1i    //  Imaginary frequency domain data
Double clicking on any of the files will automatically 
identify the files and import them.

IM  Several types of imports from unix boxes would fail with 
a program crash if a line was blank or became corrupted.  
Protection was added to allow the import to continue or 
fail gracefully for these cases.


6/10/96 Version 5.06
HELP  New help files were prepared for the Macintosh and 
Windows platforms.

IM  ATI file importing on the Macintosh had some problems 
which were corrected.

IM  Bruker Ethernet by way of VAX had some importing 
problems on the Macintosh which were corrected.

Memory - All memory allocations in NUTS were changed to 
generic C memory allocations except for the clipboard 
memory allocations which still use Windows Memory 
allocation techniques.

6/8/96 Version 5.05
Some commands were generating memory allocation and 
deallocation errors.  The errors were most noticeable 
with command combinations like ZF RT.  Changes were made 
to address these types of problems.

6/4/96 Version 5.04
StatusBar  The addition of the statusbar caused a failure of 
all LINKs and Macros. This was corrected.

6/3/96 Version 5.03
IM  A single file version of exported GE Omega Data was 
added to the import routine.

6/1/96 Version
QA  Quick automatic phasing of zero-order (A) only was 
added.  

StatusBar  A Status bar was added to NUTS to provide the 
user information about the menu commands and the 
subroutine level the program is at.

5/14/96
ES  Export Spectrum command was added to available commands 
so that it could be used in a link.  The command does a 
full ASCII Export of the current data set.

5/14/96 Version 5.02
TP  On the Windows 3.1 platform only, the total phase (TP) 
values when phasing was done in a link were not being 
updated.

S@  The "SET S@" in a macro was failing and always setting 
the S@ number to zero.  This was corrected.

TD  TD on arrays bigger than 2048 by 128 crashed the entire 
PC and/or Windows only on Windows 3.1.  This was found to 
be an error in memory allocation under Win32s which was 
allowing the allocation of big blocks of memory but the 
memory was not valid to use.  A trap was put in to use 
smaller memory chunks only on Windows 3.1 under Win32s.

IM  The pulse experiment string (EX) was added to the JEOL 
Lambda imports.

5/10/96 Version 5.01
LI  A Link Count Limit was added to the LINK dialog box.  
When this number is zero it is ignored during the 
execution of Links.  When it is set to a positive 
integer, a link will stop execution after that many 
passes through the link.

RU  The following commands were added to Macros:
  SET FULLFILEIMPORT
  SET FILEIMPORT
  ASK FILEIMPORT
  SET LINKLIMIT

5/8/96 Version 5.00
IM  The IM command was changed to allow its use in a LINK.  
The filename for IM can also be incremented so that in a 
LINK FILE.001 will be incremented to file.002 with the IN 
command.  This means that a series of 1D files can be 
imported and arrayed into a arrayed data set with one 
LINK such as:
   IM SC IN
The above LINK will imported a series of 1D files with 
file names like file.001, file.002, file.003 and etc and 
store them in a single arrayed data set.

The IM command was also modified to not save an imported 
file with the "$" in front of the name WHEN the imported 
file is a 1D file.  The current FileNameA variable is 
updated to the new string, but the file is not saved to 
disk.  If you want to save the imported file, you must 
now do so with the SA or SB command.  2D data files ARE 
imported AND save to disk with the new name.

The combination of these two command changes means that 
the LINK discussed above will create the arrayed data set 
without creating intermediate files on the disk.
 
IM  The RPParams last_delay from the file header was 
imported as Recycle Delay for MacNMR and MacFID data 
importing routine.

IM  F2 frequency and F1 domain information was added to JEOL 
Lambda imports.

IM  Bruker Aspect data imports were expanded to detect MSL 
files.  The sequential versus simultaneous data 
acquisition detection was also redone to eliminate some 
errors in the automatic detection process.


5/6/96 Version 4.99
IM GE Omega file importing was being mis-identified as 
GRAMS-386 data.  The order of the identification process 
was changed to aid in correct identification.  The 
process of forcing Omega file importing was corrected to 
work if the header file exists and has the extension of 
".hed" or ".h".


4/24/96 Version 4.98
PS If there was no data set loaded when the PS command was 
given, the NUTS program would crash.  This was corrected 
so that with no data set the PS command would fail.


4/17/96
PL Margins on plots were failing only on Windows 95.  They 
worked correctly on Windows 3.1 and Windows NT.  This was 
due to a Windows 95 error where the origin was lost after 
it had been reset for the new margins.  A work-around was 
found in the code to just reset the margins and origin 
after Windows 95 had forgot them


4/11/96
IM JEOL Lambda data imports.  JEOL Lambda import now works 
and gets most of the parameters.  We still have not found 
the following information to extract from the header:
   1.  Time or Frequency Domain - now assuming Frequency.
   2.  Real or Complex Data - now assuming Complex.
   3.  We need some sample Hypercomplex and TPPI data to
       test importing.

IM  Tecmag data now imports the user if the information is 
in the Tecmag file tailer.

4/9/96 Version 4.97
RL  This is a new command which reads an encrypted text file 
and generates a new LICENSE.NMR file.  This is an attempt 
to aid users who want to get a new LICENSE.NMR file by 
email, but who cannot handle attached binary files.  
Before RL is executed any current LICENSE.NMR in the same 
directory as the NUTS.INI file must be erased.  Before 
erasing the current copy of LICENSE.NMR, a backup copy of 
the current LICENSE.NMR file can be made by copying it to 
a different name if desired. RL will read a specially 
prepared file which MUST be named LICENSE.TXT and MUST be 
in the same directory as the NUTS.INI file.  A new 
LICENSE.NMR file will be created which will have the 
information from the encrypted LICENSE.TXT file.

To prepare the LICENSE.TXT file, make a request to 
support@acornnmr.com for a new license for NUTS.  The 
license file will be emailed back.  Take the text email 
message and extract the obvious area where the license 
information is and save this as a text file with the name 
LICENSE.TXT to the same directory as NUTS.INI.  Erase any 
current LICENSE.NMR file in that directory and execute 
the RL command from inside NUTS.  

4/8/96
IM  Problems with a different flavor of Bruker UXNMR/P data 
forced a modification of the Bruker importing routine. 
The data still needs to be experimentally identified for 
possible need of byte swapping.  The NUTS.INI flag
  BRUKER_UNIX_BS = FALSE
can be set to TRUE if the data appears to import 
incorrectly.


4/1/96 Version 4.97
DB  Data to convolution Buffer.  This command transfers 
whatever is in the current data to the convolution filter 
data buffer.  This allows users to create customized 
apodization functions.  The CV command can be used to 
view the contents of the buffer and the CA command will 
apply the apodization by multiplying the buffer times the 
current data file.

BD  convolution Buffer to Data.  This command transfers 
whatever is in the current convolution filter data buffer 
to the current data.

21  A command similar to the 2L command was added.  The 2L 
command converts all data points of the current spectrum 
(reals and imaginaries) to a constant value of 4096.  The 
2L command stands for "to line".  The 21 (two one) 
command has been added to do the same thing but the 
line's value is set to 1.0.  This is useful for creating 
apodization functions.

R2  This command takes the square root of the data points of 
both the reals and imaginaries.  If the data points are 
negative the point is replaced with the negative of the 
square root of the negative of the points value.

ZN  This command zeros all negative data points of both the 
reals and imaginaries.

3/29/96 Version 4.96
PL  The margins for the printing failed due to code changes 
to force clipping on plots and metafiles.  This problem 
was corrected and the margins work correctly with this 
version.

RU  Some new macro commands were added to the NUTS macros:
To clear all defined integral regions
   SET INTEGRAL CLEAR

To set an integral region between 1.3 PPM and 4.7 PPM
   SET INTEGRAL 1.3  4.7

To set an integral region between 5.60 PPM and 8.45 PPM 
and set the relative value to 5.0
   SET INTEGRAL 5.60  8.45  5.0

To set the largest peak in the displayed region to a 
chemical shift value of 2.24 PPM
   SET SHIFT 2.24

RU  The Macintosh RU dialog box was changed to ignore the 
Resource Fork and show all files.  This way any editor 
can be used to prepare and edit the macro file and it 
will still appear in the dialog box to select the macro 
to run.

LN  The macro setting of the number of signals to use in the 
LiNear prediction trapped out negative values which 
prevented the macro from setting it to a minus 1 to 
signal automatic detection of the number of signals to 
predict.  This was changed to have any negative number 
from a macro to set the number of signals to -1. 


3/22/96 Version 4.95
IM  Chemagnetics Spinsight data files failed to import if 
the comment field was blank.  This was fixed and the 
imports tested for 1D and 2D files.

3/7/96 Version
SA, SB  With a series on numbered 1D files, the SA and SB 
commands always asked for a filename even when processing 
in a link.  This was corrected so that if you have a 
valid filename, have done an IE command and are in a link 
or macro, the link or macro will proceed with the valid 
filename.

3/6/96
DC  The ability to set the DC offset value in a macro was 
added to the SET commands for macros.  Example:
    SET DC=2

PC  The ability to set a default value for PA and PB was 
added to the NUTS.INI.  An example is below:
    DEFAULT_PA = 13.5
    DEFAULT_PB = 43.1

IM  A flag was added to the NUTS.INI file for the cases 
where MOST of the data that is being imported requires a 
SR after a FT. The flag can be set to TRUE or FALSE. When 
set to TRUE, this causes the real and imaginary halves of 
the FID to be exchanged automatically on importing 
(equivalent to a NUTS RI command), which accomplishes a 
spectrum reverse. Example:
    RI_ON_IMPORT = TRUE

IM   Lybrics data importing requires an SR after an FT as a 
result of changes to the importing code during the past 
several NUTS versions. The Lybrics importing was changed 
to import the FIDs in the opposite order to correct the 
problem.
 

PH  The vertical scaling for the PH phasing display was 
computed on the maximum Y value in the data set.  When 
the starting spectrum had all negative peaks this 
produced a very large scaling factor which was confusing 
and required the user to scale down before continuing the 
phasing process.  This was changed to compute the scaling 
from the difference between the maximum and minimum 
vertical values in the data set.


3/5/96
MO This is the initial version of a new command for 
displaying inset plots. One or more regions of the 
spectrum are captured as draw objects and placed on the 
screen. Each object is a memory resident Windows 
MetaFile. The user can re-size and re-position each 
object. When printed, the plot looks as it does on the 
screen. These operations are performed in a subroutine 
which is entered by typing MO. First, expand the spectrum 
to display just the region which will comprise the plot 
inset. Type MO to enter the subroutine, and then A to add 
this display to a linked list of plot insets. Select and 
expand a new region, and repeat as needed. In the initial 
version, the sub-commands are not yet in the menu or help 
files:
A - Add current display to linked list
D - Delete current Meta Object in liked list
N - Move to next Meta Object in linked list
R - Move to previous Meta Object in linked list
While in the MO subroutine, the current Meta Object is 
highlighted with a box and sizing handles. The mouse can 
be used to either move or resize the object using the 
left mouse button.


2/27/96
LN  The Linear Prediction routine was modified to be able to 
automatically determine the number of signals to predict 
based on the eigenvalue used for the calculation.  To 
have the program automatically determine the number of 
signals to predict, set the maximum number of signals to 
-1.

2/26/96 Version 4.94
SL  "Improvements" in the memory allocation for 2D slice 
viewing introduced a bug where LN or ZF in a link caused 
size errors in the memory allocation and points 1D.  This 
was fixed.

QD  Memory allocation for the Quick Display was improved to 
be faster and produce less memory fragmentation.

Metafiles - When a metafile was placed into some other 
Windows applications, regions above and below the normal 
NUTS displays (e.g., off scale peaks) were sometimes not 
clipped.  The NUTS code was modified to clip the data 
before the metafile was created.

2/21/96 Version 4.93
ID  The ability to save with a file a list of integral 
regions was added to NUTS. The information is saved in a 
file "tailer". When in the ID routine, if an "E" is typed 
to Enable tailer saving then, when the file is next 
saved, a file tailer will be saved also, containing 
integral region information. Later, when the file is 
recalled, the ID routine is entered and an "R" is typed, 
then this tailer information will be Read and the 
tailer's integral information will replace the current 
integral display.

2/13/96
PL  The density of the small ticks on the axis can now be 
increased in the File/Page Setup dialog box.  A value of 
1 is the original default, a value of 2 is twice as dense 
and etc.

ZZ  The quick file importing defined in the NUTS.INI file 
(ZZ) was added to the menu under File/Import.

PL  If there is no current title name for the spectrum when 
plotting, NUTS now leaves the filename blank instead of 
printing - Untitled.

D1  If there are no time values found when importing a file, 
NUTS was changed to use the time values (D1) of the 
spectrum in memory when the file was imported.

US  The default value for User when importing a file was 
changed to be a blank.

2/13/96
GR  If there were more D1 values in the D1 list than spectra 
in the arrayed data set (pts2d), NUTS made an error.  The 
type of error and its result depended on where in the 
program you were  and on what computer platform you were 
running. The GR routine was corrected to ignore any D1 
values beyond the number of spectra in the arrayed data 
set.

2/7/96 Version 4.92
EX  When the user typed a string into the Experiment area of 
the Parameters Dialog box that was more than 40 
characters long, NUTS did not protect the string from 
writing over other parts of the code.  This caused 
strange things to happen depending on where you were in 
the program at the time.  The code was modified to 
truncate anything over 39 characters in this field and 
prevent overwriting internal parts of the program.

GA, GB - The way the code was written, these routines could 
make the wrong assumptions in Links and Macros if a file 
of a different type was currently in memory at the time a 
Link or Macro executed the GA or GB command.  This 
happened most often when the file to be read also needed 
to be translated (imported).  The code was modified to 
prevent this type of error.

While making the changes, the amount of disk accessing 
for each read was reduces considerably.  The net effect 
is visible only in 2D processing where there is some 
improvement.

SA, SB  These commands were rewritten to be more efficient 
code.  The changes should not be noticed by NUTS users, I 
hope!

2/6/96 Version 4.91
DD and AS  A bug in the compression routines for the Quick 
Display mode was introduced when adding new memory 
allocation methods for the Macintosh code.  This bug 
caused the current spectrum to be displayed in place of 
the spectrum which had been placed in the Dual Display 
buffer, so that the 2 spectra appeared to be identical.  
This happened only in the Quick Display (QD) mode.  A 
temporary work-around was to change to the Slow Display 
(SD) mode while in DD or AS.  With version 4.91 and 
greater this bug has been fixed.

2/1/96
Resource Leakage - Several areas of the code were rewritten 
to avoid areas under Windows 3.1 with Win32s which caused 
resource leakage.  

2/1/96 Version 4.90
PL  When top margins were set in the File/Page Setup dialog 
box and the spectrum was expanded off scale, NUTS would 
still draw the offscale peaks even though they were 
outside of the defined Viewport.  Code was added to 
define a clipping region so that offscale peaks are not 
plotted.  A similar problem with Metafiles being pasted 
into other applications was also corrected.


1/28/96 Version 4.89
Help Files were converted from the older style, which was 
not compatible on all platforms, to the newer Win95 style 
which is compatible on all Intel platforms.  Content of 
the help file was also revised and newer features were 
covered.  The Macintosh help files have not been revised 
yet.

1/25/96 Version 4.88
IM  MacFID and MacNMR files STILL did not import correctly 
using MacNUTS versions when the files were transferred by 
some methods.  The problem centered around the Resource 
Fork on the Mac file being present sometimes and not 
others.  More smarts were added to the importing 
detection to overcome this problem.


1/24/96 Version 4.87
IM  MacFID and MacNMR files did not import correctly using 
MacNUTS versions.  The Intel PC versions of NUTS did 
import correctly.  This was corrected so both Mac and 
Windows version of NUTS correctly import.

MacNUTS  The Power PC version of MacNUTS has been released.  
This version of MacNUTS is much faster than the 68K 
versions of NUTS.  On a 601 66MHz Power PC system, the 
speed of MacNUTS on most operations is 2 to 3 times that 
of NUTS on a 486/DX2/66 PC and about one-third that of 
NUTS on a 100 MHz Pentium.  Since this is the slowest 
version of the Power PC family, other PowerPCs should be 
faster.


1/13/96 Version 4.86
TD  When the TD routine was enhanced for speed if memory was 
available (Version 4.83), the faster method did not force 
the second dimension to be complex as the slower method 
did.  Therefore, if the data header of a 2D data set did 
not have the second dimension as Complex, the second 
dimension FT would do the proper FT for the labeled data 
type as opposed to a Complex FT as previous versions of 
NUTS did.  This has been changed so the second dimension 
is forced to be Complex as previous versions of NUTS did.  
The work-around is to manually change the second 
dimension Data type to Complex, or the force a Complex FT 
in the second dimension with a CT command instead of an 
FT command.


12/29/95 Version 4.85
DR  The number of significant digits on the T1 fitting 
answers was increased from 3 to 6.  This precision has no 
validity, but some customers wanted to have the same 
number of digits as some of there other software fitting 
routines.

Export  The number of significant digits on the PPM term 
when exporting data as comma separated pairs was 
increased from 3 to 6 digits.  This was to prevent some 
round-off errors found by some users when reducing the 
data with other programs.

IM  Some errors on data importing were introduced with the 
auto identifying test for Philips MR spectroscopy data 
imports.  These errors sometimes caused failure of other 
types of data imports, with possible crash of the NUTS 
program.  Further tests for illegal values in the Philips 
tests were included to prevent the problem.

12/18/95 Version 4.84
LN  A bug causing problems with macros and setting LN 
parameters was found and fixed.

NB  Additional program closing checks with the verbose debug 
mode were added for analyzing program problems on 
different platforms.


12/13/95 Version
Lite  A new version of NUTS ( NUTS Lite ) is introduced with 
this version.  The price on the date of introduction is 
$75.00.  This version comes with no support.

IM  Importing of Philips ACR-NEMA *.ANW files has been added 
to NUTS importing.  The header for these files does not 
contain information about the spectrometer frequency or 
sweep width, therefore this information must be entered 
manually at the time of importing.


11/29/95 Version 4.83
RU  Macros can now be tied to Ctrl-Fxx keys with a special 
set of key words in the NUTS.INI file.  The example below 
sets Ctrl-F1 to run the MAG_COSY.MAC macro in the 
C:\NUTS\MAC sub-directory:
		Macro_1 =  C:\NUTS\MAC\MAG_COSY.MAC

D2  A new command to do decimation of the data by half.  It 
is intended to work on FID data.  Typically the FID data 
would be low-pass filtered to half the spectral width 
(DL) and then decimated to use every other point.  The 
result is an FID with half the spectral width and half 
the data points.

SY  The SY command was expanded to look for memory and, if 
available, to load the entire 2D data set into memory and 
do the symmetrization.  On most PCs which have enough 
memory the operation is now 2 to 5 times faster depending 
on the PC disk reading/writing speed.

TD  The TD command was expanded to look for memory and, if 
available, to load the entire 2D data set into memory and 
do the data rotation.  On most PCs which have enough 
memory the operation is now 50% faster depending on the 
PC disk reading/writing speed.  TD before was using 
bigger chunks of memory, therefore the improvement was 
not as great as with the SY command.

11/28/95 Version 4.82
UH and D1  The D1 list was not being updated with the UH 
command after it was edited with the D1 command.  This 
was fixed.

FB  FB now allows the polynomial fit to be used for only the 
Zoom region.  If FB is entered when in the Expanded 
display mode of NUTS (^E), then only the Zoom region will 
be used for the fit.  The whole spectrum is used for the 
Full display mode (^F).

Macros and Links -- It is now possible to issue NUTS Control 
characters from inside Links and Macros.  To issue a 
Control F use the two letter command "^" and "F".  The 
"^" tells the NUTS command interpreter that the next 
letter should be sent as a Control character.  This 
allows Macros and Links to issue the many control 
characters used in NUTS and to issue an ENTER with a "^M"
command.

RE  Remove a resonance is a command which starts the process 
of fitting the resonance to a single decay line near zero 
frequency.  This can be useful to remove a residual water 
line in the center of a spectrum.  Results depend heavily 
on good lineshape, but can reduce the water resonance by 
more than 1000 in some examples.  Type RE and look under 
Edit for the sub-commands. 

PH PE  These commands were modified such that phase 
adjustments with the mouse can be done with either left 
and right mouse movements OR up and down mouse movements.
Preferences can be set in the NUTS.INI file.  Below is an 
example of setting the preference to the sum of left and 
right and up and down.
;  Left and Right  = 0
;  Up and Down     = 1
;  Sum L&R and U&D = 2
MOUSE_DIRECTION = 0;

LN	 Forward and backward linear prediction has been added to 
NUTS with the command "LN".  The user input for this 
command is done in a dialog box which appears when the 
"LN" command is typed outside of a macro or link.  Inside 
of a macro or link the command is executed with the 
current configuration.

The first user input in the dialog box is the number of 
points to back predict.  This number is ignored if 
forward prediction is chosen.  This number has a default 
value of 2 and should usually be a small number (4 or 
less).  Larger values may cause failure of the prediction 
algorithm.  Back prediction is designed to correct the 
first few points of a data set which may be "bad" due to 
pulse breakthrough, receiver gating or filter ringing 
problems.  It is most useful to repair data set (before 
FT) which have bad baselines after FT.  This number can 
be set in a macro.  An example is shown below setting it 
to 4:
     SET LNpts = 4

The second dialog input is for the number of points to be 
used by the prediction algorithm.  The larger the value 
the longer the prediction process takes (a matrix of this 
square size must be diagonalized).  By default during 
forward prediction, this value must be at least half the 
data size.  Forward prediction always doubles the data 
size.  This number can be set in a macro.  An example is 
shown below setting it to 64:
     SET LNmdim = 64

The third dialog input is the number of resonance lines 
to be used by the prediction process.  While this is 
often a value not well known by the user, a small value 
can most often be used (NUTS default is 10).  The larger 
the value, the higher the chances that the algorithm will 
fail. This number can be set in a macro.  An example is 
shown below setting it to 16:
     SET LNnsig = 16

The last control on the dialog box is a pair of radio 
buttons to select forward or backward prediction. This 
direction can be set in a macro. An example is shown 
below setting it to FORWARD:
     SET Lndirection = FORWARD
An example is shown below setting it to BACKWARD:
     SET Lndirection = BACKWARD

S@  A new feature has been added to NUTS which allows the 
shrinking of a data set by an arbitrary number of points.  
In previous versions of NUTS the SH command shrank the 
data set by half.  If the S@ number is set to zero or 
less, this remains the default SH operation.  If the s@ 
number is set to a positive number the data set is 
reduced by that many points from the left.  The S@ number 
can be set in a macro with the SET S@ command line.  An 
example of setting S@ to sixteen is shown below:
     "SET S@ = 16


11/20/95 Version 4.81
IM  The D1 value was added to NMRi data importing.

MH  The MH value was limited to 0.01 to 99.99.  This was 
expanded to be between 0.0000001 to 99.999999.  This 
allows a larger dynamic range for 2D contour plots.

ZZ  The ZZ command auto import default file name and file 
type did not have any defaults.  This was changed to 
allow default file name and file type in the NUTS.INI
file.

11/13/95 Version 4.80
RU  Tracking of the Macro directory was updated to correct a 
FileOpen dialog initial directory problem which exists 
only on Windows 3.1.

UH  An update header control was added to the Parameters 
Dialog box which allows the user to modify some 
parameters and then exit the dialog box while updating 
the file header.  It is possible for this header updating 
(and another one in the process to change spectral 
offset) to get confused between the current file being 
displayed and its disk counterpart.  NUTS decides on 
whether to update the Complex, Domain and Axis types 
based on what is being done and whether the file has 
changed from the disk copy.  If NUTS guesses wrong, the 
user can manually update these types, exit the dialog box 
with OK and manually do a UH command.  The UH command 
ALWAYS updates all header information.

11/9/95 Version
IM  GN Omega file importing added pulse width, pulse delay 
and experiment to the importing parameters.

11/6/95
FB  A least squares option to fitting a polynomial for 
baseline correction was added to the existing Simplex 
method.  An item was added to the NUTS.INI to allow the 
selection of which method is used by default when FB is 
used in a Link or Macro. 

11/4/95
IM  Importing of Chemagnetics SpinSight Data was importing 
sweep width data in Hz.  The header actually reports the 
data in kHz.  This importing error was corrected.

11/2/95 Version 4.79
IM  Importing of VAX based NMRi data was added to NUTS.

RU  The ability to call programs external to NUTS from a 
macro was added to aid some users who want to write some 
specialized routines for data processing.  This is 
supported only on the Windows based PC, not the Macintosh 
version.
Example:
	NUTSMACRO   Example of calling a command line program
	;macro calls a program which is described in a PIF file
	;PIF file MUST be "Windowed" (no window will be shown).
	;All backslashes must be doubled.
	call c:\\copyfile.pif
	end


11/1/95 Version 4.78
ZG  On some PCs using some operating systems the random 
noise generated for the synthetic FID was not quite 
random.  A better more complete random number generation 
routine was devised and implemented to cure the problem.
(For Virtual Spectrometer versions only).

IM  More changes were made to the Macintosh file importing 
routines to allow different Mac operating systems to 
handle the file names correctly.  The error was still an 
error trying to open the output file for writing.  Cannot 
reproduce this problem on the Macintosh in-house.


