

			APPX Software, Inc.


Creating a customized APPX engine:

The standard release tape for APPX includes an engine ('appx') which does
not support the Vision file interface (from Acucobol) or C-ISAM (from
Informix).  When either (or both) of these interfaces is purchased from
APPX Software, Inc. a separate tape will be shipped which will contain an
archive file and a 'Makefile' script which will enable you to build a
new engine.  In addition to the linkable interface tape you will still need
the standard release tape for APPX.  Additionally you will need the appropriate
archive file(s) from either Acucobol or Informix.

Prior to creating the customized APPX you must install a standard release
tape.  If you have NOT done so please do so now.  

Now that you have APPX installed and operational in its standard form you
are ready to create your customized engine.  Log into your system as root:

	su 

Change directories to the same directory you installed APPX into:

	cd $APPXPATH/..

If you list the contents of this directory it should include an APPX
engine and a data directory (in addition to other files)

	ls -l

Verify that a file named 'appx' and a directory named 'data' exists.  If
NOT you are in the wrong directory OR you have installed APPX incorrectly.
Review your APPX installation and your current directory.  DO NOT
CONTINUE with these instructions until you are in the correct directory.

Load the interface tape into your tape drive then restore its contents.  
The contents of the tape and the new APPX engine will require approximately
50 mb of work space.  Once the engine is created you will be replacing your
existing APPX engine and will be able to delete the working directories to
free up the space.  Now load the tape:

	tar -xvf /dev/rmt0    (substitute the correct tape drive name for rmt0)

The tape should contain a new directory 'linkable' and four files
within that directory ('appx.a', 'Makefile.relink', 'visionstub.o', and
'cisamstub.o').

Change directories into the new directory:

	cd linkable

Now you must research the locations of your linkable archive files for
either Vision or C-ISAM (or both).  These files are provided to you
by Acucobol or Informix.  For Vision the filename is 'runcbl.a'.  For
C-ISAM the filename is 'libisam.a'.   You specify the locations of these
files when entering the command to create the new engine.  In the examples
below the parameters 'cisam=...' and 'vision=...' specify the locations of
C-ISAM and Vision archive files respectively.  You may enter zero, one or
both of these parameters.  Any parameter which is not entered will cause
that particular interface to NOT be available.  Examples:

	To create an engine with C-ISAM but no Vision:

		make -f Makefile.relink appx cisam=location/libisam.a

	To create an engine with Vision but no C-ISAM:

		make -f Makefile.relink appx vision=location/runcbl.a

	To create an engine with both interfaces:

		make -f Makefile.relink appx vision=location/runcbl.a \
			cisam=location/libisam.a

	To create an engine with neither optional interface:

		make -f Makefile.relink appx



When the make is done you should have a new APPX engine which you need to use
in place of the one shipped with the standard release tape.  To test the new
engine you can execute APPX without replacing the old engine with the
following command:

	./appx

To make a file use the Vision or C-ISAM interface you need to remove the
existing file (if it contains data you must export it first).  Use data
base management for the appropriate database and application.  Export any
existing data using the 'export' option.  Then scratch the existing file using
the 'scratch' option.  Now you must indicate to APPX which file management
system (FMS) to use.  The specification in entered using the 'File
Specifications' option.  The column labeled 'FMS' must be changed to the
correct value.  The values are:

	'1' = Unixio (standard APPX file manager)
	'2' = Vision (use Vision interface)
	'3' = C-ISAM (use C-ISAM interface)

You can select any FMS for any data file.  DESIGN and System Administration
files MUST use FMS 1.  

Once you have selected the correct FMS you will need to create the file
by using the 'Create' option.  If you receive an error you either selected
the incorrect FMS value or mis-linked your engine.  Contact your support
center for assistance.  If you exported old data you may now import it
by using the 'Import' option.  If you are going to access this data with
Acucobol read the notes about APPX_PD_SIGNS below BEFORE importing your data.

If the engine functions correctly you should replace the standard APPX
engine with your customized one.  You should either backup the standard
engine or rename it.  The command to rename it is:

	cd ..
	mv appx appx.standard

Then copy in the new engine:

	mv linkable/appx .

Change ownership and permissions:

	chmod u+s appx
	chown appx appx

You may now delete the linkable directory if you desire:

	rm -r linkable

Your customized APPX is now installed.

APPX references an environment variable 'APPX_PD_SIGNS' to determine
what values should be used for the sign portion of a packed decimal number.
By default APPX uses 'C' to indicate positive numbers and 'D' to indicate
negative numbers.  Acucobol used different values.  If you are going to be
exchanging data between APPX and Acucobol programs you MUST set the
value of APPX_PD_SIGNS to FD using the following line in your .profile or
APPX startup script:

	export APPX_PD_SIGNS=FD

The first letter of APPX_PD_SIGNS is the value to use for positive numbers
and the second letter is the value for negative numbers.  NOTE: if you
exported any data during the steps above AND you are using Acucobol
(or some other language which uses different sign indicators you must
re-import your data with APPX_PD_SIGNS set correctly.  The signs MUST 
be stored the same for ALL data accessed by APPX for a particular
installation.  If some of your data is stored in different FMS systems
you MUST export/import ALL of your data whenever changing the value
of APPX_PD_SIGNS or arithmetic comparisons and calculations may not
work correctly.

