
        - AZ -     Version 1.40     -     Copyright Đ jm forgeas 1988

        (see end of file for changes since v1.00)
        (for distribution, see DISTRIBUTION CONDITIONS at end of file)

        (
  Note to French users:
        every new version is ready for download
        on the BBS Sgt Flamīs Lonely Amigaīs Club
        (16 1) 39 55 84 59
        )

        The editor of my dreams: it does everything I want, from A to Z !

        If you want AZ to do also what you need, send me your observations
        but no money. If you did, you should also send money to:

        - Matt Dillon who distributes sources for his editor DME, from
          which I drew ideas for the memory-allocation scheme and other
          things.  This gave me the courage to begin AZ.

        - =RJ= Mical for the sources of his FileRequester distributed
           in ProSuite.

        - Alex Livshits who, together with his support, gave me some
          important routines, including the one that allows clipping text in
          a window, and also ideas to make AZ more user-friendly.

        - Gauthier Groult who worked on the Requesters, and also gave
          some good ideas.

        - Alain Didierjean for his numerous ideas, and his numerous bug
          reports.

        Many thanks also to all beta-testers, particularly for their
        bug reports:
                - Francois Rouaix (SYSOP of SgtFlam) whom I thank also for
                  the translation to English of this DOC, during the Second
                  European Developers Conference, and for the following
                  versions.
                - Bernard Couet
                - Carlos Das Neves
                - Olivier Mandavy
                - Olivier Hartmann (also known as Kheopsī SYSOP
                  (16 1) 45 07 85 03 (France). AZ is also on this BBS
                  available for download)
                - Dominico Manfredi
                - Philippe Lespinasse
                - Jean-Francois Dreyfuss

        And here, a *VERY* *BIG* thanks to the creators of the Amiga,
        the machine of my dreams.

                       ------------------------

        AZ does not have script facilities, you canīt redefine menus,
        no Bold nor Italic supported, no macros at all...
        Congratulations !
        ...thanks
        but *hey*, it has UNDO !

        My goal is not to replace DME, and in fact when I need (rarely)
        powerful macros, I call DME.

        From CLI, you use:

                AZ [-b][-s][-d][-tc][-fn][-cn][-p*] [file1]...[fileN]

        You also may run AZ under Workbench:
                Click on the icon(s) of the text files you want to edit,
                and then SHIFT and double-click on the AZ icon.

        *** Option -b allows you to modify colors: color 0 for background
        and color 1 for text (by default it is the opposite). I really like
        it this way. With 1.3 Shell, or Dillonīs one, you may define an alias

                Alias HAHA AZ -b

        *** Option -s changes the File Requester. It is replaced by
        a simple requester with an auto-activated StringGadget.  Specially
        for those who donīt use their mouse.

        *** Option -d deactivates block-deleting on a simple key-press or
        on a Paste action.  In this mode, the only way to delete a block is
        the Cut option.

        *** Option -tc adjusts the tabulation.  AZ subtracts 48 from
        the ASCII code of `c': -t8 makes it eight spaces.  -tB makes it
        18 spaces.
        Default is 4 spaces, and if `c' is less than 1, default is chosen.

        *** Option -fn defines the size of the font that should be used
        in AZ. The only font allowed is TOPAZ. -f8=Topaz 8. -f1=Topaz 11 (if
        a different font is installed with FastFonts <FF>, the 8-point
        version will replace Topaz 8, the 9-point version will replace Topaz
        9).

        *** Option -cn indicates the maximum number of columns in each
        line.  For example: -c80 for 80 columns max.  Default is 256.

        *** Option -p* allows you to give the default pattern for selection
        of files in the File Requester. Patterns are Unix-like.  Example:
        enter `-p*.pic', and the requester will only show the name of files
        ending with `.pic'.  Default is `*'.

        *** A list of files [file1]...: a window is automatically opened
        on each file, and then iconified (not the last file window).

        This is useful for editing a whole project, for example:
        > Alias LoadProject AZ -s -b -d -t3 -f11 -p*.c main.c win.c key.c
        etc...

        Using AZ with the first three options allows a keyboard-only
        edition, as in DME. Almost every operation may be done with the
        keyboard.

        WorkBench use:

        Click (with SHIFT key down) on your icons, then double-click on the
        AZ icon. Iconified windows will be placed in the menu bar of the
        screen. Iīm using AZ together with `MWB', a program written by Matt
        Dillon, that permits a user to have multiple WorkBench screens.  MWB
        may be found on a Fish disk.  Options may not be activated from the
        AZ icon (unless you use `IconX' and a script with the desired
        options).  AZ does not create icons when it saves the files.

        FONTS:

        I have tested AZ with "Topaz 11". It works perfectly, and renders
        very well in INTERLACE mode.
        "Topaz 9" is also OK for people using a TV instead of an Amiga monitor.
        However, proportionnal fonts are not well-rendered.  That's because
        AZ is a text-editor, not a WYSIWYG word-processor.  The default font
        is the system font as defined by Preferences (that is Topaz 8 <80
        columns> or Topaz 9 <60 columns>).

        Keyboard:
        - Try the arrow (cursor) keys combined with [ALT] and [SHIFT] keys
        - When a block is highlighted, cursor keys scroll the text (unless
          you are in -d mode)
        - [SHIFT]-[DEL] deletes the current line, and puts it in the UNDO
          clipboard.
        - [CTRL]-[DEL] deletes text from the cursor position to the end of line.
        - [RETURN] works as in DME (very handy).
        - To split a line, thatīs [SHIFT]-[RETURN]
        - To split a line with back-indentation, thatīs [SHIFT]-[ENTER]
        - To join 2 lines (besides using BACKSPACE at beginning of the
          second line), use your mouse: on the first line, make a block from
          the end of the text to the end of line, and press DEL (or any
          other key).  The second will join at the end.  If you are in -d
          mode, use CUT instead of DEL.

        - When NOT in -d mode, if a block is highlighted, typing any key
          will delete the block and put it in the UNDO Clipboard.  When in
          -d mode, the character pressed is inserted in the text, and the
          block is not deleted.

        - When the cursor is out of the window, any key will re-center
          the portion of the text the cursor is in.  This is handy to browse
          through the text (using scrollbars and gadgets) and then come back
          to the old position.
        - [ALT]-[TAB] will position the cursor on the first non-blank
          character of the line.
        - [SHIFT]-[TAB] deletes spaces to the left (back tab).

        Mouse usage:

        - selecting (highlighting) a block is done with moving the mouse with
          the left button depressed. If you click on the left button again,
          the block will be deselected.
        - In block selection mode, scrolling is automatic when you move the
          pointer outside the windowīs limits.
        - When selecting a block, going past the last character of the line
          will highlight to the right of the window (to include the carriage
          return).
        - Menus are standard, right mouse-button!
        - [SHIFT]-left-button will select a block from the clicked position
          to the cursor position.
        - Double-click activates block-line mode. In this mode, a block is
          made of entire lines. This is useful for copying a set of lines.

        EDIT MENU:

        - Copy from file: loads a file into the Clipboard. You can then
        Paste it where you want (possibly many times). This replaces
        the usual `Insert file'
        - Paste to file: writes the content of the Clipboard in a file
        This replaces the usual `Save Block'.  Select a block, Copy it,
        and `Paste to file'.
        - `Print Selected' will send the selected text to the printer, even
        if you donīt own one (surprise!).
        - `Undo' is in fact a Paste from the Clipboard 1 (Cut/Paste/Copy
        are using the Clipboard 0). Every block deleted with an action
        other than CUT will be placed in the UNDO Clipboard.

        FIND MENU

        - With options "Find Selected" and "Exchange Selected", the
        highlighted block is copied into the search StringGadget. No
        mistakes while re-typing a string to search.
        - Other items works as usual...

        TOOLS MENU

        - `Iconify' opens a small window at the top and right of the screen,
        and then closes the big window.  To un-iconify, activate the small
        window (by clicking in it) then click again with the right button. 
        When all window are iconified, the [F3] key does not un-iconify, but
        opens a new window instead.
        -`Insert Hexa' allows you to insert a set of characters given by
        their ASCII code in hex.  Insertion of hex strings works just like
        any other insertion (eventually deleting a highlighted block).
                         414243 will insert  ABC
                         A44  will insert  RETURN B

        FUNCTION KEYS:

        - F1  = Edit/Copy from file + Edit/Paste   (insert block)
        - F2  = Edit/Copy + Edit/Paste to file     (save block)
        - F3  = Tools/NewWindow                    (window open)
        - F4  = Edit/Copy
        - F5  = Edit/Paste
        - F6  = Edit/Find
        - F7  = Tools/GoToLine
        - F8  = Tools/Iconify
        - F9  = Project/Save
        - F10 = Project/Save + Project/Quit  (save & quit)

        Simple Requesters:

                You may use them from keyboard.  RETURN key activates the
                next StringGadget if any, otherwise acts like a click on the
                left gadget (surrounded by a dark border).

                       ------------------------
        NOTE1: during scrolling, the title of the window and the scrollbars
        are refreshed only when there is some time left, to ensure maximum
        scrolling speed.

        NOTE2: to switch 2 blocks, I use UNDO. Remember that every line or
        block deleted goes into the UNDO Clipboard (UNLESS in -d mode)

        NOTE3: AZ is a multi-tasking program.  Code is reentrant, BUT DO NOT
        MAKE AZ RESIDENT with the Resident (1.3) command because AZ is
        modifying its own segments of code.  If you do, the guru will visit
        you.  You donīt need to `RUN' AZ.  Just type AZ, it will return the
        CLI prompt (thanks to cback.o from Lattice, which I modified to make
        it re-entrant).  Each window is a separate task launched on the SAME
        code (memory is expensive !). If a window is blocked (printing, disk
        access, etc..), you are able to edit in the other windows.

        NOTE4: The FileIORequester is a modified version of the
        =RJ= Mical Requester, made re-entrant. You are not forced to wait
        until the end of the scan of a disk to switch to the next disk (by
        pressing on the Next Drive gadget).
        Clicking on the STOP gadget will stop the scanning.

        NOTE5: The Amiga system is wonderful.  Too bad that those who donīt
        program with it canīt share the feeling!  They canīt see the best!

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                              C H A N G E S
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

v1.01   - bug fixed when Requester opening followed by a quick RETURN
        - good: when iconifying a window which contents have been modified,
        colors are inversed in the icon. (token from Dillonīs DME)
        - parameter -t added for tabulation
        - [ENTER] key change.  Now equivalent to [RETURN] followed by 
          [SHIFT]-[TAB].  Useful for back-indentation.
        - [BACKSPACE] pressed at beginning of line now appends to the
          preceding line.
        - Double-click activates block-line mode.  In this mode, blocks are
          made of entire lines.

v1.02   - If menu Save selected when file is Untitled, SaveAs is run instead
        - AZ windows open to full screen

v1.10   - refresh of simple Requesters fixed when resize of a window occurs
          (fixed with the help of Gauthier Groult).
        - fixed bug of repeated tabs that left black traces.
        - block-line mode works like a switch (more intuitive).
        - first window opens to full screen, others are smaller.
        - fixed bug of repeated keys that inserted unwanted characters
          (with Amiga-keys).
        - fixed bug of pointer remaining in ZZ (note that the click-point
          in this image is left-top, and you may also type RETURN to make a
          requester disappear).
        - fixed bug of PASTE at the end of a long line.
        - fixed bug on Cut (on multiple lines, it failed to cut some
          characters)
        - after a Paste or Replace, the cursor is now placed after the
          inserted string.
        - Find and Replace now have menu short-cuts
        - NEW ! Topaz fonts (8, 9, 11) or others may now be used when
          running AZ, using option -f (see above).
          If no font is given with option -f, the default font (the one from
          Preferences) is chosen.
        - Thatīs all for now ! Quite a difference from version 1.02
          isnīt it ?

v1.11   - in Find menu, Replace has been changed to `Exchange'
        - in Find menu, new item `Exchange All'
        - in Find menu, two new items: `Find selected' and `Exchange
          Selected'.  The current selected block (if any, itīs highlighted)
          is now copied into the search StringGadget. (would you prefer the
          CLipboard instead ?)
        - In menu Find, the buffer used by Find is now different from the
          buffer used by Exchange.
        - Fixed small bug on title of iconified window.
        - the last line (sometimes hidden partially), is now uncovered
          when the cursor moves to it.
        - Other minor enhancements.

v1.2    - Scrolling is now faster (ClipBlit() instead of ScrollRastPort()).
        - Memory management has been modified -> faster display.
        - Accumulation of RAWKEY messages (caused by repeating of up and
          down arrows) has been removed by a scan of messages.  Memory is
          spared because Intuition no longer allocates more messages when
          you have a fast repetition factor in Preferences.
        - This scanning allows also an immmediate stop of the scrolling
          when you stop pressing these arrow keys.

v1.21   - Insertion of a character over a block after a Find now
          works properly.

v1.22   - bug on too-long lines fixed.
        - !!! FileRequester has been fixed by Gauthier H. Groult.
          new functions have been added, such as wildcards, PARENT , SCAN
          and STOP gadgets, interruption on arrows. Design has also been
          fixed (much nicer now). And more, it is now REENTRANT ! You can
          open a requester in every window of AZ.
          By the way, Gauthier has put this FileRequester as well as other
          useful functions in a library (to which I gave some modest
          contribution), with docs from programmers and everything you need.
          Its name is isup.lib, and AZ uses it with luck.  Gauthier is
          looking for beta-testers.

v1.23   - one time out of a thousand, a small requester locked out
          and stayed white. This is over.
        - Find on a single character would not skip to the next occurrence.
          This has been fixed.
        - Scanning has been added, so that scrolling ceases as soon as
          you stop pressing left or right arrow.  Handy when you select
          a block, then scroll laterally with these two arrows.

v1.24   - put back the original File Requester, because AZ didnīt seem
          too well. Test version only. Iīm looking for bugs.

v1.25   - Major cleaning of the code. Some internal bugs found (and fixed!)
        - [SHIFT]-[TAB] now deletes spaces (before cursor).
        - New: [ALT]-[TAB] places the cursor on the first non-blank
          character of the line. To use with [SHIFT]-[TAB] for a back-tab.
        - New : [SHIFT]-[ENTER] (NOT [SHIFT]-[RETURN]) splits a line, with
          back-indentation on the new (second) line.
        - after clicking two times (in block-line mode), Find wouldnīt
          show found block anymore. I found the bug this time!
        - Characters strings are no more null-terminated. This allows
          you to insert 00 characters in the text (using menu Insert Hexa)
        - FileRequester modified to have `OK' gadget on the left and
          `CANCEL' gadget on the right. There was also a non-reentrant
          requester, and I fixed it.
        - All Requesters may now use CHIP memory, so that AZ works on
          512K machines.
        - New: `Clone Line' duplicates the current line.

v1.26   - You now may insert a carriage return (0x0d) with Ctrl-M.
          Before this fix, you could only use the `Insert Hexa' menu for
          this purpose.
        - Bug: Guru visits on quitting AZ, depending on your environment
          (not mine, so I couldnīt see that bug). Fixed.
        - Deleting a block on the last line of the file would leave an
          entire line. Fixed.
        - Exchange sometimes left extra characters, or deleted some...
        - Some character-display bugs found.  Nothing better than fixing bugs
          for adding new ones!

v1.27   - Shortcuts `=' and `;' for `Exchange All' and `Print Selected'
        - Fixed bug in clipboard managing: when trying a read (Paste) on
          a file that is not IFF text, the ClipBoard was not freed. This
          solves the problems with TextCraft and Excellence!
        - HELP now pops up a requester with the description of function keys
        - NEW !!! (while waiting for cut by rectangles) it is possible
          to indent or back-indent by block:
          double-click and highlight a block in `block-line' mode, then press
          [TAB] to indent or [SHIFT]-[TAB] to back-indent.
         `Select All' does not provide this feature because it is not part
         of the `block-line' mode.
        - When launching AZ with an nonexistent file-name as parameter,
          the FileRequester does not appear any more. There is only a small
          requester, and you get rid of it by pressing RETURN. The title
          of the window will be the same as the parameter.
        - the default for TAB is now 4 spaces.

v1.28   - recompiled with Lattice 5.02, and the new version of `isup.lib'

v1.29   - AZ now supports keymaps that send multiple characters on a key.
        - In `block-line' mode, pressing left or right arrow allows
          indentation by one character.
        - faster memory management (work with Gauthier Groult).
        - fixed bug introduced in v1.27 when running AZ on an inexistant
          file.
        - `Exchange Selected' now fills both zones with the selected text
        - minor bugs fixed
        - scanning of Intuition messages is now done on all keys, and also
          faster: you will never insert or delete characters by mistake.
        - `Print Selected' does a form feed every 64 lines.
        - NEW!!! option `Send Selected': send the selected text to SER:
          with the possibility to end each line by CR, LF, CRLF, SUITE
          (minitel) or nothing (ASIS). This option may be used with minitels
          or modems.  Parameters for the serial port are taken from
          Preferences, so don't forget to set them properly. For a minitel:
        BAUD=1200 READ=WRITE=7 STOP=1 PARITY=EVEN HANDSHAKE=NONE
        Beware of accentuation!  No translation is done!

v1.30   - Bug on the hex code displayed in the title bar fixed.

v1.31   - Added TAB as a separator for arguments. There may now be multiple
        spaces or TABs between filenames on the command line.
        (hmm...).  You may now use all 6 options when running AZ...
        (hmm...).

v1.32   - New option in menu `Tools': `Switch Case' to switch a character
        from lowercase to uppercase and back.  Works also on blocks.
        Switch Case is defined only for characters from `A' to `Z' and
        `a' to `z'.
        - New option in menu `Tools': `To Front Screen' to move an
        AZ window from a background screen to the foreground screen.

v1.33  / 09-May-89
       - Added LockLayer() and UnlockLayer() before and after modifying
         the ClipRects of the Layer of a window.
         Yes... it's cleaner... I believe the Guru was there...
       - Fixed: when the full pathname of the edited file was too long,
         the requester "Can't Create this file" was truncating it.
       - Added: test OpenFont() before OpenDiskFont(): even after loading
         a font, every byte of memory is released.
       - Modification of use in `Exchange Next/Back':
         If a block is already selected, then it is replaced immediately.
         Else, this option first `Find's then replacing is done after (this
         is verification for interactive replace).
       - Doc Bug: I never said that CANCEL of simple requesters may be
         done from keyboard, but it works: it's ESCAPE [Esc].
         Let me remind you: the validation gadget (OK, OPEN, ...) that is
         on the left of those requesters is completed by the RETURN key.
       - NEW!: block selection from keyboard. CTRL-Space simulates click
         and double-click of the mouse. CTRL-arrow simulates move of the
         mouse. CTRL-arrow works together with SHIFT and ALT, same way
         as arrow alone, but selecting blocks continuously.
       - Number of lines is no more limited to 32000, but to several
         billions.

v1.34 / 14-May-89
       - Bug in `Paste': when memory was lacking, ClipBoard was not closed.
       - Modifications in block-insertion.
       - Added option -cNN to ser the maximum number of columns in a line.
       - in `Copy', added a test for available memory before writing to
         ClipBoard, in order to avoid errors with ClipBoard.device.
         Two days of testing convinced me that I couldn't do better without
         more docs on the clipbard, or that device is bugged...
         Anyway, ClipBoard is more robust when CLIPS: is assigned in RAM:
         (as proposed in WB1.3 startup-sequence), otherwise DoIO()
         might be blocked when accessing drives.
       - When writing in the ClipBoard of a file, and a line is exactly
         of the maximum length, new line is NOT inserted. This avoids
         adding empty lines when reading the file/clip back.
       - NEW!: `Load Binary'  loads a file without changing tabs to spaces.
         You may now edit an executable file: change error messages to your
         language (french for example). Do NOT change the length of the
         strings !
       - Bug fixed when RETURN or SHIFT-DEL near the lower border of
         the window (GURU).
       - Bug fixed when clicking on CloseWindow gadgets (I hope)
       - Scrollbars (lifts) now show 5 lines more after the end of the text,
         and one column more on the right of the last column.
       - Modification of `Exchange': the search string is copied into
         the `Find' search string. This allows full interactive exchange.
         Choose `Exchange Next' (or AMIGA-R) to replace, or (AMIGA-N) to
         skip to next occurence. This time it's handy.
       - Keymap management has been revised. AZ now handles keymaps
         completely. This means that using a keymap editor (like KeymapEd
         by Tim Priest, available on a BBS near you and on a Fish disk),
         you may assign to a key (such as ALT-F1) a sequence of codes
         (such as SHIFT-TAB or arrows), or simply a sequence of caracters.
         Kind of mini-macros.
       - Patterns on file names used in the File Requester may be
         specified on the command line using option -p, example: -p*.c
         for all file names ending with `.c'. Default is `*'.
       - Note: to save to a device (SER:, PRT:) using the File Requester,
         just fill the filename zone with the device name (SER: for example).
         But you may as well use the menus `Print Selected' and `Send Selected'.

v1.40 / 16-May-89
      - First release of AZ send to Fred Fish for inclusion in his library.
        (via Francois Rouaix and USENET).
        To celebrate, we skip directly to version 1.40 !



=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
            D I S T R I B U T I O N       C O N D I T I O N S
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


        I give you the authorization (and will be honored) to distribute
        AZ to everybody you know, but you must not receive money in
        return.  AZ must be free.

        I strictly forbid any telecommunication service (BBS, others...)
        to make AZ available in their downloading section IF they make
        money on the communication/download.

        To distribute AZ in a commercial package, you MUST have my written
        permission.

        AZ must be distributed with its docs (at least one) as well as
        the icons (AZ, AZ.doc, AZ.info, AZ.doc.info).

        Thank you for that.

                       ~~~~~~~~~~~~~~~~~~~~~~
        I will be happy to know if AZ is useful to you, and if not,
        what should been added to suit your need.
        For bug reports and new ideas to implement, please write me:

                       ~~~~~~~~~~~~~~~~~~~~~~
                        Jean-Michel Forgeas
                        13 rue Voltaire
                        92300 Levallois Perret
                        FRANCE

                       ~~~~~~~~~~~~~~~~~~~~~~
                        or by minitel on
                        Sgt Flam
                        +33 1 39 55 84 59   (CCITT V23 (1200/75), 7E1)
                        (from France : 16 1 39 55 84 59)
                        BAL (mailbox): JM FORGEAS

                       ~~~~~~~~~~~~~~~~~~~~~~

                             jmf
