spec

Software for Diffraction

changes

highlights of modifications for spec release 3.03

RELEASE 3.03.26

These notes summarize the cumulative changes made for spec release 3.03.26 as of May 27, 1996.

Default Hardware Poll Interval Changed From 40 To 10 msec

The hardware poll interval, used with non-interrupt driven devices, has been changed from 40 to 10 milliseconds. The value can be changed using

spec_par("hdw_poll_interval", msec)

where msec is the poll interval in milliseconds. The function spec_par("hdw_poll_interval") returns the current value. Note that the actual interval may vary. Most platforms have a resolution of only ten milliseconds in the system clock, and different platforms round msec up or down.

Improvements For the Microcontrole ITL09 Motor Controller

A number of improvements have been made for the Microcontrole ITL09 motor controller. In particular, the nonconsecutive unit/channel numbering feature of the configuration editor is now supported for this controller.

Support For Newport Model MM2500 and MM4000 Controllers Added

The Newport Model MM2500 and MM4000 motor controllers are now supported by spec.

MMC32 Delay Is Now Configurable

The sleep delay inserted after each command sent to the NSLS MMC32 motor controller is now user configurable. Use

motor_par(mne, "delay",  msec)

where mne is the mnemonic of any motor controlled by the MMC32 and msec is the delay time in milliseconds. The delay affects all motors controlled by the MMC32. The default value is 100 msec.

RELEASE 3.03.25

These notes summarize the cumulative changes made for spec release 3.03.25 as of May 7, 1996.

The twoc Code Has Been Revised

The geometry code and macros for the two-circle diffractometer have been rewritten to use an orientation matrix and to allow least squares refinement of the lattice parameters. The setlat and setrlat macros are used to set the direct or reciprocal lattice parameters. The or0 and setor0 macros are used to set the orientation reflection. The reflex_beg, reflex_end and reflex macros are used to save reflections used to refine the lattice parameters, in the same way as described in the Four-Circle Reference. The ALPHA and BETA parameters have been eliminated. Note, if you desire, the previous version of twoc can be installed by selecting twoc_old from the installation menu. Be sure to start fresh the first time running the new version of twoc.

New .Xdefaults Option For Size Of Plot Points

You can now choose among several pixel patterns for drawing the smallest points on the spec X11 high-resolution plots. The selection is made in the .Xdefaults resource file. See the explanation of the DotSize resource in the x11 help file for details.

No CAMAC Z Issued On Startup With DSP 6001 In Driverless Mode

By user request, spec no longer issues the CAMAC Z crate initialization command on startup when using the DSP 6001/2 CAMAC crate controller in driverless mode. (With the CSS driver, whether the automatic Z is issued is determined by a driver-installation option.) The function ca_cntl("Z") can always be issued at the spec prompt to initialize the crate, if necessary.

Small Change In count_em Macro

The COUNT_TIME variable is now set to the current count time before (instead of after) the call of the user_precount macro in the count_em macro that is called by all the standard counting macros.

RELEASE 3.03.24

These notes summarize the cumulative changes made for spec release 3.03.24 as of April 1, 1996.

Improvements For Newport MM2000 and MM3000 Motor Controllers

A number of improvements have been made for the Newport (formerly Klinger) MM2000 motor controller. The nonconsecutive unit/channel numbering feature of the configuration editor is supported for this controller. Also, serial-interface daisy-chaining is now supported. The Newport MM3000 model has firmware compatible with the MM2000, so is also now supported by spec.

Improvements For Huber SMC 9000 Motor Controller

The nonconsecutive unit/channel numbering feature of the configuration editor is now supported for the Huber SMC 9000 motor controller. spec now allows more than one of these controllers to be configured. In addition, the error checking has been improved, although the nature of the controller makes the potential for recovery after a communications error unlikely. In addition, a command pass through capability is now available using

motor_par(mne, "send",  cmd)

to send the command cmd to the controller and

motor_par(mne, "read",  cmd)

to send the command cmd and return as a string an expected reply. The motor mnemonic argument mne only serves to select which controller to use. Unlike the implementation for other controllers, the motor number must be explicitly included in the user message for the Huber SMC 9000. For example,

motor_par(tth, "send", "BEEPOFF")

results in the string "BEEPOFF;\r\n" being sent to the controller associated with the tth motor.

Pseudomotor chg_dial() Bug Fixed

A bug, where the chg_dial() function (as used by the set_dial macro), didn't work properly for pseudomotors or any motor with NONE as controller in the config file, has been fixed.

Bug Fix For Alternate Command-Line History

A bug, where the number of commands saved in the run-time history list was not limited when using the optional, alternate command-line history library, has been fixed. The run-time history is now limited to 1,000 commands, just as is the history saved in the state file.

RELEASE 3.03.23

These notes summarize the cumulative changes made for spec release 3.03.23 as of March 13, 1996.

New Site-Dependent Install Parameters

The spec Install program now prompts for additional parameters for site-dependent compiler flags, site-dependent object modules and site-dependent libraries.

Experimental User-Configurable Pseudomotor Code

Files dealing with an experimental, user-configurable, compile-time pseudomotor capability are included in this distribution. Consult CSS before attempting to use.

RELEASE 3.03.22 - Several Portability Fixes

March 5, 1996: Several minor changes have been made for portability considerations.

RELEASE 3.03.21 - Bug In edconf Wizard-Mode Fixed

February 21, 1996: A bug, where the optional motor parameters could not be read in on wizard-mode protected motors, has been fixed.

RELEASE 3.03.20

These notes summarize the cumulative changes made for spec release 3.03.20 as of February 13, 1996.

Code For CAMAC Kinetic Systems 3640 Counter/Timer Overhauled

Problems with the software handling of the custom hardware gating on the Kinetic Systems 3640 CAMAC counter/timer, as used at CHESS (and elsewhere), have been fixed.

New motor_par() Option for ESRF Maxe Motor Device Server

The new motor_par() option,

motor_par(mne, "get_pars")

reads the current base rate, acceleration and slew rate parameters from the ESRF Maxe device server and updates the values that will be returned by motor_par() with the "base_rate", "acceleration" and "velocity" arguments.

RELEASE 3.03.19

These notes summarize the cumulative changes made for spec release 3.03.19 as of February 1, 1996.

Improvements To the chelp Stand-Alone Help Viewer

The stand-alone spec help file viewer chelp will now use the same rules as spec for selecting the auxiliary file directory. A .BI -D " directory" option will override a SPECD environment variable, and the environment variable will override the compiled-in default. Also, chelp has been fixed to no longer change tty terminal modes if the standard output is not a tty, such as when the output of chelp is piped through a standard file browser such as more or less.

Wizard-Mode edconf Bug Fixed

A bug, whereby optional motor parameters (from the edconf m screens) would not be read in by edconf for motors with wizard-level protection, has been fixed.

RELEASE 3.03.18

These notes summarize the cumulative changes made for spec release 3.03.18 as of January 19, 1996.

DISPLAY Can Now Be Assigned and Exported

spec now includes DISPLAY as one of its built-in variables. The environment variable DISPLAY is used by X Window clients to figure out on which host to run. On startup, spec will set the value of DISPLAY from the environment variable. If DISPLAY is not set in the environment, the value saved in the user's state file will be used. The value of DISPLAY can be changed while running spec, and the current value will be exported to new x11filt processes as they are spawned. For example,

DISPLAY="host1:0"; plot_cntl("filter1,open")
DISPLAY="host2:0"; plot_cntl("filter2,open")

will create plot windows on two different hosts.

Argument Restrictions For chg_dial(), gpib_get() and ser_get Eased

Previously, when string values were needed for the second argument of the chg_dial(), gpib_get() or ser_get() functions, the argument had to be in the form of literal string constant. Now, a string-valued variable can be used. To call gpib_get() or ser_get() with an end-of-string delimiter that starts with a number, use a string constant.

Keithley-Metrabyte CTM-10 Fully Supported

The second AMD Am9513 counter chip on the Keithley-Metrabyte CTM-10 PC timer/counter board can now be accessed from spec. In the configuration file, select the Metrabyte or Labmaster PC Board device as for the CTM-05 board, but configure it for five channels. With the CTM-10, two additional 32-bit scaler channels are available. In addition to the jumpers need for the CTM-05 board, you must also connect output 1 of the first chip to gates 2 and 4 of the second chip. The additional scaler channels should be connected to the source 3 and source 5 inputs of the second chip.

Initialization Problem with Nucleus PCA-3 Fixed

spec now includes a longer delay (1 second) after resetting the Nucleus PCA-3 board during hardware initialization to give the board time to become responsive to commands issued from spec.

Either Compumotor 4000 Serial Port Can Now Be Used

The Compumotor 4000 motor controller has two serial ports. Previously, port 1 had to be used with spec. Now either port can be used. As this motor controller is so little used, the change in the configuration file to select among the two ports is not backwards compatible.

EPICS Motor Control Improvements

A number of changes have been made in the support for the EPICS motor driver as used at APS. The DMOV record is now monitored for motor status, rather than MOVN. The automatic backlash capabilities in the driver are now used. spec now also loads the values for base rate and backlash steps from spec's configuration file into the EPICS data base, along with the other motor parameters such as steady-state speed and acceleration.

RELEASE 3.03.17

These notes summarize the cumulative changes made for spec release 3.03.17 as of January 9, 1996.

New Startup Option To Set spec_par() Parameters

The parameters available through the spec_par() function can now also be set on the command line when spec is invoked using a -o par=value syntax. For example,

fourc -o auto_file_close=2 -o check_file_names=no

turns on the option to close idle output files after two hours and turns off the option to check output file names for nonstandard and unprintable characters. In the future, spec_par()-type options may may be introduced that must be set on the command line as they relate to initialization actions taken before the first prompt is issued.

Bug In SunOS 4.x Support Of KS-3929 SCSI-CAMAC Code Fixed

A bug, introduced in the Sun platform support for the Kinetic Systems 3929 SCSI-CAMAC controller in spec release 2.02.01 (when the HP platform support was added), which sometimes made spec unusable with that module on the Sun platform has been fixed. Also, crate inhibit is now automatically cleared when spec initializes the 3929 on the Sun platforms (as spec already does for the 3929 on the HP platform).

Bug In Setting CAMAC Inhibit Fixed

A bug, where trying to set CAMAC crate inhibit using the command ca_cntl("inhibit", 1), was both ineffective and also led to segmentation violations on some platforms, has been fixed.

RELEASE 3.03.16 - PCA-II Driver For linux Available

December 17, 1995: spec now supports operation of the Nucleus PCA-II MCA card in live-time mode on linux systems with a CSS-provided loadable-module driver. The driver is installed with the install_pca script in the drivers subdirectory of the spec distribution. The interrupt number and base address, as set by the dip switches on the PCA-II board, should be specified when installing the driver if they differ from the defaults. See the README file in the drivers directory for further information on installing the driver. See the pca help file for important information on the need to replace a resistor on the PCA-II board for interrupts to work with certain PC motherboards. (Note, if you are using the CSS PCA driver on System V/386-type UNIX platforms, you must install the new version of the driver for use with this and subsequent spec releases due to a small, but incompatible change made in the driver to accommodate linux.)

RELEASE 3.03.15

These notes summarize the cumulative changes made for spec release 3.03.15 as of November 28, 1995.

New Auto-Close Option For spec Output Files

A new option is available to automatically close output files that haven't been accessed for some interval of time. Calling

spec_par("auto_file_close", hours)

sets the interval to hours, which can have a non-integral value. When the auto-close option is enabled, each time an on(), off(), open(), close() or fprintf() function is called, spec will check its list of opened output files. Any files which have not been written to for the length of time given by hours will be closed. Enabling this option can help prevent errors when your macros or commands do not close files when appropriate, resulting in spec running out of resources to open additional files. As files are opened automatically when sent output, auto-close mode operates transparently for the most part. However, if you change to a different working directory between the time the file is first opened and subsequently automatically closed, and if the file is not opened by an absolute path name, the next time you refer to the file, spec will reopen it using a relative path based on the current directory. Calling spec_par("auto_file_close", 0) disables the mode. By default, the mode is initially disabled.

New plot_cntl() Option To Set X11 Window Geometry

The option plot_cntl("geometry=string"), is now available. With the x11 high-resolution plot windows only, this function sets the size and position of the window. The format of the geometry string is the same as expected by standard X windows applications, as in

plot_cntl("geometry=512x380-0+10")

As with the conventional syntax, not all parts of the geometry string are required.

New showscans Options

The showscans utility, which makes twelve mini-plots per page of a spec data file using C-PLOT, has two new options. The new -w option will cause C-PLOT to wait for a <return> from the keyboard after each page is displayed. (This option should not be used when sending the output to a printer.) The new -x option is a shorthand for the options -zi "x11 -rotate" -w, which are the best options to use to interactively view showscans results on an X windows display.

Improved Debugging For ESRF Device Servers

The debugging messages printed for all spec calls of the dev_putget() routine, used to access the ESRF device servers, now show the command name and the values of the input and output arguments in a consistent format. These messages are displayed when hardware debugging is enabled by including bit 0x40 (64) in the value assigned to the built-in variable DEBUG.

RELEASE 3.03.14

These notes summarize the cumulative changes made for spec release 3.03.14 as of November 16, 1995.

Easier-To-Use Choice Menus For Configuration Editor

The configuration editor edconf now displays all the choices for such things as motor-controller type and serial-device baud rates in a menu box. The up and down or <> keys can be used to select among the choice items.

New Invocation Options For Configuration Editor

The configuration editor edconf takes two new options. The -D specdir option can be used to specify the spec auxiliary file directory. The -g geo option can be used to specify the geometry to be edited if the multiple geometry feature (selected using the GEO# keywords in the config file) is enabled. For example,

edconf -D /usr/local/lib/spec.d -g fourc spec

will edit the configuration file in the directory /usr/local/lib/spec.d/spec, and while in the configuration editor, the G command will toggle between displaying all motors and only those associated with the fourc geometry group.

New -g geo Flag

spec can now be invoked with a -g geo flag to force loading of macro files and activation of geometry calculations for a particular geometry such as fourc, surf or kappa while using the configuration files taken from the name by which spec is invoked. For example,

spec -g fourc

will use the configuration files from the SPECD/spec directory but will operate in four-circle mode.

Alarms Blocked During Critical Code When Using Software Timer

The SIGALRM signal, used by the software timer in spec, is now blocked during critical code, such as during the RPC calls used by the ESRF device server libraries, to prevent those calls from being interrupted and generating error returns.

Minor Bug Relating to Text Output Fixed

A bug in the implementation of the unlimited length output strings introduced in release 3.03.10 has been fixed. A manifestation of the bug was that when spec debugging was turned on and used with a debugging log file, some messages generated by the print command would not appear on the screen.

Bug In Data-Pipe Installation Fixed

An error in a Makefile in release 3.03.11 that generated an error message during spec installation when copying the dpmake utility has been fixed.

RELEASE 3.03.13

These notes summarize the cumulative changes made for spec release 3.03.13 as of October 19, 1995.

More Significant Digits For Motors In Data File

The _ascan, mesh and Escan standard macros have been changed to write up to eight significant digits of the positions of the scanned motors to the data file. The _head macro has also been changed to write up to eight significant digits of the positions of all the motors in the standard scan header. Previously, the maximum number of significant digits was six. However, when spec calculates motor positions, it rounds the calculated value to the motor step size. Thus for most motors, there will be no visible change in the data files.

Support For Bit 3 Model 403 ISA-To-VME Controller On linux

spec now has direct support for VME devices using the Bit 3 Model 403 ISA bus to VME bus adapter. Currently, this support is only available under linux. Support on the HP 700 platforms with E/ISA bus will be added shortly. As for VME devices, spec currently supports the Mizar 8310 VME counting module and the Oregon Micro Systems VME8 motor controller module. Support for the Joerger Model VSC8 8-channel scaler and the Highland V540 micro-stepping controller will be added shortly.

Linux I/O Port Access Checks For CSS Kernel Patch

CSS provides a kernel patch for linux that allows non-root users access to I/O ports for hardware control. Previously, if spec was run without the patch by a non-root user, spec would die from a segmentation violation at the first attempt at accessing an I/O port. Now, spec will print a message that the I/O ports are unavailable and suggest the kernel patch be installed.

Support For Simultaneous HP and IOtech SICL GPIB

The CSS-modified IOtech SICL GPIB library introduced in spec release 3.03.01 is now available and supported in spec in a version with with SICL function names that occupy a different name space from the standard SICL library. This changes allows, for example, both an HP SICL library and the CSS-modified library to be linked into the same spec executable. The disjoint name-space version is selected in the .i config file with the keyword PC_IOTSICL_H (PC_IOTSICL_H_L for the shared version). From the configuration editor, select the "IOtech SCSI GPIB (ESRFized)" GPIB device.

RELEASE 3.03.12

These notes summarize the cumulative changes made for spec release 3.03.12 as of October 10, 1995.

GTERM Defaults To "x11"

spec now sets the GTERM environment variable to "x11" by default if the variable is unset in the environment.

New Clean-and-Fresh Flag -F

A new -F command line argument not only starts spec fresh (as with the -f flag) but also disables the reading of all startup macro files. This flag can be of use to front-end programs that want to ensure which macros are defined by explicitly specifying macro files to be read.

config-File Motor Flags Saved In Hex

The flags column for motors in the hardware config file is now saved in hexadecimal in order to make it easier to interrupt geometry assignments in linked geometry configurations when viewing the config file directly.

Klinger Motion-Master Doesn't sync Motors Before Move

spec no longer performs automatic synchronization of hardware registers and software positions before each move for motors controlled by the Klinger Motion Master 2000. This change apparently solves some problems reported by users.

Support For HP E2050 LAN/HP-IB Gateway

spec now recognizes the HP E2050 LAN/HP-IB Gateway device. The config file entry for the device name, which is used as the argument to the SICL iopen() subroutine, must have the format

lan[hostname]:interface

where lan is the symbolic name for the device set in the /usr/pil/etc/hwconfig.hw file, hostname is the host name or IP address of the gateway and interface is host-name parameter in the gateway on-board configuration (set via telnet to the gateway).

Support For Bi Ra 5302 64-Channel ADC as Counters

spec now supports the Bi Ra Model 5302 ADC CAMAC module. This module allows up to 64 analog inputs. spec treats each channel as a counter, so each channel should be configured on the configuration editor scaler screen. The value entered for the scale factor is interpreted as the channel gain. The ADC conversions are performed on the getcounts command.

Bug Fixed in data_pipe() Overhead Code

A bug in the data_pipe.o overhead function where the user-callable function get_input_data() transferred the number of data points, rather than the number of points times the number of elements for double-sized spec data, has been fixed.

RELEASE 3.03.11 - data_pipe() Beta Release

August 7, 1995: The data_pipe() facility is now in beta release. This facility allows integration of external programs with spec, somewhat along the lines of C-PLOT user functions. See the data_pipe help file for detailed information.

RELEASE 3.03.10

These notes summarize the cumulative changes made for spec release 3.03.10 as of July 29, 1995.

Unlimited Length For Input Strings

Previously, string constants in spec were limited to 8,192 bytes. That limit has been removed. spec now allocates memory for strings as needed.

Unlimited Length Strings For printf()

Previously, the length of the result of a printf(), fprintf() or sprintf() was limited to 8,192 bytes. That limit has been removed.

Unlimited Length Macros

Previously, the length of macro definitions was limited to 8,064 bytes. Macros may now be as long as one desires.

Input Push-Back Space Increased

The size of the input push-back space has been doubled from 65,536 to 131,072 bytes. The input push-back space holds macro expansion text, so does effectively limit the maximum length of a macro.

More Format Specifiers Recognized By printf()

The printf() function now recognizes the %X, %E, %G, %i, %b and %p format specifiers if they are recognized by the underlying C library version of printf().

Better Checking For port_getw() and port_putw()

Previously, the 16-bit PC I/O port access functions port_putw() and port_getw() did not check if the high-byte port was included in the config file I/O port configuration. In the configuration file, the number of consecutive addresses to be enabled is in terms of 8-bit addresses. If the high-byte port was not configured, spec would not have enabled access to the high-byte port, and a port_getw() or port_putw() call would result in spec terminating with a segmentation violation. spec now prints an error message and resets to command level if access is attempted without proper configuration.

X11 Geometry Parsing Fixed

A bug, where the X11 high-resolution graphics filter didn't treat negative values for the x and y position in the geometry string correctly, has been fixed. A negative value for x or y, including the value -0, now specifies the position of the right side of the X11 window relative to right side of the root window, as is the usual convention.

RELEASE 3.03.09

These notes summarize the cumulative changes made for spec release 3.03.09 as of July 8, 1995.

More Simultaneous High-Resolution Plots

The number of allowed simultaneous high-resolution plot-filter processes has been increased from two to five. The functions plot_cntl("filter1") through plot_cntl("filter5") select the active filter.

New plot_cntl() Option To Set X11 Window Title

The option plot_cntl("title=string"), is now available. With the x11 high-resolution plot windows, the title given by string is used in the XSetWindowProperties() call to set the window and icon labels. On most X11 window managers, that means the title will appear in the window's title bar.

EPICS Support On Linux Platforms Now Available

spec is now working with EPICS (Release 3.12.13Beta) on linux platforms. When installing spec, select the epics_linux target.

Install Script Now Prompts For EPICS or ESRF Directories

When installing spec on platforms that use the ESRF device servers or the EPICS channel access libraries, the installation script will now prompt for the directory that contains the appropriate libraries. Previously, the installation "makefile" used the names ./dserver for the ESRF platforms and ./epics for the EPICS platforms, and the local spec administrator was responsible for making those names symbolic links to the correct directories.

Obscure Macro Bug Fixed

A fairly old bug that caused the wrong definition to be returned for the first macro defined after starting fresh has been fixed. The bug was most often manifested by the repeated message cleanup:  undefined appearing when starting fresh when there was an error in the startup macro files.

RELEASE 3.03.08 - Fixes For SGI Platforms

June 28, 1995: This release includes fixes to restore spec source code portability to Silicon Graphics platforms.

RELEASE 3.03.07 - Kappa Geometry Improvements

June 27, 1995: spec now supports a vertical configuration of the kappa diffractometer. The new setvmode macro (from the kappa.src macro file) can be used to enable the vertical configuration features in the geo_kappa.c source file.

RELEASE 3.03.06

These notes summarize the cumulative changes made for spec release 3.03.06 as of June 18, 1995.

Support For Heidenhain Encoders on MCU-2

spec now supports the MCU-2 motor controllers that have been specially modified to read Heidenhain absolute encoders. Select the MCU_H motor controller type on the motor screen of the configuration editor and enter a value for the "encoder steps per deg/mm" parameter on the motor parameter screen when using that hardware combination.

Bug In PCA-3/Multiport Code Fixed

A recently introduced bug (12/94) in the code for the Nucleus PCA-3 and Multiport devices that prevented the offset parameter to be set to zero using motor_par() has been fixed.

RELEASE 3.03.05

These notes summarize the cumulative changes made for spec release 3.03.05 as of June 11, 1995.

New VERSION Built-in Variable

A new read-only built-in variable VERSION contains the current spec version number.

Allow Multiple CAMAC QS-450 Quad Scalers

spec now allows more than one CAMAC DSP QS-450 Quad Scalers to be used at the same time.

RELEASE 3.03.04

These notes summarize the cumulative changes made for spec release 3.03.04 as of May 30, 1995.

Hardware Poll Interval Is Now Adjustable

When the wait() function is called to wait for polled motors, timers or other acquisition devices to finish, spec sleeps for a small interval between each check of the hardware. Previously, that interval was built into the code and set (in recent releases) to 40 msec. That sleep time can now be changed using the new "hdw_poll_interval" parameter to the spec_par() function. The units of the parameter are milliseconds. The default value is 40 msec. A value of zero is allowed, though not recommended if the computer is being used for anything else.

RELEASE 3.03.03

These notes summarize the cumulative changes made for spec release 3.03.03 as of May 28, 1995.

New Omega-Type Four-Circle Diffractometer

The four-circle geometry code and macros have been modified to work with an omega-type four-circle diffractometer. With this diffractometer, the theta and two-theta circles are mechanically coupled, such that the when the two-theta circle is moved, the theta circle moves half the distance. The theta circle can also be moved independently of two-theta. This configuration corresponds to replacing the independent theta motion with an omega = theta - two-theta/2 motion. If there is a motor with the mnemonic th in the config file, spec assumes a standard four-circle diffractometer. If there is no th motor, but if there is a motor configured with the mnemonic om, spec assumes the omega-type configuration. The fourc.src macro file should be reread after changing the configuration. One can start fresh or type newmac to do that.

RELEASE 3.03.01

These notes summarize the cumulative changes made for spec release 3.03.01 as of May 24, 1995.

New Option To Change Step Size With motor_par()

For the rare circumstances where it may be necessary, spec now allows the motor step-size parameter to be changed using

motor_par(mne, "step_size",  value)

Since such changes should not be undertaken lightly, spec requires they be explicitly enabled using

spec_par("modify_step_size", 1)

Rereading the config file resets the step size parameter to the value in the config file.

No-Echo Option With -p

If the file descriptor argument to spec's -p startup option is zero, spec will not echo text received from that file descriptor to the standard output, as was the case previously. (The -p option is used by GUI-type programs that invoke spec as child process.)

New Continued-Lines Option With data_dump()

The optional argument fmt1 to the data_dump() function, which has the form "%#", and specifies how many data points (specified by the number #) are to be printed on each line, has a new option. If the number # is followed by the letter C, a backslash is added to each continued line, appropriate for saving MCA data in manageable length lines. New versions (since May 1, 1995) of the C-PLOT scans.4 user function interpret the continued lines correctly for MCA data.

Improvements To scans.4

The version of the scans.4 C-PLOT user function distributed in the spec aux directory has new features. In particular, there is no longer a compiled-in limit for the number of points that can be read as raw data or the number of scans that can be contained in one data file. Also, the data file syntax recognized by scans.4 has been expanded. Directives of more than one letter that begin with #@ are now recognized. New directives for reading MCA-type data have been added. See the spec scans help file for more information.

New motor_par() Options for OMS Controllers

A command pass through capability is now available for all versions of the OMS motor controller using

motor_par(mne, "send",  cmd)

to send the command cmd to the controller and

motor_par(mne, "read",  cmd)

to send the command cmd and return as a string an expected reply. For example,

print motor_par(tth, "read", "RP")
240000

results in the string "AX RP\n" being sent to the controller.

Bug With the Klinger MotionMaster 2000 Fixed

spec's code to support the Klinger MotionMaster 2000 motor controller was developed on units that did not have all four motor modules installed. It turns out that with all modules installed on the ISA bus version, spec must pause about half a second after sending the emergency stop character # (which it sends when initializing the board) before the board is able to communicate again. Such a pause is now part of the code.

New motor_par() Option for ACS MCU-2

On ACS MCU-2 motor controllers equipped with the option to read Heidenhain absolute encoders, the function

motor_par(mne, "encoder_position")

will return the current encoder position.

CSS-Modified Library Available For IOtech SCSI488/H

CSS now provides an alternative libsicl.a for use with the IOtech SCSI488/H SCSI-to-GPIB module on the HP 700 platform. This version doesn't require a daemon process, as does the IOtech version. Contact CSS to obtain this version of the library.

CAMAC Crate Sharing Available With KS 3929 on HP 700

When using the Kinetic Systems 3929 SCSI-to-CAMAC module on the HP 700 platform with the CSS-provided software interface, CSS now allows more than one version of spec to have access to the crate at a time.

Standalone Library For KS 3929 on HP 700

CSS has created a subroutine library for use with local programs that require access to the Kinetic Systems 3929 SCSI-to-CAMAC module on the HP 700. This library allows simultaneous access to the CAMAC crate by spec and the local programs. Contact CSS to obtain the library.