home *** CD-ROM | disk | FTP | other *** search
/ Beijing Paradise BBS Backup / PARADISE.ISO / software / BBSDOORW / AAEMA95A.ZIP / README < prev   
Encoding:
INI File  |  1995-10-10  |  32.2 KB  |  509 lines

  1. [This file is README]
  2.  
  3. This is the 10 Oct 1995 version of the PC screen text editor AAEMACS written by
  4. A.Appleyard, E28d, Materials Science, UMIST, Manchester 1, England (email:
  5. A.APPLEYARD@FS2.MT.UMIST.AC.UK) as .EXE binary and for compiling by Gnu C++. It
  6. needs an 80386-based IBM-compatible PC or PS/2. For information on Gnu C++,
  7. contact Mr.Delorie (DJ@CTRON.COM). The files EMACS.EXE and FINDMODE.EXE each
  8. include a copy of the Gnu C++ loader BIN\GO32.EXE, so matter including these
  9. .EXE files should not change hands in exchange for money, only free.
  10. -------------------------------------------------------------------------------
  11. AAEMACS (and other Gnu C programs) will not run if the PC is in V86 mode with no
  12. way to get back to real mode: thus it not run if EMM386 with the NOEMS option
  13. has been called in that PC since it was booted last. If on being called, AAEMACS
  14. dies part way through saying that it can't read file INFO.DAT, try inserting the
  15. line   EMM386 ON   in your C:\AUTOEXEC.BAT and rebooting.
  16. -------------------------------------------------------------------------------
  17. Disclaimer: This software is distributed <without any warranty>; without even
  18. the implied warranty of <merchantability> or <fitness for a particular purpose>.
  19. In particular, I am not responsible for the consequences of other people
  20. altering a copy of the source form and then recompiling and running the result.
  21. --------------------------------------------------------------------------------
  22. If you want to try to port AAEMACS to other C++ compilers, I <<<CAN'T>>>
  23. guarantee the results! In particular, be wary wherever I have put a comment
  24. starting with `/****'.
  25. -------------------------------------------------------------------------------
  26. AAEMACS includes these files:-
  27. -- information files:-
  28. MACROS.HLP      information file about format of AAEMACS macro files
  29. README          this file
  30. WISHLIST        things that I may get around to doing
  31. EXAMPLES        examples
  32. HISTORY         list of past alterations and corrections
  33. -- files needed to run AAEMACS:-
  34. DICT            dictionary for spelling checker
  35. EMACS.EXE       AAEMACS assembled and ready for running
  36. EMACS.ICO       Windows icon (a diver with a blowtorch)
  37. FINDMODE.CC     Gnu C program to find current and possible screen modes
  38. FINDMODE.EXE    ditto, compiled
  39. HELP            one line of information for each bound key
  40. HELP.BIG        longer information for all user subroutines and bound keys
  41. INFO.DAT        some information about your PC that AAEMACS needs
  42. -- files needed to compile AAEMACS:-
  43. ASSEMBLE.BAT    to link AAEMACS together after compiling its parts
  44. COMPILAL.BAT    to compile all parts of AAEMACS (I don't use MAKE)
  45. DISPLAY.CC      Emacs source: subroutines to display file on screen
  46. EM.CC           Emacs source: lots of little subroutines
  47. EM.H            Emacs source: matter #include'd by all parts
  48. KEYF.CC         Emacs source: subroutines which are bound to keys
  49. CC.CC        Emacs source: more subroutines which are bound to keys
  50. MACROS.CC       Emacs source: re macros
  51. MAIN.CC         Emacs source: main() and obey()
  52. -------------------------------------------------------------------------------
  53. [To install AAEMACS]
  54. As AAEMACS was compiled by Gnu C++, your PC must be in REAL mode. So, AAEMACS
  55. may not run if e.g. \CONFIG.SYS contains a line `device=\dos\himem.sys' to
  56. reserve areas of store and reset mode for Windows.
  57. Create a directory to keep AAEMACS on. CHDIR to that directory.
  58. Copy the "files needed to run AAEMACS" onto that directory.
  59. In your \AUTOEXEC.BAT file insert this line (`AAEMACS' must be UPPERCASE):-
  60.   SET AAEMACS=C:\AM
  61. (with C:\AM replaced by drive & name of the directory where you put AAEMACS)
  62.  
  63. Alter your copy of file INFO.DAT according to peculiarities of your PC thus:-
  64. Lines 1 to end: one line for each alt and special key code (i.e. codes that the
  65. interrupt `AH=7, AL=0, int 21hex' returns first 0 then a value for) that your
  66. keyboard can read. (There is a list below of what these codes return on my PC:
  67. check this list with your own keyboard's specifications in its manual):-
  68.   chars  1 to  3: decimal value returned by key
  69.   chars  5 to 19: name to refer to key by. (Letters & digits only, letter first)
  70.   chars 21 to 24: short code for this key (|=shift, ^=ctrl, *=alt, !=special)
  71.  
  72. If you want/need to recompile AAEMACS yourself:-
  73. Copy also the "files needed to compile AAEMACS" onto your directory for AAEMACS.
  74. In line 2 of your copy of ASSEMBLE.BAT, replace `c:\gcc\bin\go32.exe' by the
  75.   full filename with drive and directory of your copy of Gnu C's file GO32.EXE .
  76. Type COMPILAL
  77.   This creates the object files CC.O DISPLAY.O EM.O KEYF.O MAIN.O MACROS.O
  78. Type ASSEMBLE
  79.   This links the object files, creating binary file EMACS.EXE (I don't use MAKE)
  80. -------------------------------------------------------------------------------
  81. [Calling AAEMACS]
  82. (Replace C:\AM\EMACS by whatever is needed to call your copy of EMACS.EXE)
  83. To edit file xxx, type C:\AM\EMACS xxx
  84. If xxx is omitted, AAEMACS shows a menu of all files in the current directory.
  85. If xxx is a directory, AAEMACS shows a menu of all files in that directory.
  86. -------------------------------------------------------------------------------
  87. [Setting up a quick way to call AAEMACS]
  88. On your system macro directory create a file \DOS\EM.BAT containing this line:-
  89.   %AAEMACS%\EMACS %1 %2 %3 %4 %5 %6 %7 %8
  90. (And set AAEMACS in your AUTOEXEC.BAT as above.) Then:-
  91. Typing   EM       will enter AAEMACS with menu of files in current directory.
  92. Typing   EM xxx   will enter AAEMACS to edit the file xxx.
  93. -------------------------------------------------------------------------------
  94. (Typing a printable key by itself always inserts or overlays that character.)
  95. Short information about each keybinding is in file HELP .
  96. Full information about each subroutine and keybinding is in file HELP.BIG .
  97. Typing ctrl-_ gets help according to what key you type next:-
  98. ?   this information
  99. a   all lines in file HELP which contain a specified string
  100. d   help about use of special keys in directory menus
  101. i   help about use of special keys in incremental search
  102. L   explanation of symbols used in help information
  103. l   menu to call any one subroutine or get long help about it
  104. m   help about magic characters
  105. o   help about allowed operator uses in macros
  106. r   help about the replace commands
  107. s   help about use of alt- and special keys when inputting a string argument
  108. (Any other keysequence gets one-line help about that keysequence)
  109. One-line help output overwrites the mode line. The next keystroke is treated as
  110.   a normal AAEMACS command and also refreshes the mode line.
  111. Other help output overwrites the screen display. Afterwards: ctrl-_ gets more
  112.   help, any other character merely exits from `help'
  113. -------------------------------------------------------------------------------
  114. Effect of alt- and special keys in incremental search:-
  115. insert     look again for this same string
  116. delete     cancel effect of typing last displayed character
  117. alt_end    abort search
  118. pagedown   exit from search
  119. alt_ret    look for CR stored as byte (not as bit) in AAEMACS's line image
  120. ret or ctrl-J or ctrl-M    look for end-of-line
  121. (NB. The incremental search string can't be > 64 chars long)
  122. -------------------------------------------------------------------------------
  123. Effect of replies to `shall I replace here?' in replace:-
  124. space      yes and look for the next replacing   or left mouse button
  125. N  or  n   no  and look for the next replacing   or middle or right mouse button
  126. .          yes and exit
  127. alt_end    no  and exit
  128. end        no  and exit and leave the cursor here
  129. -------------------------------------------------------------------------------
  130. Special keys as used when inputting string arguments:-
  131. printing & control chars & space & newline go into the string argument
  132. alt-B          then keysequence bound to buffer, inserts that buffer's name
  133. alt-C          inserts the current buffer's name
  134. alt-K          then keysequence: inserts that keysequence's name
  135. alt-R          in 2nd arg of replace commands, insert 1st arg just entered
  136. alt-Y          insert last kill
  137. delete         delete this character (at end of string, previous character)
  138. alt_delete     delete previous character
  139. left-arrow     go left one character
  140. right-arrow    go right one character
  141. home           go to start of string
  142. end            go to end of string. If first keystroke, do not lose old string
  143. alt_end        abort the command that asked for this string argument
  144. ctrl_tab       menu to input a character
  145. F1             change char from normal (cyan) to magic (yellow) or vice-versa
  146. F2             ditto but previous character (usually the character just typed)
  147. F3             start or stop typing chars as magic
  148. F4             get menu of these options
  149. pagedown       accept string as it is
  150. alt_ret        put a ctrl-M (CR) (carriage-return) into the string as a byte
  151. ret or ctrlJ or ctrlM    put a ctrl-J (LF) (end-of-line) into the string
  152. -------------------------------------------------------------------------------
  153. Effect of alt- and special keys in directory-menus:-
  154. up-arrow   move pointer up one entry in menu
  155. down-arrow move pointer down one entry in menu
  156. pageup     move pointer up a screenful in menu
  157. pagedown   move pointer down a screenful in menu
  158. insert     choose new file (you will be asked for its name)
  159. ctrlinsert create new directory (you will be asked for its name)
  160. delete     delete this PC file or directory (if directory, must be empty)
  161. home       go to parent directory
  162. alt-K      copy this directory to kill ring (with alt-O & with ctrl-X ctrl-F)
  163. ctrl_K     copy this file's full pathname into a kill
  164. alt-R      rename file (not buffer)
  165. alt-del    drop this file's buffer, if it has one
  166. ctrl-N     sort by name
  167. ctrl-S     sort by size
  168. ctrl-D     sort by date
  169. ctrl-X     don't sort
  170. alt_end    abort
  171. return     choose this file                 or left mouse button
  172. F1         get submenu of these commands    or right mouse button
  173. -------------------------------------------------------------------------------
  174. Effect of magic characters (which show as bright yellow) in searching:-
  175. .          any one character except LF
  176. ,          any one letter or number or _
  177. space      one or more spaces and/or tabs   (Note how magic space is shown)
  178. tab        one or more spaces and/or tabs and/or LF's
  179. |          separates alternatives
  180. [     ]    start & end of a set of alternatives
  181. #          any one character not a letter or number or `_'
  182. \          beginning or end of file
  183. /          LF or beginning or end of file
  184. {     }    set start & end of `string found' (default = all matched chars)
  185. lowercase letter       uppercase or lowercase of that letter
  186. =          the rest of the current line (not any LF at its end)
  187. Magic search is quicker if the first character in the search string is not magic
  188. -------------------------------------------------------------------------------
  189. Note: When AAEMACS writes a buffer to an existing file, it overwrites the file
  190. at once. It does not `create a new file, then delete the old file'. Therefore:-
  191. (a) IMPORTANT: Breaking in (e.g. by typing ctrl-C) during writing a file loses
  192.     both old and new forms of the file. Always keep backup copies of files!
  193. (b) Unlike in some emacses, there does not have to be enough spare disk space
  194.     for the old and new forms of the file to exist at the same time. But if the
  195.     new version is longer than the old version and thus overfills the disk, you
  196.     have lost the old version and not got all the new version. Keep backups!
  197. (c) The file's directory's entries stay in the same order.
  198. (d) AAEMACS does not automatically save old versions of files.
  199.     But you should separately keep your own security copies of files anyway,
  200.     in case your computer goes wrong or gets a virus or whatever.
  201.  
  202. AAEMACS uses colours thus:-
  203. white                   ordinary buffer display
  204. red                     mostly for fault remarks
  205. magenta background      matter just yanked or moved; matter just found by search
  206. cyan                    information; matter being input that a subroutine wanted
  207. yellow                  magic chars in matter being input that a subr wanted
  208. orange                  menus etc that overlay the screen display
  209. red arrowheads          (in fold-long-lines mode) here this line is folded
  210.      (ascii 17 & 16)    (otherwise) here this line goes off the screen
  211.  
  212.   When replying (in cyan) to a subroutine question:-
  213.   At the start the reply buffer contains whatever was in it before (perhaps with
  214. trailing spaces: beware: typing `end' key will show where any trailing spaces
  215. finish); and this matter becomes the reply if the reply is terminated at once.
  216. The reply buffer is emptied when the first key is pressed as part of the current
  217. reply, unless that key is `end'. Magic characters show as bright yellow.
  218.   If a filename is wanted, inputting an empty reply gets a menu of the buffers
  219. (when in that menu, the delete key removes an unwanted buffer (not its file)),
  220. and inputting an `=' by itself means "the buffer that the cursor is in".
  221.   For more information, type ctrl-_ then `s' in AAEMACS
  222.   Attempt to access a directory as if it was a file, gets a menu of all the
  223. files in that directory. In that menu, at the left ends of the lines, `o' means
  224. that that file has a buffer, and `*' that that file has a buffer which has been
  225. changed since last time it was read or written. It does not show buffers that
  226. have no file of the same name.
  227. -------------------------------------------------------------------------------
  228. [MODES]
  229.   The subroutine `modemenu' (bound to altM) can select between these modes:-
  230. -tab: shown as one char / obeyed (tab positions every 8 chars) / both
  231. -going off end of line: goes to next line / appends spaces to line
  232. -typed char: inserted / overlays, cursor moves / overlays, cursor stays still
  233. -auto newline on typing long text lines?: yes / no
  234. -in search, ignore case of letters?: yes / no
  235. -line too long for screen: show the columns round the cursor / fold long lines
  236. -skip nonword chars after skipping word?: forwards / backwards / neither / both
  237. Each buffer's modes are stored separately.
  238. -------------------------------------------------------------------------------
  239. [CARRIAGE-RETURN AND LINEFEED (CR and LF) (ctrl-M and ctrl-J)]
  240.   These complications are because: the usual end-of-line key (RET) returns CR
  241. not LF; PCs store text end-of-line as CR LF; most people want to treat CR LF as
  242. one entity `end of line' and not to see either shown visibly at each line end.
  243.   (But ctrl-RET returns LF.)
  244.   Lines are assumed to end in LF or CR LF. This CR and LF are not in AAEMACS's
  245. line images as characters; absence of this CR is shown by setting a bit. On my
  246. PC CR shows as a single music note, and LF as a slab with a circle on. (Double
  247. music note is ctrl-N.) In text on the screen the LF is only shown if the line's
  248. `no CR' bit is set. Else the final CR is shown in these cases:-
  249.     if the line ends in space or tab or ascii-0 or ascii-255, to show them;
  250.     if the line is empty, to show trailing empty lines;
  251.     if the end-of-line is the beginning or end of a coloured section of text;
  252.     if the line ends in another CR;
  253.     sometimes if the line has just been edited.
  254.   If both CR and LF are displayed, that CR is in AAEMACS as a character and that
  255. line has a `no CR' bit. This arises from separate CR and LF coming together.
  256.   In cyan replies typed to questions asked by keystroke subroutines, end-of-line
  257. is shown as LF, which in ordinary searching matches any end-of-line and ignores
  258. the `no CR' bit.
  259.   `ctrlQ ctrlM' or `ctrlQ ret' inserts ctrlM (CR) by itself.
  260.   `ctrlQ ctrlL' inserts LF without CR (i.e. new line with the `no CR' bit set).
  261.   `alt J' sets the `CR' bit at all ends-of-lines in the region.
  262.   `esc J' clears the `CR' bit at all ends-of-lines in the region.
  263.   AAEMACS displays the end of a file as if there was an extra end-of-line there;
  264. but AAEMACS search commands will not find that extra end-of-line.
  265.   AAEMACS does not supply a missing CR or LF at end of file on writing to file.
  266.   Note that (at least with PC Gnu C) the C `\n' == 10 (LF) and not 13 (CR).
  267.   Search runs quicker if the first character in the search string is LF
  268. -------------------------------------------------------------------------------
  269. [SPELLCHECKER]
  270.   AAEMACS has a spelling checker. Its dictionary file is directly readable; I am
  271. not responsible for the results of any attempt at editing it yourself. Words
  272. found during scanning can be written to a space called the appendix, which is
  273. also used for work checking. It is controlled by the subroutines `checkspelling'
  274. (bound to alt-I), `getappendix', `putappendix', `emptyappendix', which see in
  275. HELP.BIG . Its dictionary is made more compact by noting how to form derivatives
  276. from each root word rather than storing every derivative separately. To merge
  277. `putappendix''s output into an (already sorted) dictionary, use `mergefile'.
  278. -------------------------------------------------------------------------------
  279. [MOUSE]
  280.   AAEMACS uses the mouse, if the PC's mouse driver has already been loaded.
  281. Pressing the mouse buttons, releasing the mouse buttons, and moving the mouse,
  282. are treated logically as 7 extra keyboard special keys. Note:-
  283.   (1) Some mouse drivers ignore the middle mouse button.
  284.   (2) Some mouse drivers think that the right button of a 2-button mouse is the
  285. middle button.
  286.   (3) In all predefined AAEMACS mouse commands the middle button does the same
  287. as the right button.
  288.   (4) In AAEMACS a double-click is two clicks: there is no time limit.
  289.   (5) Warning: some mouse drivers misbehave in screen text modes other than the
  290. usual 80*25 characters. This fault is in the PC's mouse driver, not in AAEMACS.
  291. If abort-to-DOS occurs in the mouse driver in AAEMACS, it leaves the PC's stack
  292. funny, and you must reboot to clear the condition.
  293.   AAEMACS uses the mouse in:-
  294.   - As a command in ordinary mode:-
  295.     - Right button (or middle button) gets the green menu of commands.
  296.     - Left button gets various special commands: see below.
  297.     - Combination commands such as `esc rightbutton' are possible.
  298.   - Directory menu: left button selects a menu entry; right button gets a cyan
  299.     submenu (in it, left button selects, right button backs out) of the main
  300.     directory menu's special commands.
  301.     Mousing here will only go to the first 2048 entries in each directory.
  302.   - Menu of buffers: left button selects; right button asks for a filename which
  303.     is not in the list.
  304.   - The green menu of commands: left button selects, right button backs out;
  305.     ctrl-underline, or ctrl-leftbutton, or clicking left and another button
  306.     at once, gets help for that command (unless mouse is on a submenu!) (any key
  307.     or button or moving the mouse returns to menu); left button means the same
  308.     as Return when the green menu asks for a called command's numeric argument.
  309.   - The menu of the 256 PC characters: left button selects, right button exits
  310.     without selecting.
  311.   - `Literal character' (bound to ctrl-Q): right button gets menu of characters.
  312.   - Asking for a file name: any button as first keystroke gets directory menu.
  313.   - The menu of buffer modes: left button or Return rotates each line.
  314.   - Asking for a string: moving the mouse moves the cursor; if it was wanting a
  315.     filename, left button before you type anything gets a menu of filenames.
  316.   - In yes/no questions: moves cursor;
  317.     left button = whichever alternative the cursor is on, right button = NO.
  318.  
  319.   Clicking the left button in ordinary mode gets into `mousing mode', in which:-
  320.   (1) `m' appears at the right end of the info line.
  321.   (2) The mouse can only reach the first 2048 characters in each line.
  322.   (3) The mouse can't move more than 1024 lines up or down without a key or
  323.       button being pressed.
  324.   (4) Moving the mouse about moves the cursor.
  325.   (5) Clicking the left button exits to ordinary mode.
  326.   (6) On dragging the left button, releasing it sets that buffer's mark 1 (top
  327.       of stack of marks) to where the cursor was when the left button was
  328.       pressed, and that buffer's mark 2 to where the cursor is now. From mark 1
  329.       to mark 2 is the `mousing region'. Dragging is treated as clicking here if
  330.       the left button is released at the same character where it was pressed.
  331.   (7) Clicking the right button gets into a small menu where:-
  332.       - The mousing region shows magenta.
  333.       - `M' moves the mousing region to where the cursor is.
  334.       - `C' copies the mousing region to where the cursor is.
  335.       - `D' deletes the mousing region.
  336.       - `E' exits from the small menu and does nothing.
  337.       - Clicking the right button again gets the green menu of commands.
  338.   (8) Mouse operations may not be recorded properly by "record a macro".
  339.   (9) When moving the mouse, the cursor will not necessarily be exactly at the
  340.       mouse if the mouse is off the end of a line, or within spaces used to
  341.       represent a tabulate character, or on a red arrowhead showing that a line
  342.       is split. All key and button operations put the mouse at the cursor.
  343. -------------------------------------------------------------------------------
  344. [Miscellaneous]
  345.   AAEMACS now has a menu of subroutines, called by alt=
  346.   Please tell me if you get any red fault remarks starting with "BUG:".
  347.   Do <<NOT>> type ctrl-C ahead, as this will cause irretrievable breakin.
  348. Sorry, but this is a feature of Gnu C that I can't do anything about.
  349.   AAEMACS can store macros on files (macrofiles).
  350.   All 256 characters display as that PC character, e.g. ctrl-A as a smileface.
  351. (At least on my PC) ascii-0 and ascii-255 display as space: beware.
  352.   (Typing   ctrl-Q ctrl-tab   gets a menu of all the PC printing characters.)
  353.   In the mode line at the bottom of each buffer window: a `*' at the left end
  354. means that that buffer has been altered since it was last written to its file; a
  355. video-reverse (magenta background) block at the right end (only in the current
  356. buffer's window) means that AAEMACS is waiting for you to press a key.
  357.   The effect of pressing a key sequence which is bound to a buffer:-
  358. arg>0, or no arg: the current window switches to the key's buffer.
  359. arg=0: a copy of the key's buffer is inserted at the cursor.
  360. arg<0: current window is split between its current buffer and the key's buffer.
  361.   Two windows can't display the same buffer.
  362.   (This much reduces the thickets of extra programming that bugs can lurk in.)
  363.   `Esc letter' is not necessarily treated the same as alt-letter; but an unbound
  364. keysequence with `esc letter' is treated as the corresponding alt-letter.
  365.   Uppercase and lowercase are treated the same when typing a key with alt or
  366. ctrl or after keystrokes such as `esc' and `ctrlX' to complete a key sequence.
  367.   Kill after kill with nothing between, appends to the same kill ring member.
  368. (But not successive calls of a macro which contains only a kill.)
  369.   The kill ring holds 16 members.
  370.   Incomplete key sequences show in magenta at the bottom of the current window.
  371.   Each buffer's mark stack can hold up to 16 marks.
  372.   Mark 999 = where the cursor was before the last command call, so, after acci-
  373. dentally pressing `end', `esc 999 ctrlX ctrlX' goes back where you were before.
  374.   The first line and the first character in a line are the 1st, not the 0th.
  375.   AAEMACS uses Gnu C's virtual store paging, so it can edit very big files.
  376.   ALT with the numbers above QWERTYUIOP input an argument as stated in HELP etc.
  377.   ALT with the right keypad numbers send the character (but not ascii-0) whose
  378. ascii value is entered modulo 256 as decimal thus, e.g. ALT-2 ALT-6 is treated
  379. as ctrl-B ctrl-F if ALT is released between the 2 and the 6, else as ctrl-Z.
  380. This is a PC DOS feature and not part of AAEMACS.
  381.   A buffer's name is the full form (with drive & directory) of its file's name.
  382.   A buffer whose name is not a legal PC filename, has no file.
  383.   End of sentence is `.' or `!' or `?' with EOL or space or tab after.
  384.   A line empty or starting with space or tab is treated as start of paragraph.
  385.   The keystrokes `esc' and `ctrl-X' start 2-keystroke sequences.
  386.   The subroutines in macrofiles can only take strings and numbers as arguments.
  387.   In `ctrlX =' output, e.g. `17(24)' means `this line has 17 characters which
  388. are here displayed as 24 characters due to obeying tabs.'.
  389.   AAEMACS does not stop reading on finding ctrl-Z in a file that it is reading.
  390. The file is read as binary; then ctrl-J (LF) is treated as end-of-line, and one
  391. final ctrl-M (CR) (if present) in each line is treated specially as above.
  392.   The right end character of the mode line of the current window counterchanges
  393. its colors when AAEMACS is waiting for the user to type a character.
  394.   The subroutine cccmode goes into or out of a mode where the character at the
  395. cursor is counterchanged, as laptops' cursors are sometimes hard to see.
  396.   When inputting a numeric argument with esc or alt and digits:-
  397. Do not use alt with the right keypad digits, for the reason stated hereinabove.
  398. The first `digit' can be the minus: that specifies negative argument.
  399. esc minus or alt-minus with no digits means -1, not error as with some emacses;
  400. also e.g. `esc minus 2' or `alt-minus alt-2' produces -2 correctly even though
  401. a cyan `-1' appears before typing the `2'.
  402.   If DOS says "Abort, Retry, Fail?" when AAEMACS tries to access a floppy or a
  403. nonexistent drive, if you can't correct the fault, press `F', not `A'. AAEMACS
  404. will continue; ctrl-L will repair any remaining damage to the screen display.
  405.   When recording a macro:
  406.     Commands that cause failure messages are not recorded.
  407.     Incremental search is recorded as ordinary search.
  408.   If EMACS.EXE fails with "can't open file c:\gcctemp\----" or similar, call
  409. the DOS command `MAKEDIR C:\GCCTEMP' (or whatever) and call EMACS.EXE again.
  410.   The file EM.INF may be some help in understanding the source form.
  411.   In search-and-replace, and in calling a macro N times, ctrl-alt-shift (using
  412. the left shift key) pressed all at once terminates repetition.
  413.   FINDMODE.EXE:-
  414.   If called with no argument, says what screen modes your computer is in.
  415.   If called with no argument, lists what screen modes your computer has (in hex)
  416.   If called with a hexadecimal number as argument, sets the screen to that mode
  417. if possible.
  418. -------------------------------------------------------------------------------
  419. [Codes returned by my PC's keyboard for the alt and special keys]
  420. hex  dec  key              hex  dec  key              hex  dec  key
  421. 0x01   1  alt esc          0x03   3  ctrl 2           0x0e  14* alt bksp
  422. 0x0f  15  shift tab        0x10  16* alt q            0x11  17* alt w
  423. 0x12  18* alt e            0x13  19* alt r            0x14  20* alt t
  424. 0x15  21* alt y            0x16  22* alt u            0x17  23* alt i
  425. 0x18  24* alt o            0x19  25* alt p            0x1a  26  alt [
  426. 0x1b  27  alt ]            0x1c  28  alt ret          0x1e  30* alt a
  427. 0x1f  31* alt s            0x20  32* alt d            0x21  33* alt f
  428. 0x22  34* alt g            0x23  35* alt h            0x24  36* alt j
  429. 0x25  37* alt k            0x26  38* alt l            0x27  39  alt ;
  430. 0x28  40  alt '            0x29  41  alt `            0x2b  43  alt #
  431. 0x2c  44* alt z            0x2d  45* alt x            0x2e  46* alt c
  432. 0x2f  47* alt v            0x30  48* alt b            0x31  49* alt n
  433. 0x32  50* alt m            0x33  51  alt ,            0x34  52  alt .
  434. 0x35  53  alt /            0x37  55  alt pad *        0x3b  59  f1
  435. 0x3c  60  f2               0x3d  61  f3               0x3e  62  f4
  436. 0x3f  63  f5               0x40  64  f6               0x41  65  f7
  437. 0x42  66  f8               0x43  67  f9               0x44  68  f10
  438. 0x47  71* home             0x48  72* uparrow          0x49  73* page-up
  439. 0x4a  74  alt pad -        0x4b  75* leftarrow        0x4c  76  pad5
  440. 0x4d  77* rightarrow       0x4e  78  alt pad +        0x4f  79* end
  441. 0x50  80* downarrow        0x51  81* page-down        0x52  82* insert
  442. 0x53  83* delete           0x54  84  shift f1         0x55  85  shift f2
  443. 0x56  86  shift f3         0x57  87  shift f4         0x58  88  shift f5
  444. 0x59  89  shift f6         0x5a  90  shift f7         0x5b  91  shift f8
  445. 0x5c  92  shift f9         0x5d  93  shift f10        0x5e  94  ctrl f1
  446. 0x5f  95  ctrl f2          0x60  96  ctrl f3          0x61  97  ctrl f4
  447. 0x62  98  ctrl f5          0x63  99  ctrl f6          0x64 100  ctrl f7
  448. 0x65 101  ctrl f8          0x66 102  ctrl f9          0x67 103  ctrl f10
  449. 0x68 104  alt f1           0x69 105  alt f2           0x6a 106  alt f3
  450. 0x6b 107  alt f4           0x6c 108  alt f5           0x6d 109  alt f6
  451. 0x6e 110  alt f7           0x6f 111  alt f8           0x70 112  alt f9
  452. 0x71 113  alt f10          0x73 115  ctrl leftarrow   0x74 116  ctrl rightarrow
  453. 0x75 117  ctrl end         0x76 118  ctrl page-down   0x77 119  ctrl home
  454. 0x78 120* alt 1            0x79 121* alt 2            0x7a 122* alt 3
  455. 0x7b 123* alt 4            0x7c 124* alt 5            0x7d 125* alt 6
  456. 0x7e 126* alt 7            0x7f 127* alt 8            0x80 128* alt 9
  457. 0x81 129* alt 0            0x82 130  alt -            0x83 131  alt =
  458. 0x84 132  ctrl page-up     0x85 133  f11              0x86 134  f12
  459. 0x87 135  shift f11        0x88 136  shift f12        0x89 137  ctrl f11
  460. 0x8a 138  ctrl f12         0x8b 139  alt f11          0x8c 140  alt f12
  461. 0x8d 141  ctrl uparrow     0x8e 142  ctrl pad -       0x8f 143  ctrl pad5
  462. 0x90 144  ctrl pad +       0x91 145  ctrl downarrow   0x92 146  ctrl insert
  463. 0x93 147  ctrl delete      0x94 148  ctrl tab         0x95 149  ctrl pad /
  464. 0x96 150  ctrl pad *       0x97 151* alt home         0x98 152* alt uparrow
  465. 0x99 153  alt page-up      0x9b 155* alt leftarrow    0x9d 157* alt rightarrow
  466. 0x9f 159* alt end          0xa0 160* alt downarrow    0xa1 161  alt page-down
  467. 0xa2 162* alt insert       0xa3 163* alt delete       0xa4 164  alt pad /
  468. 0xa5 165  alt tab
  469.   Those marked `*' are bound to subroutines as AAEMACS default. Your PC must
  470. accept them, and must return the same input codes for them as in this list.
  471.   `Pad' means the right keypad. `Pad5' means the key in the middle of the right
  472. keypad which in numlock mode produces `5'.
  473. --------------------------------------------------------------------------------
  474.   If you must alter the source form, do not auto-coerce a `subr*' to a `val'
  475. with Gnu C, as the result's `val.n' will be not `_subr' but `_buffer'. This is
  476. probably due to a stray gremlin in Gnu C. Use the function `kf()' to convert a
  477. `subr*' to a `val'.
  478. --------------------------------------------------------------------------------
  479. [Windows]
  480.   AAEMACS can now run under Windows.
  481.   (0) File EMACS.ICO is an icon (a diver using a blowtorch).
  482.   (1) If a Novell net access program has been activated in that PC since it was
  483. booted last, when calling AAEMACS (or other Gnu C programs) from Windows:-
  484.     (a) The `call DOS from AAEMACS' option does not work.
  485.     (b) On entry AAEMACS will always ask you where its home directory is.
  486.   The cause is likeliest a bug in Gnu C, or clashing PC interrupts somewhere.
  487.   (2) Windows always intercepts the Alt-Return keypress: it switches the AAEMACS
  488. Windows task between full-screen mode and in-a-window mode.
  489.   (3) Windows always intercepts the Alt-Tab keypress: it reduces the AAEMACS
  490. task to an icon on the `desktop' (= `minimizes' it) and goes back to Windows. Or
  491. the reverse, if the AAEMACS task was minimized before. See your Windows manual.
  492.   (4) If you run AAEMACS in a window (rather than in full-screen mode), Windows
  493. intercepts and obeys all mouse events, and AAEMACS ignores them.
  494.   (5) To set up a Windows icon position for AAEMACS:-
  495.     (a) In the desired window, duplicate one of the existing icons by dragging
  496. it with the mouse while holding the Control key down. Keep the copy selected.
  497.     (b) In the top left corner of the Program Manager window, click `File'.
  498.     (c) In the resulting new window, click `Properties'.
  499.     (d) In the resulting `Program Item Properties' window:-
  500.       click `Description' and change it to `AAEMACS',
  501.       click `Command Line' and change it to the full pathname of your copy of
  502. file EMACS.EXE,
  503.       click `Working Directory' and change it to your hard disk's root
  504. directory,
  505.       click `Change Icon'.
  506.     (e) In the resulting `Change Icon' window, click the `File name' line and
  507. change it to the full pathname of your copy of file EMACS.ICO,
  508.     (f) Click `OK' in each of these new windows in turn, newest first.
  509.