home *** CD-ROM | disk | FTP | other *** search
/ APDL Public Domain 1 / APDL_PD1A.iso / textutil / microemacs / Source / ReadMePM < prev    next >
Encoding:
Text File  |  1991-05-26  |  8.6 KB  |  203 lines

  1. This is the upgrade of Archimedes Emacs to release 3.11 (beta).
  2.  
  3. This port was implemented by
  4.  
  5. Paul Moore,
  6. 10, Mulberry Rise,
  7. Firdale Park,
  8. Northwich,
  9. Cheshire
  10. CW8 4UQ
  11.  
  12. E-Mail: pmoore@cix.compulink.co.uk
  13.  
  14. Thanks go to the original author(s) of MicroEMACS, for writing the
  15. program in such a manner as to make porting a simple, and positively
  16. pleasant, task!
  17.  
  18. Note: Documentation has not been included, as the Emacs 3.11 (beta)
  19.       documentation is not fully complete yet. The same applies to the
  20.       command files. Either the 3.10e or the 3.11 (beta) files as
  21.       distributed are the best that is available yet.
  22.  
  23. Outstanding Issues
  24. ==================
  25.  
  26. 1. In order to allow the use (or redefinition) of any combination of
  27.    keypresses, the program claims the keypress event and the keyboard
  28.    buffer insert vector, to trap all key depressions, and return unique
  29.    codes. The program will handle the ALT key, allowing the use of ALT-key
  30.    combinations within EMACS, provided the InternationalKeyboard module is
  31.    killed. This is because InternationalKeyboard installs itself as a
  32.    keyboard handler, and intercepts all keypresses before anything else
  33.    can get at them (even before the "key pressed" event!). It is your
  34.    choice - if you want to use InternationalKeyboard, Emacs will work
  35.    perfectly well, just without the ALT-key combinations. If you kill
  36.    InternationalKeyboard, you can use ALT-keys, but you cannot use the ALT
  37.    functions provided by the international module. (I, personally, now
  38.    have the international module permanently unplugged in my machine...)
  39.  
  40.    At present, there are still odd occasions when the handler gets
  41.    confused, particularly about the state of the shift, control and ALT
  42.    keys. This is (probably) because the event handler is switched off
  43.    when OS commands are being run, and during this period Emacs cannot
  44.    keep track of the key status. This problem may be impossible to fully
  45.    solve. For now, if this occurs, try running an OS command (^XC, then
  46.    Cat, for instance) to allow Emacs to "un-confuse" itself... If this
  47.    fails, save your work and quit, and then restart. I realise that this
  48.    is not wonderful, but the problem is rare and intermittent, and so
  49.    very difficult to track down.
  50.  
  51.    A similar problem arises if you press two keys in very quick
  52.    succession (notably, delete then a letter key). Sometimes, the first
  53.    key is acted on twice, and the second key ignored. Again, this is a
  54.    known bug, and will be solved as soon as I can work out what the
  55.    problem is!
  56.  
  57. 2. The use of colours. At present, I set the palette on start-up to
  58.    correspond (roughly) to the standard EMACS colours. In particular, the
  59.    standard set of colours (0-7) are black, red, blue, etc. to GREY, with
  60.    colours 8-15 being gray ("light black"), light red, light blue, to
  61.    white. Playing with the palette like this is not ideal, as I do not
  62.    reset it later. So I may change this. But I would like to keep
  63.    compatible, so that colour LBLUE (for instance) actually meant
  64.    something. Maybe I'll add a couple of new environment variables, $fgcol
  65.    and $bgcol, which give access to the full colour range (for 256-colour
  66.    modes, for instance). On that note, $palette is not yet implemented.
  67.    It's not at all difficult, I'm just lazy... (besides, if I waited until
  68.    everything was done, this would never get released).
  69.  
  70. 3. I haven't yet checked all the supplied command files. EmacsRC works
  71.    (mostly), but there are definitely still problems in some of the
  72.    others. Comments/fixes most appreciated.
  73.  
  74. 4. There are some key-combinations available on the Arc, which do not
  75.    fit the standard key names. For example, in addition to TAB and
  76.    SHIFT-TAB, we have CONTROL-TAB, etc. At present I have
  77.  
  78.     In all cases
  79.  
  80.     F0 (PRINT)        FN`
  81.     F11            FN-
  82.     F12            FN=
  83.  
  84.     And the following    Without CONTROL        With CONTROL
  85.  
  86.     TAB            ^I            FN^T    ("Tab")
  87.     BS            ^H            FN^L    ("Left")
  88.  
  89.    As usual, these can have Alt (A-), Shift (S-), or Control (^) added,
  90.    although the second group have different codes when used with CONTROL
  91.    compared to when used without CONTROL.
  92.  
  93.    To get the code for any keypress, you can simply type ^X ? followed
  94.    by the key combination. This gives you the key code, and the current
  95.    binding.
  96.  
  97.    Further specials:
  98.  
  99.     DELETE        ^?        when used alone
  100.             FND        otherwise
  101.  
  102.     RETURN        ^M        when used alone
  103.             ^J        when used with SHIFT only
  104.             FNR        in any other combination
  105.  
  106.     ENTER        ^M        when used alone
  107.             ^J        when used with SHIFT only
  108.             FNE        in any other combination
  109.  
  110.    In particular, note that SHIFT-RETURN is ^J (newline-and-indent),
  111.    which retains the current indentation level. This is probably helpful
  112.    when typing in indented text (tables, prorgams when not in CMODE,
  113.    etc).
  114.  
  115. 6. The previous (David Pilling) version of MicroEMACS allowed you to use
  116.    Shift-RETURN to produce a ^M character. This was useful for stripping
  117.    CRs from MS-DOS files, among other uses. This is not yet implemented,
  118.    mainly because I haven't worked out where to put it in the code! I
  119.    may also add the option (the code is already there, in part) to strip
  120.    CRs when a file is read in. At the moment it's a compile time option
  121.    - I'd just need to make it selectable at run-time. As of version
  122.    3.11 (beta), the $lterm variable caters for this. Note: I have
  123.    altered the code which reads a file in, so that $lterm is used both
  124.    for reading and writing. So, to read MS-DOS files, you can do
  125.    "M-X set $lterm ^Q^M^Q^J" (ie CR/LF), then read the file, then "M-X
  126.    set $lterm ^Q^J", to restore the default. Note that the file is not
  127.    flagged as changed simply by setting $lterm. If you want to write the
  128.    converted version, you must first modify the file (eg, insert a
  129.    character, and then delete it again).
  130.  
  131. 7. THE FOLLOWING PARAGRAPH IS CURRENTLY UNTRUE. KEYPAD KEYS ACT AS
  132.    NORMAL NUMERIC KEYS. I have left the following here to remind me to
  133.    have another think about this one...
  134.  
  135.    At present, the keypad keys are handled a bit strangely. What I
  136.    wanted to do, is to allow numeric arguments (such as "ESC-12") to be
  137.    typed directly (as "12" on the keypad). So the numeric keypad 0-9
  138.    currently act as ESC-0 to ESC-9. Unfortunately, the code to gather a
  139.    numeric argument grabs a SEQUENCE of digits after an ESC, and the
  140.    keypad method looks like ESC-1-ESC-2 instead of ESC-1-2. This will be
  141.    fixed, but it's going to require some messing about, which I haven't
  142.    had time to do yet.
  143.  
  144. 8. Mouse support. Standard EMACS-style support should be fairly easy. A
  145.    full WIMP interface is probably significantly harder, but may be
  146.    possible.
  147.  
  148.  
  149. Implementation-specific Details
  150. ===============================
  151.  
  152. 1. The environment variable $sres holds the current screen mode. It is
  153.    read-write, so you can change mode within EMACS. All modes are
  154.    supported, including new user-defined modes. Don't expect miracles
  155.    from mode 7, though!
  156.  
  157. 2. The environment variable $cftype holds the file type of the file in
  158.    the current buffer. This is set when the file is read in (default is
  159.    TEXT, for new files), and is used to set the file type on exit. Thus,
  160.    MicroEMACS maintains file types for such things as Obey files.
  161.    $cftype can be set as for any other variable. Suitable values are as
  162.    for *SetType (eg, FFF, Text, Obey, 2_0000100, etc). It can also be
  163.    read, but the value is in decimal, and hence not as readable as it
  164.    might be. I may fix this, if I can figure a way which doesn't break
  165.    anything...
  166.  
  167. 3. MicroEMACS looks for command files, the EmacsRC file, and the help
  168.    file, in the places set up in the source file H.Epath, with the names
  169.    defined in H.Estruct. As the comments state, the current values are
  170.    fairly provisional. At present, we have
  171.  
  172.     Startup file        EmacsRC
  173.     Help file        EmacsHLP
  174.     Log file        EmacsLOG
  175.     C error parser        Error
  176.  
  177.    Files are searched for in
  178.  
  179.     Current directory
  180.     Lib:Emacs.
  181.     Emacs:
  182.  
  183.    That is, if the file is not in the current directory, it is searched
  184.    for in a directory "Emacs" somewhere along <Lib$Path>, and if not,
  185.    then the file is looked for along <Emacs$Path>.
  186.  
  187.    Note that EmacsLOG is only used if a compile time option to write all
  188.    commands executed to the log file, is switched on. This is NOT the
  189.    case in the distributed version.
  190.  
  191.    The C error parser is used in conjunction with the -E flag, and at
  192.    present does NOT work with Acorn C. I may change this to work one
  193.    day, as I could sure use help in sorting out my C code!
  194.  
  195.  
  196. I hope you find this program of use. Please report all bugs, and if you
  197. have any ideas for enhancements, let me know. I can't promise to include
  198. them (I'd like to keep as close as possible to the original code, to
  199. allow me to upgrade when new versions come along), but I'll see what I
  200. can do.
  201.  
  202. Gustav. (Paul Moore)
  203.