home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Dream 55
/
Amiga_Dream_55.iso
/
RISCOS
/
APPS
/
TEXT
/
UNIXUT
/
MEMACS.ZIP
/
MEmacs
/
ReadMeArc
< prev
next >
Wrap
Text File
|
1992-06-29
|
9KB
|
195 lines
This is the upgrade of Archimedes Emacs to release 3.11 (beta).
Please read file Copyright for conditions of use, distribution
details, etc. This program is FREEWARE - it may be freely
distributed provided that the conditions in the Copyright file
are adhered to.
This port was implemented by Paul Moore, pmoore@cix.compulink.co.uk
Thanks go to the original author(s) of MicroEMACS, for writing the
program in such a manner as to make porting a simple, and positively
pleasant, task!
Note: Documentation has not been included, as the Emacs 3.11 (beta)
documentation is not fully complete yet. The same applies to the
command files. Either the 3.10e or the 3.11 (beta) files as
distributed are the best that is available yet.
Outstanding Issues
==================
1. In order to allow the use (or redefinition) of any combination of
keypresses, the program claims the keypress event and the keyboard
buffer insert vector, to trap all key depressions, and return unique
codes. The program will handle the ALT key, allowing the use of ALT-key
combinations within EMACS, provided the InternationalKeyboard module is
killed. This is because InternationalKeyboard installs itself as a
keyboard handler, and intercepts all keypresses before anything else
can get at them (even before the "key pressed" event!). It is your
choice - if you want to use InternationalKeyboard, Emacs will work
perfectly well, just without the ALT-key combinations. If you kill
InternationalKeyboard, you can use ALT-keys, but you cannot use the ALT
functions provided by the international module. (I, personally, now
have the international module permanently unplugged in my machine...)
At present, there are still odd occasions when the handler gets
confused, particularly about the state of the shift, control and ALT
keys. This is (probably) because the event handler is switched off
when OS commands are being run, and during this period Emacs cannot
keep track of the key status. This problem may be impossible to fully
solve. For now, if this occurs, try running an OS command (^XC, then
Cat, for instance) to allow Emacs to "un-confuse" itself... If this
fails, save your work and quit, and then restart. I realise that this
is not wonderful, but the problem is rare and intermittent, and so
very difficult to track down.
A similar problem arises if you press two keys in very quick
succession (notably, delete then a letter key). Sometimes, the first
key is acted on twice, and the second key ignored. Again, this is a
known bug, and will be solved as soon as I can work out what the
problem is!
2. The use of colours. At present, I set the palette on start-up to
correspond (roughly) to the standard EMACS colours. In particular, the
standard set of colours (0-7) are black, red, blue, etc. to GREY, with
colours 8-15 being gray ("light black"), light red, light blue, to
white. Playing with the palette like this is not ideal, as I do not
reset it later. So I may change this. But I would like to keep
compatible, so that colour LBLUE (for instance) actually meant
something. Maybe I'll add a couple of new environment variables, $fgcol
and $bgcol, which give access to the full colour range (for 256-colour
modes, for instance). On that note, $palette is not yet implemented.
It's not at all difficult, I'm just lazy... (besides, if I waited until
everything was done, this would never get released).
3. I haven't yet checked all the supplied command files. EmacsRC works
(mostly), but there are definitely still problems in some of the
others. Comments/fixes most appreciated.
4. There are some key-combinations available on the Arc, which do not
fit the standard key names. For example, in addition to TAB and
SHIFT-TAB, we have CONTROL-TAB, etc. At present I have
In all cases
F0 (PRINT) FN`
F11 FN-
F12 FN=
And the following Without CONTROL With CONTROL
TAB ^I FN^T ("Tab")
BS ^H FN^L ("Left")
As usual, these can have Alt (A-), Shift (S-), or Control (^) added,
although the second group have different codes when used with CONTROL
compared to when used without CONTROL.
To get the code for any keypress, you can simply type ^X ? followed
by the key combination. This gives you the key code, and the current
binding.
Further specials:
DELETE ^? when used alone
FND otherwise
RETURN ^M when used alone
^J when used with SHIFT only
FNR in any other combination
ENTER ^M when used alone
^J when used with SHIFT only
FNE in any other combination
In particular, note that SHIFT-RETURN is ^J (newline-and-indent),
which retains the current indentation level. This is probably helpful
when typing in indented text (tables, prorgams when not in CMODE,
etc).
6. The previous (David Pilling) version of MicroEMACS allowed you to use
Shift-RETURN to produce a ^M character. This was useful for stripping
CRs from MS-DOS files, among other uses. This is not yet implemented,
mainly because I haven't worked out where to put it in the code! I
may also add the option (the code is already there, in part) to strip
CRs when a file is read in. At the moment it's a compile time option
- I'd just need to make it selectable at run-time. As of version
3.11 (beta), the $lterm variable caters for this. Note: I have
altered the code which reads a file in, so that $lterm is used both
for reading and writing. So, to read MS-DOS files, you can do
"M-X set $lterm ^Q^M^Q^J" (ie CR/LF), then read the file, then "M-X
set $lterm ^Q^J", to restore the default. Note that the file is not
flagged as changed simply by setting $lterm. If you want to write the
converted version, you must first modify the file (eg, insert a
character, and then delete it again).
7. THE FOLLOWING PARAGRAPH IS CURRENTLY UNTRUE. KEYPAD KEYS ACT AS
NORMAL NUMERIC KEYS. I have left the following here to remind me to
have another think about this one...
At present, the keypad keys are handled a bit strangely. What I
wanted to do, is to allow numeric arguments (such as "ESC-12") to be
typed directly (as "12" on the keypad). So the numeric keypad 0-9
currently act as ESC-0 to ESC-9. Unfortunately, the code to gather a
numeric argument grabs a SEQUENCE of digits after an ESC, and the
keypad method looks like ESC-1-ESC-2 instead of ESC-1-2. This will be
fixed, but it's going to require some messing about, which I haven't
had time to do yet.
8. Mouse support. Standard EMACS-style support should be fairly easy. A
full WIMP interface is probably significantly harder, but may be
possible.
Implementation-specific Details
===============================
1. The environment variable $sres holds the current screen mode. It is
read-write, so you can change mode within EMACS. All modes are
supported, including new user-defined modes. Don't expect miracles
from mode 7, though!
2. The environment variable $cftype holds the file type of the file in
the current buffer. This is set when the file is read in (default is
TEXT, for new files), and is used to set the file type on exit. Thus,
MicroEMACS maintains file types for such things as Obey files.
$cftype can be set as for any other variable. Suitable values are as
for *SetType (eg, FFF, Text, Obey, 2_0000100, etc). It can also be
read, but the value is in decimal, and hence not as readable as it
might be. I may fix this, if I can figure a way which doesn't break
anything...
3. MicroEMACS looks for command files, the EmacsRC file, and the help
file, in the places set up in the source file H.Epath, with the names
defined in H.Estruct. As the comments state, the current values are
fairly provisional. At present, we have
Startup file EmacsRC
Help file EmacsHLP
Log file EmacsLOG
C error parser Error
Files are searched for in
Current directory
Lib:Emacs.
Emacs:
That is, if the file is not in the current directory, it is searched
for in a directory "Emacs" somewhere along <Lib$Path>, and if not,
then the file is looked for along <Emacs$Path>.
Note that EmacsLOG is only used if a compile time option to write all
commands executed to the log file, is switched on. This is NOT the
case in the distributed version.
The C error parser is used in conjunction with the -E flag, and at
present does NOT work with Acorn C. I may change this to work one
day, as I could sure use help in sorting out my C code!
I hope you find this program of use.
Gustav. (Paul Moore)