1) Ufg.c method new (08-Mar-00):  newRate(self) was not being called, so methods
	like setRate() which use self->period were erroneous.  Found this bug when
	doing project bcs:  sine amplitudes wouldn't change, because the effective
	ramp rate was computed as "rate * self->period" = 10e20 * 0.0 = 0.0.  This
	bug didn't affect any other project, because they all set the span ramp
	rate after Ufg creation; by that time self->period is correct.  Changed
	module is drop-in compatible with other projects.

2) Player.alt (08-Mar-00):  Added "held" ivar, method held.  Changed methods hold
	and resume to set and clear "held".  Method notify changed to resumes on
	startup only if not held.  These changes implement a new player feature:
	hold at level. Required by project bcs.  Changed module is drop-in compatible
	with other projects.

3) PlayPanel.alt (08-Mar-00):  Numerous changes to allow two new optional features:
	1) Fixed playMap, in which case the SetSelector "channels" is not created or
	drawn, and 2) hold button creation.  Both options are determined by the params
	passed to method init.  Required by project bcs.  Changed module is drop-in
	compatible with other projects.

4) Recorder.alt (12-Mar-00):  Added methods "closestRate" and "closestSampleRate" to
	aid TbiPanel in matching up files sample rates with recorder sample rates, and
	method "minSampleRate" to return recorder clock rate. Required by project bcs.
	Changed module is drop-in compatible

5) Player.alt (14-Mar-00): BIG BUG.  On multichannel projects with the Data Player,
	when this was done:
	1)  Select a channel (e.g., "Long").
	2)  Start playing out a single-channel file.
	3)  Stop in mid-file, and change selected channel from "Long" to "Lat".
	4)  Select the file again (because Step 3 clears selected file).
	5)  Hit run.
	Notice that Long continues to play, as well as Lat.  This is because the
	deselected channel is not reset and zeroed when the player device list changes.
	Because is is ungrouped but still has a nonzero queue, it resumes playing out
	when run is hit.
	Solution:  Player.alt method resetDevices, add:  self.reset.clear.zero.

6) OliPanel.alt (14-Mar-00):  BUG in method checkDrvFile:
		Is:		.append[fileName.noPath[drvFile]]
		Should be :	.append[fileName.noPath[drvFName]]
	Causes error message if opening drive file manually and that file has a
	different sample period than the desired file. Because this is unlikely, the
	bug never showed itself.

7) FrfPanel.alt, IrfPanel.alt (20-Mar-00):  Enhancement:
	Added button and method to print scope contents to a text file.

8) DspClasses changes to eliminate compiler warnings (21-Mar-00):
	AddaTemp.c, fftlib.c, fftlib.h, MFir.c Psd.c, ScopeDaq.c,
	StringClosure.c, Sys.c, Tfe.c, xmath.h

9) Miscellaneous enhancements (17-Apr-00):

	extras.alt:  Added method scrollBar to StringCluster so that added
	text can be scrolled into view.

	Watchdog.alt method download:  Check if action = NIL before trying
	to download it.  In b600qProj, needed to have a Watchdog in Alltalk
	to satisfy ClockPanel, but didn't have or need one in the realtime
	side.

	Processor.alt:  Added method close to implement dsp rebooting from
	Alltalk.

10) PassDialog.alt (01-May-00):  Added "disp.accept" to method "okay" to
	fix bug where pressing <CR> would work properly, but hitting okay
	button wouldn't.

11) FgPanel.alt method attach (18-Apr-00):  BUG:  The span knob range
	was being set up according to the master span's endLevelAttr rather
	than the local span's endLevelAttr.

12) Setpt.alt (18-Apr-00):  Allow any endLevel without clipping.
	Also cleaned up internally.  No changes in protocol.

13) DspClasses changes:  Various files originally created on a Mac had
	the wrong line terminators.  These have been cleaned up:

14) Adda.c:  For UNIX, replaced busy wait loop with taskDelay

15) thd.m:  Enhanced to estimate fundamental frequency if one is not
	provided.  Also, got rid of printing of intermediate variable.

16) SetptKnob.alt (new):  Enhancement to Knobs used for setpoints to
	allow setpoint move cancellation.

17) FaultAction.alt (09-May-00):  Enhancement to select the action
	when a fault occurs, either AbortAction or EmergAction.

18) firlib.c/h, xmath.c/h (09-May-00):  Enhancement to allow factoring
	of linear phase fir filters into minimum & maximum phase.
	xmath.c/h had fft procedures added to support this.

19) ClockPanel.alt (10-May-00):  Clarified watchdog labels.

20) PlayPanel.alt (11-May-00):  Fixed to reflect changes in FileSubPanel.
	When Run, file sample period display shows same number as play
	sample period.  Changed method updateDisplays to
	fileSamp.value[play.file.origSamplePeriod]. To do this, had to
	enhance SeriesFile.alt

21) SeriesFile.alt (11-May-00):  To support bug fix to FileSubPanel.alt and
	PlayPanel.alt.  Added ivar "origSamplePeriod", which is set by
	method open, and read by method "origSamplePeriod.

22) BIG BUG:  Hitting local run while stopping causes discontinuity
	in the command waveform.  Changed:  TChannel method run:
	Put the fg load statements inside of a conditional
		IF self.stopped THEN
			...
		END IF

23) Added Tutorial.m to Matlab directory; improved thm.m.

24) BIG BUG (31-May-00):  Syncing data recorder with Function Generators
	was not working (Data Player & Oli Player were okay).  Due to
	no ufg sync output unless load, which is only being called
	in TChannel.run.  Solution:
	1) Put "syncOut" terminal in Span.c, logic in method doit().
	2) VirtualMachine method syncRecorder:  Do usual if oli or
	data recorder, else connect mspan syncOut to rec, recfil.

25) BIG BUG (01-Jun-00):  Connecting inputs to inputs sometimes works
	and sometimes doesn't.  Example:  Data Recorder allows "Feedback"
	to be manually selected with no problem.  But if done from a
	Restore Settings, a Terminal reference error 2 results.  This used
	to work on Radisys/Ariel, but is flaky on PowerPC systems.
	Solution is to not connect inputs to inputs anymore.

26) extras.alt (07-Jun-00):  Enhancement to class Listener to throw all
	errors into a ModalDialog rather than a native OS dialog, so event
	loops stay active.  Required for robust AltFace error recovery.

27) FgPanel.alt (07-Jun-00):  Subpanels being activated before stopped.

28) BIG CHANGE:  File error reporting (12-Jun-00):  With Alltalk 2.947,
	doing a "system.errorNumber" returns an error code for the last
	operation.  Use this when opening or creating files to provide
	the user more info.  NOTE:  Not supported; stubbed out.

29) Fix to leaving open Player/Recorder files (13-Jun-00):
	Close player and recorder whenever changing programs.

30) Fix to Player.alt to support the above fix (13-Jun-00):
	In method stop, put a conditional around "IF master.remote"
	in case master is NIL.  Otherwise, doing the play.stop above
	may generate an error, especially at startup.

Shipped Version 2.2, 13-Jun-00.
