@device(postscript)
@make(report)
@style(font allpostscriptfonts, size 12, spacing 1 line, indent 0.0 inches, rightmargin 0.8 inches, topmargin 0.9 inches, bottommargin 0.9 inches)
@begin(transparent, font souvenir, size 14)
@begin(titlepage)

@center(
@begin(transparent, font avantgarde, size 18)@i(M.I.T. Ocean Engineering) @end(transparent)@begin(transparent, font helvetica, size 18)@y(B)@end(transparent)@begin(transparent, font souvenir, size 18) @p(Project Athena)@end(transparent)
)

@bar(0)

@begin(titlebox)
@majorheading(An Introduction to Athena)

@majorheading(for Ocean Engineers)

@majorheading(Part II: The Rest of the Story)

@end(titlebox)

@center(
@researchcredit(
@p(By Ian Busch)

@p(7-321, x3-0050)
))
@p(Created: 12 June 1989)

@blankspace(-0.2 lines)
@p(Revision A.1: 21 August, 1989)

@blankspace(-0.2 lines)
@p(Revision B.1: 4 September, 1989)

@blankspace(-0.2 lines)
@p(Revision C.2: 24 August, 1990)

@end(titlepage)
@end(transparent)

@begin(transparent, font newcenturyschoolbook, size 11)





@appendix(What Athena Is)
@blankspace(1 line)


When you log on you are actually taking advantage of several computers simultaneously.  The way in which they are connected to the workstation you are using is shown in Figure 1. It isn't necessary to learn all of the guts of Athena in order to use it for mundane things, so if this part is confusing, don't worry to much.  Athena is like a car; you don't have to know how every part of a car works to drive it, but it helps if you want to do something unusual.

@figure[
@center(@graphic(postscript="Cluster_scheme_1.idraw", boundingbox="1.0 inches,1.5 inches, 7.5 inches, 9.5 inches"))

@center(@b(@ux(Figure 1: The Network, Servers, and Workstations)))
]

Athena consists of a distributed system of smart terminals (workstations) and file servers.  These file servers and terminals are interconnected over a network.  This diagram may look confusing, but the whole system is very effective.

When you are logged in to a terminal, anytime you need to talk to another computer within athena you do so through the @i(cluster server).  The cluster server is a minicomputer with the sole function of taking care of the needs of the workstations connected to it.  There are about a dozen of these machines all over campus, located nearby each of the clusters of terminals.

When you log in, your cluster server verifies your password and identifies you with the help of the security systems.  It then looks for your @i(home directory).  Your home directory has all of your files and programs.  The cluster server @i(attaches) your home directory to your account so that you can use the files in it.  Sometimes, if there is a problem with the network, or one of the mainframes you need is down, it won't be able to attach your home directory.  If this happens, it will tell you, and just follow the instructions.  

Your home directory is actually stored on one of the @i(Network File Server (NFS)) machines.  This machine is also a mainframe.  It has the sole purpose in life of storing your account and those of other users.  In fact, almost every kind of information you use on athena is stored on an NFS machine.  When you log on, the cluster server first locates the machine associated with your account, and then opens it up for your use.  This file server is not necessarily anywhere nearby.  Some OE people's home directories are on machines as far away as E40.  

When you use a program not in your directory, Athena finds the machine that the program is on and then loads it onto your terminal (but not necessarily your account) for use.  Each of the terminals on Athena are @i(smart).  This means they process programs themselves.  I've heard people relating that each of the slowest workstations has the computing power of a VAX 11/730.  And all at our finger-tips, wow......

This smart terminal capability means that once a program has been located and loaded on to a terminal, it can be run just as fast regardless of the number of the people on the system.  The down side of this is that when more people are on the system, it takes longer to locate a new file.



@appendix(Sending and Receiving Messages)
@blankspace(1 line)

There are two forms of message sending on Athena.  One is a traditional mail routine known as @i(mh) for mailhandler.  The other is a quick and dirty notification service known as @i(Zephyr).

@appendixsection(Mail Messages)
@blankspace(1 line)

The mail routine on Athena is fairly straightforward.  If you get a message when you log on that you have received mail, then you first need to @i(incorporate) it into your account.  To do this type:

@begin(transparent, font courier)
@b(athena%) @p(inc)
@end(transparent)

Now, you can use the @i(show) command to see what was sent to you.

@begin(transparent, font courier)
@b(athena%) @p(show)
@end(transparent)

This will show the messages that you have received.  You can also see other messages by typing the number of the message you want to read:

@begin(transparent, font courier)
@b(athena%) @p(show 2)
@end(transparent)

Shows message number 2.  All messages, once incorporated, are placed in a directory called:

@begin(transparent, font courier)
@b(/mit/)@p(yourusername)@b(/Mail/inbox) 
@end(transparent)

If you change directories into it and do a listing you will see a series of numbers, each of which is a message:

@begin(transparent, font courier)
@b(athena%) @p(cd /mit/yourusername/Mail/inbox)

@b(athena%) @p(ls)

@b(1  2  3  4  5) 
@end(transparent)

Each of these messages can be copied, removed, deleted, renamed, moved, and edited just like a regular file.  Frequently, you may want to copy one to another directory and to another name.  You can do this with the move commands described back in the quick guide.  If you want to send mail, simply type:

@begin(transparent, font courier)
@b(athena%) @p(comp) 
@end(transparent)

for compose.  This will create an emacs window to edit the message in (See the Emacs section for more details on using the editor).  Type the intended recipients @i(username) after the To:, and anyone else you want to get it after the cc:.  When you're done, type <Control-x><Control-s> and then <Control-x><Control-c>.  When it says "what now?", type @b(send).

@begin(group)
@bar(0)

If you want to send a file, type:
@begin(transparent, font courier)
@b(athena%) @p(mhmail) @i(username) @p(<) @i(filename)
@end(transparent)

@i(This above line is a change from the original version of this document.  The 12 June 1989 version incorrectly described this command.)

@bar(0)
@end(group)
@blankspace(0.5 lines)

There are other commands as well.  You can find out a listing of your old mail messages by typing @begin(transparent, font courier) @b(scan)@end(transparent).  You can create "folders" to store old messages (the created "folders" are subdirectories under /mit/username/Mail).  To do this, type:

@begin(transparent, font courier) @b(refile) @i(message_number) @b(+)@i(foldername)@end(transparent)  

If no such folder exists, it will prompt you to create it.  From now on, if you want to scan a folder, or show a message in a folder, just append @b(+)@i(foldername) to the end of the command.  For example, @begin(transparent, font courier) @b(show 4 +joemail)@end(transparent).

There is also a system known as the "X mail handler."  This is a flashy little device to allow you to use the mail commands in an ostensibly more straight forward way.  I don't particularly like it much, but some people do.  To activate it, just type @begin(transparent, font courier) @b(xmh)@end(transparent).

@appendixsection(Zephyr Messages)
@blankspace(1 line)

Zephyr messages appear on the screen, but do not stay around as files.  If you receive one, and want to get rid of the stupid window, just move the mouse up to the window you want and click the left button.  

To send a Zephyr message, you need to know the persons username, and that they're on the system, and then type:

@begin(transparent, font courier)
@b(athena%) @p(zwrite) @i(username) 
@end(transparent)

Then type a message and hit <control-d> or leave a period on a line by itself.

To find out if someone that you wish to zwrite to has logged on to the system, type: 

@begin(transparent, font courier)
@b(athena%) @p(zlocate) @i(username) 
@end(transparent)

For more information on zephyr, use the @p(man) command with the with the qualifiers: @i(zwrite, zbrowser, zlocate, zmailnotify, and zephyr.)  For related commands, type @p(apropos zephyr).







@appendix(Editing with EMACS)
@blankspace(1 line)

Emacs is the editor commonly used on Athena.  It can be used for writing programs, data files, mail messages, word processing, and other applications.  All of the commands in emacs rely on the use of @i(control sequences).  These control sequences are the use of one key in combination with another special function key. The special function keys used are the @i(Control Key) and the @i(Meta Key).  The Meta Key is called "Compose Character" on VAXstations and "Alt" on IBM RT's.  

@b(C) = Hold the Control Key@\@b(M) = Hold the Meta Key

@appendixsection(File Handling)
@blankspace(1 line)

@b(C)-x,@b(C)-f : @i(Finds) a file in your directory and edits it.

@b(C)-x,@b(C)-v : Finds an alternate file (ditches your old one)

@b(C)-x,@b(C)-s : @i(Saves) the file currently used to your directory.

@b(C)-x,@b(C)-c : Ends the emacs session.

@b(C)-x, i : Inserts named file into the current file.

@b(C)-x,@b(C)-w : @i(Write) to a different filename, and accept the new one as the default.

@appendixsection(Moving Around)
@blankspace(1 line)

With the mouse: move there and click the left mouse key.

@b(C)-v : Move to next screen.

@b(M)-v : Move to previous screen.

@b(M)-< : Move to top of a file.

@b(M)-> : Move to the bottom.

@b(M)-x goto-line <Return> @i(line number) <Return> :  This will move you to a specific line number in a file.

@appendixsection(Cut and Paste/Copying and Deleting)
@blankspace(1 line)
				   
@b(C)-k : Removes the contents of the line ahead to the buffer @i(but not the "return").  If you do several without moving the cursor, it will keep them all together in one buffer to be yanked back later.

@b(C)-y : Returns "killed" items to the screen at current location.  Can be used several times to make several copies.

@b(C)-@@ : Mark the start of a region (select).  The same function is performed by @b(C)-<space>.

@b(C)-w "Kills" the region between the last mark and the current cursor location (but it can be brought back with @b(C)-y).

@appendixsection(Searching for Something)
@blankspace(1 line)

@b(C)-s, specify text : Searches ahead for text.  

@b(C)-r, specify text : Searches backwards.

@b(M)-x query-replace : Replaces text starting at the cursor location to the end of the file.  At each occurance of the target text, you have the option of typing "y" to accept the change and continue, "n" to not change but continue, or <return> to not change the text and abort the routine.

@appendixsection(Buffers and EmacsWindows)
@blankspace(1 line)

You can use emacs to edit several files at the same time.  This is a very handy feature if you wish to do something like copy the titlepage from one report to another with the cut and paste commands.

This is done by successively loading different files onto emacs with the @b(C)-x @b(C)-f command.  Once you have a number of files loaded on, you can switch back an forth between them with the @b(C)-x  b command.  To do this, type @b(C)-x and then just a plain old "b".  Emacs will prompt you with a default buffer name (filename).  If you want that one, just type return.  Otherwise type the name of the file you wish to switch to (as long as it has already been loaded).

To get a list of the files you have loaded, use the @b(C)-x, @b(C)-b command.  This will break your emacs window into two parts and display the list of buffers in the bottom one.  To return to having only one window, move the mouse to that window and type @b(C)-x 1.

To get rid of a buffer (make sure you save it first if you have to!), type @b(C)-x k.  To make two windows that edit the same buffer, type @b(C)-2.

@appendixsection(Compiling and Scribing Within Emacs)
@blankspace(1 line)

You can both scribe and compile programs or manuscript files without ever leaving your emacs windows.  To do this, just type: @begin(transparent, font courier) @b(M)-x compile @end(transparent).  

If you are creating a scribe document, then a default line will appear saying something like @begin(transparent, font courier) compile command: scribe /mit/{your_username}/{subdirectories}/{filename} @end(transparent).  This is the default.  Hit return to accept it.  If you have not saved your file since the last time that you made a change, it will prompt you to save the current file.  Answer with a y for yes.

If you are writing a program, then it will prompt with the command @begin(transparent, font courier) make -k @end(transparent).  If you don't have a file called @begin(transparent, font courier) Makefile @end(transparent) (described later), then hit the backspace (delete to the left) key to erase the entry @begin(transparent, font courier) make -k@end(transparent).  In its place type the usual compile command (@begin(transparent, font courier) f77 @end(transparent) for fortran or @begin(transparent, font courier) cc @end(transparent) for C.

@appendixsection(Other Emacs Tricks)
@blankspace(1 line)

If you prefer to write over text, rather than to push it ahead of the cursor, you can switch to overstrike mode by typing "@b(M)-x overwrite".  To switch back to insert mode, type "@b(M)-x overwrite" a second time.

Typing @b(C)-x, @b(M)-x will repeat the previous @b(M)-x command.  This is highly useful for repeating the compile commands described above.

There are a few commands that can help you to capitalize letters in your text.  To perform them, first go to the begining of the area tyou wish to affect, and type @b(C)-<space> or @b(C)-@@.  Now move to the other end of the area and type:

@begin(itemize)
@begin(transparent, font courier)
@b(M)-x upcase-region
 @end(transparent)
@y(M) This will switch all letters in the region to uppercase.

@begin(transparent, font courier)
@b(M)-x downcase-region
 @end(transparent)
@y(M) This will switch all letters in the region to lowercase.

@begin(transparent, font courier)
@b(M)-x capitalize-region
 @end(transparent)
@y(M) This will switch the first letters of all words in the region to uppercase.
@end(itemize)

Here are a few other neat commands in emacs:

@begin(itemize)
@begin(transparent, font courier)
@b(M)-x what-line
 @end(transparent)
@y(M) This tells you what line number you are on.

@begin(transparent, font courier)
@b(M)-x yow
 @end(transparent)
@y(M) Delivers a Zippy the Pinhead'ism.

@begin(transparent, font courier)
@b(C)-x g
 @end(transparent)
@y(M) This command kills any "hanging" commands in the minibuffer.  @p(Very) useful to get rid of those annoying commands that seem to linger on down there, and especially useful when you hit @b(M)-z by accident (don't try this at home).
@end(itemize)

See some of the other emacs documentation around the clusters for more information, and see the section on where to go for help.




@comment(=====================================================================)
@comment(=====================================================================)
@comment(=====================================================================)

@appendix(Word Processing)
@blankspace(1 line)

The primary method of word processing on Athena is through the use of @i(text post-processors).  Post-processors take text that has been created with an editor and checks the text for key words that tell it to do special things, like @b(bold) or @u(underline).  This method tends to be somewhat user-hostile to those of you used to sitting down at a PC and typing on something like @p(Word) or @p(WordPerfect), but it is very powerful.  The greatest disadvantage is that what you see on the screen as you type isn't what you get after you process it and print it out.  In addition, if you miss-type a command, you won't find out about it until after you've tried processing it.

Even so, these post-processors can make documents look rather nifty.  This one was done with @p(Scribe)@+(@y(R)).  Another that has just been made system wide is @p(LaTEX/TeX)@+(@y(R)).  I cannot emphasize enough how important I feel it is for all users, even if your just here for a year, to learn one or the other, unless you plan to do all of your word processing at home.  Once you really get into the swing of using Scribe or LaTEX they can make life very easy for you.  Easier, in fact, than some of the best traditional word processors on the market.  In addition, they create really great looking output with figures and stuff all mushed in with the text.  Finally, you @i(will) need to use one of them or your home PC to do your thesis, so start learning NOW.  

@appendixsection(Scribe)
@blankspace(2 lines)

@b(@u(Where to get information))

There is a great deal of information out there about scribe, so I will not go into emmense detail about it here.  The following are some good sources of information:

@begin(enumerate)
The @u(Scribe Users Manual) and @u(Scribe Pocket Reference Guide) are located in the racks of manuals around the room.  These references are somewhat tedious to use, but contain everything you'll probably ever need to know.

The olc stock answers.  See the section on where to go for help and information.

A few copies of @u(Commonly Asked Questions About Scribe) are floating around the room.  This is a compilation of the olc stock answers about scribe.  

The @i(Essential Scribe, Scribe Report, Scribe Resume,) and @i(Scribe Thesis) documents in the athenadoc locker.  See the where to get help section for how to use the athenadoc locker.
@end(enumerate)


@blankspace(2 lines)
@b(@u(Some Basics About Scribe))

The following information implies that you know at least a tiny bit about UNIX and Emacs.  If not, read those sections first.

@i(@u(Editing Scribe Files))

To edit a file that you will process through scribe, use the @i(emacs) editor.  For example:

@begin(transparent, font courier, size 12)
@p(athena%) @b(emacs) @i(Filename.mss) @b(&)
@end(transparent)

You must use the @i(.mss) ending to your filename in order to activate all the scribe functions within emacs automatically.  You should also include the @b(&) so you can continue to use the current window.

Now just start typing.  You can include the various scribe functions listed below and in the users manual.  All scribe functions begin with the "@@" symbol.  If you need to type an @@ without starting a scribe function then type two @@@@'s in a row.

When you are done, type <Control-x> <Control-s> to save the file.  When you are finished with emacs, type <Control-x> <Control-c> to leave.

@begin(group)
@i(@u(Processing Scribe Files))

@end(group)After you have saved your new file, type:

@begin(transparent, font courier, size 12)
@p(athena%) @b(scribe) @i(Filename.mss)
@end(transparent)

Hopefully, there won't be any errors, and it will tell you the name of the ouput files.  Most of the errors it gives you are fairly self explanatory.  Remember, you don't have to exit out of emacs to scribe the document.  All you have to do is save it.

@blankspace(1 line)

@i(@u(Printing Scribe Files))

To print a copy of your file, type:

@begin(transparent, font courier, size 12)
@p(athena%) @b(lpr -Poe -h) @i(Outputfilename) 
@end(transparent)

Your output filename will have an extension like .PS or .lpt.  Make sure you include this in @i(Outputfilename).  You can also print out or "more" your error files the same way in order to find out what went wrong.  The error files have the name @i(Filename.err).

@blankspace(1 line)
@u(@b(Scribing Well))

@begin(group)
@i(@u(A Brief Note))

@end(group)Scribe uses what is called "word wrap."  This ability allows the text processor to automatically @i(wrap) a word around the end of the line so that you don't have to keep hitting return.  What you will see is a "\" at the end of each line as you type it.  Don't hit return; just keep on typing.  When you want to designate a new paragraph, hit return @b(twice).  If you don't, it will lump the two paragraphs or lines that you want to be separate into one paragraph.  In addition, Scribe will compress spaces.  So, if you leave a bunch of spaces empty, it will squeeze them all together into one space.


@begin(group)
@i(@u(What's a device?))

@end(group)A device is a method of controlling how your output looks.  There are two devices:

@begin(transparent, boxed, columns 2, columnwidth 3.75 inches, columnmargin 0 inches)
@begin(itemize)
Lptln

@newcolumn()

Postscript
@end(itemize)
@end(transparent)

The device lptln produces a very bland output @begin(transparent, font courier, size 13)like this.@end(transparent)  It also prevents you from using any other fonts or doing many neat things.  Postscript, on the other hand, allows you to do a lot more and is just as easy.  To designate a device, put the following line @i(at the top of the document).  It @i(must) be the first line:

@b(@@device(postscript)) or @b(@@device(lptln))

If you do not specify, scribe will assume lptln (and your stuff will look yucky).

@blankspace(1 line)
@begin(group)@u(@b(Time For) @begin(transparent, font avantgarde, size 18)@p(S)@end(transparent)@begin(transparent, font newcenturyschoolbook, size 18)@p(t)@end(transparent)@begin(transparent, font souvenir, size 18)@p(y)@end(transparent)@begin(transparent, font lubalin, size 18)@p(l)@end(transparent)@begin(transparent, font helvetica, size 18)@p(@g(e))@end(transparent))

@end(group)In the second line of your document you can use the @@style command to specify all kinds of things to be different from the default.  These are just some of the more common ones available (see the scribe manual for more):

@begin(itemize)
@b(indent) -- how far the beginning of each paragraph should be indented

@b(topmargin) -- width of the top margin (default 1 inch)

@b(bottommargin) -- default 1 inch

@b(leftmargin) -- default 1 inch

@b(rightmargin) -- default 1 inch

@b(spacing) -- @i(Spacing 1) single spaces, @i(Spacing 2) double spaces

@b(spacing) -- @i(Spacing 2 lines) puts 2 lines between paragraphs

@b(font) -- specifies a font (default helvetica)

@b(size) -- specifies the size of the font (default 10)
@end(itemize)

For example, the @@style command for this page is:

@@style(font allpostscriptfonts, size 14, spacing 0 lines, bottommargin 0.7 inches, topmargin 0.5 inches, indent 0 inches)

@tabset(1.5 inches)

@blankspace(1 line)
@u(@b(Document Types))


The third line of your scribe document can specify a document @i(type).  Scribe has a bunch of ready-made formats available for specific applications:

@begin(itemize)
@b(Text) -- plain text, no frills (the default)

@b(Letter) -- business letter

@b(Resume) -- a resume

@b(Report) -- term papers, reports

@b(MITThesis) -- an MIT thesis
@end(itemize)

To specify a document type, type the following as the third line:

@b(@@make(report))

For more information on document types, see the @i(Essential Athena) report @i(Scribe Report), or whatever.  You can buy these from Graphic arts in 11-0xx or borrow one from me.

@blankspace(1 line)
@u(@b(Tabbing over in Scribe))


If you hit the tab key in scribe you will see a "@@\" appear.  If you have not set any tabstops this will do nothing for you.  The following commands are available.  They can be placed anywhere in the document, and work just like on a typewriter.

@begin(itemize)
@b(@@tabset(a inches, b inches....)  -- All distances are measured from the left margin and can be in inches or "cm" for centimeters.

@b(@@tabclear()) -- Clears all previous settings.

@b(@@tabdivide(x)) -- Divides the document into x equally spaced columns.  Each use of the tab key moves you over one column.
@end(itemize)


@blankspace(1 line)
@begin(group)@u(@b(Previewing Documents))

@end(group)Because @i(lptln) generates relatively simple output, you can view the file (called something like: @i(filename.lpt)) by simply typing:

@begin(transparent, font courier)
@p(athena%) @b(more) @i(filename.lpt)
@end(transparent)

For postscript documents you have to use the function "@i(viewdoc)."  To do this type:

@begin(transparent, font courier)
@p(athena%) @b(attach athenadoc) 

@p(athena%) @b(/mit/athenadoc/viewdoc) @i(filename.PS) 
@end(transparent)

You only have to attach athenadoc once each time you log on.

@begin(group)
@u(@b(Multiple Columns))

@end(group)There is a more sophisticated way to type in two columns than using the @@tabdivide command:

@begin(transparent, font courier)
@@begin(transparent, boxed, columns 2, columnwidth 3.0 inches, columnmargin 0.5 inches)

All kinds of text and stuff that will continue on for pages and pages ....

@@end(transparent)
@end(transparent)

This will format everything between the @@begin and the @@end in two columns just like in a textbook.  The "columnmargin" is the distance between columns.  You can specify any number of columns.  You must include the commands "boxed" and "transparent."  

@blankspace(1 line)
@u(@b(Other Nifty Commands))

@begin(itemize)
@@Libraryfile(Landscape) -- If you place this at the top of your file you will get output printed the wide way on the paper.

@@newpage(0) -- This will cause a page break right where you put the command.

@@blankpage(3) -- This will leave 3 blank pages starting at the next pagebreak.  They will be numbered.

@@begin(itemize) and @@end(itemize)  -- Stuff put between these commands will be itemized with bullets (like this stuff).

@@begin(enumerate) and @@end(enumerate) -- Just like itemize, except it will number things.  You can nest multiple enumerates inside each other to create a numbered and lettered outline.

@@begin(multiple)  and @@end(multiple) -- This will treat the text in between as one entry for the purposes of enumerate and itemize so you can have multiple paragraphs.

@@newcolumn() -- This will end a column and start on the next if you have specified multiple columns.

@@blankspace(1 inch) or @@blankspace(2 lines)  -- This will leave the designated amount of verical space blank.

@@center(text...) -- This will center up to one line of text in the middle of the page.

@@set(page = 250) -- Will set the current page number to 250.

@@set(page =+ 130) -- Will skip 130 pages (usefull for appendices and figures).

@@send(contents="@@Newpage()") -- Will send a newpage command to the table of contents at this point in your report.  This is very useful if you want, say the regular table of contents on one set of pages, and the appendices listed on the next.  In this case you would insert the command right above the @@appendix() command in your document.

@end(itemize)

@blankspace(1 lines)
@u(@b(Typefaces in Scribe))

The following typeface commands are available within fonts:

@blankspace(1 line)

@begin(transparent, spacing -0.8 lines)
@b(@@r [phrase]) @\-- The normal typeface (Roman)

@b(@@b [phrase]) @\-- @b(Bolded typeface)

@b(@@i [phrase]) @\-- @i(Italics)

@b(@@p [phrase]) @\-- @p(Bold Italics)

@blankspace(0.5 lines)
@b(@@c [phrase]) @\-- @c(Small Capitals)

@b(@@u [phrase]) @\-- @u(Underline non-blank characters)

@b(@@ux [phrase]) @\-- @ux(Underline all characters)

@b(@@un [phrase]) @\-- @un(Underline all alpha-numeric characters)

@blankspace(0.5 lines)
@b(@@t [phrase]) @\-- @t(typewriter font)

@b(@@+ [phrase]) @\-- super@+(script)

@b(@@- [phrase]) @\-- sub@-(script)

@b(@@g [phrase]) @\-- @g(Greek) (Greek)

@b(@@y [phrase]) @\-- Symbols @y(MSTCPBN)
@end(transparent)


@begin(group)@b(@u(Non-Default Fonts))

@end(group)You can specify a different fonts for your entire Scribe document by including the following lines at the beginning of your file:

@\@@Device(PostScript)

@\@@Style(FontFamily @i(name), Size @i(n))

Where `@i(n)' is the size in 1/72 of a inch, with the default being 10 and
normal values between 10 and 14, and `@i(name)' is one of the following:


@begin(enumerate)
@begin(transparent, font times, size 13)         
@p(TimesRoman)             @\- standard font,  newspaper
@end(transparent)
          
@begin(transparent, font newcenturyschoolbook, size 13)         
@p(NewCenturySchoolBook)   @\- same, wider and rounder
@end(transparent)
         
@begin(transparent, font helvetica, size 13)         
@p(Helvetica)              @\- no serifs (hooks on letters)
@end(transparent) 
         
@begin(transparent, font avantgarde, size 13)         
@p(AvantGarde)             @\- as Helvetica, thin and round
@end(transparent)
          
@begin(transparent, font lubalin, size 13)         
@p(LubalinGraph)           @\- like AvantGarde with serifs
@end(transparent)
          
@begin(transparent, font souvenir, size 13)         
@p(Souvenir)               @\- small serifs
@end(transparent)
@end(enumerate)



@blankspace(1 line)
@begin(group)@u(@b(Using More than one Font in Scribe))

@end(group)If you want to use more than one font in a Scribe document, here is what to
do:

@blankspace(1 line)
@begin(enumerate)

   Place "@i(@@Device(PostScript))" at the top of your file.@blankspace(0.5 line)

@begin(multiple)
   Place  "@i(@@Style(Font  AllPostScriptFonts, Size 12))" right after
      that.  You can also specify different sizes.  The default is "10".

      This will define a variety of Fonts, each of  which  is  a  standard
      PostScript FontFamily.  The default fonts are "NewCenturySchoolBook"
      for text and "Helvetica" for Headings.

  On an  Athena  PostScript  printer,
      you can use the following Fonts:

@blankspace(0.5 line)


@begin(enumerate)
@begin(transparent, font times, size 13)
@p(Times)                  - standard font,  newspaper
@end(transparent)
            
@begin(transparent, font newcenturyschoolbook, size 13)
@p(NewCenturySchoolBook)   - same, wider and rounder
@end(transparent)
            
@begin(transparent, font helvetica, size 13)
@p(Helvetica)              - no serifs (hooks on letters)
@end(transparent)

@begin(transparent, font avantgarde, size 13)
@p(AvantGarde)             - as Helvetica, thin and round
@end(transparent)

@begin(transparent, font lubalin, size 13)
@p(Lubalin)                - like AvantGarde with serifs
@end(transparent)
            
@begin(transparent, font souvenir, size 13)
@p(Souvenir)               - small serifs
@end(transparent)
            
@begin(transparent, font courier, size 13)
@p(Courier)                - fixed-width typewriter font
@end(transparent)
@end(enumerate)


@blankspace(0.5 line)

      @i(Note that the Fonts "Times" and "Lubalin" are named differently than
      the FontFamilies "TimesRoman" and "LubalinGraph".)

@end(multiple)

@blankspace(1 line)

@begin(multiple)
  To specify that a particular font be used in a certain area, use:

                  @@Begin(Transparent, Font @i(name), Size @i(size))
                          
This will be printed in font @i(name), with the specified @i(size), where the number for size corresponds to 1/72's of an inch and 12 is typical (This document is in 11).

                  @@End(Transparent)

@end(multiple)
@end(enumerate)

@tabclear()
@tabset(0.5 inch, 1.6 inch, 2.7 inches, 3.8 inches, 4.9 inches)
@begin(transparent, spacing 0 lines)
@begin(group)
@u(@p(Greek Letters and Symbols in Scribe))

@blankspace(1 line)

@\  @\      @\@ux(Greek Letters) @\@\@\@u(Symbols)

@blankspace(0.5 lines)

@\letter@\@@g( )@\LETTER@\@@g(CAPS)@\@@Y(CAPS)
@bar(0)

@blankspace(0.5 lines)

@\a @\@g(a) @\A @\@g(A)@\-None-

@\b @\@g(b) @\B @\@g(B)@\@Y(B)

@\c @\@g(c) @\C @\@g(C)@\@Y(C)

@\d @\@g(d) @\D @\@g(D)@\-None-

@\e @\@g(e) @\E @\@g(E)@\-None-

@bar(0)

@blankspace(0.5 lines)

@\f @\@g(f) @\F @\@g(F)@\-None-

@\g @\@g(g) @\G @\@g(G)@\-None-

@\h @\@g(h) @\H @\@g(H)@\-None-

@\i @\@g(i) @\I @\@g(I)@\-None-

@\j @\-None- @\J @\-None-@\-None-

@bar(0)

@blankspace(0.5 lines)

@\k @\@g(k) @\K @\@g(K)@\-None-

@\l @\@g(l) @\L @\@g(L)@\-None-

@\m @\@g(m) @\M @\@g(M)@\@Y(M)

@\n @\@g(n) @\N @\@g(N)@\@Y(N)

@\o @\@g(o) @\O @\@g(O)@\-None-

@bar(0)

@blankspace(0.5 lines)

@\p @\@g(p) @\P @\@g(P)@\@Y(P)

@\q @\@g(q) @\Q @\@g(Q)@\-None-

@\r @\@g(r) @\R @\@g(R)@\@Y(R)

@\s @\@g(s) @\S @\@g(S)@\@Y(S)

@\t @\@g(t) @\T @\@g(T)@\@Y(T)

@bar(0)

@blankspace(0.5 lines)

@\u @\@g(u) @\U @\@g(U)@\-None-

@\v @\-None- @\V @\-None-@\-None-

@\w @\@g(w) @\W @\@g(W)@\-None-

@\x @\@g(x) @\X @\@g(X)@\-None-

@\y @\@g(y) @\Y @\@g(Y)@\-None-

@\z @\@g(z) @\Z @\@g(Z)@\-None-

@end(group)
@end(transparent)

@blankspace(1 line)
@u(@p(Retrieving Lost .mss Files from .PS Files))
@blankspace(1 line)

There is a way to retrieve the text of a scribe postscript file.  In order to do this:

@begin(Transparent, font courier)
@b(athena%) @p(attach vanharen)

@b(athena%) @p(/mit/vanharen/Bin/ps2mss) @i(filename.PS)
@end(transparent)

The output will be placed in a file called @i(filename).mss.tmp .  Now its time to put back all the formating commands and paragraph breaks.  Its a real pain in the butt, but at least you got something.  Now go back and scribe the file again.

@u(@p(Inserting Graphics into a Document))
@blankspace(1 line)

You can incorporate idraw files (or any postscript files) into your scribe documents.   The command to do this is:

@begin(Transparent, font courier)
@@center(@@graphic(postscript="@i{filename.idraw}", boundingbox="@i{x1} inches, @i{x2} inches, @i{y1} inches, @i{y2} inches"))
@end(transparent)

@i(filename.idraw) is the name of the idraw file.  @i(x1) is the distance from the left hand edge of the paper to the left margin of the drawing (when printed from idraw).  @i(x2) is the distance from the left hand edge of the paper to the right margin.  @i(y1) is the distance from the bottom of the paper to the bottom margin, and @i(y2) is the distance from the bottom of the paper to the top margin.  So for a typical full size drawing, the command might look like this:

@begin(Transparent, font courier)
@@center(@@graphic(postscript="mypicture.idraw", boundingbox="1.0 inches, 6.0 inches, 1.0 inches, 9.25 inches"))
@end(transparent)

The drawings can be much smaller than a full page.  I have two suggestions for the use of the @@graphic command.  First, don't include the caption in the idraw (or other) file.  Have it placed below in the text.  This way, if you move the drawing (figure) you can easily change the number associated with it without going into the drawing routine.  Also, the font matches.  Second, place a group statement around the whole thing so that scribe doesn't inadvertantly break pages between the figure and the caption. 









@appendixsection(EZ)

EZ is a basic word processing program (as opposed to a text processor).  Doing simple stuff is very straight forward, but unusual things (like full fledged several page reports) get much more difficult.  Its handy to know, but its a real pain in the butt for large documents (although I do know someone crazy enough to do his thesis in it) and if you do programming you might as well use scribe or LATEX (and get familiar with emacs) anyway.  Of course, its good for small stuff, so here ya go.  To use it, type:

@begin(transparent, font courier)
@b(athena%) @p(attach nandrew)

@b(athena%) @p(/mit/andrew/vaxbin/ez) @i{filename}
@end(transparent)

To get help, type:

@begin(transparent, font courier)
@b(athena%) @p(/mit/andrew/vaxbin/help)
@end(transparent)

If you are using a machine that is not "vax compatible", ie the IBM PC/RT or one of the DECMIPS machines, then type the appropiate "bin" name instead of "vaxbin" (rtbin for the IBM's and decmipsbin for the DECMIPS machines).

To print from inside "ez" set printer to "oe"  (no dash or capital P or nuthin') or what ever the printername is that you wish to use.  An appealling advantage of ez is that you can start with a small document and then export the file as text.  Then you can edit it with emacs and turn it into a scribe or LATEX file later on.  A good example of when to do this would be incorporating a short progress report as a chapter of your thesis.

I really don't encourage using this routine too much.  Your gonna have to do a thesis anyway, and you'll be that much ahead of the learning curve if you know scribe or LaTEX beforehand.  Real pretty reports (with included figures and charts) simply @i(can't) be done in ez and to get it to do the neat things it does do (like foot notes) you end up will all kinds of weird looking control sequences every once in a while, so its really no better than scribe or LaTEX in that respect (in fact the text post-processors have more meaningful commands rather than control sequences, so they're easier to understand).  For some who have spent a long time working on regular word processors, scribe and LaTEX can be a pain to get used to so I understand the draw of ez.  But, I consider myself lucky now that ez was not available when I arrived, so I didn't get seduced into using it.


@appendixsection(nroff, troff, and eroff)

These are evil, ugly, and unfortunately a UNIX standard.  You'll see a fair amount of stuff around in nroff and troff, and most of it will be incomprehensible.  I would bet its easier to program in postscript directly.  Avoid this like the plague.  Shun the users like lepers.

@appendixsection(TeX and LaTEX)
@blankspace(1 line)

I know very little about these post-processors, as they have just been introduced to the system.  What I do know is that they are activated by editing a file in emacs with the extension @b(.tex).  After editing the file, type @begin(transparent, font courier) @b(latex) @i(filename) @end(transparent).  This should process the file.

I highly recommend learning this system.  For simple things it is almost as easy a s Scribe, and for complex math it is @u(much) easier.  In addition, scribe is slowly getting dropped from Athena.  It is also at least as powerful as Scribe and is an industry standard.  As a last enticement, it is PC portable so there is a much greater chance that knowing it will help you later in life as well (which is more than can be said for scribe and ez).  

Scribe and LaTEX are @i(very) similar, so if you already know scribe it should only take you about 30 minutes to get going strong on LaTEX.

@appendixsection(Spell-Checking)
@blankspace(1 line)

There is a spell checker on Athena known as Ispell.  It can be used by typing:

@begin(transparent, font courier, size 12)
@b(athena% ispell) @p(filename)
@end(transparent)

This will spellcheck the named file.  If you hit a space it will skip a word, hit the number, it will take that suggestion as a replacement, "r" will allow you to type the replacement, "a" accepts it for the rest of the session, and "i" includes it into your dictionary.

It can also be started from inside emacs (ie, for scribe or LaTEX amongst others).  If you type Meta-$ this will spell check the following word.  For those who would rather use ispell from inside of emacs, type:

M-x ispell        

(M-x is the Compose or Alt and x keys pressed at the same time)  Now the following commands are available for the duration of your emacs session.

@begin(itemize)
      M-x ispell-word         - @i(Checks word)

      M-x ispell-buffer       - @i(Checks buffer (current file))

      M-x ispell-region       - @i(Checks region)
@end(itemize)

When ispell finds a word that is not in its dictionary, it will outline the
word in reverse video (from emacs it will respond with a message that says,
"Enter letter to replace word; space to flush") If there are "near misses"
in the dictionary, ispell will also display the incorrect word and a list
of correct alternatives at the top if they exist.

At this point, you can type one of the following characters:

@begin(itemize)
@b(r) -- Replace Word -- Ispell asks you for a replacement word.  Ispell will NOT check this word.

@b(#) -- Replace Word with suggested word -- The words at the top of the screen are numbered.  If you type a word's number, ispell will use this word as a replacement.

@b(<space>) -- Skips Word -- Leave this word as is.  If this word is encountered again, ispell will stop and prompt you for an action.

@b(a) -- Accept Word -- Accept this word as correct for remainder of ispell session (or emacs if you are using ispell in emacs).

@b(i) -- Add Word -- Add this word to your personal dictionary. This is a file in your home directory called .ispell.words which tells ispell to accept the word as correct every time you use ispell (useful for things like your name).
 
@b(<CTRL-G>) -- Quit Ispell -- You can quit ispell at any time by pressing <CTRL-G>.  This is done by holding down the CTRL key and pressing "G".
@end(itemize)

To use ispell from within @b(ez) simply select the "spell check" option.

The man page on ispell lists more options and gives more detailed
information on this program. 

@begin(transparent, font courier, size 12)
@b(athena% man ispell)
@end(transparent)










@comment(=====================================================================)
@comment(=====================================================================)
@comment(=====================================================================)



@appendix(Spreadsheets)
@blankspace(1 line)

There are two spreadsheets available on the Athena system, 2020 and RS1.  2020 is basically a Lotus 123 clone for mainframe systems.  We recently received Version 2 of 2020.  RS1 is a highly powerful, non-user-friendly system about which I know very little.

@appendixsection(2020)
@blankspace(1 line)

2020 is a lot like Lotus, as mentioned before, although some of the commands are kind of flaky.   In addition, you do not have to specify the "@@" sign in front of the functions, so what was @@sum is now just sum.  For this reason, if you want to title a cell 

@begin(transparent, font courier, size 12)
experience
@end(transparent)

you have to type:

@begin(transparent, font courier, size 12)
'experience
@end(transparent)

or else it will think you are trying to incorrectly use the exponential command.

I have yet to use the graphics package yet (the old one didn't work), so I'll be interested in your comments.

There are some predefined keys now for 2020:

@tabclear()
@tabset(2 inches)
Key@\2020 Function
@bar(0)

PF1@\PAGE (with arrow keys -- ie move by screenwidths)

PF2@\LIST

PF3@\EDIT toggle lets you move the cursor within a cell

PF4@\user programmable

F17@\user programmable

F18@\user programmable

F19@\user programmable

F20@\user programmable

control b@\EDIT move left 1 character

control d@\delete character under cursor

control e@\END

control f@\EDIT move right 1 character	

control h@\BACKOUT (ie escape)

control n@\move down 1 cell

control p@\move up 1 cell

control t@\HOME

Help@\HELP

Do@\DO

>@\GOTO (now type a cell location)

up arrow@\move up 1 cell

down arrow@\move down 1 cell

right arrow@\move right 1 cell

left arrow@\move left 1 cell

@bar(0)
@blankspace(1 line)

To start up 2020, type:

@begin(transparent, font courier, size 12)
@b(athena%) @p(add 2020)

@b(athena%) @p(2020 &)
@end(transparent)

This will create a new window from which you can use 2020.  Be forwarned, the folks at Project Athena were kind enough to "improve" the 2020 interface.  So now, despite the great graphics and window available on Athena, you are stuck with a window that is 25 rows x 80 columns.  If you want a larger one, you must specify it with the following command:

@begin(transparent, font courier, size 12)
@b(athena%) @p(2020 -geometry) @i(columns)@p(x)@i(rows)@p(+)@i(xpos)@p(+)@i(ypos) @p(&)
@end(transparent)

In the command indicated above, xpos and ypos are the coordinates of the upper left hand corner of the 2020 window, where the origin is at the upper left hand corner of the screen and the x and y axis are positive to the right and down respectively.  To get an idea of the scale (xpos and ypos are in pixels), 500+400 is roughly the center of the screen.  If you want to learn more about 2020 there is supposed to be an online tutorial available by typing:

@begin(transparent, font courier, size 12)
@b(athena%) @p(olc)

@b(olc>) @p(answers)
@end(transparent)

For more information, try the Athena consultants, or other sources listed in where to find help.

@appendixsection(RS1)
@blankspace(1 line)


The best source of information on RS1 is probably the athenadoc locker.  The @i(Essential  RS1) documents can be read with viewdoc or printed to our printer.  Also see the section on where to get help.









@comment(=====================================================================)
@comment(=====================================================================)
@comment(=====================================================================)



@appendix(Programming)
@blankspace(1 line)

@appendixsection(Languages)
@blankspace(1 line)


There are several programming languages available on Athena.  Not all are necessarily supported by Athena (which means they're not obliged to give you straight answers).  C is rapidly becoming the programming language of choice.  If you spend time learning any language here it should be C.  If you don't take that advice then at least learn fortran; everything else is quickly becoming worthless (Fortran only slowly so).  There are debuggers for most of the languages and all sorts of intricate, useful, handy, timesaving, and timesinking ways to use the compilers.  

@begin(group)
@center(@b(BASIC))

@end(group)There are several programming languages available on Athena.  BASIC is not one of them.  So for all you Naval Academy dudes, time to learn a new language.  
Although a fair amount of old code is written in FORTRAN, almost everything new is coming out in C, so I would tend to recommend it.  

@begin(group)
@center(@b(FORTRAN77))

@end(group)There is a fortran compiler available on the system, and it appears to be fairly standard.  For more information, type: 

@begin(transparent, font courier, size 12)
@b(athena%) @p(man f77)
@end(transparent)

This appears to be a pretty standard fortran, complete with debugger.  In addition, there is a manual in the documentation rack floating around the classroom.  The best source is probably the documentation in the athenadoc locker (See the section on where to get help).  The compiler is activated by @b(f77) @i(filename.f), and produces an executable file called a.out.

@begin(group)
@center(@b(PASCAL))

@end(group)I here there is a compiler here somewhere, not that it matters (you'd be the only one outside of course 6 using PASCAL).

@begin(group)
@center(@b(C))

@end(group)There are a couple of different versions available.  The new 6.2A release has a new version of High C for the IBM PC/RT.  There is another version of C floating around for both types of machines but I don't know what its called.  The C compiler used most on athena is called @i(cc), and is activated by @b(cc) @i(filename.c).  It produces an executable file called a.out.  The athenadoc locker has considerable information on C (see the where to get help section for more on the athenadoc locker).  See the manual racks for more info, or the olc stock answers.  

@begin(group)
@center(@b(LISP))

@end(group)I hear Athena supports LISP, but I know nothing about it.

@begin(group)
@center(@b(Scheme))

@end(group)Athena used to support Scheme, but not anymore.  The executables are still available in the Scheme locker for those who care.



@appendixsection(Debuggers)

There are two commonly used debuggers on Athena, @i(dbx) and @i(saber).  I have never used saber, which is intended primarily for C, but I have used dbx.  dbx can be used either with C or with FORTRAN, although it is optimized to operate better with C.  

In order to use it, compile your files with the @b(-g) flag.  For example:

@begin(transparent, font courier, size 12)
@b(athena%) @p(f77 -g) @i(filename.f)
@end(transparent)

or

@begin(transparent, font courier, size 12)
@b(athena%) @p(cc -g) @i(filename.c)
@end(transparent)

When compilation is complete, type 

@begin(transparent, font courier, size 12)
@b(athena%) @p(dbx) @i(a.out) 
@end(transparent)

Where @i(a.out) is the name of your executable file.  You will be presented with a prompt after it "reads symbolic information."  You now have many options at the prompt:

@begin(itemize)
@b(run) @y(M) Runs the program from the beginning

@b(file) @i(filename.c) or @i(filename.f) @y(M) Sets the current file if you have a series of source files.

@b(stop at) @i(line number) @y(M) stop at a line number in the current file.

@b(print) @i(variable name) @y(M) print out the value of a variable.

@b(where) @y(M) indicate where in your code the execution pointer is currently located.

@b(cont) @y(M) continue exectution of the program from its current location

@b(step) @y(M) step forward one statement and execute it.

@b(next) @y(M) exectute the currently pending statement and then step forward (the next command will not follow code into a subroutine.  It will exectute the subroutine and then stop before executing the next line after the call).

@b(list) or @b(list) @i(startline),@i(endline)  @y(M)    Lists the current line, or lines from the starting line to the ending line in the current file.  If you type @b(list) twice in a row, the second time it will list out the next 10 lines by default.
@end(itemize)

There are other commands available, and more details on the ones listed in the manual page:

@begin(transparent, font courier, size 12)
@b(athena%) @p(man dbx) 
@end(transparent)


@comment(=====================================================================)
@comment(=====================================================================)
@comment(=====================================================================)


@appendix(Computer Aided Drafting/Design)
@blankspace(1.0 line)

Athena provides programs to do drafting and thereby create pretty graphics to insert in reports.  In addition work has been done on obtaining true computer aided design tools.  For two dimensional drawing work, I highly recommend idraw.

@appendixsection(PED)
@blankspace(1 line)

There is a very rudimentary 2 dimensional drafting capability on athena known as @b(ped).  If you have ever used MacDraw, ped will be very familiar.  I have the ped user's manual, so if you want to see it just ask, however, I should warn you that its enormous so you would probably spend more time looking than learning.  

There is a program for drawing diagrams and pictures on Athena similar to MacDraw.  It is called the BLOX Picture Editor.  The program is a mouse driven draw program that lets you create pictures, diagrams, etc.  You can also include text in your pictures.  The ped program runs best on DEC VAX workstations.  To use the program type:

@begin(transparent, font courier, size 12)
@b(athena%) @p(attach  beta)

@b(athena%) @p(source  /mit/beta/vaxblox/bgbsetup)

@b(athena%) @p(ped  file.PIC)
@end(transparent)

If you are on an IBM RT, type "source /mit/beta/rtblox/bgbsetup" and then "ped file.PIC".  The ped program may be slow when run on the RT's.

There are "click boxes" for help, drawing functions, deleting, printing, and exiting/saving.  All mouse keys do the same thing.  When you click on "hcopy1", a postscript file will be created in the directory in which you started ped.  The hardcopy file will be named something like "ped000.PS" or "ped001.PS" This is the file that can be printed on any PostScript printer.  Pictures are saved when you exit with the name "file.PIC".

The "main menu" is the collection of 4 boxes in the upper left hand corner.  The options are:

@begin(itemize)
Draw

Delete

Undo

Options (the arrow "button")
@end(itemize)

The options selections includes one called "transforms".  This selection allows cutting, pasting, moving, copying, scaling, rotating, and gobs of other goodies.

@appendixsection(Idraw)
@blankspace(1 line)

There is another, far more friendly program out there called idraw.  It allows a user to generate drawings (2D) in the same way as MacDraw@+(@y(T)).  The interface and all the related stuff is virtually identical (pull down menus and the like), so if you have ever used MacDraw@+(@y(T)), you should have no problems with @b(idraw).  To run it, simply type:

@begin(transparent, font courier)
@p(athena%) @b(attach sipb)

@p(athena%) @b(/mit/sipb/vaxbin/idraw &)
@end(transparent)

If you are using a machine other than a VAXstation, then use the appropriate bin directory (like rtbin for the IBM).

Files in idraw are stored in postscript format so you can print them out without having to enter idraw.  In addition, these postscript files can be included directly into LaTEX and Scribe documents.  To get the manual page for idraw, type:

@begin(transparent, font courier)
@p(athena%) @b(add sipb)

@p(athena%) @b(man -M /mit/sipb/man idraw)
@end(transparent)

If you have set up your directory with the standard log-in files (see customizing your account), then the above commands are much simpler.  Type:

@begin(transparent, font courier)
@p(athena%) @b(idraw &)
@end(transparent)

to run it.  
In order to change the fonts that are defaulted to, you need 
to make a file called .Xresources.  
Lines in that file similar to following
specify fonts for idraw:

@begin(verbatim)
idraw.font4:*sym*-8-* Symbol 8
idraw.font5:*sym*-10-* Symbol 10
idraw.font6:*sym*-12-* Symbol 12
idraw.font7:*sym*-14-* Symbol 14
idraw.font8:*sym*-18-* Symbol 18
idraw.font9:*sym*-24-* Symbol 24
idraw.font12:*bit*bold*-r-*-15-* Times-Bold 15
idraw.font13:*bit*bold*-r-*-19-* Times-Bold 19
@end(verbatim)

Once you create this file, type:

@begin(transparent, font courier)
@p(athena%) @b(xrdb -load .Xresources)
@end(transparent)

to load the fonts.  From now on, until you type this again you will use these new fonts whenever you start up idraw.  By the way, "idraw.font4" will replace ONLY 4.

In order to get a listing of the available fonts, type:

@begin(transparent, font courier)
@p(athena%) @b(xlsfonts)
@end(transparent)

The fonts in xlsfonts and the ones that are printable are two different
things @y(M) but if you have something of the form

@begin(verbatim)
blah-blah-blah-blah--number-number-other-stuff
@end(verbatim)

that we'll have the corresponding PostScript font.

Should you wish to revert to the default, the following command:

@begin(transparent, font courier)
@p(athena%) @b(grep -v idraw ~/.Xresources|xrdb -load)
@end(transparent)

should do the trick.  This will remove all the lines that have `idraw' in them
from your .Xresources file, and then re-load that into the resource database,
which should remove your idraw resources.


@appendixsection(DesignView)
@blankspace(1 line)

DesignView is a new program to Athena.  Little is known about it at the present time.Have you heard about a CAD package called DesignView? It's
sort of a cross between CAD and Macsyma.  Anyhow, it is being donated to
Athena and will be ready for use by spring semester.  

DesignView is a system primarily for mechanical engineers
that combines a simple, 2-D drawing system with a constraint-based
numerical equation solver.

The version currently available on Athena is a Motif/UNIX port of an
existing PC/Windows product.  As such it may look a little "weird" in
places.  Right now an alpha test version is available, complete with
the requisite bugs and unimplemented commands.

@begin(enumerate)
To try out DesignView:

Login to a VAX (VS3100 highly preferred)

Use mwm! (It won't work well at all under uwm thanks to the Motif lib)

@begin(transparent, font courier)
@p(athena%) @b(attach dvdev)
@end(transparent)

@begin(transparent, font courier)
@p(athena%) @b(run /mit/dvdev/vaxbin/dv)
@end(transparent)
@end(enumerate)

If you find any problems send Naomi Schmidt mail.
New versions will appear periodically.  No stability is guaranteed.
File formats will not remain compatible.  Other standard caveats
apply.  Collect and third number calls will not be accepted. 

No documentation for the UNIX version is available yet, and the Help
command hasn't been implemented - so you're on your own.  I'll be glad
to answer questions, though.  It runs much better under X11R4.  


@appendixsection(AutoCAD)
@blankspace(1 line)

It has been rumored that AutoCAD is comming to Athena sometime in the near to distant future.  When it arrives, more information will be forthcoming.


@appendixsection(Other Stuff)
@blankspace(1 line)

There is one other MacDraw-like drafting program on athena.  I know almost nothing about it.  It is called xfig and can be used by typing:

@begin(transparent, font courier, size 12)
@b(athena%) @p(attach sipb)

@b(athena%) @p(/usr/sipb/vaxbin/xfig)
@end(transparent)











@comment(=====================================================================)
@comment(=====================================================================)
@comment(=====================================================================)






@appendix(Some Neat Features on Remote Filesystems and Lockers)
@blankspace(1 line)

@appendixsection(Using the Barton Electronic Card Catalogue)
@blankspace(1 line)

The Barton electronic card catalogue can be used from athena workstations.  I think it can only be used from VAX machines (MVII, VSII, VSII/RC, VSII/GPX, VS2000, VS3100) but it might operate on the RT's and DecStations too...  In any case, do this:

@begin(transparent, font courier)
@b(athena%) @p(attach cardcat)

@b(athena%) @p(/mit/cardcat/bin/library)
@end(transparent)

Now just sit back and wait for the xterm window to pop up.  When it does, place it (but leave it the default 80x25 size).  Then, just sit back and wait for it to telnet.  After it finishes, hit F1 (that's one of the special function keys at the top of the keyboard).  Now hit return a couple of times. 

@blankspace(0.5 lines)
@begin(group)
The following are the key definitions that the emulator accepts:

@tabdivide(5)

Command @\Keystroke@\@\Command@\Keystoke

@bar(0)

Escape  @\^]     @\  @\Send   @\<Return>

Start   @\F1     @\  @\Quit   @\F2
@end(group)
@blankspace(0.5 lines)

@appendixsection(Printing MacIntosh Files on Athena)
@blankspace(1 line)

Printing out a file from a Macintosh involves 3 steps:

@begin(enumerate)
Print your document to a file on the Macintosh
        
Transfer the file to Athena
        
Print the file on Athena
@end(enumerate)

Any file which can be produced on the Macintosh can be printed on
Athena, with one restriction.  You should only use fonts which are
resident in the Athena PostScript printers, or fonts for which you have
a LaserWriter copy (the kind you buy from Abode, *NOT* the kind you
install with the Font/DA mover) in your system folder.  The following
fonts are resident on Athena printers:

@tabclear()
@tabdivide(2)
Times                   @\Helvetica
                
Courier                 @\Avant Garde
                
Lubalin Graph           @\New Century Schoolbook
                
Souvenir                @\Symbol

Fonts such as Geneva and Chicago will look bad, and fonts such as
Palatino and Zapf Chancery will not print at all.

@b(Step 1:      Print your document to a file on the Macintosh)

Select the LaserWriter from the Chooser.  If the "Background Printing"
option is on, turn it off.  Close the Chooser.

From your application, select the Print option, from the File menu (or
hit Command-P on most applications).  Type and hold Command-F
immediately after clicking the OK button of the LaserWriter printer
dialog box.  Another dialog will appear, confirming that a file named
'PostScript' is being created (the Command-F keys can be released now).

The Macintosh creates a file called PostScript0 (or PostScript[n+1] if
you already have a PostScript[n]).  This file will be in your system
folder, root folder (the one you get when you click on the disk icon),
or the application directory, depending on the application.  This is the
file you need to transfer to Athena.

@b(Step 2:      Transfer the file to Athena)

This can be done a number of ways.

@begin(enumerate)
Dialup to Athena and use kermit.
                For more information on how to do this, look in the
                "How to use Kermit" answer under "DIALUP" with the help commands.  

Log into athena from one of the PC's connected to terminal m7-321-1 in the OE cluster.  There are three terminals that are connected to Athena in Ocean Engineering for this purpose.  One is an IBM PC compatable (Tandon) in the cluster itself.  In addition an IBM PS/2 Model 70 and a MacIntosh II in the 5-308 Navy Computer facility are hardwired to terminal m7-321-1.

SIPB has a Macintosh on Athena.  If you take a
                floppy disk to them, they can transfer a file to Athena.

If you have a Mac with a DynaDrive, you can save the file to MS DOS format on a 5.25 inch floppy disk.  This disk can then be used in an IBM PC/RT.

If you have an SE/30 or IIcx/x you can save the file to
                a DOS HD floppy using Apple File Exchange.  The
                VAXstation 3100 can read these disk using the command
                'dosread'.  For more information on this, look at the
                "Using DOS disks from workstations" under "WORKSTATIONS".
@end(enumerate)

@b(Step 3:      Print the file on Athena)

Once the file is in your account, send it to any PostScript printer with
the following commands:

@begin(transparent, font courier)
@b(athena%) @p(attach sipb)

@b(athena%) @p(/mit/sipb/${hosttype}bin/macps) @i(filename) @p(| lpr -P)@i(printer)
@end(transparent)

For more information on macps, type @begin(transparent, font courier)man -M /mit/sipb/man macps@end(transparent) .








@comment(=====================================================================)
@comment(=====================================================================)
@comment(=====================================================================)


@appendix(Customizing Your Account and Playing with Lockers)
@blankspace(1 line)

@appendixsection(Changing Group Members on Accounts and Lockers)
@blankspace(1 line)

You can specify the people for group in your account or owned lockers with the @i(blanche) command.  There are three different qualifiers, add, delete, and file @foot(This is a change from the previous version of the document).

@begin(transparent, font courier)
@b(athena%) @p(blanche) @i(account/lockername) @p(-add) @i(member1) @p(-delete) @i(member2) 

@b(athena%) @p(blanche) @i(account/lockername) @p(-file) @i(filename)
@end(transparent)

Where @i(account/lockername) is your username for your account or the name of a locker you own, and @i(member1) is new member of the group while @i(member2) is an old member you wish to remove.  Additional group members can be specified by spaces between the names.  There is another menu driven way to do this.  If you have a long list of names it is easier to use the file qualifier and specify a filename.  The file should have one username on each line.  See the consultants for details.

@appendixsection(Customizing Your Account and Login Session)
@blankspace(1 line)

You can write files that will perform commands automatically whenever you log in or open a window.  These files are known as "dotfiles" because the filenames start with a period or dot.  There are several kinds, only some of which are listed below:

@begin(transparent, spacing 0.1 lines)
@tabclear()
@tabset(1.2 inch)
.cshrc.mine     @\This file executes whenever you open a window.

.environment    @\This file executes whenever you log in.

.startup.X      @\This file executes whenever you log into an 

                @\X capable terminal (like any athena terminal).

.startup.tty    @\This file executes whenever you log into a non

                @\X capable terminal (like your home PC).

.emacs          @\This executes whenever you open an emacs window.

.anyone         @\Provides a list of usernames to locate on login.

.ispell.words   @\The personal dictionary for the ispell program.

.path           @\Allows quicker access to files in the indicated lockers.
@end(transparent)
@tabclear()

Default versions of the most often used files can be obtained with the following commands:

@begin(transparent, font courier, size 11)
@b(athena%) @p(attach 13.ship)

@b(athena%) @p(/mit/13.ship/junk/update_dotfiles)
@end(transparent)

This command will copy default versions of the .login, .environment, .startup.X, .cshrc, .cshrc.mine, and .path files into your home directory.  It will probably give you an error saying that it cannot find the file .login and there is no such file or directory.  This error indicates things are going well; just ignore it.

You can further customize your aliases with another file called .cshrc.mine.mine.  The default .cshrc.mine file will look for this file and execute it if it exists.  It is recommended that you customize this file rather than the .cshrc.mine file so that changes don't get wiped out the next time you type update_dotfiles.  Similarly, there is the option of creating a .startup.X.mine to allow for customizations like the locations of windows.

@appendixsection(Using the xpix and pictures Libraries)
@blankspace(1 line)

The X Window System contains the concept of a @i{root window}; it is
what you probably think of as the "background".  @foot(Courtesy of Seth Finkelstein) By default, when
the X server starts up it fills in the root window with a grey
cross-hatch pattern.  It is possible to change the contents of the
root window.  There are two programs that you are likely to use to do
this, xcsetroot and xroot.  These two programs are contained in the following lockers with the paths listed below (rtbin for RT's.  The decmipsbin directories for the DECstation 3100's had not been completed at the time of this writing.)

@begin(transparent, font courier)
@b(/mit/xpix/vaxbin/xroot) 

@b(/mit/pictures/vaxbin/xcsetroot) 
@end(transparent)

Xcsetroot can be used on color terminals to set the root background to a solid color, or a
bitmap.  To set a solid color, use the @verbatim(option -solid <color>), for
example, 

@begin(transparent, font courier)
@b(athena%) @p(xcsetroot) @p(-solid) @i(red) 
@end(transparent)

Use the @p(-bitmap) option to put a
bitmap into the root window; for example, 

@begin(transparent, font courier)
@b(athena%) @p(xcsetroot) @p(-bitmap) @i(/usr/sipb/bitmaps.x11/smile)
@end(transparent)

The bitmap is repeated as many times
as is necessary to fill the root window.  (For information on creating
your own bitmaps, read the bitmap(1) man page.)  Actually, xcsetroot
can do other things as well; read the xcsetroot(1) man page for more
information.

Note there are two different formats in common use, "bitmap", and
"window dump". To make things even more confusing, "window dump"
files are often called bitmaps, and graphics programs might refer to
a bitmap window. Programs usually expect either one format or the
other, and will become very confused if given the wrong one.

It is also possible to fill the root window with a real picture.  To
do this, you must have what is called an X window dump file.  There
are many of these available online, some in the xpix locker (which,
not coincidentally, is one place where programs that use window dump
files are stored.)  For a listing of all the images available in this
locker, type the following commands:


@begin(transparent, font courier)
@b(athena%) @p(attach xpix)

@b(athena%) @p(ls -C /mit/xpix/pictures | more)
@end(transparent)

(You want to pipe the list through ``more'' because there are more
pictures than can be listed on one screen. The -C option saves space by
forcing the listing to have many columns.)  You may notice that all of
the files in that directory have the extension ``.dmp.Z''. The ``.Z''
means that the file has been @i{compressed}, because these files 
are large and uncompressed they take up too much disk space.  The .dmp
is one of the extensions used to indicate that the file is an X window
dump (other common ones are .x11 and .xwd).  Thus, to put a picture in
your root window, you must first uncompress it and then send the file to
the program named ``xroot''.  Here is a sample command to do this:

@begin(transparent, font courier)
@b(athena%) @p(zcat /mit/xpix/pictures/stars.dmp.Z | /mit/xpix/vaxbin/xroot)
@end(transparent)

Zcat uncompresses the file and sends it to standard output; xroot
then reads the uncompressed file from standard input and displays it
on the screen.  You should replace ``vaxbin'' with ``rtbin'' if you
are using an IBM RT workstation (there is also a version available
for the DECstation 3100, in decmipsbin.). In the following
instructions, if the only difference between the versions of the
command is in which "bin" to use, only the "vaxbin" version will be
displayed.

Once you've seen some nice pictures, you may want to make printouts of
them. The command for this is:

@begin(transparent, font courier)
@b(athena%) @p(zcat /mit/xpix/pictures/stars.dmp.Z | xpr -rv | lpr -P)@i(printername)
@end(transparent)

The program @b(xpr) prints X window dumps. The use of @b(-rv) is
necessary because of differences between the way screens and printers
deal with images. If the picture comes out looking like a photographic
negative, or you like inverse-video special effects, omit the @b(-rv)
option.

You can also display the pictures in windows of their own:

@begin(transparent, font courier)
@b(athena%) @p(zcat /mit/xpix/pictures/stars.dmp.Z | xwud &)
@end(transparent)


This creates a window, no different from any other one, devoted
entirely to the image. The "&" is needed in order to type other
commands while the window exists (see the section on the C shell for
more information).

The selection of images available in the xpix locker is subject to heavy
censorship. More extensive collections exist in various places. Ask
around. 

@center(@b(@ux(Color xpix)))

Project Athena possess a few workstations that support color.  Most
of those open to public use can be found in room 11-113 (The
Fishbowl). 

There are three types of color workstations : DEC and IBM, and Color VS3100's. The DEC
workstations have Parallax video boards, while the IBM ones usually
have MegaPel graphics boards @foot(footnote There exist IBM workstations
with Parallax boards, but we won't talk about that ...). The most
important piece of information to remember about these is that you can
watch TV on workstations equipped with Parallaxen.

The following information is true as of September 1989, release 6.3B,
X11R3. 

When these color workstations deactivate, they run an idle display
that shows various color pictures. The pictures change every five
minutes. The images are shown by programming the graphics boards
directly, entirely bypassing X. 

People often want to display these color pictures on their X screens
or use them as backgrounds. While not entirely impossible, attempting
to do this will run you into so many unimplemented features, X
problems, and outright bugs that it is not for the faint of heart (or
weak of programming). Many of the relevant programs can be found in
the "pictures" locker. The picture files themselves are in
/mit/pictures/display. 

While the images are stored in color X window dump format
(compressed), using any standard X programs (xwd, xwud, xpr, etc.)
may very well fail. This is due to the fact that color is supported
poorly, in these programs. In particular, attempting to
undump a color file, if a window is created at all, usually results
in a window with colors unrelated to those in the image. In the worst
case, the workstation will crash. If the preceding warnings haven't
dissuaded you, you could try to pipe the pictures through xwud as described above.

The author of these programs cautions that anyone who does this
(particularly the second) is living dangerously. He disclaims all
responsibility for any resulting consequences, up to and include causing
the workstation to wedge or crash.

Color X images can be displayed on monochrome screens, although a
great deal is lost in translation. Use:

@begin(transparent, font courier)
@b(athena%) @p(zcat /mit/pictures/display/filename.x11.Z |/mit/pictures/vaxbin/xmono | xwud &)
@end(transparent)

The xcsetroot command can be used to put images in the background window.  One option that you may wish to use is the @b(-a) option to fill the screen completely.

Other interesting color X programs can be found in the "video" and
"visual" lockers.

As mentioned earlier, it's possible to watch television on some of
the color workstations. There's a video instructions document which
describes how to do this. The TV window looks like a typical color
window, but looks are deceptive. There is no easy way to save and
redisplay the color image (this has frustrated many people).  Using
the standard X window dumping program (xwd) will produce nothing
readily usable. The color format is not anything you want to deal
with @foot(It's 15 or 18 bits of YUV information, if you must
know).

There is a public mailing list for discussing xpix and graphics
topics.  It's called, appropriately enough, "xpix".  See the section
on mailing lists for instructions if you wish to add yourself to the
list.





@comment(=====================================================================)
@comment(=====================================================================)
@comment(=====================================================================)

@appendix(Generic Mathematical Routines)
@blankspace(1 line)

There are several mathematical routines out there.  I only know a little about Matlab and nothing about the rest.  For the record the following at least exist:
@blankspace(1 line)

@tabclear()
@tabdivide(3)
@begin(group)
Name           @\Function          @\How to use

@blankspace(-0.5 lines)
@bar(0)
@blankspace(0.5 lines)

xmath          @\Plotting +        @\attach xmath

               @\                  @\/mit/xmath/xmath

prochart       @\Grapher           @\attach prochart

               @\                  @\/mit/prochart/prochart

matlab         @\Math & Plotting   @\setup matlab

               @\                  @\matlab

macsyma        @\Symbolic Math     @\macsyma

matrixx        @\Grapher +         @\attach courseware

               @\/mit/courseware/matrixx/matrixx

@end(group)
@tabclear()

@appendixsection(Matlab)

The Matlab program is a very powerful tool for doing mathematical analysis and plotting on Athena.  It uses matirices to handle all of the values possed through it.  While this fact makes it very powerful for linear algebraic applications, it also tends to make it a little cumbersome.

There is a very useful document called @i(Essential Matlab) available at Graphic Arts in the basement of building 11.  This document describes the functions of matlab in greater detail than I can go into here and is very easy to understand.  There are three matters of import that will be discussed:

@b(Starting Matlab:) To start the current version of matlab you must create a subdirectory called @b(matlab).  This subdirectory must be directly under your home directory.  Note that all data files that you wish to use and all output files created by Matlab go in this directory.  Next, change directories into the matlab directory and type:

@begin(transparent, font courier, size 12)
@b(athena%) @p(setup matlab)
@end(transparent:)

After a minute or two a window will come up.  All actions you perform relevant to Matlab (such as translate or gpp) must be performed in this window.

@b(Translating Data) You can prepare data for Matlab plots in the form of multiple columns of numbers in a standard text file.  These columns can be separated by tabs or spaces.  In a typical example, the x values would go down the left hand column, the first set of y values down the middle column, and the second set of y values down the right column.  

To include these values in a form Matlab understands, you must first run the program 
@begin(transparent, font courier, size 12)
translate 
@end(transparent)
in the window that was created when you typed @b(setup matlab).  The translate file will ask a series of questions, and for the most part you can take the defaults.  

After translating the data, enter Matlab and type 
@begin(transparent, font courier, size 12)
load @i(filename) 
@end(transparent)
This will load the values into matlab.  Now you can perform any plotting or other actions on the values.


@b(Including Plots:) If you use the meta command in matlab to generate plots in a file, you can then convert them to postscript via gpp (see @i[Essential Matlab]).  Once converted, these postscript files can be readily included in scribe and L@-(A)T@+(E)X files.









@comment(=====================================================================)
@comment(=====================================================================)
@comment(=====================================================================)

@appendix(Games)
@blankspace(1 line)

There are several excellent games available on athena.  One of the truly nifty things is that some of them allow two or more people to play against each other, all on different terminals.  In order to get to the games type:

@begin(transparent, font courier, size 12)
@b(athena%) @p(attach games)

@b(athena%) @p(/mit/games/vaxbin/)@i(gamename)  
@end(transparent)

Then try typing the name of the game of your choice.  If you are on an IBM PC/RT or a DECstation, then type 
@begin(transparent, font courier, size 12)
rtbin 
@end(transparent)
or 
@begin(transparent, font courier, size 12)
decmipsbin 
@end(transparent)
instead of 
@begin(transparent, font courier, size 12)
vaxbin
@end(transparent)
.  Some of the good games are:

@begin(itemize)
xtank @y(M) A tank combat game that offers the appealling ability to design your own tank and then play with it against one or more of your friends on other machines.

@b(xconq5) @y(M) World conquest like Third Reich.@+(@y(T))@foot(Third Reich is a registered trademark of Avalon Hill, Inc.)

@b(bzone) @y(M) Like the battlezone arcade game.@+(@y(T))@foot(Battlezone is a registered trade mark of Atari, Inc.)

@b(aliens) @y(M) A goofy interactive game.

@b(moria) @y(M) Like Dungeons and Dragons.@+(@Y(T))@foot(Dungeons and Dragons is a registered trademark of TSR Games, Inc.)

@b(omega) @y(M) Like moria but better.

@b(ogre) @y(M) Like the microgame ogre.@+(@y(T))@foot(Ogre is a registered trademark of Steve Jackson Games, Inc.)

@b(xchomp) @y(M) Like pac-man.@+(@y(T))@foot(Pac-Man is a registered trade mark of Atari, Inc.)

@b(Tetris)@+(@Y(T))@foot{Tetris is a registered trademark of about 6 different companies on 3 continents.  Check with your local federal court to see who final won the custody suit (probably @i[not] Nintendo)}  @y(M) The same game as the new home video craze.  From Russia with Love...
@end(itemize)

Both xtank and xconq allow multiple players.  Usually these games list where you can get help.  I have copies of the help files for xtank and xconq5.  There are many more games than I have listed above.  Just browse through the appropriate bin directory for a list of them.

Have fun, but please remember that if we're running out of terminals games have the lowest priority and hence, someone could kick you off your machine.

@appendixsection(Battlezone)

This game works best when using an X11R4 X server; prior releases
aren't really fast enough.  VS2's are way too slow for the game; it's
just barely playable on VS2000's, and it's quite playable on VS3100's
and IBM RT's.

You steer the tank with the mouse.  Moving the mouse changes the length and direction of a vector in the lower right hand corner of the screen.  When the vector points up you are moving forward; down is backwards.  Be aware that if its pointing to the left you are merely turning in place, not actually moving (and are a sitting duck to enemy fire).  Driving backwards confuses the computer and, hence, is very effective.  Watch out for helicopters!

The left mouse button fires the gun, the middle on stops tank motion, and the right one "toggles" between high and low gear.  Note that on most worstations there isn't much difference between high and low gear.

@appendixsection(Xconq5)

Xconq5 is a version of a game that has gone by several other psuedonyms such as "empire" and "conquest."  The version on Athena is both neat to play and highly versatile for customization.  To run it, just type:

@begin(transparent, font courier)
@p(athena%) @b(attach games)

@p(athena%) @b(/mit/games/vaxbin/xconq5)
@end(transparent)

Xconq also provides for a whole slew of qualifiers to allow for different maps, timeperiods, scenarios, additional machine players, additional human players, and all kinds of other stuff.  The following is an abbreviated list of the options available.  Some of them must be done in order, so the order critical ones are listed first.

If you are going to play on a color terminal, you should remember some caveats:  First use a period that is "color capable."  Two of these are "ww2color" a color version of the default, and ww4.  If you don't then forests will look like plains and your tanks will get stuck.

@begin(transparent, leftmargin 1.5 inches, indent -0.5 inches)

@ux(@b(-p) @i(period)) Specifies a period.  Typical periods are: ww2 (World War 2, and the default), ww3 (the default current/future warfare), ww4 (Ian & Dave's current/future warfare), monster (Godzilla), monster2 (You as Godzilla against the machine), monster3 (You as the Japanese against the machine as Godzilla), flattop (Carrier battles in the pacific), starwars, and many others.  

@ux(@b(-s) @i(scenerio)) If this is specified, then listing the period is usually redundant (so don't list the period).  Typical choices are, europe42 (the Russian front), monster, monster2, and monster3, and beriut (street fighting in The Lebanon).

@ux(@b(-v)) This will allow all players to see the entire map from the begining.  The geography (including cities) will always be visable, but the units will not.

@ux(@b(-e) @i(Some-numeral)) This is the number of machine (robot) players that will play.  Since the computer is pretty dumb (especially for scenerios more distant from ww2), its a good idea to specify at least a couple machine players unless you want a really quick game.

@ux(@b(-M) @i(height) @i(width)) This is the size of the randomly generated map.  A typical map size is maybe 40 x 40.  If you specify @ux(@b(-m) @i(mapname)) you can use a stored map.  Examples are earth, earth2, two, three, and others.
@end(transparent)

@comment(=====================================================================)
@comment(=====================================================================)
@comment(=====================================================================)








@appendix(Ocean Engineering Applications)
@blankspace(1 line)

@appendixsection(SHCP -- Ship Hull Characteristics Program)
@blankspace(1 line)

Norbert H Doerry
27 April 1988 :: Modified 13 June 1989 :: Incorporated IRB-6/13/89

This document explains how to run SHCP on a VAX STATION II.

@u(@p(Logging in:))

When you first sit down in front of a workstation, the machine will prompt you to 'Hit any key to start'.  Do so!  After a short time, you will be prompted with:

@begin(transparent, font courier, size 12)
@b(login:)
@end(transparent)

Enter your username.  You will then be prompted with:

@begin(transparent, font courier, size 12)
@b(Password:)
@end(transparent)

Enter your password.  As you type it, the characters will not appear on the screen.  A short time later (although it may take as long as 3 or 4 minutes), you will receive a prompt looking something like:

@begin(transparent, font courier, size 12)
@b(athena%)
@end(transparent)

You are now successfully logged on.


@u(@p(Attaching the 13.ship Course Locker:))

Before you can run shcp, you must attach to the 13.411 course locker.  This is accomplished by entering :

@b(athena% attach 13.ship)

You should get a message indicating that the course locker is attached.

@u(@p(Running SHCP))

To run shcp through the RUNSHCP shell, you should enter:

@b(athena% /mit/13.ship/shcp/runshcp)

You will then enter the RUNSHCP shell.  See the help files for the individual programs on the RUNSHCP menu.

@appendixsection(ASSET)
@blankspace(1 line)

The Asset program is a mathematical model of the conceptual ship design process using parametric information.  I'll refer you to the T.A.'s for 13.412 for more information.

@appendixsection(SMP and 5dof)
@blankspace(1 line)

The SMP and MIT's 5 degree of freedom seakeeping programs are on Athena.  Two experts on these programs just graduated.  Talk to Prof's Tibbitts, Chris, and Triatafyllou, for more info.












@appendix(Useful Commands in Unix)
@blankspace(1 line)

Norbert H. Doerry
21 April 1988 :: Revised 31 May 1989 :: Incorporated IRB-6/13/89 :: Revised IRB-8/21/89 :: Revised IRB-9/04/89

This document is intended to be a quick reference for the UNIX commands most commonly used.  Use the 'man' command to find out more about a specific command. The Athena ESSENTIAL series is also an excellent source of information.

Other sources of information:

@begin(transparent, font newcenturyschoolbook, size 12)
@begin(itemize)

ATHENA Consultants: (x3-4435) 11-1xx.  Generally useful if you can get a hold of one.
  
SIPB (Student Information Processing Board):   This group is newly relocated over to the fifth floor of the student center, in room W20-525 or there-abouts.  These people are a bunch of 'hackers' who probably know more about ATHENA than the ATHENA people themselves.  They are usually very eager to answer questions and provide help.

OLC (ONLINE CONSULTANT) : Enter 'olc' when logged on a workstation.  You will be prompted by the program to enter your question  If a consultant is available, he/she will answer your question with a return message.

@end(itemize)
@end(transparent)

@bar(0)	

@u(@p(Some Common Commands:))

@blankspace(1 line)

@begin(transparent, leftmargin 2.0 inches, indent -1.5 inches, spacing 0 lines, font courier, size 12)
@tabset(0 inches)

@begin(transparent, font newcenturyschoolbook, size 14)
The Format for all of the commands listed is:
@end(transparent)
@blankspace(1 line)

@b(Command) @i(Qualifier #1) @i(Qualifier #2) @i(...)
@blankspace(0.5 lines)

@\example of the command
@blankspace(0.5 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\Description
@end(transparent)

@blankspace(3 lines)





@b(alias) @i(name) @i(command)         
@blankspace(0.5 lines)

@\alias screendump 'xwd|xpr|lpr'
@blankspace(0.5 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\This command allows you to rename a command to something more managable.  It only works in the terminal window that you execute the command in.  (You can put this command in your .cshrc file so that it gets executed everytime you open a new window)
@end(transparent)


@blankspace(1 line)
@b(apropos) @i[topic]
@blankspace(0.5 lines)

@\apropos system
@blankspace(0.5 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\This is a 'help' function that prints possible commands related to a specified topic.
@end(transparent)



@blankspace(1 line)
@b(attach) @i[locker]
@blankspace(0.5 lines)

@\attach 13.411
@blankspace(0.5 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\attaches course locker so that you can gain access to its files and programs.
@end(transparent)



@blankspace(1 line)
@b(cat) @i[filename]
@blankspace(0.5 lines)

@\cat test
@blankspace(0.5 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\Displays the contents of a file on the screen.
@end(transparent)



@blankspace(1 line)
@b(cat -n) @i[filename]
@blankspace(0.5 lines)

@\cat -n test
@blankspace(0.5 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\Displays the contents of a file along with line numbers.
@end(transparent)



@blankspace(1 line)
@b(cd) @i[directory path]
@blankspace(0.5 lines)

@\cd /mit/nhd/tester
@blankspace(0.5 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\Changes your current directory
@end(transparent)



@blankspace(1 line)
@b(chmod) @i[numb] @i[filename]
@blankspace(0.5 lines)

@\chmod 755 test
@blankspace(0.5 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\This changes the permissions on a file or directory.  'numb' is a three digit octal number which indicates what the permissions should be.  Use the 'ls -l' command to see what permissions are presently on the file.  Here are a few common 'numbs' used:
@blankspace(0.5 lines)

@\700  Allows you to read, write, execute the file but no one else

@blankspace(0.5 lines)
@\744  Allows you to do everything, others can read (copy) your file

@blankspace(0.5 lines)
@\755  Allows you to do everything, others can read (copy) and execute your file

@blankspace(0.5 lines)
@\777  Allows everyone to do anything to your file.

@blankspace(0.5 lines)
@\Note: The directory your file is in must also have the the proper protections set.  Use 'chmod' for directories as well.
@end(transparent)


@blankspace(1 line)
@b(cp) @i[from filename] @i[to filename]     
@blankspace(0.25 lines)

@\cp /mit/nhd/tester/test testa
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\Copy contents of a file from one file to another.
@end(transparent)


@blankspace(1 line)
@b(cp) @i[from filename] .                 
@blankspace(0.25 lines)

@\cp /mit/nhd/tester/test .
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\Copy file to the current directory.  Keep the same name.
@end(transparent)


@blankspace(1 line)
@b(detach) @i[locker]       
@blankspace(0.25 lines)

@\detach 13.411
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\Detach course locker after you are completed with it.
@end(transparent)


@blankspace(1 line)
@b(dirs) 
@blankspace(0.25 lines)

@\dirs
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\Shows the current working directory of that window.  Faster than pwd.
@end(transparent)


@blankspace(1 line)
@b(emacs) @i[filename] &                   
@blankspace(0.25 lines)

@\emacs test &
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\This is the text editor for the UNIX system.  See Essential Emacs.  The '&' executes the program in 'background' so that your original window is free to execute other commands.  It will still work if you leave it off.
@end(transparent)

@blankspace(1 line)
@b(exit)
@blankspace(0.25 lines)

@\exit
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\kills the window your in.  If you are in the original window you will logout.
@end(transparent)



@blankspace(1 line)
@b(logout)
@blankspace(0.25 lines)

@\logout
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\logs you off of the terminal.
@end(transparent)



@blankspace(1 line)
@b(lpq)
@blankspace(0.25 lines)
                
@\lpq
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\show the status of the printer jobs for the default printer.
@end(transparent)


@blankspace(1 line)
@b(lpq -P)@i[printer]                      
@blankspace(0.25 lines)

@\lpq -Plinus
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\show the status of the printer jobs for the specified printer.
@end(transparent)



@blankspace(1 line)
@b(lpr) @i[filename]                       
@blankspace(0.25 lines)

@\lpr test
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\prints the file to the default printer
@end(transparent)



@blankspace(1 line)
@b(lpr -p) @i[filename]                    
@blankspace(0.25 lines)

@\lpr -p test
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\prints the file to the default printer with page numbers and margins
@end(transparent)



@blankspace(1 line)
@b(lpr -P)@i[printer] @i[filename]           
@blankspace(0.25 lines)

@\lpr -Plinus test
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\prints the file to the specifed printer
@end(transparent)



@blankspace(1 line)
@b(ls)
@blankspace(0.25 lines)
                                   
@\ls
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\show the contents of the current directory.
@end(transparent)



@blankspace(1 line)
@b(ls)  @i[directory]                       
@blankspace(0.25 lines)

@\ls /mit/nhd/testa
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\show the contents of the specified directory.
@end(transparent)
 


@blankspace(1 line)
@b(ls -a)
@blankspace(0.25 lines)

@\ls -a
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\show all of the files, including files beginning with a '.'
@end(transparent)



@blankspace(1 line)
@b(ls -l)
@blankspace(0.25 lines)

@\ls -l
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\show the contents along with additional information of the current directory.
@end(transparent)




@blankspace(1 line)
@b(man) @i[command]
@blankspace(0.25 lines)

@\man lpr
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\displays the UNIX Manual page for the specified command.
@end(transparent)



@blankspace(1 line)
@b(mkdir) @i[directory]                    
@blankspace(0.25 lines)

@\mkdir testb
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\make a directory
@end(transparent)




@blankspace(1 line)
@b(more) @i[filename]
@blankspace(0.25 lines)
                      
@\more test
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\Displays the contents of a file, one page at a time.  Hit
		a space bar to go forward one page, 'b' to go back one page,
		Return to go forward one line.
@end(transparent)



@blankspace(1 line)
@b(mv) @i[from file] @i[to file]              
@blankspace(0.25 lines)

@\mv test testa
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\moves the contents of a file from one file to another.  The first file is then deleted.  This is how you rename a file as well.
@end(transparent)



@blankspace(1 line)
@b(pwd)
@blankspace(0.25 lines)
 
@\pwd
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\print working directory.
@end(transparent)



@blankspace(1 line)
@b(quota -v)
@blankspace(0.25 lines)
 
@\quota -v
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\Shows how much memory you have available and how much has been used.
@end(transparent)


@blankspace(1 line)
@b(rm) @i[filename]	                     
@blankspace(0.25 lines)

@\rm test
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\removes the file.  Caution 'rm' is forever.  Be very careful if you use 'wild cards' in the filename.  Recommend using rm -i.
@end(transparent)



@blankspace(1 line)
@b(rm -i) @i[filename]
@blankspace(0.25 lines)

@\rm -i test
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\removes the file, but asks you for a confirmation response.  If you use 'wild cards' in the filename, you should use this command to eliminate the possibility of killing the wrong files.
@end(transparent)




@blankspace(1 line)
@b(rmdir) @i[directory]                    
@blankspace(0.25 lines)

@\rmdir testb
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\removes the specified directory.
@end(transparent)


@blankspace(1 line)
@b(setenv PRINTER) @i[printer]                    
@blankspace(0.25 lines)

@\setenv PRINTER oe
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\Sets the designated printer to be the default.
@end(transparent)


@blankspace(1 line)
@b(set lineedit)
@blankspace(0.25 lines)

@\set lineedit
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\Allows the use of a history of commands.  Hitting the up and down arrows when at the athena prompt will list the previous 20 commands used.  They can be editted and reused.
@end(transparent)




@blankspace(1 line)
@b(xcalc &)
@blankspace(0.25 lines)

@\xcalc &
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\creates a 'TI' calculator on the workstation
@end(transparent)



@blankspace(1 line)
@b(xcalc -rpn &)
@blankspace(0.25 lines)
                         
@\xcalc -rpn &
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\creates an 'HP' calculator on the workstation
@end(transparent)



@blankspace(1 line)
@b(xclock & )
@blankspace(0.25 lines)

@\xclock &
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\creates an analog clock on the workstation
@end(transparent)




@blankspace(1 line)
@b(xwd | xpr -device ps | lpr)
@blankspace(0.25 lines)

@\xwd | xpr -device ps | lpr
@blankspace(0.25 lines)

or
@blankspace(0.25 lines)

@b(xdpr -device ps)                         
@blankspace(0.25 lines)

@\xpdr -device ps
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\performs a screendump of a window to the default printer.  After you enter this command, the cursor will change to a cross hair.  Move the cross hair to the window you want dumped, and hit one of the mouse buttons.  You should hear a single beep, followd by two beeps.  A short time later the printer will churn out the picture.
@end(transparent)



@blankspace(1 line)
@b(xterm &) 
@blankspace(0.25 lines)
                             
@\xterm &
@blankspace(0.25 lines)

@begin(transparent, font newcenturyschoolbook, size 12)
@\create a new window.  Shortly after entering the command, the cursor will change to a left corner.  Press the left button mouse for a default sized window.  For a user specified window size, Press the middle button, then drag the mouse until the window is of the proper size.
@end(transparent)

@end(transparent)

@p(@u(Logging Out))

After you are done, you can log out by entering :

@begin(transparent, font courier, size 12)
@b(athena% logout)
@end(transparent)
or by clicking the left mouse button on the window in the lower right hand corner of the screen that says "Logout" on it.

@p(@u(Notes:))
@begin(enumerate)
@begin(multiple)
For a listing of the common unix commands enter:

@begin(transparent, font courier, size 12)
@b(athena% more /mit/13.ship/junk/unix.doc)
@end(transparent)

You can print this file on the default printer by entering:

@begin(transparent, font courier, size 12)
@b(athena% lpr -Poe /mit/13.ship/junk/unix.doc)
@end(transparent)
@end(multiple)

The 'alias' command can make your life a lot easier by allowing you to assign a short name to a long command.  See unix.doc for more information.  In addition, if you are used to another operating system (such as VMS), you can force unix to look like something you understand (ie. change ls -l to dir). 

@begin(multiple)
You can create a .cshrc.mine file so that your favorite aliases are executed automatically whenever you open a new window.  The file /mit/13.411/junk/cshrc.mine contains a number of aliases that may be of use. To replace your .cshrc.mine with this file, enter the following commands

@begin(transparent, font courier, size 12)
@b(athena% attach 13.ship)

@b(athena% cp /mit/13.ship/junk/cshrc.mine .cshrc.mine)
@end(transparent)
@end(multiple)

@begin(multiple)
Likewise, you can create a .startup.X file as well.

@begin(transparent, font courier, size 12)
@b(athena% attach 13.ship)

@b(athena% cp /mit/13.ship/junk/login.mine .startup.X)
@end(transparent)
@end(multiple)
@end(enumerate)
@end(transparent)

	

