SPY Guide
----------

License
-------

This program is shareware. SPY is copyright (C) Berthold Daum.

Note: The unregistered version is slightly crippled.
      You cannot alter file contents until the registration number
      has been entered.


Registration
------------
					
Please use ORDER.FRM.
The registration fee is A$19.95 plus postage and handling.

 Shipping & Handling Fees:  nil

Please send your registration to:

            Berthold Daum
            lichtbild p/l
            21 Margate St.
            LPO Box 6011
            Cromer, Vic. 3193
            Australia

            CompuServe 100026,3365
            INTERNET: lichtbild@compuserve.com
            fax: +61-3-9584 9638

or you can register via CompuServe (US$19.95) GO SWREG.


 Author:            Berthold Daum
 CompuServe ID:     [100026,3365]

 Program Title:     Spy V1.3 Memory and File Spy
 Program name:      S3aSpy.ZIP
 Registration ID:   9905

 Fee (US$):         19.95

 Shipping & Handling Fees:  nil
We supply you with a registration number via e-mail or by mail.



Entering the registration number
--------------------------------

   Press MENU, / , ENTER, ENTER,
   then enter name and the registration number.

   Note: The entered name must be part of the machines owner name.
         The registration number must be issued on the entered name.


Purpose:
--------
Spy is used to analyse and modify the content of PSION S3a
application segments and to analyse and modify PSION S3a files.


Platforms:
----------
Spy runs on PSION S3a/S3c or ACORN PocketBook II.
It also runs on a PC under the S3a-emulator up to a screen size
of 640x400.


Further product information:
----------------------------

We also sell a S3a-toolbox, consisting of
- this SPY program,
- a powerful OPL decompiler
- a runtime license for the Morpheus alarm and help system
  (including a help compiler)
- a runtime license for 3setup, an automated application installer

see ORDER.TXT for details


Installation:
-------------

Copy SPY.OPA and DUMP.ALS to an \APP\ directory on any local drive.

Copy ABOUT.OPA to the directory \APP\COMMON\ on the same drive.

(Create this directory if it does not exist)

Install Spy.opa to the system screen.
Install Dump.als to the system screen.


How to use:
-----------

Invoke Spy.

Select Memory to look into Application segments.

Select File to look into files.

Select the output format (you can change this in interactive mode)

Select the mode

- Interactive mode
  Data is shown on the screen. You can browse around and apply patches.
  See below for details.

- Dump mode
  A specified area is dumped to a file. You can analyse the files later
  with an editor.
  (You are able to write dumps to a file from the interactive mode, too)

  Specify an offset and length in kilobytes.

  Select an output file. By default the file is set to
  M:\WRD\SPIED.DMP. You may want to direct the output to a remote
  computer.
   Note: SPY-Files are more than 5 times larger than the original file.
   The inbuilt WORD-application can only process files less then 32kb. To
   view larger dumps, you have to transfer the file to a host computer and
   view it with a text editor. Or you could use a reader program.
   Spy files are plain ASCII files.


If you are spying a file, the next dialog box will ask for the input file name.
Initially the file selector is positioned to the internal ROM.
Press TAB to navigate to any other file.

If you are spying memory, the dialogue box gives you instructions how to
continue. Select a SPY-hotkey (PSION-CNTRL-TAB or PSION-CNTRL-Enter).

Note: On the S3c, select PSION-CNTRL-Enter, as the TAB key is used for the IR-Port.

Press ENTER to acknowledge. Spy moves to the background.

Now invoke (or reactivate) the application you want to spy on.
When the application is in the foreground perform the functions of your
choice to bring the application to the desired state.
Then press the SPY-hotkey.
Spy will display the content of the segment beginning at address 0.

Note: You can also invoke Spy for an already running application. After
SPY has moved to the background, return to the running application and
press the SPY-hotkey.

You can go back and forth from your application to spy.

When SPY comes to the foreground it will refresh the screen content.
It will display all bytes that have changed since the last display in bold style.

  Note: If you want to observe the contents of a variable or memory area, you
  have to know the address of that variable first. You get this by
  inserting PRINT ADDR(variable_name) into your application.

Use the cursor keys to navigate.

A set of functions allows to navigate to specified addresses:

*   sets the current cursor position as the top position
    of the screen.
J   or ENTER goes to the highlighted word address.
W   or TAB increments the current address by 2 plus the content
    of the word at the current address
N   does the same but assumes the 4 highorder bits of the word to be zero.
    (Useful for scanning through DATA files)
B   increments the current address by 1 plus the content of the
    byte at the current address

  In any case SPY will prompt the user with the new address for
  confirmation or modification.
  If the value in the address field starts with + or -, SpPy will not
  use the absolute value of the address field but add it to the
  current address.

Shortcuts:

+   to enter forward offset directly
-   to enter backward offset directly
$ or &    to enter address in hexadecimal format

    
R   returns to the previous position.
D   writes memory area as dump to a file and the calls the texteditor
    for viewing or printing that file.

F   asks for a search string. It will scan the data
    for the search string starting at the cursor position and
    will position to the first occurence found.

G   will continue searching.

O   to switch display format (hexadecimal, decimal)

X   to leave spy

/   Copyright information, registration. Also displays the size of the spied module or file.



Shift-B
    Byte.
    Modifies the specified address with the specified value in length 1.
Shift-S
    ShortInt.
    Modifies the specified address with the specified value in length 2.
Shift-L
    LongInt.
    Modifies the specified address with the specified value in length 4.
Shift-D
    Date.
    Modifies the specified address with the specified value in length 4.
Shift-T
    Time.
    Modifies the specified address with the specified value in length 4.
Shift-F
    Floating point.
    Modifies the specified address with the specified value in length 8.
Shift-O
    OPL-String.
    Modifies the specified address with the specified string prefixed
    with a length byte.
Shift-C
    Modifies the specified address with the specified string suffixed
    with a zero byte.

  Note: When you spy on a file and the file is read only, the above
        patch functions will not work.

HELP calls help.

Entering numeric values:

  You can enter arithmetic expressions (decimal, hexadecimal, or mixed)
  You can use &,$,x as prefix for hexadecimal Values.
  The character % followed by any other character evaluates
  the character code of this character.

Entering string values:
  Strings can contain escape sequences.
  An escape sequence consists of the escape character (default "\")
  and a decimal or hexadecimal constant of length 3.

  Example: \x0d  or \013     represents carriage return character

  Double escape characters are interpreted as one escape character.

End of document



