%!PS-Adobe- PostScript translation of Interpress master
%%DocumentFonts: unknown
%%Creator: chauser
%%Pages: 34
%%EndComments
% Simple procedures (others defined as needed)
/width {stringwidth pop} bind def                   % stack: text
/vec {moveto lineto stroke} bind def                % stack: x y
/nsp {0 exch {32 eq {1 add} if} forall} bind def    % stack: txt -> #spaces
/try {dup where {exch get} {pop 0} ifelse} bind def % stack: value                         
%%EndProlog

%%page 1
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      /Times-Roman findfont 10.0375 scalefont
      /font0 exch def
      font0 setfont
      304.7441 36.135 moveto
      (1) show
      90.3375 689.9815 moveto
      /Times-Italic findfont 10.0375 scalefont
      /font1 exch def
      font1 setfont
      (CedarPrimer.tioga) show
      105.3938 677.9366 moveto
      font1 setfont
      (Copyright ) show
      /Times-Italic findfont 10.0375 scalefont
      dup length dict begin
         {1 index /FID ne {def} {pop pop} ifelse} forall
         /Encoding ISOLatin1Encoding def currentdict
         end
      /font2 exch definefont pop
      /font2 findfont setfont
      (\251) show
      font1 setfont
      ( 1990, 1992, 1993 by Xerox Corporation.  All rights reserved.) show
      105.3938 665.8916 moveto
      font1 setfont
      (Brian Oki, October 4, 1990 10:40 am PDT) show
      105.3938 653.8465 moveto
      font1 setfont
      (Brent Welch November 5, 1990 11:59 am PST) show
      105.3938 641.8015 moveto
      font1 setfont
      (Christian Jacobi, April 21, 1993 5:25 pm PDT) show
      105.3938 629.7568 moveto
      font1 setfont
      (Chauser, November 12, 1993 4:50 pm PST) show
      105.3938 617.7115 moveto
      90.3375 605.6668 moveto
      /Times-Roman findfont 8.029999 scalefont
      /font3 exch def
      font3 setfont
      (CedarPrimer 1993 ) show
      90.3375 545.4415 moveto
      /Helvetica-Bold findfont 18.0675 scalefont
      /font4 exch def
      font4 setfont
      (How To Get Around Cedar - CDROM Edition) show
      90.3375 509.3067 moveto
      /Helvetica findfont 12.045 scalefont
      /font5 exch def
      font5 setfont
      (Brian Oki, Christian Jacobi et al.) show
      90.3375 473.1715 moveto
      /Helvetica findfont 8.029999 scalefont
      /font6 exch def
      font6 setfont
      (Filed on) show
      /Helvetica findfont 10.0375 scalefont
      /font7 exch def
      font7 setfont
      (: [Cedar10.1]<CedarDoc>CedarPrimerCDROM.tioga) show
      90.3375 443.0592 moveto
      90.3375 406.9242 moveto
      /Symbol findfont 8.029999 scalefont
      /font8 exch def
      font8 setfont
      (\323) show
      font6 setfont
      (  Copyright 1990, 1992, 1993  Xerox Corporation.  All rights reserved.) show
      90.3375 376.8116 moveto
      90.3375 340.6766 moveto
      /colwidth 423.62 def
      gsave
         /Helvetica-Bold findfont 10.0375 scalefont
         /font9 exch def
         
/execget {arindex get dup null eq {pop} {exec} ifelse} bind def
/mixedjustify {
    /excess colwidth totwidth sub def
    0 1 npiece {
        /arindex exch def
        opsbef execget                   % exec any accumu before ops
        nspaces arindex get              % stack: nspaces
        dup 0 eq {                       % stack: nspaces
            pop texts arindex get        % stack: text
            show                         % stack: NULL
            }{ 
            weights arindex get          % stack: nspaces weight
            totwt div excess mul         % stack: nspaces share-excess
            exch div 0 32                % stack: spaceadd 0 32
            texts arindex get            % stack: spaceadd 0 32 text
            widthshow                    % stack: NULL
            } ifelse
        opsaft execget                   % exec any accumulated after ops
        } for
    /totwidth 0 def /totwt 0.0 def
    } bind def
/buf {                                   % stack: text npiece
    /npiece exch def                     % stack: text
    dup nsp /ns exch def                 % stack: text
    dup texts npiece 3 -1 roll put       % stack: text
    nspaces npiece ns put width          % stack: width
    totwidth add /totwidth exch def      % stack: NULL
    ns 0 ne {
       ( ) width ns mul                  % stack: weight
       dup totwt add /totwt exch def     % stack: weight
       weights npiece 3 -1 roll put      % stack: NULL
       } if
    } bind def
/texts 250 array def
/nspaces 250 array def
/weights 250 array def
/opsbef 250 array def
/opsaft 250 array def
/totwidth 0 def
/totwt 0.0 def

font9 setfont
         opsbef 0 {font9 setfont} put
         (Abstract: ) 0 buf
         opsaft 0 null put
         font7 setfont
         opsbef 1 {font7 setfont} put
         (This document is a general introduction Cedar and is geared towards the needs) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      90.3375 328.6316 moveto
      gsave
         
/justify {                               % stack: text
    dup nsp /ns exch def                 % stack: text
    ns 0 eq {show} {                     % stack: text
        dup width /totwidth try add      % stack: text width
        colwidth exch sub                % stack: text excess
        ns div                           % stack: text spaceadd
        0 32 4 -1 roll                   % stack: spaceadd 0 32 text
        widthshow /totwidth 0 def        % stack: NULL
        } ifelse
    } bind def

font7 setfont
         (and interests of newcomers to the Cedar programming language and environment.  It) justify
         grestore
      90.3375 316.5867 moveto
      gsave
         font7 setfont
         (describes starting the Cedar environment, printing on-line documents, programming in) justify
         grestore
      90.3375 304.5416 moveto
      font7 setfont
      (Cedar, and some lore about Cedar.) show
      90.3375 280.4516 moveto
      gsave
         font7 setfont
         opsbef 0 {font7 setfont} put
         ([) 0 buf
         opsaft 0 null put
         font9 setfont
         opsbef 1 {font9 setfont} put
         (If you are looking at this document on-line from within the editor named Tioga,) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      90.3375 268.4066 moveto
      gsave
         font9 setfont
         (you might want to use the level functions to its overall structure.  Click the) justify
         grestore
      90.3375 256.3616 moveto
      gsave
         font9 setfont
         (``Levels'' button in the top menu, then click ``FirstLevelOnly'' in the new menu) justify
         grestore
      90.3375 244.3166 moveto
      gsave
         font9 setfont
         (that appears.  That will show you the major section headings.  Click ``AllLevels'') justify
         grestore
      90.3375 232.2716 moveto
      font9 setfont
      (to read the details.) show
      font7 setfont
      (]) show
      90.3375 208.1816 moveto
      90.3375 120.4501 moveto
      /Helvetica findfont 24.09 scalefont
      /font10 exch def
      font10 setfont
      (XEROX) show
      font0 setfont
      44.56522 0.0 rmoveto
      font7 setfont
      58.0 0.0 rmoveto
      58.0 0.0 rmoveto
      (Xerox Corporation) show
      90.3375 108.4051 moveto
      font0 setfont
      58.0 0.0 rmoveto
      font7 setfont
      58.0 0.0 rmoveto
      58.0 0.0 rmoveto
      58.0 0.0 rmoveto
      (Palo Alto Research Center) show
      90.3375 96.36014 moveto
      font0 setfont
      58.0 0.0 rmoveto
      58.0 0.0 rmoveto
      58.0 0.0 rmoveto
      58.0 0.0 rmoveto
      font7 setfont
      (3333 Coyote Hill Road) show
      90.3375 84.31512 moveto
      font0 setfont
      58.0 0.0 rmoveto
      font7 setfont
      58.0 0.0 rmoveto
      58.0 0.0 rmoveto
      58.0 0.0 rmoveto
      (Palo Alto, California 94304) show
      90.3375 72.27012 moveto
      grestore
   grestore
% end page 1
showpage
%%page 2
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      519.2227 746.79 moveto
      (2) show
      90.3375 684.9593 moveto
      /Times-Bold findfont 12.045 scalefont
      /font11 exch def
      font11 setfont
      (1.  Introduction) show
      90.3375 660.8125 moveto
      /Times-Bold findfont 10.0375 scalefont
      /font12 exch def
      font12 setfont
      (1.1  Foreword) show
      110.4125 636.6778 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (The purpose of this document is to help newcomers adapt to the Cedar computing) justify
         grestore
      90.3375 624.6326 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (environment.   We hope it will prove useful as a primer on getting started \050and surviving\051 with) justify
         grestore
      90.3375 612.5876 moveto
      gsave
         font0 setfont
         (Cedar on Sun SPARCstations.  In particular, we describe how to start the Cedar  environment \050a) justify
         grestore
      90.3375 600.5428 moveto
      font1 setfont
      (world) show
      font0 setfont
      (\051,  printing on-line documents,  and a bit about Cedar programming. ) show
      110.4125 582.4415 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (This document does ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (not) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( teach you the Cedar programming language, but it does provide a) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 570.3965 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (number of hints and summaries on the subject; these may or may not be documented elsewhere.) justify
         grestore
      90.3375 558.3514 moveto
      font0 setfont
      (See LanguageOverviewDoc.tioga for an introduction to the Cedar language.) show
      110.4125 540.2503 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (A great deal of useful information is available on-line in the form of documents and source) justify
         grestore
      90.3375 528.2051 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (programs.  Reading them is often very helpful, but finding them can be a nuisance.  Throughout) justify
         grestore
      90.3375 516.1604 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (this document, references to on-line material are indicated by <) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (n) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (>, where ) 2 buf
         opsaft 2 null put
         font1 setfont
         opsbef 3 {font1 setfont} put
         (n) 3 buf
         opsaft 3 null put
         font0 setfont
         opsbef 4 {font0 setfont} put
         ( is a citation number in) 4 buf
         opsaft 4 null put
         mixedjustify
         grestore
      90.3375 504.1154 moveto
      gsave
         font0 setfont
         (the bibliography at the end of this document.  Standard citations to the open literature appear as) justify
         grestore
      90.3375 492.0702 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         ([) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (n) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (]. To help the browsing reader, we pretty much have abandoned the custom of defining terms) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 480.0253 moveto
      gsave
         font0 setfont
         (before using them.  Instead, relevant terms, acronyms, and such are collected in <73>.  You can) justify
         grestore
      90.3375 467.9804 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (easily jump to the definition of a reference by selecting <) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (n) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (> or [) 2 buf
         opsaft 2 null put
         font1 setfont
         opsbef 3 {font1 setfont} put
         (n) 3 buf
         opsaft 3 null put
         font0 setfont
         opsbef 4 {font0 setfont} put
         (] and clicking on the \042Def\042 button.) 4 buf
         opsaft 4 null put
         mixedjustify
         grestore
      90.3375 455.9352 moveto
      gsave
         font0 setfont
         (Include the brackets in the selection.  You can jump back to where you were by clicking the) justify
         grestore
      90.3375 443.8902 moveto
      font0 setfont
      (\042PrevPlace\042 button.  You can experiment now with <) show
      font1 setfont
      (n) show
      font0 setfont
      (> or [) show
      font1 setfont
      (n) show
      font0 setfont
      (].) show
      110.4125 425.789 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (A starting point in your on-line documentation search is ) 0 buf
         opsaft 0 null put
         font12 setfont
         opsbef 1 {font12 setfont} put
         (CedarDocDoc.tioga) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (.  It contains) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 413.7442 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (pointers to other useful documents to read.  You can open it now by typing \042open CedarDocDoc\042) justify
         grestore
      90.3375 401.6989 moveto
      font0 setfont
      (at a commander prompt.) show
      90.3375 377.5641 moveto
      font12 setfont
      (1.2  Roadmap) show
      110.4125 353.429 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (This document consists of six sections.  Section 2 tells you what magic incantations you need) justify
         grestore
      90.3375 341.384 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (to invoke to bring up a Cedar world on your SPARCstation, some details about the window for) justify
         grestore
      90.3375 329.339 moveto
      gsave
         font0 setfont
         (typing commands, how to tailor your system to suit your personal style, the meaning of the) justify
         grestore
      90.3375 317.294 moveto
      font0 setfont
      (buttons, and a short introduction to editing using Tioga,.  ) show
      110.4125 299.1928 moveto
      font0 setfont
      (Section 3 discusses how to print documents.  ) show
      110.4125 281.0915 moveto
      /colwidth 403.5451 def
      gsave
         font0 setfont
         (Perhaps the most important section is Section 4, which introduces the tyro user to the) justify
         grestore
      90.3375 269.0465 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (mysteries of programming in Cedar.  In particular, it discusses the idiosyncrasies of naming,) justify
         grestore
      90.3375 257.0014 moveto
      gsave
         font0 setfont
         (contains a brief history of the Cedar programming language, describes the file name space is) justify
         grestore
      90.3375 244.9565 moveto
      gsave
         font0 setfont
         (organized, discusses system modelling using DF files, and contains a walk-through of a simple) justify
         grestore
      90.3375 232.9114 moveto
      font0 setfont
      (Cedar example. ) show
      110.4125 214.8101 moveto
      font0 setfont
      (Section 5 contains a bit more about some of the on-line documentation.) show
      110.4125 196.709 moveto
      font0 setfont
      (We conclude with a long list of references.) show
      110.4125 178.6077 moveto
      /colwidth 403.545 def
      gsave
         font12 setfont
         opsbef 0 {font12 setfont} put
         (Note) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         (: To assemble this document I lifted portions of documentation from various sources) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      90.3375 166.5627 moveto
      font0 setfont
      (without always acknowledging the sources or the authors; my apologies to those possibly offended.) show
      110.4125 148.4615 moveto
      /colwidth 403.5451 def
      gsave
         font12 setfont
         opsbef 0 {font12 setfont} put
         (Acknowledgments) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         (.   Thanks to Ken Pier and Brent Welch for reading a draft of this document) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      90.3375 136.4165 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (in its entirety and suggesting numerous changes that significantly improved its presentation.) justify
         grestore
      90.3375 124.3714 moveto
      gsave
         font0 setfont
         (Thanks also to Jim Foote and Sharon Johnson for critiquing the sections on mail and) justify
         grestore
      90.3375 112.3265 moveto
      gsave
         font0 setfont
         (programming.  Finally, thanks to Craig Mudge, David Goldberg, John Coolidge, Vijay Saraswat,) justify
         grestore
      90.3375 100.2815 moveto
      font0 setfont
      (and countless others for reporting bugs.) show
      grestore
   grestore
% end page 2
showpage
%%page 3
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      519.525 746.79 moveto
      (3) show
      90.3375 684.9593 moveto
      font11 setfont
      (2.  Getting started) show
      90.3375 659.2157 moveto
      font12 setfont
      (2.1  Bringing up the Cedar world from the CDROM) show
      110.4125 633.8033 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (How do you bring up a Cedar world?  The following assumes that you have already started the) justify
         grestore
      90.3375 621.758 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (X Windows system and have mounted the CDROM as a unix file system somewhere in your) justify
         grestore
      90.3375 609.7132 moveto
      gsave
         font0 setfont
         (network.  You need to cd to the right place on the CDROM and set up an environment variable.) justify
         grestore
      90.3375 597.6682 moveto
      gsave
         font0 setfont
         (Type the following to a csh shell prompt \050if not using the C shell do whatever you have to do to set) justify
         grestore
      90.3375 585.6231 moveto
      font0 setfont
      (the environment variable\051:) show
      110.4125 566.5637 moveto
      /Courier findfont 10.0375 scalefont
      /font13 exch def
      font13 setfont
      (% setenv XeroxCedar <cdrom-mount-point>/Cedar) show
      110.4125 547.5043 moveto
      font13 setfont
      (% cd $XeroxCedar/solaris1) show
      110.4125 528.4449 moveto
      font13 setfont
      (% x11v) show
      110.4125 509.3856 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (Of course, if you are running on a Solaris2 machine use \042solaris2\042 in the second command) justify
         grestore
      90.3375 497.3405 moveto
      font0 setfont
      (above.) show
      110.4125 478.2809 moveto
      gsave
         font0 setfont
         (Various things will scroll by in the window where the shell was running, and eventually a large) justify
         grestore
      90.3375 466.2361 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (window will be created that will contain the Cedar windowing system called ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (Viewers) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (.  When) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 454.191 moveto
      gsave
         font0 setfont
         (activity stops, on the right side of the screen is a window \050or ``viewer'' in Cedar lingo\051, called the) justify
         grestore
      90.3375 442.1459 moveto
      gsave
         font9 setfont
         opsbef 0 {font9 setfont} put
         (Commander) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         ( viewer.  The ) 1 buf
         opsaft 1 null put
         font9 setfont
         opsbef 2 {font9 setfont} put
         (Commander ) 2 buf
         opsaft 2 null put
         font0 setfont
         opsbef 3 {font0 setfont} put
         (is the viewer in which you type your commands at the) 3 buf
         opsaft 3 null put
         mixedjustify
         grestore
      90.3375 430.101 moveto
      font0 setfont
      (% prompt.   There will also be a commander prompt in the X window you used to start Cedar.) show
      110.4125 411.0414 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (Note that \042killing a connection\042 won't destroy a Cedar Viewers world. The X11ViewersWorld) justify
         grestore
      90.3375 398.9964 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (attempts to reconnect to an X server if it loses its connection.  This is useful if your X server) justify
         grestore
      90.3375 386.9514 moveto
      gsave
         font0 setfont
         (crashes.  Just restart X and your Cedar world springs back into existence.   To stop a Cedar Viewers) justify
         grestore
      90.3375 374.9065 moveto
      gsave
         font0 setfont
         (world either use the Cedar command \042ExitWord\042, the X11Viewers pop up menu or a \042delete) justify
         grestore
      90.3375 362.8616 moveto
      font0 setfont
      (window\042 option in the window manager. ) show
      110.4125 343.802 moveto
      90.3375 318.3894 moveto
      font12 setfont
      (2.2  The Commander) show
      110.4125 292.9768 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (The Commander is the viewer with a directory name \050initially \042/Cedar/Commands %\042\051, as its) justify
         grestore
      90.3375 280.9318 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (banner, and is where commands are typed. \050The banner is light blue on color displays, reverse) justify
         grestore
      90.3375 268.8868 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (video on monochrome displays\051.  You can create additional such viewers by clicking on the ) 0 buf
         opsaft 0 null put
         font7 setfont
         opsbef 1 {
             font7 setfont
             currentpoint /undery exch def /underx exch def} put
         (Cmd) 1 buf
         opsaft 1 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery 1.2 sub dup underx exch
             vec moveto} put
         mixedjustify
         grestore
      90.3375 256.8418 moveto
      font0 setfont
      (button at the very top of the screen.  ) show
      110.4125 237.7823 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (Since I'm  assuming that you're seated in front of a SPARCstation, a hard copy of this) justify
         grestore
      90.3375 225.7374 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (document in hand, and have managed to bring up a Cedar world, let's type some commands to the) justify
         grestore
      90.3375 213.6923 moveto
      gsave
         font0 setfont
         (Commander.  Let's list the current directory.  Type the following to your Commander \050the) justify
         grestore
      90.3375 201.6474 moveto
      font0 setfont
      (Commander prompt is a bold-faced percent sign ) show
      font12 setfont
      (%) show
      font0 setfont
      (\051, and hit ) show
      font3 setfont
      (RETURN) show
      font0 setfont
      (:) show
      125.4688 188.6104 moveto
      font12 setfont
      (%) show
      /Times-Roman findfont 10.0375 scalefont
      /font14 exch def
      font14 setfont
      ( cd ) show
      131.4688 176.5654 moveto
      font14 setfont
      (/yourhomedirectory/) show
      125.4688 163.5284 moveto
      font12 setfont
      (%) show
      font14 setfont
      ( ls) show
      125.4688 150.4915 moveto
      font14 setfont
      (/yourhomedirectory/) show
      125.4688 137.4545 moveto
      font14 setfont
      (.                          1536 05-May-90 15:09:45 PDT) show
      125.4688 124.4176 moveto
      font14 setfont
      (..                          512 07-May-90 09:47:33 PDT) show
      125.4688 111.3807 moveto
      font14 setfont
      (.cshrc                      903 04-May-90 13:47:37 PDT) show
      125.4688 98.3438 moveto
      font14 setfont
      (.emacs                       71 08-Mar-90 09:43:57 PST) show
      125.4688 85.30687 moveto
      font14 setfont
      (.login                       38 07-Feb-90 12:50:07 PST) show
      125.4688 72.26993 moveto
      font14 setfont
      (.logout                      56 27-Mar-90 14:29:51 PST) show
      grestore
   grestore
% end page 3
showpage
%%page 4
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      519.081 746.79 moveto
      (4) show
      125.4688 689.9815 moveto
      font14 setfont
      (...) show
      90.3375 670.9946 moveto
      gsave
         font0 setfont
         (This is the Cedar-style directory listing.  You can stop the listing by clicking with the left mouse) justify
         grestore
      90.3375 658.9496 moveto
      font0 setfont
      (button on the STOP! button at the top of the Commander viewer.) show
      90.3375 639.963 moveto
      font0 setfont
      (You can use the * wildcard in file names:) show
      125.4688 626.9983 moveto
      font12 setfont
      (%) show
      font14 setfont
      ( ls *.mesa) show
      90.3375 608.0113 moveto
      font0 setfont
      (You can find out the usage of a command with the ? command:) show
      125.4688 595.0469 moveto
      font12 setfont
      (%) show
      font14 setfont
      ( ? ls) show
      125.4688 582.0824 moveto
      font9 setfont
      (List                ) show
      font14 setfont
      ( {switch | pattern}*) show
      131.4688 570.0375 moveto
      font14 setfont
      (    Lists files matching pattern.) show
      131.4688 557.9924 moveto
      font14 setfont
      (      -a) show
      6.889098 0.0 rmoveto
      (print attachments) show
      131.4688 545.9474 moveto
      font14 setfont
      (      -b) show
      5.941666 0.0 rmoveto
      (brief format) show
      131.4688 533.9024 moveto
      font14 setfont
      (      -d) show
      5.941666 0.0 rmoveto
      (date sort) show
      131.4688 521.8575 moveto
      font14 setfont
      (      -f) show
      8.143782 0.0 rmoveto
      (full name print) show
      131.4688 509.8125 moveto
      font14 setfont
      (      -h) show
      5.941666 0.0 rmoveto
      (highest version) show
      131.4688 497.7675 moveto
      font14 setfont
      (      -k) show
      6.274016 0.0 rmoveto
      (keep print) show
      131.4688 485.7225 moveto
      font14 setfont
      (      -n) show
      5.95114 0.0 rmoveto
      (narrow print) show
      131.4688 473.6774 moveto
      font14 setfont
      (      -o) show
      6.27347 0.0 rmoveto
      (one line) show
      131.4688 461.6326 moveto
      font14 setfont
      (      -p) show
      5.941666 0.0 rmoveto
      (prefixes only) show
      131.4688 449.5875 moveto
      font14 setfont
      (      -s) show
      7.835969 0.0 rmoveto
      (size sort) show
      131.4688 437.5424 moveto
      font14 setfont
      (      -t) show
      8.451034 0.0 rmoveto
      (file type print) show
      131.4688 425.4974 moveto
      font14 setfont
      (      -x) show
      6.581284 0.0 rmoveto
      (exact level match) show
      131.4688 413.4524 moveto
      font14 setfont
      (      -u) show
      5.941666 0.0 rmoveto
      (unattached files only) show
      131.4688 401.4074 moveto
      font14 setfont
      (      -z) show
      7.21141 0.0 rmoveto
      (0-length files only) show
      131.4688 389.3623 moveto
      font14 setfont
      (      ->) show
      6.581284 0.0 rmoveto
      (sort decreasing) show
      131.4688 377.3175 moveto
      font14 setfont
      (      -<) show
      6.581284 0.0 rmoveto
      (sort increasing) show
      90.3375 358.3304 moveto
      font0 setfont
      (You can change directory in the hierarchical file system with the cd command.  ) show
      90.3375 339.3436 moveto
      font0 setfont
      (Cd with no arguments returns you to your home directory.) show
      110.4125 320.3566 moveto
      /colwidth 403.5451 def
      gsave
         font0 setfont
         (Given that you have a hard copy of this document in hand, let's try something more) justify
         grestore
      90.3375 308.3117 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (ambitious: open  a viewer on this document so you can view it on-line.  Type the following to your) justify
         grestore
      90.3375 296.2666 moveto
      font0 setfont
      (Commander, and hit ) show
      font3 setfont
      (RETURN) show
      font0 setfont
      (:) show
      110.4125 277.2797 moveto
      125.4688 264.3152 moveto
      font12 setfont
      (%) show
      font14 setfont
      ( open /Cedar/CedarDoc/CedarPrimer.tioga) show
      125.4688 251.3509 moveto
      font14 setfont
      (Created Viewer: /Cedar/CedarDoc/CedarPrimer.tioga) show
      90.3375 232.364 moveto
      font0 setfont
      (A viewer will be created, displaying the contents of CedarPrimer.tioga.  ) show
      90.3375 207.0481 moveto
      font1 setfont
      (Errors caught by the Commander) show
      110.4125 181.7322 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (We're getting a bit ahead of ourselves here, but while you play around with the Commander,) justify
         grestore
      90.3375 169.6872 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (you might run some program that bombs out.  The Commander tries to catch any uncaught errors.) justify
         grestore
      90.3375 157.6422 moveto
      font0 setfont
      (The Commander asks you to do something.  What do you do? ) show
      125.4688 144.6778 moveto
      131.4688 132.6328 moveto
      font14 setfont
      (*** Uncaught ERROR or SIGNAL: unrecognized error) show
      131.4688 120.5878 moveto
      font14 setfont
      (*** Do you want to try to debug this? \050y, n, s <flags>, or ?\051 ) show
      90.3375 101.6009 moveto
      font0 setfont
      (Typing ? is the help command:) show
      120.45 86.93543 moveto
      font0 setfont
      ('y' to REJECT the signal and land in the system debugger) show
      120.45 72.26999 moveto
      font0 setfont
      ('n' to get back to top level) show
      grestore
   grestore
% end page 4
showpage
%%page 5
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      519.4122 746.79 moveto
      (5) show
      120.45 684.9593 moveto
      /colwidth 393.5075 def
      gsave
         font0 setfont
         ('s <flags>' to invoke the StackTrace command \050prints an abbreviated call stack for your) justify
         grestore
      150.5625 672.914 moveto
      font0 setfont
      (viewing pleasure\051) show
      90.3375 654.1798 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (If you respond with ) 0 buf
         opsaft 0 null put
         font12 setfont
         opsbef 1 {font12 setfont} put
         (n) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( the commander will abort the errant thread.  This is generally ok, although) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 642.1347 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (occasionally this can leave your world in a bad state.  If you respond with ) 0 buf
         opsaft 0 null put
         font12 setfont
         opsbef 1 {font12 setfont} put
         (s) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( you get a stack trace) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 630.0897 moveto
      gsave
         font0 setfont
         (that might give you some insight into the problem.  <This probably doesn't work in the PPCR) justify
         grestore
      90.3375 618.0449 moveto
      gsave
         font0 setfont
         (based world released on CDROM\051.  After getting the stack trace you are given the prompt again) justify
         grestore
      90.3375 606.0 moveto
      font0 setfont
      (and can abort the thread with an ) show
      font12 setfont
      (n) show
      font0 setfont
      ( reply.) show
      90.3375 581.0207 moveto
      font1 setfont
      (Scrolling) show
      110.4125 556.0417 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (Position the cursor in the Commander viewer and move it to the left until you nearly touch) justify
         grestore
      90.3375 543.9967 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (the black border.  A gray, vertical, scroll bar should appear.  You should notice two things:  first,) justify
         grestore
      90.3375 531.9516 moveto
      gsave
         font0 setfont
         (the cursor changes shape to a double-headed arrow, and second, there's a dark gray glob.  That) justify
         grestore
      90.3375 519.9067 moveto
      gsave
         font0 setfont
         (gray glob indicates your relative position in this viewer.  Now experiment with the mouse buttons.) justify
         grestore
      90.3375 507.8617 moveto
      font3 setfont
      (LEFT) show
      font0 setfont
      (-click means to depress the left mouse button, and so on, for the other two buttons:) show
      120.45 493.3648 moveto
      font3 setfont
      (LEFT) show
      font0 setfont
      (-click:) show
      12.48372 0.0 rmoveto
      (Scroll to top of viewer) show
      120.45 478.8676 moveto
      font3 setfont
      (RIGHT) show
      font0 setfont
      (-click:) show
      5.907621 0.0 rmoveto
      (Top of viewer to click point) show
      120.45 464.3708 moveto
      font3 setfont
      (MIDDLE) show
      font0 setfont
      (-click:) show
      29.266 0.0 rmoveto
      (Scroll to absolute position.) show
      90.3375 439.3916 moveto
      font1 setfont
      (Selecting/copying) show
      110.4125 414.4127 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (Rather than typing the same pieces of text over and over again, you can use the selection) justify
         grestore
      90.3375 402.3676 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (capability to copy pieces from elsewhere in the Commander viewer.  Imagine that I'd like to view) justify
         grestore
      90.3375 390.3226 moveto
      gsave
         font0 setfont
         (my .tioga file, and I'd already used the ``ls'' command to list the files in my home directory.  It's a) justify
         grestore
      90.3375 378.2776 moveto
      gsave
         font0 setfont
         (pain to type the whole string again.  Let's say that you know there's a document on how to use) justify
         grestore
      90.3375 366.2325 moveto
      gsave
         font0 setfont
         (Cedar, but don't quite remember the name.  You know that the name starts wtih  ``Cedar'',) justify
         grestore
      90.3375 354.1875 moveto
      font0 setfont
      (followed by the .tioga extension.   * is a wildcard that matches anything.) show
      110.4125 335.4534 moveto
      font12 setfont
      (%) show
      font0 setfont
      (  ls /Cedar/CedarDoc/Cedar*.tioga) show
      125.4688 322.7414 moveto
      font14 setfont
      (/Cedar/CedarDoc/) show
      125.4688 310.0297 moveto
      font14 setfont
      (CedarDocDoc.tioga!7        5444 14-May-92 12:20:20 PDT) show
      125.4688 297.3179 moveto
      font14 setfont
      (...) show
      125.4688 284.606 moveto
      font12 setfont
      (%) show
      font14 setfont
      ( ) show
      90.3375 265.8718 moveto
      gsave
         font0 setfont
         (Type ``Openr '' with the space to your Commander.  The ``OpenR'' command  says to look in the) justify
         grestore
      90.3375 253.8268 moveto
      gsave
         font0 setfont
         (Cedar system release for the file in question.  The release is maintained as a version map that lists) justify
         grestore
      90.3375 241.7818 moveto
      gsave
         font0 setfont
         (the directory and version number of each item in the release.  Move the cursor to the file name) justify
         grestore
      90.3375 229.7368 moveto
      font0 setfont
      (listed and do the following:) show
      120.45 215.2398 moveto
      /colwidth 393.5075 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (1.   Hold down the ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (SHIFT) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( key, and ) 2 buf
         opsaft 2 null put
         font3 setfont
         opsbef 3 {font3 setfont} put
         (MIDDLE) 3 buf
         opsaft 3 null put
         font0 setfont
         opsbef 4 {font0 setfont} put
         (-click on ``CedarDocDoc.'' A gray underline) 4 buf
         opsaft 4 null put
         mixedjustify
         grestore
      150.5625 203.1948 moveto
      font0 setfont
      (appears under the word.  This indicates that you're performing a copy operation.) show
      120.45 188.6978 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (2.   Keeping the ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (SHIFT) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( key depressed, ) 2 buf
         opsaft 2 null put
         font3 setfont
         opsbef 3 {font3 setfont} put
         (RIGHT) 3 buf
         opsaft 3 null put
         font0 setfont
         opsbef 4 {font0 setfont} put
         (-click and drag the mouse cursor arrow) 4 buf
         opsaft 4 null put
         mixedjustify
         grestore
      150.5625 176.6528 moveto
      font0 setfont
      (rightward until the gray underline also underscores the .tioga extension.) show
      120.45 162.1557 moveto
      font0 setfont
      (3.    Now release the ) show
      font3 setfont
      (SHIFT) show
      font0 setfont
      ( key.  You should now see the following at your Commander:) show
      120.45 147.6587 moveto
      155.5812 134.947 moveto
      font12 setfont
      (%) show
      font14 setfont
      (  OpenR CedarDocDoc.tioga) show
      120.45 120.45 moveto
      /colwidth 393.5077 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (4.    The flashing cursor should be positioned at the end of the line.  You can hit ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (RETURN) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( if) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 108.405 moveto
      /colwidth 363.3949 def
      gsave
         font0 setfont
         (you like, but this example is meant to illustrate how to select and copy a piece of text) justify
         grestore
      150.5625 96.35995 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (from one place to another.  If you do hit ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (RETURN) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( a new viewer will pop up.  You can) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 84.31496 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (close the viewer with a ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (RIGHT-CLICK) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( over the menu bar.  You can destroy the viewer) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 72.26993 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (with a ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (LEFT-CLICK) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( over the ) 2 buf
         opsaft 2 null put
         font13 setfont
         opsbef 3 {
             font13 setfont
             currentpoint /undery exch def /underx exch def} put
         (Destroy) 3 buf
         opsaft 3 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery 1.2 sub dup underx exch
             vec moveto} put
         font0 setfont
         opsbef 4 {font0 setfont} put
         ( button, which you can find underneath the) 4 buf
         opsaft 4 null put
         mixedjustify
         grestore
      grestore
   grestore
% end page 5
showpage
%%page 6
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      519.27 746.79 moveto
      (6) show
      150.5625 684.9593 moveto
      font0 setfont
      (banner.  To abrogate the command, hit the ) show
      font3 setfont
      (DELETE) show
      font0 setfont
      ( key.) show
      120.45 669.9965 moveto
      155.5812 656.5862 moveto
      font12 setfont
      (%) show
      font14 setfont
      ( OpenR CedarDocDoc.tioga ) show
      font1 setfont
      (-- <DEL>) show
      90.3375 637.1539 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (If you select the wrong thing, that's okay; just hit the ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (DELETE) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( key before releasing the ) 2 buf
         opsaft 2 null put
         font3 setfont
         opsbef 3 {font3 setfont} put
         (SHIFT) 3 buf
         opsaft 3 null put
         font0 setfont
         opsbef 4 {font0 setfont} put
         ( key;) 4 buf
         opsaft 4 null put
         mixedjustify
         grestore
      90.3375 625.1087 moveto
      font0 setfont
      (that will unselect your selection.) show
      90.3375 599.1986 moveto
      font1 setfont
      (Commander buttons) show
      110.4125 573.2884 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (Here's a brief explanation of the buttons at the top of each Commander, placed there by the) justify
         grestore
      90.3375 561.2432 moveto
      font0 setfont
      (Commander mechanism \050others can be created by your profile\051) show
      font7 setfont
      currentpoint /undery exch def /underx exch def
      (.) show
      1.0 setlinewidth
      currentpoint currentpoint pop
      undery 1.2 sub dup underx exch
      vec moveto
      110.4125 541.8108 moveto
      gsave
         font7 setfont
         opsbef 0 {
             font7 setfont
             currentpoint /undery exch def /underx exch def} put
         (Find) 0 buf
         opsaft 0 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery 1.2 sub dup underx exch
             vec moveto} put
         font0 setfont
         opsbef 1 {font0 setfont} put
         ( button.  This button appears to the row of buttons just below the blue banner of the) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      90.3375 529.766 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (Commander.  Think of this command as a postfix operation, that is, you select the argument first) justify
         grestore
      90.3375 517.721 moveto
      gsave
         font0 setfont
         (and then click on this button, unlike typing commands.  Select some text with the mouse and then) justify
         grestore
      90.3375 505.6757 moveto
      gsave
         font0 setfont
         (search for the text within the Commander viewer \050you can also search for text within other viewers,) justify
         grestore
      90.3375 493.6308 moveto
      gsave
         font0 setfont
         (but we won't get into that\051.  In this command, the direction of search and capitalization are) justify
         grestore
      90.3375 481.5858 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (determined by the mouse buttons and ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (SHIFT) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( keys.  ) 2 buf
         opsaft 2 null put
         font3 setfont
         opsbef 3 {font3 setfont} put
         (LEFT) 3 buf
         opsaft 3 null put
         font0 setfont
         opsbef 4 {font0 setfont} put
         (-clicking searches forward from the) 4 buf
         opsaft 4 null put
         mixedjustify
         grestore
      90.3375 469.5408 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (current selection point; ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (RIGHT) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (-clicking searches backwards; ) 2 buf
         opsaft 2 null put
         font3 setfont
         opsbef 3 {font3 setfont} put
         (MIDDLE) 3 buf
         opsaft 3 null put
         font0 setfont
         opsbef 4 {font0 setfont} put
         (-clicking does a wrap-around) 4 buf
         opsaft 4 null put
         mixedjustify
         grestore
      90.3375 457.4958 moveto
      gsave
         font0 setfont
         (search by first searching forward to the end of the document then searching from the beginning) justify
         grestore
      90.3375 445.4508 moveto
      gsave
         font0 setfont
         (until the entire document has been searched.  By default, the search matches capitalization.) justify
         grestore
      90.3375 433.4058 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (Clicking with the ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (SHIFT) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( key down invokes a `caseless' search in which capitalization does not) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 421.3606 moveto
      font0 setfont
      (matter.) show
      110.4125 401.9282 moveto
      /colwidth 403.545 def
      gsave
         font7 setfont
         opsbef 0 {
             font7 setfont
             currentpoint /undery exch def /underx exch def} put
         (STOP) 0 buf
         opsaft 0 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery 1.2 sub dup underx exch
             vec moveto} put
         font0 setfont
         opsbef 1 {font0 setfont} put
         (! button. Attempts to stop the current Commander process running in the Commander) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      90.3375 389.8831 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (viewer. It raises the signal ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (ABORTED) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( in the Commander process, which usually manifests itself with) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 377.8382 moveto
      gsave
         font0 setfont
         (the printed string `` -- Aborted'', along with a new Commander prompt.  This may not always work) justify
         grestore
      90.3375 365.7931 moveto
      gsave
         font0 setfont
         (because, in Cedar, it's up to the process to check whether a user has requested an abort.  But it) justify
         grestore
      90.3375 353.7481 moveto
      font0 setfont
      (works for the most important commands.  ) show
      90.3375 327.838 moveto
      font1 setfont
      (Viewer buttons) show
      110.4125 301.9278 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (Since the Commander is itself a viewer, it has buttons in common with other viewers.  You) justify
         grestore
      90.3375 289.8828 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (can find these buttons beneath the light blue banner of the viewer by moving your mouse cursor) justify
         grestore
      90.3375 277.8378 moveto
      font0 setfont
      (on top of it.) show
      110.4125 258.4053 moveto
      /colwidth 403.545 def
      gsave
         font7 setfont
         opsbef 0 {
             font7 setfont
             currentpoint /undery exch def /underx exch def} put
         (Destroy) 0 buf
         opsaft 0 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery 1.2 sub dup underx exch
             vec moveto
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery -2.3 sub dup underx exch
             vec moveto} put
         font0 setfont
         opsbef 1 {font0 setfont} put
         ( button.  Destroy the viewer.  This is an example of a guarded button: click it once) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      90.3375 246.3603 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (and the guard goes away.  Click again at least .1 second later and not more than 4 seconds later and) justify
         grestore
      90.3375 234.3152 moveto
      gsave
         font0 setfont
         (it does its action.  The Reset and Store buttons in Tioga viewers are other examples of guarded) justify
         grestore
      90.3375 222.2703 moveto
      font0 setfont
      (buttons.) show
      110.4125 202.8376 moveto
      /colwidth 403.545 def
      gsave
         font7 setfont
         opsbef 0 {
             font7 setfont
             currentpoint /undery exch def /underx exch def} put
         (Adjust) 0 buf
         opsaft 0 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery 1.2 sub dup underx exch
             vec moveto} put
         font0 setfont
         opsbef 1 {font0 setfont} put
         ( button.  Changes the size of the window.  Click on this button and move the mouse) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      90.3375 190.7927 moveto
      font0 setfont
      (cursor around to see its effects.    ) show
      110.4125 171.36 moveto
      /colwidth 403.545 def
      gsave
         font7 setfont
         opsbef 0 {
             font7 setfont
             currentpoint /undery exch def /underx exch def} put
         (Top) 0 buf
         opsaft 0 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery 1.2 sub dup underx exch
             vec moveto} put
         font0 setfont
         opsbef 1 {font0 setfont} put
         ( button. Moves the viewer in question to the top of the screen, moving other viewers) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      90.3375 159.3151 moveto
      font0 setfont
      (further down.) show
      110.4125 139.8825 moveto
      /colwidth 403.545 def
      gsave
         font7 setfont
         opsbef 0 {
             font7 setfont
             currentpoint /undery exch def /underx exch def} put
         (Grow) 0 buf
         opsaft 0 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery 1.2 sub dup underx exch
             vec moveto} put
         font0 setfont
         opsbef 1 {font0 setfont} put
         ( button.  Allows a viewer to take up the entire side of the screen, in effect, ``growing'' to) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      90.3375 127.8375 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (fill the whole side.  Other viewers will be turned iconic.  Clicking on this button again, in the full) justify
         grestore
      90.3375 115.7925 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (grown viewer, restores the viewers to the positions they were in before you clicked ) 0 buf
         opsaft 0 null put
         font7 setfont
         opsbef 1 {
             font7 setfont
             currentpoint /undery exch def /underx exch def} put
         (Grow) 1 buf
         opsaft 1 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery 1.2 sub dup underx exch
             vec moveto} put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (.) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 103.7475 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (Growing/shrinking windows is a fairly common operation, so a shorthand was devised: ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (MIDDLE) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (-) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 91.7025 moveto
      font0 setfont
      (click in the banner selects the ) show
      font7 setfont
      currentpoint /undery exch def /underx exch def
      (Grow) show
      1.0 setlinewidth
      currentpoint currentpoint pop
      undery 1.2 sub dup underx exch
      vec moveto
      font0 setfont
      ( button by default.) show
      110.4125 72.26991 moveto
      /colwidth 403.545 def
      gsave
         font7 setfont
         opsbef 0 {
             font7 setfont
             currentpoint /undery exch def /underx exch def} put
         (Close) 0 buf
         opsaft 0 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery 1.2 sub dup underx exch
             vec moveto} put
         font0 setfont
         opsbef 1 {font0 setfont} put
         ( button.  ) 1 buf
         opsaft 1 null put
         font3 setfont
         opsbef 2 {font3 setfont} put
         (RIGHT) 2 buf
         opsaft 2 null put
         font0 setfont
         opsbef 3 {font0 setfont} put
         (-click in the banner selects the ) 3 buf
         opsaft 3 null put
         font7 setfont
         opsbef 4 {
             font7 setfont
             currentpoint /undery exch def /underx exch def} put
         (Close) 4 buf
         opsaft 4 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery 1.2 sub dup underx exch
             vec moveto} put
         font0 setfont
         opsbef 5 {font0 setfont} put
         ( button by default.  This is much) 5 buf
         opsaft 5 null put
         mixedjustify
         grestore
      grestore
   grestore
% end page 6
showpage
%%page 7
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      519.4122 746.79 moveto
      (7) show
      90.3375 684.9593 moveto
      font0 setfont
      (easier than finding the button.) show
      110.4125 666.095 moveto
      font0 setfont
      (For more information on the Commander, please consult <70>.) show
      90.3375 640.9428 moveto
      font12 setfont
      (2.3  User profile) show
      110.4125 615.7907 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (Many components of Cedar permit the user to customize system behavior along certain) justify
         grestore
      90.3375 603.7458 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (predefined dimensions via a mechanism called the ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (User Profile) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (.  Whenever the user boots his) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 591.701 moveto
      gsave
         font0 setfont
         (Cedar world, his user profile is consulted to obtain the value for these parameters.  The user profile) justify
         grestore
      90.3375 579.6559 moveto
      gsave
         /Helvetica-Oblique findfont 10.0375 scalefont
         /font15 exch def
         font0 setfont
         opsbef 0 {font0 setfont} put
         (goes under the name  ) 0 buf
         opsaft 0 null put
         font15 setfont
         opsbef 1 {font15 setfont} put
         (.) 1 buf
         opsaft 1 null put
         font13 setfont
         opsbef 2 {font13 setfont} put
         (cedar) 2 buf
         opsaft 2 null put
         font0 setfont
         opsbef 3 {font0 setfont} put
         (.) 3 buf
         opsaft 3 null put
         font7 setfont
         opsbef 4 {font7 setfont} put
         (profile) 4 buf
         opsaft 4 null put
         font0 setfont
         opsbef 5 {font0 setfont} put
         (, it is stored in your home directory.  To just run Cedar from) 5 buf
         opsaft 5 null put
         mixedjustify
         grestore
      90.3375 567.6111 moveto
      gsave
         font0 setfont
         (the CDROM you don't need a user profile, but if you may find that you wish to customize the way) justify
         grestore
      90.3375 555.566 moveto
      font0 setfont
      (Cedar starts up. ) show
      110.4125 536.7020 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (To customize your Cedar environment to your liking, copy CedarNoviceUser.profile from the) justify
         grestore
      90.3375 524.6572 moveto
      font0 setfont
      (Cedar directory by typing the following commands to your Commander Viewer:) show
      110.4125 505.793 moveto
      125.4688 492.9515 moveto
      font12 setfont
      (%) show
      font14 setfont
      (  cd) show
      125.4688 480.11 moveto
      font12 setfont
      (%) show
      font14 setfont
      (  copy .cedar.profile ← /Cedar/CedarDoc/CedarNoviceUser.profile) show
      90.3375 461.2459 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (\050← will display on the screen as a  left-pointing arrow.  The keypad 4 key will also work. Note the) justify
         grestore
      90.3375 449.201 moveto
      font0 setfont
      (spaces surrounding the ←\051 Having copied the user profile, you need to modify it.  Create a viewer.) show
      90.3375 430.337 moveto
      125.4688 417.4953 moveto
      font12 setfont
      (%) show
      font14 setfont
      (   open .cedar.profile) show
      125.4688 404.6538 moveto
      font14 setfont
      (Created Viewer: .cedar.profile) show
      90.3375 385.7898 moveto
      gsave
         font0 setfont
         (Select anywhere at the beginning of the viewer.   Find the key on the right hand side of the) justify
         grestore
      90.3375 373.7447 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (keyboard, labelled either ``6'' or ``R12.''  This is the so-called ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (NEXT) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( key.  Punch it once; you'll) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 361.6998 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (notice that it looks for placeholder markers that look like this ) 0 buf
         opsaft 0 null put
             font14 setfont
             /totwidth /totwidth try 7.026246 add def
         opsbef 1 {
             font14 setfont
             gsave
                currentpoint translate
                0.0 setgray
                1.00375 -1.254688 moveto
                1.00375 8.280937 lineto
                6.273437 3.513125 lineto
                fill
                grestore
             7.026246 0.0 rmoveto} put
         (stuff in between) 1 buf
         opsaft 1 null put
             /totwidth /totwidth try 7.026246 add def
                /totwidth /totwidth try 7.026246 add def
             font0 setfont
         opsbef 2 {
             gsave
                7.026246 0.0 rmoveto
                currentpoint translate
                -1.0 1.0 matrix scale concat
                0.0 setgray
                1.00375 -1.254688 moveto
                1.00375 8.280937 lineto
                6.273437 3.513125 lineto
                fill
                grestore
             7.026246 0.0 rmoveto
             font0 setfont} put
         (, changes to) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 349.6548 moveto
      gsave
         font0 setfont
         (reverse video, and positions the cursor at the beginning.  Just for fun, select the  word ``Select'' at) justify
         grestore
      90.3375 337.6097 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (the beginning of this paragraph.  Now ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (NEXT) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( to see what happens.  Alas, it doesn't wrap around, so) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 325.5647 moveto
      font0 setfont
      (to  go backward, hold down the  ) show
      font3 setfont
      (SHIFT) show
      font0 setfont
      ( key and depress ) show
      font3 setfont
      (NEXT) show
      font0 setfont
      (. ) show
      120.45 310.9812 moveto
      font0 setfont
      (1.  Type  the following depending on what's between the placeholders.) show
      150.5625 296.3978 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (a. ) 0 buf
         opsaft 0 null put
             font14 setfont
             /totwidth /totwidth try 7.026246 add def
             font0 setfont
         opsbef 1 {
             font14 setfont
             gsave
                currentpoint translate
                0.0 setgray
                1.00375 -1.254688 moveto
                1.00375 8.280937 lineto
                6.273437 3.513125 lineto
                fill
                grestore
             7.026246 0.0 rmoveto
             font0 setfont} put
         (YourHomeDirectory) 1 buf
         opsaft 1 null put
             font14 setfont
             /totwidth /totwidth try 7.026246 add def
                /totwidth /totwidth try 7.026246 add def
             font0 setfont
         opsbef 2 {
             font14 setfont
             gsave
                7.026246 0.0 rmoveto
                currentpoint translate
                -1.0 1.0 matrix scale concat
                0.0 setgray
                1.00375 -1.254688 moveto
                1.00375 8.280937 lineto
                6.273437 3.513125 lineto
                fill
                grestore
             7.026246 0.0 rmoveto
             font0 setfont} put
         (.  Type /net/palain/rosa/boki, for example, or) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      180.675 284.3528 moveto
      /colwidth 333.2826 def
      gsave
         font0 setfont
         (/net/palain/palain/welch, for another \050but don't use those; Oki and Welch) justify
         grestore
      180.675 272.3076 moveto
      font0 setfont
      (won't be very happy if you mess with their directories\051  ) show
      150.5625 257.7242 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (b.   ) 0 buf
         opsaft 0 null put
             font14 setfont
             /totwidth /totwidth try 7.026246 add def
             font0 setfont
         opsbef 1 {
             font14 setfont
             gsave
                currentpoint translate
                0.0 setgray
                1.00375 -1.254688 moveto
                1.00375 8.280937 lineto
                6.273437 3.513125 lineto
                fill
                grestore
             7.026246 0.0 rmoveto
             font0 setfont} put
         (YourName) 1 buf
         opsaft 1 null put
             font14 setfont
             /totwidth /totwidth try 7.026246 add def
                /totwidth /totwidth try 7.026246 add def
             font0 setfont
         opsbef 2 {
             font14 setfont
             gsave
                7.026246 0.0 rmoveto
                currentpoint translate
                -1.0 1.0 matrix scale concat
                0.0 setgray
                1.00375 -1.254688 moveto
                1.00375 8.280937 lineto
                6.273437 3.513125 lineto
                fill
                grestore
             7.026246 0.0 rmoveto
             font0 setfont} put
         (.  Type your user name in lowercase, say, boki or nichols, at the) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      180.675 245.6792 moveto
      font0 setfont
      (cursor.  ) show
      120.45 231.0958 moveto
      font0 setfont
      (2.  Depress ) show
      font3 setfont
      (NEXT) show
      font0 setfont
      ( again to get to the next occurrence where you type type your name.  ) show
      120.45 216.5122 moveto
      font0 setfont
      (3.  Go back to step 1.  Continue this procedure until you reach the end of the file.) show
      120.45 201.9287 moveto
      font0 setfont
      (4.  Click on ) show
      font7 setfont
      currentpoint /undery exch def /underx exch def
      (Save) show
      1.0 setlinewidth
      currentpoint currentpoint pop
      undery 1.2 sub dup underx exch
      vec moveto
      font0 setfont
      ( button in that viewer to save the changes.) show
      110.4125 183.0646 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (Now let's look at the profile more carefully.  Notice that each entry in this profile is of the) justify
         grestore
      90.3375 171.0196 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (form <key>: <value>, where key is typically a string \050case does not matter\051 and value is either ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (TRUE) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      90.3375 158.9747 moveto
      font3 setfont
      (or FALSE; ) show
      font0 setfont
      (an ) show
      font3 setfont
      (INT) show
      font0 setfont
      (; or a sequence of strings.  For example,) show
      105.3938 146.1331 moveto
      font12 setfont
      (Tioga.TryVersionMap) show
      font14 setfont
      (: ) show
      font3 setfont
      (TRUE) show
      90.3375 127.2691 moveto
      gsave
         font0 setfont
         (The Tioga editor looks in your profile to see what options are set.  In this case, TryVersionMap tells) justify
         grestore
      90.3375 115.2241 moveto
      font0 setfont
      (the editor to use the version map mechanism to help it find files.  ) show
      110.4125 96.36007 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (The above is a particularly simple example of setting an entry to either ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (TRUE) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( or ) 2 buf
         opsaft 2 null put
         font3 setfont
         opsbef 3 {font3 setfont} put
         (FALSE) 3 buf
         opsaft 3 null put
         font0 setfont
         opsbef 4 {font0 setfont} put
         (.  A) 4 buf
         opsaft 4 null put
         mixedjustify
         grestore
      90.3375 84.31507 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (more complex example is the ) 0 buf
         opsaft 0 null put
         font12 setfont
         opsbef 1 {font12 setfont} put
         (BootCommands) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( entry, which the Commander looks at when) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 72.27007 moveto
      gsave
         font0 setfont
         (initializing itself after booting.  BootCommands is run once, when you boot your Cedar world.) justify
         grestore
      grestore
   grestore
% end page 7
showpage
%%page 8
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      519.4658 746.79 moveto
      (8) show
      90.3375 684.9593 moveto
      font0 setfont
      (Note that a double quote at the beginning and end of this entry encloses the set of commands.) show
      110.4125 666.249 moveto
      125.4688 653.5616 moveto
      font12 setfont
      (CommandTool.BootCommands) show
      font14 setfont
      (: \042) show
      140.525 640.8743 moveto
      font1 setfont
      (BootCommands are run once, when you boot a Viewers world.  First we get the aliases) show
      146.525 628.8293 moveto
      font1 setfont
      (and prefixes defined in the NoViewersBootCommands.) show
      140.525 616.1420 moveto
      140.525 603.4545 moveto
      font14 setfont
      (CommandsFromProfile CommandTool.NoViewersBootCommands) show
      140.525 590.7671 moveto
      140.525 578.08 moveto
      font1 setfont
      (Require commands are used to load packages and define commands.) show
      146.525 566.035 moveto
      font1 setfont
      (Require <world> <component> <resource>) show
      146.525 553.9898 moveto
      font1 setfont
      (The <world> corresponds to a prefix map entry and it defines the main software) show
      146.525 541.945 moveto
      font1 setfont
      (package. ) show
      146.525 529.9 moveto
      font1 setfont
      (The <component> refers to a package in the world, i.e. Imager, Tioga.) show
      146.525 517.8549 moveto
      font1 setfont
      (The <resource> refers to a \042resource.require\042 file found with the package.) show
      146.525 505.81 moveto
      font1 setfont
      (In effect, Require means ) show
      146.525 493.7647 moveto
      font1 setfont
      (  CD /<world>/<component> ; Source <resource>.require) show
      146.525 481.72 moveto
      font1 setfont
      (  ) show
      140.525 469.0325 moveto
      font1 setfont
      (Require Cedar IconHacks IconHacks) show
      140.525 456.345 moveto
      font1 setfont
      (Require Cedar TiogaExecCommands TiogaExecCommands) show
      140.525 443.6575 moveto
      font1 setfont
      (Require Cedar TiogaExecCommands TiogaExecViewerCommands) show
      140.525 430.9702 moveto
      140.525 418.2828 moveto
      font1 setfont
      (Term starts up a vt100-like terminal emulator for UNIX hacking.) show
      140.525 405.5952 moveto
      font1 setfont
      (Term) show
      140.525 392.908 moveto
      font1 setfont
      (Clock) show
      140.525 380.2206 moveto
      140.525 367.5333 moveto
      font1 setfont
      (EditTool is a useful adjuct to tioga.  It lets you search/replace, change fonts, etc.  It has) show
      146.525 355.4882 moveto
      font1 setfont
      (some silly default settings, so we correct them.) show
      140.525 342.8008 moveto
      font14 setfont
      (EditTool) show
      140.525 330.1132 moveto
      font14 setfont
      (DoTiogaOps SaveSelectionA MatchCase MatchLiterally LeaveInitCap SubstituteInSel) show
      185.6937 318.0684 moveto
      font14 setfont
      (MatchAnywhere EqualLooksTest DoReplace TypeName \134\042code\134\042) show
      185.6937 306.0232 moveto
      font14 setfont
      (StyleName \134\042Cedar\134\042 PropName \134\042Comment\134\042 RestoreSelectionA) show
      140.525 293.336 moveto
      140.525 280.6485 moveto
      140.525 267.961 moveto
      font1 setfont
      (TiogaLineNumberButton adds a tioga button that turns on line numbering.) show
      140.525 255.2738 moveto
      font1 setfont
      (TiogaLineNumberButton) show
      140.525 242.5864 moveto
      font1 setfont
      (KeyboardScan turns on an incremental search mode in Tioga.) show
      140.525 229.8989 moveto
      font1 setfont
      (KeyboardScan) show
      140.525 217.2115 moveto
      140.525 204.5242 moveto
      font1 setfont
      (TiogaDWIM turns on a \042do-what-I-mean\042 mode.) show
      140.525 191.8367 moveto
      font1 setfont
      (TiogaDWIM) show
      140.525 179.1494 moveto
      140.525 166.462 moveto
      font1 setfont
      (Viewers-oriented aliases) show
      140.525 153.7746 moveto
      font14 setfont
      (Alias myprofile ) show
      11.61011 0.0 rmoveto
      (open /tilde/) show
      gsave
         currentpoint translate
         0.0 setgray
         1.00375 -1.254688 moveto
         1.00375 8.280937 lineto
         6.273437 3.513125 lineto
         fill
         grestore
      7.026246 0.0 rmoveto
      (YourName) show
      gsave
         7.026246 0.0 rmoveto
         currentpoint translate
         -1.0 1.0 matrix scale concat
         0.0 setgray
         1.00375 -1.254688 moveto
         1.00375 8.280937 lineto
         6.273437 3.513125 lineto
         fill
         grestore
      7.026246 0.0 rmoveto
      (/.cedar.profile) show
      140.525 141.0872 moveto
      font14 setfont
      (Alias profile\050user\051 ) show
      10.33147 0.0 rmoveto
      (open /) show
      (tilde) show
      (/user/.cedar.profile) show
      140.525 128.3998 moveto
      font14 setfont
      (...) show
      140.525 115.7124 moveto
      font14 setfont
      (CommandsFromProfile CommandTool.PerCommandTool) show
      140.525 103.025 moveto
      font14 setfont
      (\042) show
      110.4125 84.31512 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (The ) 0 buf
         opsaft 0 null put
         font12 setfont
         opsbef 1 {font12 setfont} put
         (PerCommandTool) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( entry contains commands that are run for each new Commander) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 72.27012 moveto
      font0 setfont
      (viewer. Mostly these create new buttons for the Commander.  For example,) show
      grestore
   grestore
% end page 8
showpage
%%page 9
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      519.2722 746.79 moveto
      (9) show
      110.4125 684.9593 moveto
      125.4688 671.8175 moveto
      font12 setfont
      (CommandTool.PerCommandTool) show
      font14 setfont
      (: \042) show
      140.525 658.6757 moveto
      font14 setfont
      (CreateButton Open Open $FileNameSelection$) show
      140.525 645.5342 moveto
      font14 setfont
      (CreateButton New New $FileNameSelection$) show
      140.525 632.3929 moveto
      font14 setfont
      (...) show
      140.525 619.251 moveto
      font14 setfont
      (\042) show
      90.3375 600.087 moveto
      font0 setfont
      (creates two new buttons in the Commander viewer, one called ) show
      font7 setfont
      currentpoint /undery exch def /underx exch def
      (Open) show
      1.0 setlinewidth
      currentpoint currentpoint pop
      undery 1.2 sub dup underx exch
      vec moveto
      font0 setfont
      (, the other called ) show
      font7 setfont
      currentpoint /undery exch def /underx exch def
      (New) show
      1.0 setlinewidth
      currentpoint currentpoint pop
      undery 1.2 sub dup underx exch
      vec moveto
      font0 setfont
      (.) show
      110.4125 580.9228 moveto
      gsave
         font0 setfont
         (If you change your profile type ``ProfileChanged'' to your Commander.  This action causes the) justify
         grestore
      90.3375 568.8778 moveto
      font0 setfont
      (new user profile values to take effect.) show
      110.4125 549.7136 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (Much of this may be mysterious until you've been around for a while, but your profile can) justify
         grestore
      90.3375 537.6687 moveto
      font0 setfont
      (make the Cedar environment much more pleasant to work in.) show
      90.3375 512.1162 moveto
      font12 setfont
      (2.4  Static Buttons) show
      110.4125 486.5641 moveto
      font0 setfont
      (These are the buttons at the very top of the screen, from right to left:) show
      110.4125 467.4 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         opsbef 0 {
             font0 setfont
             currentpoint /undery exch def /underx exch def} put
         (X11Viewers) 0 buf
         opsaft 0 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery 1.2 sub dup underx exch
             vec moveto} put
         opsbef 1 {font0 setfont} put
         (:   Invokes a pop-up menu with operations including the very important \042Exit) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      90.3375 455.3551 moveto
      font0 setfont
      (Cedar\042.  To get rid of the pop-up click on \042Dismiss\042.) show
      110.4125 436.191 moveto
      /colwidth 403.5452 def
      gsave
         font0 setfont
         opsbef 0 {
             font0 setfont
             currentpoint /undery exch def /underx exch def} put
         (New) 0 buf
         opsaft 0 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery 1.2 sub dup underx exch
             vec moveto} put
         opsbef 1 {font0 setfont} put
         (:   Create a blank Tioga viewer bearing the path name in the banner of the home) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      90.3375 424.1459 moveto
      font0 setfont
      (directory.) show
      110.4125 404.9818 moveto
      font0 setfont
      currentpoint /undery exch def /underx exch def
      (Open) show
      1.0 setlinewidth
      currentpoint currentpoint pop
      undery 1.2 sub dup underx exch
      vec moveto
      (:  Open a file by its full path name, given a mouse-selected text.) show
      110.4125 385.8176 moveto
      font0 setfont
      currentpoint /undery exch def /underx exch def
      (Cmd) show
      1.0 setlinewidth
      currentpoint currentpoint pop
      undery 1.2 sub dup underx exch
      vec moveto
      (:   Create a new Commander viewer) show
      90.3375 360.2653 moveto
      font12 setfont
      (2.5  ) show
      (Some of the most common/useful Commands) show
      120.45 335.0788 moveto
      font0 setfont
      (Cd ) show
      font1 setfont
      (directory) show
      150.5625 323.0339 moveto
      font0 setfont
      (Change directory, as in Unix.) show
      120.45 308.2502 moveto
      font0 setfont
      (Push ) show
      font1 setfont
      (directory) show
      150.5625 296.2051 moveto
      font0 setfont
      (Change to a new directory, but remember the previous one on a stack.) show
      120.45 281.4217 moveto
      font0 setfont
      (Pop) show
      150.5625 269.3766 moveto
      font0 setfont
      (Pop the directory stack, returning to the previous one.) show
      120.45 254.593 moveto
      font0 setfont
      (List ) show
      font1 setfont
      (args) show
      150.5625 242.548 moveto
      font0 setfont
      (File listing program, gives file date and size.  \050Also known as ``LS''.\051) show
      120.45 227.7644 moveto
      font0 setfont
      (Open ) show
      font1 setfont
      (file) show
      150.5625 215.7195 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         (Open a file for reading/editing \050defaults to current working directory, followed by) justify
         grestore
      150.5625 203.6744 moveto
      font0 setfont
      (/R/ if no path name is specified\051.) show
      120.45 188.8908 moveto
      font0 setfont
      (FindR ) show
      font1 setfont
      (file) show
      150.5625 176.8458 moveto
      font0 setfont
      (Find out where a system file lives in the released version of software.) show
      120.45 162.0622 moveto
      font0 setfont
      (OpenR ) show
      font1 setfont
      (file) show
      150.5625 150.0172 moveto
      font0 setfont
      (Open a system file from the released version of software \050/R/<filename>\051.) show
      120.45 135.2336 moveto
      font0 setfont
      (Copy ) show
      font1 setfont
      (destination) show
      font0 setfont
      ( ← ) show
      font1 setfont
      (source) show
      font0 setfont
      9.351254 0.0 rmoveto
      150.5625 123.1886 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (Copy ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (source) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( file to ) 2 buf
         opsaft 2 null put
         font1 setfont
         opsbef 3 {font1 setfont} put
         (destination) 3 buf
         opsaft 3 null put
         font0 setfont
         opsbef 4 {font0 setfont} put
         (.  If ) 4 buf
         opsaft 4 null put
         font1 setfont
         opsbef 5 {font1 setfont} put
         (destination) 5 buf
         opsaft 5 null put
         font0 setfont
         opsbef 6 {font0 setfont} put
         ( is a directory \050i.e., ends in ``/''\051, then) 6 buf
         opsaft 6 null put
         mixedjustify
         grestore
      150.5625 111.1437 moveto
      /colwidth 363.3949 def
      gsave
         font1 setfont
         opsbef 0 {font1 setfont} put
         (source) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         ( can be a list of files.  \050← will be displayed as a left-pointing arrow.  The keypad) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      150.5625 99.09864 moveto
      font0 setfont
      (4 key also works.\051) show
      120.45 84.31507 moveto
      font0 setfont
      (Rename ) show
      font1 setfont
      (destination) show
      font0 setfont
      ( ← ) show
      font1 setfont
      (source) show
      150.5625 72.27007 moveto
      font0 setfont
      (Like copy but just changes the name of a file.) show
      grestore
   grestore
% end page 9
showpage
%%page 10
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      514.125 746.79 moveto
      (10) show
      120.45 684.9593 moveto
      font0 setfont
      (DelVer ) show
      font1 setfont
      (file-pattern) show
      150.5625 672.914 moveto
      font0 setfont
      (Delete all but the most recent version of some files.) show
      120.45 658.096 moveto
      font0 setfont
      (? ) show
      font1 setfont
      (command-name) show
      150.5625 646.0508 moveto
      font0 setfont
      (Print a usage message regarding the command.) show
      120.45 631.2329 moveto
      font0 setfont
      (Bringover ) show
      font1 setfont
      (DF-file) show
      150.5625 619.1878 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         (Copy into the local directory all the source, mob, and object files specified in the DF) justify
         grestore
      150.5625 607.1429 moveto
      font0 setfont
      (file.) show
      120.45 592.3246 moveto
      font0 setfont
      (Smodel ) show
      font1 setfont
      (DF-file) show
      150.5625 580.2797 moveto
      font0 setfont
      (Save your files in a stable place.) show
      120.45 565.4615 moveto
      font0 setfont
      (GetFromRelease) show
      150.5625 553.4168 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         (A command to give in response to the Compiler complaint that it can't find the files) justify
         grestore
      150.5625 541.3714 moveto
      font0 setfont
      (it needs.) show
      120.45 526.5536 moveto
      font0 setfont
      (Run ) show
      font1 setfont
      (file) show
      150.5625 514.5085 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         (Loads the C object file into the system.  The global default for loaded code is) justify
         grestore
      150.5625 502.4634 moveto
      font0 setfont
      (optimized.  ) show
      120.45 487.6454 moveto
      font0 setfont
      (MakeDo -df  ) show
      font1 setfont
      (DF-File) show
      150.5625 475.6004 moveto
      gsave
         font0 setfont
         (Rebuild an entire package, first determining dependencies.  Creates optimized object) justify
         grestore
      150.5625 463.5555 moveto
      font0 setfont
      (files \050sun4\051) show
      120.45 448.7372 moveto
      font0 setfont
      (MakeDo ) show
      font1 setfont
      (sun4/foo.c2c.o) show
      120.45 433.919 moveto
      font0 setfont
      30.1125 0.0 rmoveto
      (Generate object code for SPARC for the implementation file named ) show
      font1 setfont
      (foo.) show
      120.45 419.101 moveto
      font0 setfont
      (Implementor ) show
      font1 setfont
      (command-name) show
      150.5625 407.056 moveto
      font0 setfont
      (Print the name of the procedure that implements the named command.) show
      120.45 392.2378 moveto
      font0 setfont
      (Mkdir ) show
      font1 setfont
      (dirname) show
      150.5625 380.1928 moveto
      font0 setfont
      (Unix-like shell command to create a new directory in the current directory.) show
      120.45 365.3747 moveto
      font0 setfont
      (Rmdir ) show
      font1 setfont
      (dirname) show
      150.5625 353.3296 moveto
      gsave
         font0 setfont
         (Unix-like shell command to delete a directory from the current directory.  You  must) justify
         grestore
      150.5625 341.2845 moveto
      font0 setfont
      (first delete all contained files.) show
      120.45 326.4664 moveto
      font0 setfont
      (Plumb ) show
      font1 setfont
      (machine-name) show
      150.5625 314.4214 moveto
      gsave
         font0 setfont
         (If no argument, then defaults to local host machine.  Opens a typescript window that) justify
         grestore
      150.5625 302.3765 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (emulates the Unix shell of ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (machine-name.  ) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (This is a very useful command, especially) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 290.3314 moveto
      font0 setfont
      (if you need to drop down to Unix occassionally.) show
      90.3375 264.7102 moveto
      font12 setfont
      (2.6  When Cedar dies unexpectedly) show
      110.4125 239.0888 moveto
      /colwidth 403.5451 def
      gsave
         font0 setfont
         (X11Viewers shows its main menu when you try to delete its X window.  This menu has a) justify
         grestore
      90.3375 227.0438 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (rescues sub-menu with an entry to save your edits.  These menus are most often still alive even) justify
         grestore
      90.3375 214.9988 moveto
      font0 setfont
      (when viewers are wedged.) show
      90.3375 189.3776 moveto
      font12 setfont
      (2.7  Short introduction to editing using Tioga) show
      110.4125 163.7562 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (In the world outside PARC, document production systems are usually de-coupled from text) justify
         grestore
      90.3375 151.7112 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (editors.  One normally takes the text that one wants to include in a document, wraps it in) justify
         grestore
      90.3375 139.6662 moveto
      gsave
         font0 setfont
         (mysterious commands understood by a document processor, and feeds it to that processor.) justify
         grestore
      90.3375 127.6212 moveto
      gsave
         font0 setfont
         (Programmers may think this is neat; after all, one can do anything with a sufficiently powerful) justify
         grestore
      90.3375 115.5762 moveto
      gsave
         font0 setfont
         (programming language  \050remember, Turing machines supply a sufficiently powerful programming) justify
         grestore
      90.3375 103.5312 moveto
      gsave
         font0 setfont
         (language too!\051.  However, document processors of this sort frequently define semantically complex) justify
         grestore
      90.3375 91.48624 moveto
      font0 setfont
      (languages, and one soon discovers that a great deal of time goes into the edit/compile/debug cycle.  ) show
      110.4125 72.27026 moveto
      /colwidth 403.5451 def
      gsave
         font0 setfont
         (Tioga is the editor within Cedar, and it is generally free of imbedded commands to a) justify
         grestore
      grestore
   grestore
% end page 10
showpage
%%page 11
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      514.132 746.79 moveto
      (11) show
      90.3375 684.9593 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (document processor.  It shows formatted text on the screen, or WYSIWIG \050``What You See Is) justify
         grestore
      90.3375 672.914 moveto
      gsave
         font0 setfont
         (What You Get''\051. When printing a Tioga document, WYSINAWIP \050``What You See Is Not Always) justify
         grestore
      90.3375 660.8688 moveto
      font0 setfont
      (What Is Printed''\051.  See  TiogaDoc.tioga <29> for details.  ) show
      90.3375 636.5128 moveto
      font1 setfont
      (Nodes) show
      110.4125 612.1568 moveto
      /colwidth 403.5451 def
      gsave
         font0 setfont
         (A Tioga document is a tree of nodes of text \050or graphics\051.  Think of a node as a selectable,) justify
         grestore
      90.3375 600.1117 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (meaningful unit, defined by the user.  For example, in this document, this paragraph you are now) justify
         grestore
      90.3375 588.0666 moveto
      gsave
         font0 setfont
         (reading is a node.  The next paragraph is also a node.   The bold-faced heading ``2.9 Short) justify
         grestore
      90.3375 576.0218 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (introduction ...'' is the ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (parent) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( node of these two paragraph nodes, which are its ) 2 buf
         opsaft 2 null put
         font1 setfont
         opsbef 3 {font1 setfont} put
         (children) 3 buf
         opsaft 3 null put
         font0 setfont
         opsbef 4 {font0 setfont} put
         (.  The tree) 4 buf
         opsaft 4 null put
         mixedjustify
         grestore
      90.3375 563.9768 moveto
      gsave
         font0 setfont
         (structure of a document usually manifests itself visually as nesting; thus, the two children nodes are) justify
         grestore
      90.3375 551.9318 moveto
      font0 setfont
      (nested \050indented\051 from the parent node.) show
      110.4125 533.6648 moveto
      /colwidth 403.5451 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (Nodes are separated by special node break rather than the usual carriage return.  A ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (CTRL-) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      90.3375 521.6196 moveto
      /colwidth 423.62 def
      gsave
         font3 setfont
         opsbef 0 {font3 setfont} put
         (RETURN) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         (  creates a node break.  At the node break, you can create another meaningful unit  of) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      90.3375 509.5747 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (stuff, at the same depth of the tree as the previous node; in other words, a sibling node.   ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (CTRL-I) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      90.3375 497.5297 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (both inserts a new node and nests it, making a child node.  ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (CTRL-SHIFT-I) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( both inserts a new node) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 485.4847 moveto
      /colwidth 423.6202 def
      gsave
         font0 setfont
         (and unnests it; think of this command as creating a new node at the same level in the tree as the) justify
         grestore
      90.3375 473.4396 moveto
      font0 setfont
      (parent, that is, create a new node at level i-1, if you're at level i.) show
      110.4125 455.1726 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (The previous commands created new nodes.  There are commands to change the nesting level) justify
         grestore
      90.3375 443.1276 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (of already existing nodes.  You must first select a node, using the mouse, and then invoke the) justify
         grestore
      90.3375 431.0826 moveto
      gsave
         font0 setfont
         (command.  For example, move the mouse cursor over this paragraph \050anywhere will do\051,  and) justify
         grestore
      90.3375 419.0375 moveto
      gsave
         font3 setfont
         opsbef 0 {font3 setfont} put
         (LEFT) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         (-click twice in rapid succession.  The entire paragraph is underlined, indicating selection.) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      90.3375 406.9925 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (Next, type ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (CTRL-N) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (, to nest the node.  To unnest it, type ) 2 buf
         opsaft 2 null put
         font3 setfont
         opsbef 3 {font3 setfont} put
         (CTRL-SHIFT-N) 3 buf
         opsaft 3 null put
         font0 setfont
         opsbef 4 {font0 setfont} put
         (.   Then, to ensure that you) 4 buf
         opsaft 4 null put
         mixedjustify
         grestore
      90.3375 394.9475 moveto
      gsave
         font0 setfont
         (don't accidentally change the contents of this document out on the file server \050of course, not) justify
         grestore
      90.3375 382.9024 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (possible on the CDROM\051, click the ) 0 buf
         opsaft 0 null put
         font7 setfont
         opsbef 1 {
             font7 setfont
             currentpoint /undery exch def /underx exch def} put
         (Reset) 1 buf
         opsaft 1 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery 1.2 sub dup underx exch
             vec moveto
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery -2.3 sub dup underx exch
             vec moveto} put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( button at the top of the viewer twice in rapid) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 370.8575 moveto
      font0 setfont
      (succession; it will reset the contents.) show
      110.4125 352.5904 moveto
      /colwidth 403.5451 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (Perhaps you've already noticed that you can select individual characters with a single ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (LEFT) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (-) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 340.5454 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (click with the mouse, words with a single ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (MIDDLE) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (-click, and individual nodes with a ) 2 buf
         opsaft 2 null put
         font3 setfont
         opsbef 3 {font3 setfont} put
         (DOUBLE) 3 buf
         opsaft 3 null put
         font0 setfont
         opsbef 4 {font0 setfont} put
         (-click) 4 buf
         opsaft 4 null put
         mixedjustify
         grestore
      90.3375 328.5004 moveto
      font0 setfont
      (with the mouse.) show
      110.4125 310.2334 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (Structuring a document as tree of nodes is quite useful because it makes it easy to hunt) justify
         grestore
      90.3375 298.1884 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (through a long document, provided it is well-structured.  Why?  Because you can search through it) justify
         grestore
      90.3375 286.1433 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (at different levels.  To view this document at different levels, click on the ) 0 buf
         opsaft 0 null put
         font7 setfont
         opsbef 1 {
             font7 setfont
             currentpoint /undery exch def /underx exch def} put
         (Levels) 1 buf
         opsaft 1 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery 1.2 sub dup underx exch
             vec moveto} put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( button in this) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 274.0984 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (viewer's banner, which brings up another line of buttons: ) 0 buf
         opsaft 0 null put
         opsbef 1 {
             currentpoint /undery exch def /underx exch def
             font0 setfont} put
         (FirstLevelOnly) 1 buf
         opsaft 1 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery 1.2 sub dup underx exch
             vec moveto} put
         opsbef 2 {font0 setfont} put
         (, ) 2 buf
         opsaft 2 null put
         font7 setfont
         opsbef 3 {
             font7 setfont
             currentpoint /undery exch def /underx exch def} put
         (MoreLevels) 3 buf
         opsaft 3 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery 1.2 sub dup underx exch
             vec moveto} put
         font0 setfont
         opsbef 4 {font0 setfont} put
         (,) 4 buf
         opsaft 4 null put
         mixedjustify
         grestore
      90.3375 262.0533 moveto
      gsave
         font7 setfont
         opsbef 0 {
             font7 setfont
             currentpoint /undery exch def /underx exch def} put
         (FewerLevels) 0 buf
         opsaft 0 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery 1.2 sub dup underx exch
             vec moveto} put
         font0 setfont
         opsbef 1 {font0 setfont} put
         (, and ) 1 buf
         opsaft 1 null put
         font7 setfont
         opsbef 2 {
             font7 setfont
             currentpoint /undery exch def /underx exch def} put
         (AllLevels) 2 buf
         opsaft 2 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery 1.2 sub dup underx exch
             vec moveto} put
         font0 setfont
         opsbef 3 {font0 setfont} put
         (.  With these you can decide just how much detail of a document you) 3 buf
         opsaft 3 null put
         mixedjustify
         grestore
      90.3375 250.0083 moveto
      gsave
         font0 setfont
         (want to view at any given moment.  \050To see the following illustration, type ``Artwork on'' to your) justify
         grestore
      90.3375 237.9633 moveto
      font0 setfont
      (Commander.\051) show
      grestore
   grestore
% end page 11
showpage
%%page 12
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      514.2037 746.79 moveto
      (12) show
      -65.05538 402.0588 moveto
      gsave
         currentpoint translate
         2834.645 dup matrix scale concat
         gsave
            3.527776e-4 dup matrix scale concat
            gsave
               61.85449 -120.9222 matrix translate concat
               0.5 setgray
               eofill
               gsave
                  gsave
                     0.0 0.0 moveto
                     currentpoint translate
                     457.2625 123.4118 moveto
                     460.2625 123.4118 lineto
                     460.2625 406.8373 lineto
                     457.2625 406.8373 lineto
                     clip newpath
                     0.5 setgray
                     1.0 setlinewidth
                     1 setlinecap
                     1 setlinejoin
                     458.7625 405.3373 458.7625 124.9118 vec
                     grestore
                  grestore
               0.5 setgray
               eofill
               gsave
                  gsave
                     -30.79175 0.0 moveto
                     currentpoint translate
                     457.2625 123.4118 moveto
                     460.2625 123.4118 lineto
                     460.2625 406.8373 lineto
                     457.2625 406.8373 lineto
                     clip newpath
                     0.5 setgray
                     1.0 setlinewidth
                     1 setlinecap
                     1 setlinejoin
                     458.7625 405.3373 458.7625 124.9118 vec
                     grestore
                  grestore
               0.5 setgray
               eofill
               gsave
                  gsave
                     -19.79486 0.0 moveto
                     currentpoint translate
                     457.2625 123.4118 moveto
                     460.2625 123.4118 lineto
                     460.2625 406.8373 lineto
                     457.2625 406.8373 lineto
                     clip newpath
                     0.5 setgray
                     1.0 setlinewidth
                     1 setlinecap
                     1 setlinejoin
                     458.7625 405.3373 458.7625 124.9118 vec
                     grestore
                  grestore
               0.5 setgray
               eofill
               gsave
                  gsave
                     -9.89734 0.0 moveto
                     currentpoint translate
                     457.2625 123.4118 moveto
                     460.2625 123.4118 lineto
                     460.2625 406.8373 lineto
                     457.2625 406.8373 lineto
                     clip newpath
                     0.5 setgray
                     1.0 setlinewidth
                     1 setlinecap
                     1 setlinejoin
                     458.7625 405.3373 458.7625 124.9118 vec
                     grestore
                  grestore
               gsave
                  /Helvetica findfont 1.0 scalefont
                  /font16 exch def
                  font16 setfont
                  0.0 setgray
                  11.43832 dup matrix scale 308.401 174.1361 matrix translate matrix concatmatrix concat
                  0.0 0.0 moveto
                  (First level only) show
                  grestore
               gsave
                  font16 setfont
                  0.0 setgray
                  11.43832 dup matrix scale 323.7711 159.6827 matrix translate matrix concatmatrix concat
                  0.0 0.0 moveto
                  (More levels) show
                  grestore
               gsave
                  font16 setfont
                  0.0 setgray
                  11.43832 dup matrix scale 337.3513 131.5617 matrix translate matrix concatmatrix concat
                  0.0 0.0 moveto
                  (All levels) show
                  grestore
               gsave
                  gsave
                     1.42979 dup matrix scale -46.21731 -631.4737 matrix translate matrix concatmatrix concat
                     0.0 setgray
                     325.8806 710.1489 moveto
                     /Helvetica findfont 8.029999 scalefont
                     /font17 exch def
                     font17 setfont
                     (I.) show
                     font17 setfont
                     (  head) show
                     325.8806 700.1111 moveto
                     font17 setfont
                     (   ) show
                     font17 setfont
                     (A. ) show
                     font17 setfont
                     ( head) show
                     325.8806 690.0741 moveto
                     font17 setfont
                     (       ) show
                     font17 setfont
                     (1.) show
                     font17 setfont
                     (  block [or body]) show
                     325.8806 680.0364 moveto
                     font17 setfont
                     (       ) show
                     font17 setfont
                     (2.) show
                     font17 setfont
                     (  block) show
                     325.8806 669.9988 moveto
                     font17 setfont
                     (          ) show
                     font17 setfont
                     (a.) show
                     font17 setfont
                     (  example) show
                     325.8806 659.9615 moveto
                     font17 setfont
                     (       ) show
                     font17 setfont
                     (3.) show
                     font17 setfont
                     (  block) show
                     325.8806 649.9242 moveto
                     font17 setfont
                     (   ) show
                     font17 setfont
                     (B.) show
                     font17 setfont
                     (  head) show
                     325.8806 639.8863 moveto
                     font17 setfont
                     (       ) show
                     font17 setfont
                     (1.) show
                     font17 setfont
                     (  block) show
                     325.8806 629.849 moveto
                     font17 setfont
                     (          ) show
                     font17 setfont
                     (a.) show
                     font17 setfont
                     (  item) show
                     325.8806 619.8113 moveto
                     font17 setfont
                     (          ) show
                     font17 setfont
                     (b.) show
                     font17 setfont
                     (  item) show
                     325.8806 609.7742 moveto
                     font17 setfont
                     (       ) show
                     font17 setfont
                     (2.) show
                     font17 setfont
                     (  block) show
                     325.8806 599.7366 moveto
                     font17 setfont
                     (II.) show
                     font17 setfont
                     (  head) show
                     325.8806 589.699 moveto
                     font17 setfont
                     (   ) show
                     font17 setfont
                     (A.) show
                     font17 setfont
                     (  block) show
                     325.8806 579.6616 moveto
                     font17 setfont
                     (   ) show
                     font17 setfont
                     (B.) show
                     font17 setfont
                     (  head) show
                     325.8806 569.624 moveto
                     font17 setfont
                     (       ) show
                     font17 setfont
                     (1.) show
                     font17 setfont
                     (  block) show
                     325.8806 559.5867 moveto
                     font17 setfont
                     (       ) show
                     font17 setfont
                     (2.) show
                     font17 setfont
                     (  block) show
                     grestore
                  0.5 setlinewidth
                  1 setlinecap
                  1 setlinejoin
                  0.0 setgray
                  412.5747 124.9118 moveto
                  412.5747 405.3373 lineto
                  556.6363 405.3373 lineto
                  556.6363 124.9118 lineto
                  412.5747 124.9118 lineto
                  closepath stroke
                  grestore
               0.0 setgray
               eofill
               gsave
                  gsave
                     0.0 0.0 moveto
                     currentpoint translate
                     394.3462 170.1017 moveto
                     429.5958 170.1017 lineto
                     429.5958 184.6654 lineto
                     394.3462 184.6654 lineto
                     clip newpath
                     0.0 setgray
                     1.25 setlinewidth
                     1 setlinecap
                     1 setlinejoin
                     395.971 177.3836 moveto
                     427.9708 177.3836 lineto
                     422.314 171.7267 lineto
                     427.9708 177.3836 lineto
                     422.314 183.0404 lineto
                     stroke
                     grestore
                  grestore
               0.0 setgray
               eofill
               gsave
                  gsave
                     0.0 0.0 moveto
                     currentpoint translate
                     394.3462 156.1197 moveto
                     440.5928 156.1197 lineto
                     440.5928 170.6834 lineto
                     394.3462 170.6834 lineto
                     clip newpath
                     0.0 setgray
                     1.25 setlinewidth
                     1 setlinecap
                     1 setlinejoin
                     395.971 162.9303 moveto
                     438.9677 163.4017 lineto
                     433.3111 157.7448 lineto
                     438.9677 163.4017 lineto
                     433.3111 169.0584 lineto
                     stroke
                     grestore
                  grestore
               0.0 setgray
               eofill
               gsave
                  gsave
                     0.0 0.0 moveto
                     currentpoint translate
                     394.3462 142.2948 moveto
                     450.4902 142.2948 lineto
                     450.4902 156.8584 lineto
                     394.3462 156.8584 lineto
                     clip newpath
                     0.0 setgray
                     1.25 setlinewidth
                     1 setlinecap
                     1 setlinejoin
                     395.971 149.4196 moveto
                     448.8652 149.5767 lineto
                     443.2084 143.9197 lineto
                     448.8652 149.5767 lineto
                     443.2084 155.2334 lineto
                     stroke
                     grestore
                  grestore
               0.0 setgray
               eofill
               gsave
                  gsave
                     0.0 0.0 moveto
                     currentpoint translate
                     394.3462 127.5274 moveto
                     460.3875 127.5274 lineto
                     460.3875 142.0909 lineto
                     394.3462 142.0909 lineto
                     clip newpath
                     0.0 setgray
                     1.25 setlinewidth
                     1 setlinecap
                     1 setlinejoin
                     395.971 134.8092 moveto
                     458.7625 134.8092 lineto
                     453.1059 129.1524 lineto
                     458.7625 134.8092 lineto
                     453.1059 140.4659 lineto
                     stroke
                     grestore
                  grestore
               gsave
                  font16 setfont
                  0.0 setgray
                  11.43832 dup matrix scale 323.7711 146.4863 matrix translate matrix concatmatrix concat
                  0.0 0.0 moveto
                  (More levels) show
                  grestore
               gsave
                  grestore
               gsave
                  font16 setfont
                  0.0 setgray
                  14.29791 dup matrix scale 91.19686 297.2373 matrix translate matrix concatmatrix concat
                  0.0 0.0 moveto
                  (viewing a document at) show
                  grestore
               gsave
                  font16 setfont
                  0.0 setgray
                  14.29791 dup matrix scale 122.9794 280.5493 matrix translate matrix concatmatrix concat
                  0.0 0.0 moveto
                  (many levels) show
                  grestore
               grestore
            grestore
         grestore
      90.3375 381.6491 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (If you clicked ) 0 buf
         opsaft 0 null put
         opsbef 1 {
             currentpoint /undery exch def /underx exch def
             font0 setfont} put
         (FirstLevelOnly) 1 buf
         opsaft 1 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery 1.2 sub dup underx exch
             vec moveto} put
         opsbef 2 {font0 setfont} put
         (, then only the head nodes \050designated here by I. and II.\051 would be) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 369.6041 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (displayed.  If you clicked ) 0 buf
         opsaft 0 null put
         font7 setfont
         opsbef 1 {
             font7 setfont
             currentpoint /undery exch def /underx exch def} put
         (MoreLevels) 1 buf
         opsaft 1 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery 1.2 sub dup underx exch
             vec moveto} put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (, then you'd be able to view the next level of nodes. Clicking) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 357.559 moveto
      font0 setfont
      (on ) show
      font7 setfont
      currentpoint /undery exch def /underx exch def
      (AllLevels) show
      1.0 setlinewidth
      currentpoint currentpoint pop
      undery 1.2 sub dup underx exch
      vec moveto
      font0 setfont
      ( would show you the entire document.  ) show
      90.3375 330.3462 moveto
      font1 setfont
      (Format) show
      110.4125 303.1333 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (In Tioga editing, we name nodes, which will in turn give them formats.  In Cedar, we will rely) justify
         grestore
      90.3375 291.0883 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (on the ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (EditTool) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( to help us do this.  If you don't already have an EditTool running, type ``EditTool'') 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 279.0432 moveto
      gsave
         font0 setfont
         (to your Commander.    An icon in the shape of a piece of paper, bearing the words ``EditTool'' and) justify
         grestore
      90.3375 266.9982 moveto
      font0 setfont
      (a pencil scribbling on the paper, will appear.  ) show
      font3 setfont
      (MIDDLE) show
      font0 setfont
      (-click to open a viewer.) show
      110.4125 246.5885 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (Particular types of documents will tend to make use of certain groups of nodes.  For example,) justify
         grestore
      90.3375 234.5435 moveto
      font0 setfont
      (on a title page you'll tend to find or use the following nodes: ) show
      174.9362 214.1338 moveto
      font0 setfont
      (title, subtitle, authors, boilerplate, abstract, copyrightNotice) show
      90.3375 193.7241 moveto
      font0 setfont
      (On pages of text or prose, you'll tend to find/use these nodes, among others:) show
      187.5644 173.3144 moveto
      font0 setfont
      (head, body, block, item, indent, example, center, note) show
      90.3375 152.9047 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (Click on the ) 0 buf
         opsaft 0 null put
         font7 setfont
         opsbef 1 {
             font7 setfont
             currentpoint /undery exch def /underx exch def} put
         (Format) 1 buf
         opsaft 1 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery 1.2 sub dup underx exch
             vec moveto} put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( button in your EditTool.  Double ) 2 buf
         opsaft 2 null put
         font3 setfont
         opsbef 3 {font3 setfont} put
         (LEFT) 3 buf
         opsaft 3 null put
         font0 setfont
         opsbef 4 {font0 setfont} put
         (-click on the line beginning with the) 4 buf
         opsaft 4 null put
         mixedjustify
         grestore
      90.3375 140.8596 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (word ``Particular.''  Having selected that node, click on the ) 0 buf
         opsaft 0 null put
         font7 setfont
         opsbef 1 {
             font7 setfont
             currentpoint /undery exch def /underx exch def} put
         (Get) 1 buf
         opsaft 1 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery 1.2 sub dup underx exch
             vec moveto} put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( button in your EditTool.  The) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 128.8147 moveto
      gsave
         font0 setfont
         (name of the current format of that selected node will appear in the area  labelled ``Format name.'') justify
         grestore
      90.3375 116.7697 moveto
      font0 setfont
      (You might try selecting various other nodes just to see what format they're in.) show
      110.4125 96.36 moveto
      /colwidth 403.5451 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (Each node ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (format) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( contains its specific recipe for the structure of how that node will look.  Title) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 84.31496 moveto
      /colwidth 423.6202 def
      gsave
         font0 setfont
         (nodes have larger, bold text, with a specific amount of space allotted above and below each line.  A) justify
         grestore
      90.3375 72.26999 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (body node is one type of node used for paragraphs.  Its ``recipe'' \050or structure\051 regulates that the) justify
         grestore
      grestore
   grestore
% end page 12
showpage
%%page 13
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      514.5062 746.79 moveto
      (13) show
      90.3375 684.9593 moveto
      gsave
         font0 setfont
         (node will have a specific font type and size, indentation of the first word, and predetermined) justify
         grestore
      90.3375 672.914 moveto
      font0 setfont
      (spacing above and below lines at the beginning, middle, and end.) show
      110.4125 653.3137 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (When you apply a Format to a node, that node will take on a structure specific to the type of) justify
         grestore
      90.3375 641.2687 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (node you have named it.  It would be accurate to say that when formatting a document with Tioga) justify
         grestore
      90.3375 629.2237 moveto
      gsave
         font0 setfont
         (editing tools, you are adding a structure or foundation to the node.  This structure \050formatting\051 will) justify
         grestore
      90.3375 617.1786 moveto
      font0 setfont
      (determine how the node will look.) show
      90.3375 591.0444 moveto
      font1 setfont
      (Looks) show
      110.4125 564.9105 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (Looks are a way of making changes to the appearance of text within a node, without changing) justify
         grestore
      90.3375 552.8653 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (the structure of the node.  You would add ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (looks) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( to add italics, boldness, or underlining; or to) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 540.8205 moveto
      gsave
         font0 setfont
         (change a word to a superscript, subscript, or larger or smaller size.  Different looks can be added to) justify
         grestore
      90.3375 528.7755 moveto
      font0 setfont
      (different words within a node, and multiple looks can be added to one selection.) show
      110.4125 509.175 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (Once you've selected the words to which you want to add Looks, you do so by either using the) justify
         grestore
      90.3375 497.13 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (EditTool or by pressing the Looks key \050key R9 on the righthand keypad\051 and the appropriate) justify
         grestore
      90.3375 485.0851 moveto
      gsave
         font0 setfont
         (lower case code letter on the keyboard.  For a good summary of the Looks available, consult) justify
         grestore
      90.3375 473.04 moveto
      font0 setfont
      (SampleSheet.tioga <67>.) show
      90.3375 446.906 moveto
      font1 setfont
      (Style) show
      110.4125 420.7722 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (Appearance is influenced by the format of the node, which determines things such as vertical) justify
         grestore
      90.3375 408.7272 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (and horizontal spacing.  The characters of the text within a node can have looks that control) justify
         grestore
      90.3375 396.682 moveto
      gsave
         font0 setfont
         (various aspects of their appearance such as font and size.  The document refers to the names of) justify
         grestore
      90.3375 384.637 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (looks and formats, but not to any specific interpretation of them.  A ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (style) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( is a collection of) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 372.5921 moveto
      gsave
         font0 setfont
         (interpretations \050or ``complementary flavors'', if you will\051 for looks and formats.  This document is) justify
         grestore
      90.3375 360.5472 moveto
      font0 setfont
      (composed with the default Cedar style.) show
      110.4125 340.9464 moveto
      /colwidth 403.5451 def
      gsave
         font0 setfont
         (Styles can be shared by many documents.  For example, in the style for this document there) justify
         grestore
      90.3375 328.9016 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (are definitions of formats for titles, headings, and standard paragraphs, and there are definitions of) justify
         grestore
      90.3375 316.8565 moveto
      gsave
         font0 setfont
         (looks for emphasis and for small caps.  Rather than specifying all the details for the formats and) justify
         grestore
      90.3375 304.8116 moveto
      gsave
         font0 setfont
         (looks, the document refers to formats and looks by name \050like ``title'', ``block'', ``abstract''\051.  These) justify
         grestore
      90.3375 292.7665 moveto
      gsave
         font0 setfont
         (names are defined in the style, so it's easy to change the definitions in the style and modify the) justify
         grestore
      90.3375 280.7215 moveto
      font0 setfont
      (appearance uniformly throughout the document.) show
      90.3375 254.5875 moveto
      font1 setfont
      (Properties) show
      110.4125 228.4535 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (Adding a ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (property) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( is a way of making changes to ) 2 buf
         opsaft 2 null put
         opsbef 3 {
             currentpoint /undery exch def /underx exch def
             font0 setfont} put
         (specific) 3 buf
         opsaft 3 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery 1.2 sub dup underx exch
             vec moveto} put
         opsbef 4 {font0 setfont} put
         ( characters or nodes in a way that goes) 4 buf
         opsaft 4 null put
         mixedjustify
         grestore
      90.3375 216.4085 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (beyond the boundaries of what's included in a particular ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (style) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (.  Most often, you'll hear about) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 204.3635 moveto
      gsave
         font0 setfont
         (Postfix properties.  For example, you could use Postfix properties to add background color to a) justify
         grestore
      90.3375 192.3186 moveto
      gsave
         font0 setfont
         (node, to change the color of the text itself, to place boxes around words without using a graphics) justify
         grestore
      90.3375 180.2736 moveto
      gsave
         font0 setfont
         (program, or change the size of margins or indents.  Find a Postfix wizard if you'd like further) justify
         grestore
      90.3375 168.2286 moveto
      font0 setfont
      (details.) show
      90.3375 142.0946 moveto
      font1 setfont
      (Dealing with Editor Bugs) show
      110.4125 115.9606 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (All text editors have bugs.  The most common -- perhaps we mean ``the least rare'' -- source of) justify
         grestore
      90.3375 103.9156 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (editing disasters in Tioga is problems with monitor \050or ``viewer''\051 locks.  Unfortunately, this class of) justify
         grestore
      90.3375 91.8706 moveto
      font0 setfont
      (problem usually makes further progress in any part of Cedar impossible.  ) show
      110.4125 72.27012 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (In X11Viewers: The \042delete window\042 from a window manager shows a pop up menu which) justify
         grestore
      grestore
   grestore
% end page 13
showpage
%%page 14
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      514.0624 746.79 moveto
      (14) show
      90.3375 684.9593 moveto
      font0 setfont
      (allows selection of a \042save all edits\042 command..  ) show
      90.3375 659.3704 moveto
      font1 setfont
      (Non-Textual Editors) show
      110.4125 633.7812 moveto
      /colwidth 403.5451 def
      gsave
         font0 setfont
         (We humans often convey information more effectively in ways other than the written word.) justify
         grestore
      90.3375 621.7361 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (Cedar likewise provides tools for manipulating representations of information other than text, such) justify
         grestore
      90.3375 609.691 moveto
      font0 setfont
      (as 2-D illustrations, mathematical expressions and voice. ) show
      110.4125 590.4995 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (Gargoyle [45] is an interactive 2D illustrator for creating color pictures.  It includes novel) justify
         grestore
      90.3375 578.4545 moveto
      /colwidth 423.6202 def
      gsave
         font0 setfont
         (features to aid the user in precise geometric placement of objects in the scene.  Refer to [46] for an) justify
         grestore
      90.3375 566.4095 moveto
      font0 setfont
      (on-line tutorial.   I used Gargoyle to draw all the pictures in this document.) show
      110.4125 547.2178 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (CaminoReal[44] is an environment for two kinds of manipulations of mathematical) justify
         grestore
      90.3375 535.1729 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (expressions: \0501\051 interactive, syntax-directed, two-dimensional, WYSIWYG editing and \0502\051) justify
         grestore
      90.3375 523.1277 moveto
      font0 setfont
      (algebraic manipulation.) show
      110.4125 503.9361 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (Because Tioga provides a rich common ground, the above heterogeneous data \050image and) justify
         grestore
      90.3375 491.891 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (voice\051 can be integrated into a single source \050namely a Tioga document\051 for later browsing.  The) justify
         grestore
      90.3375 479.8461 moveto
      gsave
         font0 setfont
         (other editors, of course, recognize Tioga's role as chief editor and each provides a facility to insert) justify
         grestore
      90.3375 467.8012 moveto
      font0 setfont
      (\050``Stuff''\051 its data into a Tioga document. ) show
      90.3375 442.2121 moveto
      font12 setfont
      (2.8  Exiting Cedar) show
      110.4125 416.6232 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (Click on the X11Viewers static button to bring up a pop-up menu.  Move the mouse cursor to) justify
         grestore
      90.3375 404.5781 moveto
      font0 setfont
      (the words ``Exit Cedar'' and click on it.  Your X window containing the Cedar world will vanish.) show
      90.3375 354.8992 moveto
      font11 setfont
      (3.  Printing) show
      90.3375 328.9355 moveto
      font12 setfont
      (3.1  Interpress and Postscript) show
      110.4125 303.3467 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (Interpress [51] is a Xerox standard that permits every printing client to use every printer.) justify
         grestore
      90.3375 291.3016 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (Cedar is most adept at converting its online document formats \050.tioga, .gargoyle, etc.\051 to Interpress.) justify
         grestore
      90.3375 279.2568 moveto
      gsave
         font0 setfont
         (Outside of Xerox, however, the world has standardized on Postscript printing and Interpress) justify
         grestore
      90.3375 267.2116 moveto
      gsave
         font0 setfont
         (printers are uncommon, so a further conversion of the Interpress file to Postscript will likely be) justify
         grestore
      90.3375 255.1667 moveto
      gsave
         font0 setfont
         (required.  There may be some confusion about fonts in this latter conversion, but the result is) justify
         grestore
      90.3375 243.1216 moveto
      font0 setfont
      (usually a readable, though seldom beautiful, printed page. ) show
      110.4125 223.93 moveto
      font12 setfont
      (Converting to Interpress) show
      font0 setfont
      (.   The following commands produce Postscript from tioga.) show
      110.4125 204.7383 moveto
      125.4688 191.5691 moveto
      font12 setfont
      (%) show
      font14 setfont
      (  TiogaToInterpress foo.interpress ← foo.tioga) show
      131.4688 179.5241 moveto
      font14 setfont
      10.03749 0.0 rmoveto
      font1 setfont
      (TiogaToInterpress is a program that converts Tioga documents to Interpress format. ) show
      125.4688 166.3548 moveto
      font12 setfont
      (%) show
      font14 setfont
      (  IPtoPS foo.ps ← foo.interpress) show
      131.4688 154.3099 moveto
      font14 setfont
      10.03749 0.0 rmoveto
      font1 setfont
      (Converts interpress to Postscript.) show
      110.4125 135.1182 moveto
      font0 setfont
      (Use the Unix lpr command to print the resulting file on your favorite Postscript printer.) show
      125.4688 121.949 moveto
      90.3375 72.27007 moveto
      font11 setfont
      (4.  Programming) show
      grestore
   grestore
% end page 14
showpage
%%page 15
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      514.3934 746.79 moveto
      (15) show
      90.3375 684.9593 moveto
      font12 setfont
      (4.1   Naming conventions) show
      110.4125 658.9876 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (The prevailing local philosophy about naming is perhaps different from elsewhere.  We have) justify
         grestore
      90.3375 646.9428 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (our share of alphabet soup, \050that is, acronyms of varying degrees of cuteness and artificiality, like) justify
         grestore
      90.3375 634.8977 moveto
      gsave
         font0 setfont
         (PARC, FTP, IFS, PUP\051.  But we are trying to avoid worsening this situation.  To this worthy end,) justify
         grestore
      90.3375 622.853 moveto
      gsave
         font0 setfont
         (Grapevine \050mail\051 servers are named after wines, Dorados are named after capital ships, some Suns) justify
         grestore
      90.3375 610.8076 moveto
      gsave
         font0 setfont
         (are named after places in E. E. ``Doc'' Smith science fiction novels, and so on.  As these) justify
         grestore
      90.3375 598.7628 moveto
      gsave
         font0 setfont
         (conventions don't meet with universal approval, you will doubtless provoke interesting discussions) justify
         grestore
      90.3375 586.718 moveto
      font0 setfont
      (if you advance your own views on naming to almost anyone wandering in the corridors.) show
      110.4125 567.2391 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (While we are on the topic of names, let's discuss for a moment the local customs for) justify
         grestore
      90.3375 555.1944 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (constructing single identifiers out of multiple word phrases.  Suppose you'd like to name a variable) justify
         grestore
      90.3375 543.1492 moveto
      gsave
         font0 setfont
         (``name several words long.''  In some environments, a special character that isn't a letter but acts) justify
         grestore
      90.3375 531.1044 moveto
      font0 setfont
      (like a letter is used as a word separator, leading to names such as) show
      110.4125 505.6035 moveto
      font0 setfont
      (``name!several!words!long'' or ``name) show
      currentpoint /undery exch def /underx exch def
      ( ) show
      1.0 setlinewidth
      currentpoint currentpoint pop
      undery 1.2 sub dup underx exch
      vec moveto
      (several) show
      currentpoint /undery exch def /underx exch def
      ( ) show
      1.0 setlinewidth
      currentpoint currentpoint pop
      undery 1.2 sub dup underx exch
      vec moveto
      (words) show
      currentpoint /undery exch def /underx exch def
      ( ) show
      1.0 setlinewidth
      currentpoint currentpoint pop
      undery 1.2 sub dup underx exch
      vec moveto
      (long.'') show
      90.3375 486.8305 moveto
      gsave
         font0 setfont
         (No such character is in common use locally, however.  Instead, we shift between upper and lower) justify
         grestore
      90.3375 474.7854 moveto
      font0 setfont
      (case to show word boundaries, leading to the name) show
      110.4125 449.2844 moveto
      font0 setfont
      ( ``NameSeveralWordsLong.'') show
      90.3375 430.5116 moveto
      gsave
         font0 setfont
         (Some people think this looks terribly ugly.  We won't express our opinions in this document, but) justify
         grestore
      90.3375 418.4665 moveto
      font0 setfont
      (once again exhort you to espouse your views in the corridors.  ) show
      110.4125 398.988 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (As a general rule, case is significant for identifiers in the Cedar programming language, but) justify
         grestore
      90.3375 386.943 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (not significant in file names or mail names.  Thus, the Cedar identifiers ``REF'', ``Ref'', and ``ref'') justify
         grestore
      90.3375 374.898 moveto
      gsave
         font0 setfont
         (are quite distinct, but the file names ``BriefingBlurb.tioga'' and ``briefingblurb.tioga'' are) justify
         grestore
      90.3375 362.853 moveto
      gsave
         font0 setfont
         (equivalent, as are the  mail names ``BOki.PARC'' and ``boki.parc.''  In Cedar, there is a further) justify
         grestore
      90.3375 350.808 moveto
      gsave
         font0 setfont
         (convention that the case of the first letter of an identifier distinguishes fancy objects, such as) justify
         grestore
      90.3375 338.763 moveto
      gsave
         font0 setfont
         (procedures and types, from simple ones, such as integers and reals.  Thus, the identifier name) justify
         grestore
      90.3375 326.718 moveto
      /colwidth 381.4717 def
      gsave
         font0 setfont
         (``ProcWithFiveWordName'' begins with an upper case ``P'', but the name) justify
         grestore
      90.3375 314.6729 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (``integerWithFiveWordName'' begins with a lower case ``i.''  The latter form looks strange to most) justify
         grestore
      90.3375 302.6279 moveto
      gsave
         font0 setfont
         (people when they first see it.  When you first tasted an olive, you probably didn't like it.  Now, you) justify
         grestore
      90.3375 290.5829 moveto
      gsave
         font0 setfont
         (probably do.  Give these capitalization conventions the same chance that you would an olive.) justify
         grestore
      90.3375 278.5379 moveto
      gsave
         font0 setfont
         (Caveat:  In Cedar, case does not matter in a file name if the file you're interested in happens to be) justify
         grestore
      90.3375 266.493 moveto
      gsave
         font0 setfont
         (in a versioned, case-insensitive directory like the Cedar system release, so LoganBerryImpl.mesa) justify
         grestore
      90.3375 254.4478 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (and loganberryimpl.mesa are the same file; in a Unix-like directory, case ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (does) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( matter.  These) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 242.4029 moveto
      font0 setfont
      (distinctions will become clearer further ahead.) show
      110.4125 222.9244 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (These capitalization conventions don't work too well when acronyms and normal words) justify
         grestore
      90.3375 210.8794 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (appear together in one identifier.  Suppose, for example, that we wanted an identifier named ``FTP) justify
         grestore
      90.3375 198.8344 moveto
      font0 setfont
      (version number.''  Since it's an integer, probably ``ftpVersionNumber'' is best.) show
      90.3375 172.8632 moveto
      font12 setfont
      (4.2   Cedar programming language) show
      90.3375 146.4216 moveto
      font1 setfont
      (Cedar) show
      110.4125 120.4503 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (In 1978, CSL began to consider what programming environment to use on the emerging D-) justify
         grestore
      90.3375 108.4052 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (machines, such as the Dorado.  CSL chose to build a new programming environment, based on the) justify
         grestore
      90.3375 96.36024 moveto
      gsave
         font0 setfont
         (Mesa language, that would be the basis for most of our programming during the following years.) justify
         grestore
      90.3375 84.31528 moveto
      gsave
         font0 setfont
         (That new environment is named ``Cedar.''  We refer the interested reader to [40] for an) justify
         grestore
      90.3375 72.27026 moveto
      gsave
         font0 setfont
         (introductory ``tour'' through the Cedar programming environment and to [<42>] for an in-depth) justify
         grestore
      grestore
   grestore
% end page 15
showpage
%%page 16
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      514.2512 746.79 moveto
      (16) show
      90.3375 684.9593 moveto
      font0 setfont
      (description of the overall structure of Cedar and its organization.) show
      110.4125 664.54 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (Cedar documentation is always in flux; indeed, it might be said that Cedar as a whole is in a) justify
         grestore
      90.3375 652.4948 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (constant state of flux.  Much of the documentation for the current release is accessible through a) justify
         grestore
      90.3375 640.45 moveto
      font0 setfont
      (``.df'' file named Documentation.df <25>.  ) show
      110.4125 620.0308 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (Cedar's predecessor, Mesa, was a strongly typed language designed and built locally.) justify
         grestore
      90.3375 607.9858 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (Although Mesa programs look a lot like PASCAL programs when viewed in the small, Mesa) justify
         grestore
      90.3375 595.9408 moveto
      gsave
         font0 setfont
         (provides and enforces a modularization concept that allows large programs to be built from smaller) justify
         grestore
      90.3375 583.8957 moveto
      gsave
         font0 setfont
         (pieces.  These pieces are compiled separately, but the strong type checking of Mesa is enforced) justify
         grestore
      90.3375 571.8508 moveto
      gsave
         font0 setfont
         (between different modules.  The basic idea is to structure a system by determining which functions) justify
         grestore
      90.3375 559.806 moveto
      gsave
         font0 setfont
         (are supplied by particular portions of the system to other portions.  This supply of functionality is) justify
         grestore
      90.3375 547.7609 moveto
      gsave
         font0 setfont
         (called an ``interface;'' it is manifested in a Mesa source file called an ``interface module.''  An) justify
         grestore
      90.3375 535.7159 moveto
      gsave
         font0 setfont
         (interface module may define types and procedures that act on values of those types.  Only the) justify
         grestore
      90.3375 523.6711 moveto
      gsave
         font0 setfont
         (procedure headers go into the interface module, not the procedure bodies.  This makes sense, since) justify
         grestore
      90.3375 511.6259 moveto
      gsave
         font0 setfont
         (all the interface module has to do is to give the compiler enough information to type-check) justify
         grestore
      90.3375 499.5809 moveto
      font0 setfont
      (programs that use the interface.) show
      110.4125 479.1618 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (An interface is implemented by an ``implementation module,'' which contains the actual) justify
         grestore
      90.3375 467.1166 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (procedure code.  An implementation module is said to ``export'' the interface that it is) justify
         grestore
      90.3375 455.0717 moveto
      gsave
         font0 setfont
         (implementing; it may also ``import'' other interfaces that it needs to do its job, interfaces that some) justify
         grestore
      90.3375 443.0266 moveto
      font0 setfont
      (other program will implement.) show
      110.4125 422.6076 moveto
      /colwidth 403.5451 def
      gsave
         font0 setfont
         (In simple systems, each interface is exported by exactly one module.  In such a system, it is) justify
         grestore
      90.3375 410.5625 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (clear who should be supplying which services to whom.  In fact, in these simple cases, the ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (binding) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (,) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 398.5176 moveto
      gsave
         font0 setfont
         (that is, the resolution of imports and exports, can be done on the fly by the loader.  But in more) justify
         grestore
      90.3375 386.4725 moveto
      gsave
         font0 setfont
         (complex cases, there might be several different modules in the system that can supply the same) justify
         grestore
      90.3375 374.4275 moveto
      gsave
         font0 setfont
         (service under somewhat different conditions, or with somewhat different performance.  Then, the) justify
         grestore
      90.3375 362.3825 moveto
      gsave
         font0 setfont
         (job of describing exactly which modules supply which services to which other modules can become) justify
         grestore
      90.3375 350.3375 moveto
      gsave
         font0 setfont
         (subtle.  A small language was devised to describe these cases.  A program reads such a description,) justify
         grestore
      90.3375 338.2925 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (called a ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (config) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (, and builds a runable system by filling imports requested from exports according to) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 326.2474 moveto
      font0 setfont
      (the config.) show
      110.4125 305.8283 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (The programming language underlying Cedar is essentially Mesa plus garbage collection.) justify
         grestore
      90.3375 293.7833 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (Now, garbage collection changes one's programming style in large systems.  Without garbage) justify
         grestore
      90.3375 281.7383 moveto
      gsave
         font0 setfont
         (collection, one must enforce some conventions about who owns the storage.  When I call you and) justify
         grestore
      90.3375 269.6934 moveto
      gsave
         font0 setfont
         (pass you a string argument, we must agree whether I am just letting you look at my string, or I am) justify
         grestore
      90.3375 257.6484 moveto
      gsave
         font0 setfont
         (actually turning over ownership of the string to you, because it's the owner's responsibility to) justify
         grestore
      90.3375 245.6033 moveto
      gsave
         font0 setfont
         (reclaim the string's storage and prevent a storage leak.  With garbage collection, most problems like) justify
         grestore
      90.3375 233.5583 moveto
      gsave
         font0 setfont
         (this go away: the garbage collector owns all storage; it gets reclaimed when it is no longer needed,) justify
         grestore
      90.3375 221.5133 moveto
      gsave
         font0 setfont
         (and not before.  But there is a price for this convenience: the garbage collector takes time to do its) justify
         grestore
      90.3375 209.4684 moveto
      gsave
         font0 setfont
         (work.  In addition, all programmers must follow certain rules about using pointers so as not to) justify
         grestore
      90.3375 197.4233 moveto
      font0 setfont
      (confuse the garbage collector about what is garbage and what is not.) show
      110.4125 177.0042 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (Cedar is really two programming languages: a restricted subset called the ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (safe language) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (, and) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 164.9592 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (the unrestricted full language.  Programmers who stick to the safe language can rest secure in the) justify
         grestore
      90.3375 152.9142 moveto
      gsave
         font0 setfont
         (confidence that nothing they write can confuse the garbage collector.  Their bugs will not risk) justify
         grestore
      90.3375 140.8692 moveto
      gsave
         font0 setfont
         (bringing down the entire environment around them in a rubble of bits.  Those who choose to veer) justify
         grestore
      90.3375 128.8242 moveto
      font0 setfont
      (outside of the safe language should know what they are doing.) show
      110.4125 108.4051 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (Programs in the programming language underlying Cedar look a lot like Mesa programs, but,) justify
         grestore
      90.3375 96.36005 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (on a deeper level, they aren't really Mesa programs at all.  To avoid confusion, we decided to use) justify
         grestore
      90.3375 84.31507 moveto
      gsave
         font0 setfont
         (the name ``Cedar'' to describe the Cedar programming language, as well as the environment built) justify
         grestore
      90.3375 72.27007 moveto
      font0 setfont
      (on top of it.) show
      grestore
   grestore
% end page 16
showpage
%%page 17
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      514.3934 746.79 moveto
      (17) show
      90.3375 684.9593 moveto
      font1 setfont
      (Cedar, PCedar or ``Portable Cedar'') show
      110.4125 656.3076 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (Neither the Cedar language nor the environment was originally intended to be portable, and) justify
         grestore
      90.3375 644.2632 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (for many years ran only on D-machines at PARC and a few other locations in Xerox.  We recently) justify
         grestore
      90.3375 632.2182 moveto
      gsave
         font0 setfont
         (re-implemented the language to make it portable across many different architectures.  Our strategy) justify
         grestore
      90.3375 620.173 moveto
      gsave
         font0 setfont
         (was, first, to use machine-dependent C code as an intermediate language; second, to create a) justify
         grestore
      90.3375 608.1282 moveto
      gsave
         font0 setfont
         (language-independent layer known as the Portable Common Runtime; and third, to write a) justify
         grestore
      90.3375 596.083 moveto
      gsave
         font0 setfont
         (relatively large amount of Cedar-specific runtime code in a subset of Cedar itself.  By treating C as) justify
         grestore
      90.3375 584.038 moveto
      gsave
         font0 setfont
         (an intermediate code we are able to achieve reasonably fast compilation, very good eventual) justify
         grestore
      90.3375 571.993 moveto
      gsave
         font0 setfont
         (machine code, and all with relatively small programmer effort.  Because Cedar is a much richer) justify
         grestore
      90.3375 559.948 moveto
      gsave
         font0 setfont
         (language than C, there were numerous issues to resolve in performing an efficient translation and) justify
         grestore
      90.3375 547.9032 moveto
      font0 setfont
      (in providing reasonable debugging.  ) show
      110.4125 526.4146 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (Reference [<52>] is a paper presented  at SIGPLAN '89 Conference on Programming) justify
         grestore
      90.3375 514.3700 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (Language Design and Implementation.  It discusses how Cedar was re-implemented to make it) justify
         grestore
      90.3375 502.325 moveto
      gsave
         font0 setfont
         (portable across many different architectures, in particular, the strategy for the compiler and) justify
         grestore
      90.3375 490.2797 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (runtime, and the manner of making connections to other languages and the Unix) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont 0.0 4.015 rmoveto} put
         (TM) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {0.0 -4.015 rmoveto font0 setfont} put
         ( operating) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 478.2347 moveto
      font0 setfont
      (system.) show
      110.4125 456.7465 moveto
      /colwidth 403.545 def
      gsave
         font12 setfont
         opsbef 0 {font12 setfont} put
         (Mimosa) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         (. The Mimosa compiler translates the Cedar language into machine dependent C.) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      90.3375 444.7016 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (There is a front end, compiling into a simple intermediate form, and a back end, translating from) justify
         grestore
      90.3375 432.6565 moveto
      gsave
         font0 setfont
         (the intermediate form to C code.   In the future, back ends may generate other machine codes,) justify
         grestore
      90.3375 420.6114 moveto
      font0 setfont
      (other assembler languages, or other versions of C.) show
      110.4125 399.1231 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (Although treating C as merely an intermediate language has significant advantages, the) justify
         grestore
      90.3375 387.0781 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (decision to keep program maintenance in Cedar was made independently on the merits of the) justify
         grestore
      90.3375 375.0331 moveto
      gsave
         font0 setfont
         (Cedar language.  We were not willing to do a one-time translation from Cedar to C \050even readable) justify
         grestore
      90.3375 362.9881 moveto
      gsave
         font0 setfont
         (C\051.  For example, such things as compiler-generated runtime checks should not be exposed to the) justify
         grestore
      90.3375 350.9432 moveto
      font0 setfont
      (programmer for maintenance.) show
      110.4125 329.4548 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (Everything in the front end was affected by the retargeting, and some files were completely) justify
         grestore
      90.3375 317.4099 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (rewritten.  The use of an intermediate code is completely new.  The old code generator was) justify
         grestore
      90.3375 305.3649 moveto
      gsave
         font0 setfont
         (changed to produce the intermediate code, in 16 files and over 8,000 lines of code.  A few other) justify
         grestore
      90.3375 293.3197 moveto
      gsave
         font0 setfont
         (files are completely new, for about 30% of the source lines.  Since substantial changes have been) justify
         grestore
      90.3375 281.2747 moveto
      gsave
         font0 setfont
         (made to other parts of the compiler, it would be reasonable to estimate that over 50% of the source) justify
         grestore
      90.3375 269.2297 moveto
      gsave
         font0 setfont
         (lines have received major change \050not counting the lines that were completely discarded\051.  We) justify
         grestore
      90.3375 257.1848 moveto
      font0 setfont
      (estimate that about 2 man-years overall were spent in redoing the front-end.) show
      110.4125 235.6964 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (The back-end generates machine dependent C code from the intermediate form.  It was) justify
         grestore
      90.3375 223.6515 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (written completely from scratch for the port, consists of 10,000 lines of Cedar in 24 modules, and) justify
         grestore
      90.3375 211.6066 moveto
      font0 setfont
      (took about 6 man-months to write.) show
      110.4125 190.1183 moveto
      /colwidth 403.5451 def
      gsave
         font12 setfont
         opsbef 0 {font12 setfont} put
         (Portable Common Runtime) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         (. The Cedar runtime environment, to which the generated C code) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      90.3375 178.0732 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (is targeted, is written mostly in Cedar, the rest is written in C, except for a small amount of) justify
         grestore
      90.3375 166.0281 moveto
      font0 setfont
      (assembler code.  ) show
      110.4125 144.54 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (The environment is built in layers.  The lowest layer is akin to an operating system, and) justify
         grestore
      90.3375 132.4950 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (provides dynamic loading, threads support, and storage management \050including garbage) justify
         grestore
      90.3375 120.45 moveto
      gsave
         font0 setfont
         (collection\051.  This is about 20,000 lines of C code and less than a 100 lines of assembler \050either) justify
         grestore
      90.3375 108.405 moveto
      gsave
         font0 setfont
         (SPARC and Motorola 68020 at the moment\051.  This layer is not specific to Cedar, and is in fact) justify
         grestore
      90.3375 96.36 moveto
      gsave
         font0 setfont
         (intended to provide a language-independent base for high level languages.  We call it the Portable) justify
         grestore
      90.3375 84.31496 moveto
      gsave
         font0 setfont
         (Common Runtime \050PCR\051, which we describe elsewhere [71].  Below we describe the PCR only) justify
         grestore
      90.3375 72.26996 moveto
      font0 setfont
      (where its functionality is particularly important to implementing Cedar features.) show
      grestore
   grestore
% end page 17
showpage
%%page 18
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      514.447 746.79 moveto
      (18) show
      110.4125 684.9593 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (Support for the remaining features of Cedar is provided by the penultimate layer, called) justify
         grestore
      90.3375 672.914 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (CedarCore, which contains ) 0 buf
         opsaft 0 null put
         opsbef 1 {font0 setfont} put
         (400) 1 buf
         opsaft 1 null put
         opsbef 2 {font0 setfont} put
         ( lines of C code and ) 2 buf
         opsaft 2 null put
         opsbef 3 {font0 setfont} put
         (10,000) 3 buf
         opsaft 3 null put
         opsbef 4 {font0 setfont} put
         ( lines of Cedar.  From CedarCore on, the) 4 buf
         opsaft 4 null put
         mixedjustify
         grestore
      90.3375 660.8688 moveto
      gsave
         font0 setfont
         (full Cedar language is supported.  The final support layer, BasicCedar, while not necessary for the) justify
         grestore
      90.3375 648.8241 moveto
      gsave
         font0 setfont
         (language itself, contains services that are considered essential for most Cedar applications.  For) justify
         grestore
      90.3375 636.779 moveto
      gsave
         font0 setfont
         (example it includes several kinds of hash table mechanisms and a general-purpose stream I/O) justify
         grestore
      90.3375 624.7342 moveto
      gsave
         font0 setfont
         (package.  Cedar lightweight processes, interface binding, and exception handling are handled by) justify
         grestore
      90.3375 612.6892 moveto
      font0 setfont
      (the runtime system.  ) show
      90.3375 586.8198 moveto
      font12 setfont
      (4.3   Portable File System \050PFS\051) show
      110.4125 560.95 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (File system access by all Cedar packages is PFS, the new Portable File System interface.  PFS) justify
         grestore
      90.3375 548.9048 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (provides a uniform, extensible mechanism allowing client programs to use files in any of a number) justify
         grestore
      90.3375 536.86 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (of different kinds of file systems.  For example, clients can currently view UNIX) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont 0.0 4.015 rmoveto} put
         (TM) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {0.0 -4.015 rmoveto font0 setfont} put
         ( file systems in) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 524.8149 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (either ``Unix) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont 0.0 4.015 rmoveto} put
         (TM) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {0.0 -4.015 rmoveto font0 setfont} put
         ('' style, i.e., versionless and case-sensitive names, or in ``Cedar'' style, i.e. versioned) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 512.77 moveto
      gsave
         font0 setfont
         (and case-insensitive names.  We dub the Unix view ``-ux'' \050pronounced ``ucks''\051 and the Cedar view) justify
         grestore
      90.3375 500.725 moveto
      gsave
         font0 setfont
         (``-vux'' \050pronounced ``vucks''\051.  There is also a view that uses the Cedar version map as its) justify
         grestore
      90.3375 488.68 moveto
      gsave
         font0 setfont
         (directory.   A view of NS files is in development, as is a DF view.  To ease porting of Cedar clients) justify
         grestore
      90.3375 476.635 moveto
      font0 setfont
      (and to allow sharing of source, a Cedar FS compatibility package was also provided.) show
      110.4125 457.2325 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (This work builds on work done in Cedar7.0 for accessing files on many different kinds of file) justify
         grestore
      90.3375 445.1876 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (servers, including Sun NFSs, where essentially the same problems had to be solved: a common) justify
         grestore
      90.3375 433.1426 moveto
      gsave
         font0 setfont
         (interface to different, but essentially similar file systems; a registration mechanism to make the) justify
         grestore
      90.3375 421.0976 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (solution extensible to new file systems; and a simulation of Cedar-style names using the Unix) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont 0.0 4.015 rmoveto} put
         (TM) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      90.3375 409.0526 moveto
      font0 setfont
      (file system.  See <53> for details.) show
      110.4125 389.6505 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (PFS introduces the ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (prefix map) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( concept to Cedar.  Prefix maps introduce a level of name) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 377.6054 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (indirection to all file system accesses using PFS.  This indirection is used to make client programs) justify
         grestore
      90.3375 365.5604 moveto
      gsave
         font0 setfont
         (less dependent on the actual location of files.  Because prefix maps allow replacing an arbitrary) justify
         grestore
      90.3375 353.5154 moveto
      gsave
         font0 setfont
         (prefix of a path by another path, and because this substitution is done uniformly on all paths used) justify
         grestore
      90.3375 341.4704 moveto
      font0 setfont
      (by PFS, prefix maps have additional uses in customizing clients' views of the file system.) show
      110.4125 322.0682 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (Type the following command ``pmp'' \050short for PrefixMapPrint\051 to your commander.  The) justify
         grestore
      90.3375 310.0232 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (current default prefix maps will be printed out.  It is easiest to think of these prefix maps as top) justify
         grestore
      90.3375 297.9782 moveto
      font0 setfont
      (level directories in the Unix style.) show
      110.4125 278.576 moveto
      125.4688 265.1963 moveto
      font12 setfont
      (%) show
      font14 setfont
      ( pmp) show
      131.4688 253.1512 moveto
      font13 setfont
      (/cedar10.1) show
      8.782788 0.0 rmoveto
      10.03749 0.0 rmoveto
      (-vux:/project/cedar10.1/release) show
      131.4688 241.1062 moveto
      font13 setfont
      (/) show
      font14 setfont
      (cedar) show
      font13 setfont
      10.75407 0.0 rmoveto
      10.03749 0.0 rmoveto
      10.03749 0.0 rmoveto
      10.03749 0.0 rmoveto
      10.03749 0.0 rmoveto
      (-vux:/) show
      font14 setfont
      (project/cedar10.1/release) show
      131.4688 229.0612 moveto
      font14 setfont
      (...) show
      131.4688 217.0162 moveto
      font13 setfont
      (/) show
      13.92702 0.0 rmoveto
      10.03749 0.0 rmoveto
      10.03749 0.0 rmoveto
      10.03749 0.0 rmoveto
      10.03749 0.0 rmoveto
      10.03749 0.0 rmoveto
      10.03749 0.0 rmoveto
      (-ux:/) show
      131.4688 204.9713 moveto
      font14 setfont
      (/r/) show
      6.273453 0.0 rmoveto
      10.03749 0.0 rmoveto
      10.03749 0.0 rmoveto
      10.03749 0.0 rmoveto
      10.03749 0.0 rmoveto
      10.03749 0.0 rmoveto
      (-VerMapA:/Source/) show
      125.4688 191.5916 moveto
      90.3375 165.722 moveto
      font1 setfont
      (-Vux view) show
      110.4125 139.8524 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (The following doesn't apply to Cedar as it appears on the CDROM.  The /cedar and) justify
         grestore
      90.3375 127.8073 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (/cedar10.1 prefixes are mapped by the CDROM prefix map to ordinary, case sensitive, versionless) justify
         grestore
      90.3375 115.7624 moveto
      font0 setfont
      (directories using the -ux:/ prefix.) show
      110.4125 96.3602 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (For example, note that /cedar10.1 and /cedar are both prefixes of a somewhat longer) justify
         grestore
      90.3375 84.31519 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (pathname, called /project/cedar10.1/release and is to be viewed as versioned, case-insensitive) justify
         grestore
      90.3375 72.27018 moveto
      gsave
         font0 setfont
         (names, indicated by ``-vux:'' -- think of -vux as \042versioned unix.\042  If I type the ``ls'' command in) justify
         grestore
      grestore
   grestore
% end page 18
showpage
%%page 19
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      514.2537 746.79 moveto
      (19) show
      90.3375 684.9593 moveto
      gsave
         font0 setfont
         (the /cedar/top directory, all file names together with version numbers are printed out.  A portion) justify
         grestore
      90.3375 672.914 moveto
      font0 setfont
      (of this list looks like the following:) show
      90.3375 653.7959 moveto
      125.4688 640.7 moveto
      font12 setfont
      (% ) show
      font14 setfont
      (push /cedar/top) show
      125.4688 627.6044 moveto
      font14 setfont
      (/cedar/top/) show
      125.4688 614.5088 moveto
      font12 setfont
      (%) show
      font14 setfont
      ( ls) show
      125.4688 601.413 moveto
      font14 setfont
      (/cedar/top/) show
      131.4688 589.368 moveto
      font14 setfont
      (Adobe.df!3                12309 21-Apr-92 16:42:08 PDT) show
      131.4688 577.323 moveto
      font14 setfont
      (Adobe.df!4                12309 29-Apr-92 14:41:17 PDT) show
      131.4688 565.2778 moveto
      font14 setfont
      (Adobe.df!5                12336 12-May-92 14:35:27 PDT) show
      131.4688 553.233 moveto
      font14 setfont
      (AIS.df!1                   3619 10-Mar-92 11:59:50 PST) show
      131.4688 541.188 moveto
      font14 setfont
      (Args.df!1                  1092 22-Feb-92 10:59:17 PST) show
      131.4688 529.143 moveto
      font14 setfont
      (ArpaTransport.df!1         2039 21-Feb-92 23:29:43 PST) show
      110.4125 510.025 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (To those of you who cut your teeth on Unix) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont 0.0 4.015 rmoveto} put
         (TM) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {0.0 -4.015 rmoveto font0 setfont} put
         (, version numbers are probably alien to you.) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 497.98 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (The semantics of files created and modified in a vux view is ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (immutability) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (.  A file can never be) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 485.9348 moveto
      gsave
         font0 setfont
         (modified in place or overwritten, so you need never worry about clobberting an old version of a) justify
         grestore
      90.3375 473.8899 moveto
      gsave
         font0 setfont
         (file as you make changes.  The only way to modify an existing file is to create a new version with) justify
         grestore
      90.3375 461.8448 moveto
      gsave
         font0 setfont
         (the same contents and modify that new version.  Reading a file defaults to the latest version, so if) justify
         grestore
      90.3375 449.7997 moveto
      font0 setfont
      (you type) show
      90.3375 430.6815 moveto
      125.4688 417.5858 moveto
      font12 setfont
      (%) show
      font14 setfont
      ( open /Cedar/Top/Adobe.df) show
      131.4688 405.5408 moveto
      font14 setfont
      (Created Viewer: /Cedar/Top/Adobe.df!5) show
      90.3375 386.4226 moveto
      gsave
         font0 setfont
         (to your Commander without specifying a version number, a viewer is opened displaying the latest) justify
         grestore
      90.3375 374.3776 moveto
      gsave
         font0 setfont
         (version; to read a specific version you must supply that number using ``!2'' for example, if you) justify
         grestore
      90.3375 362.3325 moveto
      gsave
         font0 setfont
         (want version number 2.   The obvious disadvantage is that all those versions accumulate and clutter) justify
         grestore
      90.3375 350.2875 moveto
      font0 setfont
      (your disk space.  ) show
      110.4125 331.1692 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (And now for a word on Cedar version maps.  To achieve the same effect as the previous) justify
         grestore
      90.3375 319.1243 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (command without having to specify the particular subdirectory, like /Top, which you might not) justify
         grestore
      90.3375 307.0794 moveto
      gsave
         font0 setfont
         (even know anyway, you can go through Cedar version maps.  These maps represent a kind of latest) justify
         grestore
      90.3375 295.0342 moveto
      gsave
         font0 setfont
         (snapshot of all the software packages making up Cedar.  Provided that a package is in the version) justify
         grestore
      90.3375 282.9892 moveto
      gsave
         font0 setfont
         (maps, then you will always get the latest version of the file; otherwise, you must explicitly specify) justify
         grestore
      90.3375 270.9443 moveto
      gsave
         font0 setfont
         (the path.  The following accomplishes the same thing as the previous command.  In this case, I) justify
         grestore
      90.3375 258.8992 moveto
      font0 setfont
      (happen know that Adobe.df is in the /Cedar  directory and that there are version maps for /Cedar.) show
      110.4125 239.781 moveto
      125.4688 226.6853 moveto
      font12 setfont
      (%) show
      font14 setfont
      ( openr Adobe.df) show
      131.4688 214.6404 moveto
      font14 setfont
      (Created Viewer: /R/Adobe.df!5) show
      110.4125 195.5221 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (A word of ) 0 buf
         opsaft 0 null put
         font12 setfont
         opsbef 1 {font12 setfont} put
         (warning) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (:  Packages in the Cedar release are, unfortunately, not read-only.  It is) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 183.4771 moveto
      font0 setfont
      (possible for you inadvertently to modify a file and then ) show
      font7 setfont
      currentpoint /undery exch def /underx exch def
      (Save) show
      1.0 setlinewidth
      currentpoint currentpoint pop
      undery 1.2 sub dup underx exch
      vec moveto
      font0 setfont
      ( it.  Please be careful!!!) show
      90.3375 157.9861 moveto
      font1 setfont
      (-Ux view) show
      110.4125 132.4951 moveto
      gsave
         font0 setfont
         ( Think of this as the Unix view of the file system.  In fact, it is the default view for your root) justify
         grestore
      90.3375 120.4502 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (directory ``/'' and thus for your home directory.   In the -ux view, PFS maintains only two versions:) justify
         grestore
      90.3375 108.4052 moveto
      gsave
         font0 setfont
         (the current version and the previous version.  This previous version is distinguished by a tilde, ``~'',) justify
         grestore
      90.3375 96.36016 moveto
      gsave
         font0 setfont
         (appended to the file name.  If I modify the current version and write it back, the old previous) justify
         grestore
      90.3375 84.31516 moveto
      gsave
         font0 setfont
         (version vanishes and the old current version becomes the previous version. If you create a) justify
         grestore
      90.3375 72.27016 moveto
      font0 setfont
      (subdirectory, it defaults to -ux.  Case is important!   ) show
      grestore
   grestore
% end page 19
showpage
%%page 20
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      514.125 746.79 moveto
      (20) show
      90.3375 684.9593 moveto
      font1 setfont
      (Adding a prefix to the map.) show
      110.4125 660.2036 moveto
      /colwidth 403.5451 def
      gsave
         font0 setfont
         (Suppose you want to define your own -vux view of some existing directory of yours, say,) justify
         grestore
      90.3375 648.1588 moveto
      font0 setfont
      (/YourHomeDirectory/nothing/zippo, then type the following to your Commander:) show
      125.4688 635.6153 moveto
      font12 setfont
      (%) show
      font14 setfont
      (  pma /zippo -vux:/YourHomeDirectory/nothing/zippo) show
      90.3375 617.0488 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (``pma'' is short for ``PrefixMapAdd'' and is the command for adding new entries.  There are two) justify
         grestore
      90.3375 605.0036 moveto
      gsave
         font0 setfont
         (arguments: the first one, /zippo, is the prefix directory you wish to define; the second one is the) justify
         grestore
      90.3375 592.9588 moveto
      gsave
         font0 setfont
         (translation, where -vux says you want a versioned view, after the colon, is the path name  \050ending) justify
         grestore
      90.3375 580.9138 moveto
      font0 setfont
      (in a directory name\051 for which /zippo is the abbreviation.) show
      110.4125 562.3474 moveto
      /colwidth 403.5451 def
      gsave
         font0 setfont
         (Then type ``pmp'' to your Commander, and you'll see /zippo listed as a prefix map entry with) justify
         grestore
      90.3375 550.3023 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (the -vux view.  To view this directory as versioned, you must always refer to it via the prefix name,) justify
         grestore
      90.3375 538.2575 moveto
      gsave
         font1 setfont
         opsbef 0 {font1 setfont} put
         (not) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         ( the full path name.  In fact, we now have ) 1 buf
         opsaft 1 null put
         font1 setfont
         opsbef 2 {font1 setfont} put
         (both) 2 buf
         opsaft 2 null put
         font0 setfont
         opsbef 3 {font0 setfont} put
         ( an -ux and a -vux view of the same subdirectory.) 3 buf
         opsaft 3 null put
         mixedjustify
         grestore
      90.3375 526.2125 moveto
      font0 setfont
      (Any file created in one is visible from the other view.) show
      110.4125 507.6460 moveto
      125.4688 495.1023 moveto
      font12 setfont
      (%) show
      font14 setfont
      ( push /YourHomeDirectory/nothing/zippo) show
      125.4688 482.5584 moveto
      font14 setfont
      (/YourHomeDirectory/nothing/zippo/) show
      125.4688 470.0145 moveto
      font12 setfont
      (%) show
      font14 setfont
      ( ls) show
      125.4688 457.4706 moveto
      font14 setfont
      (/YourHomeDirectory/nothing/zippo/) show
      125.4688 444.9268 moveto
      font14 setfont
      (.                           512 05-May-90 14:47:07 PDT) show
      125.4688 432.383 moveto
      font14 setfont
      (..                          512 05-May-90 14:45:17 PDT) show
      125.4688 419.8393 moveto
      font14 setfont
      (.~case~Hello.world            0 05-May-90 14:46:09 PDT) show
      125.4688 407.2954 moveto
      font14 setfont
      (Hello.world                  17 05-May-90 14:47:07 PDT) show
      125.4688 394.7514 moveto
      font14 setfont
      (hello.world.~1~               5 05-May-90 14:46:09 PDT) show
      125.4688 382.2075 moveto
      font14 setfont
      (hello.world.~2~              11 05-May-90 14:58:21 PDT) show
      125.4688 369.6637 moveto
      font14 setfont
      (Hello.world~                  5 05-May-90 14:45:05 PDT) show
      125.4688 357.12 moveto
      font14 setfont
      (-- 6 files, 1051 total bytes) show
      90.3375 338.5536 moveto
      gsave
         font0 setfont
         (Here we're listing the files in the -ux view, and we're also seeing the files that were created under) justify
         grestore
      90.3375 326.5085 moveto
      gsave
         font0 setfont
         (the -vux view \050.~case~Hello.world, hello.world.~1~, and hello.world.~2~\051.  Perhaps the only) justify
         grestore
      90.3375 314.4634 moveto
      gsave
         font0 setfont
         (puzzling file is the .~case~ that precedes the file name Hello.world.  It's there to make the file) justify
         grestore
      90.3375 302.4185 moveto
      font0 setfont
      (name case-insensitive.) show
      125.4688 289.8746 moveto
      125.4688 277.3308 moveto
      font12 setfont
      (%) show
      font14 setfont
      ( push /zippo) show
      125.4688 264.7869 moveto
      font14 setfont
      (/zippo/) show
      125.4688 252.2431 moveto
      font12 setfont
      (%) show
      font14 setfont
      ( ls) show
      125.4688 239.6992 moveto
      font14 setfont
      (Hello.world                  17 05-May-90 14:47:07 PDT) show
      125.4688 227.1554 moveto
      font14 setfont
      (Hello.world!1                 5 05-May-90 14:46:09 PDT) show
      125.4688 214.6116 moveto
      font14 setfont
      (Hello.world!2                11 05-May-90 14:58:21 PDT) show
      125.4688 202.0678 moveto
      font14 setfont
      (Hello.world~                  5 05-May-90 14:45:05 PDT) show
      125.4688 189.524 moveto
      font14 setfont
      (-- 3 files, 27 total bytes) show
      125.4688 176.9802 moveto
      90.3375 158.4138 moveto
      gsave
         font0 setfont
         (It's not clear that you really want to mix your -ux and -vux views of the same directory.  I think it's) justify
         grestore
      90.3375 146.3688 moveto
      font0 setfont
      (best to maintain the separation.) show
      90.3375 121.6138 moveto
      font1 setfont
      (Removing a prefix from the map) show
      110.4125 96.85864 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (Removing a prefix is easy.  Suppose you want to remove the prefix /zippo.  The following) justify
         grestore
      90.3375 84.81366 moveto
      font0 setfont
      (does the trick:) show
      125.4688 72.26985 moveto
      font12 setfont
      (%) show
      font14 setfont
      ( pma /zippo) show
      grestore
   grestore
% end page 20
showpage
%%page 21
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      514.132 746.79 moveto
      (21) show
      125.4688 689.9815 moveto
      font12 setfont
      (%) show
      90.3375 670.4820 moveto
      font0 setfont
      (Note, however, that the prefix is removed only from the map; the filesystem on disk is unaffected.) show
      125.4688 657.0051 moveto
      90.3375 631.0060 moveto
      font12 setfont
      (4.4   Name space) show
      110.4125 605.0066 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (The Cedar name space of interest to most users essentially consists of the aforementioned) justify
         grestore
      90.3375 592.9615 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (Prefix maps that serve as a kind of location-transparent shorthand for file servers.  In this section,) justify
         grestore
      90.3375 580.9167 moveto
      font0 setfont
      (we discuss how the various name spaces are organized.) show
      110.4125 561.4172 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (/Cedar consists of the following major sub-directories:  /Commands, /Top, and all the) justify
         grestore
      90.3375 549.372 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (software packages, from /Abutters to /XTSetter.  The illustration below shows this same) justify
         grestore
      90.3375 537.3272 moveto
      font0 setfont
      (organization. ) show
      114.3915 375.487 moveto
      gsave
         currentpoint translate
         2834.645 dup matrix scale concat
         gsave
            3.527776e-4 dup matrix scale concat
            gsave
               -34.0 -443.3509 matrix translate concat
               gsave
                  font16 setfont
                  0.0 setgray
                  12.0 dup matrix scale 40.0 510.0 matrix translate matrix concatmatrix concat
                  0.0 0.0 moveto
                  (/Commands) show
                  grestore
               gsave
                  font16 setfont
                  0.0 setgray
                  12.0 dup matrix scale 235.2469 507.593 matrix translate matrix concatmatrix concat
                  0.0 0.0 moveto
                  (/Abutters) show
                  grestore
               gsave
                  font16 setfont
                  0.0 setgray
                  12.0 dup matrix scale 235.2469 493.193 matrix translate matrix concatmatrix concat
                  0.0 0.0 moveto
                  (/Adobe) show
                  grestore
               gsave
                  font16 setfont
                  0.0 setgray
                  12.0 dup matrix scale 235.2469 478.793 matrix translate matrix concatmatrix concat
                  0.0 0.0 moveto
                  (/ApproxSymTab) show
                  grestore
               gsave
                  font16 setfont
                  0.0 setgray
                  12.0 dup matrix scale 240.9375 467.593 matrix translate matrix concatmatrix concat
                  0.0 0.0 moveto
                  (. . .) show
                  grestore
               gsave
                  font16 setfont
                  0.0 setgray
                  12.0 dup matrix scale 235.2469 451.593 matrix translate matrix concatmatrix concat
                  0.0 0.0 moveto
                  (/XTSetter) show
                  grestore
               gsave
                  font16 setfont
                  0.0 setgray
                  12.0 dup matrix scale 375.0 510.0 matrix translate matrix concatmatrix concat
                  0.0 0.0 moveto
                  (/Top) show
                  grestore
               0.5 setgray
               eofill
               gsave
                  gsave
                     0.0 0.0 moveto
                     currentpoint translate
                     73.37051 517.556 moveto
                     254.869 517.556 lineto
                     254.869 577.258 lineto
                     73.37051 577.258 lineto
                     clip newpath
                     0.0 setgray
                     1.0 setlinewidth
                     1 setlinecap
                     1 setlinejoin
                     253.369 575.758 74.8705 519.0562 vec
                     grestore
                  grestore
               0.5 setgray
               eofill
               gsave
                  gsave
                     0.0 0.0 moveto
                     currentpoint translate
                     251.869 520.5 moveto
                     255.5 520.5 lineto
                     255.5 577.258 lineto
                     251.869 577.258 lineto
                     clip newpath
                     0.0 setgray
                     1.0 setlinewidth
                     1 setlinecap
                     1 setlinejoin
                     253.369 575.758 254.0 522.0 vec
                     grestore
                  grestore
               0.5 setgray
               eofill
               gsave
                  gsave
                     0.0 0.0 moveto
                     currentpoint translate
                     251.869 517.556 moveto
                     390.756 517.556 lineto
                     390.756 577.258 lineto
                     251.869 577.258 lineto
                     clip newpath
                     0.0 setgray
                     1.0 setlinewidth
                     1 setlinecap
                     1 setlinejoin
                     253.369 575.758 389.2558 519.0562 vec
                     grestore
                  grestore
               gsave
                  font16 setfont
                  0.0 setgray
                  12.0 dup matrix scale 239.0 580.0 matrix translate matrix concatmatrix concat
                  0.0 0.0 moveto
                  (/Cedar) show
                  grestore
               grestore
            grestore
         grestore
      110.4125 355.9875 moveto
      /colwidth 403.545 def
      gsave
         font12 setfont
         opsbef 0 {font12 setfont} put
         (Top) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         (.   This subdirectory contains for each software package the DF file that describes that) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      90.3375 343.9425 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (software package.  For example, for the software package LoganBerry, there is one DF file:) justify
         grestore
      90.3375 331.8974 moveto
      font0 setfont
      (LoganBerry.df.  We defer explanation of DF files to the next section.) show
      110.4125 312.398 moveto
      font12 setfont
      (Commands) show
      font0 setfont
      (.   Discussed in the next section.) show
      110.4125 292.8986 moveto
      /colwidth 403.545 def
      gsave
         font12 setfont
         opsbef 0 {font12 setfont} put
         (Software packages) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         (.  Each package has its own subdirectory in the hierarchy.  Thus XTSetter) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      90.3375 280.8537 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (has /XTSetter and LoganBerry has /LoganBerry.  Each package subdirectory contains the source) justify
         grestore
      90.3375 268.8085 moveto
      gsave
         font0 setfont
         (files \050.mesa, .config\051, symbol table files \050.mob\051, intermediate code files \050.c2c.c\051, and a subdirectory,) justify
         grestore
      90.3375 256.7636 moveto
      gsave
         font0 setfont
         (sun4.  The sun4 directory, contains, as you might expect, all the \050optimized\051 C object files targeted) justify
         grestore
      90.3375 244.7186 moveto
      font0 setfont
      (for the SPARC architecture.) show
      90.3375 218.7193 moveto
      font12 setfont
      (4.5   DF Files ) show
      110.4125 192.72 moveto
      /colwidth 403.545 def
      gsave
         font12 setfont
         opsbef 0 {font12 setfont} put
         (Bringover) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         (.  In the days Before The Change \050that is before Cedar on Unix\051, the Cedar File) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      90.3375 180.675 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (System was organized into a local file system managed by a user's Dorado worksation and a remote) justify
         grestore
      90.3375 168.63 moveto
      gsave
         font0 setfont
         (file system, managed by an IFS file server such as Ivy or Indigo: the file server was the truth!  If a) justify
         grestore
      90.3375 156.585 moveto
      gsave
         font0 setfont
         (user wished to modify a software package, he copied the necessary bits from the file server to his) justify
         grestore
      90.3375 144.54 moveto
      gsave
         font0 setfont
         (local file system, munged with them locally, and then stored them out at the file server, presumably) justify
         grestore
      90.3375 132.4951 moveto
      gsave
         font0 setfont
         (in some consistent state.  Actually, that's an oversimplification, if not an outright lie.  What really) justify
         grestore
      90.3375 120.4501 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (happens is that you create ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (attachments) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( to remote files rather than copying them to the local disk.) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 108.4051 moveto
      gsave
         font0 setfont
         (The local disk is just a cache.  The attached files may then be referenced by their short file names) justify
         grestore
      90.3375 96.36006 moveto
      gsave
         font0 setfont
         (rather than the full path name including the server and directory names.  If attached files were) justify
         grestore
      90.3375 84.31507 moveto
      gsave
         font0 setfont
         (subsequently modified, new versions were automatically created on the local disk.  The remote) justify
         grestore
      90.3375 72.27007 moveto
      gsave
         font0 setfont
         (versions would later be updated to reflect these ``dirty'' files in the cache. The local file system was) justify
         grestore
      grestore
   grestore
% end page 21
showpage
%%page 22
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      514.2037 746.79 moveto
      (22) show
      90.3375 684.9593 moveto
      gsave
         font0 setfont
         (truly distinct from the remote file server although the software did much to make things) justify
         grestore
      90.3375 672.914 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (transparent.  This induced a certain mode of operation called ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (Keeping your bags packed) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (.  If you) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 660.8688 moveto
      gsave
         font0 setfont
         (spent weeks working on modifying some package without putting out intermediate changes to the) justify
         grestore
      90.3375 648.8241 moveto
      gsave
         font0 setfont
         (file server,  you were taking big risks because all manner of nasty things could happen in the) justify
         grestore
      90.3375 636.779 moveto
      gsave
         font0 setfont
         (meantime to destroy the data on the local disk.  Your local copy is indeed only a cached copy of the) justify
         grestore
      90.3375 624.7342 moveto
      font0 setfont
      (data on the file server.  Dorados themselves were never backed up, but IFSs were.) show
      27.36865 0.0 rmoveto
      110.4125 602.9194 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (In the days After The Change,  we now use NFS servers \050and later, even AFS\051 to store our) justify
         grestore
      90.3375 590.8742 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (files, and the distinction between local and remote files goes away; however, I hasten to add that) justify
         grestore
      90.3375 578.8293 moveto
      gsave
         font0 setfont
         (our SPARCstation's do have 200 Megabytes of local disk space, some of which stores Unix itself) justify
         grestore
      90.3375 566.7843 moveto
      gsave
         font0 setfont
         (and some of which is devoted to swap space, but no one seriously uses the local disk.  I note you) justify
         grestore
      90.3375 554.7391 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (can get ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (much) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( better performance if you use it!  Rumor has it that the DF view will provide) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 542.6945 moveto
      gsave
         font0 setfont
         (something equivalent to Dorado Cedar attachments.  One pleasant advantage of NFS is that it) justify
         grestore
      90.3375 530.6494 moveto
      gsave
         font0 setfont
         (allows you to always login to your home directory on an NFS server, whatever machine you) justify
         grestore
      90.3375 518.6044 moveto
      gsave
         font0 setfont
         (happen to be on, and thus share the same file system subtree; however, you pay a cost in) justify
         grestore
      90.3375 506.5594 moveto
      gsave
         font0 setfont
         (performance and in network traffic.  Viewed through versioned PFS, the files making up the latest) justify
         grestore
      90.3375 494.5142 moveto
      gsave
         font0 setfont
         (Cedar release on /Cedar are immutable, that is, you cannot modify a version in place but must) justify
         grestore
      90.3375 482.4694 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (create a new version.  One still copies ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (all) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( these bits, but instead of to your local disk, to some) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 470.4243 moveto
      font0 setfont
      (subdirectory in your file system space.) show
      110.4125 448.6094 moveto
      /colwidth 403.5451 def
      gsave
         font0 setfont
         (The Bringover command retrieves to some subdirectory you've specified the set of files) justify
         grestore
      90.3375 436.5645 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (described by a particular DF suite.  Typically, the DF files specify the Cedar release directory) justify
         grestore
      90.3375 424.5195 moveto
      gsave
         font0 setfont
         (\050/Cedar\051 on which to look for a file, or in some cases, the old Cedar7.0 release \050/Cedar7.0\051.  These) justify
         grestore
      90.3375 412.4746 moveto
      gsave
         font0 setfont
         (directories are just hints, in the sense that Bringover will always verify by checking the create date) justify
         grestore
      90.3375 400.4294 moveto
      gsave
         font0 setfont
         (that it is getting you the correct version of the specified file.  If Bringover can't find the correct) justify
         grestore
      90.3375 388.3844 moveto
      gsave
         font0 setfont
         (version on the specified directory, it will issue a sprightly error message.   Consider our) justify
         grestore
      90.3375 376.3393 moveto
      gsave
         font0 setfont
         (SimpleExample.df file example.  Imagine that you've organized your file system so that) justify
         grestore
      90.3375 364.2944 moveto
      gsave
         font0 setfont
         (development takes place in /tilde/boki/Cedar/Development/ subdirectory.  Try typing the) justify
         grestore
      90.3375 352.2493 moveto
      font0 setfont
      (following to your Commander:) show
      125.4688 336.4572 moveto
      font12 setfont
      (\015) show
      131.4688 324.412 moveto
      font12 setfont
      (% ) show
      font14 setfont
      (mkdir SimpleExample) show
      131.4688 312.3671 moveto
      font12 setfont
      (% ) show
      font14 setfont
      (cd) show
      font12 setfont
      ( ) show
      font14 setfont
      (SimpleExample) show
      font12 setfont
      ( ) show
      131.4688 300.322 moveto
      font14 setfont
      (/tilde/boki/Cedar/Development/SimpleExample/) show
      font12 setfont
      (\015) show
      131.4688 288.2769 moveto
      font12 setfont
      (%) show
      font14 setfont
      ( mkdir sun4) show
      131.4688 276.2319 moveto
      font12 setfont
      (% ) show
      font14 setfont
      (BringOver /Cedar10.1/Top/SimpleExample.df) show
      font12 setfont
      (\015) show
      131.4688 264.1869 moveto
      font14 setfont
      (   ) show
      font1 setfont
      (it types a lot of stuff ...) show
      font12 setfont
      (\015) show
      131.4688 252.142 moveto
      font12 setfont
      (% ) show
      font14 setfont
      (open ReverseName.mesa) show
      131.4688 240.097 moveto
      font12 setfont
      (%) show
      font14 setfont
      ( open Calculate.mesa) show
      125.4688 224.3047 moveto
      110.4125 202.4898 moveto
      /colwidth 403.5451 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (On line 1, we must explicitly make a subdirectory called ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (SimpleExample) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( in the Development) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 190.4449 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (subdirectory we're already in.  Then we change directory to that newly created directory.  Since the) justify
         grestore
      90.3375 178.3999 moveto
      gsave
         font0 setfont
         (Bringover command, in copying the object files, does not create subdirectories sun4 and sun4-o3,) justify
         grestore
      90.3375 166.3548 moveto
      gsave
         font0 setfont
         (you must explicitly do that yourself.  Next, do the bringover.  Finally, open some viewers on the) justify
         grestore
      90.3375 154.3099 moveto
      gsave
         font0 setfont
         (two source files making up SimpleExample.  You're welcome to stare at the Cedar code on your) justify
         grestore
      90.3375 142.2649 moveto
      font0 setfont
      (screen, but we're not here going to explain anything about it.) show
      110.4125 120.4501 moveto
      /colwidth 403.5451 def
      gsave
         font12 setfont
         opsbef 0 {font12 setfont} put
         (Smodel) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         (.  Suppose we modify a local copy of a file described in a DF file; now we want to put) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      90.3375 108.4051 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (the new version back on the Cedar release directory, say, along with a new DF file that describes) justify
         grestore
      90.3375 96.3601 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (the new version.  This is performed by the ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (SModel) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( command \050short for Simple Modelling\051.) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 84.31507 moveto
      gsave
         font0 setfont
         (SModel considers each file described in the DF file, and looks to see if it has been edited it \050that is,) justify
         grestore
      90.3375 72.27007 moveto
      gsave
         font0 setfont
         (it looks to see if the create date of that file in my copy of the file is now different from the create) justify
         grestore
      grestore
   grestore
% end page 22
showpage
%%page 23
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      514.5062 746.79 moveto
      (23) show
      90.3375 684.9593 moveto
      gsave
         font0 setfont
         (date stored in the old DF file\051.  If so, SModel stores the new version onto the /Cedar directory.) justify
         grestore
      90.3375 672.914 moveto
      gsave
         font0 setfont
         (After doing this for each file, SModel writes a new version of the DF file itself, filling in all of the) justify
         grestore
      90.3375 660.8688 moveto
      gsave
         font0 setfont
         (create dates correctly to describe the new version of the entire ensemble.  If the DF file describes) justify
         grestore
      90.3375 648.8241 moveto
      gsave
         font0 setfont
         (itself, as most DF files do, SModel is smart enough to make sure that the new version of the DF) justify
         grestore
      90.3375 636.779 moveto
      gsave
         font0 setfont
         (file is stored out to the /Cedar release directory as well.  SModel also has lots of bells and whistles,) justify
         grestore
      90.3375 624.7342 moveto
      font0 setfont
      (but let's not go into them.) show
      110.4125 602.5512 moveto
      /colwidth 403.5451 def
      gsave
         font12 setfont
         opsbef 0 {font12 setfont} put
         (A real example) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         (. Let's consider a real example.   I've extracted the simplest Cedar program) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      90.3375 590.5063 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (from the Cedar examples usually inflicted on summer interns and permanent hires alike and) justify
         grestore
      90.3375 578.4612 moveto
      gsave
         font0 setfont
         (constructed a DF file that packages them up.  Without showing you the source code for the) justify
         grestore
      90.3375 566.4163 moveto
      gsave
         font0 setfont
         (programs themselves, here's what the various DF files look like \050excluding the Sun4O3 df\051.  It also) justify
         grestore
      90.3375 554.3714 moveto
      font0 setfont
      (includes some comment lines \050each line is preceded by two hypens --\051 provided by Brent.) show
      110.4125 532.1885 moveto
      /colwidth 403.5452 def
      gsave
         font12 setfont
         opsbef 0 {font12 setfont} put
         (SimpleExample.df.  ) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         (The first few comment lines give the name of the DF file, copyright year,) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      90.3375 520.1434 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (and a line for each person who last modified the file.  ``Exports [Cedar10.1]<Top>'' means that the) justify
         grestore
      90.3375 508.0984 moveto
      gsave
         font0 setfont
         (following files are stored in the Cedar Top directory, in this case, ``SimpleExample.df'', followed) justify
         grestore
      90.3375 496.0533 moveto
      gsave
         font0 setfont
         (by the create date ``14-May-92 15:15:34 PDT''; note that  [Cedar10.1]<Top> and /Cedar10.1/Top) justify
         grestore
      90.3375 484.0084 moveto
      font0 setfont
      (are different notations for the same thing; you will see them used interchangeably.  ) show
      110.4125 461.8256 moveto
      /colwidth 403.5451 def
      gsave
         font0 setfont
         (Includes: \050Don't occur in this df file\051``Include'' merely means that the specified file \050usually a) justify
         grestore
      90.3375 449.7804 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (DF file\051 is included in the Suite.  Think of the ``Include'' line as syntactic inclusion, similar to) justify
         grestore
      90.3375 437.7355 moveto
      gsave
         font0 setfont
         (macro-expansion,  in which the DF-suite references other DF files.  Bringover invokes itself) justify
         grestore
      90.3375 425.6904 moveto
      font0 setfont
      (recursively on the included file at the point it encounters the Include statement.  ) show
      105.3938 409.5301 moveto
      111.3938 397.4851 moveto
      font14 setfont
      (-- SimpleExample.df) show
      111.3938 385.44 moveto
      font14 setfont
      (-- Copyright ) show
      /Times-Roman findfont 10.0375 scalefont
      dup length dict begin
         {1 index /FID ne {def} {pop pop} ifelse} forall
         /Encoding ISOLatin1Encoding def currentdict
         end
      /font18 exch definefont pop
      /font18 findfont setfont
      (\251) show
      font14 setfont
      ( 1992 by Xerox Corporation.  All rights reserved.) show
      111.3938 373.395 moveto
      font14 setfont
      (-- DFPort: Christian Jacobi, May 14, 1992 3:01 pm PDT) show
      111.3938 361.35 moveto
      font14 setfont
      (--) show
      111.3938 349.305 moveto
      font14 setfont
      (-- Simple example programs useful for introductions to Cedar only) show
      111.3938 337.26 moveto
      font14 setfont
      (--) show
      111.3938 325.215 moveto
      111.3938 313.17 moveto
      font14 setfont
      (Exports [Cedar10.1]<Top>) show
      111.3938 301.125 moveto
      font14 setfont
      (  SimpleExample.df                             14-May-92 15:15:34 PDT) show
      111.3938 289.08 moveto
      111.3938 277.035 moveto
      font14 setfont
      (Directory [Cedar10.1]<Commands>) show
      111.3938 264.99 moveto
      font14 setfont
      (  Calculate.command!1                          14-May-92 14:11:48 PDT) show
      111.3938 252.945 moveto
      font14 setfont
      (  ReverseName.command!1                        14-May-92 14:11:15 PDT) show
      111.3938 240.9 moveto
      111.3938 228.855 moveto
      font14 setfont
      (Directory [Cedar10.1]<SimpleExample>) show
      111.3938 216.81 moveto
      111.3938 204.765 moveto
      font14 setfont
      (  SimpleExampleDoc.tioga!2                     14-May-92 15:14:55 PDT) show
      111.3938 192.72 moveto
      111.3938 180.675 moveto
      font14 setfont
      (  Calculate.require!1                          02-May-90 12:39:04 PDT) show
      111.3938 168.63 moveto
      font14 setfont
      (  Calculate.mob!1                              14-May-92 15:00:14 PDT) show
      111.3938 156.585 moveto
      font14 setfont
      (  Calculate.mesa!1                             14-May-92 15:00:07 PDT) show
      111.3938 144.54 moveto
      font14 setfont
      (  Calculate.c2c.c!1                            14-May-92 15:00:15 PDT) show
      111.3938 132.4951 moveto
      font14 setfont
      (  +sun4>Calculate.c2c.o!1                       14-May-92 15:00:39 PDT) show
      111.3938 120.45 moveto
      111.3938 108.4051 moveto
      font14 setfont
      (  ReverseName.require!1                        02-May-90 10:24:08 PDT) show
      111.3938 96.36 moveto
      font14 setfont
      (  ReverseName.mob!1                            14-May-92 14:22:28 PDT) show
      111.3938 84.315 moveto
      font14 setfont
      (  ReverseName.mesa!1                           14-May-92 14:22:19 PDT) show
      111.3938 72.26999 moveto
      font14 setfont
      (  ReverseName.c2c.c!1                          14-May-92 14:22:28 PDT) show
      grestore
   grestore
% end page 23
showpage
%%page 24
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      514.0624 746.79 moveto
      (24) show
      111.3938 689.9815 moveto
      font14 setfont
      (  +sun4>ReverseName.c2c.o!1                     14-May-92 14:22:36 PDT) show
      111.3938 677.9366 moveto
      111.3938 665.8916 moveto
      font14 setfont
      (Imports [Cedar10.1]<Top>BasicPackages.df Of ~=) show
      111.3938 653.8465 moveto
      font14 setfont
      (  Using [Commander.mob]) show
      111.3938 641.8015 moveto
      111.3938 629.7568 moveto
      font14 setfont
      (Imports [Cedar10.1]<Top>Basics.df Of ~=) show
      111.3938 617.7115 moveto
      font14 setfont
      (  Using [Process.mob]) show
      111.3938 605.6668 moveto
      111.3938 593.6216 moveto
      font14 setfont
      (Imports [Cedar10.1]<Top>IO.df Of ~=) show
      111.3938 581.5766 moveto
      font14 setfont
      (  Using [IO.mob]) show
      111.3938 569.5316 moveto
      111.3938 557.4865 moveto
      font14 setfont
      (Imports [Cedar10.1]<Top>Rope.df Of ~=) show
      111.3938 545.4418 moveto
      font14 setfont
      (  Using [Rope.mob]) show
      111.3938 533.3969 moveto
      111.3938 521.3519 moveto
      font14 setfont
      (Imports [Cedar10.1]<Top>SystemNames.df Of ~=) show
      111.3938 509.3067 moveto
      font14 setfont
      (  Using [SystemNames.mob]) show
      111.3938 497.2619 moveto
      111.3938 485.2167 moveto
      font14 setfont
      (Imports [Cedar10.1]<Top>ViewerIO.df Of ~=) show
      111.3938 473.1716 moveto
      font14 setfont
      (  Using [ViewerIO.mob]) show
      125.4688 459.7625 moveto
      110.4125 440.3307 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (As you can see, if we only discussed DF files as descriptions of ensembles of files, then mere) justify
         grestore
      90.3375 428.2857 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (mortals could figure out DF files without unduly straining their gray cells.  But there's more.  In) justify
         grestore
      90.3375 416.2408 moveto
      font0 setfont
      (fact, these ensembles are often components of larger ensembles.  It's complicated.) show
      110.4125 396.8088 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (DF files grew up over time in response to several needs.  As they became more popular,) justify
         grestore
      90.3375 384.7639 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (features were added one by one to make them more useful in these varying contexts.  The resulting) justify
         grestore
      90.3375 372.7188 moveto
      gsave
         font0 setfont
         (system as a whole is hard to grok, particularly in PCedar2.0, but we hope that Cedar10.1 is a little) justify
         grestore
      90.3375 360.6739 moveto
      font0 setfont
      (bit simpler again.) show
      90.3375 334.7647 moveto
      font12 setfont
      (4.6   Reading programs) show
      110.4125 308.8557 moveto
      90.3375 282.9468 moveto
      font1 setfont
      (A Sample Program) show
      110.4125 257.0379 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (About the Cedar code you will see, I won't explain syntax or semantics very much.   A tutorial) justify
         grestore
      90.3375 244.9928 moveto
      font0 setfont
      (on Cedar programming is beyond the scope of this primer.  ) show
      110.4125 225.5611 moveto
      gsave
         font0 setfont
         (After the listing of the ReverseName.mesa module, there is a set of notes to help in reading it.) justify
         grestore
      90.3375 213.5161 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (The notes are keyed to the programs by the numbers in parentheses to the ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (right) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( of some lines, e.g.,) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 201.4712 moveto
      gsave
         /Times-BoldItalic findfont 10.0375 scalefont
         /font19 exch def
         font0 setfont
         opsbef 0 {font0 setfont} put
         (as ``) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (--) 1 buf
         opsaft 1 null put
         font19 setfont
         opsbef 2 {font19 setfont} put
         (\050note 3.1\051) 2 buf
         opsaft 2 null put
         font0 setfont
         opsbef 3 {font0 setfont} put
         (''.  You will also find references to lines in the program from the notes, as, e.g., ``) 3 buf
         opsaft 3 null put
         font19 setfont
         opsbef 4 {font19 setfont} put
         ([see) 4 buf
         opsaft 4 null put
         mixedjustify
         grestore
      90.3375 189.4261 moveto
      gsave
         font19 setfont
         opsbef 0 {font19 setfont} put
         (line 1.1]) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         (''.  The corresponding lines in the programs are marked as, e.g., ) 1 buf
         opsaft 1 null put
         font19 setfont
         opsbef 2 {font19 setfont} put
         ([1.1]) 2 buf
         opsaft 2 null put
         font0 setfont
         opsbef 3 {font0 setfont} put
         (.  When Cedar) 3 buf
         opsaft 3 null put
         mixedjustify
         grestore
      90.3375 177.3811 moveto
      gsave
         font0 setfont
         (identifiers appear in the notes, they are displayed in italics to make reading easier; e.g.,) justify
         grestore
      90.3375 165.3361 moveto
      gsave
         font1 setfont
         opsbef 0 {font1 setfont} put
         (ReverseName) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         (, ) 1 buf
         opsaft 1 null put
         font1 setfont
         opsbef 2 {font1 setfont} put
         (CommandProc) 2 buf
         opsaft 2 null put
         font0 setfont
         opsbef 3 {font0 setfont} put
         (.  You should read this example for understanding and use the notes) 3 buf
         opsaft 3 null put
         mixedjustify
         grestore
      90.3375 153.2911 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (as references, rather than the other way around.   Consult the on-line documentation ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (Cedar) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      90.3375 141.2461 moveto
      gsave
         font1 setfont
         opsbef 0 {font1 setfont} put
         (Language Overview) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         ( <57>, which details, somewhat cryptically and hastily, the additional changes) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      90.3375 129.2011 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (that produced Cedar. Finally, see ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (Language Change Summary) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( <58> for the latest word on the) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 117.1561 moveto
      gsave
         font0 setfont
         (subtle changes made to the Cedar language definition intended to foster portability of code from) justify
         grestore
      90.3375 105.1111 moveto
      font0 setfont
      (one target architecture to another. ) show
      110.4125 85.67937 moveto
      105.3938 72.27012 moveto
      font1 setfont
      (ReverseName.mesa) show
      31.79435 0.0 rmoveto
      37.64056 0.0 rmoveto
      37.64056 0.0 rmoveto
      37.64056 0.0 rmoveto
      37.64056 0.0 rmoveto
      37.64056 0.0 rmoveto
      (--) show
      font19 setfont
      (\050note 1.1\051) show
      27.88755 0.0 rmoveto
      grestore
   grestore
% end page 24
showpage
%%page 25
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      514.3934 746.79 moveto
      (25) show
      120.45 684.9593 moveto
      font1 setfont
      (Copyright ) show
      /font2 findfont setfont
      (\251) show
      font1 setfont
      ( 1990 by Xerox Corporation.  All rights reserved.) show
      120.45 672.383 moveto
      font1 setfont
      (Brian Oki, May 7, 1990 8:23 pm PDT) show
      105.3938 659.8068 moveto
      105.3938 647.2308 moveto
      font3 setfont
      (DIRECTORY) show
      120.45 634.6545 moveto
      font14 setfont
      (Commander ) show
      font3 setfont
      (USING) show
      font14 setfont
      ( [CommandProc, Register],) show
      120.45 622.0785 moveto
      font3 setfont
      (IO) show
      font14 setfont
      ( ) show
      font3 setfont
      (USING) show
      font14 setfont
      ( [PutF, rope, ) show
      font3 setfont
      (STREAM) show
      font14 setfont
      (],) show
      120.45 609.5024 moveto
      font14 setfont
      (Rope ) show
      font3 setfont
      (USING) show
      font14 setfont
      ( [Cat, Equal, Fetch, Find, FromChar, Length, ) show
      font3 setfont
      (ROPE) show
      font14 setfont
      (, Substr],) show
      120.45 596.9262 moveto
      font14 setfont
      (UserCredentials ) show
      font3 setfont
      (USING) show
      font14 setfont
      ( [Get];) show
      120.45 584.35 moveto
      105.3938 571.7742 moveto
      font12 setfont
      (ReverseName) show
      font14 setfont
      (: ) show
      font3 setfont
      (CEDAR) show
      font14 setfont
      ( ) show
      font3 setfont
      (PROGRAM) show
      120.45 559.1978 moveto
      font3 setfont
      (IMPORTS) show
      font14 setfont
      (  Commander, ) show
      font3 setfont
      (IO) show
      font14 setfont
      (, Rope, UserCredentials) show
      120.45 546.6216 moveto
      font14 setfont
      (~ ) show
      font3 setfont
      (BEGIN ) show
      36.29867 0.0 rmoveto
      (   --) show
      font19 setfont
      (\050note 1.3\051) show
      135.5063 534.0455 moveto
      120.45 521.4694 moveto
      font3 setfont
      (ROPE) show
      font14 setfont
      (: ) show
      font3 setfont
      (TYPE) show
      font14 setfont
      ( = Rope.) show
      font3 setfont
      (ROPE) show
      font14 setfont
      (;     ) show
      21.8328 0.0 rmoveto
      37.64056 0.0 rmoveto
      37.64056 0.0 rmoveto
      ( ) show
      font1 setfont
      (--) show
      font19 setfont
      (\050note 1.4\051) show
      font14 setfont
      (                      ) show
      font12 setfont
      7.812637 0.0 rmoveto
      120.45 508.8936 moveto
      120.45 496.3175 moveto
      font12 setfont
      (ReverseName) show
      font14 setfont
      (: Commander.CommandProc ~ {) show
      165.6187 484.2723 moveto
      font14 setfont
      (--) show
      font19 setfont
      (\050note 1.5\051) show
      135.5063 471.6962 moveto
      /Times-Italic findfont 8.029999 scalefont
      /font20 exch def
      font20 setfont
      ([cmd: Commander.Handle] RETURNS [result: REF ANY ← NIL, msg: ROPE ← NIL]) show
      150.5625 459.12 moveto
      150.5625 446.5438 moveto
      font1 setfont
      (Reverses the user's login name and prints it out in the CommandTool window.) show
      150.5625 433.9677 moveto
      font14 setfont
      (userName: ) show
      font3 setfont
      (ROPE) show
      font14 setfont
      ( ← UserCredentials.Get[].name;    ) show
      7.569673 0.0 rmoveto
      37.64056 0.0 rmoveto
      ( --) show
      font19 setfont
      (\050note 1.6\051) show
      font14 setfont
      (                       ) show
      150.5625 421.3917 moveto
      font14 setfont
      (out: ) show
      font3 setfont
      (IO) show
      font14 setfont
      (.) show
      font3 setfont
      (STREAM) show
      font14 setfont
      ( ← cmd.out; ) show
      font1 setfont
      (-- cmd is an arg to ReverseName.) show
      font19 setfont
      4.697098 0.0 rmoveto
      150.5625 408.8156 moveto
      font14 setfont
      (backwordsName: ) show
      font3 setfont
      (ROPE) show
      font14 setfont
      ( ← ) show
      font3 setfont
      (NIL) show
      font14 setfont
      (;) show
      150.5625 396.2394 moveto
      font1 setfont
      (Remove anything after the period in user name, e.g., \042.PA\042, and check for the name) show
      156.5625 384.1944 moveto
      font1 setfont
      (Weiser.) show
      150.5625 371.6184 moveto
      font14 setfont
      (dotPos: ) show
      font3 setfont
      (INT) show
      font14 setfont
      ( = userName.Find[\042.\042];     ) show
      21.668 0.0 rmoveto
      37.64056 0.0 rmoveto
      37.64056 0.0 rmoveto
      ( --) show
      font19 setfont
      (\050note 1.7\051) show
      font14 setfont
      (                                  ) show
      150.5625 359.0422 moveto
      font3 setfont
      (IF) show
      font14 setfont
      ( dotPos # -1 ) show
      font3 setfont
      (THEN) show
      165.6187 346.4662 moveto
      font14 setfont
      (userName ← userName.Substr[0, dotPos];) show
      150.5625 333.8901 moveto
      font3 setfont
      (IF) show
      font14 setfont
      ( userName.Equal[s2: \042Weiser\042, case: ) show
      font3 setfont
      (FALSE) show
      font14 setfont
      (] ) show
      font3 setfont
      (THEN) show
      165.6187 321.314 moveto
      font14 setfont
      (out.PutF[\042Hi, Mark!\134n\042];) show
      150.5625 308.7379 moveto
      font1 setfont
      (Now reverse the name and concatenate them in reverse order.) show
      150.5625 296.1618 moveto
      font3 setfont
      (FOR) show
      font14 setfont
      ( i: ) show
      font3 setfont
      (INT) show
      font14 setfont
      ( ) show
      font3 setfont
      (DECREASING) show
      font14 setfont
      ( ) show
      font3 setfont
      (IN) show
      font14 setfont
      ( [0..userName.Length[]\051 ) show
      font3 setfont
      (DO) show
      165.6187 283.5857 moveto
      font14 setfont
      (--) show
      font19 setfont
      ([1.1] \050note 1.8\051) show
      165.6187 271.0095 moveto
      font14 setfont
      (backwordsName ← backwordsName.Cat[Rope.FromChar[userName.Fetch[i]]]) show
      165.6187 258.4334 moveto
      font3 setfont
      (ENDLOOP) show
      font14 setfont
      (;) show
      150.5625 245.8573 moveto
      font14 setfont
      (out.PutF[\042Your user name backwards is: %g.\134n\042, ) show
      font3 setfont
      (IO) show
      font14 setfont
      (.rope[backwordsName]]; --) show
      font19 setfont
      (\050Note) show
      195.7312 233.8123 moveto
      font19 setfont
      (1.9\051) show
      150.5625 221.2362 moveto
      font14 setfont
      (};) show
      150.5625 208.66 moveto
      135.5063 196.084 moveto
      font1 setfont
      (Start code registers a ReverseName command, which must be invoked for this program to) show
      141.5063 184.0389 moveto
      font1 setfont
      (do anything:) show
      135.5063 171.4629 moveto
      135.5063 158.8868 moveto
      font14 setfont
      (--) show
      font19 setfont
      (\050note 1.16\051) show
      135.5063 146.3107 moveto
      font14 setfont
      (Commander.Register[key: \042ReverseName\042, proc: ReverseName, doc: \042Reverses your) show
      180.675 134.2656 moveto
      font14 setfont
      (user name\042];) show
      105.3938 121.6895 moveto
      font3 setfont
      (END) show
      font14 setfont
      (.) show
      90.3375 96.89140 moveto
      font1 setfont
      (Program notes) show
      120.45 72.27026 moveto
      /colwidth 393.5075 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (\0501.1\051) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 10.6766 add def
         opsbef 1 {10.6766 0.0 rmoveto font0 setfont} put
         (These stylized comments give the name of the module, and who last edited it.  See) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      grestore
   grestore
% end page 25
showpage
%%page 26
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      514.2512 746.79 moveto
      (26) show
      150.5625 684.9593 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         (the document CedarProgramStyle.tioga for a list of the stylistic conventions) justify
         grestore
      150.5625 672.914 moveto
      font0 setfont
      (recommended for Cedar programmers.) show
      120.45 658.383 moveto
      /colwidth 393.5075 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (\0501.3\051) 0 buf
         opsaft 0 null put
             font1 setfont
             /totwidth /totwidth try 10.6766 add def
         opsbef 1 {font1 setfont 10.6766 0.0 rmoveto} put
         (ReverseName) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( imports four interfaces, ) 2 buf
         opsaft 2 null put
         font1 setfont
         opsbef 3 {font1 setfont} put
         (Commander, IO) 3 buf
         opsaft 3 null put
         font0 setfont
         opsbef 4 {font0 setfont} put
         (, ) 4 buf
         opsaft 4 null put
         font1 setfont
         opsbef 5 {font1 setfont} put
         (Rope) 5 buf
         opsaft 5 null put
         font0 setfont
         opsbef 6 {font0 setfont} put
         (, ) 6 buf
         opsaft 6 null put
         font1 setfont
         opsbef 7 {font1 setfont} put
         (and UserCredentials) 7 buf
         opsaft 7 null put
         mixedjustify
         grestore
      150.5625 646.3379 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         (because it needs to call procedures defined in those interfaces.  You've seen the) justify
         grestore
      150.5625 634.2926 moveto
      gsave
         font0 setfont
         (Commander's interactive face before.  IO provides abstract STREAM operations,) justify
         grestore
      150.5625 622.2479 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         (and Rope provides immutable string values with lots of operations for creating new) justify
         grestore
      150.5625 610.2029 moveto
      gsave
         font0 setfont
         (ones out of old ones.  The student of Cedar would do well to study Rope.mesa,) justify
         grestore
      150.5625 598.1580 moveto
      font0 setfont
      (RopeImpl.mesa, IO.mesa and IOImpl.mesa.) show
      120.45 583.627 moveto
      /colwidth 393.5077 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (\0501.4\051) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 10.6766 add def
         opsbef 1 {10.6766 0.0 rmoveto font0 setfont} put
         (Since ) 1 buf
         opsaft 1 null put
         font3 setfont
         opsbef 2 {font3 setfont} put
         (ROPE) 2 buf
         opsaft 2 null put
         font0 setfont
         opsbef 3 {font0 setfont} put
         (s are so heavily used in the program, an unqualified version of the type) 3 buf
         opsaft 3 null put
         mixedjustify
         grestore
      150.5625 571.5818 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (name is generated simply by equating it with the type in the ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (Rope) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( interface.  This is a) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 559.5366 moveto
      gsave
         font0 setfont
         (commonly used means for making one or a small set of names from interfaces) justify
         grestore
      150.5625 547.4918 moveto
      font0 setfont
      (available as simple identifiers in a module.) show
      120.45 532.9604 moveto
      /colwidth 393.5077 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (\0501.5\051) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 10.6766 add def
         opsbef 1 {10.6766 0.0 rmoveto font0 setfont} put
         (The argument and returns lists given here as comments show the meanging of the) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      150.5625 520.9155 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (type ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (Commander.CommandProc) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (; they were inserted semi-automatically using) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 508.8706 moveto
      gsave
         font0 setfont
         (Tioga's ``Expand Abbreviation'' command to assist in reading the program.) justify
         grestore
      150.5625 496.8256 moveto
      gsave
         font1 setfont
         opsbef 0 {font1 setfont} put
         (ReverseName) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         ( has this type so that it can be registered with the ) 1 buf
         opsaft 1 null put
         font1 setfont
         opsbef 2 {font1 setfont} put
         (Commander) 2 buf
         opsaft 2 null put
         font0 setfont
         opsbef 3 {font0 setfont} put
         ( as a) 3 buf
         opsaft 3 null put
         mixedjustify
         grestore
      150.5625 484.7804 moveto
      font0 setfont
      (command that a user can invoke by typing a simple identifier \050see note 1.18\051) show
      font1 setfont
      (.) show
      120.45 470.2494 moveto
      font0 setfont
      (\0501.6\051) show
      font1 setfont
      10.6766 0.0 rmoveto
      (UserCredentials.Get) show
      font0 setfont
      ( has the type) show
      155.5812 457.4864 moveto
      font3 setfont
      10.03749 0.0 rmoveto
      (PROC) show
      font14 setfont
      ( ) show
      font3 setfont
      (RETURNS) show
      font14 setfont
      ( [name, password: ) show
      font3 setfont
      (ROPE) show
      font14 setfont
      (]) show
      120.45 442.955 moveto
      /colwidth 393.5077 def
      gsave
         font1 setfont
         opsbef 0 {font1 setfont 30.1125 0.0 rmoveto} put
         (userName) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         ( is initialized to the value of the ``) 1 buf
         opsaft 1 null put
         font1 setfont
         opsbef 2 {font1 setfont} put
         (name) 2 buf
         opsaft 2 null put
         font0 setfont
         opsbef 3 {font0 setfont} put
         ('' return value from) 3 buf
         opsaft 3 null put
         mixedjustify
         grestore
      150.5625 430.9100 moveto
      font1 setfont
      (UserCredentials.Get) show
      font0 setfont
      ( by qualifying the call with ``.) show
      font1 setfont
      (name) show
      font0 setfont
      (''.) show
      120.45 416.3788 moveto
      font0 setfont
      (\0501.7\051) show
      10.6766 0.0 rmoveto
      (The notation) show
      155.5812 403.6157 moveto
      font1 setfont
      10.03749 0.0 rmoveto
      (userName.Find) show
      font14 setfont
      ([\042.\042]) show
      120.45 389.0845 moveto
      /colwidth 393.5075 def
      gsave
         font0 setfont
         30.1125 0.0 rmoveto
         (is interpreted by the compiler as follows: Look in the interface where the type of) justify
         grestore
      150.5625 377.0394 moveto
      /colwidth 363.395 def
      gsave
         font1 setfont
         opsbef 0 {font1 setfont} put
         (userName) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         ( is defined \050) 1 buf
         opsaft 1 null put
         font1 setfont
         opsbef 2 {font1 setfont} put
         (Rope) 2 buf
         opsaft 2 null put
         font0 setfont
         opsbef 3 {font0 setfont} put
         ( in this case\051 and look for the procedure ) 3 buf
         opsaft 3 null put
         font1 setfont
         opsbef 4 {font1 setfont} put
         (Find,) 4 buf
         opsaft 4 null put
         font0 setfont
         opsbef 5 {font0 setfont} put
         ( whose first) 5 buf
         opsaft 5 null put
         mixedjustify
         grestore
      150.5625 364.9946 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (parameter should be a ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (ROPE) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (.  Generate code to call that procedure, inserting) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 352.9495 moveto
      gsave
         font1 setfont
         opsbef 0 {font1 setfont} put
         (userName) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         ( at the head of its argument list.  Thus ) 1 buf
         opsaft 1 null put
         font1 setfont
         opsbef 2 {font1 setfont} put
         (userName.Find) 2 buf
         opsaft 2 null put
         font0 setfont
         opsbef 3 {font0 setfont} put
         ([\042.\042] is an alternate) 3 buf
         opsaft 3 null put
         mixedjustify
         grestore
      150.5625 340.9045 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (way of saying ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (Rope.) 1 buf
         opsaft 1 null put
         opsbef 2 {font1 setfont} put
         (Find) 2 buf
         opsaft 2 null put
         font0 setfont
         opsbef 3 {font0 setfont} put
         ([) 3 buf
         opsaft 3 null put
         font1 setfont
         opsbef 4 {font1 setfont} put
         (userName) 4 buf
         opsaft 4 null put
         font0 setfont
         opsbef 5 {font0 setfont} put
         (, \042.\042].  The ) 5 buf
         opsaft 5 null put
         font1 setfont
         opsbef 6 {font1 setfont} put
         (userName.Find) 6 buf
         opsaft 6 null put
         font0 setfont
         opsbef 7 {font0 setfont} put
         ( form is called ``object-) 7 buf
         opsaft 7 null put
         mixedjustify
         grestore
      150.5625 328.8596 moveto
      font0 setfont
      (style notation'', and the ) show
      font1 setfont
      (Rope.) show
      (Find) show
      font0 setfont
      ( form is called ``procedure-oriented notation''.) show
      120.45 314.3284 moveto
      /colwidth 393.5077 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont 30.1125 0.0 rmoveto} put
         (Note also that ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (dotPos) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( is supposed to be constant over the scope of its declaration, so) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 302.2833 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         (it is initialized with ``='' \050as opposed to ``←''\051 to prevent any subsequent assignment) justify
         grestore
      150.5625 290.2383 moveto
      font0 setfont
      (to it.) show
      120.45 275.707 moveto
      /colwidth 393.5077 def
      gsave
         font0 setfont
         30.1125 0.0 rmoveto
         (This  ``object-style notation'' might be handy for some well known data types.) justify
         grestore
      150.5625 263.6622 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         (However usage of ``object-style notation'' for your own data types makes the) justify
         grestore
      150.5625 251.617 moveto
      font0 setfont
      (program nearly unreadable for casual readers and is strongly discouraged.) show
      120.45 237.086 moveto
      /colwidth 393.5075 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (\0501.8\051) 0 buf
         opsaft 0 null put
             font1 setfont
             /totwidth /totwidth try 10.6766 add def
         opsbef 1 {font1 setfont 10.6766 0.0 rmoveto} put
         (Find) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (, ) 2 buf
         opsaft 2 null put
         font1 setfont
         opsbef 3 {font1 setfont} put
         (Fetch) 3 buf
         opsaft 3 null put
         font0 setfont
         opsbef 4 {font0 setfont} put
         (, ) 4 buf
         opsaft 4 null put
         font1 setfont
         opsbef 5 {font1 setfont} put
         (Equal) 5 buf
         opsaft 5 null put
         font0 setfont
         opsbef 6 {font0 setfont} put
         (, ) 6 buf
         opsaft 6 null put
         font1 setfont
         opsbef 7 {font1 setfont} put
         (Substr) 7 buf
         opsaft 7 null put
         font0 setfont
         opsbef 8 {font0 setfont} put
         (, ) 8 buf
         opsaft 8 null put
         font1 setfont
         opsbef 9 {font1 setfont} put
         (Cat) 9 buf
         opsaft 9 null put
         font0 setfont
         opsbef 10 {font0 setfont} put
         (, and ) 10 buf
         opsaft 10 null put
         font1 setfont
         opsbef 11 {font1 setfont} put
         (FromChar) 11 buf
         opsaft 11 null put
         font0 setfont
         opsbef 12 {font0 setfont} put
         ( are all procedures from the ) 12 buf
         opsaft 12 null put
         font1 setfont
         opsbef 13 {font1 setfont} put
         (Rope) 13 buf
         opsaft 13 null put
         mixedjustify
         grestore
      150.5625 225.0408 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         (interface.  The program uses object-style notation for those calls whose first) justify
         grestore
      150.5625 212.9959 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (argument is a nameable object, e.g., ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (userName) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (, and procedure-oriented notation) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 200.9509 moveto
      gsave
         font0 setfont
         (otherwise.  [line 1.1] is a good example of both.  Here it is again, spread out to exhibit) justify
         grestore
      150.5625 188.9059 moveto
      font0 setfont
      (the two forms:) show
      155.5812 176.1428 moveto
      170.6375 163.3797 moveto
      font14 setfont
      (backwordsName ←) show
      185.6937 150.6167 moveto
      font14 setfont
      (backwordsName.Cat[) show
      20.53561 0.0 rmoveto
      37.64056 0.0 rmoveto
      font1 setfont
      (-- object-style notation) show
      200.75 137.8536 moveto
      font14 setfont
      (Rope.FromChar[) show
      38.88302 0.0 rmoveto
      (         ) show
      font1 setfont
      (-- procedure-oriented notation) show
      215.8062 125.0906 moveto
      font14 setfont
      (userName.Fetch[i]) show
      33.40534 0.0 rmoveto
      (   ) show
      font1 setfont
      (-- object-style notation) show
      215.8062 112.3275 moveto
      font14 setfont
      (]) show
      200.75 99.56446 moveto
      font14 setfont
      (];) show
      200.75 86.80142 moveto
      120.45 72.27020 moveto
      /colwidth 393.5075 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (\0501.9\051) 0 buf
         opsaft 0 null put
             font1 setfont
             /totwidth /totwidth try 10.6766 add def
         opsbef 1 {font1 setfont 10.6766 0.0 rmoveto} put
         (IO.PutF) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( is the standard way of providing formatted output to a stream \050much like) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      grestore
   grestore
% end page 26
showpage
%%page 27
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      514.3934 746.79 moveto
      (27) show
      150.5625 684.9593 moveto
      /colwidth 363.395 def
      gsave
         font3 setfont
         opsbef 0 {font3 setfont} put
         (FORTRAN) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         ( output with ) 1 buf
         opsaft 1 null put
         font3 setfont
         opsbef 2 {font3 setfont} put
         (FORMAT) 2 buf
         opsaft 2 null put
         font0 setfont
         opsbef 3 {font0 setfont} put
         (\051.  Its first argument is an ) 3 buf
         opsaft 3 null put
         font3 setfont
         opsbef 4 {font3 setfont} put
         (IO) 4 buf
         opsaft 4 null put
         opsbef 5 {font3 setfont} put
         (.STREAM) 5 buf
         opsaft 5 null put
         font0 setfont
         opsbef 6 {font0 setfont} put
         (.  The second is a) 6 buf
         opsaft 6 null put
         mixedjustify
         grestore
      150.5625 672.914 moveto
      gsave
         font3 setfont
         opsbef 0 {font3 setfont} put
         (ROPE) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         ( with embedded Fortran-like formatting commands where variables are to be) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      150.5625 660.8688 moveto
      gsave
         font0 setfont
         (output.  The ``%g'' format is the most useful one; it will  handle any sort of variable:) justify
         grestore
      150.5625 648.8241 moveto
      gsave
         font3 setfont
         opsbef 0 {font3 setfont} put
         (INTEGER) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         (, ) 1 buf
         opsaft 1 null put
         font3 setfont
         opsbef 2 {font3 setfont} put
         (CHARACTER) 2 buf
         opsaft 2 null put
         font0 setfont
         opsbef 3 {font0 setfont} put
         (, ) 3 buf
         opsaft 3 null put
         font3 setfont
         opsbef 4 {font3 setfont} put
         (ROPE) 4 buf
         opsaft 4 null put
         font0 setfont
         opsbef 5 {font0 setfont} put
         (, etc., in a general default format.  The third through) 5 buf
         opsaft 5 null put
         mixedjustify
         grestore
      150.5625 636.779 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (last arguments are values to be output, surrounded by calls to inline ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (IO) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( procedures) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 624.7342 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (that tell ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (PutF) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( the type of the argument: ) 2 buf
         opsaft 2 null put
         font1 setfont
         opsbef 3 {font1 setfont} put
         (int) 3 buf
         opsaft 3 null put
         font0 setfont
         opsbef 4 {font0 setfont} put
         ([) 4 buf
         opsaft 4 null put
         font1 setfont
         opsbef 5 {font1 setfont} put
         (answer) 5 buf
         opsaft 5 null put
         font0 setfont
         opsbef 6 {font0 setfont} put
         (], for example.  For details, see the) 6 buf
         opsaft 6 null put
         mixedjustify
         grestore
      150.5625 612.6892 moveto
      font0 setfont
      (description of ) show
      font1 setfont
      (IO) show
      font0 setfont
      ( in IODoc.tioga.) show
      120.45 597.4706 moveto
      /colwidth 393.5075 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (\0501.16\051) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 5.657868 add def
         opsbef 1 {5.657868 0.0 rmoveto font0 setfont} put
         (Here, at the end of the module, is the code that is executed when the module is) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      150.5625 585.4255 moveto
      /colwidth 363.3949 def
      gsave
         font0 setfont
         (started.  You can create an instance of a module and start it using the \042Run\042) justify
         grestore
      150.5625 573.3804 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (command in ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (Commander) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (.  The loader creates instances of programs when loading) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 561.3354 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (configurations.  If a component of a configuration is not ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (START) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (ed explicitly, then it) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 549.2903 moveto
      gsave
         font0 setfont
         (will be started automatically \050as the result of a trap\051 the first time one of its) justify
         grestore
      150.5625 537.2453 moveto
      gsave
         font0 setfont
         (procedures is called.  See the Mesa Language Reference Manual for more) justify
         grestore
      150.5625 525.2004 moveto
      font0 setfont
      (information.) show
      120.45 509.9818 moveto
      /colwidth 393.5075 def
      gsave
         font0 setfont
         30.1125 0.0 rmoveto
         (In this case, the start code for the module consists of one call on the procedure) justify
         grestore
      150.5625 497.9367 moveto
      /colwidth 363.395 def
      gsave
         font1 setfont
         opsbef 0 {font1 setfont} put
         (Commander.Register) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         (, which registers the command ``ReverseName'' with the) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      150.5625 485.8919 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (Commander, so that you can invoke the procedures ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (ReverseName) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (  by typing its) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 473.8467 moveto
      font0 setfont
      (command name.) show
      120.45 458.6279 moveto
      /colwidth 393.5077 def
      gsave
         font0 setfont
         30.1125 0.0 rmoveto
         (These procedure calls also illustrate the ability to specify the association between a) justify
         grestore
      150.5625 446.5828 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         (procedure's formal parameters and the arguments using keyword notation.) justify
         grestore
      150.5625 434.5378 moveto
      gsave
         font0 setfont
         (Generally, keyword notation is preferred over positional for all but simple one- or) justify
         grestore
      150.5625 422.4928 moveto
      gsave
         font0 setfont
         (two-argument calls, and it is definitely better for two-argument calls if the types of) justify
         grestore
      150.5625 410.4477 moveto
      font0 setfont
      (the arguments are the same.  Either) show
      155.5812 396.6533 moveto
      font14 setfont
      10.03749 0.0 rmoveto
      (Copy[to: arg1, from: arg2]) show
      120.45 381.4348 moveto
      font0 setfont
      30.1125 0.0 rmoveto
      (or) show
      155.5812 367.6404 moveto
      font14 setfont
      10.03749 0.0 rmoveto
      (Copy[from: arg2, to: arg1]) show
      120.45 352.4216 moveto
      font1 setfont
      30.1125 0.0 rmoveto
      font0 setfont
      (is preferable to) show
      155.5812 338.6271 moveto
      font14 setfont
      10.03749 0.0 rmoveto
      (Copy[arg1, arg2]) show
      90.3375 312.2045 moveto
      font12 setfont
      (4.7   Creating programs using Tioga) show
      110.4125 285.782 moveto
      110.4125 265.9651 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (This section shows you the rudiments of using Tioga to create Cedar programs, such as the) justify
         grestore
      90.3375 253.9202 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (ones you've seen in the previous section.  In fact, we'll reconstruct the framework of the) justify
         grestore
      90.3375 241.8752 moveto
      font0 setfont
      (ReverseName.mesa Cedar module.) show
      110.4125 222.0582 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (A Cedar module is usually one of three kinds: A definitions module, which contains type) justify
         grestore
      90.3375 210.0133 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (definitions and assorted other things needed by the compiler to type-check uses of the module;  an) justify
         grestore
      90.3375 197.9682 moveto
      gsave
         font0 setfont
         (implementation module, which typically implements some interface, and is said, in CSL parlance) justify
         grestore
      90.3375 185.9234 moveto
      gsave
         font0 setfont
         (to ``export'' that interface; and configuration modules, which bind together object files into one,) justify
         grestore
      90.3375 173.8784 moveto
      gsave
         font0 setfont
         (loadable file.   Not all implementation modules need implement an interface; in fact,) justify
         grestore
      90.3375 161.8333 moveto
      font0 setfont
      (ReverseName.mesa stands alone.) show
      110.4125 142.0164 moveto
      font0 setfont
      (Our module consists of three parts:) show
      120.45 126.7977 moveto
      /colwidth 393.5075 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (1. ) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 20.09845 add def
         opsbef 1 {20.09845 0.0 rmoveto font0 setfont} put
         (Comment consisting of the module name, and the person who last changed the) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      150.5625 114.7527 moveto
      font0 setfont
      (module.) show
      120.45 99.5339 moveto
      /colwidth 393.5077 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (2. ) 0 buf
         opsaft 0 null put
             /totwidth /totwidth try 20.09845 add def
             font3 setfont
         opsbef 1 {20.09845 0.0 rmoveto font3 setfont} put
         (DIRECTORY) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (, which says what other modules are used by this one, and in particular,) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 87.48892 moveto
      font0 setfont
      (states explicitly ) show
      font1 setfont
      (what) show
      font0 setfont
      ( symbols or procedures are used.) show
      120.45 72.27016 moveto
      font0 setfont
      (3.) show
      22.60782 0.0 rmoveto
      (Module name together with ) show
      font3 setfont
      (IMPORTS) show
      font0 setfont
      ( and ) show
      font3 setfont
      (EXPORTS ) show
      font0 setfont
      (clauses.) show
      grestore
   grestore
% end page 27
showpage
%%page 28
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      514.447 746.79 moveto
      (28) show
      90.3375 684.9593 moveto
      font0 setfont
      (To construct a similar format, let's go through the following steps:) show
      120.45 670.5161 moveto
      font0 setfont
      (1.) show
      22.60782 0.0 rmoveto
      (Type the following to your Commander) show
      155.5812 657.8847 moveto
      font12 setfont
      (%) show
      font14 setfont
      (  new ReverseName.mesa) show
      155.5812 645.2543 moveto
      font14 setfont
      (/tilde/boki/InternCzar/SimpleExample/ReverseName.mesa already exists! Use) show
      161.5812 633.209 moveto
      font14 setfont
      (the -d switch to create a new viewer anyway.) show
      155.5812 620.5780 moveto
      font14 setfont
      (Oops!  That name already exists in the current directory, so let's try another name,) show
      161.5812 608.5332 moveto
      font14 setfont
      (say HelloWorld.mesa) show
      155.5812 595.9021 moveto
      font12 setfont
      (%) show
      font14 setfont
      (  new HelloWorld.mesa) show
      155.5812 583.2712 moveto
      font14 setfont
      (Created Viewer: /tilde/boki/InternCzar/SimpleExample/HelloWorld.mesa) show
      120.45 568.8281 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (2.) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 22.60782 add def
         opsbef 1 {22.60782 0.0 rmoveto font0 setfont} put
         (A new, empty viewer should appear on your screen.  Move the mouse cursor into) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      150.5625 556.7832 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (that window.  Type the name ``HelloWorld.mesa''.   ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (MIDDLE) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (-click twice on that) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 544.738 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (name to select the name, and type ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (CTRL) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (-\134 to turn it into a ) 2 buf
         opsaft 2 null put
         font1 setfont
         opsbef 3 {font1 setfont} put
         (comment) 3 buf
         opsaft 3 null put
         font0 setfont
         opsbef 4 {font0 setfont} put
         ( node, in italics.) 4 buf
         opsaft 4 null put
         mixedjustify
         grestore
      150.5625 532.6934 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (Type ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (CTRL) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (-) 2 buf
         opsaft 2 null put
         font3 setfont
         opsbef 3 {font3 setfont} put
         (RETURN) 3 buf
         opsaft 3 null put
         font0 setfont
         opsbef 4 {font0 setfont} put
         ( twice \050to create new nodes\051 and ) 4 buf
         opsaft 4 null put
         font3 setfont
         opsbef 5 {font3 setfont} put
         (CTRL) 5 buf
         opsaft 5 null put
         font0 setfont
         opsbef 6 {font0 setfont} put
         (-) 6 buf
         opsaft 6 null put
         font3 setfont
         opsbef 7 {font3 setfont} put
         (SHIFT) 7 buf
         opsaft 7 null put
         font0 setfont
         opsbef 8 {font0 setfont} put
         (-\134 to undo the) 8 buf
         opsaft 8 null put
         mixedjustify
         grestore
      150.5625 520.6481 moveto
      font0 setfont
      (comment mode.) show
      120.45 506.2051 moveto
      font0 setfont
      (3. ) show
      20.09845 0.0 rmoveto
      (Type ``dir'' \050without\051 italics in the viewer.) show
      120.45 491.7619 moveto
      font0 setfont
      (4.) show
      22.60782 0.0 rmoveto
      (Type ) show
      font3 setfont
      (CTRL) show
      font0 setfont
      (-e.  ``dir'' will be magically replaced with the following:) show
      150.5625 477.3188 moveto
      font3 setfont
      (DIRECTORY) show
      165.6187 464.6879 moveto
      font7 setfont
      gsave
         currentpoint translate
         0.0 setgray
         1.00375 -1.254688 moveto
         1.00375 8.280937 lineto
         6.273437 3.513125 lineto
         fill
         grestore
      7.026246 0.0 rmoveto
      font14 setfont
      (Interface) show
      gsave
         7.026246 0.0 rmoveto
         currentpoint translate
         -1.0 1.0 matrix scale concat
         0.0 setgray
         1.00375 -1.254688 moveto
         1.00375 8.280937 lineto
         6.273437 3.513125 lineto
         fill
         grestore
      7.026246 0.0 rmoveto
      ( ) show
      font3 setfont
      (USING) show
      font14 setfont
      ( [) show
      gsave
         currentpoint translate
         0.0 setgray
         1.00375 -1.254688 moveto
         1.00375 8.280937 lineto
         6.273437 3.513125 lineto
         fill
         grestore
      7.026246 0.0 rmoveto
      (Item) show
      gsave
         7.026246 0.0 rmoveto
         currentpoint translate
         -1.0 1.0 matrix scale concat
         0.0 setgray
         1.00375 -1.254688 moveto
         1.00375 8.280937 lineto
         6.273437 3.513125 lineto
         fill
         grestore
      7.026246 0.0 rmoveto
      (],) show
      165.6187 452.0568 moveto
      font14 setfont
      gsave
         currentpoint translate
         0.0 setgray
         1.00375 -1.254688 moveto
         1.00375 8.280937 lineto
         6.273437 3.513125 lineto
         fill
         grestore
      7.026246 0.0 rmoveto
      (Interface) show
      gsave
         7.026246 0.0 rmoveto
         currentpoint translate
         -1.0 1.0 matrix scale concat
         0.0 setgray
         1.00375 -1.254688 moveto
         1.00375 8.280937 lineto
         6.273437 3.513125 lineto
         fill
         grestore
      7.026246 0.0 rmoveto
      ( ) show
      font3 setfont
      (USING) show
      font14 setfont
      ( [) show
      gsave
         currentpoint translate
         0.0 setgray
         1.00375 -1.254688 moveto
         1.00375 8.280937 lineto
         6.273437 3.513125 lineto
         fill
         grestore
      7.026246 0.0 rmoveto
      (Item) show
      gsave
         7.026246 0.0 rmoveto
         currentpoint translate
         -1.0 1.0 matrix scale concat
         0.0 setgray
         1.00375 -1.254688 moveto
         1.00375 8.280937 lineto
         6.273437 3.513125 lineto
         fill
         grestore
      7.026246 0.0 rmoveto
      (];) show
      140.525 433.4035 moveto
      /colwidth 373.4324 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (This lists the interfaces that this program uses.  ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (CTRL) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (-e is the abbreviation expander) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      120.45 421.3585 moveto
      /colwidth 393.5075 def
      gsave
         font0 setfont
         (command to help making coding and editing Cedar programs much easier.  See) justify
         grestore
      120.45 409.3134 moveto
      font0 setfont
      (/Cedar/EssentialStyles/cedar.abbreviations for a complete list.) show
      120.45 394.8704 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (5.) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 22.60782 add def
         opsbef 1 {22.60782 0.0 rmoveto font0 setfont} put
         (Reposition the mouse cursor to the beginning, and hit the ) 1 buf
         opsaft 1 null put
         font3 setfont
         opsbef 2 {font3 setfont} put
         (NEXT) 2 buf
         opsaft 2 null put
         font0 setfont
         opsbef 3 {font0 setfont} put
         ( key.  Type) 3 buf
         opsaft 3 null put
         mixedjustify
         grestore
      150.5625 382.8252 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (``Commander'', hit the ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (NEXT) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( key again, and type ``CommandProc, Register''.  Hit) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 370.7802 moveto
      gsave
         font3 setfont
         opsbef 0 {font3 setfont} put
         (NEXT) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         ( again and type ``IO''; hit ) 1 buf
         opsaft 1 null put
         font3 setfont
         opsbef 2 {font3 setfont} put
         (NEXT) 2 buf
         opsaft 2 null put
         font0 setfont
         opsbef 3 {font0 setfont} put
         (, and type ``PutRope''.  Delete the semi-colon,) 3 buf
         opsaft 3 null put
         mixedjustify
         grestore
      150.5625 358.7353 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (replace it with a comma, and type ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (CTRL) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (-) 2 buf
         opsaft 2 null put
         font3 setfont
         opsbef 3 {font3 setfont} put
         (RETURN) 3 buf
         opsaft 3 null put
         font0 setfont
         opsbef 4 {font0 setfont} put
         (.  Now type ``Rope USING) 4 buf
         opsaft 4 null put
         mixedjustify
         grestore
      150.5625 346.6902 moveto
      gsave
         font0 setfont
         ([ROPE];'' don't worry that it's not in small capitals; the prettyprinter will take care of) justify
         grestore
      150.5625 334.6452 moveto
      font0 setfont
      (that.) show
      120.45 320.202 moveto
      /colwidth 393.5075 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (6.) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 22.60782 add def
         opsbef 1 {22.60782 0.0 rmoveto font0 setfont} put
         (Type ) 1 buf
         opsaft 1 null put
         font3 setfont
         opsbef 2 {font3 setfont} put
         (CTRL) 2 buf
         opsaft 2 null put
         font0 setfont
         opsbef 3 {font0 setfont} put
         (-) 3 buf
         opsaft 3 null put
         font3 setfont
         opsbef 4 {font3 setfont} put
         (RETURN) 4 buf
         opsaft 4 null put
         font0 setfont
         opsbef 5 {font0 setfont} put
         ( twice to create new nodes, followed by ) 5 buf
         opsaft 5 null put
         font3 setfont
         opsbef 6 {font3 setfont} put
         (CTRL) 6 buf
         opsaft 6 null put
         font0 setfont
         opsbef 7 {font0 setfont} put
         (-) 7 buf
         opsaft 7 null put
         font3 setfont
         opsbef 8 {font3 setfont} put
         (SHIFT) 8 buf
         opsaft 8 null put
         font0 setfont
         opsbef 9 {font0 setfont} put
         (-n to unnest) 9 buf
         opsaft 9 null put
         mixedjustify
         grestore
      150.5625 308.157 moveto
      font0 setfont
      (the node.  Now we're at the top level.) show
      120.45 293.7139 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (7.) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 22.60782 add def
         opsbef 1 {22.60782 0.0 rmoveto font0 setfont} put
         (Type ``prog'' \050without quotes\051 to the viewer, and then type ) 1 buf
         opsaft 1 null put
         font3 setfont
         opsbef 2 {font3 setfont} put
         (CTRL) 2 buf
         opsaft 2 null put
         font0 setfont
         opsbef 3 {font0 setfont} put
         (-e.  It replaces the) 3 buf
         opsaft 3 null put
         mixedjustify
         grestore
      150.5625 281.6688 moveto
      font0 setfont
      (word prog with ) show
      120.45 267.2258 moveto
      135.5063 254.5946 moveto
      font14 setfont
      gsave
         currentpoint translate
         0.0 setgray
         1.00375 -1.254688 moveto
         1.00375 8.280937 lineto
         6.273437 3.513125 lineto
         fill
         grestore
      7.026246 0.0 rmoveto
      font11 setfont
      (Name) show
      font14 setfont
      gsave
         7.026246 0.0 rmoveto
         currentpoint translate
         -1.0 1.0 matrix scale concat
         0.0 setgray
         1.00375 -1.254688 moveto
         1.00375 8.280937 lineto
         6.273437 3.513125 lineto
         fill
         grestore
      7.026246 0.0 rmoveto
      (: ) show
      font3 setfont
      (CEDAR PROGRAM) show
      150.5625 241.9638 moveto
      font3 setfont
      (IMPORTS) show
      font14 setfont
      ( ) show
      gsave
         currentpoint translate
         0.0 setgray
         1.00375 -1.254688 moveto
         1.00375 8.280937 lineto
         6.273437 3.513125 lineto
         fill
         grestore
      7.026246 0.0 rmoveto
      (ImportsList) show
      gsave
         7.026246 0.0 rmoveto
         currentpoint translate
         -1.0 1.0 matrix scale concat
         0.0 setgray
         1.00375 -1.254688 moveto
         1.00375 8.280937 lineto
         6.273437 3.513125 lineto
         fill
         grestore
      7.026246 0.0 rmoveto
      150.5625 229.3328 moveto
      font3 setfont
      (EXPORTS) show
      font14 setfont
      ( ) show
      gsave
         currentpoint translate
         0.0 setgray
         1.00375 -1.254688 moveto
         1.00375 8.280937 lineto
         6.273437 3.513125 lineto
         fill
         grestore
      7.026246 0.0 rmoveto
      (ExportsList) show
      gsave
         7.026246 0.0 rmoveto
         currentpoint translate
         -1.0 1.0 matrix scale concat
         0.0 setgray
         1.00375 -1.254688 moveto
         1.00375 8.280937 lineto
         6.273437 3.513125 lineto
         fill
         grestore
      7.026246 0.0 rmoveto
      135.5063 216.7017 moveto
      font14 setfont
      (~ ) show
      font3 setfont
      (BEGIN) show
      150.5625 204.0708 moveto
      150.5625 191.4399 moveto
      font14 setfont
      gsave
         currentpoint translate
         0.0 setgray
         1.00375 -1.254688 moveto
         1.00375 8.280937 lineto
         6.273437 3.513125 lineto
         fill
         grestore
      7.026246 0.0 rmoveto
      (Body) show
      gsave
         7.026246 0.0 rmoveto
         currentpoint translate
         -1.0 1.0 matrix scale concat
         0.0 setgray
         1.00375 -1.254688 moveto
         1.00375 8.280937 lineto
         6.273437 3.513125 lineto
         fill
         grestore
      7.026246 0.0 rmoveto
      135.5063 178.8089 moveto
      135.5063 166.178 moveto
      font3 setfont
      (END) show
      font14 setfont
      (.) show
      120.45 151.7348 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (8. ) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 20.09845 add def
         opsbef 1 {20.09845 0.0 rmoveto font0 setfont} put
         (Position the mouse just in front of ) 1 buf
         opsaft 1 null put
             /totwidth /totwidth try 7.026246 add def
             font14 setfont
             /totwidth /totwidth try 7.026246 add def
             font0 setfont
         opsbef 2 {
             gsave
                currentpoint translate
                0.0 setgray
                1.00375 -1.254688 moveto
                1.00375 8.280937 lineto
                6.273437 3.513125 lineto
                fill
                grestore
             7.026246 0.0 rmoveto
             font14 setfont
             gsave
                currentpoint translate
                0.0 setgray
                1.00375 -1.254688 moveto
                1.00375 8.280937 lineto
                6.273437 3.513125 lineto
                fill
                grestore
             7.026246 0.0 rmoveto
             font0 setfont} put
         (Name) 2 buf
         opsaft 2 null put
             font14 setfont
             /totwidth /totwidth try 7.026246 add def
                /totwidth /totwidth try 7.026246 add def
             font0 setfont
         opsbef 3 {
             font14 setfont
             gsave
                7.026246 0.0 rmoveto
                currentpoint translate
                -1.0 1.0 matrix scale concat
                0.0 setgray
                1.00375 -1.254688 moveto
                1.00375 8.280937 lineto
                6.273437 3.513125 lineto
                fill
                grestore
             7.026246 0.0 rmoveto
             font0 setfont} put
         ( and type the ) 3 buf
         opsaft 3 null put
         font3 setfont
         opsbef 4 {font3 setfont} put
         (NEXT) 4 buf
         opsaft 4 null put
         font0 setfont
         opsbef 5 {font0 setfont} put
         ( key \050remember key) 5 buf
         opsaft 5 null put
         mixedjustify
         grestore
      150.5625 139.6898 moveto
      font0 setfont
      (R15\051.  Now type ``HelloWorld'' without the quotes.) show
      120.45 125.2467 moveto
      font0 setfont
      (9.) show
      22.60782 0.0 rmoveto
      (Type the ) show
      font3 setfont
      (NEXT ) show
      font0 setfont
      (key again, and type ``Commander, ) show
      font3 setfont
      (IO) show
      font0 setfont
      (''.) show
      120.45 110.8035 moveto
      /colwidth 393.5077 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (10.) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 17.58908 add def
         opsbef 1 {17.58908 0.0 rmoveto font0 setfont} put
         (Delete the ) 1 buf
         opsaft 1 null put
         font3 setfont
         opsbef 2 {font3 setfont} put
         (EXPORTS) 2 buf
         opsaft 2 null put
         font0 setfont
         opsbef 3 {font0 setfont} put
         ( clause since we're not exporting an interface.  Hold down the) 3 buf
         opsaft 3 null put
         mixedjustify
         grestore
      150.5625 98.75852 moveto
      /colwidth 363.395 def
      gsave
         font3 setfont
         opsbef 0 {font3 setfont} put
         (CTRL) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         ( key, position the mouse cursor on the line, and fast double ) 1 buf
         opsaft 1 null put
         font3 setfont
         opsbef 2 {font3 setfont} put
         (MIDDLE) 2 buf
         opsaft 2 null put
         font0 setfont
         opsbef 3 {font0 setfont} put
         (-click to) 3 buf
         opsaft 3 null put
         mixedjustify
         grestore
      150.5625 86.71351 moveto
      font0 setfont
      (delete the line.  Release the ) show
      font3 setfont
      (CTRL) show
      font0 setfont
      ( key.) show
      120.45 72.27039 moveto
      /colwidth 393.5075 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (11.) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 17.58908 add def
         opsbef 1 {17.58908 0.0 rmoveto font0 setfont} put
         (Hit ) 1 buf
         opsaft 1 null put
         font3 setfont
         opsbef 2 {font3 setfont} put
         (NEXT) 2 buf
         opsaft 2 null put
         font0 setfont
         opsbef 3 {font0 setfont} put
         ( and position the cursor at the placeholder labelled ``Body''.  Type ``proc'') 3 buf
         opsaft 3 null put
         mixedjustify
         grestore
      grestore
   grestore
% end page 28
showpage
%%page 29
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      514.2537 746.79 moveto
      (29) show
      150.5625 684.9593 moveto
      font0 setfont
      (and type ) show
      font3 setfont
      (CTRL) show
      font0 setfont
      (-e.  This expands to a procedure skeleton.) show
      120.45 670.3288 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (12.) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 17.58908 add def
         opsbef 1 {17.58908 0.0 rmoveto font0 setfont} put
         (Type ``PrintHelloWorld''.  This is the name of the procedure.  Note that procedure) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      150.5625 658.2838 moveto
      font0 setfont
      (names must start with a capital letter.) show
      120.45 643.6539 moveto
      /colwidth 393.5077 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (13.) 0 buf
         opsaft 0 null put
             /totwidth /totwidth try 17.58908 add def
             font3 setfont
         opsbef 1 {17.58908 0.0 rmoveto font3 setfont} put
         (MIDDLE) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (-click on the word ``) 2 buf
         opsaft 2 null put
         font3 setfont
         opsbef 3 {font3 setfont} put
         (PROC) 3 buf
         opsaft 3 null put
         font0 setfont
         opsbef 4 {font0 setfont} put
         (''.  Then ) 4 buf
         opsaft 4 null put
         font3 setfont
         opsbef 5 {font3 setfont} put
         (RIGHT) 5 buf
         opsaft 5 null put
         font0 setfont
         opsbef 6 {font0 setfont} put
         (-click, which turns the selected stuff) 6 buf
         opsaft 6 null put
         mixedjustify
         grestore
      150.5625 631.6087 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (to reverse video; drag the mouse until you reach the ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (RETURNS) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( clause's right square) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 619.564 moveto
      /colwidth 328.3433 def
      gsave
         font0 setfont
         (bracket: ].  This mode is called pending delete.  Now type) justify
         grestore
      150.5625 607.519 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         (``Commander.CommandProc''.  This references the interface contained in the) justify
         grestore
      150.5625 595.4739 moveto
      font0 setfont
      (Commander module, in particular, CommandProc.) show
      120.45 580.8438 moveto
      /colwidth 393.5075 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (14.) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 17.58908 add def
         opsbef 1 {17.58908 0.0 rmoveto font0 setfont} put
         (Hit ) 1 buf
         opsaft 1 null put
         font3 setfont
         opsbef 2 {font3 setfont} put
         (NEXT) 2 buf
         opsaft 2 null put
         font0 setfont
         opsbef 3 {font0 setfont} put
         (, which takes you to the body of the procedure.  Type the following two) 3 buf
         opsaft 3 null put
         mixedjustify
         grestore
      150.5625 568.7988 moveto
      font0 setfont
      (lines:) show
      120.45 554.1688 moveto
      135.5063 541.2575 moveto
      font3 setfont
      (ROPE) show
      font14 setfont
      (: ) show
      font3 setfont
      (TYPE) show
      font14 setfont
      ( = Rope.) show
      font3 setfont
      (ROPE) show
      font14 setfont
      (;     ) show
      font12 setfont
      21.8328 0.0 rmoveto
      135.5063 528.3460 moveto
      font3 setfont
      (IO) show
      font14 setfont
      (.PutRope[cmd.out, \042Hello world!\134n\042];) show
      135.5063 515.4348 moveto
      120.45 500.8046 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (15.) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 17.58908 add def
         opsbef 1 {17.58908 0.0 rmoveto font0 setfont} put
         (A curly bracket ``}'' delimits a procedure definition.  Position your cursor after the) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      150.5625 488.7594 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (statement separator semi-colon.  Type ) 0 buf
         opsaft 0 null put
         font3 setfont
         opsbef 1 {font3 setfont} put
         (CTRL) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (-) 2 buf
         opsaft 2 null put
         font3 setfont
         opsbef 3 {font3 setfont} put
         (RETURN) 3 buf
         opsaft 3 null put
         font0 setfont
         opsbef 4 {font0 setfont} put
         ( twice, followed by ) 4 buf
         opsaft 4 null put
         font3 setfont
         opsbef 5 {font3 setfont} put
         (CTRL) 5 buf
         opsaft 5 null put
         font0 setfont
         opsbef 6 {font0 setfont} put
         (-) 6 buf
         opsaft 6 null put
         font3 setfont
         opsbef 7 {font3 setfont} put
         (SHIFT) 7 buf
         opsaft 7 null put
         font0 setfont
         opsbef 8 {font0 setfont} put
         (-) 8 buf
         opsaft 8 null put
         mixedjustify
         grestore
      150.5625 476.7146 moveto
      font0 setfont
      (n to unnest the node to the same level as the procedure definition.) show
      120.45 462.0845 moveto
      font0 setfont
      (16.) show
      17.58908 0.0 rmoveto
      (Finally, type the line) show
      150.5625 447.4546 moveto
      135.5063 434.5429 moveto
      font14 setfont
      (Commander.Register[key: \042PrintHelloWorld\042, proc: PrintHelloWorld, doc: \042Prints) show
      180.675 422.498 moveto
      font14 setfont
      (Hello world\042];) show
      120.45 407.868 moveto
      /colwidth 393.5075 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (17.) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 17.58908 add def
         opsbef 1 {17.58908 0.0 rmoveto font0 setfont} put
         (Type ) 1 buf
         opsaft 1 null put
         font3 setfont
         opsbef 2 {font3 setfont} put
         (CTRL) 2 buf
         opsaft 2 null put
         font0 setfont
         opsbef 3 {font0 setfont} put
         (-d.  This selects the contents of the viewer.  Now type ) 3 buf
         opsaft 3 null put
         font3 setfont
         opsbef 4 {font3 setfont} put
         (CTRL) 4 buf
         opsaft 4 null put
         font0 setfont
         opsbef 5 {font0 setfont} put
         (-m, which) 5 buf
         opsaft 5 null put
         mixedjustify
         grestore
      150.5625 395.8228 moveto
      font0 setfont
      (invokes the prettyprinter to format Cedar code. ) show
      120.45 381.1928 moveto
      /colwidth 393.5077 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (18.) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 17.58908 add def
         opsbef 1 {17.58908 0.0 rmoveto font0 setfont} put
         (Click on the ) 1 buf
         opsaft 1 null put
         font7 setfont
         opsbef 2 {
             font7 setfont
             currentpoint /undery exch def /underx exch def} put
         (Save) 2 buf
         opsaft 2 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery 1.2 sub dup underx exch
             vec moveto} put
         font0 setfont
         opsbef 3 {font0 setfont} put
         ( button.  Notice that your name will appear \050as a nested node\051 just) 3 buf
         opsaft 3 null put
         mixedjustify
         grestore
      150.5625 369.1478 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         (below the commented file name.  You are marked as the last person to modify this) justify
         grestore
      150.5625 357.1028 moveto
      font0 setfont
      (file.) show
      150.5625 342.4727 moveto
      110.4125 323.5387 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (You have now constructed a legitimate program in Cedar.  You may not understand all the) justify
         grestore
      90.3375 311.4937 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (details of the syntax and semantics of the language constructs, but at least you've used Tioga to) justify
         grestore
      90.3375 299.4487 moveto
      gsave
         font0 setfont
         (construct the program.  Try running MakeDo to compile the program; you might even try running) justify
         grestore
      90.3375 287.4037 moveto
      font0 setfont
      (it.  Good luck!) show
      110.4125 268.4697 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (The Cedar programming community follows established programming conventions. They) justify
         grestore
      90.3375 256.4247 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (cannot be hard and fast rules, and there can be good and compelling reasons for not following) justify
         grestore
      90.3375 244.3797 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (some convention in a particular instance.  Nevertheless, to the extent that we all ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (usually) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( follow) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 232.3348 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (them, it will help us in reading \050and therefore in modifying\051 one anothers' programs.  See ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (Stylizing) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      90.3375 220.2898 moveto
      font1 setfont
      (Cedar Programs) show
      font0 setfont
      ( <77>.  Here are some of the rules.) show
      120.45 205.6597 moveto
      font0 setfont
      (a.) show
      22.91563 0.0 rmoveto
      (Capitalize the first letter of a name.) show
      120.45 191.0296 moveto
      font0 setfont
      (b.) show
      21.96876 0.0 rmoveto
      (Capitalize the first letter of each embedded word.) show
      120.45 176.3995 moveto
      font0 setfont
      (c.) show
      23.22344 0.0 rmoveto
      (Case shift should be used to distinguish identifiers.) show
      120.45 161.7694 moveto
      font0 setfont
      (d.) show
      21.96876 0.0 rmoveto
      (All module source file names have the extension ``.mesa'') show
      120.45 147.1393 moveto
      font0 setfont
      (e.) show
      22.91563 0.0 rmoveto
      (A ) show
      font3 setfont
      (DEFINITIONS) show
      font0 setfont
      ( source file does not need any standard suffix on its name.) show
      120.45 132.5092 moveto
      font0 setfont
      (f.) show
      24.17033 0.0 rmoveto
      (A ) show
      font3 setfont
      (PROGRAM) show
      font0 setfont
      ( or ) show
      font3 setfont
      (MONITOR) show
      font0 setfont
      ( moduel name should have the suffix ``Impl''.) show
      120.45 117.8791 moveto
      font0 setfont
      (g.) show
      22.60782 0.0 rmoveto
      (A ) show
      font3 setfont
      (CONFIGURATION) show
      font0 setfont
      ( file name should have the extension ``.config'') show
      120.45 103.249 moveto
      110.4125 84.31516 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (Prettyprinting Cedar programs.  This depends on proper capitalization of keywords \050all) justify
         grestore
      90.3375 72.27012 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (capitals\051, procedure names \050begin with capital\051, and variables \050lower case\051. The following) justify
         grestore
      grestore
   grestore
% end page 29
showpage
%%page 30
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      514.125 746.79 moveto
      (30) show
      90.3375 684.9593 moveto
      font0 setfont
      (operations help you to achieve this:) show
      120.45 669.9068 moveto
      font3 setfont
      (CTRL) show
      font0 setfont
      (-) show
      font3 setfont
      (SHIFT) show
      font0 setfont
      (-c) show
      32.06388 0.0 rmoveto
      (all capitals) show
      120.45 654.8543 moveto
      font3 setfont
      (CTRL) show
      font0 setfont
      (-c) show
      30.03024 0.0 rmoveto
      30.1125 0.0 rmoveto
      (all lower case) show
      120.45 639.8017 moveto
      font3 setfont
      (CTRL) show
      font0 setfont
      (-c-c ) show
      19.66153 0.0 rmoveto
      30.1125 0.0 rmoveto
      (capitalize just the first character) show
      120.45 624.7492 moveto
      90.3375 574.5692 moveto
      font11 setfont
      (5.  Additional Documentation ) show
      90.3375 547.9796 moveto
      font12 setfont
      (5.1   Cedar Documentation) show
      110.4125 521.8896 moveto
      font0 setfont
      (To view these documents, type Openr ) show
      font1 setfont
      (name ) show
      font0 setfont
      (to your commander.) show
      110.4125 502.322 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (CedarProgramStyle.tioga:  Discusses the conventions that have been generally agreed upon by) justify
         grestore
      90.3375 490.2771 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (the Cedar programming community and are approximations to current practice.  Consequently,) justify
         grestore
      90.3375 478.2321 moveto
      gsave
         font0 setfont
         (they cannot be hard and fast rules, and there can be good and compelling reasons for not following) justify
         grestore
      90.3375 466.1872 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (some convention in a particular instance.  Nevertheless, to the extent that we all ) 0 buf
         opsaft 0 null put
         font1 setfont
         opsbef 1 {font1 setfont} put
         (usually) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         ( follow) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      90.3375 454.1420 moveto
      font0 setfont
      (them, it will help us in reading \050and therefore in modifying\051 one anothers' programs.) show
      110.4125 434.5744 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (MimosaDoc.tioga: Mimosa is a reworked version of the ancient Cedar/Mesa compiler.  The) justify
         grestore
      90.3375 422.5296 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (intention is to eventually arrive at a compiler base that can have multiple targets.  The current) justify
         grestore
      90.3375 410.4846 moveto
      gsave
         font0 setfont
         (target is restricted to 32-bit words, byte addressing, big-endian bit and byte order \050bit/byte 0 is) justify
         grestore
      90.3375 398.4396 moveto
      gsave
         font0 setfont
         (most significant within a word\051, and code generation for the C language \050specifically for Sun-3 and) justify
         grestore
      90.3375 386.3946 moveto
      font0 setfont
      (Sun-4\051.) show
      110.4125 366.8272 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (ExperiencesCreatingAPortableCedar) 0 buf
         opsaft 0 null put
         font7 setfont
         opsbef 1 {font7 setfont} put
         (.) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (tioga) 2 buf
         opsaft 2 null put
         opsbef 3 {font0 setfont} put
         (:  It discusses how Cedar was re-implemented to) 3 buf
         opsaft 3 null put
         mixedjustify
         grestore
      90.3375 354.782 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (make it portable across many different architectures, in particular, the strategy for the compiler and) justify
         grestore
      90.3375 342.7372 moveto
      gsave
         font0 setfont
         (runtime, and the manner of making connections to other languages and the UNIX operating) justify
         grestore
      90.3375 330.6921 moveto
      font0 setfont
      (system.) show
      110.4125 311.1246 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (PFSDoc.tioga: Preliminary documentation.  Mostly details the latest news. It describes the) justify
         grestore
      90.3375 299.0796 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (standard facilities available for file access from Cedar.  These facilities are available through the) justify
         grestore
      90.3375 287.0346 moveto
      font0 setfont
      (interfaces PFS and PFSNames.  PFS and PFSNames contain facilities of interest to all users.  ) show
      110.4125 267.4672 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (CirioDoc.tioga: Cirio is a debugger intended to support the debugging of systems written in) justify
         grestore
      90.3375 255.4222 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (multiple programming languages and running on multiple target machines.  Currently Cirio) justify
         grestore
      90.3375 243.3772 moveto
      gsave
         font0 setfont
         (understands the Cedar and C programming languages and understands about programs run on D-) justify
         grestore
      90.3375 231.3322 moveto
      gsave
         font0 setfont
         (machines or in PCR-based systems.  The current version is still very much a prototype, with much) justify
         grestore
      90.3375 219.2872 moveto
      font0 setfont
      (of its functionality missing.) show
      110.4125 199.7198 moveto
      /colwidth 403.545 def
      gsave
         font0 setfont
         (RawViewersDoc.tioga: The RawViewersImpl module starts up Viewers using just the low) justify
         grestore
      90.3375 187.6748 moveto
      font0 setfont
      (level Sun drivers for the keyboard, mouse, and frame buffers.  Useful if you do not wish to use X.) show
      110.4125 168.1074 moveto
      font0 setfont
      (X11ViewersDoc.tioga: Analogous to RawViewersDoc for X11Viewers.) show
      110.4125 148.5399 moveto
      font0 setfont
      (UserProfileDoc.tioga:  Tells you how to customize system behavior using the User Profile.  ) show
      90.3375 98.36 moveto
      font11 setfont
      (References) show
      110.4125 72.27012 moveto
      grestore
   grestore
% end page 30
showpage
%%page 31
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      514.132 746.79 moveto
      (31) show
      110.4125 684.9593 moveto
      gsave
         font0 setfont
         (Reference numbers in [square brackets] are for conventional hardcopy documents.  Many of) justify
         grestore
      90.3375 672.914 moveto
      /colwidth 423.62 def
      gsave
         font0 setfont
         (them are Xerox reports published in blue and white covers; the CSL blue-and-whites are available) justify
         grestore
      90.3375 660.8688 moveto
      gsave
         font0 setfont
         (on bookshelves in the CSL Alcove.  Reference numbers in <angle brackets> are for on-line) justify
         grestore
      90.3375 648.8241 moveto
      font0 setfont
      (documents.  If they are included on the CDROM you can open them with \042openr filename\042.) show
      110.4125 623.9041 moveto
      120.45 605.2833 moveto
      font0 setfont
      (<) show
      font1 setfont
      (n) show
      font0 setfont
      (>:) show
      11.19744 0.0 rmoveto
      (The generic form for a reference to an on-line document.) show
      120.45 590.678 moveto
      font0 setfont
      ([) show
      font1 setfont
      (n) show
      font0 setfont
      (]:) show
      15.58937 0.0 rmoveto
      (The generic form for a reference to a hardcopy document.) show
      120.45 576.0723 moveto
      120.45 561.4668 moveto
      /colwidth 393.5075 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         ([1]:) 0 buf
         opsaft 0 null put
             /totwidth /totwidth try 15.99199 add def
             font12 setfont
         opsbef 1 {15.99199 0.0 rmoveto font12 setfont} put
         (Sunset New Western Garden Book.) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (  Lane Publishing Company, Menlo Park, CA,) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 549.4217 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         (1979.  The definitive document on Western gardening for non-botanists; 1200 plant) justify
         grestore
      150.5625 537.3769 moveto
      gsave
         font0 setfont
         (identification drawings; comprehensive Western plant encyclopedia; zoned for all) justify
         grestore
      150.5625 525.3316 moveto
      font0 setfont
      (Western climates; plant selection guide in color. ) show
      120.45 510.726 moveto
      /colwidth 393.5075 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         ([2]:) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 15.99199 add def
         opsbef 1 {15.99199 0.0 rmoveto font0 setfont} put
         (Warnock, John E.   ) 1 buf
         opsaft 1 null put
         font12 setfont
         opsbef 2 {font12 setfont} put
         (The Display of Characters Using Gray Level Sample Arrays) 2 buf
         opsaft 2 null put
         font0 setfont
         opsbef 3 {font0 setfont} put
         (.) 3 buf
         opsaft 3 null put
         mixedjustify
         grestore
      150.5625 498.6809 moveto
      font0 setfont
      (blue-and-white report CSL-80-6.) show
      120.45 484.0755 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         ([3]:) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 15.99199 add def
         opsbef 1 {15.99199 0.0 rmoveto font0 setfont} put
         (Lyon, Richard F.  ) 1 buf
         opsaft 1 null put
         font12 setfont
         opsbef 2 {font12 setfont} put
         (The Optical Mouse, and an Architectural Methodology for Smart) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 472.0303 moveto
      font12 setfont
      (Digital Sensors) show
      font0 setfont
      (.  blue-and-white report VLSI-81-1.) show
      120.45 457.4246 moveto
      font0 setfont
      ([4]:) show
      15.99199 0.0 rmoveto
      font12 setfont
      (The Ethernet Local Network: Three Reports) show
      font0 setfont
      (.  blue-and-white report CSL-80-2.) show
      120.45 442.819 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         ([5]:) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 15.99199 add def
         opsbef 1 {15.99199 0.0 rmoveto font0 setfont} put
         (Shoch, John F., Yogen K. Dalal, Ronald C. Crane, and David D. Redell.  ) 1 buf
         opsaft 1 null put
         font12 setfont
         opsbef 2 {font12 setfont} put
         (Evolution) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 430.774 moveto
      font12 setfont
      (of the Ethernet Local Computer Network) show
      font0 setfont
      (.  blue-and-white report OPD-T8102.) show
      120.45 416.1684 moveto
      font0 setfont
      (<6>:) show
      11.60005 0.0 rmoveto
      font1 setfont
      (no reference) show
      font0 setfont
      (.) show
      120.45 401.5628 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         ([7]:) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 15.99199 add def
         opsbef 1 {15.99199 0.0 rmoveto font0 setfont} put
         (Boggs, David R., John F. Shoch, Edward A. Taft, and Robert M. Metcalfe.  ) 1 buf
         opsaft 1 null put
         font12 setfont
         opsbef 2 {font12 setfont} put
         (Pup: An) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 389.5178 moveto
      font12 setfont
      (Internetwork Architecture) show
      font0 setfont
      (.  blue-and-white report CSL-79-10.) show
      120.45 374.912 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         ([8]:) 0 buf
         opsaft 0 null put
             /totwidth /totwidth try 15.99199 add def
             font12 setfont
         opsbef 1 {15.99199 0.0 rmoveto font12 setfont} put
         (Internet Transport Protocols) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (.  Xerox System Integration Standard report XSIS) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 362.867 moveto
      font0 setfont
      (028112, December 1981.) show
      120.45 348.2614 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         ([9]:) 0 buf
         opsaft 0 null put
             /totwidth /totwidth try 15.99199 add def
             font12 setfont
         opsbef 1 {15.99199 0.0 rmoveto font12 setfont} put
         (Courier: The Remote Procedure Call Protocol) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (.  Xerox System Integration Standard) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 336.2164 moveto
      font0 setfont
      (report XSIS 038112, December 1981.) show
      120.45 321.6107 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         ([10]:) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 10.97325 add def
         opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
         ( Thacker, Charles P., Edward M. McCreight, Butler. W. Lampson, Robert F.) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      150.5625 309.5658 moveto
      /colwidth 363.3949 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (Sproull, and David R. Boggs.  ) 0 buf
         opsaft 0 null put
         font12 setfont
         opsbef 1 {font12 setfont} put
         (Alto: A personal computer) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (.  blue-and-white report) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 297.5206 moveto
      font0 setfont
      (CSL-79-11.) show
      120.45 282.915 moveto
      /colwidth 393.5075 def
      gsave
         font0 setfont
         (<11>: [Indigo]<AltoDocs>AltoHardware.press.  Everything that you need to know to write) justify
         grestore
      150.5625 270.8701 moveto
      font0 setfont
      (your own Alto microcode.) show
      120.45 256.2644 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         ([12]:) 0 buf
         opsaft 0 null put
             /totwidth /totwidth try 10.97325 add def
             font12 setfont
         opsbef 1 {10.97325 0.0 rmoveto font12 setfont} put
         (The Dorado: A High-Performance Personal Computer; Three Papers.) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (  blue-and-) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 244.2194 moveto
      font0 setfont
      (white report CSL-81-1.) show
      120.45 229.6136 moveto
      gsave
         font0 setfont
         currentpoint /undery exch def /underx exch def
         (<13>: [Indigo]<DoradoDocs>DoradoBooting.press.  Describes how to boot a Dorado, and) justify
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery -2.3 sub dup underx exch
             vec moveto
         grestore
      150.5625 217.5686 moveto
      font0 setfont
      currentpoint /undery exch def /underx exch def
      (how to configure it to boot in various ways.) show
      1.0 setlinewidth
      currentpoint currentpoint pop
      undery -2.3 sub dup underx exch
      vec moveto
      120.45 202.963 moveto
      /colwidth 393.5077 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         ([14]:) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 10.97325 add def
         opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
         (Myer, T. H. and Barnaby, J. R.  ) 1 buf
         opsaft 1 null put
         font12 setfont
         opsbef 2 {font12 setfont} put
         (TENEX Executive Language Manual for Users.) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 190.918 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         (Available from Arpa Network Information Center as NIC 16874, but in the) justify
         grestore
      150.5625 178.873 moveto
      font0 setfont
      (relatively unlikely event that you need one, borrow one from a Tenex wizard.) show
      120.45 164.2673 moveto
      /colwidth 393.5075 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (<15>: ) 0 buf
         opsaft 0 null put
         opsbef 1 {
             currentpoint /undery exch def /underx exch def
             font0 setfont} put
         ([Indigo]<AltoDocs>BCPL.press) 1 buf
         opsaft 1 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery -2.3 sub dup underx exch
             vec moveto} put
         opsbef 2 {font0 setfont} put
         (  The reference manual for the BCPL programming) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 152.2224 moveto
      font0 setfont
      (language.) show
      120.45 137.6167 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (<16>: ) 0 buf
         opsaft 0 null put
         opsbef 1 {
             currentpoint /undery exch def /underx exch def
             font0 setfont} put
         ([Indigo]<AltoDocs>OS.press) 1 buf
         opsaft 1 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery -2.3 sub dup underx exch
             vec moveto} put
         opsbef 2 {font0 setfont} put
         (.  The programmer's reference manual for the Alto) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 125.5716 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         (Operating System,  including detailed information on the services provided and the) justify
         grestore
      150.5625 113.5266 moveto
      font0 setfont
      (interface requirements.) show
      120.45 98.921 moveto
      /colwidth 393.5075 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (<17>: ) 0 buf
         opsaft 0 null put
         opsbef 1 {
             currentpoint /undery exch def /underx exch def
             font0 setfont} put
         ([Indigo]<AltoDocs>Packages.press) 1 buf
         opsaft 1 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery -2.3 sub dup underx exch
             vec moveto} put
         opsbef 2 {font0 setfont} put
         (.  A catalogue giving documentation for the various) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 86.87597 moveto
      font0 setfont
      (BCPL packages that other hacker's have made available.) show
      120.45 72.27031 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         ([18]:) 0 buf
         opsaft 0 null put
             /totwidth /totwidth try 10.97325 add def
             font12 setfont
         opsbef 1 {10.97325 0.0 rmoveto font12 setfont} put
         (Mesa Language Manual, Version 11.0) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (,  March 1984.  Published by the Systems) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      grestore
   grestore
% end page 31
showpage
%%page 32
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      514.2037 746.79 moveto
      (32) show
      150.5625 684.9593 moveto
      font0 setfont
      (Development Department of ) show
      font12 setfont
      (OSD) show
      font0 setfont
      (.) show
      120.45 669.9697 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         ([19]:) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 10.97325 add def
         opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
         (James G. Mitchell, William Maybury, and Richard Sweet.  ) 1 buf
         opsaft 1 null put
         font12 setfont
         opsbef 2 {font12 setfont} put
         (Mesa Language Manual,) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 657.9245 moveto
      /colwidth 363.395 def
      gsave
         font12 setfont
         opsbef 0 {font12 setfont} put
         (Version 5.0.) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         (  blue-and-white report CSL-79-3.  A cross between a tutorial and a) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      150.5625 645.8797 moveto
      font0 setfont
      (reference manual, though much closer to the latter than the former.) show
      120.45 630.8904 moveto
      /colwidth 393.5075 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         ([20]:) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 10.97325 add def
         opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
         (Morris, J. H.  ) 1 buf
         opsaft 1 null put
         font12 setfont
         opsbef 2 {font12 setfont} put
         (The Elements of Mesa Style.) 2 buf
         opsaft 2 null put
         font0 setfont
         opsbef 3 {font0 setfont} put
         (  Xerox PARC Internal Report, June) 3 buf
         opsaft 3 null put
         mixedjustify
         grestore
      150.5625 618.8453 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         (1976.  Somewhat out of date \050since Mesa has changed under it\051, but a readable) justify
         grestore
      150.5625 606.8004 moveto
      font0 setfont
      (introduction to some useful program structuring techniques in Mesa.) show
      120.45 591.8111 moveto
      /colwidth 393.5075 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         ([21]:) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 10.97325 add def
         opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
         (Goldberg, Adele and David Robson.  ) 1 buf
         opsaft 1 null put
         font12 setfont
         opsbef 2 {font12 setfont} put
         (Smalltalk-80: The Language and Its) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 579.766 moveto
      font12 setfont
      (Implementation) show
      font0 setfont
      (.  book published by Addison-Wesley, 1983. ) show
      120.45 564.7768 moveto
      /colwidth 393.5077 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         ([22]:) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 10.97325 add def
         opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
         ( ) 1 buf
         opsaft 1 null put
         font12 setfont
         opsbef 2 {font12 setfont} put
         (Interlisp Reference Manual) 2 buf
         opsaft 2 null put
         font0 setfont
         opsbef 3 {font0 setfont} put
         (.  Published in a blue and white cover, although not) 3 buf
         opsaft 3 null put
         mixedjustify
         grestore
      150.5625 552.7316 moveto
      font0 setfont
      (officially a blue-and-white.  October, 1983.) show
      120.45 537.7425 moveto
      /colwidth 393.5075 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         ([23]:) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 10.97325 add def
         opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
         (The Interlisp-D Group.  ) 1 buf
         opsaft 1 null put
         font12 setfont
         opsbef 2 {font12 setfont} put
         (Papers on Interlisp-D) 2 buf
         opsaft 2 null put
         font0 setfont
         opsbef 3 {font0 setfont} put
         (.  blue-and-white report CIS-5 \050also) 3 buf
         opsaft 3 null put
         mixedjustify
         grestore
      150.5625 525.6976 moveto
      font0 setfont
      (given the number SSL-80-4\051, Revised version, July 1981.) show
      120.45 510.7084 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         ([24]:) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 10.97325 add def
         opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
         (Deutsch, L. Peter, and Edward A. Taft, editors.  ) 1 buf
         opsaft 1 null put
         font12 setfont
         opsbef 2 {font12 setfont} put
         (Requirements for an Experimental) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 498.6631 moveto
      font12 setfont
      (Programming Environment) show
      font0 setfont
      (.  blue-and-white report CSL-80-10.) show
      120.45 483.6739 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (<25>: ) 0 buf
         opsaft 0 null put
         opsbef 1 {
             currentpoint /undery exch def /underx exch def
             font0 setfont} put
         ([CedarChest7.0]<Top>Documentation.df) 1 buf
         opsaft 1 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery -2.3 sub dup underx exch
             vec moveto} put
         opsbef 2 {font0 setfont} put
         (.  Hardcopies are entitled ) 2 buf
         opsaft 2 null put
         font12 setfont
         opsbef 3 {font12 setfont} put
         (The Cedar) 3 buf
         opsaft 3 null put
         mixedjustify
         grestore
      150.5625 471.6289 moveto
      font12 setfont
      (Manual) show
      font0 setfont
      (.) show
      120.45 456.6396 moveto
      /colwidth 393.5077 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         ([26]:) 0 buf
         opsaft 0 null put
             /totwidth /totwidth try 10.97325 add def
             font12 setfont
         opsbef 1 {10.97325 0.0 rmoveto font12 setfont} put
         (Alto User's Handbook) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (.  Internal report, published in a black cover.  The version of) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 444.5946 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         (September, 1979 is identical to the version of November, 1978 except for the date on) justify
         grestore
      150.5625 432.5494 moveto
      gsave
         font0 setfont
         (the cover and title page.  Includes sections on Bravo, Laurel, FTP, Draw, Markup,) justify
         grestore
      150.5625 420.5045 moveto
      font0 setfont
      (and Neptune) show
      120.45 405.5152 moveto
      /colwidth 386.8824 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (<27>: ) 0 buf
         opsaft 0 null put
         opsbef 1 {
             currentpoint /undery exch def /underx exch def
             font0 setfont} put
         ([Indigo]<AltoDocs>SubSystems.press) 1 buf
         opsaft 1 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery -2.3 sub dup underx exch
             vec moveto} put
         opsbef 2 {font0 setfont} put
         (.  Documentation on individual Alto) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 393.4701 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         (subsystems, collected in a single file.  Individual systems are documented on) justify
         grestore
      150.5625 381.4252 moveto
      gsave
         font0 setfont
         ([Indigo]<AltoDocs>systemname.TTY, and these files are sometimes more recent) justify
         grestore
      150.5625 369.38 moveto
      font0 setfont
      (than SubSystems.press.) show
      120.45 354.3908 moveto
      /colwidth 393.5075 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         ([28]:) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 10.97325 add def
         opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
         (Jerome, Suzan.  ) 1 buf
         opsaft 1 null put
         font12 setfont
         opsbef 2 {font12 setfont} put
         (Bravo Course Outline.) 2 buf
         opsaft 2 null put
         font0 setfont
         opsbef 3 {font0 setfont} put
         (  Internal report, published in a red cover.) 3 buf
         opsaft 3 null put
         mixedjustify
         grestore
      150.5625 342.3458 moveto
      font0 setfont
      (Oriented to non-programmers.) show
      120.45 327.3564 moveto
      font0 setfont
      (<29>: ) show
      font12 setfont
      (The Tioga editor) show
      font0 setfont
      (.  [Cedar10.1]<Tioga>TiogaDoc.tioga.  ) show
      120.45 312.3671 moveto
      font0 setfont
      currentpoint /undery exch def /underx exch def
      (<30>: [Indigo]<PrintingDocs>PressFormat.press.  Describes the Press print file format.) show
      1.0 setlinewidth
      currentpoint currentpoint pop
      undery -2.3 sub dup underx exch
      vec moveto
      120.45 297.3778 moveto
      font0 setfont
      currentpoint /undery exch def /underx exch def
      (<31>: [Indigo]<PrintingDocs>PressOps.press.  Describes the Press printing program.) show
      1.0 setlinewidth
      currentpoint currentpoint pop
      undery -2.3 sub dup underx exch
      vec moveto
      120.45 282.3885 moveto
      font0 setfont
      currentpoint /undery exch def /underx exch def
      (<32>: [Indigo]<PrintingDocs>PDPrintOps.press.  Describes the PDPrint printing program.) show
      1.0 setlinewidth
      currentpoint currentpoint pop
      undery -2.3 sub dup underx exch
      vec moveto
      120.45 267.3992 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         ([33]:) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 10.97325 add def
         opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
         (Birrell, Andrew D., Roy Levin, Roger M. Needham, and Michael D. Schroeder.) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      150.5625 255.3542 moveto
      font12 setfont
      (Grapevine: Two Papers and a Report.) show
      font0 setfont
      (  blue-and-white report CSL-83-12.) show
      120.45 240.3648 moveto
      gsave
         font0 setfont
         currentpoint /undery exch def /underx exch def
         (<34>: [Ivy]<Laurel>Maintain.press.  Documentation for the teletype version of Maintain,) justify
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery -2.3 sub dup underx exch
             vec moveto
         grestore
      150.5625 228.3199 moveto
      font0 setfont
      currentpoint /undery exch def /underx exch def
      (the version that is used from within Laurel or Tajo.) show
      1.0 setlinewidth
      currentpoint currentpoint pop
      undery -2.3 sub dup underx exch
      vec moveto
      120.45 213.3305 moveto
      font0 setfont
      ([35]:) show
      10.97325 0.0 rmoveto
      (Brotz, Douglas K.  ) show
      font12 setfont
      (The Laurel Manual.) show
      font0 setfont
      (  blue-and-white report CSL-81-6.) show
      120.45 198.3412 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         ([36]:) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 10.97325 add def
         opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
         (Schimidt, Eric Emerson.  ) 1 buf
         opsaft 1 null put
         font12 setfont
         opsbef 2 {font12 setfont} put
         (Controlling Large Software Development in a Distributed) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 186.2962 moveto
      font12 setfont
      (Environment.) show
      font0 setfont
      (  blue-and-white report CSL-82-7.) show
      120.45 171.3069 moveto
      font0 setfont
      (<37>: [Cedar10.1]<DF>DFDoc.tioga.  The reference manual for the use of DF files.) show
      120.45 156.3175 moveto
      font0 setfont
      currentpoint /undery exch def /underx exch def
      (<38>: [CedarChest7.0]<Documentation>CSL-NotebookDoc.tioga) show
      1.0 setlinewidth
      currentpoint currentpoint pop
      undery -2.3 sub dup underx exch
      vec moveto
      150.5625 141.3282 moveto
      font1 setfont
      currentpoint /undery exch def /underx exch def
      (also stored as ) show
      1.0 setlinewidth
      currentpoint currentpoint pop
      undery -2.3 sub dup underx exch
      vec moveto
      font0 setfont
      currentpoint /undery exch def /underx exch def
      ([Indigo]<CSL-Notebook>Docs>CSL-NotebookDoc.tioga) show
      1.0 setlinewidth
      currentpoint currentpoint pop
      undery -2.3 sub dup underx exch
      vec moveto
      120.45 126.3388 moveto
      font0 setfont
      currentpoint /undery exch def /underx exch def
      (<39>: [CedarChest7.0]<Documentation>HowToUseAPublicCedarMachine.tioga. ) show
      1.0 setlinewidth
      currentpoint currentpoint pop
      undery -2.3 sub dup underx exch
      vec moveto
      120.45 111.3495 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         ([40]:) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 10.97325 add def
         opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
         (  Teitelman, Warren. ) 1 buf
         opsaft 1 null put
         font12 setfont
         opsbef 2 {font12 setfont} put
         (The Cedar Programming Environment: A Midterm Report and) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 99.30454 moveto
      font12 setfont
      (Examination.) show
      font0 setfont
      (  blue-and-white report CSL-83-11.) show
      120.45 84.31521 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         ([41]:) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 10.97325 add def
         opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
         (Brown, Mark R., Karen Kolling, and Edward A. Taft.  ) 1 buf
         opsaft 1 null put
         font12 setfont
         opsbef 2 {font12 setfont} put
         (The Alpine File System.) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 72.2702 moveto
      font0 setfont
      (blue-and-white report CSL-84-4.) show
      grestore
   grestore
% end page 32
showpage
%%page 33
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      514.5062 746.79 moveto
      (33) show
      120.45 684.9593 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         ([<42>]:  Swinehart, Daniel, Polle Zellweger, Rick Beach, Robert Hagmann. ) 0 buf
         opsaft 0 null put
         font12 setfont
         opsbef 1 {font12 setfont} put
         (A Structural) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      150.5625 672.914 moveto
      font12 setfont
      (View of the Cedar Programming Environment.) show
      font0 setfont
      (  blue-and-white report CSL-86-1.) show
      150.5625 658.4324 moveto
      font1 setfont
      (available online as) show
      font0 setfont
      ( [CedarChest7.0]<Documentation>StructureOfCedar.tioga.) show
      120.45 643.9508 moveto
      font0 setfont
      (<43>:  Hagmann, Robert B.  ) show
      font12 setfont
      (A Labelless File System For Cedar.) show
      150.5625 629.4687 moveto
      font0 setfont
      currentpoint /undery exch def /underx exch def
      ([Indigo]<CSL-Notebook>Docs>86CSLN-0047.press) show
      1.0 setlinewidth
      currentpoint currentpoint pop
      undery -2.3 sub dup underx exch
      vec moveto
      120.45 614.9872 moveto
      font0 setfont
      (<44>:  Arnon, Dennis, and Carl Waldspurger. ) show
      font12 setfont
      (CaminoReal.) show
      150.5625 600.5056 moveto
      font0 setfont
      ([CedarChest7.0]<Documentation>CaminoRealDoc.tioga. ) show
      120.45 586.0238 moveto
      font0 setfont
      ([45]:) show
      10.97325 0.0 rmoveto
      (  Bier, Eric and Ken Pier. ) show
      font12 setfont
      (The Gargoyle Reference Manual.) show
      150.5625 571.5424 moveto
      font0 setfont
      ([CedarChest7.0]<Documentation>GargoyleDoc.tioga. ) show
      120.45 557.0605 moveto
      font0 setfont
      (<46>: Bier, Eric and Ken Pier. ) show
      font12 setfont
      (Gargoyle Tutorial.) show
      150.5625 542.5789 moveto
      font0 setfont
      ([CedarChest7.0]<Documentation>GargoyleTutorialDoc.tioga. ) show
      120.45 528.0972 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         ([47]:) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 10.97325 add def
         opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
         ( Ades, Stephen, and Daniel Swinehart. ) 1 buf
         opsaft 1 null put
         font12 setfont
         opsbef 2 {font12 setfont} put
         (Voice Annotation and Editing in a) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 516.052 moveto
      font12 setfont
      (Workstation Environment.) show
      font0 setfont
      ( blue-and-white report CSL-86-3.) show
      120.45 501.5704 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         ([48]:) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 10.97325 add def
         opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
         ( Donahue, James, and Willie-Sue Orr. ) 1 buf
         opsaft 1 null put
         font12 setfont
         opsbef 2 {font12 setfont} put
         (Walnut: Storing Electronic Mail in a) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 489.5254 moveto
      font12 setfont
      (Database.) show
      font0 setfont
      ( blue-and-white report CSL-85-9.) show
      120.45 475.0438 moveto
      font0 setfont
      (<49>:   Kent, Jack, and Doug Terry. ) show
      font12 setfont
      (Wallaby.) show
      150.5625 460.562 moveto
      font0 setfont
      ([CedarChest7.0]<Documentation>WallabyDoc.tioga. ) show
      120.45 446.0804 moveto
      font0 setfont
      (<50>:  Frailong, Jean-Marc.  ) show
      font12 setfont
      (XTSetter.) show
      150.5625 431.5986 moveto
      font0 setfont
      ([Cedar10.1]<XTSetter>XTSetterDoc.tioga. ) show
      120.45 417.1169 moveto
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         ([51]:) 0 buf
         opsaft 0 null put
         /totwidth /totwidth try 10.97325 add def
         opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
         (  Bhushan, Abbay, and Michael Plass. ) 1 buf
         opsaft 1 null put
         font12 setfont
         opsbef 2 {font12 setfont} put
         (The Interpress Page and Document) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 405.072 moveto
      font12 setfont
      (Description Language.) show
      font0 setfont
      ( IEEE Computer, Vol 19, Number 6, June 1986, pp. 72-77.) show
      120.45 390.5901 moveto
      gsave
         font0 setfont
         ([<52>]: Atkinson, Russ, Alan Demers, Carl Hauser, Christian Jacobi, Peter Kessler, and) justify
         grestore
      150.5625 378.5454 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (Mark Weiser.  ) 0 buf
         opsaft 0 null put
         font12 setfont
         opsbef 1 {font12 setfont} put
         (Experiences Creating a Portable Cedar) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (.  Proceedings of the) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 366.5002 moveto
      gsave
         font0 setfont
         (SIGPLAN '89 conference on Programming Language Design and Implmentation,) justify
         grestore
      150.5625 354.4553 moveto
      font0 setfont
      (held in Portland, Oregon, June 21-23, 1989, pp. 322-329.   ) show
      150.5625 339.9735 moveto
      /colwidth 92.08938 def
      gsave
         font1 setfont
         (available online as) justify
         grestore
      180.675 327.9286 moveto
      font0 setfont
      ([PCedar2.0]<Documentation>ExperiencesCreatingAPortableCedar) show
      font7 setfont
      (.) show
      font0 setfont
      (tioga) show
      120.45 313.4468 moveto
      font0 setfont
      (<53>: Hauser, Carl.  ) show
      font12 setfont
      (PFS.) show
      font0 setfont
      (  [Cedar10.1]<PFS>PFSDoc.tioga) show
      120.45 298.9651 moveto
      /colwidth 393.5075 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (<54>: Sturgis, Howard, and Marvin Theimer.  ) 0 buf
         opsaft 0 null put
         font12 setfont
         opsbef 1 {font12 setfont} put
         (The Cirio Debugger: a multi-language, multi-) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      150.5625 286.9201 moveto
      font12 setfont
      (target-world debugger.) show
      font0 setfont
      (  [PCedar2.0]<Documentation>CirioDoc.tioga) show
      120.45 272.4384 moveto
      /colwidth 351.0816 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (<55>:  Pier, Ken.  ) 0 buf
         opsaft 0 null put
         font12 setfont
         opsbef 1 {font12 setfont} put
         (Life On SPARCstation) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (.  Available on-line as) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 260.3934 moveto
      font0 setfont
      ([Cedar10.1]<CedarDoc>LifeOnSPARCstation.tioga) show
      120.45 245.9118 moveto
      /colwidth 381.1357 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (<56>:  Pelegri-Llopart, Eduardo.  ) 0 buf
         opsaft 0 null put
         font12 setfont
         opsbef 1 {font12 setfont} put
         (Life in PCedar) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (.  Available on-line as) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 233.8668 moveto
      font0 setfont
      ([PCedar2.0]<OldDocumentation>LifeInPCedar.tioga) show
      120.45 219.385 moveto
      font0 setfont
      (<57>:  ) show
      font12 setfont
      (Cedar Language Overview) show
      font0 setfont
      (.    [Cedar10.1]<CedarDoc>LanguageOverviewDoc.tioga) show
      120.45 204.9034 moveto
      /colwidth 198.8525 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (<58>:  ) 0 buf
         opsaft 0 null put
         font12 setfont
         opsbef 1 {font12 setfont} put
         (Cedar/Mesa Language Changes) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (.) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 192.8584 moveto
      font0 setfont
      ([Cedar10.1]<MimosaOnly>LanguageChangesSummary.tioga) show
      120.45 178.3766 moveto
      /colwidth 393.5075 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (<59>: Johnson, Sharon, and John Larson.  ) 0 buf
         opsaft 0 null put
         font12 setfont
         opsbef 1 {font12 setfont} put
         (Hitchhikers Guide to External Mail:  Using the) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      150.5625 166.3316 moveto
      /colwidth 190.4389 def
      gsave
         font12 setfont
         opsbef 0 {font12 setfont} put
         (PARC ARPA Internet Mail Gateway) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         (.) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      150.5625 154.2867 moveto
      font0 setfont
      ([CedarChest7.0]<Documentation>ExternalMail.tioga) show
      120.45 139.805 moveto
      font0 setfont
      (<60>:  ) show
      font12 setfont
      (Peanut) show
      font0 setfont
      (.    [PCedar2.0]<Documentation>PeanutDoc.tioga) show
      120.45 125.3233 moveto
      font0 setfont
      (<61>:  ) show
      font12 setfont
      (BlackCherry) show
      font0 setfont
      (.    [PCedar2.0]<Documentation>BlackCherryDoc.tioga) show
      120.45 110.8416 moveto
      /colwidth 372.6442 def
      gsave
         font0 setfont
         opsbef 0 {
             font0 setfont
             currentpoint /undery exch def /underx exch def} put
         (<62>:  Tammer, Laine.  ) 0 buf
         opsaft 0 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery -2.3 sub dup underx exch
             vec moveto} put
         font12 setfont
         opsbef 1 {
             font12 setfont
             currentpoint /undery exch def /underx exch def} put
         (Doggy-Paddling in PCedar) 1 buf
         opsaft 1 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery -2.3 sub dup underx exch
             vec moveto} put
         font0 setfont
         opsbef 2 {
             font0 setfont
             currentpoint /undery exch def /underx exch def} put
         (.    /Indigo/CSL-) 2 buf
         opsaft 2 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery -2.3 sub dup underx exch
             vec moveto} put
         mixedjustify
         grestore
      150.5625 98.7966 moveto
      font0 setfont
      currentpoint /undery exch def /underx exch def
      (Notebook/Entries/90CSLN-0003/IntroPCedarUse.tioga) show
      1.0 setlinewidth
      currentpoint currentpoint pop
      undery -2.3 sub dup underx exch
      vec moveto
      120.45 84.31496 moveto
      /colwidth 370.165 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (<63>:  Tammer, Laine.  ) 0 buf
         opsaft 0 null put
         font12 setfont
         opsbef 1 {font12 setfont} put
         (Tioga Editing in PCedar) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (.    /Indigo/CSL-) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 72.26993 moveto
      font0 setfont
      (Notebook/Entries/90CSLN-0003/TiogaEditingInPCedar.tioga) show
      grestore
   grestore
% end page 33
showpage
%%page 34
gsave
   2834.646 2834.646 scale
   gsave
      0.0254 dup matrix scale concat
      0.013837 dup matrix scale concat
      282.1476 38.135 moveto
      font3 setfont
      (CEDAR 10.1  ) show
      font0 setfont
      514.0624 746.79 moveto
      (34) show
      120.45 684.9593 moveto
      /colwidth 354.1319 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (<64>:  Tammer, Laine.  ) 0 buf
         opsaft 0 null put
         font12 setfont
         opsbef 1 {font12 setfont} put
         (Using the Commander) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (.    /Indigo/CSL-) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 672.914 moveto
      font0 setfont
      (Notebook/Entries/90CSLN-0003/UsingTheCommander.tioga) show
      120.45 658.6269 moveto
      font0 setfont
      (<65>:  ) show
      font12 setfont
      (Introduction to Cedar) show
      font0 setfont
      (.    /CedarChest7.0/Documentation/Introduction.tioga) show
      120.45 644.3396 moveto
      /colwidth 331.6267 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (<66>:  Jacobi, Christian) 0 buf
         opsaft 0 null put
         font12 setfont
         opsbef 1 {font12 setfont} put
         (.  The X Window System Version 11) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (.) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 632.2948 moveto
      font0 setfont
      (/Cedar10.1/X11/X11Doc.tioga and /Cedar10.1/X11Viewers/X11ViewersDoc.tioga) show
      120.45 618.0076 moveto
      font0 setfont
      (<67>:  ) show
      font12 setfont
      ( Cedar Document Style) show
      font0 setfont
      (.    /CedarChest7.0/Documentation/SampleSheet.tioga) show
      120.45 603.7203 moveto
      /colwidth 365.8182 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (<68>: Plass, Michael, et al. ) 0 buf
         opsaft 0 null put
         font12 setfont
         opsbef 1 {font12 setfont} put
         ( RawViewers: PCedar Viewers without X) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (.) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 591.6754 moveto
      font0 setfont
      (/Cedar10.1/RawViewers/RawViewersDoc.tioga) show
      120.45 577.388 moveto
      font0 setfont
      (<69>: Atkinson, Russ, et al. ) show
      font12 setfont
      ( PCRDOC: Portable Common Runtime) show
      font0 setfont
      (.    ) show
      120.45 563.1011 moveto
      /colwidth 241.2686 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (<70>: Plass, Michael. ) 0 buf
         opsaft 0 null put
         font12 setfont
         opsbef 1 {font12 setfont} put
         ( The Cedar Commander) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (.) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 551.0561 moveto
      font0 setfont
      (/Cedar10.1/Commander/CommanderDoc.tioga) show
      120.45 536.7688 moveto
      /colwidth 393.5075 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         ([71]: ) 0 buf
         opsaft 0 null put
         font12 setfont
         opsbef 1 {font12 setfont} put
         ( ) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (Weiser, Mark, Alan Demers, and Carl Hauser.  ) 2 buf
         opsaft 2 null put
         font12 setfont
         opsbef 3 {font12 setfont} put
         (The Portable Common Runtime) 3 buf
         opsaft 3 null put
         mixedjustify
         grestore
      150.5625 524.7238 moveto
      /colwidth 363.395 def
      gsave
         font12 setfont
         opsbef 0 {font12 setfont} put
         (Approach to Interoperability) 0 buf
         opsaft 0 null put
         font0 setfont
         opsbef 1 {font0 setfont} put
         (.  Proceedings of the 12th ACM Symposium on) 1 buf
         opsaft 1 null put
         mixedjustify
         grestore
      150.5625 512.6788 moveto
      /colwidth 363.395 def
      gsave
         font0 setfont
         (Operating Systems Principles, pp. 114-122.  Special issue of SIGOPS Operating) justify
         grestore
      150.5625 500.6338 moveto
      font0 setfont
      (Systems Review, volume 23, number 5.) show
      120.45 486.3467 moveto
      /colwidth 369.2985 def
      gsave
         font0 setfont
         opsbef 0 {
             font0 setfont
             currentpoint /undery exch def /underx exch def} put
         (<72>: Pelegri-Llopart, Eduardo, and Ken Pier. ) 0 buf
         opsaft 0 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery -2.3 sub dup underx exch
             vec moveto} put
         font12 setfont
         opsbef 1 {
             font12 setfont
             currentpoint /undery exch def /underx exch def} put
         ( DF Suites in PCedar) 1 buf
         opsaft 1 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery -2.3 sub dup underx exch
             vec moveto} put
         font0 setfont
         opsbef 2 {
             font0 setfont
             currentpoint /undery exch def /underx exch def} put
         (.) 2 buf
         opsaft 2 {
             1.0 setlinewidth
             currentpoint currentpoint pop
             undery -2.3 sub dup underx exch
             vec moveto} put
         mixedjustify
         grestore
      150.5625 474.3019 moveto
      font0 setfont
      currentpoint /undery exch def /underx exch def
      (/PCedar2.0/Documentation/DFSuitesDoc.tioga) show
      1.0 setlinewidth
      currentpoint currentpoint pop
      undery -2.3 sub dup underx exch
      vec moveto
      120.45 460.0147 moveto
      /colwidth 337.8231 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (<73>: ) 0 buf
         opsaft 0 null put
         font12 setfont
         opsbef 1 {font12 setfont} put
         ( A Glossary of Terms, Subsystems, Directories, and Files) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (.) 2 buf
         opsaft 2 null put
         mixedjustify
         grestore
      150.5625 447.9697 moveto
      font0 setfont
      (/Cedar7.0/Documentation/Glossary.tioga) show
      120.45 433.6825 moveto
      font0 setfont
      (<74>: ) show
      font12 setfont
      ( ) show
      font0 setfont
      (Irish, Wesley.) show
      font12 setfont
      ( Maintain) show
      font0 setfont
      (.    /Cedar10.1/Maintain/MaintainDoc.tioga) show
      120.45 419.3954 moveto
      font0 setfont
      (<75>: ) show
      font12 setfont
      ( ) show
      font0 setfont
      (Spreitzer, Mike.) show
      font12 setfont
      ( MakeDo) show
      font0 setfont
      (.    /Cedar10.1/MakeDo/MakeDoDoc.tioga) show
      120.45 405.1081 moveto
      /colwidth 209.0071 def
      gsave
         font0 setfont
         opsbef 0 {font0 setfont} put
         (<76>: ) 0 buf
         opsaft 0 null put
         font12 setfont
         opsbef 1 {font12 setfont} put
         ( ) 1 buf
         opsaft 1 null put
         font0 setfont
         opsbef 2 {font0 setfont} put
         (Nichols, David.) 2 buf
         opsaft 2 null put
         font12 setfont
         opsbef 3 {font12 setfont} put
         ( Cedar Essentials) 3 buf
         opsaft 3 null put
         font0 setfont
         opsbef 4 {font0 setfont} put
         (.) 4 buf
         opsaft 4 null put
         mixedjustify
         grestore
      150.5625 393.0632 moveto
      font0 setfont
      (/PCedar2.0/Documentation/CedarEssentials.tioga) show
      120.45 378.7759 moveto
      font0 setfont
      (<77>: ) show
      font12 setfont
      (  Stylizing Cedar Programs) show
      font0 setfont
      (.    /Cedar10.1/CedarDoc/CedarProgramStyle.tioga) show
      120.45 364.4889 moveto
      grestore
   grestore
% end page 34
showpage

%%Trailer
%%Pages: 34