home *** CD-ROM | disk | FTP | other *** search
- MW.PRG is a program which lets you run multiple MiNT shells in GEM windows
- under standard AES. It advantage over MGR is that it is smaller, and using
- AES means you can run accessories along with MiNT shells. It emulates the
- vt52 just like an ST screen, except for color. Also, there are no graphics,
- and there is no provision for a program running in a window to determine or
- change the window's size or location. This may change. Programs that use
- VT52 escapes and those which use termcap work fine. Some programs probe
- line-A to determine lines-per-screen; in that case, use windows with the
- same number of lines as your non-GEM screen has. With the smaller fonts,
- such windows will fit completely on the screen.
-
- This program is placed unsupported in the public domain by Allan Pratt.
- It is not a product of Atari Computer Corporation. It is intended to
- be freely usable, freely copyable, and freely distributed.
-
- USAGE
-
- 1. Start up GEM from inside MiNT: put MiNT.PRG in the AUTO folder and
- then either run "gem.prg" from your shell or copy "gem.prg" to
- "init.prg" in the root of C: so it starts automatically.
-
- 2. MW needs to know the name of a shell that it can run in windows.
- Gulam is not a good choice: you can't run more than one Gulam
- shell safely under MiNT. MiNT's own "init" shell is fine (and
- as of the 11/91 release is really pretty cool). Bash and such
- should work, too.
-
- If you give MW a name on its command line, MW will run that program
- as the shell. Otherwise it looks in its environment for a variable
- SHELL. Failing that, it runs MWINIT.PRG from its current directory.
-
- THE MENU BAR
-
- FILE
-
- EDIT KEYS lets you edit the keyboard shortcuts. See the
- NOTES section for editing the resource to make your
- choices permanent.
-
- QUIT quits.
-
- OPTIONS
-
- SLIDERS and TITLE BAR control the existence of these
- components in new windows. Use SET GADGETS to set the
- current window's gadgets to match these options.
-
- AUDIBLE BELL and VISIBLE BELL set these options globally.
-
- WINDOW FLOURISH toggles the use of grow/shrink boxes
- when windows are opened, closed, and fulled.
-
- MOUSE FLICKER controls hiding the mouse. With it on,
- the mouse is constantly visible, but it flickers.
- With it off, the mouse can stay hidden until you move it.
- This is slightly faster and (IMHO) more pleasing, but
- works badly in conjunction with accessories.
-
- JERKY UPDATES controls the flow of data into a window.
- With it off, each line is displayed in the window as
- it arrives. With it on, multiple lines will be spooled
- and written to the window all at once, which is faster.
-
- OPERATIONS
-
- RENAME lets you change the name in the title bar of the
- window. It is normally the name of the shell started in
- that window.
-
- SHRINK shrinks the window to a small size and puts it
- out of the way at the right side of the screen. Click
- the full box to make the window big again (maybe; this
- is not perfect).
-
- HIDE TOP and SHOW BOTTOM are top-to-bottom and
- bottom-to-top operations.
-
- OTHER SIZE is equivalent to clicking the fuller. Its
- action might be surprising due to bad coding in the
- original UW.
-
- RESIZE lets you set the size of the virtual terminal in
- rows and columns.
-
- SET GADGETS sets the current window's gadgets (SLIDERS,
- TITLE BAR) to the states indicated in the OPTIONS menu.
-
- TOGGLE GADGETS lets you add a title bar and sliders to a
- window that doesn't have them. It toggles between the set
- of gadgets the window was created with and the full set. If
- the window was created with the full set, it toggles
- between that and no gadgets at all. Thus you can have
- a window with no gadgets, and "turn them on" only when you
- want to use them.
-
- WINDOW
-
- NEW 25x80 opens a new window with 25 lines and 80 columns
- in the current font from the FONT menu using the current
- settings of the SLIDERS and TITLE BAR options in the
- OPTIONS menu.
-
- NEW OTHER opens a window using the last "other" size you
- set using the SET OTHER menu item. This defaults to 50x80.
-
- SET OTHER allows you to set the size for windows opened
- with the "NEW OTHER" menu item.
-
- CLOSE closes the current window (but see NOTES below).
-
- FONT
-
- UW comes with several fonts. These, plus three system fonts
- (8x8, 8x16 and 6x6) are available in the FONT menu. The
- checked font is the font that new windows will be opened with.
-
- SET FONT sets the current window to the checked font and
- resizes it so it's the same size (in rows and columns) as
- before.
-
- NOTES
-
- The virtual terminal screen size is the number of rows and columns selected
- when the window was opened or resized with the RESIZE option. The window
- on the screen can not be made larger than full size, and making it smaller
- with the sizer gadget results in seeing only part of the virtual terminal
- screen. If you have sliders enabled you can scroll this window around on
- the virtual terminal screen.
-
- I like to run with the title bar on and sliders off. This takes up less
- room on the screen than the sliders, but still lets you move the window
- around.
-
- A window will actually close only when the process in it exits. Activating
- the closer or selecting the CLOSE menu item sends SIGHUP to the shell
- started in that window. The basic MiNT shell (INIT.PRG by Allan Pratt and
- Eric Smith) sends this signal along to its children, so they will die and
- the window will close.
-
- You can edit the resource file with a resource editor to change the
- hot-keys used for menu items. Any menu item with ASCII character 005
- followed by any character in it will have ALT plus that character as a
- shortcut. To work in this way, the character must be one of those
- regularly obtained on a key using CAPS LOCK: upper-case letters, numbers,
- and punctuation. The EDIT KEYS function relies on being able to change the
- last two chars of a menu item name, so leave at least two spaces as padding
- if you change the menu item names in a resource editor.
-
- VT52 EMULATION
-
- BEL: BEL (conditionally audible and/or visible)
- CR: CR
- BS: BS
- LF: LF
- TAB: TAB
- ESC: prefix:
-
- A Cursor up (stops at borders)
- B Cursor down (stops at borders)
- C Cursor right (stops at borders)
- D Cursor left (stops at borders)
-
- E Clear and home
- H home
- I Reverse index (currently same as cursor up)
- J Clear to end of screen
- K Clear to end of line
- L Insert line, pushing remainder of screen down
- M Delete line, pushing remainder of screen down
- (There is some optimization here, collecting consecutive calls)
- * S change status line (text up to \r is placed in title bar)
- Yyx Address cursor (yx is two chars, row and col, with 32 added)
-
- * a Delete character (removed)
- bx Set text foreground color
- cx Set text background color
- d clear from beginning of screen (needs testing)
- e enable cursor (not implemented yet)
- f disable cursor (not implemented yet)
- * h Enter insert mode
- * i End insert mode
- j save cursor location
- k restore cursor from saved location
- l clear this line, put cursor at left (needs testing)
- o clear from beginning of line (needs testing)
- p Enter inverse video
- q End inverse Video
- v Wrap at end of line
- w Discard at end of line (not implemented)
-
- * marks features unique to UW/MW
-
- ESC-b and ESC-c don't quite work as they do for ST's. The screen
- image is kept in a single-plane memory buffer. In that buffer, a
- '1' is foreground (text) and a '0' is background (blank). This is
- blitted to the screen, and with ESC-b and ESC-c you get to set the
- color that the foreground and background bits become. Instead of
- being character-by-character, though, it takes effect for the whole
- window. Also, the low bits of the character after ESC-b or ESC-c
- are taken as a VDI color number, not a physical or line-A color
- number. Thus, the sequence "ESC b 0 ESC c 1" sets the foreground to
- VDI color number 0 (the VDI background color) and the background to
- VDI color number 1 (the VDI foreground color). The low N bits of
- the argument character are used, where N is the number of planes
- in the video mode you're using.
-
- BUGS
-
- The full box doesn't really work as you expect. This is a bug from
- the original UW.
-
- Only certain fonts work: the ones that came with UW, and the
- three system fonts (6x7,8x8,8x16).
-
- Programs running in windows can't interrogate or set the
- window size or position, only the window title (using ESC-S).
-
- You can't save a configuration of windows or of options.
-
- You can't open a window with just any program running in it,
- just the shell specified at MW's startup time.
-
- The character-painting code in mwsubr could be really bad for all I
- know. I *know* that in "Jerky Updates" mode the whole screen is
- blitted to the window more often than it needs to be. I haven't
- looked at the actual character painting code at all. I've left that
- part alone as it arrived in the MW package.
-
- AUTHOR
-
- The actual terminal-in-a-window code is lifted from UW which was written by
- Hans-Marten Mosner at the University of Dortmund in West Germany, as
- enhanced by Brad Bosch and Bian Katzung at Lachman Associates, Inc., in
- Naperville, Illinois. See the file README.UW, which is their original
- README, for information about this implementation. Many of the features
- have been lost as a result of my ripping their window code out and using it
- in a new program, changing it from adm31 to vt52, and well as changing
- their data structures so you can use an inifinite number of windows.
-
- The MiNT stuff and a lot of other things are by me, Allan Pratt, of Atari
- Computer Corp. This is not an Atari product: it's free, public-domain,
- released unsupported into the world without let or hindrance.
-
- This is Version 2 of 11/1/91. If you have a version that still emulates an
- adm31, that's Version 1.
-
-