Author:  Dale L. Fenimore                                     21 September 1991

Disclaimer:  These Wordperfect 5.1 macros are released in an AS IS condition. 
There is no warranty that they will work for you or be what you want or need. 
Use them at your risk.  I wrote these macros to make things easy for myself;
if they do the same for you then fine - I accept no responsibility for any
document on which you used any of these macros and for which you may claim
damage as a result of said use.

Disclaimer #2:  No Government time, equipment, or resources were involved in the
development of this macro suite.  The Government has, however, benefited from
their use.

Updates.  These macros are periodically updated as I add, improve, or enhance
them.  Improvements are always in the works. To date several of these macros
have been completely replaced or substantially improved/modified over their
original state.

Recommended Machine.  The faster the machine these are run on the better the
performance.  I have run these macros on an 8MHz AT and, though slow, they
worked quite well.  I recommend nothing less than 12MHz though.  These are
probably too complex to use on a PC, but gek, if you don't know any better
(aren't addicted to speed like some of us) these macros should prove adequate
as well.

What's Provided.  
1.  The following macros are provided. Some are found within a WordPerfect
keyboard definition file (WPK). Included below is a brief description of each
macro.  
  Notes:
  a)  ENVPUB.WPM needs the file called ENVELOPE.REF in your WP51 directory
before it will run correctly (also, these files are separate and not in the
keyboard definition file).  You'll also need to modify ENVELOPE.REF for your
particular printer. 
  b) ALTH, the Help macro is too large for proper inclusion in the WPK.  
2.  PUBLIC.WPK, a keyboard definition file, has the smaller macros in it. 
Those macros detecting the use of Long Document names (ALTX, ALTF, and ALTD)
require WP51 interim release 12-30-90 or later unless short document names are
specifically utilized. Use the ALTL macro to set WP51 to use short (DOS)
filenames if you aren't sure of what you are using.  If you are using a pre-
Dec 90 release of WP51 and do not set long document names off the macros
mentioned may not work as intended.
3.  The following macros are provided:                                                        MNEMONIC BASIS
 MACRO                 DESCRIPTION                       FOR THE MACRO

ALTA         Macro to place text anywhere on a page      (ADVANCE)
ALTB         Block document segments for special action  (BLOCK)
ALTC         Drop Caps                                   (CAPITAL)
ALTD         Provides Menu Access to drives & dirs       (DIR)
ALTF         Save/Get file w/o prompts w/current name    (FILE) 
ALTH         Help information on these macros            (HELP)
ALTL         Long/Short Doc Name Save/List               (LIST)
ALTN         Choose predefined Special Characters        (NEW Characters)
ALTP         Print menu                                  (PRINT)
ALTR         Retrieves text from the Move Block          (RETRIEVE)
ALTV         Preview Document                            (VIEW)
ALTX         Exit WP51 w & w/o Save. Needs ALTF.WPM      (EXIT) 
CTRL A       Save File as ASCII                          (ASCII)
CTRL D       Format Date for Inclusion in document       (DATE)
CTRL O       Character over Character                    (OVER)
CRTL S       Superscript over Subscript                  (SUB/SUPERSCRIPT)
CTRL Dark Right/Left
             Places cursor at end of current/word-on-left, respectively 
ALT Dark Right/Left
             Places cursor at next/previous column or table cell, respectively
Shift Dark Right/Left
             Places cursor at next/previous sentence, respectively
ALT-         Used for paragraph numering/renumbering     --------
ALT[         Transpose character right                   --------
ALT]         Transpose character left                    --------
CTRL Del     Deletes word or block of text      --------
CTRL PgDn    Retrieve a Named Memory Variable   --------

ENVPUB       Create Addresses for envelopes, Printing reqr's ALTP
ENVELOPE.REF Sample Reference file for ENV.WPM
LTRHD        Create headings for Military letterhead (Easily modified for
             other types of letterhead)
             (CTRL L)
MEMO         Create a heading for a Memo letter (CTRL M)


NOTES:
1. Macros provided in the WPK, but not mentioned here are considered
temporary. 
2. These macros are powerful augmentations to WordPerfect's native
abilities.  However, on slow machines, these macros may be somewhat slow,
whereas on faster machines they just whiz by.  Recommended machines are those
with clock speeds of 12 MHz or faster.
Macro Descriptions:
ALT A     Essentially the same as the Shf F8, (O)ther, (A)dvance menu
          selection.  However, this macro requires far fewer keystrokes to
          access.  Additionally, being menu driven makes it easier to use.

ALT B     This is an extremely feature filled, highly useful macro.
          a.   Combines the features of MOVE (CTRL F4) with a few other
          enhancements.  Allows the user to block the following types of
          text:  character(s), word(s), sentence, paragraph, page or a
          specified block.  It then allows the addition of various
          enhancements (font size or attribute),  super/subscripts, quotes,
          delete the block (a sort of enhancement...), upper/lowercase, or to
          keep it blocked.
          b.   Text in the move buffer may also be retrieved.  Duplicates and
          improves upon WordPerfect's block retrieve feature (CTRL F4 4 1,
          also known as CTRL F4 RB)
          c.   You can also move, copy or delete the defined block of text. 
          Note:  Text deleted with this macro is placed in the Move block
          temporary storage area and not in the delete holding area. 
          Retrieve it using ALTR or the retrieve block option in menu 1.  
          d.   Lowercasing a sentence will capitalize the first letter of it's
          first word.
          e.   Lowercasing a PARAGRAPH will recapitalize the first letter of
          every sentence's first word within the paragraph
          f.   If you've already blocked some text when you run this macro it
          will automatically go to the Menu 2. This menu provides for
          operation upon blocks of text
          g.   Two true quotes is placed in the document by hitting ALT-B O Q
          (access the BLOCKing macro, O for Options menu and Q for
          Quotes).  If the character at the cursor is a space the two quote
          characters are entered and the cursor placed between them
          otherwise, the character at the cursor is quoted.  However, if
          there is a blocked region, that region is quoted.
          h.   Menu 3. Essentially the same as hitting Ctrl F8 (A)ppearance or
          (S)ize and then the appropriate menu item.  What this macro does is
          put these options in the same menu.  This macro is sensitive to
          active blocks.  If a menu choice is made without text being
          blocked, the character on which the cursor rests will take on the
          attribute chosen from the menu.  However, if a block is active, all
          text within that block takes on the attribute of the chosen menu
          item.  NOTE:  Normally part the (S)ize option of CTRL F8 menu,
          Super/Subscripts are not within this section of the macro. 
          Sub/Superscripts exits at the previous level of this macro
          i.   If Menu 2 is chosen from Menu 1 (with no active block), the
          chosen option acts as if a single character was chosen; exception:
          Move and Copy which will not work without an active block of text
          chosen.
          j.   You may uppercase the first character of a word or the first
          word of each sentence without lowercasing the sentence or paragraph
          first.
          k.   Spell check a defined block or the current word.
          Limitation:  1) Character blocks only recognize the following as
          valid characters:  0-9, a-z and A-Z Use the Wordperfect BLOCK
          feature (ALT F4, or, on extended keyboards F12) for other
          characters. 2) When moving or copying text to the end of a document
          ensure that at least two spaces exist at the location to which you
          are moving/copying the text.  If you don't, the moved/copied text
          won't appear automatically.  The problem lies with WordPerfect
          somehow and I haven't figured a way around it yet.  If the text
          doesn't appear as expected hit the retrieve macro (ALT-R) to obtain
          it.  3)  Block copies and moves may not work as expected when those
          copies/moves cover more than one column (block or block protect
          columns) or more than one table cell.

ALTC      Adds a Drop Cap to your paragraph.  Allows you to specify the
          desired character or, if a character is blocked will convert that
          character to a Drop Cap.  You may also specify a new size for the
          base font.  Requires scalable font capabilty.

ALTD      An extension to the LIST (F5) key in that this macro is
          customizable to include the subdirs or drives used often.  This
          means they are only one or two keystrokes away rather than many. 
          NOTE: This should be renamed ALTD.WPM.  Also, you may want to
          customize it to adjust for your particular subdirectory structure. 
          (ALT D).  
          
          NOTES:
          1.  The files directory is assumed to be called WPDOC in this macro
          and is hard coded. You may change it though.  The document
          directory is specified by a variable called DOCHOME.  This
          variable is located at the beginning of the macro for easy
          modification, if necessary. 
          2.  This macro is designed for use with SHORT file names.  While it
          is possible to write the macro to detect for both short and long
          filenames in the same macro you either need to provide another menu
          choice for long named directories, or upgrade to the Jun 90 or
          better interim release of WordPerfect which will support testing
          for long or short filenames.  I may include a version with that
          capability (autodetection of long/short filenames) in the future.

ALT F     Saves a file or, if the current document is BLANK, retrieves the
          last edited file (relies on information supplied by ALTX to do this)
          Save File. If the file has a name it is displayed in a window with
          its pathname during the save process.  If the file has no name you
          are prompted to supply one.  If you don't supply a name the save
          process aborts.  Detects files without names and provides the
          option to provide a filename during a filesave.  
          Retrieve File.  If the file is blank when this macro is executed it
          retrieves the last edited file and places the cursor its original
          position when the file was exited.  LIMITATIONS: 1) If the document
          has pages which were renumbered then it is possible that the cursor
          will not return to the exact same spot as when WP51 was exited (and
          the file with it).  You will however, be taken to an equivalent
          spot of matching the page, line and position on the line. 2) If you
          are using columns the macro won't be able to find the correct
          location.

ALT H     Provides a brief description of all macros provided. Completely
          menu driven.

ALT L     Provides an easy method of switching between Long and Short (DOS)
          Document names when Saving and/or listing files.  All legal options
          are provided.
          Long names when saving: long names or short names in display
          listing
          Short names when saving: long names or short names in display
          listing.

ALT N     Chose from About 95 specially chosen characters in 15 different
          categories. Nominally organized. Chose by number. If your printer
          doesn't recognize the character chosen WP51 sends it as a graphic
          (if your printer is not a daisy wheel printer).  LIMITATION:  There
          are three symbols which use user defined character specifications
          (Character set 12).  They are #'s 54, 59, and 61.  They may or may
          not print.  If they do print, there is no telling how they'll print
          if you aren't using ITC Zapf Dingbats (I'm currently using the
          Postscript cartridge for a LaserJet II).  Redefine as necessary. 
          NOTE:  alphabetic characters entered with numbers will terminate
          the macro.

ALT P     Print a page, specified pages, the entire document, initialize the
          printer, or go to the WordPerfect print menu (SHF F7).  During
          print operation the macro identifies whether a page or the document
          is being printed. This macro also reports the page number on which
          the cursor rests.  Just prior to exiting, the macro reports that it
          is exiting.  This is a helpful feature for slower machines which
          may take some time before being able to actually exit.

ALT R     Retrieves text in WPs block save region.  Same as MOVE (CTRL F4)
          R (4) B (1) 

Alt S     1.  Super/Subscripting of character at cursor position or the
          character to left of cursor. Block sensitive macro. Will
          super/subscript a hi-lighted block. 
          2.  Searches forward or backward from the current position for a
          character while blocking is active or inactive. If blocking is
          active it duplicates Wordperfect's similar function in the forward
          direction.  However, unlike Wordperfect, this macro supports
          searching in the reverse direction while blocking is active.  This
          means you can block backwards to a designated character.
          3.  Simple Spelling features:  Spell Check a Word, the Page, or the
          Document.  If there's no problem, the macro will exit to the
          document.  If an error is sensed, the macro exits to the
          WordPerfect spell checker.

ALT V     The same as Shf F7, (V)iew

ALT X    Exit from WP or the document.  Sensitive to whether the current
          document has been modified.  Calls ALTF for file save operations. 
          Detects blank files and automatically exits from either WP or the
          document when called.  If called, and printing is on-going. this
          macro provides the option of continuing with the exit or returning
          to the document to continue printing.  Additionally, on an exit
          from WordPerfect this macro saves the information on the current
          file for later automatic retrieval.  Information on the second
          document is not saved.  This information is used by ALTF
          NOTE:  This macro may report that the document was modified when it
          indeed was not, at least not directly.  It was felt that tracking
          down this particular quirk was not necessary, preferring to
          remain on the conservative side in detecting when a document had or
          had not been modified by the user.

CTRL A    Stores a file as ASCII text.  Takes current filename, removes
          extension, and supplies a specific extension for the ASCII save --
          as supplied that extension is "TXT".  User may redefine extension
          by changing variable contents at beginning of macro.  User may may
          store file with a different file name and/or path by supplying the
          appropriate information.  The default ASCII file extension may also
          be overidden to force storage of file with a specific filename and
          extension.  Existing files with same name are detected.  Files
          without names when macro is executed are detected.  Original
          filename is restored at the completion of an ASCII store.  A file
          with same name when the ASCII extension is added is detected and
          taken care of during an ASCII save (ASCII saves will not be
          overwritten by a WP51 format document inadvertently)

CTRL D    Provides options to chose a date format for inserting into a
          document.  These formats include Standard (mm dd, yy), Military (dd
          mm yy), and Contracting (yy mm dd).  Additionally, the name of the
          month may be a three letter abbreviation or fully written out.  The
          year may be the last two digits (e.g. 91) or the entire year (e.g.
          1991).

CTRL S    Places a superscripted value over a supscripted value.  Example: 
          Eab.  The macro places a space directly after the last value so the
          user can continue typing.  Also, the macro is independent of font
          size and uses no position sensitive codes.  Spacing adjustment is
          automatically calculated for proper placement of text.  CAVEAT:  If
          the size of text is changed AFTER this character set is created you
          may need to make proper adjustment for the superscripted value (or
          redo the equation). However, a variance of two points, larger or
          smaller, does not significantly alter the appearance of the printed
          result.  If the typeface is  changed (say from Times Roman to
          Century Schoolbook) chances are the equation WILL need to be
          redone.

ALT -     Provides for paragraph numbering. Executing this macro and hitting
          A or ENTER will create an automatic paragraph numbering based
          upon the number of tabs/indents the cursor is from the left margin. 
          Hitting a number between 1 and 8 will chose a specific level of
          paragraph numbering. The Option N will reset the new paragraph
          number to 1. The S, setup, option will send you to the paragraph
          numbering setup menu provided by WordPerfect.

ALT [     Takes the character at the cursor and transposes it left by one
          position. Characters include formatting characters as well. See ALT
          ].

ALT ]     Takes the character at the cursor and transposes it right by one
          position.  Characters include formatting characters as well.  If
          the character at the cursor is one which is not paired (as in
          {BOLD}{bold} it may be transposed.  If the character is paired, the
          cursor is moved until a transposable character is found- it is then
          transposed.

ALT DARK Right Arrow
          Right/Left Places cursor at next column or table cell

ALT DARK Left Arrow
          Places cursor at previous column or table cell

CTRL Dark Right Arrow
          Places cursor at the end of the word to the left of the current
          word.  Moves past all formatting code until cursor reaches the
          actual text

CRTL Dark Left Arrow
          Places cursor at the end of the current word.  Moves through the
          word until it reaches the end of the word (or formatting code
          whichever comes first)

Shift Dark Left Arrow
          Move cursor to the beginning of the next sentence

Shift Dark Right Arrow
          Move cursor to the beginning of the previous sentence

CTRL Del  Delete a block of text or, if block isn't active, the current word 

CTRL PgDn Retrieve the contents of a memory variable.

ENVPUB    Creates the text to place on an envelope which is then placed on a
          page defined by ENVELOPE.REF.  Menu options allow editing your
          info, viewing the document, exiting to the document, deleting the
          current page or adding another record.  You may want to rename this
          to ENV. 

MEMO      The macro will prompt for the type of Memorandum it is (i.e. Memo
          for...).  It also prompts for the subject of the memo and from
          whom.  The macro then places the Memo text on the first line flush
          left, the Date is placed flush right and then a graphic line is
          inserted under which is placed the subject and from.  All tabs and
          margins are automatically setup.  (CTRL M)

LTRHD     Prompts for REPLY TO ATTN OF, SUBJECT, and TO for placement on
          Military preprinted letterhead.  Variables are created such that it
          is easy to change the placement of these inputs to compensate for
          actual placement of these prompts between different batches of
          letterhead.  Note: this letterhead is usually " narrower than
          normal 8.5"x11" paper.  This means that if you measure a one inch
          left margin (about two spaces to the right of the semi-colon) you
          will actually need about a 1.17" left margin (for example).  All
          document initialization's are placed at the top of the macro. 
          Useful tool for non-military as well - modify as appropriate to
          your organizational letterhead (or your own). (CTRL L)

RXMEM     To use, the memory variable must exist (otherwise there's nothing
          to retrieve and you get an error message).  To assign a memory
          variable from the keyboard, block the text desired (up to 127
          characters) and hit Ctrl PageUp.  At the variable prompt provide a
          name and hit enter.  Or hit Ctrl PageUp.  At the variable prompt,
          provide a name and hit enter.  At the value prompt, enter the
          desired text.  To retrieve hit Ctrl Pageup (or Ctrl F10, RXMEM
          enter) and provide the name assigned to the variable.  The
          retrieved text is placed directly into your document.  This macro
          is assigned to the PgDn key for extended keyboards. (Ctrl PgDn)Replaced Macros.  These are macros which, as others matured, had their
          abilities taken over by another (i.e. were superseded).

REMOVED
.
ALT S  Search (forward/reverse), Spell, subscript/supersript.  Everything but
       search transfered to the Blocking macro (ALTB). The search capability
       provided no value added over the native WP search capabilties.

REPLACED by ALT B.  This macro now has all of the functionality of these
macros, including ease of use, such that they are now longer necessary as
standalone macros:

ALT C  Upper or lower cases a character or, if the block is active,
       upper/lower case all text within the block
ALT E  Enhance Text:  Size and Appearance
ALT I  Italicize a character or a block of characters
ALT L  Lowercase a character or a block of characters
ALT Q  True quotes of a block of text or if no active block, placement of the
       cursor between two true quotes
ALT S  The Spell Check option of this macro was revised, extended and
       improved by the inclusion into ALTB
ALT S  Subscript and Superscript capability transfered into ALTB.
ALT U  Uppercase a character or a block of characters
ALT W  1.  Blocks a word. This macro is punctuation sensitive.
       2.  Transposes a word forward or reverse of its present position

Notes.
  If ALTX recognizes that a document was modified it calls the SAVE macro,
ALTF, to save it.  If these two files reside in a keyboard definition file and
ALTX is executed, an error is generated: ALTF cannot be found.  The problem is
that WP51 cannot call (and therefore execute) a macro from within another
macro which within exists only in an active/inactive keyboard definition.  The
only macros which a macro within a keyboard definition file (or even a
standalone macro) can call are standalone macros. In other words, a macro
within a keyboard definition file cannot call another macro within a keyboard
definition file.
  HP Laser Jet Series II requires an Advance Up of 0.2c for each heading. 
The macros are currently setup for the Apple LaserWriter IINTX.Macros which depend on others:

MACRO DEPENDENCIES

Name    Dependent     Name    Dependent    Name      Dependent 
----------------------------------------------------------------
ALT F    ALTX  1      ALT X     ALTF      ENVPUB      ALTP
ALT [    TR2

NOTES: 
1.  Relies on information supplied by ALTX when
    WP51 is exited to retrieve the last file edited when WP51
    is reentered. There is no other other link.
2.  DOS filename for ALT], the TRANSPOSE RIGHT macro.  DOS
    won't accept the "]" character as part of a filename so
    ALT] can't be used.  TR is the standalone version of the
    ALT] macro found in the WPK file.
3.  Macros which call other macros CANNOT call a macro in
    the same or different keyboard definition file.  This
    means, if such an event happens, and the called macro is
    not found in the macro directory (a .WPM file) it is
    reported as missing or non-existent.


Improvement History (by macro):
ALTA
9 Sep Redid screen arrangement for choosing options and providing data

9 Sep Added Screen boxes for easier access of available options

25 Sep  Rewrote the menu to provide more information and to become more
        functional than that provided by Wordperfect's menu selection.

29 Sep  Redid the menu again to make it easier to read and to use the screen
        than before.  Requires July 90 update of WP51 or better.  Utilizes an
        {OTHERWISE} statement which evaluates to error in earlier versions of
        WP51.  If you have an earlier version of WP51, change the {OTHERWISE}
        to the {ELSE}.  Then, to ensure the {ELSE}~ADV~~ is properly terminated
        place a {GO}ADV~ after the end of the {CASE} statement. Review WP manual
        for how to do this if you're not sure on the proper procedures.

1 Nov0  Rewrote the menu structure to a common interface

1 Dec0  Rewrote the macro for smaller program code.  First program was basically
        an experiment (brute force technique) which basically didn't change a
        whole lot, essentially only the menuing evolved.  This version is more
        compliant with the techniques used in the other macros. (Version 3.7). 

18 Dec0 Reworked the menu code to take up less memory. (Version 3.7a)

29 May1 Added sensing of active blocking.  Active blocks are turned off at the
        start of the macro (Version 3.7b)

12 Jul1 Modified menus. (Version 3.7d)


ALTB
24 Oct0 Added extensions to current macros.  This macro calls extensively on
        features within ALTW.  It also uses ALTQ and ALTE to further its utility
        and not perform recoding.  It duplicates some of the features of ALTW
        by allowing word blocking.  All features upon which the blocking acts
        (character, word, sentence, paragraph, and page) bring up a secondary
        menu once blocking is completed.  This menu allows access to additional
        features.  Blocking of paragraphs will only block the text and not
        formatting features at the beginning (like automatic paragraph
        numbering) or the end (like page breaks or hard returns) (Ver 1.0)

28 Oct0 Added these capabilities: move, copy, block a number of words, and print
        the block. (Ver 1.2)

1 Nov0  Rewrote the menu structure to a common interface

1 Nov0  Removed reliance on ALTW macro (WORD)

2 Nov0  Improved code relating to moving text (character, word, sentence and
        paragraph).  User does not have to be as careful about placing text as
        before. Each type of item is treated slightly different when it is
        retrieved to its new location so as to keep the integrity of the
        original information of the paragraph structure.  Placement of words is
        sensitive to punctuation, or not, and acts accordingly.

2 Nov0  Added ability to block multiple characters as well as multiple words

2 Nov0  Move and Copy now apply to all blockable text segments

2 Nov0  Added capability to BLOCK text to a given character (typable directly
        from the keyboard).

2 Nov0  Only Paragraph and Page now respond with a print option in the following
        menu choices now.  This was because it didn't seem to make any sense to
        print a character, word or sentence by itself.

9 Nov0  Added the capability to search for hard characters as well.  For
        example: hard hyphen is Home -, hard space is home spacebar, hard tab
        is home tab (Version 1.5b)

9 Nov0  Added the capability to capitalize the first word of every sentence in
        a paragraph which has just been lowercased (which might originally have
        been all uppercase) (Version 1.6)

9 Nov0  Added capability to sense an active block.  If text is blocked when
        executed it will automatically transfer control to the options portion
        of the macro (Version 1.6a)

9 Nov0  Added code for quotes from ALTQ, effectively removing ALTQs need as a
        standalone macro (Version 1.6b)

9 Nov0  Added code from ALTE for text enhancements effectively removing the need
        for ALTE as a standalone macro (ver 1.6c)

10 Nov0 Added Options choice to menu 1.  This goes to the Options menu (menu 2). 
        All options here now have the capability to detect an active block.  If
        no active block is detected the macro will act as if CHARACTER was
        specified.  Quotes.  Move and Copy will not work since nothing was
        specified to act upon (ver 1.6d)

10 Nov0 Added option to go to previous menu levels from menu 2 to 1 and from
        menu 3 to menu 1 or menu2.  If going back to menu 1 from menu levels 2
        or 3 any active block is inactivated. (Version 1.6e)

11 Nov0 Fixed a problem with copies and moves of blocks which reported nothing
        to move/copy when indeed there was.  This problem was generated by
        improper detection of a block.  Was using {IF}{STATE}!&128~ (lack of an
        active block).  Rewrote routine to report true for active block rather
        than true for no active block. (Version 1.6f)

11 Nov0 Fixed a problem with move of a page.  It would report nothing to move
        but then would wait for the press of the enter key to complete the move
        task. (Version 1.6g)

12 Nov0 Fixed a minor bug involving the main menu (a choice not in the options
        would clear the menu but leave it active). (Version 1.6h)

12 Nov0 Fixed a minor menu problem with the enhancement menu (menu 3):  Outline
        font was left off the menu during one of the revisions but kept as an
        option.  The Outline option was put back into the menu. (Version 1.6i)

12 Nov0 Fixed a problem with superscripts and deletes.  Problem was identified
        on 11 Novother activities using {STATE}!&128 (which apparently DOES NOT
        show a NOT AND operation to WordPerfect), but which wasn't fixed for
        this options.   (Version 1.6j)

12 Nov0 Provided the ability to look for the next hard return in the BLOCK to
        choice.  The enter key was previously used to exit to the Options menu
        (menu 2).  Now, to complete your choice of blocking to the desired
        character, use the EXIT key (F7 unless you've redefined it). (Version
        1.6k)

12 Nov0 When using the BLOCK to option, the macro had a tendency to exit when
        a character requested was not found.  This has been fixed to allow a
        different search character. (Version 1.6l)

18 Nov0 During a Move, Reveal Codes would come on even if it wasn't active when
        the macro was executed. This was fixed.  Also, during a page move the
        message that indicated nothing was available for moving would flash even
        though it would then indicate it was ready for you to move the cursor
        to the place where the text was to be moved to. (Version 1.6m)

18 Nov0 During a move, for some reason ~prnt~~ would appear in the text.  This
        problem was corrected (Version 1.6n)

18 Nov0 When a block of text was Moved, and the beginning of the block, or the
        end of it, contained a text enhancement (size or attribute) code(s),
        that code was left behind after a move.  Now the extraneous code is
        removed during a move operation. (Version 1.6m)

18 Nov0 Added the ability to uppercase the first word of a sentence being
        lowercased.  In the process I tweaked the code which defines the end of
        a sentence. No spaces are now at the end of the word now when blocked.
        (Version 1.6o)

18 Nov0 Added a status prompt at the bottom of the screen for during block moves
        and copies. (Version 1.6p)

18 Nov0 After a paragraph has been lowercased, and the first word of all of its
        sentences have all been uppercased the cursor is placed at the end of
        the paragraph. (Version 1.6q)

27 Nov0 Fixed a bug in the handling of Lowercasing of a block/character of text. 
        A misplaced ENDIF statement allowed code to run when it wasn't s'posed
        to. (Version 1.6r)

2 Dec0  Added the option to quote a character at the cursor if no block
        (character or otherwise) is chosen.  This change makes this portion of
        the macro compliant with the operations of other portions of the macro
        (i.e., if no blocked region is specified when an option is chosen the
        character at the cursor is acted upon). (Version 1.6s)

6 Dec0  Fixed a bug which acted sorta intermittently whereby during a block copy
        or move the characters ~prnt~~ would appear after the enter key was
        pressed.  This also left the message to hit enter on the screen.  If
        enter was pressed again the copied/moved text would appear. The problem
        was narrowed down to occuring only at the absolute end of a document. 
        Unable to completely fix the problem without more information from
        Wordperfect.  The only solution now is to hit the ALT-R (retrieve) macro
        to obtain the text being moved/copied (if the move doesn't occur as
        expected. (Version 1.6t)

8 Dec0  If a word or character is blocked and then quoted, the cursor is now
        moved past the end quote mark instead of being left at the quote as
        before. Revised the code for quoting for easier reading and better
        efficiency (Version 1.6u)

8 Dec0  Added checking for tabs, hard/soft page codes, indents and hard/soft
        return codes for more proper placement of quotes.  These effectively
        prevents these codes from being quoted and places the quotes in only
        TEXT areas (as they should be).  (Version 1.6v)

8 Dec0  An end of paragraph is assumed to end with a hard return.  However, when
        a hard return is not found it implies that the end of the paragraph
        is at the end of the page and is treated as such.  (Version 1.6w)

18 Dec0 Tweaked some coding related to the screen menu's to decrease the program
        size some.  (Version 1.6x)

20 Dec0 When moving or deleting text all spaces, except the one which may have
        existed to the immediate left of the text, are deleted.   In effect,
        when the text is moved or deleted, it's as if it was never there.  Other
        punctuation left behind is not affected. (Version 1.6y)

20 Dec0 Fixed a bug which would block all except the last two characters of a
        sentence if punctuation started the next sentence (like a parenthesis).
        (Version 1.6z)

24 Dec0 Found a method to determine if cursor is at the very end of a document
        so that if a block of text was moved or copied it would definitely drop
        before macro execution completed.  Previously, if at the bottom of a
        document the block of text might, or might not drop.  The method used
        now takes a picture of the current cursor location and stores it to a
        variable.  A test is then performed on the variable to determine its
        status.  If a picture of the current cursor location is performed
        directly the test fails (for some reason). {KTON}{SYSTEM}right~~ is
        being utilized to obtain the necessary information.  Also, the test is
        made to determine if it is less than ASCII 01 since testing for ASCII
        00 directly isn't possible (as far as I can tell). (Version 1.6aa)

24 Dec0 Removed some redundant coding.  Placed testing in the print routine
        to ensure only defined blocking regions become printable. (Version
        1.6ab)

26 Dec0 Performs a turnoff of any status prompt immediately upon macro exection. 
        Discovered a way to exit a copy/move operation without going through a
        normal exit.  This left a status prompt at the bottom of the screen
        (Version 1.6ac)

5 Jan1  Added an option to uppercase the first character of a word, the first
        word of a block or the first word of every sentence of the blocked
        paragraph. If blocking is not activated for word, sentence, Paragraph
        or page, the character at the cursor is uppercased. At the completion
        of activity the cursor is left at end of the defined block, if one was
        so defined. (Version 1.7)

5 Jan1  After uppercasing the first character of a page the cursor was not at
        the start of the next page where is was supposed to be...fixed that.
        (Version 1.7a)

5 Jan1  Blocking a para is accomplished by WordPerfect paragraph block then
        turning off block, going to beginning of what was the blocked area,
        turning block back on and then searching for the hard return.  Now, in
        an effort to speed up that search I moved left one word before searching
        for the hard return. (Version 1.7b)

5 Jan1  Optimized the coding to decrease program size and to speedup execution
        a little.  It involved combining separate IF ENDIF routines with OR (|)
        or AND (&) coding. (Version 1.7c)

5 Jan1  During normal macro blocking options all blocking is done from left to
        right.  However, there is no control over how a user blocks text before
        running the macro.  To capitalize the first character of the blocked
        region I had to check how the user did the blocking.  If the user
        blocked text from right to left it is corrected to blocking from left
        to right.  (Version 1.7d)

9 Jan1  Added capability to spell check the current word or defined block.  At
        the conclusion of the spell check document editing mode is re-entered
        without further action required. (Version 1.8)

9 Jan1  Improved the first letter capitalization coding.  Sometimes a words'
        first letter wasn't capitalized as requested.  Also, the cursor would
        not move to the end of the blocked region after capitalization of the
        first character.  This was fixed.  (Version 1.8a)

10 Jan1 Added checking for empty blocks. When blocking is turned on but nothing
        is blocked menu 1 is entered.  (Version 1.8b)

10 Jan1 Added DOC blocking to menu 1.  Includs ability to print the document
        blocked region as well. (Version 1.8c)

10 Jan1 Blocking a number of characters or words was enhanced.  Therew was a
        problem in that when the menu's were displayed there was no way of
        telling where the cursor rested.  A marker in the form of a temporary
        block of the cursor location is now created.  This allows the user to
        count the number of words or characters from the cursor location for
        blocking.  (Version 1.8d)

22 Jan1 Added ability to print user blocked regions of text. (Version 1.8e)

22 Jan1 Added ability to detect cross-reference marks during print.  Without
        this ability, and if the text possesses a cross-reference, WP51 will
        normally pause until the user anwsers WP51s message that the Document
        may need to be Generated, Print? No, (Yes). (Version 1.8f)

23 Jan1 Improved word blocking, slightly.  If a word was at the end of a
        sentence and was followed by two hard returns the word following the
        current word (from which you executed the macro) would get blocked. 
        Now, the current word is block as intended.  (Version 1.8g)

24 Jan1 If, when this macro is run, typeover is active it is turned off for the
        duration of the macro's activities and turned back on after the macro
        is finished.  (Version 1.8h)

24 Jan1 Deleting a word at the end of a sentence should now move the punctuation
        at the end of the sentence to the end of the, now, last word.  Also, if
        a word with one or more enhancements (such as bold and italic) is moved
        or deleted the codes are removed as well to keep from cluttering the
        document with enhancement codes which do not surround textual  elements. 
        A previous improvement removed this ability, unfortunately, and was
        not readdressed until now.  (Version 1.8i)

24 Jan1 Word blocking was completely rewritten to remove some difficulties with
        words at the end of a paragraph which were then followed by a code such
        as a tab mark.  Although slower, it is potentially more accurate and
        flexible.  Now, each character in the word is tested for validity before
        moving to the next character.  An invalid character signals a boundary
        of the word. One tradeoff was macro size: it's grown considerably. 
        (Version 1.8i.1)

24 Jan1 Modifications were made to word blocking to allow such things as
        contractions and the possessive case.  (Version 1.8i.2)

3 Feb1  Added status block removal to the exit part of the macro.  A slight
        oversight has been corrected.  (Version 1.8i.3)

17 May1 During a block move or copy operation reveal codes is turned back on if
        it was on when the macro was executed to allow proper placement of the
        block.  This is useful when placing a block with respect to certain
        codes formatting code(s).  (Ver 1.8j)

18 May1 Redid the spell check routine slightly.  Added Dark +/- key to blocking. 
        For instance, if you are blocking (option in menu 1) the dark + or dark
        - keys will move the cursor 12 lines down or up, respectively.  Also
        added sensing for page up and page down.  Reverified variables used (no
        ambiquity when longer than 7 characters) and also made them more
        readable (use of upper and lowercase letters).  At the exit point all
        named vars are now nulled.  (Version 1.8k)

22 May1 Tests the punctuation at the site of the cursor to determine if that
        character should move to bump up against the previous word upon deletion
        of the blocked region.  For instance, if the last word of the previous
        sentence (region) were deleted the period would be sensed and would be
        moved up against the word blocked.  (Version 1.8m)

25 May1 It is now possible to use the mouse to position the cursor during block
        copies or moves.  (Version 1.8n)

28 May1 Modified menu structure so that menu's 2 and 3 are shown simultaneously. 
        The active menu is indicated.  Switching between menus (1, 2 or 3) is
        as easy as choosing a menu number. (Ver 1.9)

28 May1 Fixed a problem with reveal codes not coming on during a copy (though
        it would come on during a move) if reveal codes was on when the macro
        was executed.  I moved the IF statement section which performs thsis
        action up before any other test. (Version 1.9a)

29 May1 With the recent changes an additional 2Kb was added to the macro size. 
        Code tweaking reduced size of the code over 2Kb!  Additionally, when
        answering NO to block printing, or when an illegal attempt was made to
        print a block (legal blocks are paragraph, page and document) the macro
        would exit and unblock the blocked region.  Now, return is made to the
        options menu with the blocked region still active. (Version 1.9b)

3 Jun1  Did some minor tweaking to reduce program size (add'l 226 bytes)
        (Version 1.9c)

6 Jun1  Fixed a minor problem with lowercase also making the next character
        after the lowercased block a LARGE character (Ver 1.9d)

6 Jun1  Added the ability to print any blocked region.  However, printing is
        still not permitted for regions blocked specifically as a character,
        word, or sentence. (version 1.10) 

10 Jun1 Improved the detection of the beginning and/or ending of a blocked
        region (Version 1.11a)

12 Jun1 Fixed a "bug" in which if a word is deleted and the character at its end
        isn't recognized (for instance the " mark) the WP message "Move Cursor;
        press ENTER to retrieve." would appear at the bottom of the screen.
        (Version 1.11b)

16 Jun1 Rewrote these options available from menu 1: Blocking, Word, Sentence,
        Multiple characters and words.  All options should behave better within
        tables and columns because their operation is more tightly defined. 
        Sensing of end of or the beginning of a document is now a more or less
        brute force technique (I couldn't find a decent direct method for
        testing these spots without terminating the macro in the process).  This
        amounts to a major rewrite of those portions affected. (Version 2.00)

17 Jun1 Modified operations in Menu 2: Delete, Move and Uppercase 1st Letter. 
        Also, the operation which drops a block of text grabbed by copy or move
        operations was modified.  Operations were made less hostile to being
        performed within tables. (Version 2.01)

18 Jun1 Improved table compatibility for word and paragraph blocking.  A lone
        word in a cell is treated essentially the same as a paragraph. 
        Additionally, a lone line in a cell is treated similarly as a paragraph.
        Also, a paragraph ends in a hard return outside of a cell.  Inside a
        cell, it is the same - if a hard return exists it defines a paragraph
        (if not, the definitions above take hold).  If the macro is executed on
        a hard return the first paragraph to the LEFT is the paragraph which is
        blocked. (Version 2.01a)

19 Jun1 Fixed a minor problem of the blocking of a word at the end of a
        document. This fixed the macro's tendency to hang up when it got to the
        end of the document.  This is the fix:  End of Document is indicated by
        the ~.  You can't test directly for it or the macro will fail.  However,
        the ~ is indicated by {KTON}{SYSTEM}right~~ or {KTON}{SYSTEM}left~~
        = {NTOK}64570~~.  This will indicate both ending or beginning of the
        document.  An additional method was found too. If the result of
        {KTON}{SYSTEM}right/left~~< ASCII 01 (alt 01, aka happy face) the
        end/beginning of the document is indicated.  The problem with this test
        is that a > fails the test for some reason.  (Version 2.01b)

21 Jun1 Added the capability to do multiple Enhancements on a blocked region of
        text.  A new option, Multiple, was added to Menu 3. Menu's 2 and 3 are
        separate menu's again.  Enhancements are added after MULTIPLE is
        selected. All options chosen are then displayed between the brackets.
        Backspace will remove the last item in the box.  Multiple selections of
        the same option are disallowed.  Only one option affecting font size is
        allowed.  The letter "G" is for GO, "X" for cancel (exit) the options.
        (Hitting the EXIT key (F7) is essentially the save thing.) (Version
        3.00)

25 Jun1 Moving a block of text (usually a page) which was the LAST page (end of
        document) would cause the move operation to fail.  The blocked region
        would copy to the block buffer but the macro would halt.  Fixed this to
        recognize an end of document. (Version 3.00a)

25 Jun1 Discovered a minor problem with menu's 2 & 3 in 80x25 line mode (I
        usually work in 132x43).  They would move up a line when they didn't
        need to.  Turned out each menu line was 80 characters long.  This meant
        that a carriage return was entered into the menu (the extra line). Then,
        everytime you switched between menu's 2 & 3 you'd get a cascade of
        menu's up the screen (bogus!). Eliminated this irritant... (Version
        3.00b)

7 Jul1  Fixed a bug where when a deletion occured which was near some formatting
        code or attribute the message "Block How Many Characters Left?" would
        occur.  Fixed the code for deletion of words at the beginning of a
        sentence (or paragraph) with attributes. Previous versions of this code
        deleted the attributes along with the word. This in turn removed the
        attributes for the entire sentence (or paragraph). This no longer
        occurs.  (Version 3.00c)

8 Jul1  Fixed a problem of the word MULTIPLE not always showing up in Menu 3 or
        the MULTIPLE [] option always present instead.  (Version 3.00d)

8 Jul1  A word which is between two punctuation marks (like parenthesis) and has
        attributes (such as bold or underline) will not block again.  This fixes
        that problem. (Version 3.00e)

8 Jul1  When a word was deleted which had a word on the left with punctuation
        and the word on the right had attributes attached they would end up
        together.  This fixes that problem such that the two words now remain
        separate after the word between them is deleted. (Version 3.00f)

9 Jul1  Added the option to retrieve a block of text from the move buffer.  The
        full functionality of ALTR was placed within this macro and will
        eventually replace it.  Once ALTR was upgraded to allow better
        definition of the environment to which it was copying text the decision
        was made that the ALTB COPY and MOVE functions could benefit from it's
        capabilities.  Added a title to the menu line. (Version 3.10)

12 Jul1 Added additional sensing of characters at the cusor:  format and
        character; character and format; and format and punctuation.  Improved
        sensing of the end of a paragraph (in this case a paragraph which ends
        in a hard page rather than a hard return). (Version 3.10b)

12 Jul1 Fixed a bug where the reveal codes would come on at the conclusion of
        the macro during which a block was deleted.  (Version 3.10c)

14 Jul1 There are now 36 different tests made to determine how to drop text
        retrieved from the move buffer.  This includes straight buffer retrieval
        or for use during a block move or copy operation. (Version 3.11)

14 Jul1 Spell checking of a single word without using the block feature would
        not work correctly if the word was misspelled.  This was corrected.
        (Version 3.11a)

4 Aug1  Sub/Superscripting changed to include ability found in the ALTS macro
        to work on the character to the left of the cursor.  Now, if no block
        is defined and subscript or superscript of a character is chosen, the
        user is provided the option of subscripting or superscripting the
        character to the left of the cursor. (Version 3.2)

6 Aug1  Fixed a problem found with the blocking of a specified number of
        characters. (Version 3.21)

6 Aug1  Added the ability to create table of contents or index markers on a
        blocked region of text. This feature is provided by the addition of a
        fourth menu (Menu 4).  Menu 4 is accessed from menus 2 and 3. (Version
        3.22)

11 Aug1 Finally broke down and added the Redline and Strikeout options to the
        menu 3.  That completes all of the options available from FORMAT (ctrl
        F8) with respect to Size and Appearance.  (Version 3.23)

14 Aug1 Table of Contents blocking was inaccessible if the block was over 30
        characters long.  This was fixed.  The "Quit" option no longer exists
        in menu 4 - just hit the enter key to go back to the previous menu
        level.  (Version 3.23b)

18 Aug1 Added Redline Option to multiple enhancements menu.  Strikeout was not
        added because I don't see the utility of enhancing something you want
        to delete...  Tweaked the coding some. (Version 3.24)

7 Sep1  Added the ability to place single or multiple enhancements (size or
        appearance) without the necessity to have a blocked region.  Prior to
        this, if no region was blocked the character at the cursor was enhanced. 
        Also, if the character was a space the enhancement treated it like any
        other character. However, if the cursor was at the end of the document
        nothing happened.  This modification changes that.  If the cursor is at
        the end of the document or a hard/soft return, a space is added and the
        cursor moved over it before the enhancements are entered. This change
        allows you to specify one or more enhancements before continuing typing.
        After the enhancements are added the cursor remains at the center of all
        of the enhancement start-stop codes.  This change now allows you to
        enter one or more enhancements prior to typing instead of typing the
        word(s), blocking the region and then attaching the enhancements.
        (Version 3.3)

7 Sep1  In menu 4, the Table of Contents menu allowed a number of characters to
        be entered at the prompt but only characters 1 - 5 are allowed.  This
        was fixed. Now, a single character entry is allowed.  Also, if no block
        was active when menu 4 was entered the menu was sorta odd looking.  I
        fixed it so that the second line now rests on the horizontal line. 
        Removed the limitation for Table of Contents with respect to sentences
        and paragraphs.  If blocking a region by the macro is performed, there
        is a limitation of no page or documents blocks allowed for a table of
        contents entry.  However, if you're still serious about having one that
        large use the blocking feature either before executing the macro or the
        blocking feature offered in menu 1. The QUIT option was removed from
        menu 4. Now, hitting the enter key will return to the previous menu
        level (2 or 3). In menu 3 with MULTIPLE active an enter key will now
        select the options chosen; the menu option Go was removed.  As before,
        the exit key will inactivate MULTIPLE.  (Version 3.31)

7 Sep1  Found I'd been a tad zealous in the enhancements arena and inadvertantly
        removed the ability to attach an an enhancement code to the current
        character by default if no blocked region was defined.  This was fixed. 
        Sorry folks... Also, if the character at the cursor is a cursor, a space
        won't be automatically entered as before.  The enhancement codes are
        just dropped into place. (Version 3.31a)

7 Sep1  In menu 4, the Table of Contents menu allowed a number of characters to
        be entered at the prompt but only characters 1 - 5 are allowed.  This
        was fixed. Now, a single character entry is allowed.  Also, if no block
        was active when menu 4 was entered the menu was sorta odd looking.  I
        fixed it so that the second line now rests on the horizontal line. 
        Removed the limitation for Table of Contents with respect to sentences
        and paragraphs.  If blocking a region by the macro is performed, there
        is a limitation of no page or documents blocks allowed for a table of
        contents entry.  However, if you're still serious about having one that
        large use the blocking feature either before executing the macro or the
        blocking feature offered in menu 1. The QUIT option was removed from
        menu 4. Now, hitting the enter key will return to the previous menu
        level (2 or 3). In menu 3 with MULTIPLE active an enter key will now
        select the options chosen; the menu option Go was removed.  As before,
        the exit key will inactivate MULTIPLE.  (Version 3.31)

7 Sep1  Found I'd been a tad zealous in the enhancements arena and inadvertantly
        removed the ability to attach an an enhancement code to the current
        character by default if no blocked region was defined.  This was fixed. 
        Sorry folks... Also, if the character at the cursor is a cursor, a space
        won't be automatically entered as before.  The enhancement codes are
        just dropped into place. (Version 3.31a)

11 Sep1 Blocking the first sentence of a paragraph which was auto-numbered would
        always include the numbering code.  What a nuisance.  This change fixes
        it so that only the actual sentence is numbered. (Version 3.31c)

16 Sep1  When copying or moving a block of text you might have occasion to hit
         the cancel key before the copy/move operation is complete.  This would
         leave a status prompt at the bottom of the screen no matter what you
         did.  This was fixed.  Now, the operation is a four-step operation. 
         You block the text you want to copy/move, chose the copy or move
         option, move the cursor to where you want (even if you don't move the
         cursor we'll assume you did...), and hit the enter key.  This brings
         up an additional menu.  Now, chose to drop the blocked region by
         hitting the ENTER key or stop the copy/move operation by hitting the
         cancel key (or, alternatively, the exit key).  If you had chosen to
         move text you won't have it any longer if you cancel/exit the
         operation.  You'll have to retrieve it at the location you desired by
         doing a block retrieve (ALT-B R or CTRL F4 R(etrieve) B(lock) or CTRL
         F4 4 1).  (Version 3.32)

21 Sep1  Printing of any block is now allowed new.  This includes a character,
         word, or sentence (previously disallowed).  This macro allows printing
         a block at it's current location.  WordPerfect will get the line
         correct but if you printed the blocked region which exists in the
         middle of a paragraph, it'll print beginning at the left margin.  This
         macro has it start printing at the line posigion reported by
         WordPerfect.  NOTE (important):  WordPerfect does microjustification. 
         Therefore, if you use other than left justification in your documents
         the true location on the page may not accurately reported (for some
         reason) by WordPerfect.  Also, the blocked region will have it's own
         microjustification independent of the text surrounding it so, a
         sentence in the middle of the paragraph may print differently from what
         you might expect (less tight kerning for instance).  With this in mind,
         happy printing! (Version 3.33)

22 Sep1  The two methods I've used to test for end/begin of document don't
         always work correctly between different interim releases of WP. This
         might evidence itself by a tilde (~) appearing in your document.  For
         blocking of sentences at the end of a document I started seeing this
         with interim release 5/31/91 so I rewrote the sentence blocking section
         to avoid this problem.  If no sentence is recognized an error message
         is generated before returning to menu 1.  This is possible if there is
         nothing to block or you are at the bottom of the document and
         formatting codes exist after the last sentence but before the end of
         the document.

         I also reworked all four menus slightly.  These menus are now one line
         higher than they were.  Menu 3 is now wrapped onto the lowest line
         instead of going to the end of first line. In multiple mode the only
         line which gets rewritten now is the lowest line.  This line
         indentifies those enhancements being added to the document.  This is
         especially beneficial to those with slower systems since the entire
         menu needn't be rewritten now. If you attempt to go to menu 4 without
         first blocking something the error message is displayed in the lowest
         line.

         An entire screen refresh is no longer done between menus as was a
         previous practice.

         Previously during an index, if you made an index entry for the primary
         index but didn't want a subindex you got one anyway. This is fixed. 
         Now, to accept a subindex you either hit the "=" key (and hit enter to
         accept the default subindex) or type in another subindex.  Hitting the
         enter key without an entry will default to NO subindex.  (Version 3.34)


ALTC
18 Feb1 NEW.  Modified version of a Drop cap macro found in WordPerfect
        Magazine, Vol 10, Number 5 by Nick Payne.  Modified to use W units of
        measure without changing WordPerfect to that unit of measure and then
        resetting to inches when done.  Added my standard interface for when
        prompting for a character. Made modifications to use 10.8 points rather
        than the 10 pts Mr Payne used (which are too small!).  (Version 1.0)

19 Feb1 Allowed for checking of a blocked character.  This character is checked
        for validity before macro continues.  If it is in the acceptable range
        it is used without prompting User for a character. (Version 1.01)

30 May1 Moved menu to bottom of the screen.  Modified the code to allow for
        left-to-right or right-to-left blocking. (Version 1.1)

23 Jun1 Revised code which tests chosen character for non-alphabetic (not
        allowed). All characters are now uppercased as soon as they are entered
        instead of uppercasing while in the text box (used for drop cap
        character). (version 1.2)

12 Jul1 Added Menu title. (Version 1.20a)

13 Jul1 Provides the ability to specify a new base font size for those times
        when the size of the text in the body of the document is not 10.8 point
        (the default size in the macro). (Version 2.0)

14 Jul1 All features of the drop cap are now calculated from scratch each time
        the macro is run.  The default base (text) font is 10.8.  All features
        of the drop cap are then calculated: the size of the graphic box (width
        and height) and size of the drop cap.  This makes the graphic box into
        which the drop cap is placed, more tight to the document text.  It also
        means that anytime anyone wants to change the size of their base text
        they won't need to do the calculations necessary to setup the drop cap
        font size (for each character) and graphic box size.  (Version 2.5)

18 Aug1 Tweaked and improved the code some. (Version 2.5a)

8 Sep1  Earlier versions relied upon tables for math calculations. This version
        uses math columns and is therefore compatible with columns.  Earlier
        versions were potentially lethal to information in columns.  Added the
        display of the default point size and the character being worked with. 
        Added sensing for typeover (it's turned off for the duration of the
        execution of the macro).  If you manually block the character desired
        testing is performed to ensure only one character is blocked or an error
        message is generated.  IT is still up to the user to ensure that the
        region blocked is at the beginning of the paragraph.  The macro will not
        work correctly elsewhere at this time.  (Version 2.6)

8 Sep1  Earlier versions relied upon tables for math calculations. This version
        uses math columns and is therefore compatible with columns.  Earlier
        versions were potentionall lethal to information in columns.  Added the
        display of the default point size and the character being worked with. 
        Added sensing for typeover (it's turned off for the duration of the
        execution of the macro).  If you manually block the character desired
        testing is performed to ensure only one character is blocked or an error
        message is generated.  IT is still up to the user to ensure that the
        region blocked is at the beginning of the paragraph.  The macro will not
        work correctly elsewhere at this time.  (Version 2.6)


ALTD
28 Nov0 Modified the menu structure for common user interface. Streamlined the
        coding a tad.  Added capability to specify a desired path not provided
        in the menu structure.  Provided error checking.  Added capability to
        hit EXIT to escape menus. (Version 3.7)

9 Dec0  Revised the coding a tad for more efficiency. (Version 3.7c)

18 Dec0 Reworked the menu code to take up less memory. (Version 3.7e)

5 Jan1  Did a little code optimization. Made the document directory the contents
        of a variable found at the beginning of the macro.  This allows easy
        modification to the code for those individuals who's document
        subdirectory is not called WPDOC.  (Version 3.7f)

3 Feb1  Made the WordPerfect subdirectory the contents of a variable found at
        the beginning of the macro. This allows easy modification to the code
        for those individuals who's WordPerfect subdirectory is not called WP51. 
        (Version 3.7g)

17 May1 Improved coding so that Vars were named vars rather than numbers.  Vars
        are more descriptive and future mods should prove simpler. (Ver 3.7h)

3 Jun1  Fixed problem with menu not completely overwriting text as it displays.
        (Vers 3.7k)           (Versions 3.7 i and j were minor fixes relating to
        placing the menu at the screen bottom rather than at top)

23 Jun1 Menu characters are uppercased as soon as they are entered.  Comparisons
        are then made only uppercase, instead of both uppercase and lowercase,
        to determine validity of choice.  Also, fixed a tendency of macro to
        report a drive as non-existent when indeed it was.  (Version 3.7l)

12 Jul1 Modified Menu title. Simplified Menu display.  Hitting the enter key at
        Main menu will exit the macro (an enter, in this case, means "DON'T DO
        ANYTHING" (aka:  OOPS!).  Hitting the enter key at the OTHER menu will
        return to the Main Menu.  (Version 3.70m)

13 Sep1  ALTD will now work when you are listing files.  This way you can get
         to a directory or disk drive quicker if you so desire.  Previous to
         this you'd only get a "Please Wait" message at the bottom of the
         screen.  What ALTD does is exit from the menu back to the document.
         (Version 3.70n)

ALTF
8 Sep0  Detects empty (blank according to {SYSTEM}document~) and terminates
        without doing any SAVE action

8 Sep0  Added capability to add a filename to a file during a filesave if the
        file had not been previously named.

28 Oct0 Added the capability to retrieve the last edited file and to place the
        cursor back to its last occupied position.  Relies on information
        supplied by ALTX to provide this capability (Ver 2.1). Replaces the
        Terminate save operation if document is blank feature (see 8 Sep)

4 Nov0  Fixed exit routine.  When ALTX called this routine it wouldn't always
        exit as designed because ALTF QUIT at it's termination which terminated
        the calling routine as well.  Replaced with a RETURN instead.

29 Nov0 Changed the menuing to standard user interface and tweaked the code a
        tad (Ver 3.0)

18 Dec0 Reworked the menu code to take up less memory. (Version 3.0a)

12 May1 Reworked the menu code to take up less memory. Removed extraneous code,
        optimized some code, tweaked menuing.  Retrieving last edited file
        slightly slower than previous versions... (Version 3.0b)

13 May1 Removed redundant code.  If an attempt is made to save a document with
        no name, the user is requested to provide one instead being asked if
        he/or she wants to provide a name for it. If no name is supplied (the
        enter key is hit instead) return is made to the document.  (Ver 3.0c)

13 May1 Redid the manner in which the retrieve the last file edited data file
        was executed such that if the file was not found (did not exist) an
        error condition is raised and return is made to the document.  This was
        an oversight.  Normally however, this data file (__RTN__.FIL) always
        exists. (Ver 3.0d)

22 May1 Corrected a problem of saving a file which has just been saved after a
        save as an ASCII or DOS text file (whether or not the file was
        thereafter saved through normal means as a WP51 file) by using this
        macro.  What would happen would be that WordPerfect would correctly
        report the name of the file until the actual SAVE routine.  At that
        point it would only correctly report the path to the document but
        provide NO file name.  This was fixed by saving the file name (path name
        was saved for good measure too) to a variable.  The variables would then
        be used to save the file and not a default name (which was the case) 
        (Version 3.0f)  (Note:  Version 3.0e merely changed the menu from the
        top of the screen to the bottom)

2 Jun1  The path and filename of the last edited file are now displayed during
        its retrieval (version 3.0g)

3 Jun1  Modified some prompts and error messages/bells (Version 3.0f)

3 Jun1  Modified to account for LONG DOCUMENT NAMES. (Version 3.10)

22 Jun1 A CANCEL during the naming of a file now sets an error flag used by
        ALTX.  This flag will now halt an exit process initiated by ALTX.  This
        is important.  For instance, if you were going to exit WordPerfect on
        a file without a name, and you decided to cancel the file nameing
        process during the filename request section, you would LOSE the
        document.  This modification insures that you do not lose the file.
        (Version 3.11a)

25 Jun1 If a file with no name was being saved the macro would not recognize
        long document names, if it was being used.  A change was made so now the
        user can enter the long document name and document type if desired. 
        (Version 3.11b)

12 Jul1 Added Menu title.  Minor modification to menu.  (Version 3.11c)

6 Aug1  Added the ability to change the name of the file before saving the file.
        When ALTF is executed you are presented a menu which continues with the
        file save option or you may rename the file. (Version 3.20)

7 Aug1  Fixed a problem when CANCEL was hit at the SAVE or RENAME prompt. 
        Before this fix, if a cancel was hit here and ALTF had been called from
        ALTX (EXIT) the current file would be exited anyway and the second
        document would be entered for exit (if one existed).  This was fixed by
        returning the cancel to the calling routine (in this case the Exit
        macro).   An additional problem fixed was that if two files existed and
        ALTF was called from ALTX (during an exit Wordperfect) such that the
        second file would acquire then name of the first file during a save. 
        This occurred during the save portion of the macro.  This no longer
        occurs.  NOTE:  the first document would be lost with this
        bug...(Version 3.20a)

14 Aug1 Added options to make multiple saves at the save time.  Options to save
        to a floppy drive, a hard drive, or a hard drive and floppy drive was
        provided.  Current version only allows saves to the default directory
        of chosen drives.  For instance, if the file's name is E:\test and
        option 1 is chosen (Drives A and C) then the file is first saved to
        drive A (as A:Test), then drive C (as C:test), and finally the file is
        reset to it's original name (E:\Test).  If Drive C's default directory
        was \WPDOC then the file would be saved as C:\WPDOC\TEST.  INITIAL
        RELEASE. NO EXTENSIVE TESTING PERFORMED.  However, tests were made in
        which errors were allowed to occur and it worked fine.  NOTE: if you've
        specified a drive which doesn't exist (usually A or B, but D to if you
        don't have a second hard drive or a RAM disk with the D drive
        designation) you may have a tough time of it.  If the RAM drive doesn't
        exist you may have a problem, if it's a floppy drive which doesn't have
        a floppy in it you'll need to satisfy the operating system and put a
        floppy in the drive. (Version 3.30)

16 Aug1 Added option to save to floppies A and B sequentially.  (Version 3.31)

16 Aug1 Optimized to reduce code redundancy. Fixed a minor problem which
        occurred when called from the EXIT macro (ALTX). Public Release version.
        (Version 3.32)

26 Aug1 Made file retrieve aware of columns.  Now, if a file is automatically
        retrieved (from information saved by the ALTX macro), and it has
        columns, the cursor is placed in the correct location (as in single
        columns).  The same caveats concerning page renumbering applies as
        before.  NOTE:  this column awareness was lacking in previous versions
        of the macro. Also, once the file has been retrieved, the screen message
        informs that the cursor is being positioned. (Version 3.33)

5 Sep1  Improved error handling during file saves to non-existant drives and/or
        subdirectories (and such). Previously user had to hit cancel to remove
        the error message at bottom of screen (WP was still trying to save or
        whatever).  Modified save menus slightly.  Added capability to save to
        a specified subdirectory from the save menu.  This capability is
        essentially just specifying a new storage location since the file name
        remains the same but the destination (path) is changes as specified. 
        If you, the user, want to modify to taste you must go to the menu, add
        or make entry for the new path, then tell the {CASE} statement where to
        go (using the examples already there) and then create the label (the
        place to go) and follow the examples already there.  The labels I used
        are immediately below the menu to make it easier.  Ensure you follow the
        examples exactly to make it work.  Also, ensure that the menu line
        doesn't exceed 79 characters (as displayed on the screen).  (Version
        3.34)

11 Sep1 Found that a file being automatically retrieved may not have represent
        the file as last saved with the ALTF macro via ALTX (save).  This occurs
        when an edited version is edited and then saved without going through
        the ALTX macro after it was saved with the ALTX macro. The problem being
        that if the stored data indicates a line or position which doesn't exist
        the macro would search forever for that missing location or until the
        cancel key is hit. This change fixes that. (Version 3.34b)


11 Sep1 For some reason, saving to a floppy wouldn't always work.  The macro
        would report an error and then leave it's message at the bottom of the
        screen.  This was fixed.  (Version 3.34c)

14 Sep1  Fixed a bug wherein the directory would display after the cursor was
         positioned during an auto-file recall. (Version 3.34d)

16 Sep1  Improved handling of file saves for files with subdocuments.  Macro
         detects a file save of an expanded document and asks if you wish to
         save the document as expanded. If so, file save begins.  In not, you
         are asked if you want to save the subdocuments.  File save then
         proceeds accordingly.  NOTE:  saving subdocuments will replace the
         originals copies. Options for saving or not saving particular (one or
         more) of the subdocuments are not provided. (Version 3.35)


ALTH
10 Nov0 First version of the Help macro.  Menu driven. Enter returns to main
        menu. Enter at main menu exits the macro.  Cancel (F1) and Exit (F7)
        active at all menu levels (Version 1.1)

11 Nov0 Fixed a few minor problems with the display of a few menus. (Ver 1.1a)

11 Nov0 Added sensing of Reveal Codes.  If on, it is turned off until the macro
        is exited. (Ver 1.2)

11 Nov0 Added the transpose macros. (1.2a)

11 Nov0 Reworked a few of the screens contents.  Fixed a few minor glitches.
        (Version 1.2b)

11 Nov0 Added Outline to menu 2 screen of ALTB and reworked the menu screen's
        verbiage (Version 1.2c)

11 Nov0 Added m, o, & e options to ALTB menu's to correspond to Menu's 1 (Main),
        2 (Options), and 3 (Enhancements) (Version 1.2d)

1 Dec0  Updated information in the ALT-F,X macros information to provide more
        information concerning their use. Added dependancy information in menu
        title (Version 1.2e)

1 Dec0  Decided to make ALT-- a supported macro.  Added it to the menu. (version
        1.2f)

2 Dec0  Updated new changes to ALTB macro.  (Version 1.2g)

2 Dec0  Corrected menu information for compliance with earlier changes made to
        the ALTB macro (Version 1.2h)

5 Mar1  Updated some help screens to reflect changes in commonality among macro
        menus.  Added an additional menu selection in print menu to show how the
        specific pages menu works.  (Version 1.3)

14 May1 Updated some of the menus (Version 1.3a)

22 Jun1 Updated menus to keep up with macro modifications. (Version 1.4) 

12 Jul1 Updated to include new macros and modifications to macros.  There are
        now three main menus:  The Main Menu, ALT Key Menu, and the CTRL Key
        menu.  The main menu provides easy access to the other two when the
        macro is first run. Also, if the ENTER key is hit from one of the menu
        selections of the other menus or from the other menu itself the main
        menu is reentered. (Version 2.0)

7 Aug1  Updated to include new macros and modifications to macros.  Added
        sensing for Shift Key menu and menu's for the shift key menus.  Added
        enhancement information on blocking macro.  Removed ALTS macro (which
        was "Killed")  (Version 2.01)

8 Aug1  Had a problem with the help menu. Modifed it so that the keystate would
        be seen in the lower left corner of the screen.  If it is zero the menu
        will work. If it isn't zero it means that capslock, numlock, or scroll
        lock may be on (one or all).  Previous versions would not run if
        typeover was ON - it's fixed with this version. (Version 2.01a)

9 Aug1  Modified macro to be insensitive to the status of capslock, scroll lock,
        numlock and insert (or anything else which might change to overall
        status of the keystate).  Also, once into a category of one of the three
        submenus (ALT, CTRL, or Shift) you may hit any of the three main menu
        keys to go to the desired submenu, or hit the enter key to go to the
        main menu.  This does not work at the submenu level, only in a category
        screen within a submenu.  (Version 2.02)

18 Aug1 Fixed some menus which weren't displaying correctly in 80x25 line mode. 
        Added the Drop Caps to the ALT menu as well as it's menu of information. 
        Added the menu of information to the CTRL S menu (it was an option in
        the menu but the information didn't exist).  Fixed some minor spelling
        errors and updated some menus to correspond to recent changes to some
        macros. (Version 2.03)

8 Sep1  Added information on the character over character macro.  Rearranged the
        menus to reflect to the changes to the ALT/CTRL/Shift Dark Arrow key
        macros.

8 Sep1  Added information on the character over character macro.  Rearranged the
        menus to reflect to the changes to the ALT/CTRL/Shift Dark Arrow key
        macros. (Version 2.03a)

18 Sep1 Rewrote portions of help to correspond to changes made to ASCII Save 
        macro (CTRL A) (Version 2.03b)

21 Sep1 Updated ALTN information per changes to the macro.

ALTL
6 Jul1  NEW.  Provides means of switching between long and short (DOS) names
        when saving a file as well as long names or short names in the LIST
        files display.  Provides the capability to display long names in the
        display and providing long names when saving, Long names in the display
        and short names when saving, short names in the display and long names
        when saving, and finally, short names when saving and short names in the
        display listing. A maximum of two options may be chosen.  The option(s)
        chosen are displayed between brackets in the menu. The backspace key
        will delete the last option in the display. The options chosen are
        activated by hitting Go. (Version 1.0)

15 Jul1 Provided the capability to set the type of files listing and file save
        and then go directly into file save/retrieve macro or the directory
        macro.  NOTE:  if you include the Save file option and the document has
        never been edited (is EMPTY) then you WILL retrieve the last edited file
        (or make an attempt to do so). (Version 2.00)

15 Jul1 Modified the menuing and changed the menu options which chose the file
        save and directory list options. (Version 2.00a)

7 Sep1  Removed the menu option GO.  Hitting the enter key does the same thing. 
        Fixed the menu so that the options chosen don't disappear as soon as the
        enter key is hit. (Version 2.00b)


ALTN
9 Sep0  Rearranged the characters menu for slightly easier reading

15 Sep0 Made the number choices hi-lighted for easier choice making

27 Sep0 Add the category GREEK symbols and rearranged menu as appropriate

28 Nov0 Added the category SET, which includes symbols from Mathematical SET
        theory

6 Dec0  Improved error checking to include tests for alpha character choices. 
        The invalid opton is displayed in the error message.  Decoupled menu
        choice line from the options menu - it is now at the bottom of the
        screen. Added single open and close quote marks to menu.  (Version 2.6b)

5 Mar1  Added checking for active reveal codes.  Turns off while macro is
        running, turns back on at conclusion of macro  (Version 2.6c)

12 Jul1 Changed the menu.  Added a Menu title.  Improved detection of incorrect
        or improper menu choice. (Version 2.7)

8 Aug1  All Greek characters should now be in this macro. A slight modification
        was made to the menu to allow the display of those letters with
        corresponding English counterparts.  In this case, the English letter
        is displayed immediately after the lowercase Greek character and a dash. 
        For instance, -K, where  is the lowercase greek character and -K
        indicates the uppercase Greek character which appears like an English
        counterpart. (Version 2.71)

17 Aug1 Added the ability to put up to 65 options on the command line.  This is
        the maximum number which will fit into the 127 character limit of
        WordPerfect's variables.  Each option is separated by another by a
        space.  The command line is then parsed for all correct options.  Those
        which fail testing are considered bad.  If invalid options are found in
        the command line they are displayed, along with all options made, all
        good options, and the location in the command line of the bad options. 
        This is the Bad Options Statistics Screen.  Hitting the enter key will
        then clear the screen and return to the document. (Version 2.80)

19 Aug1 Fixed a minor problem with a single character option appearing to hang
        the system (it wasn't but the screen wasn't cleaned after the macro was
        done).  Fixed it so that no matter how many options are chosen (1 or
        more) the macro will parse the choice(s) made and work accordingly. 
        Also fixed a minor problem of having two or more spaces back to back. 
        Now, each subsequent space after the first is counted as an invalid
        option. If the first option is a space it too is counted as invalid.
        Prior to this fix the macro would complete it's check of the command
        line and quit.  There was no mention of ANY errors, including when there
        were!  (Version 2.80a)

19 Aug1 Added ability to put a space between characters without decreasing the
        maximum number of options on the command line.  The "add a space"
        character is the "'".  So 14'13 on the command line would get me:  
        instead of an error message or . 14''13 results in:   .  (version
        2.81)

21 Aug1 Modified to change the action of the delimiter. The main delimiter is
        now a comma (,).  However, if a space is used as a delimiter a space is
        placed into the document.  Therefore, if the options chosen are: 1,2 3
        4,5 you'll get   .  However, multiple spaces are legal options,
        multiple commas are legal options, and spaces preceeding or following
        commas are legal.  However, the combination of commas and spaces only
        further limits the maximum number of characters you can choose. Right
        now the maximum number of characters appears to be 129 (I counted
        spaces), or 65 if you don't. (Version 2.90)

25 Aug1 Added some umlauted characters (German language stuff), rearranged the
        menu to be more or less alphabetical. Only blinking characters are now
        the ones associated with categories to aid in finding the right category
        (the menu does appear somewhat crowded...) (Version 2.90b)

17 Sep1 Changed the macro to allow use within comment windows where only COMPOSE
        (and not the ctrl-V version of compose, aka ctrl-2) will work to create
        special characters. Unfortunately, once the screen is cleared of the new 
        characters menu the cursor is reset to the beginning of the comment. 
        (Version 2.91)

21 Sep1  Added a new category: Technical.  Added several characters too.
         Angstrom was placed in technical and degree was moved there. The square
         root sign and hi-bar were added to Math.  These two together make a
         decent looking square root sign. (Version 2.92)


ALTP
5 Sep0  Added identification of current page number, name of document being
        printed, and the item being printed (page or doc)

5 Sep0  Modified to provide user choices of printing a document w/o having to
        know whether it needed generating (for cross-references). It is
        automatically detected now. Rearranged menu.

6 Sep0  Identification as to the document being printed or the current page
        number being printed (blinking message) was reversed from what it should
        have been.  Fixed this problem.

10 Sep0 For slower machines added a message for exit purposes. The built-in time
        delay to allow certain print operations to proceed seems to take forever
        on slow machines.  So, when a cancel operation occurs it likewise took
        a considerable amount of time before the user knew whether or not the
        action was detected.  An EXIT message now occurs which tells the user
        that the message to exit the print program was indeed heard.

10 Sep0 If not in normal editing screen the program quits

12 Sep0 Senses active block and turns it off before continuing.

18 Oct0 Modified Specific Pages menu to be less crowded

18 Oct0 Added capability of printing without answering the Yes/No prompt if the
        document needs generating when printing specific pages in a document

18 Oct0 Added EXIT (F7) detection at User Prompts (Version 2.1d)

16 Dec0 Converted to my standard menu interface (Version 2.2)

16 Dec0 Added ability to sense Reveal Codes.  Will now turn them off if they are
        on when the macro runs and will turn them back on after the macro
        finishes (Version 2.2a)

16 Dec0 Found and fixed a minor operating difference between 132x43 and 80x25
        line modes with respect to sensing the Reveal Codes.  Both modes should
        now sense identically. (Version 2.2b)

18 Dec0 Reworked the menu code to take up less memory. (Version 2.2c)

26 Dec0 Added document path to the menu information.  Minor change to the menu
        (Version 2.3)

5 Jan1  Did some minor code optimization. (Version 2.3a)

2 Feb1  Added access to Printer Control Menu (Version 2.3b)

6 May1  Added changes which would allow reveal codes to be returned to an
        onstate if they were ON prior to execution of the macro. (Version 2.3d)

6 Jun1  Added ability to print a blocked region rather than turning it off when
        sensed.  Now, the user is given the opportunity to print the blocked
        region or proceed to the "normal" print menu.  The ability to print a
        block of text now duplicates a similar procedure in the BLOCKING macro
        (ALTB) (Version 2.40)

16 Jun1 Modified some Specified Pages Menu for easier reading.  Changed warning
        bell to two beeps.  Changed main menu to display document name and path
        together rather than separately. (Version 2.40a)

12 Jul1 Added title to Main Menu. Modified main menu for easier reading and
        reversed the information and options lines.  Modified SELECT PAGES menu
        to return to Main Menu if the Enter key is used without providing any
        page numbers.  (Version 2.41)


ALTR
15 Jan1 Added check for active block detection.  If block is on when this macro
        is executed blocking is turned off before a retrieve action occurs. 
        (Version 1.1a)

3 Feb1  Added check for text at cursor location during a block retrieve.  Text
        is moved over if present and space made available for the block. 
        (Version 1.3)

22 Jun1 Improved sensing of what's at cursor location before dropping text from
        the block buffer. With this change, the macro requires WP51 Interim
        Release 30 Dec 90 or later.  (Version 2.0)

9 Jul1  Improved the ability to sense the type of character (text, punctuation,
        formatting, attributes, or space) at the cursor.  This provides better
        retrieve control of the text in the MOVE buffer.  The macro is now more
        modular than before, making it easier to respond to different cases of
        text at the cursor.  (Version 3.0)

12 Jul1 Added additional sensing of characters at the cusor:  format and
        punctuation. (Version 3.0a) 

14 Jul1 There are now 36 different tests made to determine how to drop text
        retrieved from the move buffer.  This includes straight buffer retrieval
        or for use during a block move or copy operation. (Version 3.10)


ALTS
10 Sep0 Added ability to sub/superscript a character after (to the left of) the
        cursor 

10 Sep0 Changed Search Backward to Search Reverse

10 Sep0 Rearranged menu structure.  

10 Sep0 Added new menu options Low and High

10 Sep0 Option now exists to subscript or superscript a character (not a block)
        to the left of the cursor.

10 Sep0 I allowed a search while the block is active. This feature, however,
        only works in the forward direction in the normal WP editing screen. 
        With this macro you can turn blocking on PRIOR to entering the macro,
        and then with the macro, search forward or reverse to highlight the text
        between where you started and where you ended up.

10 Sep0 Added sensing as to whether blocking was made from right to left (or
        vice-versa) and/or top to bottom (or vice-versa) so that the cursor
        always ends up at the end of the blocked region after the
        sub/superscript action (not at its beginning)

1 Nov0  Rewrote the menu to a common interface

16 Dec0 Added the following spell check options:  Word, Page, Document.  Wrote
        it such that if a word/page/document is checked and found to have no
        errors exit will occur back to the document.  Otherwise, exit is made
        to the WordPerfect spell checking facility (Version 3.4)

18 Dec0 Tweaked some coding.  Messages confirming correctness of item checked
        now include the line below the message (which was not being display
        before).  Version 3.4a)

18 Dec0 Fixed an anomally with how the macro acted when switching between screen
        modes.  It was exiting the macro when doing spell checks after switching
        from 132x43 to 80x25 line mode.  I corrected the problem by exiting the
        spell checker after no errors were found before displaying the no
        problem found type message.   NOTE:  Apparently WordPerfect acts
        slightly differently when checking a word, the page or the document. 
        Not much of a difference but enough to be notice while working on this
        macro. (Version 3.4b)

18 Dec0 Reworked the menu code to take up less memory. (Version 3.4c)

5 Jan1  Did some code optimization. (Version 3.4d)

10 Jan1 Removed spell checking (it's now in ALTB in improved form).  Added
        capability to find hard characters (home space, home tab, etc). 
        Improved coding for super/subscripting for more efficiency and to take
        less memory. (Version 3.4e)

23 Jun1 Capitalizes choices after they are entered instead of checking for both
        lowercase and uppercase choices.  (Version 3.4f)

26 Jun1 Fixed a bug created by earlier changes:  a subroutine was being called
        which didn't exist so that when a block was active the macro would fail
        upon chosing a menu choice (dummy me...I thought I fixed them all and
        missed one!!!)  (Version 3.4g)

12 Jul1 Added title to menu. (Version 3.40h)

5 Aug1  Removed subscript and superscript capability to the blocking macro. 
        This macro was then KILLED and removed from inventory...


ALTV
12 Jan1 Added block sensing to macro.  If block was active when executed nothing
        happened.  Now, blocking is turned off and doc preview is entered. 
        (Version 1.1a)


ALTX
8 Sep0  Modified Menu to allow choice of exit from document or from Wordperfect. 
        Removed final query concerning whether you REALLY wanted to exit from
        Wordperfect

8 Sep0  Improved document edit status to detect a file which has truly been
        edited. If the file was saved no query is given.

8 Sep0  Provided with the capability to add a filename to a previously unnamed
        file through enhancement of ALTF (save file)

8 Sep0  Added detection of a blank file during the exit operation which
        indicates that a filename is not needed and exit from WP is requested

9 Sep0  Added a screen refresh after an error message

10 Sep0 Added sensing of on-going print operations and gives the user the option
        of continuing an exit from WP.  If the user decides not to exit WP an
        exit from the file is made instead.  The significance is with laser
        printers.  An exit in the middle of a print operation could leave paper
        in the middle of the print path.  NOTE:  THIS MACRO IS USABLE TO EXIT
        FROM WP UNDER MANY CIRCUMSTANCES NOT NORMALLY POSSIBLE!!!  VERY
        POWERFUL....

11 Sep0 Senses an active block and turns it off before continuing.

19 Sep0 Added capability to recognize documents which have cross-references.
        Saved/modified status was not checked previously (heck, didn't even know
        there was a difference and WP51 hasn't documented the feature)

25 Sep0 Added a subroutine specifically for a CANCEL key operation.  Before,
        when a CANCEL key was pressed, the macro transferred operation to the
        DONE routine which only rewrote the screen and terminated (ended without
        additional code such as RETURN, BREAK, or QUIT), as it was s'posed to
        do. However, if CANCEL was called at any time other than when the macro
        was first run, the macro would still exit Wordperfect.  Now, CANCEL will
        halt macro execution after it has cleared and rewritten the screen and
        leaving you within the document as if nothing had occurred (like it was
        s'posed to do in the first place)

25 Sep0 Moved a subroutine and placed it within the IF/ENDIF which called it

4 Oct0  The exit from WP is now truly that.  If the other document exists you
        are asked if you want to save it before exit is complete (if it needs
        saving).  A cancel will stop the exit procedure

4 Oct0  Two document exits provided now.  Capital D (for Document) means exit
        the document and go to the next doc if it's not empty.  Lowercase d
        means exit document and stay in that document screen

4 Oct0  If a document is exited, and the other document is not EMPTY, you are
        now switched to the other document

9 Oct0  When the menu came up asking if you wanted to save the modified file the
        cursor was nowhere near the Y/N at the end of the message.  This has now
        been fixed.

9 Oct0  Improved screen appearance.  When a document had been modified, and the
        menu to inform you of that fact came up, it didn't completely overwrite
        the previous message, and therefore detracted from the screen
        appearance.  This has now been fixed.

27 Oct0 All modified documents appear to have an odd number, as reported by the
        {SYSTEM}document~ feature.  I kept discovering new numbers for modified
        documents as my documents added new features, such as columns, tables,
        math columns, cross-references, etc. (and became a tad more
        complicated).  Discovery always occured when I exited a document using
        this macro and losing my work in the process.  Document status checking
        is now performed with a modulo function and testing checks for all
        resulting odd numbers from 1 to 9.  Now, no matter where your cursor is
        in your document, and presumably regardless of the features you have
        placed in your document, this macro will detect whether or not the
        document has been in fact been modified. (Ver 2.6c)

28 Oct0 Added capability to supply information about file in a special file
        which is accessed by ALTF (which allows the retrieval of the last file
        edited).  Information saved includes document path, file name, page and
        line numbers and the position on the line last occupied by the cursor
        (Ver 2.7)

1 Nov0  Will Not obtain Retrieve last edited document information on a
        nameless document during an exit

29 Nov0 Reworked the menu structure to the common user interface of the other
        macros.  Move current file reference information to beginning of macro
        (Version 2.8)

1 Dec0  Made some minor bug fixes and returned the file reference gathering to
        its original position (Version 2.8a)

2 Dec0  Used underlining code to highlight menuing text from standard text to
        avoid confusion as to what was what.  Made a slight modification to the
        print operation detection so that it would properly work.  Didn't test
        correctly before. (Version 2.8b) 

10 Dec0 Did a little coding rearrangement for better structure and coding
        support.  Added name and path of the file detected as modified to the
        exit menu.  (Version 2.9)

18 Dec0 Reworked the menu code to take up less memory. (Version 2.9a)

5 Jan1  Did some code optimization. (Version 2.9b)

9 Jan1  Added detection of type of exit, Document or WordPerfect, for display
        at exit menu of an Unsaved file save Y/N prompt. (Version 2.9c)

11 May1 Reworked the exit-when-print-in-progress portion of the macro.  Previous
        to this the macro attempted (for some reason unsuccessfully) to cancel
        printing during an exit procedure.  The fix involved cancelling the
        print job(s) immediately before a WP session exit was initiated.  A
        problem with the WP EXIT function was "somehow" resolved (the F7 or EXIT
        function wasn't being recognized). Now, the macro works as advertised.
        (Ver 2.10)

12 May1 Found that an exit from a blank document while printing in progress
        wouldn't work correctly.  Oddly enough, using the fix found yesterday
        (using SCREEN SCREEN or CTRL F3 R) before the WP EXIT code let the macro
        "see" the WP EXIT code and now the macro works like it's s'posed to
        (until I find another bug). (Ver 2.10a)

13 May1 Found that other bug.  Rewrote the original macro from scratch to
        "clean" up the original macro.  Moved one subroutine (the one which
        cancels printing) to a safer location and removed some useless code
        (testing code) I'd missed.  Found I still required the SCREEN SCREEN
        command to allow an EXIT to work (found because the EXIT isn't found but
        the NN or NY codes which finish the exit routine would be found in the
        __RTN__.FIL file.  (Version 2.10b)

14 May1 Found and fixed a minor bug.  If the current file was not saved and had
        no name, an exit from WP would ONLY exit to the next document; exit from
        WP would not occur.  Rearranged some code and fixed the problem.
        (Version 2.10c)

30 May1 Minor recoding for smaller size.  Added variables to allow easier
        changing of the directory containing WP51 and/or the WP documents by
        changing the path contained in the variable.  These variables are at the
        start of the macro. (Version 2.10d)

3 Jun1  A maintenance fix had the macro calling the FILES macro.  This changes
        that to ALTF... (Version 2.10e)

12 Jun1 Requires WP51 Interim Release 31Dec90 or later.  The WP51 "cancel all
        print jobs" routine changed with this release and this macro reflects
        that change.  There is no way (that I know of) to determine interim
        release dates within WP51. (Version 2.10g)

19 Jun1 When "D" is pressed to exit current document and go to the next one the
        word "document" is capitalized to indicate the type of document exit was
        chosen. (Version 2.10h)

21 Jun1 The modulo operation was changed from a modulo 10 to a modulo 2 (dummy
        me for not seeing it sooner!)  Now I only need to check for a 1 or a 0
        (and not ALL odds numbers from 1 - 9!) (Version 2.10i)

22 Jun1 A CANCEL during the naming of a file (while in ALTF) now sets an error
        flag used by this macro to halt an exit process initiated.  This is
        important.  For instance, if you were going to exit WordPerfect on a
        file without a name, and you decided to cancel the process during the
        filename request section, you would lose the document.  This
        modification insures that you do not lose the file. (Version 2.10j)

25 Jun1 If Document 2 held the text of a saved document (not modified) and you
        were in Document 1 (which is empty) and hit ALTX you would exit
        WordPerfect immediately.  This change tests the 2nd (other) document to
        see if it's empty. If not it informs you that a WordPerfect exit was
        requested and asks if you wish to continue with the exit procedure.  A
        NO cancels the operation, a YES checks the documents' status to see if
        it needs saving.  An immediate exit occurs if it is not a modified
        document (does not need saving).  If it was modified, you are provided
        the opportunity to save it before the exit procedure continues. 
        (Version 2.11)

12 Jul1 Added title to menu.  (Version 2.11a)

16 Aug1 Minor modification to let the save macro (ALTF) know it was called from
        the exit macro (ALTX). Also did some coding optimization. (Version
        2.11b)

19 Aug1 Fixed a minor problem with the menu display.  When the current document
        is empty but the other one isn't and ALTX is executed the menu (when it
        was displayed on the other document screen) was somewhat confusing (hard
        to read).  This was fixed. (Version 2.11c)

25 Aug1 During WordPerfect exits the macro now saves information on columns to
        allow proper retrieval of documents which have columns. (Version 2.12)

16 Sep1  Modified to determine if timed backup was performed on a modified
         document.  Now, Exit will work correctly in the presence of timed
         backup so that modifications won't be lost.  Additionally, the method
         used to determine the modification status of a document has been
         changed as well.  Testing is now performed at a bit level (AND) rather
         than with a MODULO.  Results are the same. The change to the bit level
         testing was performed because this was the only way to test for timed
         backup. One benefit is that it is slightly more accurate than the
         previous method. (Version 2.13)

21 Sep1  If you aren't in the main editing screen, hitting ALT X will exit to
         it.  For instance, if you're in page preview and ALT X is hit you'll
         be returned directly to the document. (Version 2.13a)


ALT-
1 Dec   NEW.  Decided to make a supported rather than temporary macro. Provides
        for paragraphs/outlines numbering. (version 3.0)

23 Dec  On restarting the paragraph/outline count the menu is redisplayed with
        the NEW COUNT removed and the message [RESET] inserted at the beginning
        of the menu.  This allows the user to specify that paragraph renumbering
        should start and that the user has the opportunity to indicate the level
        of numbering desired. (Version 3.1)

23 Dec  Recoded a little to decrease coding requirments and to make more
        efficient.  (Requires 6/90 interim release or later). (Version 3.1b)

26 Dec  When the option NEW is chosen the range of paragraph numbers is now 0-8
        instead of 1-8.  If 0 is chosen no paragraph number is chosenonly the
        new paragraph definition is entered into the document. (Version 3.1c)

5 Jan1  Did some minor code optimization. (Version 3.1c)

29 May1 Added sensing of reveal codes and active blocking.  Reveal codes is
        turned back on at the conclusion of the macro.  Both reveal codes and
        active blocks are turned of at the start of the macro (Version 3.1d)

29 May1 Recoded for more efficient and smaller program code (Version 3.1e)

13 Jul1 Added a title to the menu. (Version 3.10f)


CTRLA
20 May1 Initial Release of ASCII file save macro (Version 1.00)

20 May1 More descriptive menu displays made. (Version 1.01)

22 May1 Original file name is restored after the ASCII save is complete (Version
        1.02)

23 May1 Allowed the specification of a drive other than the default for ASCII
        file.  Before this mod the ASCII file was stored in the same location
        (path) as the original file (Version 1.03)

24 May1 Modified menus to allow for LONG file names (includes Paths), i.e.
        multi-line menu's (Version 1.04)

24 May1 If the Original file and the ASCII file had the same name the resulting
        file was no longer an ASCII file but an WP51 file.  In the restoration
        of the original filename a file save is executed and this would
        overwrite the just Saved ASCII file!.  This problem was rectified by not
        restoring the original name if both the original and new (ASCII) file
        names were the same. (Version 1.05)

24 May1 Modified the attention getting bells for when a file already exists with
        the name provided or the file has no name when a save is attempted
        (Version 1.06)

24 May1 This fixes the case when the Original name restoration was attemped on
        a file which originally had no name.  Now, the file's new name becomes
        the name supplied at the GIVE NAME Prompt while the ASCII file is the
        new name with the ASCII extension (Version 1.07)

24 May1 A variable at the beginning of the macro assigns the ASCII file
        extension (Version 1.07a)

24 May1 If, when supplying a new file name for the ASCII file, no drive or path
        is supplied the original file's drive and/or path becomes the ASCII
        file's storage path as well.  If a path is supplied it is used instead. 
        Note however, that a "\" will use the root directory of whatever drive
        is currently default (according to the WP51 word processor...this drive
        can change depending on which drive you last did a directory of via
        WP51... (Version 1.08)

24 May1 Modified menu to supply the original file name and the name of the ASCII
        file to which the file is being stored (Version 1.09)

24 May1 Added display of original file name while giving ASCII file a new file
        name.  Also, ASCII file extension is referred to in Menu Prompt (Version
        1.09a)

24 May1 Added capability to overide ASCII extension to allow an storage of an
        ASCII file with a user supplied file name (with or without a path or
        extension) (Version 1.10)

25 May1 Rewrote macro.  Added additional testing for file name.  If file being
        stored results in an ASCII file of the same name as the original name
        with the same location (drive and/or path) that ASCII file will remain
        an ASCII file and will not be overwritten during a filename reset (to
        get to original filename) (Version 1.11)

25 May1 Modified the file identification screen a small amount to decrease its
        size (Version 1.11a)

26 May1 Fixed a problem related to the root directory.  As originally written,
        if a user decided to rename the file and used the "\" at the beginning
        of the filename (i.e. did not specify a drive name as part of the path
        for the file) that file would be stored on the root directory of the
        drive on which a directory (or LIST) was last performed.  This was
        resolved to default to the root directory of the drive on which the
        original file read from. (Version 1.11b)

26 May1 Files must have names before an ASCII store is performed.  The first
        menu informs the user of the default ASCII filename and the original
        file name (and asks the user's OK to use the provided filename). 
        However, until this fix, the reported original file name was no name at
        all!  Now, once the user has named the file (which originally had none)
        that name is reported exactly as the user provided. (Version 1.11c)

2 Jun1  Removed some excess code at the end of the macro.  Revised the prompt
        for identifying files which already exist from three lines to just two. 
        Also, added the path to the message to better identify which file
        already existed.  (Version 1.11d)

2 Jun1  Macro had a tendency NOT to accept a "Yes" answer when Okaying the
        choice of filename.  The user would then be requested to supply a
        filename!  Usually rerunning the macro resulted in the answer being
        accepted.  A slight modification was made to overcome that madding
        occurrence. (Version 1.11e)

3 Jun1  Modified to account for use of LONG DOCUMENT NAMES (Version 1.11f)

6 Jun1  Pre-Dec 90 version.  The screen would blank for a seemingly long time
        while the macro determines the status of Long or Short directory.  A
        message was provided to "tide" the user over.  Also, the screen was
        prevented from blanking by placing a {DISPLAY OFF} at the beginning of
        the macro  (Version 1.11f, PD)

12 Jul1 Added Title to menu.  Minor modification made to menu. Modified for use
        with WP 5.1 releases from Dec 90 on. (Version 1.11g)

18 Aug1 Tweaked the code to reduce program size. If you tried to change the
        default filename extension of the filename you initially provided to the
        program, there was a distinct possibility that the "-" would appear as
        part of the filename when the file was finally saved.  This was fixed. 
        Also fixed was the tendency of the macro to rewrite the screen for all
        responses other than Y or N to the question "Replace it? (Y/N)". 
        (Version 1.2)

18 Sep1  Reworked the menu to be less ambiguous.  New menu tells user to hit the
         ENTER key to save the file under the default name or to use cancel to
         stop the save.  The RENAME option has now been moved to the main menu
to
         allow the user to rename the default ASCII file easier.  Previous to
         this the only way to rename the file was if the same named file already
         existed. (Version 1.2a)


CTRLD
22 Dec0 Provides options to chose a date format for inserting into a document. 
        These formats include Standard (mm dd, yy), Military (dd mm yy), and
        Contracting (yy mm dd).  Additionally, the name of the month may be a
        three letter abbreviation or fully written out.  The year may be the
        last two digits (e.g. 91) or the entire year (e.g. 1991).  (Version
        2.00a)

12 Jul1 Support provided.  NEW.  Added title to menu.  (Version 2.00b)

6 Aug1  Completely rewritten and restructured.  Initial menu allows date format
        setup or chosing either a textual or date code.  If setup is entered,
        the choice of date format (military, contracting, or standard) becomes
        the "default" date format.  A default date may be chosen over the basic
        three date types (it'll be one of the three basic formats).  Also, you
        may chose padded dates (padded with a "0" or a space for numbers less
        than 10) or ordinary (normal) numbering.  During any of the menu's,
        except the initial menu, an exit to the previous menu level will occur. 
        The default date format will appear once a choice of entering either a
        textual or date code date is made.  The date is entered at the current
        cursor location. (Version 3.0)

18 Aug1 Improved menu for operation within 80 column mode.  Cleaned up some
        spelling errors.  Tweaked the code a little bit.  (Version 3.00a)

CTRLO
23 Aug1 NEW.  Enter two characters. Leave the cursor at the right of the last
        character entered and run this macro.  The macro will then take the last
        character entered and move it into position directly over the character
        just previous to it.  Useful for making Tensor notation. For instance,
        H.  Note: it's specific to the font you are currently using because it
        uses absolute measurements for the distances between characters.  If you
        switch from times roman to courier or vice versa, for instance, you'll
        need to redo each equation you've created with this macro.  (Version
        1.2)

30 Aug1 I had done math columns (for floating point..aka real numbers) to
        calculate the necessary adjustments...got carried away.  This version
        removes any reliance upon scalable font stuff (I had created a small
        font to minimize overlap of the numbers at each tab).  This is a
        straight forward simple math approach (which should have been done to
        begin with!).  The second character is moved one-half line up.  This is
        fine except for monospaced fonts which will require a small adjustment
        noted within the macro.  If you are using a monospaced font like Courier
        (you poor bastard) then modify the macro with this value to get this
        macro to work for you.  If you use a proportional font NO PROBLEM!!! The
        macro is setup for proportional fonts.  NOTE: (1) WordPerfect
        automatically adds two points leading (leading refers to the space
        between lines, basically) to each proportional font character.  No
        leading is added for monospaced fonts, hence, the reason for the
        modification to an adjustment variable. (2) NOT meant for general
        alphabetical characters over alphabetical characters.  It is meant for
        a limited class of usage (as in vectors or tensor notation) (Version
        1.3)


CTRLS
7 May1  Places a superscripted value over a supscripted value.  Example:  Eab. 
        The macro places a space directly after the last value so the user can
        continue typing.  Also, the macro is independent of font size and uses
        no position sensitive codes.  Spacing adjustment is automatically
        calculated for proper placement of text. (Version 1.0)

8 May1  Removed use of special characters as location markers. (Version 1.1)

12 Jul1 Added a title to the menu.  Blocking status restored at the conclusion
        of the macro. Previously blocking was just turned off. (Version 1.10b)

18 Aug1 Decreased program size by tweaking the code a tad. (version 1.10c)

23 Aug1 In my last modification I somehow botched it when I was "cleaning up"
        the code and deleted something I shouldn't have.  I fixed that. I also
        fixed a minor problem of text running into the superscripted or
        subscripted text.  The macro now does floating point math to decide how
        much to adjust left or right rather than integer math.  (Version 1.2)

30 Aug1 Went back to strictly integer math.  Got carried away with the math
        columns but at the same time forced a dependancy upon scalable fonts to
        keep math columns from overlapping.  There's no such dependancy now (and
        much simpler). (Version 1.3)


Shift DARK Right Arrow
12 Jul1 Supported Now.  Moves to beginning of next sentence. (Version 1.01)

11 Aug1 If blocking is on this macro will maintain blocking from the start of
        the blocking to the beginning of the next sentence moved to.  NOTE: 
        There is a minor limitation.  If you should change the page numbering
        in the document don't use this macro near the page breaks...you may end
        up WAY down the next page somewhere.  The purpose of this macro, when
        used with blocking on, is primarily to block small regions of text
        (primarily sentences).  If blocking is off it works as before: moves to
        the beginning of the next sentence. (Version 2.00)

11 Aug1 Improved the speed of operation considerabley and tightened up the code
        some (Version 2.01)

11 Aug1 Substantially improved the speed of operation and removed page numbering
        dependancy (Version 2.02)

11 Aug1 Modified for compatibilty with the CTRL DARK Left Arrow function when
        blocking is active and still retain speed of operation. (Version 2.02a)

7 Sep1  Originally CTRL Dark Right Arrow.  Added code to sense the shift key
        pressed.  If the shift key is pressed the cursor will move to the
        beginning of the next sentence.  If not it moves to the next character.
        (Version 2.03)

12 Sep1 There was a problem with this key not working while in a short directory
        listing.  This was fixed and now works normally. (Version 2.03a)


Shift DARK Left Arrow
12 Jul1 Supported Now.  Moves to beginning of previous sentence. (Version 1.01)

11 Aug1 Rewrote to allow use with active blocks.  It's also compatible with
        Shift Dark Left Arrow with blocking active (Version 2.00)

7 Sep1  Originally CTRL Dark Left Arrow.  Added code to sense the shift key
        pressed.  If the shift key is pressed the cursor will move to the start
        of the previous sentence.  If not it moves to the previous character.
        (Version 2.01)

12 Sep1 There was a problem with this key not working while in a short directory
        listing.  This was fixed and now works normally. (Version 2.01a)


CTRL DARK Left Arrow
27 Jan1 NEW. Cursor was stopping at the first character of a paragraph which
        began with one or more tab type characters.  This is now fixed. 
        (Version 1.0a)

24 Jun  Supplied with previous macro sets but not directly mentioned/supported. 
        Completely rewritten.  Will move cursor to the end of the word to the
        left of current word.  Cursor will move through all formatting code
        until it reaches the actual text of the word (formatting code includes
        font size and attributes, tabs, and other such material)  (Version
        2.00a)

7 Sep1  Formerly ALT Dark Left Arrow.  No changes made.


CTRL DARK Right Arrow
27 Jan1 NEW. Modified from a macro in WP Magazine. Tweaked code a small amount. 
        (Version 1.0b)

24 Jun1 Supplied with previous macro sets but not directly mentioned/supported. 
        Completely rewritten.  Will move cursor to the end of the current word. 
        Cursor will move the through the word until it reaches the actual text
        of the word (formatting code includes font size and attributes, tabs,
        and other such material)  (Version 2.00a)

25 Jun1 Sometimes certain codes seemed to confuse the macro and it would
        continually go to the end of the current word (it'd loop back on itself
        and go back to the end of the same word).  Fixed this minor glitch. 
        (Version 2.00b)

26 Jun1 Macro is now more table and columns aware when jumping to the end of
        words.  (Version 2.00c)

7 Sep1  Formerly ALT Dark Right Arrow.  No changes made.

11 Sep1 Completely rewritten.  Previous version had troubles with some types of
        formatting or enhancement codes embedded within a word.  This version
        removes most, if not all, of those problems.  Previous version would
        ALWAYS move through a word beginning with the first character of that
        word.  This version goes to the end of the word starting from the
        current cursor location.  (Version 3.0)

12 Sep1 Improved formatting code sensing to include hard spaces, tabs, page
        breaks, etc.  (Version 3.01)




ALT DARK Left Arrow
3 Aug1  (NEW) Places cursor at previous column or table cell (Version 1.0)

9 Aug1  The macro would work regardless of whether the shift key was pressed or
        not.  Therefore, the macro was completely rewritten to sense the shift
        key press.  This way, if while in a column, for instance, you press the
        dark left arrow it will move the cursor left one character.  If you hit
        the shift left arrow it will move the cursor to the previous column (if
        it exists) (Version 2.0)

7 Sep1  Formerly the dark left arrow key.  Removed sensing of shift key.

ALT DARK Right Arrow
3 Aug1  (NEW) Places cursor at next column or table cell (Version 1.0)

9 Aug1  The macro would work regardless of whether the shift key was pressed or
        not.  Therefore, the macro was completely rewritten to sense the shift
        key press.  This way, if while in a column, for instance, you press the
        dark right arrow it will move the cursor right one character.  If you
        hit the shift right arrow it will move the cursor to the next column (if
        it exists) (Version 2.0)

7 Sep1  Formerly the dark right arrow key.  Removed sensing of shift key.


CTRL Del
12 Jul1 Supported Now.  Deletes a block of text without prompts or the current
        word if blocking isn't active. (Version 1.0a)


ALT[  TRANSPOSE LEFT (chains to ALT])
30 May1 First public release finally recognized (I use it alot). Transposes
        everything it can find left one character position.  (Version 1.0)

1 Jun1  Removed everything except a flag variable and the CHAIN (executes and
        transfers control) to the transpose right macro. (Vers 2.0)


ALT]  TRANSPOSE RIGHT/LEFT
30 May1 First publicly acknowledged release.  Earlier version had a problem
        transposing right any formatting characters. This version fixes that
        problem.  NOTE: This macro is also a standalone called "TR.WPM"
        (Transpose Right). (Version 1.3)

1 Jun1  Made this macro recognize certain formatting codes.  Those which are
        transposable are transposed, those which aren't aren't. (version 2.0)

24 Jun1 If transpose was attempted at the end of a document the last deleted
        block would appear instead. This only occured if the cursor was at the
        VERY end of the document.  The same thing would occur if someone tried
        to transpose the very first character of the document to the left when
        the cursor was at the very start of a document. This fixes that problem. 
        (Version 2.01)

ENVPUB
6 Sep0  Modified macro so that when the last record is deleted and another
        record is added, record 1 is not kept as a blank record.

7 Sep0  Redid the menuing system.  Editing is now done from the main menu after
        data entry - not as a separate function as in previous versions

8 Sep0  Changed the main menu to remove numbered menu options

8 Sep0  Added print option. Printing activity is through ALTP macro.

8 Sep0  Provided a list option which previews every record in file

7 Sep0  Tidied up the record entry system.  Added some checks due to some
        programming quirks.

6 Sep0  When a record is deleted, the previous record is now displayed in its
        place.

10 Sep0 Added alphabetical options for A) PO BOX and B) Address line to the
        numerical choices already available

10 Sep0 Fixed a programming error which would allow certain operations to occur
        even though they weren't part of the menu leaving the program in an
        infinite loop.

15 Sep0 Viewing of a record now defaults to full page view instead of the
        default view mode you had set when you last viewed a page

29 Sep0 I added an option which allows reversing the order of the PO Box and
        ADDRess lines in an address which has these two lines.  When the reverse
        is performed the address becomes a two line address location (i.e.:
        Name; address line 1; address line 2; city, state  zip) (Ver 3.8a)

29 Sep0 Added an additional address option.  Now you can enter two line address
        locations (address line one and address line 2) to the name and city,
        state, zip lines. (Ver 3.8)

29 Sep0 The List all records option was modified to ensure that viewing was
        always done as a full page rather than the default view level (which
        might have been at half page or quarter page zoom).  This ensures a full
        view of the current envelope. (Ver 3.8b)

12 Oct0 Simplified some of the coding which tested the text over which the
        cursor was placed.  This change should speed up the macro operation
        some.

LTRHD
18 Oct0 Added capability to place a three or four line address in lieu of a
        single line mail stop into the TO: portion of the REPLY TO ATTENTION
        OF:, SUBJECT: and TO: blocks

22 Dec0 Made some simple changes to the way the menu is displayed and some minor
        changes to the tab locations and specific locations of the three
        letterhead lines. (Ver 2.5c)

14 May1 Turns off reveal codes during execution.  Made baseline for typesetters
        and line height fixed for headings, turned baseline for typesetters off
        and made line height auto for body text.  Put spaces between headings
        on document for visual effect only. (Version 2.6a)


MEMO
10 Oct0 Simple Memorandum for (Record, Miscellaneous, etc) generator.  Requests
        the type of memo, subject of the memo and name of the person generating
        it.  Places it in the document together with the current date. (Ver 2.6)

22 Dec0 Minor mods. (Version 2.5c)

14 May1 Revised Screen Menuing.  Made it recognize the lack of a FROM address
        so that it does not put a FROM into the memo if one doesn't exist. 
        Also, the Memo macro turns off REVEAL CODES during macro execution. 
        (Ver 2.6)


RXMEM (CTRL PgDn)
20 Dec0 NEW.  Retrieve a memory variable. (Version 1.0)

12 Jul1 Modified menu. Improved detection of invalid named variable. (Version
        1.0a)


Addendum - WL Addition: (for WL supplied version only)


ALTD  This macro is modified for use on the LAN with ELMO as it's NODE.  The
      network drive's M and N are recognized.  If drive N is chosen another menu
      for access to each of its subdirectories comes up.  If a drive is chosen
      which does not exist an error condition is sensed indicating either that
      the drive does not exist or, if in the case of the local area network, it
      is not and active drive.

  As Wordperfect is sensitive to you calling a drive which does not exist (or
  which died while you were using Wordperfect) only the local hard drive and its
  subdirectories are called absolutely (i.E. List=subdirname, where list is
  normally accessed by hitting F5 and subdirname is the path and name of the
  subdirectory you wish wp to access henceforth when list is hit.)

  Drive C is assumed to call the document subdirectory you have installed WP
  with.  All calls to drives use the default directory of the drive being
  called.

  ALTD exists as a user modifiable macro should you wish a directory macro but
  do not wish to use the  defined directory macro, ALTD. (Note: this macro has
  no dependancies upon other macros).

KNOWN Problems.
  a.A blocked word at the end of a document may include punctuation. Normally,
punctuation is not included when a word is blocked (except in blocking multiple
words).
  b.Extensive testing in multiple columns or within table cells has not been
performed.  However, initial tests indicate no problems.