{{{  Preface
Amiga 1.6.92

This is a readme file for the Amiga-Origami-Version only.  To learn
more about the origami features please read the origami-manual !

Please read the bug.fixes file each time you get a new version !

Thomas Hadig
}}}
{{{  Disclaimer
The author cannot be held liable for the  suitability or  accuracy  of
this manual  and/or  the  program(s)  it  describes.   Any  damage
directly  or indirectly caused by the use or misuse of  this manual
and/or the  program it describes is the sole responsibility of the user
her/him self.
}}}

{{{  Installing Origami
To install origami start the install_origami script by using commodores
installer program.
}}}
{{{  Additional Amiga Features
There are some additional features in the amiga version of the origami
editor :

 {{{  Mouse
 Mouse-Handling : The mouse can be used in this version by defining
 it in the binding file using the command 'mouse-buttons'.
 (See the doc-files in the doc directory and the amiga.keys example
 file !)
 }}}
 {{{  Menu
 Menus can be defined in the rc-file, too.
 To do that you have to use the os-extensions.

 The syntax of the menu-extension is :
 (os-extension ("MENU " <name of menu,name of item> ))

 example : (os-extension ("MENU " Project,Read " File ))
 (see the origami manual for the definition of ocl strings !)

 This line will make a menu entry called Project (if it has not been
 defined previously) and an item entry called Read File.
 If this item is selected, origami will send a keysequence with the
 following syntax :
 $csi "G <number of the menu entry, starting with "0 (hex 0x30)>
         <number of the item entry, starting with "0 (hex 0x30)>

 You have to bind the function, that shall be called to this keysequence.
 If the example has been the first MENU os-extension :
 (keybind read-file ( $csi "G "0 "0 ))

 See the OSamiga.awk script for an easier definition by using the AWK
 language.
 }}}
 {{{  FileRequester
 If the 'asl.library' is present, origami will use the system file
 requester.

 To use the 'read-file' function within macros I had to use a complex way to
 address the requesters :
   - If you use 'read-file' the file-prompt will be displayed under the
     status-line.
   - Press ~ or ~~ or ~<directory>
   - Press RETURN
   - The file-requesters will come up, showing the contents of the
     following directories :
     if you entered  ~      the directory, where you started origami
                     ~~     the directory, where the current file is in
                     ~<dir> the directory named in the prompt line
 To make an easy use of the requesters bind the function
   {{{  function
   (deffun amiga-read-file
    (
     read-file
     "~
     O_RETURN
    ))
   }}}
 to the key  the 'read-file' function is bound to now.

 NOTE: To get protability in the rc-files, ~/<file (with rel. path)>
       will be expanded to S:<file (with rel.path).
       Due to the double usage of the ~-character, you have to use
       whitespace to use a file-requester starting at a dir with
       a pathname beginning with a / character.
       Example : ~/test : will open the file S:test,
             but ~ /test : will open a filerequester starting in the
             directory /test relative to the current working directory, when
             you started origami.
 }}}
 {{{  Workbench
 Origami can be called from Workbench; the command line options can be
 specified as TOOL_TYPES, but there may be only one option per line;
 you can also multiselect additonal files, which will be edited.
 If you start origami by clicking an icon with origami as default tool
 the TOOL_TYPES of this file will be used as arguments.
 If you multi-select files only the TOOL_TYPES of the origami icon will
 be read.
 }}}
 {{{  Iconify
 Iconify : if you press the iconify gadget in the window title,
 origami will change his window position to the upper/left edge of the
 screen and resize to the smallest possible size.  The window title
 will show the filename.  To open the window again, click the gadget
 or the close gadget.
 }}}
 {{{  Wildcards
 Origami will recognize wildcards in the command line filenames
 and edit all matching files ('next-file' command).
 }}}
 {{{  Protection Bits
 Origami preserves the protection bits for read (r), write (w), delete (d),
 executable (e), script (s) and pure (p).
 Origami always deletes the archive bit.
 }}}
 {{{  Window
 To open a window on a specific screen or with a specific size, you can
 use amiga specific options (beginning with -X) :
 You can use the following keywords :
 AREXX[=Portname] : origami will open an arexx port (names Portname)
 SCREEN[=w/h] : origami will use his own screen
 WINDOW[=x/y/w/h] : origami will use a window with the width w,
        the height h, the offset (x,y)
 }}}
 {{{  Arexx
 * For more information on the arexx port read the README.AREXX doc.
 }}}
 {{{  Cut & Paste
 Origami now uses the clipboard device for cut and paste.

 To cut press the Right Amiga key and the left mouse button to set a mark
 and release the mouse button and the Right Amiga key to copy the text area
 between the mark and the end position of the mouse into the clipboard
 device. To abort cutting release the Right Amiga key before releasing the
 mouse button. Only the screen text will be cutted, no folds will be opened.
 The selected area will not be highlighted in this version.

 To paste, release the right mouse button while having the Right Amiga key
 pressed.
 }}}
 {{{  List Seperator
 Unlike the list separator in the Un*x version (:) the amiga version uses
 ;, cause the : character will be used in filenames.
 }}}
}}}
{{{  Recompiling the emacs and modeori keybinds
To recompile the bindings you can use the smakefile in the bindings
directory.

If you do not have smake, take the smakefile as an example for the options
used.
}}}
{{{  Making your own keybind
{{{  general remarks
To make changes in the binding files, you need to know the syntax of the
OCL-commands and the keysequences the origami-terminal will send, when a
key is pressed.

The OCL-commands are explained in the origami-manual; please look there !

To get the keysequences, you can use the program GetKeyCode, distributed
in the amiga directory.  Start this program from cli, activate the
window and press the key, which keysequence you want to know.  The
keysequences will be shown in the origin CLI-window.
}}}

Here are some (additional) remarks :
{{{  key classes
The keys, the origami-terminal will send, can be divided in five classes
 {{{  mouse-clicks
 * Mouse-clicks : Use the ocl function mouse-buttons !
   There are 25 (!) mouse-buttons defined :
   {{{  no qualifier pressed
     0 : Left mouse button released, no special key pressed (LMBU)
     1 : Right mouse button released, no special key pressed (RMBU)
     2 : Middle mouse button released, no special key pressed (MMBU)
     3 : Left mouse button pressed, no special key pressed (LMBD)
     4 : Middle mouse button pressed, no special key pressed (MMBD)
   }}}
   {{{  shift pressed
     5 : Left mouse button released, shift pressed (S-LMBU)
     6 : Right mouse button released, shift pressed (S-RMBU)
     7 : Middle mouse button released, shift pressed (S-MMBU)
     8 : Left mouse button pressed, shift pressed (S-LMBD)
     9 : Middle mouse button pressed, shift pressed (S-MMBD)
   }}}
   {{{  control pressed
    10 : Left mouse button released, control pressed (C-LMBU)
    11 : Right mouse button released, control pressed (C-RMBU)
    12 : Middle mouse button released, control pressed (C-MMBU)
    13 : Left mouse button pressed, control pressed (C-LMBD)
    14 : Middle mouse button pressed, control pressed (C-MMBD)
   }}}
   {{{  alt pressed
    15 : Left mouse button released, alt pressed (A-LMBU)
    16 : Right mouse button released, alt pressed (A-RMBU)
    17 : Middle mouse button released, alt pressed (A-MMBU)
    18 : Left mouse button pressed, alt pressed (A-LMBD)
    19 : Middle mouse button pressed, alt pressed (A-MMBD)
   }}}
   {{{  left amiga pressed
    20 : Left mouse button released, left amiga pressed (L-LMBU)
    21 : Right mouse button released, left amiga pressed (L-RMBU)
    22 : Middle mouse button released, left amiga pressed (L-MMBU)
    23 : Left mouse button pressed, left amiga pressed (L-LMBD)
    24 : Middle mouse button pressed, left amiga pressed (L-MMBD)
   }}}
   {{{  right amiga pressed
   The right amiga qualifier class is mainly used by the cut and paste
   function. If origami is compiled without cut & paste you will get
   these five additional buttons.
    25 : Left mouse button released, right amiga pressed (R-LMBU)
    26 : Right mouse button released, right amiga pressed (R-RMBU)
    27 : Middle mouse button released, right amiga pressed (R-MMBU)
    28 : Left mouse button pressed, right amiga pressed (R-LMBD)
    29 : Middle mouse button pressed, right amiga pressed (R-MMBD)
   }}}
   To bind a function to one of the buttons use the keybind function
   'mouse-buttons' !
   Please note, that you can not bind the right mouse button pressed
   events, cause they are used for the menu definition.

   {{{  Example
   To bind the function open-fold to the left-mouse button released
   with shift pressed, you have to add the keysequence

   ; left button release with shift pressed is button 5 (we start with 0)
   (mouse-buttons  no-operation no-operation no-operation
     no-operation no-operation open-fold)

   Please remember that you can use the 'mouse-buttons' function
   only once in a file !
   (See the doc-files in the doc directory for detailed information)
   }}}
 }}}
 {{{  menu-select
 * Menu-selections :
   The keysequence will have the following format :
     155 71 48+x 48+y ($csi "G "0 "0)
   where x is the number of the Menu title (0,1,2,...) and
         y is the number of the Menu item  (0,1,2,...).
   (See the Additional Amiga Features chapter for more information)
 }}}
 {{{  Vanilla-Keys
 * Vanilla-Keys :
   All keys that are defined in the system keymap will send their
   keysequences
 }}}
 {{{  Raw-Keys
 * Raw-Keys :
   All other keys will send a keysequence, that will have the following
   format :
     155 69 select code ($csi "E ? ?)
   where select is a code used to determine the alt/amiga/ctrl and shift
                keys; it will be :
                  65
                  +1 if shift is pressed
                  +2 if control is pressed
                  +4 if alt is pressed
                  +8 if left amiga is pressed
                 +16 if right amiga is pressed and
         code   is the number of the key.
 }}}
 {{{  Number-pad
 * Number-pad-Keys :
   The number-pad keys are handled differently :
   They will have the format :
     155 70 select code ($csi "F ? ?)
   where select and code are the same as described in the Raw-Keys-section
 }}}
}}}
{{{  aliases
There are some aliases known to keybind :
They are defined in the file amiga.alias and have to be included to be
known. Look in the amiga.keys example.
}}}
}}}
{{{  Bugs
See the bug.fixes file to see the bugs of this version.
}}}
{{{  Compiling Origami
To compile the sources you need to have the SAS C-Compiler Version 6.51.
Each version will be tested with the SAS C-Compiler.  I will not test
origami on other compilers, but diffs or bug reports are welcome.

If you want to compile the origami executables use the smakefiles in the
amiga directory like this:

 * assign your directory containing the origami sources to the name
   origami:
   ( example : assign origami: Lattice:Progs/origami/src )
 * Change directory to the directory 'origami:'
   ( example : cd origami: )
 * Start the smakefile action preinst to make the preinstallation
   ( example : smake preinst )
 * Start the compilation using the smakefile (action all)
   ( example : smake all )
 * Install the binaries in the origami:/bin directory using the
   smakefile action install
   ( example : smake install )
 * Set the environment variables and test the executables ( see Installing
   Origami )
 * Clean up the directories using the smakefile action clean or reset
   Note : clean will only delete .o, .lnk, .tmp and .info files.
          reset will delete the binaries (not in the bin directory)
                and the things installed by using preinst.
   ( example : smake clean
     or :      smake reset )
 * Install the binaries in your bin directory and make the .origamirc
   file. You can do this using the install_origami script.
}}}
{{{  Features in next releases
There are some features, that will be implemented in the next releases
 * Future releases of the origami will be ported
 * Bugs will be fixed
}}}
{{{  Copyrights
The copyrights of the amiga version of the origami editor are
identical to those mentioned in the origami manuals.

The amiga source code files are copyrighted by Thomas Hadig.

This Program is  FREEWARE  so no financial donations are required ( but
welcome).  This program may be freely distributed as long as all source
code, documentation and executable(s) remain unchanged and are included
with the distribution.  Also no profit is to be made by selling  this
program.  You may not charge more than Fred Fish does for a single
library disk.  This program may be distributed on disk magazines, cover
disks etc.  When you do decide to distribute this program on a disk
magazine or cover disk please send me a copy of the distribution.  When
you use this program on a regular base I would appreciate a postcard of
your home town.
}}}
{{{  Acknowlegdements
I want to thank some people for their help :
 * Michael Sinz for his simple_rexx package
 * Andreas Schneider for testing the versions
 * Patrick Kandel for developing the icons and rewriting the manuals
   in plain english.
 * Wolfgang Stumvoll and Michael Haardt for developing the Unix and
   Linux version of origami and their help finding problems.
}}}
{{{  Mail addresses
Please use the mail address of Michael Haardt (mentioned in the origami
manuals ) for reports (bugs, comments, ...) about the general origami
features.

Reports on the amiga version can be mailed to Thomas Hadig :
E-mail    : hadig@rog.rwth-aachen.de
            hadig@pool.informatik.rwth-aachen.de
Papermail : Thomas Hadig
            Otzenrath
            Eduard-Bauschstr. 4
            D-41363 Juechen
or
            Thomas Hadig
            Otto-Petersen-Haus Zi. 1009
            Ruetscherstr. 155
            D-52072 Aachen
}}}
