;skip 1 ;vsp 5 ;vsp 33 ;squish ;lftmar 0 ;topmar 0 ;botmar 0 ;kset BOLIO;FONT1 KST,BOLIO;FONT1 KST,BOLIO;FONT2 KST,BOLIO;FONT3 KST,BOLIO;37VRBL KST,BOLIO;30FLSP KST "" SHADOW's Documentation Y1 ,How to use the Window System "M 1. How to use the Window System "& 8This chapter is a brief introduction to how to operate the window system,from the point  of view of someone sitting down at a console.It does not attempt to deal with programming  issues.The main purpose is to point at some things you need to know to get started. " 8[The reader knows what"windowsystem"means,butdoesnotknowhowto"operate"it.  DoesthismeanthatshehasreadtheChineNual?Whichversionhassheread,thepresent  one or a proposed future one?]  "= 1.1 The Display " 8Thedisplayshowsoneormorewindows,whichareindependentsub-displays.Most  windowshaveborders(blackoutlines)aroundthem.Somehavealabelwhichisusuallyin  thelowerleft-handcorner.Ifthereisonlyonewindowonthedisplay,thebordersand  label are often omitted. " 8[ThereaderisamoderatelyexperiencedLispMachineuserwhoknowswhatthedisplay  lookslikeandhasseenitinvariousstates,butdoesnotknowwhatanythingisproperly  called.] " 8Usually one of the windows is selected.This means that that window is the focus of your  attention,and keyboard inputisdirectedtoit.Mostoftentheselectedwindowwillhavea  blinking cursor and the other windows (if any) will not. " 8[Thereader,whethersheiswillingtoadmititornot,hasconsiderableintuitive  understanding of thewindowsystem.Sheisnotthrown,forexample,by"keyboardinputis  directed to it",although this is not the kind of thing that a true window system novice could  grok.] " 8Windowscanbeexposed,meaningthattheyarefullyvisibleonthescreen,orelse  deexposed.A deexposed window may either be partially visible andpartiallycoveredbyother  windows,orentirelyinvisible.Deexposedwindowscanbebroughtbacktothedisplayin  many ways,described later. " 8At the bottomofthedisplayisthewho-line.Herearedisplayedseveralpiecesofstatus  information.From left to right thewho-lineshowsthedateandtime,yourloginname,the  current package,the state of the process that is connectedtothekeyboard,andthestateof  an open le or the time since the keyboard was last typed upon. " 8[Should there be a section explaining the meanings of various wait statesthatmayappear  in the whole line (lock,output-hold,select,nil)?It is very dicult toexplainthemwithout  goingintothefullinternaldetailsofthesystem,andIdon'tthinkwewanttoencourage  users to do esc c-clear.] " 8Underneaththewho-linearetworun-lights,smallhorizontalbarswhichickeronand  o.The one on the right is there when the processor is running;the one on the left is there  when the disk is running.If the garbage-collector is activated,it adds a third run-light to the  left of the other two. "" DSK:LMWIND;NWSOPR 36 %21-MAY-81 "" SHADOW's Documentation Y2 The Keyboard "M 8Scattered around the display are several blinkers of various shapes and sizes,which attract  attention to various points of interest.  "= 1.2 The Keyboard " 8There are quite a few keys on the new,large keyboards.This section explains what some  ofthemoreimportantkeysdo.Therearetwocolonsandtwosetsofparentheses;thereis  nodierencebetweenthese,itisjustthatsomepeopleprefertheminoneplaceandsome  in another. " 8The Hyper,Super,Meta,and Control keysoneachsideare"modiershifts";whenheld  downwhileotherkeysaretyped,theymodifythemeaningofthoseotherkeys.Theyare  generally used for giving single-keystroke commands to programs like the editor. " 8A number of keys have special functions,described below.Some of these keys are always  operative,whileothers,describedas"usually"performingacertainfunction,areonly  conventions that are not followed by all programs.  " Tab HHorizontal tab;move right to an appropriate place depending on context.  " Return H"Carriage return" or end of line.  " Line H"Linefeed";thisisnotusuallytheendoflinecharacter,butisusedasa  Hcommand by the editor,and sends a "line feed" in Supdup and Telnet.  " Altmode HThis key is anomalous in that it is large and blue but it is a printing character  H(lozenge).Itisalsousedasacontrolfunctioninsomeprograms;this  Hanomaly is inherited from ITS.  " Rubout HErases the last character typed.It is not the same as Delete.  " Delete HThiskeyisforsomeasyetunspeciedformofdeletion.InSupdupit  Hsubstitutes for the VT key of the old keyboards.  " Overstrike H"Backspaces" so that you can put twocharactersontopofeachother,should  Hyou really want to.This key is called BS on the old keyboards.  " Terminal HUsedasaprexfor"keyboardescape"commandswhichyoumaytypeatany  Htime,no matter what program you are running.These are documented below.  HThis key is called Esc on the old keyboards.  " System HUsed as a prex for additional "keyboard escape" commands,generally used to  Hchangewhatprogramor"system"youaretalkingto.Thiskeydoesnotexist  Hon the old keyboards,but can be typed as Top/Esc.  " Clear-Input HUsuallyushestheinputexpressionyouaretyping.ThiskeyiscalledClear  Hon the old keyboards.  " Clear-Screen HUsually erases and refreshes the selected window.This key is called Formon  Htheoldkeyboards.Intheeditor(insearchesandaftercontrol-Q)thiskeyis  Hthe page separator character,which displays as "form" in a box.  H[Thismaygetchangedto"page";itwillstillbedierentfromwhatthekey  Hsays.]  " Help HUsuallygetsyousomeon-linedocumentationorprogrammedassistance.On  Htheoldkeyboards,Helpdoesexistasaseparatekey,butitcanbetypedas  HTop/H. "d DSK:LMWIND;NWSOPR 36 %21-MAY-81 "" SHADOW's Documentation Y3 The Keyboard "M Abort HAborts the operation currently being performed by theprocessyouaretyping  Hat,immediately(notwhenitisread).Forinstance,thiswillforceaLisp  Hlistenertoabandonthepresentcomputationandreturntoitsread-eval-print  Hloop.On the old keyboards,Abort does not exist as a separate key,but it can  Hbe typed as Top/Call.  H[Whenwehavecontrol-abort,orwhatever,thatiscaughtbybreakloops,it  Hshould be documented here.]  " Break HUsually forces the process you are typing at into a break read-eval-print loop,  Hso that you can see whatit'sdoing,orstopittemporarily.Theeectoccurs  Hwhen the character is read,not immediately. " HTerminal Break is similar but always works and acts immediately,not when the  Hcharacter is read.It forces the process into the error-handler sothatyoucan  Hlook at what it is doing.  " Call HImmediatelystopstheprocessyouaretypingat,andselectsanidlelisp-  Hlistener(creatingoneiftherearen'tany).Thisisthekeytousetogetto  H"commandlevel"withoutdestroyingthecomputationinprogress.Whenthe  Hwindow called out-of is selected again,its process will be allowed to run once  Hmore.  " End HMarkstheendofinputtomanyprograms.Inputofasingle-linenaturemay  HbeendedwithReturn,butEndwillterminatemultiple-lineinputwhere  HReturnisusefulforseparatinglines.TheEndkeydoesnotapplywhen  Htyping in Lisp S-expressions,which are self-delimiting.The old keyboards have  Hno End key;Top/Return may be used as a substitute.  H[CurrentlynoprogramshavebeenconvertedtouseEnd,andtherearea  Hhodgepodge of conventions,including c-C,c-,c-CR.] " H[Hand/nger keys too.Also network.]  " Macro HIntroducesakeyboard-macrocommandinprograms,suchastheeditor,that  Hhave keyboard macros.This key is called Back-Next on the old keyboards.  H[I don't know what this means.Does the reader?] " 8[WhenwedosomethingabouttheeditorControl-Top-commands,therewillbeanote  about that here.]  [[Maybe]] " 8ThereareavarietyofusefulfunctionsreachablefromtheTerminalorEsckey.The  most important are listed here;you can see the rest by typing Terminal Help or Esc ?.These  workbytypingTerminalandakeysayingwhattodo;youcanalsogivea"numeric  argument"byputtingnumbersand/oraminussignaftertheTerminalandbeforethe  command key.There is no echo to showthatyouareinthemiddleoftypingoneofthese  commands,exceptthatthewho-linewillsay"ESC".[Whatpartofthewho-line?]Type  Rubout to ush a partially-typed Terminal command,or Terminal to start it over.  " Terminal Help  Esc ? HDisplaysalistofalltheterminalescapecommands.Typespacetoreturnto  Hyour previous window.  " Terminal Clear-Screen  Esc Form HClearsthescreenandrefreshesallthewindows,includingthewho-line.Use  Hthis when something has been clobbered,e.g.byuseofthe"cold-load-stream"  Hdescribed below. ": DSK:LMWIND;NWSOPR 36 %21-MAY-81 "" SHADOW's Documentation Y4 The Keyboard "M Terminal Clear-Input  Esc Clear HDiscardsanytyped-aheadkeyboardinputwhichhasnotyetbeenreadbya  Hprogram.  " Terminal/Esc Call  HPuts you into a break read-eval-printloop,usingthe"cold-load-stream".This  His a way of getting toaLispread-eval-printloopthatcompletelybypassesthe  Hwindow system,which can be very useful in debugging,since it interacts with  Hand depends on a minimum amount of the rest of the system.  " Terminal/Esc Break  HForcesyourcurrentprocessintotheerrorhandler.Itshouldtypeout  H">>BREAK"andtheerror-handlerprompt"".Youcanpokearoundinthe  Hprocess,then type control-C to continue.  " Terminal/Esc S  HSwitches youtoanother"selectable"window.Typinganumberbeforethe"S"  Hcontrolsexactlywhathappens.Withnonumericargument,yougetthemost  Hrecently selected window;repeating this several times will cycle though all the  Havailablewindows.Withanumericargumentof-1(orjust-),yougetthe  Hleast recently selectedwindow;repeatingthisseveraltimeswillcyclethrough  Hall the available windows in the reverse order.  H[Thisdescriptionisnotselfconsistent.IfT/ESgetsyouthemostrecently  Hselectedwindow,thentypingittwiceshouldhavenocumulativeeect;it  Hleavesyouwhereyoustarted.Underwhatcircumstancesdoesitreallyget  Hyou the most recently selected window?] " HWith a numeric argument of 0 you get a window which is waiting to type out  Hwhendeexposedortoshowyouanerrorinabackgroundprocess.[Andif  Hthere is no such window?] With a numeric argument of -2,you will get some  Hwindow that you would not be able to get otherwise;you probably don't want  Hto use this.[We probably don't want to say this.] With a positive argumentn,  Hyou get the n'th most recently selected window. " H"EscS"and"Esc-S"willundoeachother,and"Esc1S"willundoitself.  HThis can be convenient for switching back and forth between two windows.  H[I have to nd out what this really does and rewrite the section.]  " Terminal/Esc W  HControlsthewho-line.Whathappensdependsonthenumbertypedbefore  Hthe"W".Withnonumericargument,thewho-lineisredisplayed.Numeric  Hargumentsare1,letthewho-linefollowtheprocesstalkingtothekeyboard.  H2,freezethewho-lineontheprocessitiscurrentlyshowing.3,freezethe  Hwho-line on the next process in a certain order.4,freeze the who-line on the  Hnext process in the other direction.These numbers are the same as on AI TV  Hterminals.Whenthewho-lineisfrozenontoaparticularprocess,itdisplays  Hthenameofthatprocessintheplacewhereitwouldnormallydisplayyour  Huser ID.  H[Needs rewrite.]  " Terminal Hold-Output  HIf it says "Output Hold" in the who-line,indicating that the "current" process is  Htrying to display on a window which is not exposed,typing this command will  Hexpose that window.Otherwise typing this will beep.[On the new keyboards?  HFromwhatspeaker?]UseTerminalStoreturntothepreviously-selected  Hwindow.This function is unfortunately not available on old keyboards. "  DSK:LMWIND;NWSOPR 36 %21-MAY-81 "" SHADOW's Documentation Y5 -The Mouse "M 8Inadditiontothesecommands,thereareasetofsimilarcommandsintroducedbythe  Systemkey(Top/Esconoldkeyboards).Thesecommandsareusedforswitchingwhat  program or "system" you are talking to. " 8Ingeneraltheseworkbyselectingthenextwindowofthespeciedtypeonaringof  such (so that repeating the command will cycle through all existing windows ofthattype.)If  no window of the specied type exists,a new one will be created the full size of the screen.  You can use the screen editor to make it smaller if you like.  " System Help  Top-Esc ? HLists the systems available.  " System E HThe editor.This is the text editor also reachable through the ed function.  " System I HTheinspector.Thisisadisplay-orienteddata-structureexaminationprogram,  Hdescribed below.  " System L HA lisp listener.This is the interactive Lisp window you start out in.  " System P HPeek.This is a general system-status program,described below.  " System R HWindow error-handler.This is described below.You cannot create a window  Herror-handler,youcanonlyselectbackanexistingonethatisinthemiddle  Hof examining an erring program.  " System S HSupdup.This is the network program for ITS.  " System T HTelnet.This is the network program for systems other than ITS.  "= 1.3 The Mouse " 8The mouse is a pointing device you can move around the desk,with three buttons on it,  called Left,Middle,and Right.As you move the mouse,a cursor moves around the display  to show where the mouse is pointing.The system frequently changes the shape of the mouse  cursortoshowyouwhatyoucandowiththemousebuttons.Wheneveritmakessense,  clickingtheleft-handmousebuttonwhilepointingatawindowwillselectthatwindow.If  youpointatthevisibleportionofadeexposedwindowandclickleft,therestofthe  window will be brought up onto the display,covering over some other window or windows. " 8Many programs use mouse-sensitive displays.When you point the mouse at something that  is mouse-sensitive,it will be highlighted by either a box around it or inverse video.This tells  you that clicking a mouse button will do something to or with the highlighted thing.Exactly  whatitdoesofcoursedependsontheparticularprogramcontrollingthedisplaytowhich  you are pointing. " 8These are some of the more common mouse cursors: " 8[Should we adopt "North","Northeast",etc.,to make the following descriptions prettier?] " 8A thin arrow pointing up and to the left.This is the default mouse cursor. " 8A thin arrow pointing up and to the right.This means the mouse is in an editor window.  You have several editor commands on the mouse buttons. " 8A thin arrow pointing straightup.Theeditorusesthistoshowthatitisaskingyoufor  thenameofafunctionorforasymbol.Ifyoupointthemouseatafunctionname,and  stop moving it,the name will light up and you can click to select it. "+ DSK:LMWIND;NWSOPR 36 %21-MAY-81 "" SHADOW's Documentation Y6 [The System Menu "M 8A small X.This is used when the mouse cursor wants to be unobtrusive,for instance in  menus. " 8A fat arrow,pointing up,down,or both.This indicates you are in a scroll region.The  idea is that the "contents" of the window are too big to be displayedallatonce,soyousee  onlyaportionofthecontents,andcanscrollitupanddown.Ifthemousecursorisa  single-headedarrow,movingthemouseslowlyinthedirectionofthearrowwillscrollthe  window,revealingmoreofthetextinthedirectionthearrowpoints,whilemovingthe  mouse quickly will let you out of the window.If it is a double-headed arrow,there will also  beathinblackbarnearby,the"scrollbar".Therelationofthisbartotheedgeofthe  window to which it isattachedshowswhatportionofthewindow'scontentsisvisible.The  mouse commands in this case are  " Left HMove the line next to the mouse to the top of the window.  " Left-double HMove the line next to the mouse to the bottom of the window.  " Right HMove the top line to where the mouse is.  " Right-double  HMovethebottomlinetowherethemouseis.Becauseofthiscommand  Hdenition,you cannot get to the system menu while the mouse is displaying a  Hdouble-headed fat arrow.  " Middle HJumptoaplaceinthewindowcontentsasfar,proportionally,fromits  Hbeginning as the mouse is from the top of the window.  "= 1.4 The System Menu " 8To get into the system menu,click theright-handbuttononthemouse.Ifthemouseis  inawindowthathasmousecommands,itgenerallytakestwoclicksinquicksuccessionto  get the system menu;otherwise,either one or two clicks on the right-hand button will work.  Thereareafewobscurestates,suchasthescrollbarmentionedabove,whereyoucannot  get to the system menu.Just move the mouse a little then click.You can always gettothe  system menu by putting the mouse in the who-line and clicking the right-hand button. " 8Havingcausedthesystemmenutoappear,youcanmovethemousearoundinit.The  command that will be executed if you click the left or right mouse button is highlighted.To  abandon the system menu without executing a command,just move the mouse far away from  it. " 8The commands in the system menu are:  " Create HCreateawindow.Firstyoumustchoosethetypeofwindowfromamenu,  Hthen you must click the mouse where the upper-left and lower-right corners of  Hthe window should go.If you put the lower-right corner above or to the left  Hof the upper-left corner,you get the whole screen (except the who-line).  " Select HGives you a menu of selectable windows.The order of windows in the menu  His the same as the order of "pieces of paper stacked on the desk",thus the one  Hat the top of the menu is the window that is currently selected.  H[The phrase,"pieces of paper stacked on a desk" is used as if we all have seen  Hit before,perhaps in another piece of documentation.Which is that?]  " Inspect HCalls the inspector,which is documented below. "Y DSK:LMWIND;NWSOPR 36 %21-MAY-81 "" SHADOW's Documentation Y7 TThe Screen Editor "M Trace HGives you a menu interface to the Trace package.[More about this later.]  " Edit Screen HPutsyouintotheScreenEditor,whichdoesallsortsofwindowmoving,  Hreshaping,burying,etc.operations.This is documented in detail below.  " Split Screen HLets you create several windows which will share the screen.  " Layouts HProvidesamenubywhichyoumaysaveandrestoresetsofwindowsand  Htheir arrangement on the screen.  " Other HGives you another menu containing the following additional operations.  H" HArrest  HUn-Arrest  HReset Dothespeciedoperationtotheprocess(ifany)associated  withthewindowthemousewasinwhenyoucalledforthe  system menu.  H" HKill Destroy the window the mouse was in when you called for the  system menu.  H" HEmergency Break  Putsyouintoabreakpointinthecold-loadstream,like  Terminal Call.  H" HRefresh Refreshesthewindowthemousewasinwhenyoucalledfor  thesystemmenu.ThisislikeTerminalClear-ScreenorEsc  Form,but applies to just one window.  "= 1.5 The Screen Editor " 8Thescreeneditorisamouse-controlledprogramformanipulatingthelayoutofyour  screen.It can be used to move windows around,tochangethesizeandshapeofwindows,  and to change which windows are displayed. " 8ThescreeneditorisgottenfromthesystemmenuwiththeEditScreencommand.  Ordinarily it will enter the screen editor immediately,editing the whole screen.However,if  the window that the mouse is in is a frame,you have the option of editing that frame or the  wholescreen;anotherpop-upmenuwillappearwiththepossiblesuperiorsyoucancallthe  screen editor on. " 8[Theword"frame"hasnotbeendenedinthisdocument.Thisparagraphreferstothe  window hierarchy,and might not be understood by a novice.] " 8Thescreeneditorworksbydisplayingamenuofcommands.Youselectacommandby  clicking on it with the mouse and the menu disappears.If the command was Quit,the screen  editorgoesaway.Otherwiseitasksyoutopointtoanywindows,edges,etc.neededas  argumentstothecommand,bychangingtheshapeofthemousecursorandputtinga  message in the who-line.After executing the command,the screen editor's menu will appear  again. " 8When the screen editor is asking you to pointtosomething,clickingtheleftbuttonwill  selectwhatthemouseispointingat.Clickingeitheroftheothertwobuttonswillabandon  the current command. "y DSK:LMWIND;NWSOPR 36 %21-MAY-81 "" SHADOW's Documentation Y8 TThe Screen Editor "M 8The commands in the screen editor menu are:  " Bury HClick on a window with the mouse and it will be moved to the bottom of the  Hheap of windows,allowing other windows to become visible.  " Expose HClickonapartiallyvisiblewindowwiththemouseanditwillbemovedto  Hthe top of the heap of windows,becoming fully exposed.  " Kill HClick on a window with the mouse and it will be killed.  " Undo HAttemptstorestorethestatefrombeforethelastscreeneditorcommand.  HBeeps if it cannot.  " Quit HExits the screen editor.  " Move Window  HClick on a window with the mouse and the outline of it will follow the mouse  Haround until youreleasethemousebutton.Thewindowwillthenbemoved  Hto where the outline is.[If the window was only partially visible,isitmoved  Hto the top of the heap?]  " Reshape HClick on a windowwiththemouse,thenclickthetwonewpositionsforthe  Hupper-leftandlower-rightcornersofthatwindow.Asusual,ifyouputthe  Hlower-right corner above or to the left of the upper-left corner,the window is  Hmade the full size of the screen.  " Move Multiple  HThis collects a list of window edges and corners to be moved.Thethingson  Hthelistaremarkedwithlargeblackhighlights.Alargearrowfollowsthe  Hmousearound,showingwhatedgeorcorneritiscurrentlypointingat.  HClicking on a window's edge or corner will add or subtract it from the list of  Hthings to be moved.Alongclick[?]willpickupthewholelot,andwilllet  Hyoumoveitarounduntilthebuttonisclickedagain,atwhichpointthe  Hwindows involved will be modied accordingly.As a special hack,if you add  Hanedgeorcornerthatabutsanotheredgeorcorner,thatotheredgeor  Hcornerwillbeaddedtoo,sothattheywillremainabuttingwhenyoumove  Hthem.If that isn't what you wanted,click on the new one and it will turn o.  H[Worded weirdly]  " Expand Window  HClick on a window with the mouse and it will be expanded to cover as much  Hof the neighboring whitespace and deexposed windows as possible.  " Expand All HAttemptstollupallwastedspaceonthescreenbyexpandingneighboring  Hwindows into one another.Since no window isevermovedormadesmaller,  Hthiscommandwillnotmanagetogetridofallwhitespaceinsome  Hcomplicated situations,but it usually succeeds,and it always produces a stable  Hpositionrelativetoitsowntransformation.[Exactlyhowis"move"dened?  HHow is it possible to say the "no window is ever moved"?] """U DSK:LMWIND;NWSOPR 36 %21-MAY-81 "" SHADOW's Documentation Y9 %Notication "M 1.6 Notification " 8When certain asynchronous events occur,unrelated to what you are currently doing with  theselectedwindow,thesystemnotiesyoubydisplayinganexplanatorymessage.Suchan  eventmightbeanerrorinaprocesswhosewindowisnotexposed,anerrororother  attempttotypeoutbya"background"processwhichhasnoassociatedwindow,oran  attempt to type out on a deexposed window of a kind which noties rather than just waiting  foryoutoexposeit.Thesystemnotiesyouinoneoftwoways,dependingonwhat  windows are currently on your screen. " 8One way that you can be notied is by printing of a message enclosed in square brackets.  ThismethodisusedwhentheselectedwindowisaLisplistener,oranyothertypeof  windowthatacceptsnotications.Ifthenoticationinformsyouofawindowwaitingto  typeoutortotellyouaboutanerrorincurredbysomeprogram,thenyoucanselectthat  windowatanytimebytyping"Terminal/Esc0S".Youcanreturnfromtheretoyour  original window by typing "Terminal/Esc S".If multiple windows are waiting for attention in  this way,theyareallrememberedandyoucanselectthemoneafteranother.Alternatively  you could select one of these windows by using the Select operation in the system menu and  picking it out of the displayed menu of windows. " 8Theotherwayyoucanbenotiedisbythepopping-upofasmallwindowwiththe  message displayed in it.This happens when there is no good place on the screen to print the  message.Inthiscaseyoucan'tdotoomuchuntilyoupointthemouseatthenotication  windowandclicktheleftbutton,atwhichpointthenoticationwilldisappearandthe  associated window which is waiting to type out (if any) will appear.  "= 1.7 The Window Error Handler " 8[Perhaps it should be renamed "The Interactive Error Handler".Thepresentnamemakes  me think that its purpose is to handle window errors.] " 8This section describes the windoworientederrorhandler,whichcanbegottenfromthe  standard keyboard error handler by typing Control-Meta-W to the  prompt. " 8The error handler windowisdividedintosevenpanes.Atthebottomisalispwindow,  whichordinarilyprovidesaread-eval-printloop,similartotheregularkeyboarderror  handler.More commands are available by using the mouse in the other windows as described  below. " 8Atthetopisadisplayofthedisassembledorgroundcodeforthecurrentlyselected  stack frame,depending on whether or not it is compiled.This is an inspection window.The  window immediately below this is a history window as in the Inspector (see below).Clicking  on any mouse sensitive item with the right button in either of these windows inspects it,and  clickingwiththemiddlebuttonstusitintothelispwindow,echoingitandmakingitthe  value of *. " 8[Our rather peculiar reader knows what "mouse-sensitive" means.] " 8Nextaretheargsandlocalswindows,sidebyside,displayingthenamesandvaluesof  the arguments to the current stackframeanditslocalvariablesandspecial-variablebindings.  These windows are grayed out if the frame has no variables of the corresponding type.They  also have a scroll bar.Clicking the mouse on the name of a variable will print the name and  thevalueinthelispwindow.Clickingonjustthevaluewillprintitinthelispwindow. "  DSK:LMWIND;NWSOPR 36 %21-MAY-81 "" SHADOW's Documentation Q10 [The Window Error Handler "M The mouse will highlight any relevant quantity that you are pointing to. " 8WhensomethingisprintedintheLispwindowbypointingatitwiththemouse,the  variable * is set to the value printed,and the variable + is set to a locative to the stack slot  containing the value,or (in the case of a special-variable binding) issettothesymbol.You  can use * to feed the value to any Lisp function,and + to alter the value. " 8Nextisthestackwindow,whichdisplaysinapseudo-listformatthefunctionsand  argumentsonthestack.Clickingonafunctionorargumentorsublistsofthemwillcause  themtobeprintedinthelispwindowasintheargumentorlocalwindows.Also,clicking  the mouse to the left of a line containing a particular stack frame (when the cursor is a right-  pointingarrow)willmaketheerrorhandlerselectthatframe,changingwhatthecode,  arguments,and locals windows show. " 8Below this,and above the lisp window,is the command menu for the error handler.The  available commands and what they do are:  " What error HReprints the error message for the current error,in the lisp window.  " Quit one level  HExitsjustthewindowerrorhandler,likeMeta-Zinthekeyboarderror  Hhandler.  " Exit HLike Control-Z in the keyboard error handler.  " Arglist HAsksforthenameofafunction,whichcanbetypedonthekeyboard,or  Hmousedifitisonthescreen.Pickinganactororaclosurewillaskforthe  Hmessagenametothatactorandprinttheargumentstoitsmethodforthat  Hmessage.Pickingalineofastackframefromthestackwindowwilltryto  Haligntheprintoutoftheargumentswithwhatvaluewassuppliedinthat  Hposition in that frame.  " Inspect HAsksforanobjectwhichcanbepointed-towiththemouseortypedin,and  Hinspects it in theupperwindow.Seethenextsectionforinformationonthe  HInspector.  " Edit HReads the name of a function in the same fashion as the Arglist command and  Hinvokes the editor on that function.  " Retry HAttempts to restart the current frame,like the Control-Meta-R command.  " Return a value  HAsksforthenameofavalue(whichcanbeselectedwiththemouse)and  Hreturns it from the current frame,like Control-R.  " Continue HLike Control-C,except that the mouse can be used to select the object it asks  Hyou for in order to continue.  " Set arg HSelectanargumentorlocalwiththemouseandtypeormouseanewvalue  Hto be substituted in.  " Search HLike the Control-S command,except that the mouse can be used.  " Throw HLike Control-T,it asks foratagandavalueandthrowsthere;themouseof  Hcourse can be used.  " Specials HTypes out the special bindings of the current stack frame in the lisp window.  " T  NIL HClickingoneofthesesuppliesthatsymbolasanargumentorvalueforother "3 DSK:LMWIND;NWSOPR 36 %21-MAY-81 "" SHADOW's Documentation Q11 The Inspector "M Hcommands.These can also be used to answer yes-or-no questions.  "= 1.8 The Inspector " 8The inspector is a window-oriented program for poking around in data structures.When  you ask toinspectaparticularobject,itscomponentsaredisplayed.Whatthe"components"  aredependsonthetypeofobject;forexample,thecomponentsofalistareitselements,  andthoseofasymbolareitsvaluebinding,functiondenition,andpropertylist.The  objectsdisplayedonthescreenbytheinspectoraremouse-sensitive;whenyoupointthe  mouseatanobjectaboxappearsaroundit.Clickingamousebuttonwilldosomethingto  that object,such as inspecting it,modifying it,or giving it as the argument to a function. " 8Thefollowingdocumentationisonthecurrentversion.Asthisisstillanevolving  program,it may change without notice. " 8Theinspectorcanbepartofanotherprogram,suchasthewindowerrorhandler,orit  can be used "standalone".The standalone inspector can be entered via the Inspect command  in the system menu,or by the tv:inspect function which inspects its argument,if any. " 8The standalone inspector is aframeconsistingofasmallinteractionwindowonthetop,  a history window and menu immediately below that,followedbysomenumberofinspection  windows(threeinthedefaultstandaloneinspector).Eachinspectionwindowcaninspecta  dierentobject.Whenyouinspectanobjectitappearsinthelargewindowatthebottom,  and the previously inspected objects shift upward. " 8Otherprograms,suchasthewindowerrorhandler,mayutilizeinspectionandhistory  windows,andthoughtheoutputwilllookthesame,thehandlingofmousebuttonsmay  dependupontheparticularprogrambeingrun.Thediscussionbelowfocusesprimarilyon  the standalone inspector. " 8The history window maintains a listofallobjectsthathavebeeninspected.Itisusually  kept in LRU order  the least recently displayed object is at the top,and the most recently  displayed object is atthebottom.Anymousesensitiveobjectinthehistorywindowcanbe  inspectedbyclickingonit.Thereisa"lineregion"atthelefthandsideofthehistory  window,whichallowsoperationsonthehistorywindow.Inthelineregionthemouse  cursor changes to a rightward-pointing arrow.Single-click-left inthelineregioninspectsthe  object.Thisissometimesusefulwhentheobjectisalistanditisinconvenienttoposition  themouseattheopenparen.Single-click-middledeletestheobjectfromthehistory.The  history window has a scroll bar at the far left,as well as a single line scrolling region inthe  middle of the window at both the top and the bottom. " 8Thehistorywindowalsomaintainsacacheallowingquickredisplayofpreviously  displayed objects.This means that merely reinspecting an object willnotreectanychanges  initsstate.Thesingle-click-middleoptionofthelineregiondeletestheobjectfromthe  cacheaswellasdeletingitfromthehistorywindow.TheDeCachecommandinthemenu  may be used to clear everything from the cache. " 8At the top of an inspection window is a label,which is the printed representationofthe  object being inspected in thatwindow,orelsethewords"alist"meaningthatalistisbeing  inspected.Themainbodyofaninspectionwindowisadisplayofthecomponentsofthe  object,labelled with their names if any.This display may be scrolled using the scrollbaron  the left or the "more above" and "more below" scrolling regions at the top and bottom. "> DSK:LMWIND;NWSOPR 36 %21-MAY-81 "" SHADOW's Documentation Q12 The Inspector "M 8Clicking on any mouse sensitive object in an inspection window inspects that object.The  threemousebuttonshavedierentmeanings,though.Single-click-leftinspectstheobjectin  the bottom window,pushing the previousobjectsup.Single-click-middleinspectstheobject,  but leaves the source (namely,the object being inspected in the window in which the mouse  wasclicked)inthesecondwindowfromthebottom.Single-click-righttriestondand  inspectthe"function"associatedwiththeselectedobject(e.g.thefunctionbindingifa  symbol was selected). " 8The expanded form that is chosen depends upon the type of the object:  " Symbol HThename,value,function,propertylist,andpackageofthesymbolare  Hdisplayed.All but the name are modiable.  " List HThe list is displayed ground by thesystemgrinder.Anypieceofsubstructure  His selectable,and any "car" or atom in the list can be modied.  " Instance HThe avor of the instance,the method table,and the names and values of the  Hinstance-variable slots are displayed.The instance-variables are modiable.  " Closure, Entity  HThe function,and the names and valuesoftheclosedvariablesaredisplayed.  HFor an entity the typeorclassisdisplayedaswell.Thevaluesoftheclosed  Hvariables are modiable.  " Named structure  HThe name and value of each slot are displayed.The values are modiable.  " Array HTheleaderofthearrayisdisplayedifpresent.Foronedimensionalarrays,  Hthe elements of the array are also displayed.The elements are modiable.  " FEF HThe disassembled code is displayed.  " Select Method  HThekeyword/functionpairsareshown,inalphabeticalorderbykeyword.  HThe function associated with a keyword is settable via the keyword.  " Stack Frame HThis is a special internal type that isusedbythewindowerrorhandler.Itis  Hdisplayedaseitherinterpretedcode(alist),orasaFEFwithanarrow  Hpointing to the next instruction to be executed. " 8Theinteractionwindowisusedtoprompttheuserandtoreceiveinput.Iftheuseris  notbeingaskedaquestion,thenaread-eval-inspectloopisactive.Formstypedwillbe  echoedintheinteractionwindowandevaluated.Theresultisnotprinted,butinspected  instead.Whentheuserispromptedforinput,usuallyduetohavinginvokedamenu  operation,anyinputbeingtypedattheread-eval-inspectloopissavedawayanderased  fromtheinteractionwindow.Whentheinteractionwiththeuserisover,theinputisre-  echoed and the user may continue to type the form. " 8Somespecialkeyboardcharactersarerecognizedwhennotinthemiddleoftypingina  form.  " Control-Z HExits and deactivates the inspector.  " Break HRuns a break loop in the typeout window of the lower inspection pane. " 8The menu is for infrequently used but useful commands:  " Exit HEquivalent to Control-Z.Exits the inspector and deactivates the frame. "X DSK:LMWIND;NWSOPR 36 %21-MAY-81 "" SHADOW's Documentation Q13 The Inspector "M Return HSimilartoExit,butallowsselectionofanobjecttobereturnedasthevalue  Hof the call to tv:inspect.  " Modify HAllowssimpleeditingofobjects."SelectingModifychangesthemouse  Hsensitivity of items on the screen to only include elds that are modiable.In  Hthetypicalcaseofnamedslots,thenamesarethesensitiveparts.Whenthe  Heldtomodifyhasbeenselected,anewvaluemaybespeciedeitherby  Htypingaformtobeevaluatedorbyselectinganynormallymouseselectable  Hobject with the mouse.The object being modied is redisplayed.Single-click-  Hright at any time aborts the modication.  " DeCache HFlushesallknowledgeabouttheinsidesofpreviouslydisplayedobjectsand  Hredisplays the currently displayed objects.  " Clear HClears out the history,cache,and all the inspection windows. " 8""""""""""") DSK:LMWIND;NWSOPR 36 %21-MAY-81 "" SHADOW's Documentation \i [Table of Contents "M 2Table of Contents "` 1. How to use the Window System I. `. w. . %. <. S. j. . . /. F. ]. t.  . ". 9. P. g. ~. . ,. C. Z. q. . . 6. M. d. {. . )1 "!  1.1 The Display z. . (. ?. V. m. . . 2. I. `. w. . %. <. S. j. . . /. F. ]. t.  . ". 9. P. g. ~. . ,. C. Z. q. . . 6. M. d. {. . )1 "!  1.2 The Keyboard . (. ?. V. m. . . 2. I. `. w. . %. <. S. j. . . /. F. ]. t.  . ". 9. P. g. ~. . ,. C. Z. q. . . 6. M. d. {. . )2 "!  1.3 The Mouse c. z. . (. ?. V. m. . . 2. I. `. w. . %. <. S. j. . . /. F. ]. t.  . ". 9. P. g. ~. . ,. C. Z. q. . . 6. M. d. {. . )5 "!  1.4 The System Menu ?. V. m. . . 2. I. `. w. . %. <. S. j. . . /. F. ]. t.  . ". 9. P. g. ~. . ,. C. Z. q. . . 6. M. d. {. . )6 "!  1.5 The Screen Editor ?. V. m. . . 2. I. `. w. . %. <. S. j. . . /. F. ]. t.  . ". 9. P. g. ~. . ,. C. Z. q. . . 6. M. d. {. . )7 "!  1.6 Notication. z. . (. ?. V. m. . . 2. I. `. w. . %. <. S. j. . . /. F. ]. t.  . ". 9. P. g. ~. . ,. C. Z. q. . . 6. M. d. {. . )9 "!  1.7 The Window Error Handler 2. I. `. w. . %. <. S. j. . . /. F. ]. t.  . ". 9. P. g. ~. . ,. C. Z. q. . . 6. M. d. {. . )9 "!  1.8 The Inspector . (. ?. V. m. . . 2. I. `. w. . %. <. S. j. . . /. F. ]. t.  . ". 9. P. g. ~. . ,. C. Z. q. . . 6. M. d. {. . 11 "!"""""""""""Z  %21-MAY-81