home *** CD-ROM | disk | FTP | other *** search
-
- Amiga MG 2a Release Notes
- -------------------------
-
- This file attempts to document the Amiga-specific features of MG 2a.
- Except where otherwise noted. It is assumed that you already know
- about the point and the mark, buffers, windows, extended commands, and
- the various areas on the screen that all versions of MG maintain. If
- you don't, see the MG documentation (what there is of it) for more
- information.
-
- Amiga Credits
- -------------
-
- The Amiga Intuition terminal driver is the combined effort of Mike
- Meyer and Mic Kaczmarczik. Others who helped and/or inspired good
- ideas for the MG terminal driver include Steve Walton, Leon Frenkel,
- Marcus Brooks, and Tom Rokicki. Steve Walton is also responsible for
- the dired mode. Lastly, Bob Larson redesigned the MG keymap system,
- making it possible for function keys and mouse clicks to be
- ``first-class citizens''.
-
- OPTIONS
- -------
-
- This section is for people who have their own C compiler. If you
- don't have a C compiler, you will hopefully have a version that has
- everything compiled into it.
-
- There are a bewildering variety of extra goodies available as
- compile-time options when you construct an Amiga MG. If you select none
- of them, you save on disk and memory space, but lose out on some
- features and versatility.
-
- The Makefile provides documentation on these options and what to do
- to make them work, but here is a quick overview:
-
- STARTUP -- You can configure MG so that it will look for a startup
- file in either the current directory or the AmigaDOS s: (startup)
- directory. An example startup file is included in the distribution,
- and also see the STARTUP section below.
-
- MENU -- If this option is used, MG puts an Intuition menu bar with
- major editing commands at the top of the screen, just like a "real"
- Amiga program. (See the section on the MENU for more info).
-
- BROWSER -- This has got to be seen to be appreciated. The Browser
- program turns the menu bar into a way to select files on a disk. First
- you select a disk, then a directory on the disk, then a file or
- subdirectory on the disk, and so on, all in the menu.
-
- MOUSE -- This option turns on the Amiga hot mouse. You can click
- on a character and move point to that spot, and that's just the
- beginning. (See the MOUSE section for more.)
-
- FKEYS -- This option turns on support for all the extra Amiga
- function keys. This enables the HELP key, which runs the function
- "describe-key-briefly". Arrow keys work -- shift-arrow keys apply to
- words and paragraphs. (See the KEYBOARD section.)
-
- NO_BACKUP -- This is actually a default option; #defining NO_BACKUP
- disables backup files.
-
- When chosen, this #define modifies the action of the save-buffer (C-x
- C-s) command. Normally, save-buffer writes out a new copy of the buffer
- to disk, thus destroying the contents of the original file. If BACKUP
- is enabled, MG will rename the file to filename~ (with a tilde character
- at the end), before the new copy is written out. This keeps the
- next-to-last copy of your file around on disk, so you can recover from
- bad mistakes.
-
- To avoid filling up disk space too quickly, by default MG does *NOT*
- make backup files; to do so, enter the command "M-x make-backup-files",
- which enables making backup files the next time you enter C-x C-s to
- save a file. If you give an argument to the function (by typing "C-u
- M-x make-backup-files", for example), backup files are not made.
-
- DO_METAKEY -- When this is enabled, Amiga MG uses the ALT key to
- implement the META key found on some terminals. This means that you
- can type ALT-f (in one keystroke) to go forward one word, instead of
- ESC-f, which requires two.
-
- CHANGE_FONT -- This allows you to set the font used by the Amiga
- console device driver when it draws characters in the MG window.
- For instance, this lets you use a slightly taller font for editing
- when using interlace mode under 1.2. MG cannot handle proportionally
- spaced fonts, but will allow you to use them (with rather confusing
- results) if you really want to.
-
- MODE_RENDITION, {TEXT,MODE}_{FG,BG} -- These are #defines that
- determine the default rendition of the mode line and the foreground
- and background colors of the text. See the COLOR section for more
- info.
-
- CHANGE_COLOR -- If you want to be able to mess around with the
- foreground and background colors of the text window, this option
- allows you to do that. You can also specify the way the status line is
- rendered (plain, boldface, italics, or reverse video).
-
- USE_ARP -- Amiga MG2a uses a few functions which are part of the
- library for ARP, the AmigaDOS Replacement Project. Work-alikes for
- these routines are provided for those without a copy of arp.library,
- but as a future version of Amiga MG will require ARP and it has so
- many other redeeming values, it is recommended you obtain a copy.
-
- DO_ICONIFY -- This turns on the ``amiga-iconify'' function,
- described in more detail below.
-
- THE MOUSE
- ---------
-
- The Amiga Mouse can invoke no less than 24 different functions.
- Mouse clicks are essentially treated as keys by the MG, even though you
- click the mouse and hold down qualifier keys to get them.
-
- Mouse keys come in three groups of eight, the groups being:
- Mouse keys -- when clicked in the text of a window
- Mode-Mouse keys -- when clicked on a window's mode line
- Echo-Mouse keys -- when clicked in the echo area
-
- Inside each group, which of the eight keys you get is determined by
- the combination of Shift, CTRL and ALT keys you are holding down when
- the mouse button is pressed. So yes, there really is a
- Ctrl-Meta-Shift-Mode-Mouse button. Note that the Meta (M-) prefix
- *MUST* be the ALT key. Prefixing a mouse click with ESC will not work.
-
- Mouse keys are generally bound to functions that affect the text in
- the selected buffer. If the Intuition mouse pointer is located inside an
- MG text window (i.e. an area where text is being edited), then a Mouse
- key is sent to the editor when you click the mouse. The buffer
- associated wth the window the pointer is in is made current, point is
- set as close as possible to the pointer (the character under the
- pointer, if possible), then the command bound to that mouse button is
- executed.
-
- If the mouse pointer is in the mode line - the line that is in a
- different typeface (usually backlit, maybe black instead of white) --
- when the mouse button is clicked, a Mode-Mouse key is sent to the
- editor. The buffer that the selected status line is associated with is
- made the current buffer, the point is set to the value of point for
- that window, then whatever command is bound to that button is
- executed. Most of the Mode-Mouse keys invoke functions that act on the
- entire window or buffer.
-
- Clicking in the echo line - the line at the bottom of the screen
- where prompts and message appear - results in an Echo-Mouse key.
- Whatever command is bound to that button will be executed. Since the
- echo line is not part of a buffer or a window, all the functions bound
- to Echo-Mouse keys affect the state of the editor as a whole.
-
- The default bindings for the hot mouse (as distributed) are:
-
- Qualifiers | Area clicked
- |
- C A Shift | Text window Mode line Echo line
- -------------+---------------------------------------------------------
- | dot to mouse forward page switch to other buffer
- X | recenter backward page kill buffer
- X | delete word split window describe key
- X X | kill line delete window describe bindings
- X | delete char goto bob suspend MG
- X X | delete whitespace goto eob quit
- X X | kill region enlarge window list buffers
- X X X | yank shrink window toggle Intuition window
-
- To help keep straight what the various keys do, notice that the
- Status and Echo groups come in pairs; the shifted version of a key is in
- some sense the opposite of the unshifted version. There is no opposite
- for display-buffers, so that key is bound to "amiga-toggle-border",
- which toggles MG' Intuition window between bordered and borderless.
-
- Like any MG key, you are free to rebind the 24 mouse buttons to do
- whatever you wish. You may even rebind them in your startup sequence.
- NOTE: only functions that start with the prefix "mouse-" are able to
- handle clicks in windows and mode lines, because they know how to figure
- out where the mouse was clicked. Conversely, any non-mouse function may
- be bound to an Echo-Mouse key, because clicking in the echo area does
- not send the x,y click information to the function.
-
- If the iconification code is compiled in, then Echo-Mouse is bound
- to ``amiga-iconify'' by default.
-
- THE KEYBOARD
- ------------
-
- There is a shortcut for many of the Meta commands (usually indicated
- by the ESC character): hold down the ALT key at the same time you type
- what usually comes after the ESC.
-
- Historically, this is why keys that are typed with ESC in front of
- them are called META keys; on the terminals at MIT where the Emacs
- editor (MG's spiritual parent) was originally written, there was a META
- key on the keyboard that did what the ALT key does. However, not many
- terminals outside of MIT have the META key at all, so the ESC key was
- nominated as a way to tell the system that the next character should be
- converted into a META key before it is interpreted.
-
- MG also recognizes Amiga function keys. For quick help on a key,
- type the HELP key and then the key you want help on. The following
- commands are bound to the Amiga function keys:
-
- Key Function
- --------------------------------------------
- Help describe-key-briefly
-
- Left backward-char
- Shift-Left backward-word
- Right forward-char
- Shift-Right forward-word
-
- Up previous-line
- Shift-Up backward-paragraph
-
- Down next-line
- Shift-Down forward-paragraph
-
- F1 find-file
- Shift-F1 find-file-other-window
- F2 save-buffer
- Shift-F2 write-file
- F3 scroll-up (page down)
- Shift-F3 scroll-down (page up)
- F4 enlarge-window
- Shift-F4 shrink-window
- F5 fill-paragraph
- Shift-F5 query-replace
- F6 split-window-vertically
- Shift-F6 delete-other-windows
- F7 transpose-chars
- Shift-F7 just-one-space
- F8 start-kbd-macro
- Shift-F8 end-kbd-macro
- F9 call-last-kbd-macro
- Shift-F9 describe-bindings
- F10 list-buffers
- Shift-F10 save-buffers-kill-emacs
-
- FUNCTION KEY NAMES
- ------------------
-
- On the Amiga, all the function keys are readily visible on the
- keyboard, so this table of key names for use in strings is fairly
- self-explanitory. If you want to rebind Shift-Down-Arrow to scroll-up
- (move down a whole page), for example, insert the line
-
- (global-set-key "\F5" 'scroll-up)
-
- in your s:.mg file.
- Amiga key Startup name
- -------------------------------------------------------------------------
- Up-Arrow \F0
- Down-Arrow \F1
- Left-Arrow \F2
- Right-Arrow \F3
-
- Shift-Up-Arrow \F4
- Shift-Down-Arrow \F5
- Shift-Left-Arrow \F6
- Shift-Right-Arrow \F7
-
- Help \F9
-
- F1 \F12
- F2 \F13
- F3 \F14
- F4 \F15
- F5 \F16
- F6 \F17
- F7 \F18
- F8 \F19
- F9 \F20
- F10 \F21
-
- Shift-F1 \F22
- Shift-F2 \F23
- Shift-F3 \F24
- Shift-F4 \F25
- Shift-F5 \F26
- Shift-F6 \F27
- Shift-F7 \F28
- Shift-F8 \F29
- Shift-F9 \F30
- Shift-F10 \F31
-
- Mouse \F32
- Ctrl-Mouse \F33
- Shift-Mouse \F34
- Shift-Ctrl-Mouse \F35
- Meta-Mouse \F36
- Meta-Ctrl-Mouse \F37
- Meta-Shift-Mouse \F38
- Meta-Shift-Ctrl-Mouse \F39
-
- Mode-Mouse \F40
- Ctrl-Mode-Mouse \F41
- Shift-Mode-Mouse \F42
- Shift-Ctrl-Mode-Mouse \F43
- Meta-Mode-Mouse \F44
- Meta-Ctrl-Mode-Mouse \F45
- Meta-Shift-Mode-Mouse \F46
- Meta-Shift-Ctrl-Mode-Mouse \F47
-
- Echo-Mouse \F48
- Ctrl-Echo-Mouse \F49
- Shift-Echo-Mouse \F50
- Shift-Ctrl-Echo-Mouse \F51
- Meta-Echo-Mouse \F52
- Meta-Ctrl-Echo-Mouse \F53
- Meta-Shift-Echo-Mouse \F54
- Meta-Shift-Ctrl-Echo-Mouse \F55
-
-
- THE MENU
- --------
- If the menu option is compiled into the program, you can also use the
- Intuition menu, just like any other well-written Amiga program. The menu
- names are relatively self-explanitory, as are the names inside each
- menu. If you want to learn what the command key is for a menu function,
- use the command "apropos" (invoked by Ctrl-Backspace a), followed by a
- substring of the menu item you're curious about.
-
- THE BROWSER
- -----------
-
- The Browser is the next best (or even better, for some purposes)
- thing to a file requester. Simply put, it places the directory tree up
- in the menu bar, where you can visit files simply by selecting their
- names from the menu bar. Try it, you'll like it. If the MENU option is
- also compiled in, the editing menus are all submenus of the first,
- "Edit" menu, and the Browser uses the rest of the menu bar.
-
- WINDOW OPTIONS
- --------------
-
- As a service to those of us who want a full-size, 80-column editing
- window on a 640x200 screen, Amiga MG allows you to make its window
- borderless. If you like, you can take over the full Workbench screen (48
- rows, 80 columns in interlace mode under 1.2). Borderless windows can be
- "visually confusing", to quote the author of Intuition, so it's probably
- best to either to 1) take over the whole screen or 2) put the MG window
- at the bottom of the screen.
-
- When Amiga MG starts up on a 640x200 screen, its initial window is
- borderless, and 640x200 pixels in dimension. To change to a resizeable
- window, issue the command "M-x amiga-toggle-border" or select the
- "Toggle Window" subitem from the "Window" menu (if it is compiled into
- the program). MG will create a new, resizeable, bordered window, which
- you can then set to whatever size you wish using the sizing gadget in
- the bottom left corner of the window.
-
- To go back to a borderless window, issue the "Toggle Window" command
- again. MG will remember the current size of the resizeable window, and
- create a borderless window with the same dimensions and position. Since
- under Workbench 1.2 you can use a 640x400 window, this lets you take up
- the entire screen, 48 rows by 80 columns.
-
- If you use MoreRows, MG will open up a resizeable window if there's
- enough room on the screen for an 24 line by 80 column window.
-
-
- CHANGING THE WINDOW'S FONT
- --------------------------
-
- There may be times when you'd like to use another font on the screen,
- either to make the text easier to read, or for some special effect, like
- editing something on a TV projection system. MG lets you change the
- font that is used to draw characters in the window, using the command
- "M-x amiga-set-font".
-
- You can use the universal argument to set the desired text font size,
- for example saying "C-u 12 M-x set-font", then typing "opal" when it
- prompts you for the name of the font. If you give an argument that is
- less than 0, MG resets the window's font to the system default (set by
- Preferences). If you don't give an argument, MG prompts you for the
- desired font size.
-
- Changing the window's font to one that is designed to be
- proportionally spaced does not work very well, because MG expects the
- all characters on the screen to be the same width, which is of course
- not the case with proportional fonts. MG lets you use proportional
- fonts, but it asks you to make sure first.
-
-
- TEXT RENDITION
- --------------
-
- If you really want to, you can change the "soft style" the console
- device uses to draw characters in the text area and the mode line. The
- possible values for these styles are:
-
- 0 plain
- 1 boldface
- 3 italic
- 4 underline
- 7 inverse
-
- About the only useful values are the ones for plain, boldface or
- italics. The default value for text is 0 (plain, of course), while the
- default for the mode line is 7 (inverse video). These can be changed by
- the appropriate #definitions of MODE_RENDITION and TEXT_RENDITION.
-
- The commands to change the rendition values are:
-
- amiga-text-rendition
- Set text area rendition
- amiga-mode-rendition
- Set mode line rendition (this is by far the more useful)
-
- COLOR
- -----
-
- You can set the colors the console device uses to draw the text you
- are editing. (This does not mean that you can specify *any* color; your
- choices are limited to the colors being used by Intuition to maintain
- the Workbench screen.) The commands that control this behavior are:
-
- amiga-text-foreground
- Sets the color used to draw the characters you see in the
- text area (distinct from the mode line area for each window).
- Accepts a number from 0 to 7. The value initially used is 1.
- You can get a reverse video screen by selecting 0 for this
- value and 1 for the background color
-
- amiga-text-background
- Sets the color used the draw the background behind characters
- in the text area. Accepts the same values as
- amiga-text-foreground. The initial value is 0.
-
- amiga-mode-foreground
- Sets the foreground color used by the mode line. If you
- set this to 0 and the background color to 1, you can get
- a reverse video mode line even when you select italics for
- the mode line rendition (see RENDITION)
-
- amiga-mode-background
- Sets the background color for the mode line. You should
- get the idea by now.
-
- ICONIFICATION
- -------------
-
- Leo Schwab wrote a set of very general routines for allowing an
- Amiga program to shrink its window to an icon. This icon can then be
- moved around on the screen, and re-expanded to its full size by a
- double click, like the one used to open a drawer. Amiga MG2a
- provides this capability through the function ``amiga-iconify'',
- which is bound to Echo-Mouse by default if the iconification code is
- present. Not only is this a great way to prevent screen clutter, but
- it also frees 50K of CHIP RAM while MG's window is iconified (on a 30
- line by 80 column mg window).
-
- To iconify the window, click the mouse in MG's echo line or issue
- the extended command ``amiga-iconify.'' To expand MG's window back
- to its full size, double-click on the MG2a icon in the same way you
- would on a disk or drawer icon. The icon can also be dragged
- about, and will remember its last position when the window is
- iconified again.
-
-
- FUNCTION LIST
- -------------
-
- For completeness, here is a list of all Amiga MG functions that are
- specific to the Amiga.
-
- amiga-iconify
- Iconifies the Amiga MG window.
- amiga-menu
- The entry point for using MG's Intuition menu. This function
- figures out which menu selection was used, then calls the
- appropriate function by name (not hard-coded key value)
- amiga-mouse
- Set dot to where the mouse is pointing. Two clicks in the same
- spot set the mark too.
- mouse-*
- Functions that first either 1) move point to where the mouse
- points to or 2) select the buffer associated with the mode line
- the mouse clicked in, then call the function indicated by the
- rest of the name. These functions are all "bound" to various
- mouse click keys.
- amiga-set-font
- Set the font used to draw characters inside the MG window.
- A positive argument is used for the size of the font, while
- a nonpositive argument requests that the font be set to the
- system default font. Menu items are not affected by this command.
- amiga-mode-rendition
- amiga-text-rendition
- Set the way your text (or the mode line) is rendered. Choose
- from 0 (plain), 1 (bold), 3 (italic), 4 (underline), or
- 7 (reverse video). 0, 1, and 3 are about the only really useful
- ones for text; 7 is the default for the mode line.
- amiga-text-foreground
- amiga-text-background
- amiga-mode-foreground
- amiga-mode-background
- Set the system color used to draw the characters in the text area
- and mode line. Accepts a value between 0 and 7; the default for
- the background is 0, the default for the text is 1.
- amiga-toggle-border
- Switch your window between resizable and borderless. Lets you
- take over the whole screen (80 columns! 48 lines in interlace!)
-