Changes made during LFW upgrade:

Work for Jim:
1) Write code to download Miop firmware.
2) Convert coops classes Miop.c and dMiop.c.
3) Write a Coops class that gives access to the PowerPC clock, which will
   be used to provide the sampling clock.  It should have interface methods
   similar to that provided by Adda.c and Mts469Ioc.c, which provide similar
   functionality.

Action sequence architecture had to be totally brought up to date, both at the
Coops level and the Alltalk level because the old architecture used UpLink to
do its recording.

Classes with pointer data type to transfer arrays (for reference only):
(IMPORTANT:  DSP classes can be left as-is because they all have a conditional
 compilation based on symbol "IBM", and defining it makes it do the correct way
 of transferring arrays using the ">LF" or "<LF" construct.  The supervisor
 classes do not do this; instead they rely on pointer memory copies.  This is
 okay too because the supervisor dll has access to Alltalk's memory, so these
 supervisor classes can also be left as-is.)
	DAQ.C		methods copy(), copyFrom(), and data()
			(methods copyFrom() and data() are not used anywhere)
	DDAQ.C		method read_()
	DRECORD.C	method copy()
	DSRV.C		method load()
	DUFG.C		methods data() and qSeries()
			(method data() is only used as marker of used series
			 buffers, not for memory transfers)
	FLTBUF.C	methods address() and copyTo()
			(method address() is not used anywhere)
	IIR.C		method data()
			(method is not used anywhere)
	RECORD.C	method copy()
	SRV.C		methods copyFrom() and copyTo()
			(methods are not used anywhere)
	UFG.C		method qSeries()
			(method is not used anywhere)


%%%%%%%%%% COOPS SIDE %%%%%%%%%%

Selectors added to generic.dat:
	acorr	(DAQ.C)
	acOut	(DUFG.C)
	end_	(PFG.C)
	iCycle	(DUFG.C)
	iMove	(DUFG.C)
	iSweep	(DUFG.C)
	read_	(DDAQ.C)
	remove_	(DPFG.C)

makefile:  Added "-DIBM" preprocessor definition to ADDED_CFLAGS.
Super.dsp, SuperSim.dsp:  Added "IBM" preprocessor definition to project settings.
SuperSim.dsp:  Added "SIMULATION" preprocessor definition to project settings.

VM.C:
1) Simulated the effect of SyncConnectors with TermStrips to reduce
   code changes, especially wiring code.
2) Eliminated variables:
	clk2
	sch2
	seqCtlFbk
	seqCtlOut

DspModel.c & .h (latest version, not original)
1) Removed "next" and "last" ivars and references to them, because old
   dsp subclasses did not support threading.

ACTIONSE.C:
1) Replaced with latest version ActionSequence.c.

ADS.C:
1) Uncommented "return self" in method doit to prevent compiler warning.
2) Added #include "except.h" to prevent compiler warning.

CLOSURE.C:
1) Replaced with latest version Closure.c.

DAPC.C:
1) Added #include "asm.h" to prevent compiler warning.

DDAQ.C:
1) Changed method "read_" to "read".

DIGOUT.C:
1) Added #include "except.h" to prevent compiler warning.
2) DigitalOutputInit() return type "void" added to prevent compiler warning.

DUFG.C:
1) Added #include "asm.h" to prevent compiler warning.
2) Added #include "fork.h" to prevent compiler warning.
3) Declaration of ld_iSweep() in ld_iCycle() changed from "void" to
   "static void" to prevent compiler warning.
4) Added parenthesis around "seg = self->idleSeg" in the if-statement of
   qMove(), qCycle(), qSeries(), qStay(), and qSweep() to prevent compiler
   warning.
5) Removed unused variable "mean" in doit().
6) Set variables "freq" and "out" to zero in doit() to prevent 
   uninitialized variable compiler warning.

DIIR.C:
1) Added #include "asm.h" to prevent compiler warning.

DIO.C:
1) Removed unused variable "state" in readValue().
2) Added #include "except.h" to prevent compiler warning.
3) Added parenthesis around "act = action(self, i, j)" in the if-statement
   of dispose() to prevent compiler warning.
4) Added #include "fork.h" to prevent compiler warning.

DMIOP.C:  (leave to Jim Rosenow)

DRECORD.C:
1) Added #include "asm.h" to prevent compiler warning.
2) Added #include "fork.h" to prevent compiler warning.

DSRV.C:
1) Added #include "asm.h" to prevent compiler warning.
2) Replaced "beapAlign()" with "heapAlign()".
3) Eliminated reference to external variable "beapA".

DSYS.C:
1) Added methods close() and reset() to fork and respond to a reboot action.
2) Added #include "fork.h" to prevent compiler warning.
3) Stubbed out symbol beapA, beapB, and beapUsed().

DUFG.C:
1) Replaced "beapAlloc()" with "heapAlloc()".

FLTBUF.C:
1) Added #include "except.h" to prevent compiler warning.

GRESII.C:
1) Added #include "except.h" to prevent compiler warning.
2) Changed references to procedure VME2DSP() to mapVME32ToLocal().

GRESREG.H:
1) Replaced "ubyte", "ulong", "ushort" have been changed to "ubytex",
   "ulongx", "ushortx" to prevent conflicts with VxWorks.

IFLTTERM.C:
2) IFloatTerminalInit() return type "void" added to prevent compiler warning.

LDT.C:
1) Added #include "asm.h" to prevent compiler warning.
2) Added #include "fork.h" to prevent compiler warning.

MIOP.C:  (leave to Jim Rosenow)

MODESW.C:
1) Added #include "asm.h" to prevent compiler warning.

PFG.C:
1) Added #include "asm.h" to prevent compiler warning.
2) Added #include "except.h" to prevent compiler warning.
3) Added #include "fork.h" to prevent compiler warning.
4) Set variable "out" to zero in doit() to prevent 
   uninitialized variable compiler warning.
5) Uncommented "return self" in method doit to prevent compiler warning.
6) Got rid of forks to dispose of patterns because I thought forking 
   might be causing the crash mentioned below.  Still got the crash, but
   left this change in.  Turned "dispose" from a method into a procedure.
7) BIG BUG:  In PfgInit(), unbind the method "remove", NOT "remove_", which
   no longer exists in class List.

RAMP.C:
1) Added #include "asm.h" to prevent compiler warning.

RDT.C:
1) Added #include "asm.h" to prevent compiler warning.

SAMPHOLD.C:
1) Added #include "except.h" to prevent compiler warning.

SCALER.C:
1) Removed unused variable "result" in doit().
2) ScalerInit() return type "void" added to prevent compiler warning.

StringClosure.c:
1) Added.

SYS.C:
1) Added method close() to fork a reboot action.
2) Changed "remove_()" to "remove()", since the former no longer exists in List.c.

UFG.C:
1) Changed "remove_()" to "remove()", since the former no longer exists in List.c.


%%%%%%%%%% ALLTALK SIDE %%%%%%%%%%

NOTE:  All file had their names extended from eight characters to full
length because the latest Alltalk does not handle filename truncation.

Replaced:
	All icon images
	BarIndicator.alt
	ChanSel.alt
	ComboBox.alt
	CondPort.alt
	EditNumberDisplay.alt
	EditSignalDisplay.alt
	extras.alt
	HEditDisplay.alt
	HEditString.alt
	Knob.alt
	LampCluster.alt
	Modal3Confirm.alt
	Modal3Notifier.alt
	Panel.alt
	PopUpMenu.fix
	RadioCluster.alt
	RemoteObject.alt
	RemotePort.alt
	SignalDisplay.alt
	WaitNotifier.alt

AADEFINE.ALT:
1) Got rid of INCLUDE 'Timer.alt'.
2) Changed pathname definitions to be location independent.
3) Added various .setDirectory[] calls; other minor stuff.
4) Had to change the order of inclusion/creation of MainPanel and
   LDFPanel to allow for inclusion of the aaSubscaleDiffs.alt file.

ACTIONSEQUENCE.ALT:
1) Replaced with lastest version.

APPLICATION.ALT:
1) "DspActionSequence" replaced with "ActionSequence".
2) "DspClosure" replaced with "ActionSequence".
3) State transition errors do not throw exception (notifier dialog is used
   instead); more information displayed.

AUTOPANEL.ALT:
1) Removed references to image directory, which no longer exists.

CLOCKPANEL.ALT:
1) Removed all timer-related stuff.
2) Replaced "clk2" and "sch2" with "clk" and "sch".
3) In method resetStats, remove "vm.clk.reset" because the Coops clock
   does not understand reset anymore.

CONDPORT.ALT:
1) Replaced with lastest version.

DAQ.ALT:
1) Swapped order of size and array parameters in method icopy.

DSPACTIONSEQUENCE.ALT:
1) Removed.

DSPCLOSURE.ALT:
1) Removed.

DSPMODEL.ALT:
1) Method attach modified to print message if remote object not found.

EDITNOTIFYPARAGRAPH.ALT:
1) Changed from a subclass of EditSafe to a subclass of EditParagraph.
2) Superclass variable "change" referenced in method "change" modified to
   "changed".

EXTRAS.ALT:  Used latest version with the following changes:
1) Unnecessary classes (like GridControl) not included.
2) Added method setSize to class Text to do nothing (no longer supported).
3) Added method resize to class ChanSel to do .at[x, y]
   (setting width no longer supported).
4) Copied method sum of StringFile from old version to new version.

KNOB.ALT:
1) Used latest version, but had to add range button activation stuff
   that was in the old version.

LISTREADOBJECT/LISTWRITEOBJECT.ALT:
1) Added to read and write checklist from the SCF file.  Original names
   were BradReadObject/BradWriteObject.alt in Alltalk\MoreDemos.  Had to
   bring these up to date to account for new constants definitions and the
   existence of Literals.

MAINPANEL.ALT:
1) When creating menus that have dividing lines, just use '-' instead of 
   created string, and remove ".pad" and ".contract".

MANUALPANEL.ALT:
1) Use RadioButton instead of OvalButton in the clusters.

MessageAction.alt:
1) Added.

MYSYSTEM.ALT:
1) Got rid of references to:
	clk2
	seqCtlFbk
	seqCtlOut
2) Changes to accommodate new RemotePort.alt:
	Method attach:	Added check for remotePort.isOpen.
	Method stop:	Added remotePort.close.
	Method quit:	Added check for remotePort.isOpen.
3) Change to accomodate new CondPort.alt:
	Method attach:	New ".open[]" protocol; also check for isOpen.
4) Lots of other changes to make is similar to new methodology.
5) In method saveSCFFile, changed
		str.stripPathName
		scf.name.value.copy[str]
   to
		scf.name.value.noPath[str]
6) Removed ".setCreator" from method saveSCFFile.
7) ".setType" in methods openSCFFile and saveSCFFile updated to filter files.
8) Replaced method message with most recent version to fix string buffering
   problem (what would appear in the message log was always the same string).

RADIOCLUSTER.ALT:
1) Used latest version, but changed method "put" to "setName" to be
   compatible with old panels.

PATTERNPANEL.ALT:
1) Added ".contract" to creation of DynamicText or else width is max width.
2) In method save, changed
		fname.stripPathName
		editPat.fileName.value.copy[fname]
   to
		editPat.fileName.value.noPath[fname]
3) Removed ".setCreator" from method save.
4) ".setType" in methods open and save updated to filter files.

RECORDER.ALT:
1) Swapped order of size and array parameters in method copy.

RECORDPANEL.ALT:
1) Added ".contract" to creation of DynamicText or else width is max width.

REMOTECLOSURE.ALT:
1) Removed.

REMOTEPORT.ALT:
1) Replaced with latest version.

SCOPE.ALT & SCOPEPANEL.ALT:
1) References to "traceFill" removed.

SCOPEPANEL.ALT:
1) Keyboard focus logic updated in methods acquire and plot.  This is the only
   application-specific module where keyboard focus is used.

SCROLLNOTIFYPARAGRAPH.ALT:
1) Method init updated to be similar to latest version of superclass.

TIMER.ALT:
1) File removed.

TRACE.ALT:
1) Method init:  	Removed ".setFill[fillBlack]".
2) Method setValue:	Changed ".setFill[fill]" to ".setFill[TRUE]".

VIRTUALMACHINE.ALT:
1) Got rid of references to:
	clk2 (most but not all references; see #2 below)
	sch2
	seqCtlFbk
	seqCtlOut
	timer
	timer2
2) Keep clk2 as an ivar otherwise cal files give checksum error.
   Must also create an instance of one otherwise LexFile gives
   structure mismatch error.
3) Changed seqDaq creation to use clk instead of clk2.
4) Added "ActionSequence.attachDev[self]" to method init.

Action sequence classes updated:
	BrakeAction.alt
	BrakeNotifyAction.alt (NEW)
	HoldAction.alt
	HydHiAction.alt
	HydLoAction.alt
	HydOffAction.alt
	IntlkAction.alt
	LimitAction.alt
	ResumeAction.alt
	RunBtnAction.alt
	StopAction.alt
	StopBtnAction.alt

IMPORTANT:  Project folder on actual machine must be "c:\lfwProj" because
P&W's post-weld analysis project has this path hardcoded into its program.


SOFTWARE CHANGES FOR VERSION 3.0 18-Dec-03 TO VERSION 3.1 23-Jan-04:

1) Added 32 Digital Meters for monitoring the system status.
The meters have default selections of the system feedbacks.

2) Added two new testpoints, GRES hydraulic status inputs and
GRES interlock inputs.

3) Fixed bugs in AC and DC conditioner drivers for limits enable/disable
and programmed/overidden modes.

4) Made the Brake energize and realease actions consistant,
to both be disabled during a weld.

5) Limits Disabled and Overidden modes now also disable GRES
interlock and hydraulic state change actions.
