;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 "& 8This‚ 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‚"window‚system"‚means,‚but‚does‚not‚know‚how‚to‚"operate"‚it.  Does‚this‚mean‚that‚she‚has‚read‚the‚Chine‚Nual?‚Which‚version‚has‚she‚read,‚the‚present  one‚ or‚ a‚ proposed‚ future‚ one?]‚  "= 1.1 The Display " 8The‚display‚shows‚one‚or‚more‚windows‚,‚which‚are‚independent‚sub-displays.‚Most  windows‚have‚borders‚(black‚outlines)‚around‚them.‚Some‚have‚a‚label‚which‚is‚usually‚in  the‚lower‚left-hand‚corner.‚If‚there‚is‚only‚one‚window‚on‚the‚display,‚the‚borders‚and  label‚ are‚ often‚ omitted.‚ " 8[The‚reader‚is‚a‚moderately‚experienced‚Lisp‚Machine‚user‚who‚knows‚what‚the‚display  looks‚like‚and‚has‚seen‚it‚in‚various‚states,‚but‚does‚not‚know‚what‚anything‚is‚properly  called.]‚ " 8Usually‚ one‚ of‚ the‚ windows‚ is‚ selected‚.‚This‚ means‚ that‚ that‚îwindow‚îis‚îthe‚îfocus‚îof‚îyour  attention,‚and‚îkeyboard‚îinput‚is‚directed‚to‚it.‚Most‚often‚the‚selected‚window‚will‚have‚a  blinking‚ cursor‚ and‚ the‚ other‚ windows‚ (if‚ any)‚ will‚ not.‚ " 8[The‚reader,‚whether‚she‚is‚willing‚to‚admit‚it‚or‚not,‚has‚considerable‚intuitive  understanding‚îof‚îthe‚window‚system.‚She‚is‚not‚thrown,‚for‚example,‚by‚"keyboard‚input‚is  directed‚ to‚ it",‚although‚ this‚ is‚ not‚ the‚ kind‚îof‚îthing‚îthat‚îa‚îtrue‚îwindow‚îsystem‚înovice‚îcould  grok.]‚ " 8Windows‚can‚be‚exposed‚,‚meaning‚that‚they‚are‚fully‚visible‚on‚the‚screen,‚or‚else  deexposed‚.‚A‚îdeexposed‚îwindow‚îmay‚îeither‚îbe‚îpartially‚îvisible‚îand‚partially‚covered‚by‚other  windows,‚or‚entirely‚invisible.‚Deexposed‚windows‚can‚be‚brought‚back‚to‚the‚display‚in  many‚ ways,‚described‚ later.‚ " 8At‚îthe‚îbottom‚of‚the‚display‚is‚the‚who-line‚.‚Here‚are‚displayed‚several‚pieces‚of‚status  information.‚From‚îleft‚îto‚îright‚îthe‚who-line‚shows‚the‚date‚and‚time,‚your‚login‚name,‚the  current‚îpackage,‚the‚îstate‚îof‚îthe‚îprocess‚îthat‚îis‚îconnected‚to‚the‚keyboard,‚and‚the‚state‚of  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‚îstates‚that‚may‚appear  in‚îthe‚îwhole‚îline‚î(lock,‚output-hold,‚select,‚nil)?‚It‚îis‚îvery‚îdicult‚îto‚explain‚them‚without  going‚into‚the‚full‚internal‚details‚of‚the‚system,‚and‚I‚don't‚think‚we‚want‚to‚encourage  users‚ to‚ do‚ esc‚ c-clear.]‚ " 8Underneath‚the‚who-line‚are‚two‚run-lights‚,‚small‚horizontal‚bars‚which‚icker‚on‚and  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 8Scattered‚ around‚ the‚ display‚ are‚ several‚ blinkers‚ of‚ various‚ shapes‚ and‚îsizes,‚which‚îattract  attention‚ to‚ various‚ points‚ of‚ interest.‚  "= 1.2 The Keyboard " 8There‚ are‚ quite‚ a‚ few‚ keys‚ on‚ the‚ new,‚large‚ keyboards.‚This‚îsection‚îexplains‚îwhat‚îsome  of‚the‚more‚important‚keys‚do.‚There‚are‚two‚colons‚and‚two‚sets‚of‚parentheses;‚there‚is  no‚dierence‚between‚these,‚it‚is‚just‚that‚some‚people‚prefer‚them‚in‚one‚place‚and‚some  in‚ another.‚ " 8The‚îHyper,‚Super,‚Meta,‚and‚îControl‚îkeys‚on‚each‚side‚are‚"modier‚shifts";‚when‚held  down‚while‚other‚keys‚are‚typed,‚they‚modify‚the‚meaning‚of‚those‚other‚keys.‚They‚are  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,‚while‚others,‚described‚as‚"usually"‚performing‚a‚certain‚function,‚are‚only  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"Line‚feed";‚this‚is‚not‚usually‚the‚end‚of‚line‚character,‚but‚is‚used‚as‚a  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).‚It‚is‚also‚used‚as‚a‚control‚function‚in‚some‚programs;‚this  Hanomaly‚ is‚ inherited‚ from‚ ITS.‚  " Rubout HErases‚ the‚ last‚ character‚ typed.‚It‚ is‚ not‚ the‚ same‚ as‚ Delete.‚  " Delete HThis‚key‚is‚for‚some‚as‚yet‚unspecied‚form‚of‚deletion.‚In‚Supdup‚it  Hsubstitutes‚ for‚ the‚ VT‚ key‚ of‚ the‚ old‚ keyboards.‚  " Overstrike H"Backspaces"‚îso‚îthat‚îyou‚îcan‚îput‚îtwo‚characters‚on‚top‚of‚each‚other,‚should  Hyou‚ really‚ want‚ to.‚This‚ key‚ is‚ called‚ BS‚ on‚ the‚ old‚ keyboards.‚  " Terminal HUsed‚as‚a‚prex‚for‚"keyboard‚escape"‚commands‚which‚you‚may‚type‚at‚any  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  Hchange‚what‚program‚or‚"system"‚you‚are‚talking‚to.‚This‚key‚does‚not‚exist  Hon‚ the‚ old‚ keyboards,‚but‚ can‚ be‚ typed‚ as‚ Top/Esc.‚  " Clear-Input HUsually‚ushes‚the‚input‚expression‚you‚are‚typing.‚This‚key‚is‚called‚Clear  Hon‚ the‚ old‚ keyboards.‚  " Clear-Screen HUsually‚îerases‚îand‚îrefreshes‚îthe‚îselected‚îwindow.‚This‚îkey‚îis‚îcalled‚îForm‚on  Hthe‚old‚keyboards.‚In‚the‚editor‚(in‚searches‚and‚after‚control-Q)‚this‚key‚is  Hthe‚ page‚ separator‚ character,‚which‚ displays‚ as‚ "form"‚ in‚ a‚ box.‚  H[This‚may‚get‚changed‚to‚"page";‚it‚will‚still‚be‚dierent‚from‚what‚the‚key  Hsays.]‚  " Help HUsually‚gets‚you‚some‚on-line‚documentation‚or‚programmed‚assistance.‚On  Hthe‚old‚keyboards,‚Help‚does‚exist‚as‚a‚separate‚key,‚but‚it‚can‚be‚typed‚as  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‚îthe‚process‚you‚are‚typing  Hat,‚immediately‚(not‚when‚it‚is‚read).‚For‚instance,‚this‚will‚force‚a‚Lisp  Hlistener‚to‚abandon‚the‚present‚computation‚and‚return‚to‚its‚read-eval-print  Hloop.‚On‚ the‚ old‚ keyboards,‚Abort‚ does‚ not‚ exist‚ as‚ a‚ separate‚ key,‚but‚ it‚îcan  Hbe‚ typed‚ as‚ Top/Call.‚  H[When‚we‚have‚control-abort,‚or‚whatever,‚that‚is‚caught‚by‚break‚loops,‚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‚îwhat‚it's‚doing,‚or‚stop‚it‚temporarily.‚The‚eect‚occurs  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‚îso‚that‚you‚can  Hlook‚ at‚ what‚ it‚ is‚ doing.‚  " Call HImmediately‚stops‚the‚process‚you‚are‚typing‚at,‚and‚selects‚an‚idle‚lisp-  Hlistener‚(creating‚one‚if‚there‚aren't‚any).‚This‚is‚the‚key‚to‚use‚to‚get‚to  H"command‚level"‚without‚destroying‚the‚computation‚in‚progress.‚When‚the  Hwindow‚ called‚ out-of‚ is‚ selected‚ again,‚its‚ process‚ will‚ be‚ allowed‚ to‚ run‚îonce  Hmore.‚  " End HMarks‚the‚end‚of‚input‚to‚many‚programs.‚Input‚of‚a‚single-line‚nature‚may  Hbe‚ended‚with‚Return,‚but‚End‚will‚terminate‚multiple-line‚input‚where  HReturn‚is‚useful‚for‚separating‚lines.‚The‚End‚key‚does‚not‚apply‚when  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[Currently‚no‚programs‚have‚been‚converted‚to‚use‚End,‚and‚there‚are‚a  Hhodgepodge‚ of‚ conventions,‚including‚ c-C,‚c-,‚c-CR.]‚ " H[Hand/nger‚ keys‚ too.‚Also‚ network.]‚  " Macro HIntroduces‚a‚keyboard-macro‚command‚in‚programs,‚such‚as‚the‚editor,‚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[When‚we‚do‚something‚about‚the‚editor‚Control-Top-‚commands,‚there‚will‚be‚a‚note  about‚ that‚ here.]‚  [[Maybe]]‚ " 8There‚are‚a‚variety‚of‚useful‚functions‚reachable‚from‚the‚Terminal‚or‚Esc‚key.‚The  most‚ important‚ are‚ listed‚ here;‚you‚ can‚ see‚ the‚ rest‚ by‚ typing‚ Terminal‚ Help‚ or‚ Esc‚ ?.‚These  work‚by‚typing‚Terminal‚and‚a‚key‚saying‚what‚to‚do;‚you‚can‚also‚give‚a‚"numeric  argument"‚by‚putting‚numbers‚and/or‚a‚minus‚sign‚after‚the‚Terminal‚and‚before‚the  command‚îkey.‚There‚îis‚îno‚îecho‚îto‚îshow‚that‚you‚are‚in‚the‚middle‚of‚typing‚one‚of‚these  commands,‚except‚that‚the‚who-line‚will‚say‚"ESC".‚[What‚part‚of‚the‚who-line?]‚Type  Rubout‚ to‚ ush‚ a‚ partially-typed‚ Terminal‚ command,‚or‚ Terminal‚ to‚ start‚ it‚ over.‚  " Terminal Help  Esc ? HDisplays‚a‚list‚of‚all‚the‚terminal‚escape‚commands.‚Type‚space‚to‚return‚to  Hyour‚ previous‚ window.‚  " Terminal Clear-Screen  Esc Form HClears‚the‚screen‚and‚refreshes‚all‚the‚windows,‚including‚the‚who-line.‚Use  Hthis‚îwhen‚îsomething‚îhas‚îbeen‚îclobbered,‚e.g.‚by‚use‚of‚the‚"cold-load-stream"  Hdescribed‚ below.‚ ": DSK:LMWIND;NWSOPR 36 %21-MAY-81î "‡" SHADOW's Documentation Y4 The Keyboard "M Terminal Clear-Input  Esc Clear HDiscards‚any‚typed-ahead‚keyboard‚input‚which‚has‚not‚yet‚been‚read‚by‚a  Hprogram.‚  " Terminal/Esc Call  HPuts‚îyou‚îinto‚îa‚îbreak‚îread-eval-print‚loop,‚using‚the‚"cold-load-stream".‚This  His‚îa‚îway‚îof‚îgetting‚îto‚a‚Lisp‚read-eval-print‚loop‚that‚completely‚bypasses‚the  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  HForces‚your‚current‚process‚into‚the‚error‚handler.‚It‚should‚type‚out  H">>BREAK"‚and‚the‚error-handler‚prompt‚"".‚You‚can‚poke‚around‚in‚the  Hprocess,‚then‚ type‚ control-C‚ to‚ continue.‚  " Terminal/Esc S  HSwitches‚îyou‚to‚another‚"selectable"‚window.‚Typing‚a‚number‚before‚the‚"S"  Hcontrols‚exactly‚what‚happens.‚With‚no‚numeric‚argument,‚you‚get‚the‚most  Hrecently‚ selected‚ window;‚repeating‚ this‚ several‚ times‚ will‚îcycle‚îthough‚îall‚îthe  Havailable‚windows.‚With‚a‚numeric‚argument‚of‚-1‚(or‚just‚-),‚you‚get‚the  Hleast‚îrecently‚îselected‚window;‚repeating‚this‚several‚times‚will‚cycle‚through  Hall‚ the‚ available‚ windows‚ in‚ the‚ reverse‚ order.‚  H[This‚description‚is‚not‚self‚consistent.‚If‚T/E‚S‚gets‚you‚the‚most‚recently  Hselected‚window,‚then‚typing‚it‚twice‚should‚have‚no‚cumulative‚eect;‚it  Hleaves‚you‚where‚you‚started.‚Under‚what‚circumstances‚does‚it‚really‚get  Hyou‚ the‚ most‚ recently‚ selected‚ window?]‚ " HWith‚ a‚ numeric‚ argument‚ of‚ 0‚ you‚ get‚ a‚îwindow‚îwhich‚îis‚îwaiting‚îto‚îtype‚îout  Hwhen‚deexposed‚or‚to‚show‚you‚an‚error‚in‚a‚background‚process.‚[And‚if  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‚îargument‚n‚,  Hyou‚ get‚ the‚ n‚'th‚ most‚ recently‚ selected‚ window.‚ " H"Esc‚S"‚and‚"Esc‚-‚S"‚will‚undo‚each‚other,‚and‚"Esc‚1‚S"‚will‚undo‚itself.  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  HControls‚the‚who-line.‚What‚happens‚depends‚on‚the‚number‚typed‚before  Hthe‚"W".‚With‚no‚numeric‚argument,‚the‚who-line‚is‚redisplayed.‚Numeric  Harguments‚are‚1,‚let‚the‚who-line‚follow‚the‚process‚talking‚to‚the‚keyboard.  H2,‚freeze‚the‚who-line‚on‚the‚process‚it‚is‚currently‚showing.‚3,‚freeze‚the  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.‚When‚the‚who-line‚is‚frozen‚onto‚a‚particular‚process,‚it‚displays  Hthe‚name‚of‚that‚process‚in‚the‚place‚where‚it‚would‚normally‚display‚your  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?  HFrom‚what‚speaker?]‚Use‚Terminal‚S‚to‚return‚to‚the‚previously-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 8In‚addition‚to‚these‚commands,‚there‚are‚a‚set‚of‚similar‚commands‚introduced‚by‚the  System‚key‚(Top/Esc‚on‚old‚keyboards).‚These‚commands‚are‚used‚for‚switching‚what  program‚ or‚ "system"‚ you‚ are‚ talking‚ to.‚ " 8In‚general‚these‚work‚by‚selecting‚the‚next‚window‚of‚the‚specied‚type‚on‚a‚ring‚of  such‚î(so‚îthat‚îrepeating‚îthe‚îcommand‚îwill‚îcycle‚îthrough‚îall‚îexisting‚îwindows‚îof‚that‚type.)‚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 HThe‚inspector.‚This‚is‚a‚display-oriented‚data-structure‚examination‚program,  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,‚you‚can‚only‚select‚back‚an‚existing‚one‚that‚is‚in‚the‚middle  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 " 8The‚ 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  cursor‚to‚show‚you‚what‚you‚can‚do‚with‚the‚mouse‚buttons.‚Whenever‚it‚makes‚sense,  clicking‚the‚left-hand‚mouse‚button‚while‚pointing‚at‚a‚window‚will‚select‚that‚window.‚If  you‚point‚at‚the‚visible‚portion‚of‚a‚deexposed‚window‚and‚click‚left,‚the‚rest‚of‚the  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  what‚it‚does‚of‚course‚depends‚on‚the‚particular‚program‚controlling‚the‚display‚to‚which  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‚îstraight‚up.‚The‚editor‚uses‚this‚to‚show‚that‚it‚is‚asking‚you‚for  the‚name‚of‚a‚function‚or‚for‚a‚symbol.‚If‚you‚point‚the‚mouse‚at‚a‚function‚name,‚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 8A‚î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‚îdisplayed‚all‚at‚once,‚so‚you‚see  only‚a‚portion‚of‚the‚contents,‚and‚can‚scroll‚it‚up‚and‚down.‚If‚the‚mouse‚cursor‚is‚a  single-headed‚arrow,‚moving‚the‚mouse‚slowly‚in‚the‚direction‚of‚the‚arrow‚will‚scroll‚the  window,‚revealing‚more‚of‚the‚text‚in‚the‚direction‚the‚arrow‚points,‚while‚moving‚the  mouse‚ quickly‚ will‚ let‚ you‚ out‚ of‚ the‚ window.‚If‚ it‚ is‚ a‚ double-headed‚îarrow,‚there‚îwill‚îalso  be‚a‚thin‚black‚bar‚nearby,‚the‚"scroll‚bar".‚The‚relation‚of‚this‚bar‚to‚the‚edge‚of‚the  window‚îto‚îwhich‚îit‚îis‚attached‚shows‚what‚portion‚of‚the‚window's‚contents‚is‚visible.‚The  mouse‚ commands‚ in‚ this‚ case‚ are‚  " Left HMove‚ the‚ line‚ next‚ to‚ the‚ mouse‚ to‚ the‚ top‚ of‚ the‚ window.‚  " Left-double HMove‚ the‚ line‚ next‚ to‚ the‚ mouse‚ to‚ the‚ bottom‚ of‚ the‚ window.‚  " Right HMove‚ the‚ top‚ line‚ to‚ where‚ the‚ mouse‚ is.‚  " Right-double  HMove‚the‚bottom‚line‚to‚where‚the‚mouse‚is.‚Because‚of‚this‚command  Hdenition,‚you‚îcannot‚îget‚îto‚îthe‚îsystem‚îmenu‚îwhile‚îthe‚îmouse‚îis‚îdisplaying‚îa  Hdouble-headed‚ fat‚ arrow.‚  " Middle HJump‚to‚a‚place‚in‚the‚window‚contents‚as‚far,‚proportionally,‚from‚its  Hbeginning‚ as‚ the‚ mouse‚ is‚ from‚ the‚ top‚ of‚ the‚ window.‚  "= 1.4 The System Menu " 8To‚îget‚îinto‚îthe‚îsystem‚îmenu,‚click‚îthe‚right-hand‚button‚on‚the‚mouse.‚If‚the‚mouse‚is  in‚a‚window‚that‚has‚mouse‚commands,‚it‚generally‚takes‚two‚clicks‚in‚quick‚succession‚to  get‚ the‚ system‚îmenu;‚otherwise,‚either‚îone‚îor‚îtwo‚îclicks‚îon‚îthe‚îright-hand‚îbutton‚îwill‚îwork.  There‚are‚a‚few‚obscure‚states,‚such‚as‚the‚scroll‚bar‚mentioned‚above,‚where‚you‚cannot  get‚îto‚îthe‚îsystem‚îmenu.‚Just‚îmove‚îthe‚îmouse‚îa‚îlittle‚îthen‚îclick.‚You‚îcan‚îalways‚îget‚to‚the  system‚ menu‚ by‚ putting‚ the‚ mouse‚ in‚ the‚ who-line‚ and‚ clicking‚ the‚ right-hand‚ button.‚ " 8Having‚caused‚the‚system‚menu‚to‚appear,‚you‚can‚move‚the‚mouse‚around‚in‚it.‚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 HCreate‚a‚window.‚First‚you‚must‚choose‚the‚type‚of‚window‚from‚a‚menu,  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 HGives‚ 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 HCalls‚ the‚ inspector,‚which‚ is‚ documented‚ below.‚ "Y DSK:LMWIND;NWSOPR 36 %21-MAY-81î "‡" SHADOW's Documentation Y7 TThe Screen Editor "M Trace HGives‚ you‚ a‚ menu‚ interface‚ to‚ the‚ Trace‚ package.‚[More‚ about‚ this‚ later.]‚  " Edit Screen HPuts‚you‚into‚the‚Screen‚Editor,‚which‚does‚all‚sorts‚of‚window‚moving,  Hreshaping,‚burying,‚etc.‚operations.‚This‚ is‚ documented‚ in‚ detail‚ below.‚  " Split Screen HLets‚ you‚ create‚ several‚ windows‚ which‚ will‚ share‚ the‚ screen.‚  " Layouts HProvides‚a‚menu‚by‚which‚you‚may‚save‚and‚restore‚sets‚of‚windows‚and  Htheir‚ arrangement‚ on‚ the‚ screen.‚  " Other HGives‚ you‚ another‚ menu‚ containing‚ the‚ following‚ additional‚ operations.‚  H" HArrest  HUn-Arrest  HReset Do‚the‚specied‚operation‚to‚the‚process‚(if‚any)‚associated  with‚the‚window‚the‚mouse‚was‚in‚when‚you‚called‚for‚the  system‚ menu.‚  H" HKill Destroy‚ the‚ window‚ the‚îmouse‚îwas‚îin‚îwhen‚îyou‚îcalled‚îfor‚îthe  system‚ menu.‚  H" HEmergency Break  Puts‚you‚into‚a‚breakpoint‚in‚the‚cold-load‚stream,‚like  Terminal‚ Call.‚  H" HRefresh Refreshes‚the‚window‚the‚mouse‚was‚in‚when‚you‚called‚for  the‚system‚menu.‚This‚is‚like‚Terminal‚Clear-Screen‚or‚Esc  Form,‚but‚ applies‚ to‚ just‚ one‚ window.‚  "= 1.5 The Screen Editor " 8The‚screen‚editor‚is‚a‚mouse-controlled‚program‚for‚manipulating‚the‚layout‚of‚your  screen.‚It‚îcan‚îbe‚îused‚îto‚îmove‚îwindows‚îaround,‚to‚change‚the‚size‚and‚shape‚of‚windows,  and‚ to‚ change‚ which‚ windows‚ are‚ displayed.‚ " 8The‚screen‚editor‚is‚gotten‚from‚the‚system‚menu‚with‚the‚Edit‚Screen‚command.  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  whole‚screen;‚another‚pop-up‚menu‚will‚appear‚with‚the‚possible‚superiors‚you‚can‚call‚the  screen‚ editor‚ on.‚ " 8[The‚word‚"frame"‚has‚not‚been‚dened‚in‚this‚document.‚This‚paragraph‚refers‚to‚the  window‚ hierarchy,‚and‚ might‚ not‚ be‚ understood‚ by‚ a‚ novice.]‚ " 8The‚screen‚editor‚works‚by‚displaying‚a‚menu‚of‚commands.‚You‚select‚a‚command‚by  clicking‚ on‚ it‚ with‚ the‚ mouse‚ and‚ the‚ menu‚ disappears.‚If‚ the‚ command‚ was‚ Quit,‚the‚îscreen  editor‚goes‚away.‚Otherwise‚it‚asks‚you‚to‚point‚to‚any‚windows,‚edges,‚etc.‚needed‚as  arguments‚to‚the‚command,‚by‚changing‚the‚shape‚of‚the‚mouse‚cursor‚and‚putting‚a  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‚îpoint‚to‚something,‚clicking‚the‚left‚button‚will  select‚what‚the‚mouse‚is‚pointing‚at.‚Clicking‚either‚of‚the‚other‚two‚buttons‚will‚abandon  the‚ current‚ command.‚ "y DSK:LMWIND;NWSOPR 36 %21-MAY-81î "‡" SHADOW's Documentation Y8 TThe Screen Editor "M 8The‚ commands‚ in‚ the‚ screen‚ editor‚ menu‚ are:‚  " Bury HClick‚ 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 HClick‚on‚a‚partially‚visible‚window‚with‚the‚mouse‚and‚it‚will‚be‚moved‚to  Hthe‚ top‚ of‚ the‚ heap‚ of‚ windows,‚becoming‚ fully‚ exposed.‚  " Kill HClick‚ on‚ a‚ window‚ with‚ the‚ mouse‚ and‚ it‚ will‚ be‚ killed.‚  " Undo HAttempts‚to‚restore‚the‚state‚from‚before‚the‚last‚screen‚editor‚command.  HBeeps‚ if‚ it‚ cannot.‚  " Quit HExits‚ the‚ screen‚ editor.‚  " Move Window  HClick‚ on‚ a‚ window‚ with‚ the‚ mouse‚ and‚ the‚ outline‚ of‚ it‚ will‚ follow‚ the‚îmouse  Haround‚îuntil‚îyou‚release‚the‚mouse‚button.‚The‚window‚will‚then‚be‚moved  Hto‚îwhere‚îthe‚îoutline‚îis.‚[If‚îthe‚îwindow‚îwas‚îonly‚îpartially‚îvisible,‚is‚it‚moved  Hto‚ the‚ top‚ of‚ the‚ heap?]‚  " Reshape HClick‚îon‚îa‚îwindow‚with‚the‚mouse,‚then‚click‚the‚two‚new‚positions‚for‚the  Hupper-left‚and‚lower-right‚corners‚of‚that‚window.‚As‚usual,‚if‚you‚put‚the  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  HThis‚îcollects‚îa‚îlist‚îof‚îwindow‚îedges‚îand‚îcorners‚îto‚îbe‚îmoved.‚The‚things‚on  Hthe‚list‚are‚marked‚with‚large‚black‚highlights.‚A‚large‚arrow‚follows‚the  Hmouse‚around,‚showing‚what‚edge‚or‚corner‚it‚is‚currently‚pointing‚at.  HClicking‚ on‚îa‚îwindow's‚îedge‚îor‚îcorner‚îwill‚îadd‚îor‚îsubtract‚îit‚îfrom‚îthe‚îlist‚îof  Hthings‚îto‚îbe‚îmoved.‚A‚long‚click‚[?]‚will‚pick‚up‚the‚whole‚lot,‚and‚will‚let  Hyou‚move‚it‚around‚until‚the‚button‚is‚clicked‚again,‚at‚which‚point‚the  Hwindows‚ involved‚ will‚ be‚ modied‚îaccordingly.‚As‚îa‚îspecial‚îhack,‚if‚îyou‚îadd  Han‚edge‚or‚corner‚that‚abuts‚another‚edge‚or‚corner,‚that‚other‚edge‚or  Hcorner‚will‚be‚added‚too,‚so‚that‚they‚will‚remain‚abutting‚when‚you‚move  Hthem.‚If‚ that‚ isn't‚ what‚ you‚ wanted,‚click‚ on‚ the‚ new‚ one‚ and‚ it‚ will‚ turn‚ o.  H[Worded‚ weirdly]‚  " Expand Window  HClick‚ 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 HAttempts‚to‚ll‚up‚all‚wasted‚space‚on‚the‚screen‚by‚expanding‚neighboring  Hwindows‚îinto‚îone‚îanother.‚Since‚îno‚îwindow‚îis‚ever‚moved‚or‚made‚smaller,  Hthis‚command‚will‚not‚manage‚to‚get‚rid‚of‚all‚whitespace‚in‚some  Hcomplicated‚ situations,‚but‚îit‚îusually‚îsucceeds,‚and‚îit‚îalways‚îproduces‚îa‚îstable  Hposition‚relative‚to‚its‚own‚transformation.‚[Exactly‚how‚is‚"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 " 8When‚ certain‚ asynchronous‚ events‚ occur,‚unrelated‚ to‚ what‚ you‚îare‚îcurrently‚îdoing‚îwith  the‚selected‚window,‚the‚system‚noties‚you‚by‚displaying‚an‚explanatory‚message.‚Such‚an  event‚might‚be‚an‚error‚in‚a‚process‚whose‚window‚is‚not‚exposed,‚an‚error‚or‚other  attempt‚to‚type‚out‚by‚a‚"background"‚process‚which‚has‚no‚associated‚window,‚or‚an  attempt‚ to‚îtype‚îout‚îon‚îa‚îdeexposed‚îwindow‚îof‚îa‚îkind‚îwhich‚înoties‚îrather‚îthan‚îjust‚îwaiting  for‚you‚to‚expose‚it.‚The‚system‚noties‚you‚in‚one‚of‚two‚ways,‚depending‚on‚what  windows‚ are‚ currently‚ on‚ your‚ screen.‚ " 8One‚ way‚ that‚ you‚ can‚ be‚ notied‚îis‚îby‚îprinting‚îof‚îa‚îmessage‚îenclosed‚îin‚îsquare‚îbrackets.  This‚method‚is‚used‚when‚the‚selected‚window‚is‚a‚Lisp‚listener,‚or‚any‚other‚type‚of  window‚that‚accepts‚notications.‚If‚the‚notication‚informs‚you‚of‚a‚window‚waiting‚to  type‚out‚or‚to‚tell‚you‚about‚an‚error‚incurred‚by‚some‚program,‚then‚you‚can‚select‚that  window‚at‚any‚time‚by‚typing‚"Terminal/Esc‚0‚S".‚You‚can‚return‚from‚there‚to‚your  original‚ window‚ by‚ typing‚ "Terminal/Esc‚îS".‚If‚îmultiple‚îwindows‚îare‚îwaiting‚îfor‚îattention‚îin  this‚îway,‚they‚are‚all‚remembered‚and‚you‚can‚select‚them‚one‚after‚another.‚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.‚ " 8The‚other‚way‚you‚can‚be‚notied‚is‚by‚the‚popping-up‚of‚a‚small‚window‚with‚the  message‚ displayed‚ in‚ it.‚This‚ happens‚ when‚ there‚ is‚ no‚ good‚ place‚ on‚ the‚ screen‚îto‚îprint‚îthe  message.‚In‚this‚case‚you‚can't‚do‚too‚much‚until‚you‚point‚the‚mouse‚at‚the‚notication  window‚and‚click‚the‚left‚button,‚at‚which‚point‚the‚notication‚will‚disappear‚and‚the  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".‚The‚present‚name‚makes  me‚ think‚ that‚ its‚ purpose‚ is‚ to‚ handle‚ window‚ errors.]‚ " 8This‚îsection‚îdescribes‚îthe‚îwindow‚oriented‚error‚handler,‚which‚can‚be‚gotten‚from‚the  standard‚ keyboard‚ error‚ handler‚ by‚ typing‚ Control-Meta-W‚ to‚ the‚ ‚ prompt.‚ " 8The‚îerror‚îhandler‚îwindow‚is‚divided‚into‚seven‚panes.‚At‚the‚bottom‚is‚a‚lisp‚window,  which‚ordinarily‚provides‚a‚read-eval-print‚loop,‚similar‚to‚the‚regular‚keyboard‚error  handler.‚More‚ commands‚ are‚ available‚ by‚ using‚ the‚ mouse‚ in‚ the‚ other‚ windows‚ as‚îdescribed  below.‚ " 8At‚the‚top‚is‚a‚display‚of‚the‚disassembled‚or‚ground‚code‚for‚the‚currently‚selected  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  clicking‚with‚the‚middle‚button‚stus‚it‚into‚the‚lisp‚window,‚echoing‚it‚and‚making‚it‚the  value‚ of‚ *.‚ " 8[Our‚ rather‚ peculiar‚ reader‚ knows‚ what‚ "mouse-sensitive"‚ means.]‚ " 8Next‚are‚the‚args‚and‚locals‚windows,‚side‚by‚side,‚displaying‚the‚names‚and‚values‚of  the‚îarguments‚îto‚îthe‚îcurrent‚îstack‚frame‚and‚its‚local‚variables‚and‚special-variable‚bindings.  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  the‚value‚in‚the‚lisp‚window.‚Clicking‚on‚just‚the‚value‚will‚print‚it‚in‚the‚lisp‚window. "  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.‚ " 8When‚something‚is‚printed‚in‚the‚Lisp‚window‚by‚pointing‚at‚it‚with‚the‚mouse,‚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)‚îis‚set‚to‚the‚symbol.‚You  can‚ use‚ *‚ to‚ feed‚ the‚ value‚ to‚ any‚ Lisp‚ function,‚and‚ +‚ to‚ alter‚ the‚ value.‚ " 8Next‚is‚the‚stack‚window,‚which‚displays‚in‚a‚pseudo-list‚format‚the‚functions‚and  arguments‚on‚the‚stack.‚Clicking‚on‚a‚function‚or‚argument‚or‚sublists‚of‚them‚will‚cause  them‚to‚be‚printed‚in‚the‚lisp‚window‚as‚in‚the‚argument‚or‚local‚windows.‚Also,‚clicking  the‚ mouse‚ to‚ the‚ left‚ of‚ a‚ line‚ containing‚ a‚ particular‚ stack‚ frame‚ (when‚ the‚ cursor‚ is‚îa‚îright-  pointing‚arrow)‚will‚make‚the‚error‚handler‚select‚that‚frame,‚changing‚what‚the‚code,  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 HReprints‚ the‚ error‚ message‚ for‚ the‚ current‚ error,‚in‚ the‚ lisp‚ window.‚  " Quit one level  HExits‚just‚the‚window‚error‚handler,‚like‚Meta-Z‚in‚the‚keyboard‚error  Hhandler.‚  " Exit HLike‚ Control-Z‚ in‚ the‚ keyboard‚ error‚ handler.‚  " Arglist HAsks‚for‚the‚name‚of‚a‚function,‚which‚can‚be‚typed‚on‚the‚keyboard,‚or  Hmoused‚if‚it‚is‚on‚the‚screen.‚Picking‚an‚actor‚or‚a‚closure‚will‚ask‚for‚the  Hmessage‚name‚to‚that‚actor‚and‚print‚the‚arguments‚to‚its‚method‚for‚that  Hmessage.‚Picking‚a‚line‚of‚a‚stack‚frame‚from‚the‚stack‚window‚will‚try‚to  Halign‚the‚printout‚of‚the‚arguments‚with‚what‚value‚was‚supplied‚in‚that  Hposition‚ in‚ that‚ frame.‚  " Inspect HAsks‚for‚an‚object‚which‚can‚be‚pointed-to‚with‚the‚mouse‚or‚typed‚in,‚and  Hinspects‚îit‚îin‚îthe‚upper‚window.‚See‚the‚next‚section‚for‚information‚on‚the  HInspector.‚  " Edit HReads‚ the‚ name‚ of‚ a‚ function‚ in‚ the‚ same‚ fashion‚îas‚îthe‚îArglist‚îcommand‚îand  Hinvokes‚ the‚ editor‚ on‚ that‚ function.‚  " Retry HAttempts‚ to‚ restart‚ the‚ current‚ frame,‚like‚ the‚ Control-Meta-R‚ command.‚  " Return a value  HAsks‚for‚the‚name‚of‚a‚value‚(which‚can‚be‚selected‚with‚the‚mouse)‚and  Hreturns‚ it‚ from‚ the‚ current‚ frame,‚like‚ Control-R.‚  " Continue HLike‚ Control-C,‚except‚ that‚ the‚îmouse‚îcan‚îbe‚îused‚îto‚îselect‚îthe‚îobject‚îit‚îasks  Hyou‚ for‚ in‚ order‚ to‚ continue.‚  " Set arg HSelect‚an‚argument‚or‚local‚with‚the‚mouse‚and‚type‚or‚mouse‚a‚new‚value  Hto‚ be‚ substituted‚ in.‚  " Search HLike‚ the‚ Control-S‚ command,‚except‚ that‚ the‚ mouse‚ can‚ be‚ used.‚  " Throw HLike‚îControl-T,‚it‚îasks‚îfor‚a‚tag‚and‚a‚value‚and‚throws‚there;‚the‚mouse‚of  Hcourse‚ can‚ be‚ used.‚  " Specials HTypes‚ out‚ the‚ special‚ bindings‚ of‚ the‚ current‚ stack‚ frame‚ in‚ the‚ lisp‚ window.‚  " T  NIL HClicking‚one‚of‚these‚supplies‚that‚symbol‚as‚an‚argument‚or‚value‚for‚other "3 DSK:LMWIND;NWSOPR 36 %21-MAY-81î "‡" SHADOW's Documentation Q11 The Inspector "M Hcommands.‚These‚ can‚ also‚ be‚ used‚ to‚ answer‚ yes-or-no‚ questions.‚  "= 1.8 The Inspector " 8The‚îinspector‚îis‚îa‚îwindow-oriented‚îprogram‚îfor‚îpoking‚îaround‚îin‚îdata‚îstructures.‚When  you‚îask‚îto‚inspect‚a‚particular‚object,‚its‚components‚are‚displayed.‚What‚the‚"components"  are‚depends‚on‚the‚type‚of‚object;‚for‚example,‚the‚components‚of‚a‚list‚are‚its‚elements,  and‚those‚of‚a‚symbol‚are‚its‚value‚binding,‚function‚denition,‚and‚property‚list.‚The  objects‚displayed‚on‚the‚screen‚by‚the‚inspector‚are‚mouse-sensitive;‚when‚you‚point‚the  mouse‚at‚an‚object‚a‚box‚appears‚around‚it.‚Clicking‚a‚mouse‚button‚will‚do‚something‚to  that‚ object,‚such‚ as‚ inspecting‚ it,‚modifying‚ it,‚or‚ giving‚ it‚ as‚ the‚ argument‚ to‚ a‚ function.‚ " 8The‚following‚documentation‚is‚on‚the‚current‚version.‚As‚this‚is‚still‚an‚evolving  program,‚it‚ may‚ change‚ without‚ notice.‚ " 8The‚inspector‚can‚be‚part‚of‚another‚program,‚such‚as‚the‚window‚error‚handler,‚or‚it  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‚îa‚frame‚consisting‚of‚a‚small‚interaction‚window‚on‚the‚top,  a‚îhistory‚îwindow‚îand‚îmenu‚îimmediately‚îbelow‚îthat,‚followed‚by‚some‚number‚of‚inspection  windows‚(three‚in‚the‚default‚standalone‚inspector).‚Each‚inspection‚window‚can‚inspect‚a  dierent‚object.‚When‚you‚inspect‚an‚object‚it‚appears‚in‚the‚large‚window‚at‚the‚bottom,  and‚ the‚ previously‚ inspected‚ objects‚ shift‚ upward.‚ " 8Other‚programs,‚such‚as‚the‚window‚error‚handler,‚may‚utilize‚inspection‚and‚history  windows,‚and‚though‚the‚output‚will‚look‚the‚same,‚the‚handling‚of‚mouse‚buttons‚may  depend‚upon‚the‚particular‚program‚being‚run.‚The‚discussion‚below‚focuses‚primarily‚on  the‚ standalone‚ inspector.‚ " 8The‚îhistory‚îwindow‚îmaintains‚îa‚îlist‚of‚all‚objects‚that‚have‚been‚inspected.‚It‚is‚usually  kept‚ in‚ LRU‚ order‚ ‚ the‚ least‚ recently‚ displayed‚îobject‚îis‚îat‚îthe‚îtop,‚and‚îthe‚îmost‚îrecently  displayed‚îobject‚îis‚îat‚the‚bottom.‚Any‚mouse‚sensitive‚object‚in‚the‚history‚window‚can‚be  inspected‚by‚clicking‚on‚it.‚There‚is‚a‚"line‚region"‚at‚the‚left‚hand‚side‚of‚the‚history  window,‚which‚allows‚operations‚on‚the‚history‚window.‚In‚the‚line‚region‚the‚mouse  cursor‚îchanges‚îto‚îa‚îrightward-pointing‚îarrow.‚Single-click-left‚îin‚the‚line‚region‚inspects‚the  object.‚This‚is‚sometimes‚useful‚when‚the‚object‚is‚a‚list‚and‚it‚is‚inconvenient‚to‚position  the‚mouse‚at‚the‚open‚paren.‚Single-click-middle‚deletes‚the‚object‚from‚the‚history.‚The  history‚îwindow‚îhas‚îa‚îscroll‚îbar‚îat‚îthe‚îfar‚îleft,‚as‚îwell‚îas‚îa‚îsingle‚îline‚îscrolling‚îregion‚îin‚the  middle‚ of‚ the‚ window‚ at‚ both‚ the‚ top‚ and‚ the‚ bottom.‚ " 8The‚history‚window‚also‚maintains‚a‚cache‚allowing‚quick‚redisplay‚of‚previously  displayed‚îobjects.‚This‚îmeans‚îthat‚îmerely‚îreinspecting‚îan‚îobject‚îwill‚not‚reect‚any‚changes  in‚its‚state.‚The‚single-click-middle‚option‚of‚the‚line‚region‚deletes‚the‚object‚from‚the  cache‚as‚well‚as‚deleting‚it‚from‚the‚history‚window.‚The‚DeCache‚command‚in‚the‚menu  may‚ be‚ used‚ to‚ clear‚ everything‚ from‚ the‚ cache.‚ " 8At‚îthe‚îtop‚îof‚îan‚îinspection‚îwindow‚îis‚îa‚îlabel,‚which‚îis‚îthe‚îprinted‚îrepresentation‚of‚the  object‚îbeing‚îinspected‚îin‚îthat‚window,‚or‚else‚the‚words‚"a‚list"‚meaning‚that‚a‚list‚is‚being  inspected.‚The‚main‚body‚of‚an‚inspection‚window‚is‚a‚display‚of‚the‚components‚of‚the  object,‚labelled‚îwith‚îtheir‚înames‚îif‚îany.‚This‚îdisplay‚îmay‚îbe‚îscrolled‚îusing‚îthe‚îscroll‚bar‚on  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 8Clicking‚ on‚ any‚ mouse‚ sensitive‚ object‚ in‚ an‚ inspection‚ window‚ inspects‚îthat‚îobject.‚The  three‚mouse‚buttons‚have‚dierent‚meanings,‚though.‚Single-click-left‚inspects‚the‚object‚in  the‚îbottom‚îwindow,‚pushing‚îthe‚îprevious‚objects‚up.‚Single-click-middle‚inspects‚the‚object,  but‚ leaves‚ the‚ source‚î(namely,‚the‚îobject‚îbeing‚îinspected‚îin‚îthe‚îwindow‚îin‚îwhich‚îthe‚îmouse  was‚clicked)‚in‚the‚second‚window‚from‚the‚bottom.‚Single-click-right‚tries‚to‚nd‚and  inspect‚the‚"function"‚associated‚with‚the‚selected‚object‚(e.g.‚the‚function‚binding‚if‚a  symbol‚ was‚ selected).‚ " 8The‚ expanded‚ form‚ that‚ is‚ chosen‚ depends‚ upon‚ the‚ type‚ of‚ the‚ object:‚  " Symbol HThe‚name,‚value,‚function,‚property‚list,‚and‚package‚of‚the‚symbol‚are  Hdisplayed.‚All‚ but‚ the‚ name‚ are‚ modiable.‚  " List HThe‚îlist‚îis‚îdisplayed‚îground‚îby‚îthe‚system‚grinder.‚Any‚piece‚of‚substructure  His‚ selectable,‚and‚ any‚ "car"‚ or‚ atom‚ in‚ the‚ list‚ can‚ be‚ modied.‚  " Instance HThe‚ 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  HThe‚îfunction,‚and‚îthe‚înames‚îand‚îvalues‚of‚the‚closed‚variables‚are‚displayed.  HFor‚îan‚îentity‚îthe‚îtype‚or‚class‚is‚displayed‚as‚well.‚The‚values‚of‚the‚closed  Hvariables‚ are‚ modiable.‚  " Named structure  HThe‚ name‚ and‚ value‚ of‚ each‚ slot‚ are‚ displayed.‚The‚ values‚ are‚ modiable.‚  " Array HThe‚leader‚of‚the‚array‚is‚displayed‚if‚present.‚For‚one‚dimensional‚arrays,  Hthe‚ elements‚ of‚ the‚ array‚ are‚ also‚ displayed.‚The‚ elements‚ are‚ modiable.‚  " FEF HThe‚ disassembled‚ code‚ is‚ displayed.‚  " Select Method  HThe‚keyword/function‚pairs‚are‚shown,‚in‚alphabetical‚order‚by‚keyword.  HThe‚ function‚ associated‚ with‚ a‚ keyword‚ is‚ settable‚ via‚ the‚ keyword.‚  " Stack Frame HThis‚îis‚îa‚îspecial‚îinternal‚îtype‚îthat‚îis‚used‚by‚the‚window‚error‚handler.‚It‚is  Hdisplayed‚as‚either‚interpreted‚code‚(a‚list),‚or‚as‚a‚FEF‚with‚an‚arrow  Hpointing‚ to‚ the‚ next‚ instruction‚ to‚ be‚ executed.‚ " 8The‚interaction‚window‚is‚used‚to‚prompt‚the‚user‚and‚to‚receive‚input.‚If‚the‚user‚is  not‚being‚asked‚a‚question,‚then‚a‚read-eval-inspect‚loop‚is‚active.‚Forms‚typed‚will‚be  echoed‚in‚the‚interaction‚window‚and‚evaluated.‚The‚result‚is‚not‚printed,‚but‚inspected  instead.‚When‚the‚user‚is‚prompted‚for‚input,‚usually‚due‚to‚having‚invoked‚a‚menu  operation,‚any‚input‚being‚typed‚at‚the‚read-eval-inspect‚loop‚is‚saved‚away‚and‚erased  from‚the‚interaction‚window.‚When‚the‚interaction‚with‚the‚user‚is‚over,‚the‚input‚is‚re-  echoed‚ and‚ the‚ user‚ may‚ continue‚ to‚ type‚ the‚ form.‚ " 8Some‚special‚keyboard‚characters‚are‚recognized‚when‚not‚in‚the‚middle‚of‚typing‚in‚a  form.‚  " Control-Z HExits‚ and‚ deactivates‚ the‚ inspector.‚  " Break HRuns‚ a‚ break‚ loop‚ in‚ the‚ typeout‚ window‚ of‚ the‚ lower‚ inspection‚ pane.‚ " 8The‚ menu‚ is‚ for‚ infrequently‚ used‚ but‚ useful‚ commands:‚  " Exit HEquivalent‚ 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 HSimilar‚to‚Exit,‚but‚allows‚selection‚of‚an‚object‚to‚be‚returned‚as‚the‚value  Hof‚ the‚ call‚ to‚ tv:inspect.‚  " Modify HAllows‚simple‚editing‚of‚objects.‚"Selecting‚Modify‚changes‚the‚mouse  Hsensitivity‚ of‚ items‚ on‚ the‚ screen‚îto‚îonly‚îinclude‚îelds‚îthat‚îare‚îmodiable.‚In  Hthe‚typical‚case‚of‚named‚slots,‚the‚names‚are‚the‚sensitive‚parts.‚When‚the  Held‚to‚modify‚has‚been‚selected,‚a‚new‚value‚may‚be‚specied‚either‚by  Htyping‚a‚form‚to‚be‚evaluated‚or‚by‚selecting‚any‚normally‚mouse‚selectable  Hobject‚ with‚îthe‚îmouse.‚The‚îobject‚îbeing‚îmodied‚îis‚îredisplayed.‚Single-click-  Hright‚ at‚ any‚ time‚ aborts‚ the‚ modication.‚  " DeCache HFlushes‚all‚knowledge‚about‚the‚insides‚of‚previously‚displayed‚objects‚and  Hredisplays‚ the‚ currently‚ displayed‚ objects.‚  " Clear HClears‚ 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 2Table 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î