@database "DeepX"

@Node Main DeepX
@{b}  DeepX 1.2 (22-May-96)
  Written by Adam Ciarcinski
  Copyright ©1995-1996 Imagic Software@{ub}

@{u}Contact via InterNet@{uu}
  E-Mail:   ciarcins@beta.ii.tuniv.szczecin.pl
		adam@felix.univ.szczecin.pl

  URL:	http://www.man.szczecin.pl/~adam


 @{" Copyright    " Link Copyright}  The DeepX's rights
 @{" Requirements " Link Require}  What DeepX needs to work
 @{" Quick Start  " Link Intro}  For novice users
 @{" DeepX Info   " Link DeepX}  More info about DeepX
 @{" Features     " Link Features}  What DeepX can do
 @{" Preferences  " Link Prefs}  How to use DeepXPrefs
 @{" Thanks       " Link Thanks}  List of people who take care of DeepX
 @{" History      " Link History}  How DeepX grown up
@EndNode


@Node Copyright
DeepX is still FREEWARE.  It means that you MUST spread it for FREE.  Before
you put DeepX on a cover disk for a magazine, on some CD-ROM (except
AmiNet), or want to spread it to the public in other way, it would be nice
to let me know about it.

You are NOT ALLOWED to modify the program in any way, or any part of it for
any other purpose than than mentioned in this documentation.

The author is not responsible for any damage or data lost caused by DeepX.
You are using it for your own risk.  But don't worry.  I think it's quite
stable.
@EndNode


@Node Require "DeepX's Requirements"
DeepX needs:

* Kickstart 2.04 (37.175) or newer
* asl.library
* commodities.library
* xpkmaster.library v2+ or newer
* some xpk sublibraries
* optional locale.library
@EndNode


@Node Intro "Quick Start"
Let's try to make DeepX working, without installing it for good.  After this
quick tutorial you will know is it worth to use DeepX or not.  Note that you
must have installed xpkmaster.library with some of its sublibraries.

 1. Run DeepX by double-clicking on its icon or executing it from shell.

 2. The same way load DeepXPrefs to edit preferences.  Select 'Tasks Setup
    Widnow'.

 3. On the right side of the window you will see the flags of the default
    client (every client not shown in the client's list).  Turn off 'Unpack
    Files' and 'Fix File Size'.

 4. Click on the 'New' gadget below the list on the left, to add client.
    Type 'type' in the gadget called 'Current Client' (should be already
    activated).  'type' is a Shell command which we want to show packed
    files.  You do not have to change flags, because they are already set to
    'Unpack Files' and 'Fix File Size'.

 5. Click again on the 'New' gadget and enter 'dir' as the next command, but
    this time turn off 'Unpack Files' and 'Fix File Size' flags and activate
    'Pack Files' (by clicking on the check box gadgets).

 6. Now you have to set a packer.  Click on the 'XPK Packer Config' gadget.
    You will see config window now.  Select, for example, 'NUKE' packer in
    the listview and click 'OK".

 7. Now you will see field called 'Packer' set to 'NUKE'.

 8. Now you can close the window and click on the 'Use' gadget.
    Preferneces editor will quit.

 9. Because you set 'dir' command to pack every file it saves, try to save
    result of its work to a file, for example:	dir sys: >ram:test

10. Now try to see the 'test' file.  Because the only command that is able
    to read unpacked files (via DeepX) is 'type', try:  type ram:test
    You will see the directory list previously generated by Dir command.

11. To turn DeepX off type gain its name or double-click on ots icon.  You
    will see the good bye requester.
@EndNode


@Node DeepX "More about DeepX"
You can unload DeepX by executing its again or clicking on 'Remove' gadget
in Exchange Commodity.

DeepX can be easily disabled by changing state to 'Inactive' in Exchange
Commodity.  It is better than killing it, because all opened files are still
handled.


DeepX needs ENV: assignment.  If ENV: cannot be found, DeepX will display a
requester and will not run.


DeepX may refuse quit in the following cases:

1. Some files are still in use (there are not Close()ed), so DeepX will
   show:  "I have opened <n> temporary file(s)".  You should wait for some
   DeepX clients to finish and then try to quit again.

2. Dos library vectors, which DeepX uses, were changed, so DeepX will show:
   "Someone patched DOS functions after me".  This may be caused by some
   other system patcher or virus.  This is also caused by xpkCRM2.library
   (CrM.library in particular), so when you use CRM2 packer there is no way
   to turn DeepX off.


DeepX tries to load its preferences from ENV:DeepX.prefs.  If ENV: assign
doesn't exist, DeepX won't start.  If preferences don't exist, DeepX uses
the following defaults:
- temporary directory is set to 'RAM:'
- timeout is set to 5 seconds
- DeepX starts activated and enables global unpacking and size correcting


DeepX will ask you to enter a password, if needed.  The request window will
be opened then on the actual screen.
@EndNode


@Node Features
Features:

* DeepX supports specified processes (called clients) indicated by their
	task or command name; every client has its own preferences

* DeepX may use the list of files/patterns to change client's preferecnes.

* DeepX works as Commodity broker, where can be activated or disactivated.

* DeepX open its own process called 'DeepX Process' with priority 1

* DeepX keeps unpacked file for a short time for the next possible open

* DeepX works with interactive devices, like prt: or con:, and nil:

* DeepX unpacks executables

* DeepX patches Open(), Close(), Examine(), LoadSeg(), NewLoadSeg(), Write()
	and OpenFromLock()

* DeepX was written in assembler
@EndNode


@Node Prefs "DeepX Preferences^
On the DeepX Preferences' window you will find the following gadgets:

@{b}Global Setup Window(ub)
Opens/closes setup window for global (see below).

@{b}Tasks Setup Window(ub)
Opens/closes setup window for tasks (processes) (see below).

@{b}Files Setup Window(ub)
Opens/closes setup window for files (see below).

@{b}Save@{ub}
Save preferences to ENV: and ENVARC: and exit.

@{b}Use@{ub}
Save preferences to ENV: and exit.

@{b}Cancel@{ub}
Cancel all changes and exit.



and menus:

@{u}Project@{uu}
@{b}Open...@{ub}
Open a given preferences file using Asl requester.

@{b}Save As...@{ub}
Save actual setup to a given file.

@{b}Quit@{ub}
Cancel all changes and exit.


@{u}Edit@{uu}
@{b}Reset To Defaults@{ub}
Erase all setups and reset to defaults (see @{"DeepX Info" Link DeepX}

@{b}Last Saved@{ub}
Load preferences from ENVARC:DeepX.prefs

@{b}Restore@{ub}
Load preferences from ENV:DeepX.prefs


@{u}Settings@{uu}
@{b}Create Icons?@{ub}
If this item is checked, create icon for prefernces saved using Save As...




@{u}Global Setup Window(uu)

@{b}Temporary Directory Path@{ub}
Temporary directory path, where DeepX's temporary files will be kept.  If
you have enough memory, you should set it to RAM:.  After start DeepX will
flush temporary files from temporary directory.  It avoids keeping temporary
files on disk, then temporary directory path is on disk.

@{b}Asl@{ub}
Temporary Directory may be changed using Asl requester.

@{b}File TimeOut@{ub}
Temporary files are kept during a given time, because some programs open the
same files few times in a short period fo time.  Here you can change the
time (in seconds), after which DeepX will delete unused temporary files from
temporary directory.

@{b}After Start@{ub}
This cycle gadget changes the state of DeepX activation.  In 'Active' mode
DeepX is ready after launch.  In 'Inactive' mode you must change the DeepX
activity in Exchange Commodity to let DeepX work normally.

@{b}Executables@{ub}
When this gadget is set to 'Enable', every packed executable file can be
executed like it was unpacked.  NOTE:  Overlaid executables are not deleted,
because they are still in use after return from LoadSeg().  Do not pack
overlaid executables!



@{u}Tasks Setup Window(uu)

@{b}DeepX Clients@{ub}
This is a list of DeepX clients (processes/command names) with a one special
client called <DEFAULT CLIENT>, which have preferences for all programs not
shown in this list.  If you click on the client's name, then you'll see its
preferences, which you can edit.

@{b}New@{ub}
Inserts a new client into the list after the current client.  After that you
should set its name and you may change the flags or packer.

@{b}Delete@{ub}
Removes the current client from the clients list.

@{b}Processes@{ub}
This is a list of available processes in the system.  You can add a process
to the clients list by clicking on its name.  Do not use devices (DF0, DH0,
RAM, CON, etc.) as a clients, because it gives nothing.

@{b}Rescan@{ub}
Because processes may be added to, or removed from system, this gadget
updates the list.

@{b}Current Client@{ub}
Here you can edit the client's name, except <DEFAULT CLIENT>.  This gadget
is active after adding a client to the list.  Don't forget to press
Return/Enter after editing.

@{b}Unpack Files@{ub}
When this gadget is active, the current client will unpack every opened
file.

@{b}Pack Files@{ub}
When this gadget is active, the current client will pack every writen file,
using the Packer and Mode shown below.

@{b}Fix File SIze@{ub}
When this gadget is active, the current client will get the correct file
size, like the file was unpacked.

@{b}Ask Pack@{ub}
When this gadget and Pack Files are active, before packing a file you will
see the requster asking "Are you sure to pack a file?".

@{b}Use File List@{ub}
When this agdget is active, files/patterns from the Files Setup Window are
used.  When file used by a program matches a file/pattern from the DeepX
Files list, then client will use that file/pattern flags.  In other case
client's flags will be used.  Note:  that option will not work if client
uses OpenFromLock().

@{b}Packer@{ub} and @{b}Mode@{ub}
XPK packer and mode to pack file with, when Pack Files is enabled.

@{b}XPK Packer Config@{ub}
Opens XPK Packer Config window, where you can change packer.



@{u}Files Setup Window(uu)

@{b}DeepX Files@{ub}
This is a list of DeepX files/patterns, which are used when client has 'Use
File List' flag active.

@{b}New@{ub}
Inserts a new file/pattern into the list after the current file.  After that
you should set its name and you may change the flags or packer.

@{b}Delete@{ub}
Removes the current file/pattern from the files list.

@{b}Current File@{ub}
Here you can edit the file/pattern.  This gadget is active after adding a
client to the list.  Don't forget to press Return/Enter after editing.  Use
only file patterns.  Do not use devices and/or paths, for example:
'DF0:Temp/#?.info' will not work.

@{b}Unpack Files@{ub}
When this gadget is active and client has ''Use File List' flag active, the
current file will unpacked.

@{b}Pack Files@{ub}
When this gadget is active and client has 'Use File List' flag active, the
current file will packed using the Packer and Mode shown below.

@{b}Fix File SIze@{ub}
When this gadget is active and client has 'Use File List' flag active, the
current file size will look like the file was unpacked.

@{b}Ask Pack@{ub}
When this gadget and Pack Files are active and client has 'Use File List'
flag active, before packing a file you will see the requster asking "Are you
sure to pack a file?".

@{b}Get File From Asl@{ub}
You may insert a file to the list using Asl requester.

@{b}Packer@{ub} and @{b}Mode@{ub}
XPK packer and mode to pack file with, when Pack Files is enabled.

@{b}XPK Packer Config@{ub}
Opens XPK Packer Config window, where you can change packer.



@{u}XPK Packer Config@{uu}

@{b}Packers@{ub}
The list of available XPK packers.  After clicking on a selected packer, you
will see its description.

@{b}Mode@{ub}
Changes the packer mode.

@{b}OK@{ub}
Selected packer and mode are copied to actual client/file setup.  XPK Config
Window will be closed.

@{b}Cancel@{ub}
Packer and mode of the actual client/file setup will not be changed.  XPK
Config Window will be closed.
@EndNode


@Node Thanks "People taking care of DeepX"
I want to thank the following people, for anything they done to make DeepX
looks good:

	@{u}Georges "Melkor" Goncalves@{uu}

	@{u}Paweî "Trevor" Sîowik@{uu}

	@{u}Trevor Mensah@{uu}

	@{u}Grzegorz Caîkowski@{uu}

	@{u}Andreas Fredriksson@{uu}

	@{u}Johan Thelmén@{uu}

	@{u}Oliver Reto Joos@{uu}

	@{u}Arian T. Kulp@{uu}

	@{u}Bruno Rohee@{uu}

	@{u}Rich "Lego-Master" Jesse@{uu}
@EndNode

@Node History
@{b}Version	Date		What was changed@{ub}
 1.0	19-Jan-96	first release

 1.1	28-Mar-96	no more dos requesters
			password request on active screen
			ask pack request on active window
			flush temporary directory at startup
			now files/patterns are supported as clients
			rewritten preferences editor
			support for locale.library
			added patch to OpenFromLock()

 1.2	22-May-96	client name with spaces now works
			added menus
			added arguments/tooltypes
			window refersh with asl requesters
			preferences editor now should work on MC68000,
				kickstart 2.x and asl.library V36
			refusing tasks (NT_TASK)
@EndNode
