The XDME Excelsior Suite v1.20 by Fergus Duniho Copyright © 1994 Fergus Duniho DESCRIPTION XES is the new name for XDMD, which stood for "XDME Macros by Duniho." I changed the name, because I want to encourage other people to contribute to it. XES is the successor to DMD, which was released for the last time a couple years ago. I recently released XDME v1.00, and I sent Aaron Digulla, the main author of XDME, a copy of XDMD v1.10. XES picks up the version numbering from XDME. XES is an integrated suite of macros, menus, keymappings, programs, and ARexx scripts for XDME. Most of XES's more commonly used features can be accessed from the menus. Here is a list of some of XES's features. Read the HISTORY for more of its features. I. Outlining II. Localized major modes A. Text mode B. Two C modes, ANSI and K&R, complete with automatic line indentation. C. A general programming mode for other languages. D. An outline mode for writing outlines, like this one. E. A proofs mode for writing logical proofs. (I'm a philosophy major.) III. Automatic major mode selection upon loading. IV. The maintenance of a "Windows" menu that keeps track of all of XDME's windows. V. Different styles of editing integrated with each other. A. Cutting and copying for all block types. B. Regions and rectangles, ala Emacs. VI. XPK support, including automatic packing or encryption upon saving, and decryption with a password requester. VII. The maintenance of a personal diary, complete with password encryption and decryption. VIII. Spellchecking via the AlphaSpell program and its accompanying dictionary. IX. Automatic pagination via the Paginate program. X. Various find and replace routines, including a Find requester and a Replace requester. The Replace requester lets you replace the word at the cursor, every occurance of the find string in the text, or every occurance in a block. XI. Various Emacs like keymappings. XII. Sundry other features. INSTALLATION To install XES, click on the install icon. This will copy files to your S:, REXX:, and C: drawers. If you don't want something overwritten, such as your current .edrc file, back it up first. Copy the dictionary to your harddrive, to a high density disk, or to a double sided diskspare disk. It is too large for a normal Amiga double sided disk. Change the value of $Dict in ".edrc" and the values of path and name in "Diary.xdme" to suit your own needs. To make full use of all its features, you will need some programs and libraries that I haven't included with XDMD. These include "xpack," "RexxArpLibrary.library," "arp.library," "rexxreqtools.library," "xpkmaster.library," various xpk compressor libraries, "rexxmast," and "move." HISTORY I. 29 October 1994 - XDMD v1.00 released. II. 1 November 1994 - XDMD v1.10 A. By taking a short detour through ARexx, I implemented arrays in XDME. The macros "set-array," "get-array," "free-array," "unset-array," and "unset-member" all work with arrays. The ARexx script LoadArray loads a file into an array. B. I used the array capability to redo how spell-checking works in XDME. Instead of using a requester, it uses LoadArray to put the list of unfound words into an array. It then redefines some keys on the numeric keypad. 1. nk1 goes to the last word in the array. 2. nk7 goes to the first word in the array. 3. nk+ moves forward through the array. 4. nk- moves backwards through the array. 5. nk2, nk4, nk6, and nk8 work as cursor keys. 6. nk3 and nk9 search forwards and backwards for the find string, which gets set to the current word in the array whenever you move through the array. 7. nk( puts the numeric keypad back in number mode. C. Yesterday, before I figured out how to implement arrays, I did some new spell-checking routines with twin variable stacks. I left the code in .edrc for anyone interested in looking at it. 1. I added the "empty-stack" macro, because "purgevar" doesn't work. D. I fixed some bugs in s-bs and s-del. I added a-d, which works like M-d in Emacs. 1. I added the "delstr" macro. E. I reset toggle 0 and set toggle 1, so that I can use variables as flags with "if," "ifelse," and "while." F. I added some numeric keypad modes. 1. "keypad-numbers" - your ordinary numeric keypad 2. "keypad-move" - the cursor movements written on the front. nk5 recenters the screen. 3. "keypad-spell" - the mode for spell checking, which I described earlier. III. 9 November 1994 - XES v1.20 A. Overhauled the menus. 1. Checkmarks indicate whether different settings are set. These get updated for whichever window you are in if you change windows with the menu. 2. Amiga key symbols have replaced "A-"s. 3. The menus have been rearranged somewhat. B. New macros: 1. "Intcmp" macro compares two numbers. With its help, nk+ and nk- never take you out of bounds when spell-checking. 2. "Prev2" macro serches backwards for the closest of two different strings. 3. "Prevf" macro searches backwards for a string, and it sets a flag if the search fails. 4. "Pos" takes a column and line number as arguments and goes there. 5. "Pos-line" indents the current line n columns from the left. 6. "Text-format" formats a paragraph according to values stored in $indcol and $parcol. $Indcol indicates how much the first line of a paragraph should be indented. The outlining macros set these values and use text-format. i. "Setindcol" sets the value of $indcol. C. New major modes: 1. Fundamental - What used to be called "Programming." 2. Programming - The tab key indents code in a general way that is helpful for programming in any language. Use a more specific mode if one is available for the language you are programming in. 3. ARexx - The tab key properly indents ARexx code so long as the strings "do" and "select" are not parts of longer strings in the code. 4. Manual - For writing manuals. D. Miscellaneous changes here and there. COPYRIGHT The dictionary is public domain. Everything else in the archive is copyright © 1994 by Fergus Duniho. XES is freeware. DISTRIBUTABILITY You may freely distribute this archive so long as you leave it unchanged and make no profit from its distribution. Sale of XDMD is strictly prohibited. DISCLAIMER There is no guarantee that XDMD will do anything you want it to. I am not responsible for any damage that might result from using XDMD. You use it entirely at your own risk. ABOUT THE AUTHOR I am Fergus Duniho. I am also the author of the DDLI, a computerized personality indicator. Get ddli341.lha from the aminet and try it out.