Path: utzoo!attcan!uunet!decwrl!elroy.jpl.nasa.gov!zardoz.cpd.com!dhw68k!macintosh From: werner@rascal.ics.utexas.edu (Werner Uhrig) Newsgroups: comp.sources.mac Subject: MacLayers 1.00 (part 1 of 6) Message-ID: <1990Jun1.070105.1489@dhw68k.cts.com> Date: 1 Jun 90 07:00:12 GMT Reply-To: layers@rascal.ics.utexas.edu Organization: U. Texas CS Dept., Austin, Texas Lines: 1047 Approved: bytebug@dhw68k.cts.com (Roger L. Long) [MacLayers 1.00 - part 1 of 6] --- #! /bin/sh # This is a shell archive, meaning: # 1. Remove everything above the #! /bin/sh line. # 2. Save the resulting text in a file. # 3. Execute the file with /bin/sh (not csh) to create the files: # # README # layers.1 # macbput.1 # MacLayers.doc # # This archive created: Thu May 31 21:58:05 1990 # By: Roger L. Long (macintosh@dhw68k.cts.com) export PATH; PATH=/bin:$PATH echo shar: extracting "'README'" '(2241 characters)' if test -f 'README' then echo shar: will not over-write existing file "'README'" else sed 's/^X//' << \SHAR_EOF > 'README' X Layers 1.0 Release X X *** CONTENTS *** X XThe following files are provided with the MacLayers package: X X README - this file X layers.1 - the layers command manual page X makefile - the layers makefile X layers.h - Unix source for the layers command X layers.c - ditto X protocol.c - ditto X layersize.c - Unix source for the layersize command X layertitle.c - Unix source for the layertitle command X MacLayers.sit.Hqx - the MacLayers Application download file X MacLayers.doc - the MacLayers User's Manual X macbput.c - a downloading utility X macbput.1 - the macbput command manual page X XThe MacLayers.sit.Hqx file is in hexbin format. After downloading it must be Xprocessed with a Stuffit compatible utility to produce the MacLayers Xapplication. X XMacbput is a public domain download utility for downloading macbinary files. XMacbinary files allow downloading to correctly set the Macintosh file creation Xdate and file last used date. The version with this package has an important Xbug fixed. X X X *** SUPPORTED SYSTEMS *** X XMacLayers has been successfully installed on the following systems: X X SunOS 4.0.3 X SunOS 3.2 X Sequent DYNIX 3.0.12 (#DEFINE SEQUENT) X Sequent DYNIX 3.0.4 (#DEFINE SEQUENT) X XMacLayers has failed to install on these systems: X X AIX 2.2.1 on IBM RT Unsupported ioctls X X X *** INSTALLATION *** X XThere are two ways to install the layers system: X X make install X X or X make installnopriv X XThe default is to install the 'layers' command set-uid which allows it to Xupdate /etc/utmp and perform chown/chmod on its allocated pseudo-ttys. XThis enables commands like 'who' to know about the presence of layers users Xand commands like 'write' and 'talk' to communicate with them. This is not Xa mandatory requirement however and the layers system will otherwise function. X XFor set-uid installers (especially Sequent users) there are a few customizing Xparameters which may be of interest at the front of layers.c. X X *end of document* SHAR_EOF if test 2241 -ne "`wc -c < 'README'`" then echo shar: error transmitting "'README'" '(should have been 2241 characters)' fi fi # end of overwriting check echo shar: extracting "'layers.1'" '(4858 characters)' if test -f 'layers.1' then echo shar: will not over-write existing file "'layers.1'" else sed 's/^X//' << \SHAR_EOF > 'layers.1' X.TH LAYERS l "17 March 1990" X.SH NAME X.PP Xlayers, layertitle \- Protocol for MacLayers Multiwindow Terminal Emulator for Unix X.SH SYNOPSIS Xlayers - start window protocol X.LP Xlayers [-l] [command] - create new window X.LP Xlayertitle string - retitle current layers window X.IX "layers" "start layers protocol, create new window" X.IX "layertitle" "rename current layers window" X.SH DESCRIPTION X.PP XMacLayers provides multi-window capability for a Macintosh (greater than 128K) Xconnected to a host UNIX(TM) system with sockets support. Each window may be Xassociated with a shell, login to a different host, or an individual Xcommand. Complete facilities are available for controlling the window Xand the associated host processes attached thereto. X.PP XTo use MacLayers, you must have the MacLayers vt-100 terminal emulation Xprogram on a Macintosh and the layers protocol program installed on your XUnix host. X.SH MACLAYERS OPERATION X.PP XThe Maclayers Application on the Mac starts up as a garden variety Xhost-to-terminal vt-100 emulator. (As such you can run it with any Xhost, not just a Unix machine.) Baud rate and other configurations are set Xby selections in the Control Menu. X.PP XEnter the X.I layers Xcommand to the Unix host using no options or parameters Xto start the layers protocol. The initial terminal window will be closed Xand replaced with a layers protocol window. A shell is run in this Xwindow, either /bin/sh or the shell indicated by your $SHELL variable. X.PP XYou can start a new shell layer by picking "New" on the Layers menu. You can Xalso start a new layer window by issuing the X.I layers Xcommand to a Xshell layer window. If you use no operands then the new layer window Xwill be a shell. However, you can specify any command you wish by Xsimply adding it as a parameter. Examples: "layers vi testfile.c", X"layers telnet earth." X.PP XIf you are specifying a shell then you can also elect to have it be a Xlogin shell by adding a -l option. This allows broadcast/write/talk Xcapabilities for that window. The initial layer window shell defaults Xto a login shell. X.PP XWhen a layer process group terminates its window is automatically closed. XMacLayers exits layers mode when the last (or only) layer window is closed. XYou may also use the Layers Menu "Shutdown" to terminate layers mode. XYou cannot quit the MacLayers application while in layers mode but must XShutdown the multi-window mode first. X.PP XYou can abort host X.I layers Xby using the Control Menu "Abort Host Layers" Xitem which is always available. This may be necessary if your Mac Xloses contact with the host and you restart the MacLayers application at Xwhich time the host would still be in multi-window layers mode while Xthe application would not. If the MacLayers application terminates due Xto a non-recoverable problem it will always issue an order to terminate Xlayers mode on the host before returning to the Finder. X.SH XMODEM DOWNLOADING X.PP XMacLayers has a download facility for downloading XMODEM MacTerminal X('macput' command) and MacBinary ('macbput' command) files. Straight Xvanilla XMODEM is not supported. XOnly one window can be doing a XMODEM download at any one time. XDownloading does not effect any other MacLayers operations so you can Xfreely use any other windows or applications (with MultiFinder) while Xa download is in progress. Remember though that the topmost window Xreceives the highest priority data transfer from the host. So for the Xfastest downloading keep the XMODEM layer window the active window. X.SH FILES X.PP X /usr/tmp/layers/ Directory created by X.I layers X /usr/tmp/layers//host.ttySocket Created by X.I layers X.SH AUTHOR XDave Trissel X.SH BUGS AND CAVEATS X.PP X *) The shell TERM variable must have the same value in your Xlayer shells as it does when you initially start X.I layers Xup. X.PP X *) If you set the BSD shell TERMCAP variable then that variable must Xbe set in your .login file. It may not be changed to something Xdifferent in .cshrc. X.PP X *) The X.I layers Xcommand will not properly work when being issued from a Xremote login into the same machine which is already running the Xinitial X.I layers Xstartup command. X.PP X *) There is no file upload facility. X.PP X *) MacLayers will access the disk less often if you have RAM Cache Xenabled on the Macintosh. X.PP X *)Layers must be installed as set-uid with owner root in order Xto be able to correctly change the owner of the tty device Xfile for each window. Special permission may also be Xrequired to write the file "/etc/utmp". X.SH SEE ALSO X.PP XThe MacLayers program is Xcompletely described in the manual that accompanies it. X.PP XManual page courtesy of Peter Newton. X.PP XUNIX(TM) is a registered trademark of American Telephone and Telegraph. XMacintosh is a trademark of McIntosh Laboratories and is licensed to Apple XComputer. SHAR_EOF if test 4858 -ne "`wc -c < 'layers.1'`" then echo shar: error transmitting "'layers.1'" '(should have been 4858 characters)' fi fi # end of overwriting check echo shar: extracting "'macbput.1'" '(2849 characters)' if test -f 'macbput.1' then echo shar: will not over-write existing file "'macbput.1'" else sed 's/^X//' << \SHAR_EOF > 'macbput.1' X.TH MACBPUT local "17 Mar 1990" X.UC 4 X.SH NAME Xmacbput \- send file to macintosh via macbinary protocol X.SH SYNOPSIS X.B macbput Xfile X.br X.B macbput X[ X.B \-rdu X] file X[ X.B \-t Xtype X] X[ X.B \-a Xowner X] X[ X.B \-n Xname X] X.SH DESCRIPTION X.I Macbput Xsends a file to a Macintosh running MacTerminal. XThe File Transfer Protocol settings should specify the "MacBinary" Xtransfer method. XMacbput will also work with other communications programs for the Mac X(e.g. MacLayers); Xconsult the user's manual for your macbinary-compatable communications Xprogram for more information. XThis manual page will only address the use of macbput with MacTerminal. X.PP XTo use this program, log into the unix system using MacTerminal, Xand run macbput specifying the desired options and one file to be sent. XIf MacTerminal is properly configured, it will recognize that a file Xis arriving on the serial line and put up an indicator showing how Xmuch of the file has been sent. XSeveral Control-X's may be used to force macbput Xto give up if the transfer fails. X.PP XIf none of the X.B \-rdu Xflags are specified, X.I macbput Xsends three unix files to the Mac: X.IB file .info , X.IB file .data , Xand X.IB file .rsrc . XThese specify the three parts of one Mac file: the .data file Xbecomes the data fork, the .rsrc file becomes the resource fork, Xand the .info file specifies the sizes of the two forks, as well Xas the file name, file type, creation date, and other information. XThis is useful for returning files to the Mac which were stored Xusing macget or macbget. X.PP XThe X.B \-r Xflag specifies X.I resource Xmode. XEither X.IB file .rsrc Xor X.I file Xwill be sent to the Mac, along with a forged X.B .info Xfile and an empty X.B .data Xfile. XThe file sent becomes the resource fork of the Mac file. X.PP XThe X.B \-d Xflag specifies X.I data Xmode. XEither X.IB file .data X, X.IB file .text Xor X.I file Xwill be sent to the Mac, along with a forged X.B .info Xfile and an empty X.B .rsrc Xfile. XThe file sent becomes the data fork of the Mac file. X.PP XThe X.B \-u Xflag requests X.I unix Xmode, which is the same as X.I data Xmode except unix newline characters are converted Xinto carriage returns. XHuman-readable unix text files sent to the Mac using this option Xwill be compatible with applications which expect "text only" files. X.PP XThe remaining options serve to override the default Xfile type, owner, and file name to be used on the Mac. XThe default type and owner for X.I resource Xand X.I data Xmode defaults are "????", "????", and X.I unix Xmode defaults are "TEXT" and "MACA". X.SH SEE ALSO Xmacput(local), macget(local), xbin(local), macbin(local), mcvert(local) X.SH BUGS XThe macbinary protocol may not work over flow controlled communication lines, Xsome terminal concentrators, or when using rlogin. X.SH FEATURES XProperly initializes the Creation Date. X.SH AUTHOR XOriginal base code: Dave Johnson, Brown 7/31/84 SHAR_EOF if test 2849 -ne "`wc -c < 'macbput.1'`" then echo shar: error transmitting "'macbput.1'" '(should have been 2849 characters)' fi fi # end of overwriting check echo shar: extracting "'MacLayers.doc'" '(30876 characters)' if test -f 'MacLayers.doc' then echo shar: will not over-write existing file "'MacLayers.doc'" else sed 's/^X//' << \SHAR_EOF > 'MacLayers.doc' X X MacLayers Document X X Version 1.00 March 17, 1990 X XMacLayers provides multi-window capability for a Macintosh connected Xto a host UNIX(TM) system with sockets support. Each window may be Xassociated with a shell, login to a different host, or an individual Xcommand. Complete facilities are available for controlling the window Xand the associated host processes attached thereto. X X X What You Need To Run MacLayers X X1) A Unix host which supports the sockets protocol. X X2) A Macintosh with more than 128k of RAM and connected to the host. X X3) The MacLayers Macintosh Application provided with this package. X X4) The Unix host server command 'layers' provided with this package. X X5) If you want to resize windows which are logged into a second BSD X machine or resize windows on a BSD machine running in non-layers X mode then you need the 'layersize' command provided with this package. X X6) If you want to specify window titles on your own (such as to indicate X your current directory or other such information) you need the Unix X 'layertitle' command provided with this package. X X X X MacLayers Operation X XThe MacLayers Application on the Macintosh starts up as a garden variety Xhost-to-terminal vt-100 emulator. (As such you can run it with any Xhost, not just a BSD machine.) Baud rate and other configurations Xare set by selections in the Control menu. MultiFinder is fully Xsupported so you can use other applications while MacLayers is Xexecuting and downloading. X XThe initial or any document window may be saved via the "Save As" File Xmenu option. When this happens the file is designated as a MacLayers Xapplication document and contains not only logged text from the host Xcommunications in that window but also the current Control menu settings. X XOnce the initial 'layers' command is executed on the host (use no options Xor parameters) MacLayers and the host start operating in MacLayers Xprotocol mode. Automatically the document file window is closed and Xreopened as layer number 1 running with a new shell. The shell is either X/bin/sh or the shell indicated by your $SHELL environment variable. XThe term 'layer' refers to a process group running on the Unix host Xand the associated MacLayers window to which the group is attached. X XThe Macintosh Layer menu list shows the status of currently opened layers Xand read-only text files (described later). Selecting the menu item Xbrings the associated window up front. X XLayer number 1 is always associated with your startup document. Its Xshell identifies itself to the host as your login shell so that broadcast Xmessages and commands like 'talk' and 'write' will be properly redirected Xto that window. (The current mesg(1) state remains unchanged.) X XYou can start a new shell layer via the New menu item from the Layers Xmenu. You can also start a new layer window by issuing the 'layers' Xcommand in a shell layer window. If you use no operands then the new Xlayer window will be a shell. However, instead of a shell you can specify Xany command you wish by simply adding it as a parameter. Examples: X X layers vi testfile.c X X layers telnet earth X XIf you are specifying a shell then you can also elect to have it be a Xlogin shell by adding a -l option. This allows broadcast/write/talk Xcapabilities for that window. By default only the document layer X(number 1) always starts out as a login shell. X XThe host is always kept informed of your current window size and programs Xusing curses(3) like 'vi' and 'more' will properly adapt. However, most Xutilities only size the window once when they start up so changing Xthe window size is verboten after they are running. MacLayers normally Xdisallows window resizing when it recognizes that you are running such Xa program. This can be overridden by holding down the shift key when Xresizing the window. A 'vi' symbol appears in the lower right window X'growbox' area when MacLayers detects you are running a cursor moving Xtype of program. Zooming also is disallowed at this time unless both the Xzoomed and non-zoomed state have exactly the same character line width Xand height. X XSee the section "Logging Into Another Host" below for information on Xproper window sizing when your window is being used to do a login command Xinto another host. X X Note: You may have to hit return once after some programs terminate X to get MacLayers to recognize you are out of 'vi' mode. X XThe "enter" key is typically used to send a break (SIGINT) to all Xprocesses associated with that layer window. The method can be configured Xin the Control menu Terminal item. X XYou may terminate the window's processes with the Layers menu X"SIGTERM/SIGHUP Layer" item. The layer may also be killed by closing its Xwindow (SIGHUP). When a layer process group terminates on the host Xits window is automatically closed. X XMacLayers exits layers mode when the last (or only) layer window is closed. XYou may also use the Layers menu "Shutdown" to terminate layers mode. XYou cannot quit the MacLayers application while in layers mode but must XShutdown the multi-window mode first. X XYou can abort host layers by using the Control menu "Abort Host Layers" Xitem which is always available. This may be necessary if your Macintosh Xloses contact with the host and you restart the MacLayers application at Xwhich time the application would not be in layers mode but the host would. XIf the MacLayers application aborts due to a non-recoverable problem Xit will inform the host to terminate layers mode before returning to the XFinder. X X More About Window Sizing X XEach MacLayers window has two complete window size environments, a zoomed Xstate size and a non-zoomed state size. Each state may have its own Xassociated font size and screen location. When you change the window size Xby dragging the grow corner (bottom right) you convert the window into Xits zoomed state. Clicking the zoom box in the title bar switches between Xthe two states. Simply moving a window doesn't change its state. Both the Xfont and size for the two states can be set by the Control menu "Default XWindow Settings" and "Current Window Settings" items. The default item Xsettings are used when any new windows are created. X X Logging Into A Secondary Host X XIf you log onto another system from within a layer window then that system Xwill not know of your current window's size. MacLayers provides you with Xa way to inform that system of this information if the system is a BSD Xor System V Unix. X XFor remote BSD systems you can execute the 'layersize' command provided Xwith this package. (The command must be copied or built on the remote Xsystem and be accessible by your shell there.) When at the shell command Xprompt select the Control menu item "Inform BSD of Window Size" and a Xstring will be sent invoking the 'layersize' command. This informs the Xremote kernel of the current process window size. If your BSD .login or X.profile uses the 'tset' command to set the terminal type then you must Xadd the -I option to keep 'tset' from forcing each login window to be Xtreated as always having 24 lines (the vt-100 default.) X XSystem V allows window (actually screen) sizes to be specified with Xthe environment variables "COLUMNS" and "LINES". You can automatically Xset these shell variables when at a shell command prompt by selecting Xthe Control menu "Inform System V of Window Size" item. X XIt is up to you to inform the indirect login host of any window size Xchanges by using the menu items. Your terminal type on such hosts Xshould be specified as vt100 if you wish to execute screen oriented Xcommands such as 'vi' or 'more'. X X Other Capabilities X X Cursor Positioning In 'vi' Mode X XWhen in 'vi' mode MacLayers provides a useful cursor moving feature. XDouble-clicking in the window causes a series of vi commands to be Xissued which cause the insertion cursor to move to that location. XYou must not be in vi insert mode or the commands will simply be taken Xto be text that you have typed. (You can do that just for fun to see Xwhat MacLayers sends on a double-click.) X X Read-only Text Files X XMacLayers can open up text files as read-only windows by using the X"Open Text" File menu. Such windows can have their contents copied to Xthe clipboard but may never be altered in any way. Text window titles show Xthe circle-r (registered trademark) to let you know they are read-only Xand a "no-write" symbol appears at the bottom right portion of the Xwindow (the "grow" area.) X X Window Aliasing X XAt times you may wish to view two portions of a communication window's Xcontents at one time. The File menu "Open Window Alias" will create a Xnew read-only window for any communications window and this can be Xscrolled to any independent position desired just like a text-only window. X XSince in-coming text from the computer always forces a window to the Xbottom for proper capturing, the window aliasing feature can be used Xto open a surrogate window that is immune to this action. X X XMODEM Downloading X XMacLayers has a download facility for accepting downloaded XMODEM XMacTerminal ('macput' command) and macbinary ('macbput' command) files. XStraight vanilla XMODEM is not supported. A copy of the public domain Xmacbinary downloading program 'macbput' is provided with this package. X XOnly one window can be doing a XMODEM download at any one time. XDownloading does not effect any other MacLayers operations so you can Xfreely use any other windows or applications (with MultiFinder) while Xa download is in progress. Remember though that the topmost window Xreceives the highest priority data transfer from the host so for the Xfastest downloading keep the XMODEM layer window the active window. X XThe File menu "Download Site" can be used to preselect the location Xwhere downloads are to occur. By default files are placed where the Xstartup document resides. This setting is forgotten each time the XMacLayers application terminates. X XIf you have an error-free line then setting the "Fast" mode in the XControl menu "File Transfer" selection will speed up download by about X28%. X X Downloading Examples X XThe macbput utility provided with this package can be run on the host XUnix system and is used to ship files to a Macintosh running MacLayers. X(Some Unix systems already have a utility called macput which is used in Xexactly the same way. But macbput properly updates Macintosh file dates Xconcerning the time of original creation and last use.) X XTo download a standard Unix text file, for example one created by a Xeditor such as vi or emacs, enter the following command: X X macbput -u filename X XThe transfer will start automatically and will create a Macintosh file Xof type TEXT on the Macintosh which can be opened by applications such as XMacWrite and Word. X XOther types of Macintosh files and applications may also be downloaded. XOn the host Unix system they may take on one of many forms. If you have Xa single file which ends in the name "hqx" then it must first be converted Xinto three files with names ending in .info, .data and .rsrc with a Xutility such as xbin (not provided.) X X xbin filename.sit.hqx X XIf you have the .info, .data and .rsrc files then you are ready to Xdownload with the macbput (or macput) command. Specify only the front Xpart of the file name, the part before the .info, .data and .rsrc. X X macbput filename.sit X XThe transfer will start automatically and upon completion a copy of the Xfile will be available on the Macintosh. X XSometimes the host version of the file will not be in three pieces but Xinstead exist as a single binary (non-text) file. These are called Xmacbinary files and almost always end in the suffix ".bin". Macbinary Xfiles may be converted to the three file info, data and rsrc format with Xutilities such as "mcvert" (not provided) and then downloaded with macbput Xas above. It is also possible to directly download a macbinary file if Xyou have a so-called XMODEM download utility. (One such utility is Xcalled "xmodem".) To accomplish this, issue the download command on the Xhost: X X xmodem -sb filename.bin X Xand then select the File menu "Download File" item. The download Xshould start at that time. But if it doesn't you may have to invert the XControl menu "File Transfer ..." CRC/Checksum selection and try again. XNote that downloading via XMODEM utilities will not auto-start the Xprocess on the Macintosh. You must use the "Download File" menu item Xto start the Macintosh side of the operation. X X Paste Speed X XUnix is known for the ease with which its tty device drivers can be Xoverrun by input. (This causes data to be lost.) MacLayers provides Xtime delay options which can be set for pasting text into a window. X(Data pasted into a window is sent on to the host.) The options are Xin the Control menu "File Transfer" selections. X X Preferences Menu Item X XThe Control menu Preferences item provides user selectable options for Xhighlighted text format and cursor display among other things. X X Window or Selection Printing X XThe entire window or the current selection may be printed by activating Xthe File menu "Print" entry. If you have an early Macintosh model with Xonly 64K of ROM then printing will refuse to work due to Apple's lack of Xsupport for that machine in the MPW programming environment. X X Vertical Window Scrolling With Keyboard Keys X XYou can scroll the active window up or down via the key sequences given Xbelow. The second sequence for each option is an alternate provided only Xfor keyboards not having arrow keys: X X COMMAND+UPARROW scroll back one page X or COMMAND+"'" X X COMMAND+DOWNARROW scroll forward one page X or COMMAND+'/' X X COMMAND+OPTION+UPARROW scroll back one line X or COMMAND+OPTION+"'" X X COMMAND+OPTION+DOWNARROW scroll forward one line X or COMMAND+OPTION+'/' X X COMMAND+SHIFT+UPARROW scroll to the top of the file X or COMMAND+SHIFT+"'" X X COMMAND+SHIFT+DOWNARROW scroll to the bottom of the file X or COMMAND+SHIFT+'/' X X Horizontal Window Movement With Keyboard Keys X XMacLayers does not directly support horizontal scrolling of window contents. XHowever, the entire window can be easily moved right or left with keyboard Xsequences. Requesting a movement right or left will bring the opposite Xedge of the window into view on the screen. If the opposite edge is Xalready in view then the window is moved still further in the indicated Xdirection. X XThis capability when used with the vertical scrolling key sequences allows Xsmall screen Macintosh users to comfortably manipulate windows that are Xwider than the screen. X XHere are the key sequences provided. The second sequence for each option Xis an alternate provided only for keyboards not having arrow keys: X X COMMAND+LEFTARROW X or COMMAND+'<' move window left X X COMMAND+RIGHTARROW X or COMMAND+'<' move window right X X X Tandem Scrolling X XHolding the shift key down while selecting a vertical line or page Xscroll with the mouse will automatically cause the same scroll to be Xattempted on the next lower MacLayers window (if any.) This is handy Xwhen eyeballing two long similar sections of text for differences. X X Special Keyboard Sequences X XFor emacs users MacLayers allows a metakey sequence to cause bit 7 (the Xhigh bit in a character) to be set. Combining both the command and Xoption keys with any other key sequence will cause bit 7 to be forced Xon. Thus, keyboards having a built-in control key can generate all 256 Xpossible 8-bit characters. Macintoshes with old non-ADB keyboards will Xignore this treatment for the "'" or "/" characters since they are Xrequired for the window scrolling movements indicated earlier. X XFor users requiring the generation of ASCII NUL (a zero byte, sometimes Xcalled the IDLE character) an alternative to CONTROL-@ (also CONTROL-2) Xis to issue CONTROL-space (also OPTION-space.) This follows vt-100 Xterminal convention. X X Find Capabilities X XThe Find menu items allow searching windows for specific contents or Xgoing to the current selection. X X Iconed Window Capability X XA unique feature of MacLayers is the ability to shrink a window to an Xicon. While iconed the window will still actively display its contents Xand scroll just like a standard sized window. X XTo iconize a window simply double-click its title bar or select the XIconize menu item from the Layers menu. While iconed the window may be Xmoved around just like a Finder Icon and the miniaturized window retains Xits own independent location. X XA window is deiconized when you double click it, type input to it as the Xtop window, select it with a Layers menu item, or select the Deiconize XLayers menu item. X XJust for fun MacLayers allows you to scroll a iconed window with the Xvertical scroll keys (defined earlier) without causing it to deiconize. X XFor users running under MultiFinder standard windows can be auto-iconed Xtemporarily while MacLayers is not the front most application. A check Xbox in the Preferences menu dialog box enables this action. If checked Xthen holding the shift key down while switching to another application Xwill temporarily inhibit the auto-iconing. X X Icons to Default Positions X XThis menu selection from the Control menu item resets the positions of Xall iconed windows such that when iconed they appear along the top, right, Xleft or bottom of the screen. There is also an option for the bottom where Xonly the titles show. This allows the user to treat the titles of iconed Xwindows as though they are buttons at the bottom of the screen. By double Xclicking the button (which is really the title of the iconed window) Xthe window returns to its full size. X XThe menu item simply resets the position for all icon windows to the Xdesignated choice selected in the Preferences dialog. They may then be Xmoved again by you to other areas of the screen. X X Shrink Window To Title X XAt times the desktop becomes too cluttered so MacLayers provides yet Xanother feature to ease the busy desktop problem. Any MacLayers window Xcan be shrunk to just its title bar by shift-double-clicking the title bar Xor selecting the Titleize item from the Layers menu item. In effect the Xwindow is still there but only the title bar remains visible. The window Xremains titled even if output is being sent to it. Moving the title bar Xhas the same effect as moving the window. X XThe window may be detitleized by double-clicking the title bar or selecting Xthe Detitleize item from the Layers menu. X X Hide Window Capability X XYou may also completely hide any MacLayers window at any time by selecting Xthe Hide item from the Layers menu. The window will stay hidden until Xoutput is sent to it from the host or you reactivate it from the Layers Xmenu. X X Cycling Through Windows X XAll active MacLayers windows may be displayed one after the other in Xnumerical order by selecting the Layers menu Cycle item. Hidden windows Xdo not appear in the cycle list. X X Specifying a Layer Window Title X XThe 'layertitle' command provided with this package allows a single Xargument (which may be a string) to specify a title to be displayed Xfor the controlling window of the process. The source for this command Xshould compile and execute on any Unix system and so can be used even for Xwindows which are logged into remote hosts. X XAn example use of this feature is to create your own "cd" directory Xchange shell command and have it always display the current directory Xname in the title bar. X XExpert users can examine the 'layertitle' source code to discover Xthe control sequence needed to send the ANSI Private Message string which Xactually causes the new title to be recognized. Knowing this sequence Xstandard shell echo facilities can be used in place of the 'layersize' Xcommand. X X Sending an Interrupt to a Window Process X XThe Send Interrupt To Layer item of the Layers menu causes a internal Xpacket to be sent to the host indicating that a SIGINT signal be sent to Xthe UNIX process group attached to the window. This is only available in Xlayers mode. X XAt times the UNIX tty mode settings for a process may become garbled Xand if the Enter key is sending DEL or CONTROL-C this may not be enough Xto interrupt the process. Selecting this menu item bypasses the tty Xdriver and so ensures that an interrupt signal is received. X X Reset Terminal X XOccasionally you may have bad data transmitted to the Macintosh which can Xcause the vt-100 emulation to enter a special graphics mode or setup Xa vt-100 screen scrolling area smaller than your full window size. If this Xoccurs the Control menu item "Reset Terminal" will reinstate normal Xoperation. This in no way affects layers mode operation. X X Sending Break in Layers Mode X XA hardware 'break' can be placed on the host serial line with the Control Xmenu Send Hardware Break item. However, when in layers mode this is only Xallowed if the line is idle to guarantee that no internal control packets Xbecome garbled or lost. A beep occurs when the line is busy. X X Aborting Current Activity X XPaste and XMODEM operations may be aborted by entering COMMAND-period X(cmd-.). X X Use of the Macintosh RAM Cache X XFor the last few years versions of the Macintosh operating system have Xprovided a RAM cache feature configurable in the control panel to speed Xup data transfers to floppy and hard disks. There are two types of Xenvironments where this option is especially useful with MacLayers. X XThe first situation is for users running off of floppy disks. In this case Xrunning with at least the minimal RAM cache size of 32K will inhibit the Xconstant whirring of your diskettes and improve screen text display speed. X XUsers using high-speed communication connections (9600 and above) make up Xthe second group that may need to run with the RAM cache turned on. This Xis necessary to avoid data loss when receiving large amounts of Xuninterrupted data. An example of this would be the listing of a large Xsource file directly to your window. Once the RAM cache is filled it Xpurges itself by writing the cached data to an output file. The Macintosh Xserial driver can lose high speed data coming in if diskette or hard disk Xaccesses are being done at the same time. (This is called data overrun.) XUsers with this potential situation need to guarantee that the size of Xtheir ram cache is at least as big as the largest amount of data they Xwant to capture. (This does not concern XMODEM transfers. They do not Xrequire RAM cache although cache of at least minimum size can speed Xthese up as well.) X X Disk Full Processing X XMacLayers will put up a warning box and delete all data in the scroll Xfile up to the current output position if the disk where the file resides Xbecomes completely filled. X X Minimal Memory Environment X XFor users with extremely tight memory requirements MacLayers can be forced Xto run in a memory partition approximately 95k bytes smaller than normal. XWhen run in this manner MacLayers will beep at startup and issue a warning Xthat only a single window is allowed. No more than one window can be open Xat a time and no read-only text windows are available in this mode. Also, Xthe maximum size of data handled by cut and paste operations is more Xrestrictive. X X Enhanced Terminal Capabilities X XMacLayers supports standard vt-100 terminal protocol as described in BSD XTermcap(5) and System V Terminfo(4). But there are also two extra Xcapabilities which can speed up screen updating particularly with screen Xeditors. UNIX users who specify vt100 terminal type only for the sake Xof running MacLayers can include these extra capabilities by using the Xreplacement terminal descriptions below. These not only include the extra XMacLayers terminal capabilities but also remove timing waits required Xby real vt-100's thus providing even further speed improvements. X XFor BSD Termcap the following description can be used: X X # MacLayers vt-100 Termcap X d0|vt100|vt100-am|MacLayers dec vt100:\ X :cr=^M:do=^J:nl=^J:bl=^G:co#80:li#44:cl=\E[;H\E[2J:\ X :le=^H:bs:am:cm=\E[%i%d;%dH:nd=\E[C:up=\E[A:\ X :ce=\E[K:cd=\E[J:so=\E[7m:se=\E[m:us=\E[4m:ue=\E[m:\ X :md=\E[1m:mr=\E[7m:mb=\E[5m:me=\E[m:is=\E[1;24r\E[24;1H:\ X :rf=/usr/lib/tabset/vt100:\ X :rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:ks=\E[?1h\E=:ke=\E[?1l\E>:\ X :ku=\EOA:kd=\EOB:kr=\EOC:kl=\EOD:kb=^H:\ X :ho=\E[H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:ta=^I:pt:sr=\EM:vt#3:xn:\ X :sc=\E7:rc=\E8:cs=\E[%i%d;%dr:\ X :dc=\ED:ic=\EI: X XThe System V Terminfo specialized definition is: X X # Special System V Terminfo definition for MacLayers vt100 X vt100|vt100-am|dec vt100 without tabs and with MacLayers extras, X am, mir, msgr, xenl, xon, cols#80, lines#24, vt#3, X acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, X bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=\r, X csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\b, X cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C, X cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, X dch1=\ED, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0, X home=\E[H, ich1=\EI, ind=\n, ka1=\EOq, ka3=\EOs, kb2=\EOr, X kbs=\b, kc1=\EOp, kc3=\EOn, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, X kcuu1=\EOA, kent=\EOM, kf0=\EOy, kf1=\EOP, kf10=\EOx, kf2=\EOQ, X kf3=\EOR, kf4=\EOS, kf5=\EOt, kf6=\EOu, kf7=\EOv, kf8=\EOl, X kf9=\EOw, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, rmkx=\E[?1l\E>, X rmso=\E[m, rmul=\E[m, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, X sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t^N%e^O%;, X sgr0=\E[m^O, smacs=^N, smkx=\E[?1h\E=, X smso=\E[1;7m, smul=\E[4m, tbc=\E[3g, X X X X Hints X X *) MacLayers must internally handle your window display differently X whenever the cursor is being positioned above the bottom line such X as occurs during the execution of a screen editor on the host. The X "vi" symbol is displayed in the grow box during this time to indicate X this special mode. During so-called "vi" mode you are not allowed X to change the window size. Holding the shift key down will override X this restriction and allow you to resize the window. But remember X that if you are running a utility then the utility may not be able X to dynamically adjust to a new window size. If it can then you must X do whatever is required of the utility to inform it of the change. X X At times MacLayers may think the window is still in "vi" mode even X after an editor or cursor controlling utility has finished. One X instance of this is immediately after a "clear screen" command. X MacLayers does not know to go out of "vi" mode until a new line is X added to the very bottom of the screen causing the screen to scroll X up a line. If the window has stayed in "vi" mode and you want to X resize it simply hold the shift key down or type empty lines to the X shell until the window begins to scroll again. (The "vi" will then X disappear from the grow box.) X X *) When running in layers mode the host/MacLayers interface always X uses vt-100 protocol regardless of your TERM terminal type setting. X Thus if you only set your TERM variable to vt100 to run MacLayers X and you always run in layers mode then you need not bother actually X setting vt100 as your Unix terminal type. X X *) As mentioned at the start of this document MacLayers can be used X as a normal vt-100 terminal emulator when connected to any host X computer. On BSD and System V systems you can also use the variable X sized window feature in non-layers mode by following the same X instructions given for logging into a remote host as described X in the "Logging Into A Secondary Host" section above. (This also X holds true for a layers host before the layers command is entered.) On X systems other than BSD and System V changing the current window X size may garble output unless there is a means for you to notify X your connection of the new window size. X X X Problems/Caveats X X *) The current version does not do data validation with packet retry for X MacLayers/host internal communication. Thus poor line conditions may X cause a host internal message to be missed. This is usually not X catastrophic but means something won't work correctly. For instance X a window might not auto-close when a host process death occurs or X output might be sent to the wrong window. X X *) The shell TERM variable must have the same value in your X layer shells as it does when you initially start layers up. X X *) If you set the BSD shell TERMCAP variable then that variable must X be set in your .login file. It may not be changed to something X different in .cshrc. X X *) The host/MacLayers system attempts to give highest data communication X priority to the topmost MacLayers window at all times by throttling X down output to other windows. However due to internal UNIX kernel I/O X buffering the attempts may not always succeed. X X *) The "Download Site" folder is always kept open which means if you X want to trash the folder you must first choose a new download site or X quit MacLayers. X X *) MacLayers has U.S. keyboard dependencies. X X *) The layers command will not properly work when being issued from a X remote login into the same machine which is already running the initial X layers startup command. X X *) If a layers window text file is read as a file of type TEXT by another X application and that file has highlighted characters (as sent by the X host) embedded within it then those characters will appear as garbage X in that application. (Specifically such characters have the high bit X [bit 7] on.) X X X Bugs X X *) Occasionally during or after a cursor moving utility has executed if X the window is scrolled backwards then when it is eventually scrolled X forward to the bottom (last) line of the file the bottom line will X be missing from the display. If you can reproduce this problem then X please send a complete description of how to do so to X X uunet!rascal.ics.utexas.edu!layers-reply X X X X Acknowledgement X X The author owes a big thanks to Werner Uhrig and his band of testers at the X University of Texas for the many bug reports and suggestions delivered X during the intensive beta testing phase of this product. MacLayers is a X substantially improved application as a result. X X Dave Trissel X Austin X X X XUNIX(TM) is a registered trademark of American Telephone and Telegraph. X XMacintosh is a trademark of McIntosh Laboratories and is licensed to Apple XComputer. X X **** end of document **** SHAR_EOF if test 30876 -ne "`wc -c < 'MacLayers.doc'`" then echo shar: error transmitting "'MacLayers.doc'" '(should have been 30876 characters)' fi fi # end of overwriting check # End of shell archive exit 0 --- end of part 1 ---