PK 5FqZ aaareadme.psIMVMSVV7.1IM$VFABPB@m!ЦIMVFHC,1 $; L ~IM)VDAT,%Ė:Zɰkt@IMVPROXV'b1@0IMVRDT/ =RĖ:%!PS-Adobe-2.0%%Creator: VAX DOCUMENT V2.0K%%+Copyright 1986,1987,1988,1989,1990,1991 DIGITAL EQUIPMENT CORPORATION. %%+All Rights Reserved.%%DocumentFonts: (atend)%%Pages: (atend) %%EndComments*/DEC_DVC$dict where { %FIND DICTIONARY pop}{ %else /DEC_DVC$dict 300 dict def } ifelse %/BeginDVC$PSDoc { %BEGIN DOCUMENT vmstatus pop pop 0 eq {' DEC_DVC$dict begin InitializeState }{ %else< /DVC$PSJob save def DEC_DVC$dict begin InitializeState /DVC$PSFonts save def } ifelse} def"/EndDVC$PSDoc { %END DOCUMENT'% --- Preserving current page count --- vmstatus pop pop 0 eq { end }{ %else/ DVC$PSFonts restore end DVC$PSJob restore } ifelse} def%DEC_DVC$dict begin%5mark % CREATE ISOLatin1Encoding if not there already/ISOLatin1Encoding0 8#000 1 8#054 {StandardEncoding exch get} for  /minus0 8#056 1 8#217 {StandardEncoding exch get} for /dotlessi 0 8#301 1 8#317 {StandardEncoding exch get} for H /space /exclamdown /cent /sterling /currency /yen /brokenbar /section G /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen L /registered /macron /degree /plusminus /twosuperior /threesuperior /acute E /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine L /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave O /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute O /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde L /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave M /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute G /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute N /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntildeJ /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave < /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis 9 /ISOLatin1Encoding where not {256 array astore def} if cleartomark%-/DOCPSE ISOLatin1Encoding 256 array copy def "mark % CREATE DOCPSE ENCODING 8#055 /hyphenC 8#201 /bullet 8#202 /emdash 8#203 /endash 8#204 /daggerC 8#205 /daggerdbl 8#206 /registered 8#207 /trademark %8#210 /Delta? 8#211 /fi 8#212 /fl 8#213 /OE 8#214 /oe 8#215 /Ydieresis) counttomark -1 bitshift % DIVIDE BY 2: {DOCPSE 3 1 roll put} repeat % STACK NOW CONTAINS MARK cleartomark%9/reencodedict 10 dict def %Local storage for "ReENCODE"3/ReENCODE { % /basefont /newfont encoding ReENCODE7 /newencoding exch def %ARG: NAME OF ENCODING VECTORC /newfontname exch def %ARG: NEW NAME FOR FONT AFTER RE-ENCODING findfont> /basefontdict exch def %ARG: NAME OF FONT TO BE RE-ENCODED? basefontdict maxlength dict begin %CREATE AND OPEN NEW DICT= basefontdict { %COPY ENTRIES FROM BASE FONT DICT TO NEW ONE 1 index /FID ne {5 def %IF NOT THE ONE WE'RE ENCODING, JUST COPY PTRS } { %else: pop pop %IGNORE FID AND ENCODING FOR ONE WE'RE ENCODING } ifelse } forall, /FontName newfontname def %DEFINE NEW NAME 6 /Encoding newencoding def %DEFINE NEW ENCODING VECTOR; newfontname currentdict definefont %TURN IT INTO A PS FONT3 pop %IGNORE MODIFIED DICT RETURNED BY DEFINEFONT end} def%/cvsstr 64 string def/tempmatrix matrix def%/BP { % BEGIN PAGE /Magnification exch def /Colorsused 0 def /processcolor false def /RVmatrix matrix def /DVC$PSPage save def} def%*/EP {DVC$PSPage restore} def % END PAGE%5/XP { % EXIT PAGE (TEMPORARILY) TO ADD FONTS/CHARSE % SAVE CURRENT POINT AND COLOR INFORMATION SO IT CAN BE RESET LATERH matrix currentmatrix aload pop currentrgbcolor Colorsused processcolor# /Xpos where {pop Xpos} {0} ifelse# /Ypos where {pop Ypos} {0} ifelse9 /currentpoint cvx stopped {0 0 moveto currentpoint} if / /DVC$PSPage where {pop DVC$PSPage restore} if moveto /Ypos exch def /Xpos exch def9 /processcolor exch def /Colorsused exch def setrgbcolor matrix astore setmatrix} def%-/RP {/DVC$PSPage save def} def % RESUME PAGE%A/PF {GlobalMode LocalMode} def % PURGE FONTS TO RECLAIM MEMORY%@/GlobalMode { % SWITCH TO BASE SAVE/RESTORE LEVEL, SAVING STATEK /DEC$EDMS_SEPARATE_COLORS where{pop DEC$EDMS_SEPARATE_COLORS}{9999}ifelse! RVmatrix aload pop processcolorC PortraitMode PaperWidth PaperHeight PxlResolution Resolution I Magnification Ymax Xorigin Yorigin RasterScaleFactor0 % SAVE CURRENTPOINT INFORMATION TO RESET LATER9 /currentpoint cvx stopped {0 0 moveto currentpoint} if / /DVC$PSPage where {pop DVC$PSPage restore} if# DVC$PSFonts restore RecoverState} def%2/RecoverState { % PRESERVE STATE AT BASE LEVEL 20 copyL /Ypos exch def /Xpos exch def /RasterScaleFactor exch def? /Yorigin exch def /Xorigin exch def /Ymax exch defH /Magnification exch def /Resolution exch def /PxlResolution exch defG /PaperHeight exch def /PaperWidth exch def /PortraitMode exch def< /processcolor exch def matrix astore /RVmatrix exch def< dup 9999 ne{/DEC$EDMS_SEPARATE_COLORS exch def}{pop}ifelse DoInitialScaling RVmatrix concat3 PortraitMode not {PaperWidth 0 SetupLandscape} if Xpos Ypos moveto} def%B/InitializeState { % INITIALIZE STATE VARIABLES TO DEFAULT VALUES. /Resolution 3600 def /PxlResolution 300 def5 /RasterScaleFactor PxlResolution Resolution div def /PortraitMode true def9 /Magnification 1000 def /Xorigin 0 def /Yorigin 0 defC /Xpos 0 def /Ypos 0 def /InitialMatrix matrix currentmatrix defB /Colorsused 0 def /processcolor false def /RVmatrix matrix def} def%D/LocalMode { % SWITCH FROM BASE SAVE/RESTORE LEVEL, RESTORING STATE= /Ypos exch def /Xpos exch def /RasterScaleFactor exch def6 /Yorigin exch def /Xorigin exch def /Ymax exch defH /Magnification exch def /Resolution exch def /PxlResolution exch defE /PaperHeight exch def /PaperWidth exch def /PortraitMode exch def: /processcolor exch def matrix astore /RVmatrix exch def< dup 9999 ne{/DEC$EDMS_SEPARATE_COLORS exch def}{pop}ifelse DoInitialScaling RVmatrix concat3 PortraitMode not {PaperWidth 0 SetupLandscape} if Xpos Ypos moveto- /DVC$PSFonts save def /DVC$PSPage save def} def% % ABBREVIATIONS /S /show load def/SV /save load def/RST /restore load def/Yadjust {Ymax exch sub} def%C/SXY { % (x,y) POSITION ABSOLUTE, JUST SET Xpos & Ypos, DON'T MOVE( Yadjust /Ypos exch def /Xpos exch def} def%$/XY { % (x,y) POSITION ABSOLUTE7 Yadjust 2 copy /Ypos exch def /Xpos exch def moveto} def%#/X { % (x,0) POSITION ABSOLUTEF currentpoint exch pop 2 copy /Ypos exch def /Xpos exch def moveto} def%$/Y { % (0,y) POSITION ABSOLUTE ' currentpoint pop exch Yadjust 2 copy' /Ypos exch def /Xpos exch def moveto} def%$/xy { % (x,y) POSITION RELATIVE9 neg rmoveto currentpoint /Ypos exch def /Xpos exch def} def%#/x { % (x,0) POSITION RELATIVE7 0 rmoveto currentpoint /Ypos exch def /Xpos exch def} def%#/y { % (0,y) POSITION RELATIVE@ 0 exch neg rmoveto currentpoint /Ypos exch def /Xpos exch def} def%/R { % DRAW A RULE$ /ht exch def /wd exch def gsave % 0 setgray currentpoint newpath moveto 0 ht rlineto wd 0 rlineto$ 0 ht neg rlineto wd neg 0 rlineto( closepath fill grestore wd 0 rmoveto, currentpoint /Ypos exch def /Xpos exch def} def%D/RES { % RES/ /Resolution exch def /PxlResolution exch def5 /RasterScaleFactor PxlResolution Resolution div def DoInitialScaling} def%,/DoInitialScaling { % DO INITIAL SCALING6 InitialMatrix setmatrix 72 Resolution div dup scale} def%2/PM { % PM XP/ /PaperWidth exch def /PaperHeight exch def0 /Ymax PaperHeight def /PortraitMode true def DoInitialScaling RP} def 8%9*/SetupLandscape {translate 90 rotate} def3/LM { % LM t XP/ /PaperWidth exch def /PaperHeight exch defd1 /Ymax PaperWidth def /PortraitMode false def0 DoInitialScaling PaperWidth 0 SetupLandscape RP} def B%N*/MAG { % CHANGE MAGNIFICATION SETTING! XP /Magnification exch def RP} def%%e8/SPB { % SPB - BEGIN "\SPECIAL" MODE- Yadjust /Yorigin exch def /Xorigin exch def  currentrgbcolor Colorsused& GlobalMode Xorigin Yorigin translate9 Resolution 72 div dup scale % RESTORE DEFAULT SCALINGlB Magnification 1000 div dup scale % ADJUST FOR ANY MAGNIFICATIONA /Xpos Xpos 72 Resolution div mul 1000 Magnification div mul defiA /Ypos Ypos 72 Resolution div mul 1000 Magnification div mul defEG /spsavobj save def %SAVE STATE & STACK DEPTH FOR CLEANUP AFTER FIGUREgG /showpage {} def %DISABLE DURING FIGURE; `RESTORE' WILL BLOW DEF AWAY> /DEC$EDMS_SEPARATE_COLORS where % if separating colors. { % thenC pop processcolor % if using process colorsm0 { % thenE DEC$EDMS_SEPARATE_COLORS 0 ge % if on color pass .ge. 0l2 { % then@ { pop 1 } settransfer % write only white2 }{ % else" /DEC$EDMS_TRAP_SWELL where, { pop DEC$EDMS_SEPARATE_COLORS -4 eq5 { /EDMS_setlinewidth /setlinewidth load def K /setlinewidth { DEC$EDMS_TRAP_SWELL mul EDMS_setlinewidth } defe } if } ifE /EDMS_setrgbcolor % set up for a redefine K /setrgbcolor load def % of the setrgbcolor operatorcK currentscreen % get the current screen parameterseF /DEC$EDMS_SCREEN_ANGLE where % if changing the screen angle. { % thenA pop exch pop % replace the old angleN< DEC$EDMS_SCREEN_ANGLE exch % with the new one } ifJ /DEC$EDMS_SCREEN_FREQ where % if changing the screen frequency. { % thenE pop 3 -1 roll pop % replace the old frequencyt< DEC$EDMS_SCREEN_FREQ 3 1 roll % with the new one } if@ setscreen % Set the new parameters /setrgbcolor { /b exch deff /g exch def /r exch defe /c3 1 r sub defC /m3 1 g sub def  /y3 1 b sub def M /k c3 m3 2 copy gt { exch } if pop y3 2 copy gt { exch } if pop def  /ik 1 k sub defo ik 0 nec# { /c4 c3 k sub ik div defb# /m4 m3 k sub ik div defE# /y4 y3 k sub ik div def/ }e) { /c4 /DEC$EDMS_BLACK_GEN whereY7 { pop DEC$EDMS_BLACK_GEN } { 0 } ifelse defN /m4 c4 def /y4 c4 def } ifelseL 1 [ c4 m4 y4 k ] % pick the separation for this colorI DEC$EDMS_SEPARATE_COLORS % pass ( -1 = Cyan, -2 = Magenta,pC neg 1 sub get sub setgray % -3 = Yellow, -4 = Black ) } defr3 } ifelse % endifEN }{ % else (if not using process colors)D DEC$EDMS_SEPARATE_COLORS 0 ne % if not on color pass 02 { % then@ { pop 1 } settransfer % write only white3 } if % endif1 } ifelse % endifC/ } if % endif{ mark} defY% #/SPE { % SPE - END "\SPECIAL" MODEe cleartomarkp spsavobj restore nD 1000 Magnification div dup scale % UN-ADJUST FOR ANY MAGNIFICATIONA 72 Resolution div dup scale % RESTORE DEFAULT INTERNAL SCALINGo LocalModee" /Colorsused exch def setrgbcolor} def%e/PP%RK% If DEC$EDMS_MAKE_FILM is defined, it will add the crop & alignment marks, J% and the document name, page number, & ink color identifiers to the page.%E% Formal Arguments: None%$% Referenced Variables: DocumentName% Colorsused% Currentpagecount% DEC$EDMS_MAKE_FILMo%s"% Referenced Procedures: AlignMark%e=% Side Effects: Leaves the current font as Helvetica 8 point. "% Creates the variable "junkstr".%l{ /PageNumber exch def1 /DEC$EDMS_MAKE_FILM where % if making film...  { pope@ /DEC$EDMS_SUPPRESS_COLOR where % if color suppression is onC { pop /DEC$EDMS_SEPARATE_COLORS 0 def % then default to color 0R2 /Colorsused 1 def } if % ...for everythingO 2 DEC$EDMS_SEPARATE_COLORS exp cvi Colorsused and 0 ne %if correct separatnh@ DEC$EDMS_SEPARATE_COLORS 0 lt or % ...or if a process color/ { /Helvetica findfont 400 scalefont setfont  20 setlinewidth 0 setgrayP gsavec< PaperWidth 1000 add 200 translate 90 rotate 0 0 moveto* (Ink: ) show % show the ink color# DEC$EDMS_SEPARATE_COLORS 0 geE; { DEC$EDMS_COLOR_NAMES DEC$EDMS_SEPARATE_COLORS get }a= { (Process ) show [ (Cyan) (Magenta) (Yellow) (Black) ]i< DEC$EDMS_SEPARATE_COLORS neg 1 sub get } ifelse showB /DEC$EDMS_SUPPRESS_COLOR where % if color suppression is onI { pop ( (Color Suppression enabled)) show } if % tell them about it 1800 0 rmovetod- (Page: ) show % show the page number/7 /junkstr 4 string def PageNumber junkstr cvs showx7 ( of ) show DEC$EDMS_TOTAL_PAGES junkstr cvs showc$ DEC$EDMS_SEPARATE_COLORS -4 eq0 { 1800 0 rmoveto (Trap Swell Factor: )showE /DEC$EDMS_TRAP_SWELL where % if trap swell factor is suppliedS0 { pop DEC$EDMS_TRAP_SWELL 6 string cvs }% { (1 (default)) } ifelse showa } if9 DEC$EDMS_SEPARATE_COLORS 0 lt % if a process colorg {e@ PaperHeight 2 div 600 add 0 moveto (Screen Angle: ) show$ /DEC$EDMS_SCREEN_ANGLE whereB { pop DEC$EDMS_SCREEN_ANGLE junkstr cvs } % if defined: { ((default)) } ifelse show % if not defined1 1800 0 rmoveto (Screen Frequency: ) showo# /DEC$EDMS_SCREEN_FREQ whereeA { pop DEC$EDMS_SCREEN_FREQ junkstr cvs } % if definedS: { ((default)) } ifelse show % if not defined } if grestore gsaveA- -600 200 translate 90 rotate 0 0 movetoaF (Document: ) show DEC$EDMS_DOCUMENT_ID show % show document name( PaperHeight 2 div 600 add 0 movetoG (This film is the property of Digital Equipment Corporation) showS grestore1 /mask 15 % all crop marks on by defaultfN /DEC$EDMS_SUPPRESS_CROPMARKS where % if def'd, xor in suppression mask8 { pop DEC$EDMS_SUPPRESS_CROPMARKS xor } if def mask 1 and 1 eq 6 { PaperWidth PaperHeight moveto % Upper RightL 450 0 rmoveto 900 0 rlineto -1350 1350 rmoveto 0 -900 rlineto } if mask 2 and 2 eqt- { PaperWidth 0 moveto % Lower RightL 450 0 rmoveto 900 0 rlineto -1350 -1350 rmoveto 0 900 rlineto } if mask 4 and 4 eqf$ { 0 0 moveto % Lower LeftM -450 0 rmoveto -900 0 rlineto 1350 -1350 rmoveto 0 900 rlineto } ifm mask 8 and 8 eqd- { 0 PaperHeight moveto % Upper LeftoM -450 0 rmoveto -900 0 rlineto 1350 1350 rmoveto 0 -900 rlineto } if stroke7 /mask 15 % all registratn marks on by defaultoN /DEC$EDMS_SUPPRESS_REGMARKS where % if defined, xor in suppression mask7 { pop DEC$EDMS_SUPPRESS_REGMARKS xor } if defa% mask 1 and 1 eq % Top Center 5 { gsave PaperWidth 2 div PaperHeight 900 addo% /DEC$EDMS_POSITION_REGMARKS where 7 { pop DEC$EDMS_POSITION_REGMARKS -50 mul add } ifP% translate AlignMark grestore } ife' mask 2 and 2 eq % Right Center " { gsave PaperWidth 900 add# /DEC$EDMS_POSITION_REGMARKS wheres4 { pop DEC$EDMS_POSITION_REGMARKS -50 mul add } if6 PaperHeight 2 div translate AlignMark grestore } if( mask 4 and 4 eq % Bottom Center% { gsave PaperWidth 2 div -900t# /DEC$EDMS_POSITION_REGMARKS wheree3 { pop DEC$EDMS_POSITION_REGMARKS 50 mul add } ifI# translate AlignMark grestore } if & mask 8 and 8 eq % Left Center { gsave -900# /DEC$EDMS_POSITION_REGMARKS wherec3 { pop DEC$EDMS_POSITION_REGMARKS 50 mul add } ifd5 PaperHeight 2 div translate AlignMark grestore } if7 showpage }T0 { % disabled the 'erasepage ' that was here! } ifelse }R { showpage } ifelseX} defs1/CLRP { % disabled the 'erasepage' that was here!e } defo%p+/DMF { % /font-name DMFiB /psz exch def /nam exch def nam findfont psz scalefont setfont} defR%G3/concatnam { % /abcd (xxx) concatnam ==> /abcdxxxT /xxx exch def /nam exch def /namstr nam cvsstr cvs def1 /newnam namstr length xxx length add string def  newnam 0 namstr putintervalo& newnam namstr length xxx putinterval newnam cvn c} def% %/strip { % /abcdef 2 strip ==> /cdef  /num exch def /nam exch def /namstr nam cvsstr cvs def# /newlen namstr length num sub def $ namstr num newlen getinterval cvn} def /% ROUTINES TO HANDLE PACKING/UNPACKING NUMBERS8/PackHW { % PackHW --> 0 /num exch def /pos exch def /target exch def: num 16#0000FFFF and 1 pos sub 16 mul bitshift target or} defw</PackByte { % PackByte --> 0 /num exch def /pos exch def /target exch def: num 16#000000FF and 3 pos sub 8 mul bitshift target or} defp4/UnpkHW { % UnpkHW -->  /num exch def /pos exch def0 num 1 pos sub -16 mul bitshift 16#0000FFFF and) dup 16#00007FFF gt {16#00010000 sub} if } defC8/UnpkByte { % UnpkByte -->  /num exch def /pos exch def/ num 3 pos sub -8 mul bitshift 16#000000FF and ) dup 16#0000007F gt {16#00000100 sub} if } defD%S/ps-scalefont { J % FOR PS FONTS, LOOK AT SIZE REQUESTED. IF IT HAS A DECIMAL REMAINDERL % EQUIVALENT TO .001-.009 POINTS (I.E., .050-.450 VAXDOC UNITS), THAT'S H % A FLAG TO STRETCH IT VERTICALLY BY ADDING 1-9 EXTRA POINTS TO THE  % VERTICAL SCALING.SA % save requested size - as entered and as integere, dup /x-size exch def cvi /x-int exch def; % calc decimal remainder, mul x 1000, round ; x-size x-int sub 1000 mul round cvi /remainder exch def % % see how we scale... ) remainder 50 lt remainder 450 gt or {3& % scale isomorphically /ystretch 0 def  x-size scalefont } {k& % scale anamorphically /ystretch remainder def + x-int ystretch add /y-size exch def/' [x-int 0 0 y-size 0 0] makefont_ } ifelse} def % (/DPSF { % /procname size /fontname DPSF< findfont exch ps-scalefont [ exch /setfont cvx ] cvx def} deff%e/PXLBuildCharDict 17 dict def /CMEncodingArray 256 array def90 1 255 {CMEncodingArray exch dup cvsstr cvs cvn put} fora*/RasterConvert {RasterScaleFactor div} def/TransformBBox { aload pop3H /BB-ury exch def /BB-urx exch def /BB-lly exch def /BB-llx exch def. [ BB-llx RasterConvert BB-lly RasterConvert / BB-urx RasterConvert BB-ury RasterConvert ]r} def /RunLengthToRasters {O % none yet} defn7/GenerateRasters { % GENERATE RASTERS FOR "IMAGEMASK" 1 rasters runlength 1 eq {RunLengthToRasters} if } def %r*/int-dict-name {int (-dict) concatnam} def./int-dict {int (-dict) concatnam cvx load} def% /DefinePXLFont {E % ...Y1 % ...[llx lly urx ury]DefinePXLFonttC /newfont exch def /bb exch def /num exch def /psz exch def-C /dsz exch def /pxlmag exch def /ext exch def /int exch defE9 /fnam ext (-) concatnam pxlmag cvsstr cvs concatnam defh newfont not { int-dict-name 13 dict defE int-dict beginF /FontType 3 def /FontMatrix [ 1 dsz div 0 0 1 dsz div 0 0 ] defC /FontBBox bb TransformBBox def /Encoding CMEncodingArray defmI /CharDict 1 dict def CharDict begin /Char-Info num array def endu /BuildChar { PXLBuildCharDict begin, /char exch def /fontdict exch defB fontdict /CharDict get /Char-Info get char get aload pop2 /rasters exch def /PackedWord1 exch def+ 0 PackedWord1 UnpkHW 16#7FFF ne { 8 /PackedWord2 exch def /wx 0 PackedWord1 UnpkHW defN /rows 2 PackedWord1 UnpkByte def /cols 3 PackedWord1 UnpkByte defM /llx 0 PackedWord2 UnpkByte def /lly 1 PackedWord2 UnpkByte defPM /urx 2 PackedWord2 UnpkByte def /ury 3 PackedWord2 UnpkByte defP }{ %else0G /PackedWord2 exch def /PackedWord3 exch def /PackedWord4 exch defnJ /wx 1 PackedWord1 UnpkHW def /rows 0 PackedWord2 UnpkHW defI /cols 1 PackedWord2 UnpkHW def /llx 0 PackedWord3 UnpkHW deftI /lly 1 PackedWord3 UnpkHW def /urx 0 PackedWord4 UnpkHW defN) /ury 1 PackedWord4 UnpkHW def  } ifelse rows 0 lt {w( /rows rows neg def /runlength 1 def }{ %elseb /runlength 0 def } ifelseU wx 0. llx RasterConvert lly RasterConvert < urx RasterConvert ury RasterConvert setcachedevice rows 0 ne { gsave) cols rows true RasterScaleFactor jB 0 0 RasterScaleFactor neg llx .5 add neg ury .5 add : tempmatrix astore GenerateRasters imagemask grestore } if ende } defh end ! fnam int-dict definefont pop r } if f/ int-dict-name fnam findfont psz scalefont defW3 currentdict int [ int-dict /setfont cvx ] cvx puts} def B/PXLF { true DefinePXLFont} def % SIGNAL THAT FONT ALREADY LOADEDG/PXLNF {false DefinePXLFont} def % SIGNAL THAT FONT NOT ALREADY LOADED %w:/PXLC { % ...* % ...PXLCH /rasters exch def /runlength exch def /cols exch def /rows exch defG /ury exch def /urx exch def /lly exch def /llx exch defh7 /wx exch def /code exch def /int exch def}+ % SEE IF LONG OR SHORT FORMAT IS REQUIREDf? true cols CKSZ rows CKSZ ury CKSZ urx CKSZ lly CKSZ llx CKSZ s TackRunLengthToRows {s/ int-dict /CharDict get /Char-Info get code oC [ 0 0 llx PackByte 1 lly PackByte 2 urx PackByte 3 ury PackByte A 0 0 wx PackHW 2 rows PackByte 3 cols PackByte rasters ] putq }{ %else/ int-dict /CharDict get /Char-Info get code ? [ 0 0 urx PackHW 1 ury PackHW 0 0 llx PackHW 1 lly PackHWMP 0 0 rows PackHW 1 cols PackHW 0 0 16#7FFF PackHW 1 wx PackHW rasters ] put } ifelse} deff%f/CKSZ {abs 127 le and} defA/TackRunLengthToRows {runlength 0 ne {/rows rows neg def} if} def5% /PLOTC {K % PLOTCH /rasters exch def /runlength exch def /cols exch def /rows exch defG /ury exch def /urx exch def /lly exch def /llx exch defe6 /psz exch def /dsz exch def /wx exch def' % "PLOT" A CHARACTER'S RASTER PATTERNe rows 0 ne {o gsave 3 currentpoint translate psz dsz div dup scale > cols rows true RasterScaleFactor 0 0 RasterScaleFactor 6 neg llx .5 add neg ury .5 add tempmatrix astore GenerateRasters imagemask grestore } if wx x} defE%R /AlignMark%%J% This procedure draws an alignment mark centered on the coordinate systemH% origin. If the variable DEC$EDMS_SEPARATE_COLORS = 0 then a "positive"M% alignment mark is drawn. If DEC$EDMS_SEPARATE_COLORS <> 0 then a "negative"r% alignment mark is drawn. T%_% Formal Arguments: NONE% 0% Referenced Variables: DEC$EDMS_SEPARATE_COLORS%a% Referenced Procedures: NONE % % Side Effects: NONE%d{ DEC$EDMS_SEPARATE_COLORS 0 eqh { 0 0 300 0 360 arc_B 0 -450 moveto 0 450 lineto -450 0 moveto 450 0 lineto stroke }7 { 0 0 450 0 360 arc fill 1 setgray 0 0 300 0 360 arc oL 0 -450 moveto 0 450 lineto -450 0 moveto 450 0 lineto stroke 0 setgray } ifelse} defp/SC_N% If not making film, the following procedure sets the current color using theL% RGB color model. If making film, the procedure notes the "color pass" and,K% if the specified color index matches the color pass, subsequent marks areeO% written in black. If the specified color index does not match the color pass, O% marks are written in white. Use of colors on individual pages is also trackedsK% to allow pages that don't use a particular color to be suppressed on that.% color pass (by the code in the /PP routine).%z*% Formal Arguments: color index (on stack)%e"% Referenced Variables: Colorsused% DEC$EDMS_SEPARATE_COLORS% DEC$EDMS_SUPPRESS_COLOR %a% Referenced Procedures: NONEr%sL% Side Effects: Modifies the variable Colorsused to record use of the color.M% Tracks use of color in the variables 'ci' and 'processcolor'.%r5{ /ci exch def ci 0 lt % if the color index is lt 0aB { /processcolor true def } % then set 'processcolor' to 'true'.E { ci /processcolor false def % else set 'processcolor' to 'false'.O9 /DEC$EDMS_SUPPRESS_COLOR where % if suppressing coloro6 { pop 0 setgray pop } % then set "color" to BlackA { /DEC$EDMS_SEPARATE_COLORS where % else if separating colorsbH { pop dup DEC$EDMS_SEPARATE_COLORS eq % then if on this color passH { 0 setgray /Colorsused Colorsused % then write black (do write)E 2 3 index exp cvi or def } % ..and note use of the "color" D { 1 setgray } ifelse pop } % else write white (don't write)N { dup ( ) cvs dup length 15 add string % else if using the color index,6 /tstr exch def % ..build up the name of theI tstr 0 (DEC$EDMS_COLOR_) putinterval % ..potential external color 9 tstr exch 15 exch putinterval % ..name procedure06 tstr cvn where % ..and see if it is defined> { pop pop tstr cvn cvx exec } % execute it if it isN { DEC$EDMS_COLOR_ARRAY exch get exec % else exec internal color proc } ifelse } ifelse } ifelse } ifelse} defT(/RV % .. gross recto/verso translate#{ /DEC$EDMS_ENABLE_RECTOVERSO wherer { popeC /RVmatrix DEC$EDMS_ENABLE_RECTOVERSO 50 mul 0 matrix translate def  RVmatrix concat } if} defo%<% Procedures for implementing the "rotate " special:% ROTB -e% - ROTE - /ROTB {  XP gsave  Xpos Ypos translate ' rotate % using from the stackt Xpos neg Ypos neg translatea RP } defk /ROTE {XP grestore RP} defend %DEC_DVC$dict %%EndProloge %%BeginSetup4/DEC$EDMS_MAKE_FILM where % if we are making film... { pop % ..clean up the stack 4 54 dup translate % ..make room for the film info } ifBeginDVC$PSDoc$/PaperWidth 8.500 Resolution mul def&/PaperHeight 11.000 Resolution mul def/Ymax PaperHeight defACLRP 300 3600 RESF%> Postamble of file HUNTER$USER:[HUNTER.SUPSER.NEW]AAAREADME.DVI_PS.*% DefineFont:F152 Category:10 Pointsize:10H/NewCenturySchlbk-Italic /NewCenturySchlbk-Italic@DOCPSE DOCPSE ReENCODE0/F152 500.0 /NewCenturySchlbk-Italic@DOCPSE DPSF*% DefineFont:F151 Category:10 Pointsize:10F/NewCenturySchlbk-Roman /NewCenturySchlbk-Roman@DOCPSE DOCPSE ReENCODE//F151 500.0 /NewCenturySchlbk-Roman@DOCPSE DPSF )% DefineFont:F102 Category:10 Pointsize:8n(/Courier /Courier@DOCPSE DOCPSE ReENCODE /F102 400.0 /Courier@DOCPSE DPSF(% DefineFont:F40 Category:10 Pointsize:96/Helvetica-Bold /Helvetica-Bold@DOCPSE DOCPSE ReENCODE&/F40 450.0 /Helvetica-Bold@DOCPSE DPSF)% DefineFont:F28 Category:10 Pointsize:12e&/F28 600.0 /Helvetica-Bold@DOCPSE DPSF%%BeginDEC$EDMSInfoh/DEC$EDMS_DOCUMENT_ID () def8/DEC$EDMS_COLOR_NAMES [ (0_BLACK) (1_USERTAGCOLOR) ] def/DEC$EDMS_COLOR_ARRAY [t*%%RGBCustomColor 0.000 0.000 0.000 0_BLACK= { 0.000 0.000 0.000 setrgbcolor } % 0_BLACK DOC$COLOR_INIT1%%RGBCustomColor 0.000 0.000 0.000 1_USERTAGCOLOR1? { 0.000 0.000 0.000 setrgbcolor } % 1_USERTAGCOLOR not foundn] defo/DEC$EDMS_TOTAL_PAGES 0 defc%%EndDEC$EDMSInfoi/DEC$EDMS_MAKE_FILM wherer%{ pop /DEC$EDMS_SEPARATE_COLORS where { pop }h] { (ERROR - DEC$EDMS_MAKE_FILM requires DEC$EDMS_SEPARATE_COLORS be defined) = quit } ifelseh} if/DEC$EDMS_SEPARATE_COLORS where ${ pop /DEC$EDMS_SUPPRESS_COLOR wherei { pop (ERROR - DEC$EDMS_SEPARATE_COLORS and DEC$EDMS_SUPPRESS_COLOR are mutually exclusive) = quit } iff} if/DVC$PSFonts save defo %%EndSetup%f %%Page: 1 1k%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)2)1000 BP PaperHeight PaperWidth PM 0 0 XY r%%BeginCustomColor: 0_BLACKeE0 SC 8218 5246 XY F28(Read)S 176 x(Before)S 176 x(Installi)S 2 x(ng)SWG176 x(the)S 177 x(Supervisor)S 176 x(Series)S 176 x(V5.4)S 4796 6491 XYWJF151(Please)S 183 x(read)S 185 x(the)S 184 x(following)S 184 x(important)SF184 x(information)S 184 x(before)S 184 x(installing)S 185 x(or)S 184 xC(using)S 185 x(the)S 184 x(Supervisor)S 4796 X 598 y(Series)S 165 xWD(V5.4.)S 4796 8583 XY F28(Product)S 166 x(Information)S 4796 9828 XYGF151(The)S 176 x(Supervisor)S 175 x(Series)S 175 x(is)S 175 x(a)S 176 x C(suite)S 175 x(of)S 175 x(terminal)S 175 x(monitoring)S 176 x(and)SvE176 x(logging)S 177 x(utilities)S 175 x(that)S 175 x(consists)S 174 x C(of)S 4796 X 598 y(PHOTO)S 165 x(and)S 166 x(SUPER)S -19 x(VISOR.)StF4796 X 897 y(Originally)S 168 x(written)S 167 x(by)S 168 x(Bob)S 167 xE(Pasker)S -36 x(,)S 168 x(Bill)S 167 x(Donner)S -36 x(,)S 169 x(and)S I167 x(T)S -45 x(erry)S 168 x(W)S -37 x(ay)S 168 x(for)S 168 x(Precision)SiG168 x(Business)S 167 x(Systems,)S 4796 X 598 y(the)S 174 x(Supervisor)SlD174 x(Series)S 174 x(was)S 173 x(later)S 174 x(acquired)S 175 x(by)SE174 x(Security)S 175 x(Paci\211c)S 175 x(Software)S 174 x(Services.)SD265 x(After)S 174 x(selling)S 4796 X 597 y(and)S 177 x(maintaining)SG178 x(the)S 178 x(software)S 177 x(for)S 177 x(a)S 178 x(number)S 178 x.I(of)S 177 x(years,)S 181 x(Security)S 178 x(Paci\211c)S 179 x(Software')SdI-20 x(s)S 177 x(Dan)S 177 x(Shoop)S 4796 X 598 y(placed)S 166 x(version)S E166 x(5.0D)S 166 x(of)S 166 x(the)S 166 x(Supervisor)S 167 x(Series)S G166 x(into)S 166 x(the)S 166 x(public)S 166 x(domain)S 166 x(in)S 167 xcC(1992.)S 4796 X 897 y(The)S 169 x(Supervisor)S 170 x(Series)S 169 xnK(is)S 168 x(curren)S 2 x(tly)S 169 x(maintained)S 169 x(by)S 170 x(Hunter)S H169 x(Goatley)S -55 x(,)S 170 x(VMS)S 169 x(Systems)S 168 x(Programmer)SO4796 X 598 y(for)S 166 x(W)S -28 x(estern)S 166 x(Kentucky)S 167 x(University)SiD-54 x(,)S 166 x(Bowling)S 166 x(Green,)S 167 x(KY)S -56 x(.)S 4796 XC896 y(If)S 171 x(you)S 172 x(have)S 173 x(any)S 172 x(suggestions)S7I173 x(for)S 171 x(improvements)S 172 x(or)S 172 x(new)S 172 x(features,)S7E173 x(or)S 172 x(would)S 172 x(like)S 172 x(to)S 171 x(report)S 172 x F(a)S 172 x(bug,)S 4796 X 598 y(please)S 173 x(contact)S 173 x(Hunter)SJ174 x(Goatley)S 174 x(via)S 173 x(e-mail)S 173 x(at)S 174 x F152(goathun)SC2 x(ter@WKUVX1.BITNET)S 173 x F151(\(preferred\))S 174 x(or)S 174 x I(by)S 4796 X 598 y(phone)S 166 x(at)S 166 x(502-745-5251.)S 4796 18197 XYwGF28(Installati)S 2 x(on)S 166 x(Informatio)S 2 x(n)S 4796 19442 XY F151 F(The)S 166 x(Supervisor)S 167 x(Series)S 166 x(V5.4)S 166 x(requires)SI166 x(VMS)S 166 x(v5.0)S 167 x(or)S 166 x(later)S -37 x(.)S 4796 20937 XYnEF28(Contents)S 167 x(of)S 166 x(this)S 167 x(Kit)S 4796 22182 XY F151 G(This)S 166 x(kit)S 166 x(contains)S 166 x(all)S 166 x(of)S 166 x(the)SaD166 x(materials)S 165 x(necessary)S 167 x(to)S 166 x(install)S 165 xC(the)S 166 x(Supervisor)S 167 x(Series)S 166 x(V5.4.)S 4796 X 897 ynE(Y)S -56 x(ou)S 166 x(will)S 166 x(need)S 166 x(approximately)S 167 x G(4500)S 166 x(blocks)S 166 x(of)S 166 x(disk)S 166 x(space)S 165 x(to)SdH166 x(hold)S 166 x(the)S 167 x(installation)S 165 x(kits.)S 4796 X 896 yH(The)S 201 x(SUPSER054.%)S 201 x(\211les)S 201 x(make)S 202 x(up)S 201 xH(the)S 201 x(installation)S 201 x(kit,)S 211 x(which)S 201 x(you)S 202 xC(should)S 202 x(install)S 200 x(with)S 4796 X 598 y(VMSINST)S -28 x D(AL.)S 187 x(Manuals)S 187 x(are)S 186 x(included)S 187 x(in)S 187 xD(save)S 187 x(set)S 186 x(B)S 186 x(\(\211le)S 187 x(SUPSER054.B\))SD186 x(and)S 186 x(are)S 187 x(placed)S 187 x(in)S 4796 X 598 y(the)SK180 x(SUPSER_RO)S -2 x(OT)S -27 x(:[DOC])S 179 x(directory)S 181 x(during)SdC182 x(the)S 180 x(installation.)S 277 x(The)S 181 x(manuals)S 181 x C(are)S 180 x(provided)S 181 x(in)S 4796 X 598 y(PostScript,)S 184 x H(plain)S 181 x(ASCII,)S 180 x(and)S 182 x(Bookreader)S 181 x(versions.)SF280 x(Y)S -56 x(ou)S 182 x(can)S 181 x(use)S 181 x(BACKUP)S 180 x(to)SC181 x(retrieve)S 181 x(them)S 4796 X 597 y(from)S 165 x(the)S 167 xgJ(installation)S 165 x(kit)S 166 x(prior)S 167 x(to)S 166 x(installation:)S4796 X 847 y F102($)SS%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORD1 SC 239 x(BACKUP)S 239 x(tape:SUPSER)S 2 x(054.B/SAVE)S 240 x(*.*)S%%EndCustomColor%%BeginCustomColor: 0_BLACKsP0 SC 4796 28708 XY F28(Release)S 167 x(Notes)S 167 x(Information)S 4796 29953 XYFF151(The)S 172 x(release)S 172 x(notes)S 173 x(for)S 172 x(the)S 172 xK(Supervisor)S 173 x(Series)S 172 x(V5.4)S 172 x(contain)S 173 x(important)SrG172 x(installation-related)S 172 x(infor-)S 4796 X 598 y(mation)S 174 xsH(as)S 173 x(well)S 174 x(as)S 173 x(a)S 174 x(summary)S 175 x(of)S 174 xH(changes)S 175 x(since)S 174 x(the)S 175 x(last)S 173 x(release.)S 266 xD(Also)S 173 x(included)S 175 x(is)S 173 x(information)S 4796 X 597 yK(on)S 160 x(known)S 160 x(problems,)S 161 x(documentation)S 160 x(errors,)S C162 x(and)S 160 x(restrictions.)S 249 x(The)S 160 x(release)S 160 x C(notes)S 159 x(can)S 160 x(be)S 160 x(retrieved)S 4796 X 598 y(by)SuH166 x(using)S 167 x(VMSINST)S -28 x(AL)S 166 x(OPTIONS)S 165 x(N)S 166 xF(or)S 166 x(by)S 167 x(the)S 166 x(following)S 166 x(command:)S 4796 X847 y F102($)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORK1 SC 239 x(BACKUP/LOG)S 240 x(SUPSER054.A/SAVE)S 2 x(/SEL=*.RELEASE_NOTES)Sn 241 x(*.*)Ss%%EndCustomColor%%BeginCustomColor: 0_BLACK 0 SC 26663 35879 XY F40(1)S %%EndCustomColor1 PP EPY %%PageTrailer%2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman#%%+ NewCenturySchlbk-Italic Couriere*%%PageCustomColors: 0_BLACK 1_USERTAGCOLOR%s %%Page: 2 2E%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)m)1000 BP PaperHeight PaperWidth PM 0 0 XY t%%BeginCustomColor: 0_BLACK C0 SC 4796 5246 XY F28(Source)S 166 x(Code)S 4796 6491 XY F151(The)S>C178 x(save)S 178 x(set)S 178 x(SUPSER054.C)S 177 x(contains)S 178 xoM(the)S 178 x(source)S 179 x(code)S 178 x(for)S 178 x(the)S 178 x(Supervisor)SnG178 x(Series.)S 274 x(During)S 178 x(the)S 4796 X 598 y(VMSINST)S -28 xiH(AL)S 168 x(sessi)S -2 x(on,)S 170 x(you)S 169 x(will)S 167 x(be)S 168 xC(given)S 170 x(the)S 168 x(opportunity)S 169 x(to)S 168 x(install)S.G167 x(the)S 168 x(sources.)S 254 x(However)S -36 x(,)S 169 x(if)S 167 xeD(you)S 4796 X 597 y(are)S 166 x(only)S 167 x(interested)S 165 x(in)SE167 x(the)S 166 x(sources,)S 167 x(you)S 166 x(can)S 167 x(retrieve)SEI167 x(them)S 166 x(using)S 167 x(the)S 166 x(following)S 166 x(command:)S4796 X 847 y F102($)Sc%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORD1 SC 239 x(BACKUP)S 239 x(tape:SUPSER)S 2 x(054.C/SAVE)S 240 x(*.*)S%%EndCustomColor%%BeginCustomColor: 0_BLACKw0 SC 3600 35879 XY F40(2)S%%EndCustomColor2 PP EP %%PageTrailerb2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman %%+ Courier*%%PageCustomColors: 0_BLACK 1_USERTAGCOLOR% %%Traileri EndDVC$PSDoc4/DEC$EDMS_MAKE_FILM where % if we are making film... { pop % ..clean up the stack3 -54 dup translate % ..undo the film translation  } ifo %%Pages: 2(%%DocumentFonts: NewCenturySchlbk-Italic1%%+ NewCenturySchlbk-Roman Courier Helvetica-Bold_.%%DocumentCustomColors: 0_BLACK 1_USERTAGCOLORPK 4Fq  aaareadme.txtIMVMSVV7.1IM&VFABPB@?m!ЦIMVFHC,1 ; |2`IM*VDAT,%P:kt@IMVPROXH1'b1@0IMVRDT6 =RP: E Read Before Installing the Supervisor Series V5.4N Please read the following important information before installing1 or using the Supervisor Series V5.4. Product InformationM The Supervisor Series is a suite of terminal monitoring and log-B ging utilities that consists of PHOTO and SUPERVISOR.I Originally written by Bob Pasker, Bill Donner, and Terry WayL for Precision Business Systems, the Supervisor Series was laterN acquired by Security Pacific Software Services. After selling andM maintaining the software for a number of years, Security PacificN Software's Dan Shoop placed version 5.0D of the Supervisor Series, into the public domain in 1992.M The Supervisor Series is currently maintained by Hunter Goatley,L VMS Systems Programmer for Western Kentucky University, Bowling Green, KY.J If you have any suggestions for improvements or new features,M or would like to report a bug, please contact Hunter Goatley viaJ e-mail at goathunter@WKUVX1.BITNET (preferred) or by phone at 502-745-5251.% Installation InformationC The Supervisor Series V5.4 requires VMS v5.0 or later.! Contents of this KitL This kit contains all of the materials necessary to install the$ Supervisor Series V5.4.N You will need approximately 4500 blocks of disk space to hold the installation kits.O 1  J The SUPSER054.% files make up the installation kit, which youN should install with VMSINSTAL. Manuals are included in save set BK (file SUPSER054.B) and are placed in the SUPSER_ROOT:[DOC] di-I rectory during the installation. The manuals are provided inJ PostScript, plain ASCII, and Bookreader versions. You can useO BACKUP to retrieve them from the installation kit prior to instal- lation:1 $ BACKUP tape:SUPSER054.B/SAVE *.*& Release Notes InformationO The release notes for the Supervisor Series V5.4 contain importantM installation-related information as well as a summary of changesJ since the last release. Also included is information on knownJ problems, documentation errors, and restrictions. The releaseJ notes can be retrieved by using VMSINSTAL OPTIONS N or by the following command:D $ BACKUP/LOG SUPSER054.A/SAVE/SEL=*.RELEASE_NOTES *.* Source CodeF The save set SUPSER054.C contains the source code for theI Supervisor Series. During the VMSINSTAL session, you will beJ given the opportunity to install the sources. However, if youL are only interested in the sources, you can retrieve them using# the following command:1 $ BACKUP tape:SUPSER054.C/SAVE *.* 2PK *F];install_guide.decw$bookIMVMSVV7.1IM#VFABPBm!ЦIMVFHC,S 20;$q P{IM*VDAT,4796%8|:˥kt@IMVPROXnual'b1@0IMVRDTS 18=R8|:`"Ia~Z%Supervisor Series Installation Guider cWINSTALL_GUIDE  Contents Tablescc+TABLESTABLES2H/=AB-1 SupervisorSeries installationkitsavesetsB- 1 Supervisor Series installation kit save setsE9O(=AC-1 SupervisorSeriesfiles'createdduring installationC- 1 Supervisor Series files created during installationG  / CONTENTSCONTENTS8 E[TitlePageTitle Page@E\ CopyrightPageCopyright Page1xE\PrefacePreface -D($L1 PreparingtoInstallthe  SupervisorSeries1 Preparing to Install the Supervisor SeriesWw%%$K1.1 PrerequisiteSoftware1.1 Prerequisite Software|'=.$L1.2 AccessingtheOnlineRelease&Notes1.2 Accessing the Online Release Notes|(<&$K1.3 Installation Procedure& Requirements1.3 Installation Procedure Requirementss#8($K2 Installingthe Supervisor Series2 Installing the Supervisor SeriesQw""$K2.1Invoking VMSINSTAL2.1 Invoking VMSINSTALUw$$$K2.2 InstallationOptions2.2 Installation Optionsgw!..$K2.3Diskand Directory Selection2.3 Disk and Directory SelectionSw##$L2.4 Component Selection2.4 Component Selection"il"//$A2.4.1 InstallingtheSourcesOnly2.4.1 Installing the Sources Only&ml$11$A2.4.2 InstallingPHOTOandPLAYBACK2.4.2 Installing PHOTO and PLAYBACK*[l''$@2.4.3 Installing SUPERVISOR2.4.3 Installing SUPERVISOR/bw++$K2.5The Installation Completes2.5 The Installation Completes5cg ++$L3Post-Installation Information3 Post-Installation Information6kw#00$K3.1Startingthe SupervisorSeries3.1 Starting the Supervisor Series7t$8#$K3.2Creating SUPERVISOR& Identifiers3.2 Creating SUPERVISOR Identifiers:{'<%$K3.3Usingthe Bookreader& Documentation3.3 Using the Bookreader Documentation=hw"..$L3.4 RegisteringYour Installation3.4 Registering Your Installation>}(='$\AMSample SupervisorSeries InstallationA Sample Supervisor Series InstallationCcx,,$\BMContentsof DistributionKitB Contents of Distribution KitDm$11$\CNFilesCreatedDuring InstallationC Files Created During InstallationF+TABLESTABLES2H/=AB-1 SupervisorSeries installationkitsavesetsB- 1 Supervisor Series installation kit save setsE9O(=AC-1 SupervisorSeriesfiles'createdduring installationC- 1 Supervisor Series files created during installationGkkdD* Copyright1992HunterGoatley.'ALLRIGHTS RESERVED. ~AllRights Reserved.cS9*O SupervisorSeries InstallationO:GuideAOOctober1992RO{Thismanualprovides installationandsetup instructionsfortheQO SupervisorSeries,terminal monitoringsoftwareforVMSsystems.xN'ORevision/Update Information:'^Thisisarevisedmanual.rH*O OperatingSystemandVersion:^VMSV5.0orlaterh>OSoftwareVersion:"^ SupervisorSeriesv5.4  y O OO 5October1992jO Permissionisgrantedtocopyand redistributethisdocumentforno commercialgain.jOVThe informationinthisdocumentissubjecttochangewithoutnoticeandshouldnotfObe construedasa commitmentbytheauthor.(TheauthorassumesnoresponsibilityBOforanyerrorsthatmayappearinthis document.Ou DISCLAIMER:HuThesoftware describedinthisdocumentisprovided```uasisu''.*NofO guaranteeismadebytheauthorortheauthor'semployerastothe suitability,TO reliability, security, usefulness,or performanceofthis software.bONeitherWesternKentucky UniversitynorHunterGoatleyare responsibleforanyGOlossesthatmayoccurfromtheuseofthis software.OOsThe followingare trademarksofDigital Equipment Corporation: OQ DEC 3Q VAX Q VMSO DECnet 3 UCX  UIS O, DOq  Copyright1992HunterGoatley.&ALLRIGHTS RESERVED.*    ]OPrefaceLOThisguide describeshowtoinstallthe SupervisorSeries.   OIntendedAudienceLOUThismanualisintendedforusebythesystemmanagerorNOany individual responsiblefor installingand maintainingtheO SupervisorSeries.   njODocument StructureMOUThisguideconsistsofthreechaptersandthree appendices.  >OChapter1Containspre-installation information.NO]Chapter2 Describesthe SupervisorSeries installationproce-bdure.?O$Chapter3Containspost-installation information.IOAppendixAContainsalistingofasample installation.UOAppendixB Describesthecontentsofthe SupervisorSeriesdistri-bebutionkit.XOAppendixCContainsalistofthefilescreatedbyan installation.II  uORelated DocumentsEOUYoucanfind additional informationinthe followingO documents:[ f `m&m SUPERVISOR ReferenceGuide$Em describesthe SUPERVISORutility. `E!E PHOTO ReferenceGuide$SE describesthePHOTOandPLAYBACK utilities. `, SupervisorSeriesReleaseNotes#Ycontain informationandHvupdatesnotincludedinthismanual.*Thereleasenotes:arepartofthesoftware distributionkit. `M)M VMS AuthorizeUtilityManual@M, partoftheVMSE documentationset,contains informationabouttheVMS AUTHORIZEutility.   =O 1.2 Preparing!to!Install"the! Supervisor!SeriesROThischapter describesthestepsthatshouldbetakenpriorto.O installingthe SupervisorSeries. %O1.1B PrerequisiteSoftwareNOUThe SupervisorSeriesrequiresVMSversionV5.0orlatertoOrun.{{a 75O1.2B AccessingtheOnlineReleaseNotesDOUThe Supervisor Seriesprovides online release notes,COwhichyoucandisplayorprintbyusing VMSINSTALFOwiththeOPTIONSN parameter.-Afterthe installation,FO^you can read the!release notes!by printing the file;O!SYS$HELP:SUPSERvvn.RELEASE_NOTES,where``vvn''OOdenotestheversionnumberofthe software.'Forexample,forQOhversionv5.4ofthe SupervisorSeries,thefilenamewouldbeO SUPSER054.s4O1.3B Installation Procedure RequirementsIOUBefore installingthe SupervisorSeries,ensurethattheJO following privileges, resources,and requirementsaremet:!  `m9mVMSversionV5.0throughV5.5isrunning. `EAllthenormal privilegesandquotasofthedefaultESYSTEMaccount. `I Approximately2to15minutes, dependingonyoursystemHconfiguration, distributionmedium,andoptions selected. `K Approximately3,000freeblocksonadiskforuseduringMthe installation procedure;thiscanbethesystemdiskor@Madisk specifiedwiththe VMSINSTALAWDoption. `H Approximately2,500freeblocksonthesystemdiskforJ%afull installation.)The requirementsperproductareas~follows: # p F h@Yh Approximately700freeblocksfor SUPERVISORandYitsdocumentation. @@Y@ Approximately500freeblocksforPHOTOanditsYdocumentation. DY Approximately1,000freeblocksforthesourcesfor"Ypthe SupervisorSeries. # pc! e1O 2.2 Installing!the! Supervisor!SeriesJOThe SupervisorSeriesuses VMSINSTALfor installation.)IfJOyoudonotknowhowtouse VMSINSTAL,youshouldfirst?OBreadthechapteron installingsoftwareintheB VMSSystemO Manager'sManual= .'Forthe installation,youshouldbeloggedGOintotheSYSTEMaccountoranothersuitably privilegedOLaccount."O2.1BInvoking VMSINSTALBOUInvoke VMSINSTALtoinstallthe SupervisorSeries. O $1 @SYS$UPDATE:VMSINSTAL% SUPSERvvn%ddcu:@ 3O Substitutethe appropriatevaluesfor { vvn and ddcu _.E* VAX/VMS&Software&Product% Installation& Procedure%V5.4-2)O It%is% dd-Mmm-yyyy%at%hh:mm.BO Enter%a&question&mark%(?)&at&any%time&for%help. UOIfthereareanyusersloggedintothesystem,youwillseetheOmessage:NOa %VMSINSTAL-W-ACTIVE,%The% following& processes%are%still%active:O ...process&names...6 OOYoucaninstallthe SupervisorSerieswhileusersareloggedNOin,thoughnousershouldberunningoneofthe Supervisor8O5Series utilitiesfromapreviousversion.7O *&Do&you%want&to&continue&anyway%[NO]? !4OIfyouwishto continue,answerYES.SO *&Are%you% satisfied&with%the&backup%of%your&system%disk&[YES]? NOOIfyoufeel comfortablewithyoursystemdiskbackup,answerDOYES. Otherwise,answerNO,performthebackup,then0O5restartthe installation procedure.f $O2.2B InstallationOptions!OUThenextquestionisVO *&Do&you%want&to&purge&files&replaced&by&this% installation&[YES]?!OOIfthisisthefirsttimeyouhave installedthe SupervisorKOSeries, answeringNOtothisquestioncansavesometimeGO5whenthe SupervisorSeriesfilesaremovedintotheirO directories.! .O2.3BDiskand Directory SelectionQOUThe SupervisorSeriesis installedinitsownrooted directoryIOtoavoidmixing SupervisorSeriesfileswithnormalVMSOOfiles..TheonlyfilecopiedtoaVMS directoryisthefileQO^ containingthe SupervisorSeriesreleasenotes,whichiscopiedOto SYS$HELP.q L GQOThe SupervisorSeriescanresideonanydisk.&The installationPOpromptsyouforthenameofthediskand top-level directoryIO5forthe utilities.'ThedefaultisSYS$SYSDEVICE:[SUPSER].]O *&Enter&the% top-level% directory&for%the% Supervisor%Series%[DUA0:[SUPSER]]:! c7OOncea directoryhasbeen specified(or C3 ETRETURN ET 3 ispressedtoTOselectthe default),the directoryiscreatedandamessagelike(O5the followingis displayed:_O %VMSINSTAL-I-SYSDIR,%This&product%creates%system%disk% directory%DUA0:[SUPSER].e"#O2.4B Component SelectionHOUThe SupervisorSeries installationprovidesanumberofKOoptionsfor installing individual components.*The following(Olist describestheoptions.#^ `mmInstallm only4xmthesourcestothe SupervisorSeries.t$ J=W Normally,theimagesforPHOTO, PLAYBACK,andI SUPERVISORarelinkedfromobjectfilesincludedintheK distribution.)Ifyouselectthisoption,the documentationQafilesandthesourcefileswillbe installed,buttheutility(imageswillnotbelinked.;%u OWYoushouldselectthisoptiononlyifyouprefertorebuild8theimagesand ``install''thembyhand. `/H/InstallPHOTO(and PLAYBACK).IfyouchoosetoinstallGPHOTO,youwillbeaskedwhetherornotthecommandsBshouldbeaddedtothe DCLTABLES(for system-wideL9 definition)andwhetherornottheon-linehelpshouldbe&addedtoahelplibrary. `IInstall SUPERVISOR.Ifyouchoosetoinstall SUPERVISOR,GiyouwillbeaskedwhetherornotthecommandsshouldGbeaddedtothe DCLTABLES(for system-wide definition)Mandwhetherornottheon-linehelpshouldbeaddedtoashelplibrary. _UNote _D|Forsecurityreasons,itisnot recommendthatyou;includethe SUPERVISORcommandin DCLTABLES.  `?Installthesourcesforeachutility installed.D&& */O2.4.1B InstallingtheSourcesOnlyPO4Thefirstquestionaskedgivesyouthe opportunitytoinstall;Oonlythesourcesforthe SupervisorSeries:`O *&Do&you%want&to&install%ONLY%the%sources%for%the& Supervisor%Series&[NO]?%' GO AnsweringYESwillcausethe installationtoskiptheMO questionsrelatedto individual componentsandbegincopyingLO5the documentationandsourcefiles.+TherewillbenomoreO questionsasked.>( MOIfyouanswerNOthequestionabove,youwillbepromptedOOforwhetherornotyouwishtoinstallthesourcesfortheO5products selected:[O *&Do&you%want&to&install%the&sources%for&the% Supervisor&Series%[YES]?)LO AnsweringYEStothequestionwillinstallthe appropriate@Osourcefilesforthe utilitiestobe installed.*1O2.4.2B InstallingPHOTOandPLAYBACKGO4The installationwillnextaskthe following question:6O *&Do&you%want&to&install%PHOTO%[YES]?+! SOIfyouanswerNOtothe question,the installationwillproceed6Owithaskingabout installing SUPERVISOR., IOIfyouchoosetoinstallPHOTO,youwillbegiventheDO opportunitytohavethePHOTOandPLAYBACKcommandsEO5addedtothe system-wide DCLTABLES. AnsweringYEStoOOthe followingquestionwillcreate``real''DCLcommandsthatIOare automatically availabletoallusersonthesystem:_Ok *&Do&you%want&to&add%the%PHOTO%and&PLAYBACK&commands&to& DCLTABLES%[YES]?-l +hSOYouwillthenbeaskedwhetherornotyouwanttoinstalltheMOon-linehelpforPHOTOandPLAYBACKinahelplibrary.'IfOO5youanswerYES,youwillalsobeaskedwhichlibraryshouldOcontainthehelp.\O *&Do&you%want&to&add%the%PHOTO%and&PLAYBACK&help%to%a%library&[YES]?. 'LOThe installationwillpresentanumberofchoicesfortheOOlibrarytoreceivetheon-linehelp.,InadditiontoofferingMO5the system-widehelplibraryasanoption,the installation@O procedurewilllookforany HLP$LIBRARYcommandsLOdefinedinthesystem directoryandwillofferthosetoo:Mzk This% installation&updates%the&help%library%so%that&the%DCLKz command%"$%HELP%PHOTO"%will%provide& information&about&theNz PHOTO&utility%and&"$&HELP% PLAYBACK"&will%provide% information(zB about&the%PLAYBACK%utility.Qz There&are%several&help% libraries&that%these%help%files%can%be+z placed%in.KSome%of%them%are:)z] SYS$SYSROOT:[SYSHLP]HELPLIB.HLB%z WKU$ROOT:[HELP]WKU_HELP.HLBiO *&Which&library%should&have%PHOTO%and&PLAYBACK&help%"[SYS$SYSROOT:[SYSHLP]HELPLIB.HLB]:/*'O2.4.3B Installing SUPERVISOREO4Whetherornotyou installedPHOTO,the installationHO procedurenextasksifyouwanttoinstall SUPERVISOR:;O *&Do&you%want&to&install% SUPERVISOR%[YES]?0! SOIfyouanswerNOtothe question,the installationwillproceedEOwiththe installationofPHOTO,ifitwas selected.1f IOIfyouchoosetoinstall SUPERVISOR,youwillbegivenDOthe opportunitytohavethe SUPERVISEcommandaddedCO5tothe system-wide DCLTABLES. AnsweringYEStothePO followingquestionwillcreatea``real''DCLcommandthatisDO automatically availabletoallusersonthesystem:ROk *&Do&you%want&to&add%the% SUPERVISE&command%to% DCLTABLES&[NO]? _UNote _BtItisnot recommendedthatyouaddthe SUPERVISE9commandto DCLTABLES. AnsweringNOtothe?%questionwillhelpkeep unauthorizedusersfrom(~tryingtoruntheutility. }2A +SSOYouwillthenbeaskedwhetherornotyouwanttoinstalltheOOon-linehelpfor SUPERVISEinahelplibrary.'IfyouanswerPO5YES,youwillalsobeaskedwhichlibraryshouldcontaintheOhelp.RO *&Do&you%want&to&add%the% SUPERVISOR%help&to&a%library%[YES]?-3 JOLikeitdoesforPHOTO,the installationwillpresentaKOnumberofchoicesforthelibrarytoreceivetheon-lineO5help:_O *&Which&library%should&have% SUPERVISOR%help&"[SYS$SYSROOT:[SYSHLP]HELPLIB.HLB]:4NOIfyou specifiedalibrarytoreceivethePHOTOhelp,thatIOsamelibraryisofferedasthedefaulttothisprompt.i5 )+O2.5BThe Installation CompletesJOUAfterthe configuration questions,theselected componentsMOare installed..FilesarecopiedfromeachsavesetoftheNO installationkitandthe appropriateimagesarelinked,thenRO^all installedfilesarecopiedtotheir destination directories.JO Informationalmessagesaboutthe individual componentsare O displayedasneeded.6 ,O 3.2Post-Installation! InformationMOThischaptercontains important informationaboutsettingupCO SupervisorSeries configurationandstartupoptions.  7! )0O3.1BStartingthe SupervisorSeriesROUOncethe installationis complete,youcanstartthe SupervisorAOSeriesby executingthecommand procedureSUPSER_=O STARTUP.COM,locatedinSUPSER_ROOT:[COM].ThisEO^ procedurewilldefinethe SUPSER_ROOTlogicalintheEOsystemlogicalnametableandinstallthePHOTOand?O SUPERVISORimageswiththe necessary privileges.@8+GOTostartthe SupervisorSeries automaticallyatsystemLOstartup,youshouldaddalinelikethe followingtothe;O5systemstartup procedure(SYSTARTUP_V5.COMinO SYS$MANAGER):1O $&$@dua0:[supser.com]supser_startup.com9QOYoushould,ofcourse,specifytheactualdeviceand top-levelEO directorythatyou specifiedduringthe installation.Y22:i0O3.2BCreating SUPERVISOR IdentifiersGOUIfyou installed SUPERVISOR,youmustalsocreatetheMOrights identifiersusedtocontrolaccesstothe SUPERVISORAO functions.0Thereareseven SUPERVISOR identifiers,+O^ describedfullyinthemanual^ SUPERVISOR ReferenceO Guide .';IOAcommand procedurehasbeenprovidedthatcanbeusedSOtocreatethe identifiers.)Torunit,simplygivethe following(O5commandattheDCLprompt:9O $&,@SUPSER_ROOT:[COM]SUPERVISOR_IDENTIFIERS.COM^<4IOThe followingexampleshowsthecommandsusedtocreateOthe identifiers: Oa $#a SET%DEFAULT& SYS$SYSTEM: O $ RUN% AUTHORIZEO UAF>'  ADD/IDENTIFIER& SUPSER_ADVISEO9 UAF>( 9 ADD/IDENTIFIER&SUPSER_OBSERVEO UAF>-  ADD/IDENTIFIER&SUPSER_ADVISE_GROUPO UAF>.  ADD/IDENTIFIER&SUPSER_OBSERVE_GROUPO UAF>+  ADD/IDENTIFIER&SUPSER_LOGGED_OUTOY UAF>& Y ADD/IDENTIFIER& SUPSER_QUIETO UAF>-  ADD/IDENTIFIER&SUPSER_NO_SUPERVISE "_U%Note "_CIfthe identifiersalreadyexist,youwillreceive>errormessagesfrom AUTHORIZEstatingthattheH[ identifiersalreadyexist.'Youcanignoretheseerrors. e=;4O3.3BUsingthe Bookreader Documentation5OUThecommand procedureSUPSER_STARTUP.COM?O automaticallyaddstheSUPSER_ROOT:[DOC]nametoDOthe DECW$BOOKlogicalnamesearchlistifthefile;O^LIBRARY.DECW$BOOKSHELFisfoundinthe[DOC]O directory.e>! .O3.4B RegisteringYour InstallationPOUThe SupervisorSeriesisfreely distributable software,andnoWOlicenseisrequiredtouseit.' Registrationofyour installationisSOatyour discretionandisusedbytheauthoronlyto determineNO^thesizeofthe SupervisorSeriesuserbaseandthefuture(O directionsforthepackage.?kJOTo register,simplysendanotetotheauthorwiththe!O following information:1@ m Installer'sname%CompanynameandaddressD System(s)onwhichthe SupervisorSeriesisrunningEwWhichproductsyou'reusing(PHOTOand/or SUPERVISOR)>Anycommentsand/or suggestionsyoumighthave'A 0OYoucansenditelectronicallyto" goathunter@WKUVX1.BITNET O(or/ %goathunter%WKUVX1.BITNET@UKCC.UKY.EDURO5via Internet),byfaxto+15027455387,orbymailtotheO followingaddress:BmHunterGoatley(Academic Computing,STH226'WesternKentucky University)wBowlingGreen,KY42101USA))E? HOTableB-1:8 SupervisorSeries installationkitsavesets O OFSaveSetKFContents Ob O SUPSER054.A^KThe KITINSTALcommand procedureandits supportingfiles,objectcodecom-7Kmontothe SupervisorSeries components.Oq SUPSER054.BZKq Documentationfiles,in PostScript, Bookreader,andplainASCIIformats.O SUPSER054.C,K SupervisorSeriessourcefiles. O tDD*CL5)6O A.!Sample! Supervisor!Series! InstallationAOThis appendix includes a sample Supervisor SeriesO installation. On $1n @SYS$UPDATE:VMSINSTAL% SUPSER054%MUA0:Ct VAX/VMS%Software%Product& Installation% Procedure%V5.5)O It%is% 13-MAY-1992%at%07:30.BO Enter%a&question&mark%(?)&at&any%time&for%help.WOU %VMSINSTAL-W-NOTSYSTEM,%You%are&not%logged%in%to%the&SYSTEM%account.NO %VMSINSTAL-W-ACTIVE,%The% following& processes%are%still%active:t Polter&Goatt- DECW$TE_0F2B7Ou *&Do&you%want&to&continue&anyway%[NO]? u YESSO *&Are%you% satisfied&with%the&backup%of%your&system%disk&[YES]? j   j M  RETURN u M j  8OU The% following&products&will%be% processed: SUPSER%V5.4 # 8>t Beginning& installation%of%SUPSER%V5.4%at%07:30 #C WFO %VMSINSTAL-I-RESTORE,% Restoring&product%save%set%A%...]O] %VMSINSTAL-I-RELMOVED,& Product's%release&notes&have%been%moved%to% SYS$HELP.0z Supervisor%Series&v5.4% Installation # R zr SUPERVISOR%and&PHOTOJz Copyright%&1992%by%Hunter&Goatley.KAll%Rights& Reserved.CD Redistribution&for%no% commercial&gain%is% permitted. # VO *&Do&you%want&to&purge&files&replaced&by&this% installation&[YES]?  M RETURN M FzD The% Supervisor&Series%is% installed%in%its&own%rootedGz directory%to%avoid%mixing% Supervisor%Series%files%withJz normal%VMS%files.KThe% directory&can%reside%on%any&disk.Fz= THERE&ARE%NO%FILES%COPIED%TO% SYS$SYSTEM,% SYS$LIBRARY,Hz etc.K(The%only%file&copied%to%a&VMS% directory%is%theBz Release%Notes%file,%which%is%copied&to& SYS$HELP.)dO> *&Enter&the% top-level% directory&for%the% Supervisor%Series%[WKUVX1$DUA0:[SUPSER]]: U   U  Mk < RETURN `  M U T _O %VMSINSTAL-I-SYSDIR,%This&product%creates%system%disk% directoryKDUA0:[SUPSER].Lz The% Supervisor&Series%is%normally% installed%by%linking%theOz< object%files%packed%with%the%kit.JThe& installation%will&alsoNz give%you&a%chance&to&add%DCL%commands%and&on-line%help%toz your%system.Lz6 The%sources&are%also& provided.JYou&can%either%install%theKz} products&and%the%sources,%or%you&can%install&the%sources-z only%and&rebuild%them%by%hand.Rz/ If&you%only&want%to%install%the%sources%and%want%to%skip&theJzw product%installations,%enter%YES&to&the% following%prompt.`O *&Do&you%want&to&install%ONLY%the%sources%for%the& Supervisor%Series&[NO]? *   * MA  RETURN 5 M *  MzV The%answer%to%the& following%question%will& determine%whetherKz the% appropriate%source%files%for& SUPERVISOR%and&PHOTO&arez installed.[OO *&Do&you%want&to&install%the&sources%for&the% Supervisor&Series%[YES]?   M M RETURN M e 6O *&Do&you%want&to&install%PHOTO%[YES]?   M RETURN M  Oz6 The%PHOTO%command&can%be%added%to%the% system-wide% DCLTABLES,Kz~ making%the%command% available%to%all&users,%or%it%can%be+z defined%as%a%foreign&command.eO7 *&Do&you%want&to&install%the&PHOTO&command%in%the& system-wide& DCLTABLES%[YES]?   M 4 RETURN M M MO *&Do&you%want&to&add%the%PHOTO%help%to%a&library%[YES]? u  xM RETURN xM  Mz This% installation&updates%the&help%library%so%that&the%DCLKzf command%"$%HELP%PHOTO"%will%provide& information&about&theNz PHOTO&utility%and&"$&HELP% PLAYBACK"&will%provide% information(z about&the%PLAYBACK%utility.Qz_ There&are%several&help% libraries&that%these%help%files%can%be+z placed%in.KSome%of%them%are:)z SYS$SYSROOT:[SYSHLP]HELPLIB.HLB%zX WKU$ROOT:[HELP]WKU_HELP.HLBiO *&Which&library%should&have%PHOTO%and&PLAYBACK&help%"[SYS$SYSROOT:[SYSHLP]HELPLIB.HLB]:     M&  RETURN M   ;OA *&Do&you%want&to&install% SUPERVISOR%[YES]?    M? RETURN  M W Gz The% SUPERVISE%command%can%be%added%to%the& system-wideIz DCLTABLES,%making&it& available%to%all%users,&or&it&canJz@ be&defined%as%a%foreign&command%on%a%per-user%basis%orz in& SYS$SYLOGIN.Kz For%security% purposes,%it%is% recommended%that%the%commandGz9 be&defined%as%a%foreign&command%on%a%per-user%basis.RO *&Do&you%want&to&add%the% SUPERVISE&command%to% DCLTABLES&[NO]? j p  j rM  RETURN u rM j  Mz This% installation&updates%the&help%library%so%that&the%DCLOz` command%"$%HELP% SUPERVISE"&will%provide% information%about%thez SUPERVISOR%utility.Sz Whether%or%not&you%elect%to%place%the%files%in%a%library,%theLzY files&will%be%left%in%the% Supervisor%Series% directory&forz future% reference.RO  *&Do&you%want&to&add%the% SUPERVISOR%help&to&a%library%[YES]? E   E M[  RETURN P M E  Kzy Unless%the% SUPERVISE&command%was&added&to&the% system-wideNz DCLTABLES,%it%is%not& recommended&that%the&help%be% installedEz  in&the%system%help%library&(SYS$SYSROOT:[HELPLIB.HLB).Mzr There&are%several&help% libraries&that%can&contain%the&help&z files.JSome%of%them&are:)z# SYS$SYSROOT:[SYSHLP]HELPLIB.HLB%zk WKU$ROOT:[HELP]WKU_HELP.HLBgO *&Which&library%should&contain%the& SUPERVISOR%help%"[SYS$SYSROOT:[SYSHLP]HELPLIB.HLB]:   M  RETURN M  KzJ No&further% questions&will%be%asked.KThe% Supervisor%SeriesPz installation%will&now%continue%for%2%to%15%minutes,% dependingEz on&your%type%of%media%and%the&system%configuration.cOC! %VMSINSTAL-I-SYSDIR,%This&product%creates%system%disk% directoryKDUA0:[SUPSER.EXE].cO! %VMSINSTAL-I-SYSDIR,%This&product%creates%system%disk% directoryKDUA0:[SUPSER.COM].cO! %VMSINSTAL-I-SYSDIR,%This&product%creates%system%disk% directoryKDUA0:[SUPSER.DOC].cO" %VMSINSTAL-I-SYSDIR,%This&product%creates%system%disk% directoryKDUA0:[SUPSER.SRC].7Oc" %SUPSER-I-LINKING,%Linking%image% PHOTO....:O" %SUPSER-I-LINKING,%Linking%image% PLAYBACK....8O# %SUPSER-I-LINKING,%Linking%image% HANDIN.... #" Ht)( Installation&of&SUPSER%V5.5& completed%at%07:34 #' H/t( VMSINSTAL& procedure%done&at&07:35 O) $ ^Gq 4OOTableC-1:7 SupervisorSeriesfilescreatedduring installation O OFFilenameF Description Ob &FilesinSUPSER_ROOT:[COM] O $OSUPERVISOR_IDENTIFIERS.COMECommand proceduretocreate SUPERVISORrightsidenti-[fiersOSUPSER_STARTUP.COM%Startupcommand procedure O> &FilesinSUPSER_ROOT:[DOC] O !OINSTALL_GUIDE.DECW$BOOK+ Installationguide (Bookreader)OcINSTALL_GUIDE.PS+c Installationguide (PostScript)OINSTALL_GUIDE.TXT& Installationguide(ASCII) OWLIBRARY.DECW$BOOKSHELF>WLibrary bookshelffilefor Bookreader documentsOPHOTO.DECW$BOOK! PHOTO ReferenceGuide  (Bookreader) 2OJ PHOTO.HLP2JOn-linehelpforPHOTOandPLAYBACK # .2OPHOTO.PS! PHOTO ReferenceGuide  (PostScript) | 2O> PHOTO.TXT!> PHOTO ReferenceGuide >(ASCII)  "2OSUPERVISOR.DECW$BOOK& SUPERVISOR ReferenceGuide  (Bookreader) 3O2SUPERVISOR.HLP'2On-linehelpfor SUPERVISE 3O SUPERVISOR.PS& SUPERVISOR ReferenceGuide  (PostScript) \ 3O% SUPERVISOR.TXT&% SUPERVISOR ReferenceGuide % (ASCII) 3O SUPSER.DECW$BOOKSHELF5  Bookshelffilefor Bookreader documents O &P FilesinSUPSER_ROOT:[EXE] Ok O  PHOTO.CLD8 CLDfileforPHOTOandPLAYBACKcommands 2O2  PHOTO.EXE02  ExecutableimageforPHOTOutility s  2O  PLAYBACK.EXE3  ExecutableimageforPLAYBACKutility 2O%  HANDIN.CLD)% CLDfileforHANDINcommand 2O  HANDIN.EXE1  ExecutableimageforHANDINutility 2 #  O  OT 2)mp OnlyifPHOTOwas installed O 3.m Onlyif SUPERVISORwas installedH Wk O OFilename Description O &AFilesinSUPSER_ROOT:[EXE] O\ OSUPERVISOR.CLD,CLDfilefor SUPERVISEcommand X 3O)SUPERVISOR.EXE4) Executableimagefor SUPERVISEcommand x 3 O &FilesinSUPSER_ROOT:[SRC] 1 O OBADVISORMAR.MAR-GMACROsourceforADVISORmodule +3O BUILD.COMBCommand proceduretobuildtheSeriesfromsourceO:BUILD_MACRO.COMA:Command proceduretobuildtheSeriesfromMACROsource #G AOCHECK_PRIVS.B322BLISS-32sourcefor privilegechecksO{CHECK_PRIVS.MAR3{MACRO-32source generatedbyBLISS-32O CVTB32MAR.TPU2ConvertBLISS-32.LISfilesto.MAROoCVTDOCHELP.TPU;oConvertDOCUMENT.HLPtoregular.HLPfilesO DESCRIP.MMS/MMS descriptionfileforbuildingOb HANDIN.MAR3bMACRO-32source generatedbyBLISS-32 ( F2OHANDIN_CLD.CLD2CLD definitionforHANDINCLItable 2OVHANDIN_SUBS.B324VBLISS-32sourceforHANDIN subroutines 2 :2OHANDIN_SUBS.MAR3MACRO-32source generatedbyBLISS-32 ( 2OI  HANDIN.MAR3I MACRO-32source generatedbyBLISS-32 ( - 2O  PHOTO.B32= BLISS-32sourcefor PHOTO/HANDINmainroutines 2 # O=  PHOTO.MAR3= MACRO-32source generatedbyBLISS-32 ( ! 2O  PHOTO.SDML3 VAXDOCUMENTsourceforPHOTOmanual 2O1  PHOTOMAR.MAR61 MACROsupportroutinesforterminalI/OO  PHOTONP.B328 BLISS-32sourcefor nonpaged-poolroutinesO$  PHOTONP.MAR3$ MACRO-32source generatedbyBLISS-32O  PHOTOP1.B32/ BLISS-32sourceforP1-spacecode O  OS 1,mo Onlyifsourceswere installed O 2)m OnlyifPHOTOwas installed O"3.m>Onlyif SUPERVISORwas installedI D O OFilename Description O &EFilesinSUPSER_ROOT:[SRC] )1 O` O PHOTOP1.MAR3MACRO-32source generatedbyBLISS-32O. PHOTOPAT.B320.BLISS-32sourcefor non-pagedcodeO PHOTOPAT.MAR3MACRO-32source generatedbyBLISS-32O! PHOTO_CLD.CLD1!CLD definitionforPHOTOCLItable n 2O PLAYBACK.B328BLISS-32sourceforPLAYBACKmainroutine 2O PLAYBACK.MAR3MACRO-32source generatedbyBLISS-32 ( 2OPLAYBACK_CLD.CLD4CLD definitionforPLAYBACKCLItable  r2OPLAYBACK_MSG.MSG2MESSAGEsourceforPLAYBACKmessages r 2OPLAYBACK_RTN.MAR>MACRO-32source generatedbyBLISS-32 M3OSUPSER054.SDML4VAXDOCUMENTsourceforreleasenotesO] SUPSERMSG.MSG6]MESSAGEsourceforPHOTOand SUPERVISORmessages /3O$ SUPSER_MACROS.R32!$ BLISS-32REQUIREfile # zO  TERMBLI.R32* BLISS-32libraryREQUIREfileO  TTLOOKUP.B32; BLISS-32sourceforterminallookuproutinesO  TTLOOKUP.MAR3 MACRO-32source generatedbyBLISS-32O  VERSION.B32? BLISS-32sourceforroutinetogetimageidentO  VERSION.MAR3 MACRO-32source generatedbyBLISS-32 O (6 FilesinSYS$COMMON:[SYSHLP] OQ !O SUPSER054.RELEASE_NOTES6 Releasenotesforthe SupervisorSeries O  O" 1,m> Onlyifsourceswere installed O 2)m OnlyifPHOTOwas installed O 3.m Onlyif SUPERVISORwas installed O> jj&D[-O B.!Contents!of! Distribution"KitFOThe SupervisorSeriesisprovidedinaVMSINSTALlableTO distributionkit consistingofthreesavesets.)Eachsavesetis OBbriefly describedinBTableB-1.*Dl?E--F2OC.!Files!Created!During! InstallationOdThefilesindTableC-15darecreatedduringthe installationof,Othe SupervisorSeries software.*F'r?G..   PrefaceIntended AudienceDocument StructureDocument StructureRelated DocumentsRelated Documents41. Preparing to Install the Supervisor Series 1.1 Prerequisite Software-1.2 Accessing the Online Release Notes.1.3 Installation Procedure Requirements.1.3 Installation Procedure Requirements.1.3 Installation Procedure Requirements*2. Installing the Supervisor Series2.1 Invoking VMSINSTAL2.1 Invoking VMSINSTAL2.1 Invoking VMSINSTAL2.1 Invoking VMSINSTAL2.1 Invoking VMSINSTAL2.1 Invoking VMSINSTAL2.2 Installation Options2.2 Installation Options'2.3 Disk and Directory Selection'2.3 Disk and Directory Selection'2.3 Disk and Directory Selection2.4 Component Selection2.4 Component Selection2.4 Component Selection2.4 Component Selection(2.4.1 Installing the Sources Only(2.4.1 Installing the Sources Only(2.4.1 Installing the Sources Only(2.4.1 Installing the Sources Only*2.4.2 Installing PHOTO and PLAYBACK*2.4.2 Installing PHOTO and PLAYBACK*2.4.2 Installing PHOTO and PLAYBACK*2.4.2 Installing PHOTO and PLAYBACK*2.4.2 Installing PHOTO and PLAYBACK"2.4.3 Installing SUPERVISOR"2.4.3 Installing SUPERVISOR"2.4.3 Installing SUPERVISOR"2.4.3 Installing SUPERVISOR"2.4.3 Installing SUPERVISOR"2.4.3 Installing SUPERVISOR%2.5 The Installation Completes'3. Post-Installation Information)3.1 Starting the Supervisor Series)3.1 Starting the Supervisor Series)3.1 Starting the Supervisor Series*3.2 Creating SUPERVISOR Identifiers*3.2 Creating SUPERVISOR Identifiers*3.2 Creating SUPERVISOR Identifiers-3.3 Using the Bookreader Documentation(3.4 Registering Your Installation(3.4 Registering Your Installation(3.4 Registering Your Installation(3.4 Registering Your Installation(3.4 Registering Your Installation/A. Sample Supervisor Series Installation&B. Contents of Distribution Kit?Table B- 1: Supervisor Series installation kit save sets+C. Files Created During InstallationFTable C- 1: Supervisor Series files created during installationFTable C- 1: Supervisor Series files created during installationFTable C- 1: Supervisor Series files created during installation& & 123456789INSTALL_GUIDE_PREFINSTALL_GUIDE_3INSTALL_GUIDE_413INSTALL_GUIDE_515INSTALL_GUIDE_CH1INSTALL_GUIDE_8INSTALL_GUIDE_9INSTALL_GUIDE_102021INSTALL_GUIDE_CH2INSTALL_GUIDE_CH2_VMSINSTAL2425262728INSTALL_GUIDE_1530INSTALL_GUIDE_CH2_43233INSTALL_GUIDE_16353637INSTALL_GUIDE_CH2_5394041INSTALL_GUIDE_CH2_643444546INSTALL_GUIDE_CH2_74849505152OPTINSTPOSTINSTINSTALL_GUIDE_365657CREATE_IDS5960INSTALL_GUIDE_33INSTALL_GUIDE_3763646566INSTALL_GUIDE_APP_AINSTALL_GUIDE_APP_BSSTABINSTALL_GUIDE_APP_CFILETAB7273 B-ADOBE-Helvetica-Medium-R-Normal--*-120-*-*-P-*-ISO8859-1@-ADOBE-Helvetica-Bold-R-Normal--*-180-*-*-P-*-ISO8859-1@-ADOBE-Helvetica-Bold-R-Normal--*-120-*-*-P-*-ISO8859-1@-ADOBE-Helvetica-Bold-R-Normal--*-100-*-*-P-*-ISO8859-1B-ADOBE-Helvetica-Medium-R-Normal--*-100-*-*-P-*-ISO8859-1@-ADOBE-Helvetica-Bold-R-Normal--*-140-*-*-P-*-ISO8859-1O-ADOBE-New Century Schoolbook-Medium-R-Normal--*-140-*-*-P-*-ISO8859-1O-ADOBE-New Century Schoolbook-Medium-R-Normal--*-120-*-*-P-*-ISO8859-1/-ADOBE-Symbol-*-R-*--*-140-*-*-P-*-*-*O -ADOBE-New Century Schoolbook-Medium-I-Normal--*-140-*-*-P-*-ISO8859-1@ -ADOBE-Courier-Medium-R-Normal--*-120-*-*-M-*-ISO8859-1> -ADOBE-Courier-Bold-R-Normal--*-120-*-*-M-*-ISO8859-1M -ADOBE-New Century Schoolbook-Bold-R-Normal--*-140-*-*-P-*-ISO8859-1O -ADOBE-New Century Schoolbook-Medium-I-Normal--*-120-*-*-P-*-ISO8859-1O-ADOBE-New Century Schoolbook-Medium-R-Normal--*-100-*-*-P-*-ISO8859-1RZU..U^ ZD& _l Tk f c Pj*IvzB{N^VX+- -  /22P37DSj6^)T-FPK 6*Finstall_guide.psIMVMSVV7.1IM$VFABPB@m!ЦIMVFHC,; LbIM*VDAT,120-%稌:lkt@IMVPROXry S'b1@0IMVRDT0-*-=R稌:%!PS-Adobe-2.0%%Creator: VAX DOCUMENT V2.0K%%+Copyright 1986,1987,1988,1989,1990,1991 DIGITAL EQUIPMENT CORPORATION. %%+All Rights Reserved.%%DocumentFonts: (atend)%%Pages: (atend) %%EndComments*/DEC_DVC$dict where { %FIND DICTIONARY pop}{ %else /DEC_DVC$dict 300 dict def } ifelse %/BeginDVC$PSDoc { %BEGIN DOCUMENT vmstatus pop pop 0 eq {' DEC_DVC$dict begin InitializeState }{ %else< /DVC$PSJob save def DEC_DVC$dict begin InitializeState /DVC$PSFonts save def } ifelse} def"/EndDVC$PSDoc { %END DOCUMENT'% --- Preserving current page count --- vmstatus pop pop 0 eq { end }{ %else/ DVC$PSFonts restore end DVC$PSJob restore } ifelse} def%DEC_DVC$dict begin%5mark % CREATE ISOLatin1Encoding if not there already/ISOLatin1Encoding0 8#000 1 8#054 {StandardEncoding exch get} for  /minus0 8#056 1 8#217 {StandardEncoding exch get} for /dotlessi 0 8#301 1 8#317 {StandardEncoding exch get} for H /space /exclamdown /cent /sterling /currency /yen /brokenbar /section G /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen L /registered /macron /degree /plusminus /twosuperior /threesuperior /acute E /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine L /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave O /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute O /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde L /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave M /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute G /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute N /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntildeJ /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave < /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis 9 /ISOLatin1Encoding where not {256 array astore def} if cleartomark%-/DOCPSE ISOLatin1Encoding 256 array copy def "mark % CREATE DOCPSE ENCODING 8#055 /hyphenC 8#201 /bullet 8#202 /emdash 8#203 /endash 8#204 /daggerC 8#205 /daggerdbl 8#206 /registered 8#207 /trademark %8#210 /Delta? 8#211 /fi 8#212 /fl 8#213 /OE 8#214 /oe 8#215 /Ydieresis) counttomark -1 bitshift % DIVIDE BY 2: {DOCPSE 3 1 roll put} repeat % STACK NOW CONTAINS MARK cleartomark%9/reencodedict 10 dict def %Local storage for "ReENCODE"3/ReENCODE { % /basefont /newfont encoding ReENCODE7 /newencoding exch def %ARG: NAME OF ENCODING VECTORC /newfontname exch def %ARG: NEW NAME FOR FONT AFTER RE-ENCODING findfont> /basefontdict exch def %ARG: NAME OF FONT TO BE RE-ENCODED? basefontdict maxlength dict begin %CREATE AND OPEN NEW DICT= basefontdict { %COPY ENTRIES FROM BASE FONT DICT TO NEW ONE 1 index /FID ne {5 def %IF NOT THE ONE WE'RE ENCODING, JUST COPY PTRS } { %else: pop pop %IGNORE FID AND ENCODING FOR ONE WE'RE ENCODING } ifelse } forall, /FontName newfontname def %DEFINE NEW NAME 6 /Encoding newencoding def %DEFINE NEW ENCODING VECTOR; newfontname currentdict definefont %TURN IT INTO A PS FONT3 pop %IGNORE MODIFIED DICT RETURNED BY DEFINEFONT end} def%/cvsstr 64 string def/tempmatrix matrix def%/BP { % BEGIN PAGE /Magnification exch def /Colorsused 0 def /processcolor false def /RVmatrix matrix def /DVC$PSPage save def} def%*/EP {DVC$PSPage restore} def % END PAGE%5/XP { % EXIT PAGE (TEMPORARILY) TO ADD FONTS/CHARSE % SAVE CURRENT POINT AND COLOR INFORMATION SO IT CAN BE RESET LATERH matrix currentmatrix aload pop currentrgbcolor Colorsused processcolor# /Xpos where {pop Xpos} {0} ifelse# /Ypos where {pop Ypos} {0} ifelse9 /currentpoint cvx stopped {0 0 moveto currentpoint} if / /DVC$PSPage where {pop DVC$PSPage restore} if moveto /Ypos exch def /Xpos exch def9 /processcolor exch def /Colorsused exch def setrgbcolor matrix astore setmatrix} def%-/RP {/DVC$PSPage save def} def % RESUME PAGE%A/PF {GlobalMode LocalMode} def % PURGE FONTS TO RECLAIM MEMORY%@/GlobalMode { % SWITCH TO BASE SAVE/RESTORE LEVEL, SAVING STATEK /DEC$EDMS_SEPARATE_COLORS where{pop DEC$EDMS_SEPARATE_COLORS}{9999}ifelse! RVmatrix aload pop processcolorC PortraitMode PaperWidth PaperHeight PxlResolution Resolution I Magnification Ymax Xorigin Yorigin RasterScaleFactor0 % SAVE CURRENTPOINT INFORMATION TO RESET LATER9 /currentpoint cvx stopped {0 0 moveto currentpoint} if / /DVC$PSPage where {pop DVC$PSPage restore} if# DVC$PSFonts restore RecoverState} def%2/RecoverState { % PRESERVE STATE AT BASE LEVEL 20 copyL /Ypos exch def /Xpos exch def /RasterScaleFactor exch def? /Yorigin exch def /Xorigin exch def /Ymax exch defH /Magnification exch def /Resolution exch def /PxlResolution exch defG /PaperHeight exch def /PaperWidth exch def /PortraitMode exch def< /processcolor exch def matrix astore /RVmatrix exch def< dup 9999 ne{/DEC$EDMS_SEPARATE_COLORS exch def}{pop}ifelse DoInitialScaling RVmatrix concat3 PortraitMode not {PaperWidth 0 SetupLandscape} if Xpos Ypos moveto} def%B/InitializeState { % INITIALIZE STATE VARIABLES TO DEFAULT VALUES. /Resolution 3600 def /PxlResolution 300 def5 /RasterScaleFactor PxlResolution Resolution div def /PortraitMode true def9 /Magnification 1000 def /Xorigin 0 def /Yorigin 0 defC /Xpos 0 def /Ypos 0 def /InitialMatrix matrix currentmatrix defB /Colorsused 0 def /processcolor false def /RVmatrix matrix def} def%D/LocalMode { % SWITCH FROM BASE SAVE/RESTORE LEVEL, RESTORING STATE= /Ypos exch def /Xpos exch def /RasterScaleFactor exch def6 /Yorigin exch def /Xorigin exch def /Ymax exch defH /Magnification exch def /Resolution exch def /PxlResolution exch defE /PaperHeight exch def /PaperWidth exch def /PortraitMode exch def: /processcolor exch def matrix astore /RVmatrix exch def< dup 9999 ne{/DEC$EDMS_SEPARATE_COLORS exch def}{pop}ifelse DoInitialScaling RVmatrix concat3 PortraitMode not {PaperWidth 0 SetupLandscape} if Xpos Ypos moveto- /DVC$PSFonts save def /DVC$PSPage save def} def% % ABBREVIATIONS /S /show load def/SV /save load def/RST /restore load def/Yadjust {Ymax exch sub} def%C/SXY { % (x,y) POSITION ABSOLUTE, JUST SET Xpos & Ypos, DON'T MOVE( Yadjust /Ypos exch def /Xpos exch def} def%$/XY { % (x,y) POSITION ABSOLUTE7 Yadjust 2 copy /Ypos exch def /Xpos exch def moveto} def%#/X { % (x,0) POSITION ABSOLUTEF currentpoint exch pop 2 copy /Ypos exch def /Xpos exch def moveto} def%$/Y { % (0,y) POSITION ABSOLUTE ' currentpoint pop exch Yadjust 2 copy' /Ypos exch def /Xpos exch def moveto} def%$/xy { % (x,y) POSITION RELATIVE9 neg rmoveto currentpoint /Ypos exch def /Xpos exch def} def%#/x { % (x,0) POSITION RELATIVE7 0 rmoveto currentpoint /Ypos exch def /Xpos exch def} def%#/y { % (0,y) POSITION RELATIVE@ 0 exch neg rmoveto currentpoint /Ypos exch def /Xpos exch def} def%/R { % DRAW A RULE$ /ht exch def /wd exch def gsave % 0 setgray currentpoint newpath moveto 0 ht rlineto wd 0 rlineto$ 0 ht neg rlineto wd neg 0 rlineto( closepath fill grestore wd 0 rmoveto, currentpoint /Ypos exch def /Xpos exch def} def%D/RES { % RES/ /Resolution exch def /PxlResolution exch def5 /RasterScaleFactor PxlResolution Resolution div def DoInitialScaling} def%,/DoInitialScaling { % DO INITIAL SCALING6 InitialMatrix setmatrix 72 Resolution div dup scale} def%2/PM { % PM XP/ /PaperWidth exch def /PaperHeight exch def0 /Ymax PaperHeight def /PortraitMode true def DoInitialScaling RP} def 8%9*/SetupLandscape {translate 90 rotate} def3/LM { % LM t XP/ /PaperWidth exch def /PaperHeight exch defd1 /Ymax PaperWidth def /PortraitMode false def0 DoInitialScaling PaperWidth 0 SetupLandscape RP} def B%N*/MAG { % CHANGE MAGNIFICATION SETTING! XP /Magnification exch def RP} def%%e8/SPB { % SPB - BEGIN "\SPECIAL" MODE- Yadjust /Yorigin exch def /Xorigin exch def  currentrgbcolor Colorsused& GlobalMode Xorigin Yorigin translate9 Resolution 72 div dup scale % RESTORE DEFAULT SCALINGlB Magnification 1000 div dup scale % ADJUST FOR ANY MAGNIFICATIONA /Xpos Xpos 72 Resolution div mul 1000 Magnification div mul defiA /Ypos Ypos 72 Resolution div mul 1000 Magnification div mul defEG /spsavobj save def %SAVE STATE & STACK DEPTH FOR CLEANUP AFTER FIGUREgG /showpage {} def %DISABLE DURING FIGURE; `RESTORE' WILL BLOW DEF AWAY> /DEC$EDMS_SEPARATE_COLORS where % if separating colors. { % thenC pop processcolor % if using process colorsm0 { % thenE DEC$EDMS_SEPARATE_COLORS 0 ge % if on color pass .ge. 0l2 { % then@ { pop 1 } settransfer % write only white2 }{ % else" /DEC$EDMS_TRAP_SWELL where, { pop DEC$EDMS_SEPARATE_COLORS -4 eq5 { /EDMS_setlinewidth /setlinewidth load def K /setlinewidth { DEC$EDMS_TRAP_SWELL mul EDMS_setlinewidth } defe } if } ifE /EDMS_setrgbcolor % set up for a redefine K /setrgbcolor load def % of the setrgbcolor operatorcK currentscreen % get the current screen parameterseF /DEC$EDMS_SCREEN_ANGLE where % if changing the screen angle. { % thenA pop exch pop % replace the old angleN< DEC$EDMS_SCREEN_ANGLE exch % with the new one } ifJ /DEC$EDMS_SCREEN_FREQ where % if changing the screen frequency. { % thenE pop 3 -1 roll pop % replace the old frequencyt< DEC$EDMS_SCREEN_FREQ 3 1 roll % with the new one } if@ setscreen % Set the new parameters /setrgbcolor { /b exch deff /g exch def /r exch defe /c3 1 r sub defC /m3 1 g sub def  /y3 1 b sub def M /k c3 m3 2 copy gt { exch } if pop y3 2 copy gt { exch } if pop def  /ik 1 k sub defo ik 0 nec# { /c4 c3 k sub ik div defb# /m4 m3 k sub ik div defE# /y4 y3 k sub ik div def/ }e) { /c4 /DEC$EDMS_BLACK_GEN whereY7 { pop DEC$EDMS_BLACK_GEN } { 0 } ifelse defN /m4 c4 def /y4 c4 def } ifelseL 1 [ c4 m4 y4 k ] % pick the separation for this colorI DEC$EDMS_SEPARATE_COLORS % pass ( -1 = Cyan, -2 = Magenta,pC neg 1 sub get sub setgray % -3 = Yellow, -4 = Black ) } defr3 } ifelse % endifEN }{ % else (if not using process colors)D DEC$EDMS_SEPARATE_COLORS 0 ne % if not on color pass 02 { % then@ { pop 1 } settransfer % write only white3 } if % endif1 } ifelse % endifC/ } if % endif{ mark} defY% #/SPE { % SPE - END "\SPECIAL" MODEe cleartomarkp spsavobj restore nD 1000 Magnification div dup scale % UN-ADJUST FOR ANY MAGNIFICATIONA 72 Resolution div dup scale % RESTORE DEFAULT INTERNAL SCALINGo LocalModee" /Colorsused exch def setrgbcolor} def%e/PP%RK% If DEC$EDMS_MAKE_FILM is defined, it will add the crop & alignment marks, J% and the document name, page number, & ink color identifiers to the page.%E% Formal Arguments: None%$% Referenced Variables: DocumentName% Colorsused% Currentpagecount% DEC$EDMS_MAKE_FILMo%s"% Referenced Procedures: AlignMark%e=% Side Effects: Leaves the current font as Helvetica 8 point. "% Creates the variable "junkstr".%l{ /PageNumber exch def1 /DEC$EDMS_MAKE_FILM where % if making film...  { pope@ /DEC$EDMS_SUPPRESS_COLOR where % if color suppression is onC { pop /DEC$EDMS_SEPARATE_COLORS 0 def % then default to color 0R2 /Colorsused 1 def } if % ...for everythingO 2 DEC$EDMS_SEPARATE_COLORS exp cvi Colorsused and 0 ne %if correct separatnh@ DEC$EDMS_SEPARATE_COLORS 0 lt or % ...or if a process color/ { /Helvetica findfont 400 scalefont setfont  20 setlinewidth 0 setgrayP gsavec< PaperWidth 1000 add 200 translate 90 rotate 0 0 moveto* (Ink: ) show % show the ink color# DEC$EDMS_SEPARATE_COLORS 0 geE; { DEC$EDMS_COLOR_NAMES DEC$EDMS_SEPARATE_COLORS get }a= { (Process ) show [ (Cyan) (Magenta) (Yellow) (Black) ]i< DEC$EDMS_SEPARATE_COLORS neg 1 sub get } ifelse showB /DEC$EDMS_SUPPRESS_COLOR where % if color suppression is onI { pop ( (Color Suppression enabled)) show } if % tell them about it 1800 0 rmovetod- (Page: ) show % show the page number/7 /junkstr 4 string def PageNumber junkstr cvs showx7 ( of ) show DEC$EDMS_TOTAL_PAGES junkstr cvs showc$ DEC$EDMS_SEPARATE_COLORS -4 eq0 { 1800 0 rmoveto (Trap Swell Factor: )showE /DEC$EDMS_TRAP_SWELL where % if trap swell factor is suppliedS0 { pop DEC$EDMS_TRAP_SWELL 6 string cvs }% { (1 (default)) } ifelse showa } if9 DEC$EDMS_SEPARATE_COLORS 0 lt % if a process colorg {e@ PaperHeight 2 div 600 add 0 moveto (Screen Angle: ) show$ /DEC$EDMS_SCREEN_ANGLE whereB { pop DEC$EDMS_SCREEN_ANGLE junkstr cvs } % if defined: { ((default)) } ifelse show % if not defined1 1800 0 rmoveto (Screen Frequency: ) showo# /DEC$EDMS_SCREEN_FREQ whereeA { pop DEC$EDMS_SCREEN_FREQ junkstr cvs } % if definedS: { ((default)) } ifelse show % if not defined } if grestore gsaveA- -600 200 translate 90 rotate 0 0 movetoaF (Document: ) show DEC$EDMS_DOCUMENT_ID show % show document name( PaperHeight 2 div 600 add 0 movetoG (This film is the property of Digital Equipment Corporation) showS grestore1 /mask 15 % all crop marks on by defaultfN /DEC$EDMS_SUPPRESS_CROPMARKS where % if def'd, xor in suppression mask8 { pop DEC$EDMS_SUPPRESS_CROPMARKS xor } if def mask 1 and 1 eq 6 { PaperWidth PaperHeight moveto % Upper RightL 450 0 rmoveto 900 0 rlineto -1350 1350 rmoveto 0 -900 rlineto } if mask 2 and 2 eqt- { PaperWidth 0 moveto % Lower RightL 450 0 rmoveto 900 0 rlineto -1350 -1350 rmoveto 0 900 rlineto } if mask 4 and 4 eqf$ { 0 0 moveto % Lower LeftM -450 0 rmoveto -900 0 rlineto 1350 -1350 rmoveto 0 900 rlineto } ifm mask 8 and 8 eqd- { 0 PaperHeight moveto % Upper LeftoM -450 0 rmoveto -900 0 rlineto 1350 1350 rmoveto 0 -900 rlineto } if stroke7 /mask 15 % all registratn marks on by defaultoN /DEC$EDMS_SUPPRESS_REGMARKS where % if defined, xor in suppression mask7 { pop DEC$EDMS_SUPPRESS_REGMARKS xor } if defa% mask 1 and 1 eq % Top Center 5 { gsave PaperWidth 2 div PaperHeight 900 addo% /DEC$EDMS_POSITION_REGMARKS where 7 { pop DEC$EDMS_POSITION_REGMARKS -50 mul add } ifP% translate AlignMark grestore } ife' mask 2 and 2 eq % Right Center " { gsave PaperWidth 900 add# /DEC$EDMS_POSITION_REGMARKS wheres4 { pop DEC$EDMS_POSITION_REGMARKS -50 mul add } if6 PaperHeight 2 div translate AlignMark grestore } if( mask 4 and 4 eq % Bottom Center% { gsave PaperWidth 2 div -900t# /DEC$EDMS_POSITION_REGMARKS wheree3 { pop DEC$EDMS_POSITION_REGMARKS 50 mul add } ifI# translate AlignMark grestore } if & mask 8 and 8 eq % Left Center { gsave -900# /DEC$EDMS_POSITION_REGMARKS wherec3 { pop DEC$EDMS_POSITION_REGMARKS 50 mul add } ifd5 PaperHeight 2 div translate AlignMark grestore } if7 showpage }T0 { % disabled the 'erasepage ' that was here! } ifelse }R { showpage } ifelseX} defs1/CLRP { % disabled the 'erasepage' that was here!e } defo%p+/DMF { % /font-name DMFiB /psz exch def /nam exch def nam findfont psz scalefont setfont} defR%G3/concatnam { % /abcd (xxx) concatnam ==> /abcdxxxT /xxx exch def /nam exch def /namstr nam cvsstr cvs def1 /newnam namstr length xxx length add string def  newnam 0 namstr putintervalo& newnam namstr length xxx putinterval newnam cvn c} def% %/strip { % /abcdef 2 strip ==> /cdef  /num exch def /nam exch def /namstr nam cvsstr cvs def# /newlen namstr length num sub def $ namstr num newlen getinterval cvn} def /% ROUTINES TO HANDLE PACKING/UNPACKING NUMBERS8/PackHW { % PackHW --> 0 /num exch def /pos exch def /target exch def: num 16#0000FFFF and 1 pos sub 16 mul bitshift target or} defw</PackByte { % PackByte --> 0 /num exch def /pos exch def /target exch def: num 16#000000FF and 3 pos sub 8 mul bitshift target or} defp4/UnpkHW { % UnpkHW -->  /num exch def /pos exch def0 num 1 pos sub -16 mul bitshift 16#0000FFFF and) dup 16#00007FFF gt {16#00010000 sub} if } defC8/UnpkByte { % UnpkByte -->  /num exch def /pos exch def/ num 3 pos sub -8 mul bitshift 16#000000FF and ) dup 16#0000007F gt {16#00000100 sub} if } defD%S/ps-scalefont { J % FOR PS FONTS, LOOK AT SIZE REQUESTED. IF IT HAS A DECIMAL REMAINDERL % EQUIVALENT TO .001-.009 POINTS (I.E., .050-.450 VAXDOC UNITS), THAT'S H % A FLAG TO STRETCH IT VERTICALLY BY ADDING 1-9 EXTRA POINTS TO THE  % VERTICAL SCALING.SA % save requested size - as entered and as integere, dup /x-size exch def cvi /x-int exch def; % calc decimal remainder, mul x 1000, round ; x-size x-int sub 1000 mul round cvi /remainder exch def % % see how we scale... ) remainder 50 lt remainder 450 gt or {3& % scale isomorphically /ystretch 0 def  x-size scalefont } {k& % scale anamorphically /ystretch remainder def + x-int ystretch add /y-size exch def/' [x-int 0 0 y-size 0 0] makefont_ } ifelse} def % (/DPSF { % /procname size /fontname DPSF< findfont exch ps-scalefont [ exch /setfont cvx ] cvx def} deff%e/PXLBuildCharDict 17 dict def /CMEncodingArray 256 array def90 1 255 {CMEncodingArray exch dup cvsstr cvs cvn put} fora*/RasterConvert {RasterScaleFactor div} def/TransformBBox { aload pop3H /BB-ury exch def /BB-urx exch def /BB-lly exch def /BB-llx exch def. [ BB-llx RasterConvert BB-lly RasterConvert / BB-urx RasterConvert BB-ury RasterConvert ]r} def /RunLengthToRasters {O % none yet} defn7/GenerateRasters { % GENERATE RASTERS FOR "IMAGEMASK" 1 rasters runlength 1 eq {RunLengthToRasters} if } def %r*/int-dict-name {int (-dict) concatnam} def./int-dict {int (-dict) concatnam cvx load} def% /DefinePXLFont {E % ...Y1 % ...[llx lly urx ury]DefinePXLFonttC /newfont exch def /bb exch def /num exch def /psz exch def-C /dsz exch def /pxlmag exch def /ext exch def /int exch defE9 /fnam ext (-) concatnam pxlmag cvsstr cvs concatnam defh newfont not { int-dict-name 13 dict defE int-dict beginF /FontType 3 def /FontMatrix [ 1 dsz div 0 0 1 dsz div 0 0 ] defC /FontBBox bb TransformBBox def /Encoding CMEncodingArray defmI /CharDict 1 dict def CharDict begin /Char-Info num array def endu /BuildChar { PXLBuildCharDict begin, /char exch def /fontdict exch defB fontdict /CharDict get /Char-Info get char get aload pop2 /rasters exch def /PackedWord1 exch def+ 0 PackedWord1 UnpkHW 16#7FFF ne { 8 /PackedWord2 exch def /wx 0 PackedWord1 UnpkHW defN /rows 2 PackedWord1 UnpkByte def /cols 3 PackedWord1 UnpkByte defM /llx 0 PackedWord2 UnpkByte def /lly 1 PackedWord2 UnpkByte defPM /urx 2 PackedWord2 UnpkByte def /ury 3 PackedWord2 UnpkByte defP }{ %else0G /PackedWord2 exch def /PackedWord3 exch def /PackedWord4 exch defnJ /wx 1 PackedWord1 UnpkHW def /rows 0 PackedWord2 UnpkHW defI /cols 1 PackedWord2 UnpkHW def /llx 0 PackedWord3 UnpkHW deftI /lly 1 PackedWord3 UnpkHW def /urx 0 PackedWord4 UnpkHW defN) /ury 1 PackedWord4 UnpkHW def  } ifelse rows 0 lt {w( /rows rows neg def /runlength 1 def }{ %elseb /runlength 0 def } ifelseU wx 0. llx RasterConvert lly RasterConvert < urx RasterConvert ury RasterConvert setcachedevice rows 0 ne { gsave) cols rows true RasterScaleFactor jB 0 0 RasterScaleFactor neg llx .5 add neg ury .5 add : tempmatrix astore GenerateRasters imagemask grestore } if ende } defh end ! fnam int-dict definefont pop r } if f/ int-dict-name fnam findfont psz scalefont defW3 currentdict int [ int-dict /setfont cvx ] cvx puts} def B/PXLF { true DefinePXLFont} def % SIGNAL THAT FONT ALREADY LOADEDG/PXLNF {false DefinePXLFont} def % SIGNAL THAT FONT NOT ALREADY LOADED %w:/PXLC { % ...* % ...PXLCH /rasters exch def /runlength exch def /cols exch def /rows exch defG /ury exch def /urx exch def /lly exch def /llx exch defh7 /wx exch def /code exch def /int exch def}+ % SEE IF LONG OR SHORT FORMAT IS REQUIREDf? true cols CKSZ rows CKSZ ury CKSZ urx CKSZ lly CKSZ llx CKSZ s TackRunLengthToRows {s/ int-dict /CharDict get /Char-Info get code oC [ 0 0 llx PackByte 1 lly PackByte 2 urx PackByte 3 ury PackByte A 0 0 wx PackHW 2 rows PackByte 3 cols PackByte rasters ] putq }{ %else/ int-dict /CharDict get /Char-Info get code ? [ 0 0 urx PackHW 1 ury PackHW 0 0 llx PackHW 1 lly PackHWMP 0 0 rows PackHW 1 cols PackHW 0 0 16#7FFF PackHW 1 wx PackHW rasters ] put } ifelse} deff%f/CKSZ {abs 127 le and} defA/TackRunLengthToRows {runlength 0 ne {/rows rows neg def} if} def5% /PLOTC {K % PLOTCH /rasters exch def /runlength exch def /cols exch def /rows exch defG /ury exch def /urx exch def /lly exch def /llx exch defe6 /psz exch def /dsz exch def /wx exch def' % "PLOT" A CHARACTER'S RASTER PATTERNe rows 0 ne {o gsave 3 currentpoint translate psz dsz div dup scale > cols rows true RasterScaleFactor 0 0 RasterScaleFactor 6 neg llx .5 add neg ury .5 add tempmatrix astore GenerateRasters imagemask grestore } if wx x} defE%R /AlignMark%%J% This procedure draws an alignment mark centered on the coordinate systemH% origin. If the variable DEC$EDMS_SEPARATE_COLORS = 0 then a "positive"M% alignment mark is drawn. If DEC$EDMS_SEPARATE_COLORS <> 0 then a "negative"r% alignment mark is drawn. T%_% Formal Arguments: NONE% 0% Referenced Variables: DEC$EDMS_SEPARATE_COLORS%a% Referenced Procedures: NONE % % Side Effects: NONE%d{ DEC$EDMS_SEPARATE_COLORS 0 eqh { 0 0 300 0 360 arc_B 0 -450 moveto 0 450 lineto -450 0 moveto 450 0 lineto stroke }7 { 0 0 450 0 360 arc fill 1 setgray 0 0 300 0 360 arc oL 0 -450 moveto 0 450 lineto -450 0 moveto 450 0 lineto stroke 0 setgray } ifelse} defp/SC_N% If not making film, the following procedure sets the current color using theL% RGB color model. If making film, the procedure notes the "color pass" and,K% if the specified color index matches the color pass, subsequent marks areeO% written in black. If the specified color index does not match the color pass, O% marks are written in white. Use of colors on individual pages is also trackedsK% to allow pages that don't use a particular color to be suppressed on that.% color pass (by the code in the /PP routine).%z*% Formal Arguments: color index (on stack)%e"% Referenced Variables: Colorsused% DEC$EDMS_SEPARATE_COLORS% DEC$EDMS_SUPPRESS_COLOR %a% Referenced Procedures: NONEr%sL% Side Effects: Modifies the variable Colorsused to record use of the color.M% Tracks use of color in the variables 'ci' and 'processcolor'.%r5{ /ci exch def ci 0 lt % if the color index is lt 0aB { /processcolor true def } % then set 'processcolor' to 'true'.E { ci /processcolor false def % else set 'processcolor' to 'false'.O9 /DEC$EDMS_SUPPRESS_COLOR where % if suppressing coloro6 { pop 0 setgray pop } % then set "color" to BlackA { /DEC$EDMS_SEPARATE_COLORS where % else if separating colorsbH { pop dup DEC$EDMS_SEPARATE_COLORS eq % then if on this color passH { 0 setgray /Colorsused Colorsused % then write black (do write)E 2 3 index exp cvi or def } % ..and note use of the "color" D { 1 setgray } ifelse pop } % else write white (don't write)N { dup ( ) cvs dup length 15 add string % else if using the color index,6 /tstr exch def % ..build up the name of theI tstr 0 (DEC$EDMS_COLOR_) putinterval % ..potential external color 9 tstr exch 15 exch putinterval % ..name procedure06 tstr cvn where % ..and see if it is defined> { pop pop tstr cvn cvx exec } % execute it if it isN { DEC$EDMS_COLOR_ARRAY exch get exec % else exec internal color proc } ifelse } ifelse } ifelse } ifelse} defT(/RV % .. gross recto/verso translate#{ /DEC$EDMS_ENABLE_RECTOVERSO wherer { popeC /RVmatrix DEC$EDMS_ENABLE_RECTOVERSO 50 mul 0 matrix translate def  RVmatrix concat } if} defo%<% Procedures for implementing the "rotate " special:% ROTB -e% - ROTE - /ROTB {  XP gsave  Xpos Ypos translate ' rotate % using from the stackt Xpos neg Ypos neg translatea RP } defk /ROTE {XP grestore RP} defend %DEC_DVC$dict %%EndProloge %%BeginSetup4/DEC$EDMS_MAKE_FILM where % if we are making film... { pop % ..clean up the stack 4 54 dup translate % ..make room for the film info } ifBeginDVC$PSDoc$/PaperWidth 8.500 Resolution mul def&/PaperHeight 11.000 Resolution mul def/Ymax PaperHeight defACLRP 300 3600 RESJ%> Postamble of file HUNTER$USER:[HUNTER.SUPSER.NEW]INSTALL_GUIDE.DVI_PS.*% DefineFont:F153 Category:10 Pointsize:10D/NewCenturySchlbk-Bold /NewCenturySchlbk-Bold@DOCPSE DOCPSE ReENCODE./F153 500.0 /NewCenturySchlbk-Bold@DOCPSE DPSF*% DefineFont:F152 Category:10 Pointsize:10H/NewCenturySchlbk-Italic /NewCenturySchlbk-Italic@DOCPSE DOCPSE ReENCODE0/F152 500.0 /NewCenturySchlbk-Italic@DOCPSE DPSF*% DefineFont:F151 Category:10 Pointsize:10F/NewCenturySchlbk-Roman /NewCenturySchlbk-Roman@DOCPSE DOCPSE ReENCODE//F151 500.0 /NewCenturySchlbk-Roman@DOCPSE DPSFd)% DefineFont:F106 Category:10 Pointsize:7e(/Courier /Courier@DOCPSE DOCPSE ReENCODE /F106 350.0 /Courier@DOCPSE DPSF)% DefineFont:F102 Category:10 Pointsize:8c /F102 400.0 /Courier@DOCPSE DPSF(% DefineFont:F48 Category:10 Pointsize:66/Helvetica-Bold /Helvetica-Bold@DOCPSE DOCPSE ReENCODE&/F48 300.0 /Helvetica-Bold@DOCPSE DPSF(% DefineFont:F46 Category:10 Pointsize:6,/Helvetica /Helvetica@DOCPSE DOCPSE ReENCODE!/F46 300.0 /Helvetica@DOCPSE DPSFd(% DefineFont:F42 Category:10 Pointsize:8!/F42 400.0 /Helvetica@DOCPSE DPSFn(% DefineFont:F40 Category:10 Pointsize:9&/F40 450.0 /Helvetica-Bold@DOCPSE DPSF(% DefineFont:F39 Category:10 Pointsize:9</Helvetica-Oblique /Helvetica-Oblique@DOCPSE DOCPSE ReENCODE)/F39 450.0 /Helvetica-Oblique@DOCPSE DPSFt(% DefineFont:F38 Category:10 Pointsize:9!/F38 450.0 /Helvetica@DOCPSE DPSF )% DefineFont:F36 Category:10 Pointsize:10#&/F36 500.0 /Helvetica-Bold@DOCPSE DPSF)% DefineFont:F34 Category:10 Pointsize:10r!/F34 500.0 /Helvetica@DOCPSE DPSFl)% DefineFont:F28 Category:10 Pointsize:12l&/F28 600.0 /Helvetica-Bold@DOCPSE DPSF)% DefineFont:F24 Category:10 Pointsize:142&/F24 700.0 /Helvetica-Bold@DOCPSE DPSF)% DefineFont:F20 Category:10 Pointsize:18a&/F20 900.0 /Helvetica-Bold@DOCPSE DPSF)% DefineFont:F12 Category:10 Pointsize:30 '/F12 1500.0 /Helvetica-Bold@DOCPSE DPSFo-%> Postamble of file INSTALL_GUIDE_CONTENTS. %%BeginDEC$EDMSInfoc/DEC$EDMS_DOCUMENT_ID () def8/DEC$EDMS_COLOR_NAMES [ (0_BLACK) (1_USERTAGCOLOR) ] def/DEC$EDMS_COLOR_ARRAY [y*%%RGBCustomColor 0.000 0.000 0.000 0_BLACK= { 0.000 0.000 0.000 setrgbcolor } % 0_BLACK DOC$COLOR_INIT11%%RGBCustomColor 0.000 0.000 0.000 1_USERTAGCOLORe? { 0.000 0.000 0.000 setrgbcolor } % 1_USERTAGCOLOR not foundr] def /DEC$EDMS_TOTAL_PAGES 0 defa%%EndDEC$EDMSInfoe/DEC$EDMS_MAKE_FILM where %{ pop /DEC$EDMS_SEPARATE_COLORS whereR { pop }a] { (ERROR - DEC$EDMS_MAKE_FILM requires DEC$EDMS_SEPARATE_COLORS be defined) = quit } ifelsea} if/DEC$EDMS_SEPARATE_COLORS where${ pop /DEC$EDMS_SUPPRESS_COLOR wherei { pop (ERROR - DEC$EDMS_SEPARATE_COLORS and DEC$EDMS_SUPPRESS_COLOR are mutually exclusive) = quit } ifn} if/DVC$PSFonts save defu %%EndSetup% %%Page: I 1f%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)D)1000 BP PaperHeight PaperWidth PM 0 0 XY %%BeginCustomColor: 0_BLACKYJ0 SC 10773 10524 XY F20(Supervis)S -2 x(or)S 231 x(Series)S 10773 11520 XYH(Installat)S -2 x(ion)S 166 x(Guide)S 10773 14210 XY F36(October)S 166 xG(1992)S 10773 16302 XY F34(This)S 180 x(manual)S 179 x(provides)S 180 xdD(installation)S 179 x(and)S 179 x(setup)S 181 x(instructions)S 180 xC(for)S 180 x(the)S 180 x(Supervisor)S 10773 X 598 y(Series,)S 166 xIG(terminal)S 166 x(monitoring)S 165 x(software)S 166 x(for)S 167 x(VMS)S P166 x(systems.)S 10773 20188 XY F36(Revision/)S 2 x(Update)S 166 x(Information)SC2 x(:)S 798 x F34(This)S 166 x(is)S 166 x(a)S 166 x(revised)S 165 x C(manual.)S 10773 X 896 y F36(Operating)S 167 x(System)S 166 x(and)SeG166 x(V)S -27 x(ersion:)S 300 x F34(VMS)S 166 x(V5.0)S 167 x(or)S 166 x1G(later)S 10773 X 897 y F36(Software)S 166 x(V)S -27 x(ersion:)S 18546 XPJF34(Supervisor)S 165 x(Series)S 166 x(v5.4)S 10773 28570 XY F36(Academic)SF166 x(Computin)S 2 x(g)S 166 x(and)S 167 x(Research)S 165 x(Services)SC10773 X 597 y(W)S -9 x(estern)S 166 x(Kentucky)S 166 x(University)Sx710773 X 698 y(Bowling)S 167 x(Green,)S 166 x(Kentucky)Se%%EndCustomColor1 PP EPf %%PageTrailerf%%%PageFonts: Helvetica-Bold Helvetica/%%PageCustomColors: 0_BLACK % %%Page: II 2%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)R,1000 BP PaperHeight PaperWidth PM 0 0 XY RV %%BeginCustomColor: 0_BLACKsD0 SC 10773 25368 XY 8364 48 R 10773 25916 XY F40(5)S 166 x(October)SF167 x(1992)S 10773 X 897 y F38(Permission)S 167 x(is)S 166 x(granted)SE167 x(to)S 166 x(copy)S 167 x(and)S 167 x(redistribute)S 166 x(this)SH166 x(documen)S 2 x(t)S 165 x(for)S 166 x(no)S 167 x(comme)S 2 x(rcial)SF165 x(gain.)S 10773 X 897 y(The)S 172 x(information)S 173 x(in)S 171 xE(this)S 172 x(documen)S 2 x(t)S 171 x(is)S 172 x(subject)S 172 x(to)S_H172 x(change)S 173 x(without)S 171 x(notice)S 172 x(and)S 173 x(should)SE172 x(not)S 10773 X 548 y(be)S 172 x(construed)S 173 x(as)S 171 x(a)SE172 x(commitmen)S 2 x(t)S 170 x(by)S 172 x(the)S 172 x(author)S -24 x$G(.)S 259 x(The)S 172 x(author)S 172 x(assume)S 2 x(s)S 171 x(no)S 172 x5F(respons)S 2 x(ibil)S -2 x(ity)S 10773 X 547 y(for)S 166 x(any)S 167 xC(errors)S 168 x(that)S 165 x(may)S 167 x(appea)S 2 x(r)S 166 x(in)S F166 x(this)S 165 x(docum)S 2 x(ent.)S 10773 X 897 y F40(DISCLAI)S -2 xE(MER:)S 184 x F38(The)S 183 x(software)S 183 x(described)S 185 x(in)StF182 x(this)S 183 x(docume)S 2 x(nt)S 182 x(is)S 183 x(provided)S 184 xF(`)S -8 x(`)S F40(as)S 183 x(is)S F38(')S -9 x('.)S 282 x(No)S 10773 XG548 y(guaran)S 2 x(tee)S 188 x(is)S 188 x(made)S 190 x(by)S 188 x(the)S F189 x(author)S 189 x(or)S 189 x(the)S 188 x(author)S 18 x(')S -9 x(s)SM188 x(employe)S 2 x(r)S 188 x(as)S 189 x(to)S 188 x(the)S 188 x(suitability)ScH-34 x(,)S 10773 X 548 y(reliabilit)S -2 x(y)S -33 x(,)S 166 x(security)SC-33 x(,)S 166 x(usefulness,)S 167 x(or)S 166 x(perform)S 2 x(ance)SdG167 x(of)S 166 x(this)S 165 x(software.)S 10773 X 897 y(Neither)S 183 xSH(W)S -8 x(estern)S 184 x(Kentucky)S 184 x(University)S 182 x(nor)S 184 xF(Hunter)S 183 x(Goatley)S 183 x(are)S 184 x(respons)S 2 x(ible)S 182 xH(for)S 183 x(any)S 10773 X 548 y(losses)S 167 x(that)S 165 x(may)S 167 xE(occur)S 168 x(from)S 166 x(the)S 166 x(use)S 167 x(of)S 166 x(this)SdE166 x(software.)S 10773 X 896 y(The)S 167 x(follow)S -2 x(ing)S 167 xdM(are)S 166 x(tradem)S 2 x(arks)S 166 x(of)S 166 x(Digital)S 165 x(Equipment)S%G167 x(Corporation:)S 10773 X 897 y(DEC)S 17349 X(V)S -34 x(AX)S 23924 XBG(VMS)S 10773 X 548 y(DECnet)S 17349 X(UCX)S 23924 X(UIS)S 10773 X 896 yK3588 24 R 10773 36028 XY(Copyright)S 166 x(\251199)S 2 x(2)S 166 x(Hunter)S G166 x(Goatley)S -33 x(.)S 249 x(ALL)S 166 x(RIGHTS)S 165 x(RESER)S -8 x (VED.)S %%EndCustomColor2 PP EP. %%PageTrailer %%%PageFonts: Helvetica-Bold Helvetical%%PageCustomColors: 0_BLACK(%'>% < Beginning of included file INSTALL_GUIDE_CONTENTS.DVI_PS > %%Page: III 3o%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)$)1000 BP PaperHeight PaperWidth PM 0 0 XY r%%BeginCustomColor: 0_BLACK E0 SC 5094 4546 XY 23160 48 R 5094 5520 XY F20(Contents)S 7187 6812 XY.I21072 72 R 7187 7410 XY F36(PREF)S -27 x(ACE)S 27704 X(vii)S 5094 9203 XYeE23160 144 R 5094 9900 XY F28(CHAPTER)S 164 x(1)S 599 x(PRE)S -2 x(P)ScF-44 x(ARING)S 165 x(T)S -11 x(O)S 167 x(INST)S -45 x(ALL)S 166 x(THE)SC166 x(SUPE)S -2 x(R)S -11 x(VISOR)S 165 x(SERIES)S 27260 X(1\2031)SEF7187 11096 XY 21072 72 R 7187 11693 XY F36(1.1)S 9279 X(PREREQUISITE)SC167 x(SOFTW)S -27 x(ARE)S 27427 X(1\2031)S 7187 12889 XY 21072 72 RfG7187 13487 XY(1.2)S 9279 X(ACCESSING)S 165 x(THE)S 166 x(ONLINE)S 166 xaP(RELEASE)S 167 x(NOTES)S 27427 X(1\2031)S 7187 14682 XY 21072 72 R 7187 15280 XYC(1.3)S 9279 X(INST)S -36 x(ALLA)S -37 x(TION)S 166 x(PROCEDU)S -2 xYE(RE)S 166 x(REQUIREMENTS)S 27427 X(1\2031)S 5094 17073 XY 23160 144 RnG5094 17771 XY F28(CHAPTER)S 164 x(2)S 599 x(INST)S -45 x(ALLING)S 166 x P(THE)S 165 x(SUPER)S -12 x(VISOR)S 165 x(SERIES)S 27260 X(2\2031)S 7187 18966 XYD21072 72 R 7187 19564 XY F36(2.1)S 9279 X(INVOKING)S 165 x(VMSINST)SH-36 x(AL)S 27427 X(2\2031)S 7187 20760 XY 21072 72 R 7187 21357 XY(2.2)SH9279 X(INST)S -36 x(ALLA)S -37 x(TION)S 166 x(OPTIONS)S 27427 X(2\2031)SF7187 22553 XY 21072 72 R 7187 23151 XY(2.3)S 9279 X(DISK)S 166 x(AND)SE165 x(DIRECT)S -9 x(OR)S -19 x(Y)S 166 x(SELECTION)S 27427 X(2\2032)SNG7187 24346 XY 21072 72 R 7187 24944 XY(2.4)S 9279 X(COMPON)S -2 x(ENT)SaJ167 x(SELECTION)S 27427 X(2\2032)S 9279 X 697 y(2.4.1)S 11371 X(Installi)SP2 x(ng)S 167 x(the)S 166 x(Sources)S 167 x(Only)S 498 x 7200 24 R 27427 25641 XYG(2\2032)S 9279 X 698 y(2.4.2)S 11371 X(Installi)S 2 x(ng)S 167 x(PHOT)SbM-9 x(O)S 165 x(and)S 167 x(PLA)S -46 x(YBACK)S 497 x 5640 24 R 27427 26339 XYdH(2\2033)S 9279 X 697 y(2.4.3)S 11371 X(Installi)S 2 x(ng)S 167 x(SUPER)SM-9 x(VISOR)S 498 x 8088 24 R 27427 27036 XY(2\2033)S 7187 28231 XY 21072 72 RoG7187 28829 XY(2.5)S 9279 X(THE)S 166 x(INST)S -36 x(ALLA)S -37 x(TION)S0J166 x(COMPLETES)S 27427 X(2\2034)S 5094 30623 XY 23160 144 R 5094 31320 XYEF28(CHAPTER)S 164 x(3)S 599 x(POST)S -34 x(-INST)S -44 x(ALLA)S -45 xeC(TION)S 166 x(INFORMA)S -45 x(TION)S 27260 X(3\2031)S 7187 32515 XYcC21072 72 R 7187 33113 XY F36(3.1)S 9279 X(ST)S -37 x(ARTING)S 166 x/O(THE)S 166 x(SUPER)S -9 x(VISOR)S 166 x(SERIES)S 27427 X(3\2031)S 7187 34309 XYvG21072 72 R 7187 34906 XY(3.2)S 9279 X(CREA)S -38 x(TING)S 166 x(SUPER)SiG-9 x(VISOR)S 166 x(IDENTIF)S 2 x(IERS)S 27427 X(3\2031)S -416 x 36925 Yc(iii)S%%EndCustomColor3 PP EPt %%PageTrailer0%%PageFonts: Helvetica-Boldv%%PageCustomColors: 0_BLACKo%F %%Page: IV 4%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)P,1000 BP PaperHeight PaperWidth PM 0 0 XY RV %%BeginCustomColor: 0_BLACK:F0 SC 5094 1807 XY F28(Contents)S -496 x 4571 Y 21072 72 R 7187 5169 XYEF36(3.3)S 9279 X(USING)S 165 x(THE)S 167 x(BOO)S -2 x(KREADER)S 165 x H(DOCUMEN)S -2 x(T)S -36 x(A)S -37 x(TION)S 27427 X(3\2032)S 7187 6365 XYE21072 72 R 7187 6962 XY(3.4)S 9279 X(REGISTERING)S 166 x(YOUR)S 165 xiK(INST)S -36 x(ALLA)S -37 x(TION)S 27427 X(3\2032)S 5094 8756 XY 23160 144 RDD5094 9453 XY F28(APPEND)S -2 x(IX)S 166 x(A)S 598 x(SAMP)S -2 x(LE)SD166 x(SUPER)S -12 x(VISOR)S 165 x(SERIES)S 165 x(INST)S -45 x(ALLA)SE-44 x(TION)S 27161 X(A\2031)S 5094 11246 XY 23160 144 R 5094 11944 XY0G(APPEND)S -2 x(IX)S 166 x(B)S 598 x(CONTEN)S -2 x(TS)S 166 x(OF)S 167 xeN(DISTRIBU)S -2 x(TION)S 166 x(KIT)S 27161 X(B\2031)S 5094 13737 XY 23160 144 RD5094 14434 XY(APPEND)S -2 x(IX)S 166 x(C)S 598 x(FILES)S 166 x(CRE)SC-2 x(A)S -44 x(TED)S 165 x(DURING)S 165 x(INST)S -45 x(ALLA)S -44 xDD(TION)S 27161 X(C\2031)S 5094 16228 XY 23160 144 R 5094 16825 XY(T)SG-44 x(ABLES)S -255 x 698 y F36(B)S(\203)S(1)S 9279 X(Supervisor)S 167 xED(Series)S 166 x(instal)S 2 x(lation)S 167 x(kit)S 166 x(save)S 166 xG(sets)S 498 x 5544 24 R 27344 17523 XY(B\2031)S 7187 X 697 y(C)S(\203)SsG(1)S 9279 X(Supervisor)S 167 x(Series)S 166 x(\211les)S 167 x(created)SI166 x(during)S 168 x(installati)S 2 x(on)S 499 x 3912 24 R 27344 18220 XYe(C\2031)S 5094 36925 XY(iv)S%%EndCustomColor4 PP EP7 %%PageTrailer(%%PageFonts: Helvetica-Boldr%%PageCustomColors: 0_BLACKl%S8% < End of included file INSTALL_GUIDE_CONTENTS.DVI_PS > %%Page: VII 57%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)n)1000 BP PaperHeight PaperWidth PM 0 0 XY x%%BeginCustomColor: 0_BLACKpM0 SC 5094 4546 XY 23160 48 R 5094 5443 XY F20(Prefac)S -2 x(e)S 10773 7236 XYsHF151(This)S 166 x(guide)S 167 x(describes)S 166 x(how)S 166 x(to)S 166 xF(install)S 165 x(the)S 166 x(Supervisor)S 167 x(Series.)S 5094 8183 XYD23160 96 R 5094 8880 XY F24(Intended)S 166 x(Audience)S -533 x 897 yHF151(This)S 170 x(manual)S 170 x(is)S 169 x(intended)S 170 x(for)S 169 xG(use)S 170 x(by)S 170 x(the)S 170 x(system)S 169 x(manager)S 170 x(or)SwF170 x(any)S 170 x(individual)S 10773 X 598 y(responsible)S 166 x(for)SD166 x(installing)S 166 x(and)S 167 x(maintaining)S 166 x(the)S 167 xD(Supervisor)S 166 x(Series.)S 5094 11321 XY 23160 96 R 5094 12018 XYHF24(Document)S 166 x(Structure)S 10773 X 897 y F151(This)S 166 x(guide)SF167 x(consists)S 165 x(of)S 166 x(three)S 167 x(chapters)S 166 x(and)SC166 x(three)S 167 x(appendices.)S 10773 X 897 y F38(Chapter)S 150 xCE(1)S 14360 X(Contains)S 149 x(pre-installation)S 150 x(information.)StG10773 X 747 y(Chapter)S 150 x(2)S 14360 X(Describes)S 150 x(the)S 149 x I(Super)S 2 x(visor)S 149 x(Series)S 150 x(installation)S 149 x(procedur)S5C2 x(e.)S 10773 X 747 y(Chapter)S 150 x(3)S 14360 X(Contains)S 149 xsH(post-installation)S 149 x(information.)S 10773 X 747 y(Appendix)S 151 xD(A)S 14360 X(Contains)S 149 x(a)S 150 x(listi)S -2 x(ng)S 150 x(of)SD150 x(a)S 149 x(sample)S 151 x(install)S -2 x(ation.)S 10773 X 747 yF(Appendix)S 151 x(B)S 14360 X(Describes)S 150 x(the)S 149 x(contents)SE151 x(of)S 149 x(the)S 149 x(Super)S 2 x(visor)S 149 x(Series)S 150 x1G(distribution)S 149 x(kit.)S 10773 X 748 y(Appendix)S 151 x(C)S 14360 X2I(Contains)S 149 x(a)S 150 x(list)S 148 x(of)S 149 x(the)S 150 x(\211les)S1C150 x(created)S 150 x(by)S 150 x(an)S 150 x(installati)S -2 x(on.)S F5094 18743 XY 23160 96 R 5094 19441 XY F24(Related)S 165 x(Documents)SN-804 x 896 y F151(Y)S -56 x(ou)S 167 x(can)S 166 x(\211nd)S 167 x(additional)SO166 x(information)S 166 x(in)S 166 x(the)S 167 x(following)S 166 x(documents:)S4F10773 X 897 y(\201)S 595 x F152(SUPER)S -10 x(VISOR)S 165 x(Referenc)SF2 x(e)S 166 x(Guide)S 166 x F151(describes)S 166 x(the)S 166 x(SUPER)SG-19 x(VISOR)S 164 x(utility)S -55 x(.)S 10773 X 897 y(\201)S 595 x F152 E(PHOTO)S 190 x(Reference)S 191 x(Guide)S 191 x F151(describes)S 190 xbH(the)S 190 x(PHOTO)S 190 x(and)S 191 x(PLA)S -46 x(YBACK)S 11670 X 597 yI(utilities.)S 10773 X 897 y(\201)S 595 x F152(Supervisor)S 175 x(Series)S8F174 x(Release)S 175 x(Notes)S 175 x F151(contain)S 175 x(information)SF174 x(and)S 174 x(updates)S 174 x(not)S 11670 X 598 y(included)S 178 xD(in)S 179 x(this)S 177 x(manual.)S 274 x(The)S 179 x(release)S 177 xI(notes)S 178 x(are)S 179 x(part)S 177 x(of)S 178 x(the)S 178 x(software)SyD11670 X 597 y(distribution)S 166 x(kit.)S 10773 X 897 y(\201)S 595 xDF152(VMS)S 176 x(Authorize)S 178 x(Utility)S 177 x(Manual)S F151(,)SE180 x(part)S 177 x(of)S 176 x(the)S 177 x(VMS)S 176 x(documentation)S)G177 x(set,)S 11670 X 598 y(contains)S 166 x(information)S 166 x(about)SoC166 x(the)S 167 x(VMS)S 165 x(AUTHORIZE)S 165 x(utility)S -55 x(.)S 27704 36925 XY F36(vii)S%%EndCustomColor5 PP EP: %%PageTrailery2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman%%%+ Helvetica NewCenturySchlbk-Italic(%%PageCustomColors: 0_BLACK %0%%Page: VIII 6 /DEC$EDMS_MAKE_FILM where { pop }H%{ /DEC$EDMS_SUPPRESS_BLANKPAGES where { pop }( { CLRP showpage } ifelse } ifelse n %%PageTrailer %%PageFonts:%%PageCustomColors::%l %%Page: 1-1 7v%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)E)1000 BP PaperHeight PaperWidth PM 0 0 XY P%%BeginCustomColor: 0_BLACKaN0 SC 2404 5875 XY F12(1)S 5094 4546 XY 23160 48 R 5094 5443 XY F20(Preparing)SG165 x(to)S 165 x(Install)S 166 x(the)S 165 x(Superv)S -2 x(isor)S 166 x9E(Series)S 10773 8652 XY F151(This)S 176 x(chapter)S 176 x(describes)SFF176 x(the)S 176 x(steps)S 175 x(that)S 175 x(should)S 176 x(be)S 176 xH(taken)S 176 x(prior)S 177 x(to)S 175 x(installing)S 10773 X 598 y(the)SI166 x(Supervisor)S 167 x(Series.)S 5094 10196 XY 23160 96 R 2404 10893 XY)CF24(1.1)S 5094 X(Prerequisite)S 166 x(Software)S 10773 X 897 y F1519E(The)S 167 x(Supervisor)S 166 x(Series)S 166 x(requires)S 167 x(VMS)S(F165 x(version)S 167 x(V5.0)S 166 x(or)S 166 x(later)S 166 x(to)S 166 xK(run.)S 5094 12736 XY 23160 96 R 2404 13434 XY F24(1.2)S 5094 X(Accessing)S)H165 x(the)S 166 x(Online)S 165 x(Releas)S -2 x(e)S 166 x(Notes)S 10773 XC897 y F151(The)S 166 x(Supervisor)S 166 x(Series)S 165 x(provides)S7G166 x(online)S 166 x(release)S 166 x(notes,)S 166 x(which)S 165 x(you)S(G167 x(can)S 166 x(display)S 10773 X 597 y(or)S 180 x(print)S 180 x(by)SSG180 x(using)S 181 x(VMSINST)S -28 x(AL)S 179 x(with)S 180 x(the)S 179 xFF(OPTIONS)S 179 x(N)S 180 x(parameter)S -37 x(.)S 277 x(After)S 10773 XF598 y(the)S 194 x(installation,)S 200 x(you)S 195 x(can)S 194 x(read)SE193 x(the)S 194 x(release)S 193 x(notes)S 194 x(by)S 194 x(printing)SRL194 x(the)S 194 x(\211le)S 10773 X 598 y(SYS$HELP:SUPSERvvn.RELEASE_NOTES,)SC183 x(where)S 184 x(`)S -9 x(`vvn')S -9 x(')S 184 x(denotes)S 184 x8D(the)S 10773 X 598 y(version)S 188 x(number)S 188 x(of)S 187 x(the)SJ187 x(software.)S 290 x(For)S 188 x(example,)S 193 x(for)S 187 x(version)SD188 x(v5.4)S 188 x(of)S 187 x(the)S 10773 X 597 y(Supervisor)S 167 xF(Series,)S 166 x(the)S 166 x(\211le)S 167 x(name)S 166 x(would)S 166 xC(be)S 166 x(SUPSER054.)S 5094 18266 XY 23160 96 R 2404 18963 XY F24C(1.3)S 5094 X(Installation)S 166 x(Procedure)S 166 x(Requirements)SRM10773 X 897 y F151(Before)S 199 x(installing)S 200 x(the)S 200 x(Supervisor)S I200 x(Series,)S 208 x(ensure)S 200 x(that)S 199 x(the)S 200 x(following)S0O10773 X 598 y(privileges,)S 167 x(resources,)S 167 x(and)S 166 x(requirements)S(I167 x(are)S 166 x(met:)S 10773 X 896 y(\201)S 595 x(VMS)S 165 x(version)S K167 x(V5.0)S 166 x(throug)S 2 x(h)S 166 x(V5.5)S 166 x(is)S 166 x(running)S C2 x(.)S 10773 X 897 y(\201)S 595 x(All)S 165 x(the)S 166 x(normal)SPD167 x(privileges)S 166 x(and)S 167 x(quotas)S 165 x(of)S 166 x(the)SD167 x(default)S 166 x(SYSTEM)S 165 x(account.)S 10773 X 896 y(\201)SF595 x(Approximately)S 209 x(2)S 209 x(to)S 210 x(15)S 209 x(minutes,)SF220 x(depending)S 211 x(on)S 209 x(your)S 211 x(system)S 11670 X 598 yE(con\211gu)S 2 x(ration,)S 166 x(distribution)S 166 x(medium,)S 167 xSC(and)S 166 x(options)S 166 x(selected.)S 10773 X 897 y(\201)S 595 xdE(Approximately)S 201 x(3,000)S 201 x(free)S 201 x(blocks)S 201 x(on)S_C202 x(a)S 201 x(disk)S 201 x(for)S 201 x(use)S 201 x(during)S 202 x7C(the)S 11670 X 598 y(installation)S 171 x(procedure;)S 177 x(this)SED172 x(can)S 172 x(be)S 172 x(the)S 173 x(system)S 171 x(disk)S 172 xE(or)S 173 x(a)S 172 x(disk)S 172 x(speci\211ed)S 11670 X 597 y(with)SxK165 x(the)S 167 x(VMSINST)S -28 x(AL)S 166 x(A)S -47 x(WD)S 166 x(option.)SXE10773 X 897 y(\201)S 595 x(Approximately)S 200 x(2,500)S 200 x(free)SPG200 x(blocks)S 200 x(on)S 201 x(the)S 200 x(system)S 199 x(disk)S 200 x G(for)S 200 x(a)S 200 x(full)S 11670 X 598 y(installation.)S 249 x(The)S9G167 x(requirements)S 166 x(per)S 166 x(product)S 167 x(are)S 166 x(as)S G165 x(follows:)S 11670 X 896 y(\201)S 594 x(Approximately)S 204 x(700)SYC203 x(free)S 204 x(blocks)S 204 x(for)S 203 x(SUPER)S -19 x(VISOR)SSD202 x(and)S 204 x(its)S 12566 X 598 y(documentation.)S 11670 X 897 yE(\201)S 594 x(Approximately)S 167 x(500)S 166 x(free)S 166 x(blocks)S6H166 x(for)S 166 x(PHOTO)S 166 x(and)S 166 x(its)S 165 x(documentation.)SE11670 X 896 y(\201)S 594 x(Approximately)S 170 x(1,000)S 170 x(free)SeH170 x(blocks)S 170 x(for)S 170 x(the)S 169 x(sources)S 170 x(for)S 170 xC(the)S 170 x(Supervisor)S 12566 X 598 y(Series.)S 4272 X 144 7872 R 27427 36925 XY F36(1\2031)S1%%EndCustomColor7 PP EP4 %%PageTrailer22%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman%%PageCustomColors: 0_BLACKr%e %%Page: 1-2 8: /DEC$EDMS_MAKE_FILM where { pop }_%{ /DEC$EDMS_SUPPRESS_BLANKPAGES whereS { pop }N { CLRP showpage } ifelse } ifelse S %%PageTrailerS %%PageFonts:%%PageCustomColors:u%m %%Page: 2-1 9n%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend) )1000 BP PaperHeight PaperWidth PM 0 0 XY S%%BeginCustomColor: 0_BLACK1O0 SC 2404 5875 XY F12(2)S 5094 4546 XY 23160 48 R 5094 5443 XY F20(Installing)S1C166 x(the)S 165 x(Superv)S -2 x(isor)S 166 x(Series)S 10773 8652 XYRIF151(The)S 193 x(Supervisor)S 194 x(Series)S 192 x(uses)S 193 x(VMSINST)S C-28 x(AL)S 192 x(for)S 193 x(installation.)S 302 x(If)S 193 x(you)SxH193 x(do)S 10773 X 598 y(not)S 187 x(know)S 187 x(how)S 187 x(to)S 186 xC(use)S 187 x(VMSINST)S -28 x(AL,)S 187 x(you)S 188 x(should)S 187 xtF(\211rst)S 187 x(read)S 187 x(the)S 187 x(chapter)S 10773 X 597 y(on)SE182 x(installing)S 182 x(software)S 181 x(in)S 182 x(the)S 182 x F152SG(VMS)S 182 x(System)S 182 x(Manager)S 29 x(')S -19 x(s)S 182 x(Manual)SsDF151(.)S 281 x(For)S 183 x(the)S 10773 X 598 y(installation,)S 181 xH(you)S 179 x(should)S 178 x(be)S 178 x(logged)S 179 x(into)S 178 x(the)SG179 x(SYSTEM)S 177 x(account)S 179 x(or)S 178 x(another)S 10773 X 598 ypH(suitably)S 166 x(privileged)S 167 x(account.)S 5094 11989 XY 23160 96 RD2404 12687 XY F24(2.1)S 5094 X(Invoking)S 166 x(VMSINST)S -52 x(AL)SG10773 X 896 y F151(Invoke)S 167 x(VMSINST)S -28 x(AL)S 166 x(to)S 166 xiG(install)S 166 x(the)S 166 x(Supervisor)S 167 x(Series.)S 10773 X 897 ynF102($)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORI1 SC 239 x(@SYS$UPDATE:)S 2 x(VMSINSTAL)S 240 x(SUPSERvvn)S 240 x(ddcu:)S %%EndCustomColor%%BeginCustomColor: 0_BLACKtD0 SC 10773 X 897 y F151(Substitute)S 166 x(the)S 166 x(appropriate)SG166 x(values)S 166 x(for)S 166 x F152(vvn)S 166 x F151(and)S 166 x F152 E(ddcu)S F151(.)S 12925 16572 XY F102(VAX/VMS)S 240 x(Software)S 240 x H(Product)S 240 x(Installation)S 240 x(Procedure)S 240 x(V5.4-2)S 10773 XC747 y(It)S 239 x(is)S 240 x(dd-Mmm-yyyy)S 240 x(at)S 239 x(hh:mm.)SDC10773 X 449 y(Enter)S 240 x(a)S 239 x(question)S 240 x(mark)S 239 x)F(\(?\))S 240 x(at)S 239 x(any)S 240 x(time)S 239 x(for)S 239 x(help.)SC10773 X 896 y F151(If)S 166 x(there)S 166 x(are)S 166 x(any)S 167 x)F(users)S 166 x(logged)S 167 x(into)S 166 x(the)S 167 x(system,)S 165 xD(you)S 167 x(will)S 166 x(see)S 166 x(the)S 166 x(message:)S 10773 XF897 y F102(%VMSINSTAL-W-A)S 2 x(CTIVE,)S 239 x(The)S 240 x(following)SC240 x(processes)S 240 x(are)S 239 x(still)S 240 x(active:)S 10773 XSE448 y(...process)S 240 x(names...)S 10773 X 897 y F151(Y)S -56 x(ou)S2I180 x(can)S 179 x(install)S 179 x(the)S 179 x(Supervisor)S 180 x(Series)S H178 x(while)S 179 x(users)S 179 x(are)S 179 x(logged)S 180 x(in,)S 183 xC(though)S 10773 X 598 y(no)S 180 x(user)S 180 x(should)S 180 x(be)SaL179 x(runnin)S 2 x(g)S 180 x(one)S 180 x(of)S 179 x(the)S 180 x(Supervisor)SE180 x(Series)S 179 x(utilities)S 179 x(from)S 180 x(a)S 10773 X 597 yxD(previous)S 167 x(version.)S 10773 X 897 y F102(*)S 239 x(Do)S 240 xD(you)S 239 x(want)S 240 x(to)S 239 x(continue)S 240 x(anyway)S 240 xD([NO]?)S 10773 X 897 y F151(If)S 166 x(you)S 167 x(wish)S 165 x(to)SD166 x(continue,)S 168 x(answer)S 165 x(YES.)S 10773 X 896 y F102(*)SH239 x(Are)S 240 x(you)S 239 x(satisfied)S 240 x(with)S 240 x(the)S 239 xC(backup)S 240 x(of)S 239 x(your)S 240 x(system)S 239 x(disk)S 240 xCN([YES]?)S 10773 X 897 y F151(If)S 192 x(you)S 192 x(feel)S 192 x(comfortable)SE192 x(with)S 191 x(your)S 193 x(system)S 191 x(disk)S 192 x(backup,)S E199 x(answer)S 192 x(YES.)S 10773 X 598 y(Otherwise,)S 174 x(answer)S D172 x(NO,)S 172 x(perform)S 173 x(the)S 173 x(backup,)S 175 x(then)SK173 x(restart)S 172 x(the)S 172 x(installation)S 10773 X 597 y(procedure.)SnF5094 27830 XY 23160 96 R 2404 28527 XY F24(2.2)S 5094 X(Installation)SE166 x(Options)S -804 x 897 y F151(The)S 167 x(next)S 167 x(question)S E166 x(is)S 10773 X 897 y F102(*)S 239 x(Do)S 240 x(you)S 239 x(want)S1H240 x(to)S 239 x(purge)S 239 x(files)S 240 x(replaced)S 240 x(by)S 239 xC(this)S 240 x(installation)S 240 x([YES]?)S 10773 X 896 y F151(If)S F164 x(this)S 163 x(is)S 164 x(the)S 164 x(\211rst)S 164 x(time)S 164 xD(you)S 164 x(have)S 165 x(installed)S 164 x(the)S 164 x(Supervisor)SE164 x(Series,)S 165 x(answering)S 10773 X 598 y(NO)S 173 x(to)S 173 xPD(this)S 172 x(question)S 174 x(can)S 173 x(save)S 174 x(some)S 172 xH(time)S 173 x(when)S 173 x(the)S 174 x(Supervisor)S 174 x(Series)S 172 xG(\211les)S 10773 X 598 y(are)S 166 x(moved)S 167 x(into)S 166 x(their)S 0166 x(directories.)S 27427 36925 XY F36(2\2031)S%%EndCustomColor9 PP EPi %%PageTrailera2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman#%%+ NewCenturySchlbk-Italic Courier5*%%PageCustomColors: 0_BLACK 1_USERTAGCOLOR%1%%Page: 2-2 10%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)S,1000 BP PaperHeight PaperWidth PM 0 0 XY RV %%BeginCustomColor: 0_BLACKhH0 SC 5094 1807 XY F28(Insta)S 2 x(lling)S 167 x(the)S 166 x(Supervisor)SD167 x(Series)S 5094 4596 XY 23160 96 R 2404 5294 XY F24(2.3)S 5094 XE(Disk)S 165 x(and)S 166 x(Directory)S 166 x(Selection)S 10773 X 896 ypIF151(The)S 185 x(Supervisor)S 184 x(Series)S 184 x(is)S 184 x(installed)SEC183 x(in)S 184 x(its)S 184 x(own)S 184 x(rooted)S 184 x(directory)SoH185 x(to)S 183 x(avoid)S 10773 X 598 y(mixing)S 170 x(Supervisor)S 169 xG(Series)S 168 x(\211les)S 168 x(with)S 169 x(normal)S 168 x(VMS)S 169 xxJ(\211les.)S 254 x(The)S 169 x(only)S 170 x(\211le)S 168 x(copied)S 10773 XC598 y(to)S 182 x(a)S 182 x(VMS)S 182 x(directory)S 183 x(is)S 182 xSG(the)S 182 x(\211le)S 183 x(containing)S 183 x(the)S 183 x(Supervisor)S2C183 x(Series)S 181 x(release)S 10773 X 598 y(notes,)S 167 x(which)S)G166 x(is)S 165 x(copied)S 167 x(to)S 165 x(SYS$HELP)S -64 x(.)S 10773 XrH896 y(The)S 178 x(Supervisor)S 177 x(Series)S 177 x(can)S 177 x(reside)SE177 x(on)S 178 x(any)S 177 x(disk.)S 272 x(The)S 177 x(installation)S1H177 x(prompts)S 10773 X 598 y(you)S 174 x(for)S 173 x(the)S 174 x(name)SG173 x(of)S 173 x(the)S 173 x(disk)S 173 x(and)S 173 x(top-level)S 173 x1C(directory)S 174 x(for)S 173 x(the)S 174 x(utilities.)S 263 x(The)S1D10773 X 598 y(default)S 166 x(is)S 166 x(SYS$SY)S -2 x(SDEVIC)S -2 xE(E:[SUPSER].)S 10773 X 896 y F102(*)S 239 x(Enter)S 240 x(the)S 239 xtI(top-level)S 240 x(directory)S 240 x(for)S 240 x(the)S 239 x(Supervisor)S1H240 x(Series)S 240 x([DUA0:[SUPSER])S 2 x(]:)S 10773 X 897 y F151(Once)SH178 x(a)S 178 x(directory)S 179 x(has)S 177 x(been)S 179 x(speci\211ed)SI178 x(\(or)S 178 x -380 y 1992 24 R 20034 X 491 y 24 492 R 20200 11849 XY0GF42(RETURN)S 145 x 131 y 24 492 R 20034 X 20 y 1992 24 R 22204 11869 XY1GF151(is)S 177 x(pressed)S 178 x(to)S 177 x(select)S 178 x(the)S 10773 X0K598 y(default\),)S 195 x(the)S 190 x(directory)S 189 x(is)S 189 x(created)S7D189 x(and)S 190 x(a)S 189 x(message)S 189 x(like)S 189 x(the)S 189 xE(following)S 190 x(is)S 10773 X 598 y(displayed:)S 10773 X 896 y F1026K(%VMSINSTAL-I-S)S 2 x(YSDIR,)S 239 x(This)S 240 x(product)S 240 x(creates)S0D239 x(system)S 240 x(disk)S 240 x(directory)S 240 x(DUA0:[SUPSER].)SC5094 15157 XY 23160 96 R 2404 15854 XY F24(2.4)S 5094 X(Component)S C166 x(Selection)S 10773 X 897 y F151(The)S 193 x(Supervisor)S 192 x(H(Series)S 192 x(installation)S 191 x(provides)S 192 x(a)S 192 x(number)SG193 x(of)S 192 x(options)S 191 x(for)S 10773 X 597 y(installing)S 166 x(E(individual)S 167 x(components.)S 250 x(The)S 167 x(following)S 166 xOD(list)S 165 x(describes)S 166 x(the)S 166 x(options.)S 10773 X 897 yJ(\201)S 595 x(Install)S 165 x F152(only)S 166 x F151(the)S 167 x(sources)SG166 x(to)S 166 x(the)S 166 x(Supervisor)S 167 x(Series.)S 11670 X 897 ySK(Normally)S -55 x(,)S 168 x(the)S 167 x(images)S 167 x(for)S 167 x(PHOTO,)S I167 x(PLA)S -45 x(YBAC)S -2 x(K,)S 167 x(and)S 168 x(SUPER)S -19 x(VISO)SSG-2 x(R)S 167 x(are)S 11670 X 597 y(linked)S 173 x(from)S 172 x(object)S2M173 x(\211les)S 172 x(included)S 173 x(in)S 173 x(the)S 172 x(distribution.)SlJ262 x(If)S 172 x(you)S 173 x(select)S 172 x(this)S 11670 X 598 y(option,)SC178 x(the)S 176 x(documentation)S 176 x(\211les)S 175 x(and)S 176 xSC(the)S 176 x(source)S 176 x(\211les)S 175 x(will)S 175 x(be)S 176 xfC(installed,)S 11670 X 598 y(but)S 166 x(the)S 166 x(utility)S 166 xeE(images)S 166 x(will)S 165 x(not)S 167 x(be)S 166 x(linked.)S 11670 XeE897 y(Y)S -56 x(ou)S 175 x(should)S 175 x(select)S 174 x(this)S 174 xeG(option)S 175 x(only)S 175 x(if)S 174 x(you)S 176 x(prefer)S 175 x(to)S D174 x(rebuild)S 175 x(the)S 175 x(images)S 11670 X 597 y(and)S 166 xE(``install')S -11 x(')S 166 x(them)S 166 x(by)S 167 x(hand.)S 10773 XeD897 y(\201)S 595 x(Install)S 179 x(PHOTO)S 180 x(\(and)S 180 x(PLA)SD-45 x(YBAC)S -2 x(K\).)S 180 x(If)S 180 x(you)S 181 x(choose)S 181 xE(to)S 180 x(install)S 180 x(PHOTO,)S 11670 X 598 y(you)S 178 x(will)SAE177 x(be)S 178 x(asked)S 178 x(whether)S 178 x(or)S 178 x(not)S 178 xhE(the)S 178 x(commands)S 177 x(should)S 178 x(be)S 178 x(added)S 177 xrC(to)S 11670 X 598 y(the)S 173 x(DCL)S -28 x(T)S -27 x(ABLES)S 172 xaE(\(for)S 173 x(system-wide)S 172 x(de\211nition\))S 174 x(and)S 173 xtE(whether)S 174 x(or)S 173 x(not)S 174 x(the)S 11670 X 597 y(on-line)SeE166 x(help)S 167 x(should)S 166 x(be)S 166 x(added)S 166 x(to)S 166 xtF(a)S 166 x(help)S 166 x(library)S -55 x(.)S 10773 X 897 y(\201)S 595 xF(Install)S 184 x(SUPER)S -19 x(VISO)S -2 x(R.)S 185 x(If)S 185 x(you)SF185 x(choose)S 186 x(to)S 184 x(install)S 184 x(SUPER)S -19 x(VISOR,)SI184 x(you)S 11670 X 598 y(will)S 178 x(be)S 178 x(asked)S 179 x(whether)SxH179 x(or)S 179 x(not)S 179 x(the)S 179 x(commands)S 179 x(should)S 179 xD(be)S 178 x(added)S 179 x(to)S 178 x(the)S 11670 X 597 y(DCL)S -28 xK(T)S -27 x(ABLES)S 185 x(\(for)S 187 x(system-wide)S 185 x(de\211nition\))SrF188 x(and)S 187 x(whether)S 187 x(or)S 187 x(not)S 186 x(the)S 11670 XD598 y(on-line)S 166 x(help)S 167 x(should)S 166 x(be)S 166 x(added)SJ166 x(to)S 166 x(a)S 166 x(help)S 166 x(library)S -55 x(.)S 10015 28805 XYEF153(Note:)S 300 x(For)S 169 x(security)S 170 x(reasons,)S 171 x(it)S2G170 x(is)S 169 x(not)S 170 x(recommend)S 169 x(that)S 171 x(you)S 170 x:J(include)S 170 x(the)S 11670 X 598 y(SUPER)S -18 x(VISOR)S 166 x(command)SI167 x(in)S 166 x(DCL)S -28 x(T)S -28 x(ABLES.)S 10773 X 897 y F151(\201)S0D595 x(Install)S 165 x(the)S 166 x(sources)S 166 x(for)S 167 x(each)SH166 x(utility)S 166 x(installed.)S 5094 31495 XY 9564 48 R 2404 32193 XYHF24(2.4.1)S 5094 X(Installing)S 166 x(the)S 166 x(Sources)S 166 x(Only)SG10773 X 896 y F151(The)S 187 x(\211rst)S 186 x(question)S 186 x(asked)ScD186 x(gives)S 187 x(you)S 187 x(the)S 186 x(opportunity)S 187 x(to)SF186 x(install)S 185 x(only)S 187 x(the)S 10773 X 598 y(sources)S 166 xC(for)S 166 x(the)S 167 x(Supervisor)S 166 x(Series:)S 10773 X 897 y GF102(*)S 239 x(Do)S 240 x(you)S 239 x(want)S 240 x(to)S 239 x(install)SoF240 x(ONLY)S 239 x(the)S 240 x(sources)S 239 x(for)S 240 x(the)S 239 xE(Supervisor)S 240 x(Series)S 240 x([NO]?)S 5094 36925 XY F36(2\2032)S%%EndCustomColor10 PP EP %%PageTrailer)2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman-%%+ Courier Helvetica NewCenturySchlbk-Italicy%%+ NewCenturySchlbk-BoldS%%PageCustomColors: 0_BLACKy%2%%Page: 2-3 11%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)n)1000 BP PaperHeight PaperWidth PM 0 0 XY %%BeginCustomColor: 0_BLACK(H0 SC 19321 1807 XY F28(Insta)S 2 x(lling)S 167 x(the)S 166 x(Superviso)SG2 x(r)S 165 x(Series)S 10773 4866 XY F151(Answering)S 169 x(YES)S 167 x G(will)S 168 x(cause)S 169 x(the)S 169 x(installation)S 168 x(to)S 168 x9H(skip)S 169 x(the)S 168 x(questions)S 169 x(related)S 168 x(to)S 10773 XE598 y(individual)S 177 x(components)S 176 x(and)S 176 x(begin)S 177 x7G(copying)S 177 x(the)S 177 x(documentation)S 176 x(and)S 176 x(source)S(D10773 X 598 y(\211les.)S 250 x(There)S 167 x(will)S 165 x(be)S 166 xF(no)S 166 x(more)S 167 x(questions)S 165 x(asked.)S 10773 X 896 y(If)SH167 x(you)S 168 x(answer)S 166 x(NO)S 167 x(the)S 167 x(question)S 167 xD(above,)S 168 x(you)S 168 x(will)S 166 x(be)S 167 x(prompted)S 167 xG(for)S 167 x(whether)S 167 x(or)S 10773 X 598 y(not)S 166 x(you)S 167 xnD(wish)S 166 x(to)S 166 x(install)S 165 x(the)S 166 x(sources)S 166 xC(for)S 167 x(the)S 166 x(products)S 166 x(selected:)S 10773 X 897 y GF102(*)S 239 x(Do)S 240 x(you)S 239 x(want)S 240 x(to)S 239 x(install)SrF240 x(the)S 239 x(sources)S 240 x(for)S 239 x(the)S 240 x(Supervisor)SH240 x(Series)S 240 x([YES]?)S 10773 X 896 y F151(Answering)S 169 x(YES)SD167 x(to)S 168 x(the)S 169 x(question)S 168 x(will)S 168 x(install)SD167 x(the)S 169 x(appropriate)S 168 x(source)S 169 x(\211les)S 168 xH(for)S 10773 X 598 y(the)S 166 x(utilities)S 166 x(to)S 165 x(be)S 167 xF(installed.)S 5094 11142 XY 9564 48 R 2404 11840 XY F24(2.4.2)S 5094 XJ(Installing)S 166 x(PHOT)S -13 x(O)S 165 x(and)S 166 x(PLA)S -64 x(YBACK)SG10773 X 896 y F151(The)S 167 x(installation)S 165 x(will)S 166 x(next)SoC166 x(ask)S 166 x(the)S 167 x(following)S 166 x(question:)S 10773 XsC897 y F102(*)S 239 x(Do)S 240 x(you)S 239 x(want)S 240 x(to)S 239 xhE(install)S 240 x(PHOTO)S 239 x([YES]?)S 10773 X 897 y F151(If)S 161 x4I(you)S 163 x(answer)S 161 x(NO)S 161 x(to)S 161 x(the)S 162 x(question,)S)C163 x(the)S 162 x(installation)S 161 x(will)S 161 x(proceed)S 162 xiE(with)S 161 x(asking)S 10773 X 598 y(about)S 166 x(installing)S 167 x)E(SUPER)S -20 x(VISOR.)S 10773 X 896 y(If)S 187 x(you)S 188 x(choose)S7H188 x(to)S 187 x(install)S 187 x(PHOTO,)S 187 x(you)S 189 x(will)S 186 xF(be)S 188 x(given)S 188 x(the)S 188 x(opportunity)S 188 x(to)S 10773 XD598 y(have)S 178 x(the)S 177 x(PHOTO)S 176 x(and)S 177 x(PLA)S -46 xD(YBACK)S 175 x(commands)S 177 x(added)S 176 x(to)S 177 x(the)S 177 xM(system-wide)S 10773 X 598 y(DCL)S -28 x(T)S -27 x(ABLES.)S 172 x(Answering)StE173 x(YES)S 171 x(to)S 173 x(the)S 172 x(following)S 173 x(question)SLC172 x(will)S 172 x(create)S 173 x(``real')S -10 x(')S 10773 X 597 y F(DCL)S 190 x(commands)S 191 x(that)S 191 x(are)S 191 x(automatically)SG191 x(available)S 191 x(to)S 190 x(all)S 191 x(users)S 191 x(on)S 191 x)F(the)S 10773 X 598 y(system:)S 10773 X 897 y F102(*)S 239 x(Do)S 240 xD(you)S 239 x(want)S 240 x(to)S 239 x(add)S 239 x(the)S 240 x(PHOTO)SJ239 x(and)S 240 x(PLAYBACK)S 240 x(commands)S 240 x(to)S 239 x(DCLTABLES)SC240 x([YES]?)S 10773 X 896 y F151(Y)S -56 x(ou)S 169 x(will)S 168 xnG(then)S 169 x(be)S 168 x(asked)S 169 x(whether)S 169 x(or)S 168 x(not)SxE169 x(you)S 169 x(want)S 168 x(to)S 169 x(install)S 168 x(the)S 168 x:E(on-line)S 169 x(help)S 10773 X 598 y(for)S 166 x(PHOTO)S 165 x(and)S7C165 x(PLA)S -45 x(YBAC)S -2 x(K)S 165 x(in)S 166 x(a)S 166 x(help)S0E165 x(library)S -54 x(.)S 249 x(If)S 165 x(you)S 167 x(answer)S 165 x F(YES,)S 165 x(you)S 166 x(will)S 10773 X 598 y(also)S 166 x(be)S 166 xE(asked)S 166 x(which)S 166 x(library)S 167 x(should)S 166 x(contain)SSG167 x(the)S 166 x(help.)S 10773 X 897 y F102(*)S 239 x(Do)S 240 x(you)S C239 x(want)S 240 x(to)S 239 x(add)S 239 x(the)S 240 x(PHOTO)S 239 x0I(and)S 240 x(PLAYBACK)S 240 x(help)S 239 x(to)S 239 x(a)S 240 x(library)SSI240 x([YES]?)S 10773 X 896 y F151(The)S 170 x(installation)S 168 x(will)S C169 x(present)S 169 x(a)S 169 x(number)S 169 x(of)S 169 x(choices)S0J170 x(for)S 169 x(the)S 169 x(library)S 170 x(to)S 169 x(receive)S 10773 XE598 y(the)S 177 x(on-line)S 178 x(help.)S 271 x(In)S 177 x(addition)SxH177 x(to)S 176 x(offering)S 178 x(the)S 177 x(system-wide)S 176 x(help)SC177 x(library)S 177 x(as)S 10773 X 598 y(an)S 184 x(option,)S 188 x)G(the)S 183 x(installation)S 182 x(procedure)S 185 x(will)S 182 x(look)ShM183 x(for)S 184 x(any)S 184 x(HLP$LIBRAR)S -20 x(Y)S 10773 X 598 y(commands)S6I166 x(de\211ned)S 167 x(in)S 166 x(the)S 166 x(system)S 166 x(directory)S6I166 x(and)S 167 x(will)S 165 x(offer)S 166 x(those)S 166 x(too:)S 12686 XsC896 y F102(This)S 239 x(installatio)S 2 x(n)S 239 x(updates)S 240 x7G(the)S 239 x(help)S 240 x(library)S 239 x(so)S 240 x(that)S 239 x(the)SlJ240 x(DCL)S 12686 X 448 y(command)S 240 x("$)S 239 x(HELP)S 240 x(PHOTO")SD239 x(will)S 240 x(provide)S 240 x(information)S 240 x(about)S 240 xC(the)S 12686 X 449 y(PHOTO)S 240 x(utility)S 239 x(and)S 240 x("$)SuO239 x(HELP)S 240 x(PLAYBACK")S 240 x(will)S 239 x(provide)S 240 x(information)SeC12686 X 448 y(about)S 240 x(the)S 239 x(PLAYBACK)S 240 x(utility.)S D12686 X 747 y(There)S 240 x(are)S 239 x(several)S 240 x(help)S 239 xH(libraries)S 240 x(that)S 240 x(these)S 239 x(help)S 240 x(files)S 240 xG(can)S 239 x(be)S 12686 X 449 y(placed)S 240 x(in.)S 478 x(Some)S 240 x D(of)S 239 x(them)S 240 x(are:)S 12686 X 747 y(SYS$SYSROOT:[SYS)S 2 xE(HLP]HELPLIB.HLB)S 12686 X 448 y(WKU$ROOT:[HELP]W)S 2 x(KU_HELP.HLB)SSD10773 X 747 y(*)S 239 x(Which)S 240 x(library)S 240 x(should)S 239 xE(have)S 240 x(PHOTO)S 240 x(and)S 239 x(PLAYBACK)S 240 x(help)S 239 x K([SYS$SYSRO)S 2 x(OT:[SYSHLP]HELPLIB.H)S 2 x(LB]:)S 5094 31566 XY 9564 48 RXI2404 32263 XY F24(2.4.3)S 5094 X(Installing)S 166 x(SUPER)S -13 x(VISOR)SoE10773 X 897 y F151(Whether)S 167 x(or)S 167 x(not)S 166 x(you)S 168 x)N(installed)S 166 x(PHOTO,)S 166 x(the)S 167 x(installation)S 166 x(procedure)SE167 x(next)S 167 x(asks)S 10773 X 598 y(if)S 166 x(you)S 167 x(want)S(G166 x(to)S 165 x(install)S 166 x(SUPER)S -19 x(VISOR)S -2 x(:)S 10773 X(C896 y F102(*)S 239 x(Do)S 240 x(you)S 239 x(want)S 240 x(to)S 239 xxH(install)S 240 x(SUPERVISOR)S 240 x([YES]?)S 27427 36925 XY F36(2\2033)S%%EndCustomColor11 PP EP %%PageTrailerV2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman %%+ Courier %%PageCustomColors: 0_BLACK % %%Page: 2-4 12%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)9,1000 BP PaperHeight PaperWidth PM 0 0 XY RV %%BeginCustomColor: 0_BLACKeH0 SC 5094 1807 XY F28(Insta)S 2 x(lling)S 167 x(the)S 166 x(Supervisor)SG167 x(Series)S 10773 4866 XY F151(If)S 176 x(you)S 177 x(answer)S 176 x O(NO)S 175 x(to)S 176 x(the)S 177 x(question,)S 179 x(the)S 176 x(installation)SpC176 x(will)S 176 x(proceed)S 176 x(with)S 176 x(the)S 10773 X 598 yxE(installation)S 166 x(of)S 166 x(PHOTO,)S 166 x(if)S 165 x(it)S 166 xrF(was)S 165 x(selected.)S 10773 X 896 y(If)S 166 x(you)S 167 x(choose)SC167 x(to)S 166 x(install)S 165 x(SUPER)S -19 x(VISOR,)S 165 x(you)StE167 x(will)S 166 x(be)S 166 x(given)S 168 x(the)S 166 x(opportunity)S6F167 x(to)S 10773 X 598 y(have)S 174 x(the)S 172 x(SUPER)S -19 x(VISE)SH172 x(command)S 172 x(added)S 173 x(to)S 172 x(the)S 173 x(system-wide)SD171 x(DCL)S -28 x(T)S -27 x(ABLES.)S 10773 X 598 y(Answering)S 197 xF(YES)S 196 x(to)S 196 x(the)S 197 x(following)S 197 x(question)S 197 xF(will)S 195 x(create)S 197 x(a)S 197 x(``real')S -10 x(')S 196 x(DCL)SE10773 X 598 y(command)S 166 x(that)S 166 x(is)S 166 x(automatically)SnG166 x(available)S 166 x(to)S 166 x(all)S 166 x(users)S 166 x(on)S 166 x6D(the)S 166 x(system:)S 10773 X 896 y F102(*)S 239 x(Do)S 240 x(you)SG239 x(want)S 240 x(to)S 239 x(add)S 239 x(the)S 240 x(SUPERVISE)S 240 xYC(command)S 240 x(to)S 239 x(DCLTABLES)S 240 x([NO]?)S 9118 10047 XYiHF153(Note:)S 300 x(It)S 182 x(is)S 182 x(not)S 182 x(recommended)S 181 xF(that)S 182 x(you)S 182 x(add)S 182 x(the)S 182 x(SUPER)S -18 x(VISE)SG182 x(command)S 10773 X 597 y(to)S 188 x(DCL)S -28 x(T)S -28 x(ABLES.)SuD187 x(Answering)S 188 x(NO)S 188 x(to)S 187 x(the)S 188 x(question)SJ189 x(will)S 188 x(help)S 188 x(keep)S 10773 X 598 y(unauth)S 2 x(orized)SF166 x(users)S 166 x(from)S 166 x(trying)S 167 x(to)S 166 x(run)S 166 xH(the)S 167 x(utility)S -54 x(.)S 10773 X 897 y F151(Y)S -56 x(ou)S 169 xC(will)S 168 x(then)S 169 x(be)S 168 x(asked)S 169 x(whether)S 169 xEE(or)S 168 x(not)S 169 x(you)S 169 x(want)S 168 x(to)S 169 x(install)SxJ168 x(the)S 168 x(on-line)S 169 x(help)S 10773 X 597 y(for)S 181 x(SUPER)SD-19 x(VISE)S 179 x(in)S 181 x(a)S 181 x(help)S 181 x(library)S -55 xC(.)S 279 x(If)S 180 x(you)S 182 x(answer)S 180 x(YES,)S 180 x(you)SSH182 x(will)S 180 x(also)S 180 x(be)S 10773 X 598 y(asked)S 166 x(which)SH166 x(library)S 167 x(should)S 166 x(contain)S 167 x(the)S 166 x(help.)SE10773 X 897 y F102(*)S 239 x(Do)S 240 x(you)S 239 x(want)S 240 x(to)SsH239 x(add)S 239 x(the)S 240 x(SUPERVISOR)S 240 x(help)S 239 x(to)S 240 xC(a)S 239 x(library)S 240 x([YES]?)S 10773 X 897 y F151(Like)S 172 x(N(it)S 170 x(does)S 171 x(for)S 170 x(PHOTO,)S 171 x(the)S 171 x(installation)SF171 x(will)S 170 x(present)S 170 x(a)S 171 x(number)S 172 x(of)S 171 xE(choices)S 10773 X 597 y(for)S 166 x(the)S 166 x(library)S 167 x(to)S)G166 x(receive)S 167 x(the)S 166 x(on-line)S 167 x(help:)S 10773 X 897 ySHF102(*)S 239 x(Which)S 240 x(library)S 240 x(should)S 239 x(have)S 240 xL(SUPERVISOR)S 240 x(help)S 240 x([SYS$SYSROOT:[SYSH)S 2 x(LP]HELPLIB.HLB]:)SG10773 X 897 y F151(If)S 171 x(you)S 172 x(speci\211ed)S 171 x(a)S 171 x7E(library)S 172 x(to)S 171 x(receive)S 172 x(the)S 171 x(PHOTO)S 171 xlE(help,)S 173 x(that)S 171 x(same)S 170 x(library)S 172 x(is)S 10773 XlG597 y(offered)S 166 x(as)S 166 x(the)S 166 x(default)S 166 x(to)S 166 x H(this)S 165 x(prompt.)S 5094 19063 XY 23160 96 R 2404 19760 XY F24(2.5)SF5094 X(The)S 166 x(Installation)S 166 x(Completes)S 10773 X 897 y F151F(After)S 175 x(the)S 175 x(con\211g)S 2 x(uration)S 175 x(questions,)SN178 x(the)S 175 x(selected)S 175 x(components)S 175 x(are)S 176 x(installed.)SC10773 X 598 y(Files)S 197 x(are)S 198 x(copied)S 198 x(from)S 197 x L(each)S 198 x(save)S 198 x(set)S 196 x(of)S 198 x(the)S 198 x(installation)SE197 x(kit)S 197 x(and)S 198 x(the)S 10773 X 597 y(appropriate)S 175 xRD(images)S 175 x(are)S 175 x(linked,)S 178 x(then)S 176 x(all)S 175 xH(installed)S 174 x(\211les)S 175 x(are)S 175 x(copied)S 175 x(to)S 175 xO(their)S 10773 X 598 y(destination)S 188 x(directories.)S 292 x(Informational)S7E188 x(messages)S 187 x(about)S 188 x(the)S 188 x(individual)S 10773 X K598 y(components)S 166 x(are)S 167 x(displayed)S 165 x(as)S 166 x(needed.)S85094 36925 XY F36(2\2034)S%%EndCustomColor12 PP EP %%PageTrailert2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman!%%+ Courier NewCenturySchlbk-Bold1%%PageCustomColors: 0_BLACKS%0%%Page: 3-1 13%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)S)1000 BP PaperHeight PaperWidth PM 0 0 XY 7%%BeginCustomColor: 0_BLACK8N0 SC 2404 5875 XY F12(3)S 5094 4546 XY 23160 48 R 5094 5443 XY F20(Post-Inst)SC-2 x(allation)S 165 x(Information)S 10773 8652 XY F151(This)S 172 x4G(chapter)S 173 x(contains)S 172 x(important)S 172 x(information)S 172 xuD(about)S 172 x(setting)S 172 x(up)S 173 x(Supervisor)S 10773 X 598 yD(Series)S 166 x(con\211gu)S 2 x(ration)S 166 x(and)S 166 x(startup)SH166 x(options.)S 5094 10196 XY 23160 96 R 2404 10893 XY F24(3.1)S 5094 XG(Starting)S 167 x(the)S 166 x(Supervisor)S 166 x(Series)S 10773 X 897 y1IF151(Once)S 174 x(the)S 174 x(installation)S 174 x(is)S 173 x(complete,)S7D177 x(you)S 175 x(can)S 174 x(start)S 173 x(the)S 174 x(Supervisor)SE175 x(Series)S 174 x(by)S 10773 X 598 y(executing)S 179 x(the)S 178 xlJ(command)S 177 x(procedure)S 179 x(SUPSER_ST)S -28 x(ARTUP)S -65 x(.COM,)SD178 x(located)S 177 x(in)S 10773 X 598 y(SUPSER_ROO)S -2 x(T)S -27 xG(:[COM].)S 178 x(This)S 178 x(procedure)S 179 x(will)S 177 x(de\211ne)S(E178 x(the)S 178 x(SUPSER_ROO)S -2 x(T)S 10773 X 597 y(logical)S 189 xtC(in)S 190 x(the)S 189 x(system)S 188 x(logical)S 189 x(name)S 190 x9D(table)S 188 x(and)S 189 x(install)S 189 x(the)S 189 x(PHOTO)S 188 xF(and)S 10773 X 598 y(SUPER)S -19 x(VISOR)S 164 x(images)S 166 x(with)SC166 x(the)S 166 x(necessary)S 167 x(privileges.)S 10773 X 897 y(T)S)E-45 x(o)S 191 x(start)S 190 x(the)S 192 x(Supervisor)S 192 x(Series)S5F191 x(automatically)S 191 x(at)S 191 x(system)S 191 x(startup,)S 197 xF(you)S 10773 X 597 y(should)S 189 x(add)S 189 x(a)S 189 x(line)S 190 xK(like)S 189 x(the)S 189 x(following)S 190 x(to)S 188 x(the)S 190 x(system)SxM188 x(startup)S 189 x(procedure)S 10773 X 598 y(\(SYST)S -28 x(ARTUP_V5.COM)SSF166 x(in)S 166 x(SYS$MANAG)S -2 x(ER\):)S 10773 X 897 y F102($)S 239 xC(@dua0:[supse)S 2 x(r.com]supser_startu)S 2 x(p.com)S 10773 X 897 y)DF151(Y)S -56 x(ou)S 168 x(should,)S 167 x(of)S 167 x(course,)S 168 xF(specify)S 167 x(the)S 167 x(actual)S 166 x(device)S 168 x(and)S 167 xE(top-level)S 167 x(directory)S 167 x(that)S 10773 X 597 y(you)S 167 xSM(speci\211ed)S 166 x(during)S 167 x(the)S 167 x(installation.)S 5094 19611 XYwH23160 96 R 2404 20308 XY F24(3.2)S 5094 X(Creating)S 166 x(SUPER)S -13 xH(VISOR)S 165 x(Identi\211ers)S 10773 X 897 y F151(If)S 170 x(you)S 172 xC(installed)S 170 x(SUPER)S -19 x(VISO)S -2 x(R,)S 171 x(you)S 172 xhD(must)S 170 x(also)S 170 x(create)S 171 x(the)S 170 x(rights)S 171 xF(identi\211ers)S 10773 X 597 y(used)S 180 x(to)S 179 x(control)S 180 xD(access)S 180 x(to)S 179 x(the)S 180 x(SUPER)S -19 x(VISO)S -2 x(R)SH180 x(functions.)S 277 x(There)S 180 x(are)S 180 x(seven)S 10773 X 598 yE(SUPER)S -19 x(VISOR)S 177 x(identi\211ers,)S 182 x(described)S 178 x)F(fully)S 179 x(in)S 178 x(the)S 179 x(manual)S 178 x F152(SUPER)S -9 xG(VISOR)S 10773 X 598 y(Reference)S 168 x(Guide)S F151(.)S 10773 X 897 y0E(A)S 176 x(command)S 177 x(procedure)S 178 x(has)S 176 x(been)S 177 xhG(provided)S 177 x(that)S 177 x(can)S 177 x(be)S 176 x(used)S 177 x(to)S)C176 x(create)S 177 x(the)S 10773 X 597 y(identi\211ers.)S 288 x(T)S7C-45 x(o)S 185 x(run)S 186 x(it,)S 190 x(simply)S 185 x(give)S 186 x5E(the)S 186 x(following)S 185 x(command)S 185 x(at)S 185 x(the)S 186 x*J(DCL)S 10773 X 598 y(prompt:)S 10773 X 897 y F102($)S 239 x(@SUPSER_ROOT)SF2 x(:[COM]SUPERVISOR_ID)S 2 x(ENTIFIERS.COM)S 10773 X 896 y F151(The)SL167 x(following)S 166 x(example)S 166 x(shows)S 166 x(the)S 166 x(commands)SI166 x(used)S 166 x(to)S 165 x(create)S 167 x(the)S 166 x(identi\211ers:)Sg10773 X 897 y F102($)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR41 SC 239 x(SET)S 240 x(DEFAULT)S 240 x(SYS$SYSTEM:)S%%EndCustomColor%%BeginCustomColor: 0_BLACK)0 SC 10773 X 448 y($)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR"1 SC 239 x(RUN)S 240 x(AUTHORIZE)S%%EndCustomColor%%BeginCustomColor: 0_BLACKo0 SC 10773 X 449 y(UAF>)Sa%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR11 SC 240 x(ADD/IDENTIFIER)S 240 x(SUPSER_ADVISE)Sf%%EndCustomColor%%BeginCustomColor: 0_BLACK0 SC 10773 X 448 y(UAF>)S7%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR91 SC 240 x(ADD/IDENTIFIER)S 240 x(SUPSER_OBSERV)S 2 x(E)S%%EndCustomColor%%BeginCustomColor: 0_BLACK)0 SC 10773 X 448 y(UAF>)S %%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR>1 SC 240 x(ADD/IDENTIFIER)S 240 x(SUPSER_ADVISE)S 2 x(_GROUP)S%%EndCustomColor%%BeginCustomColor: 0_BLACK20 SC 10773 X 449 y(UAF>)SA%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR?1 SC 240 x(ADD/IDENTIFIER)S 240 x(SUPSER_OBSERV)S 2 x(E_GROUP)Sa%%EndCustomColor%%BeginCustomColor: 0_BLACK 0 SC 10773 X 448 y(UAF>)St%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR<1 SC 240 x(ADD/IDENTIFIER)S 240 x(SUPSER_LOGGED)S 2 x(_OUT)S%%EndCustomColor%%BeginCustomColor: 0_BLACK(0 SC 10773 X 448 y(UAF>)St%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR01 SC 240 x(ADD/IDENTIFIER)S 240 x(SUPSER_QUIET)S%%EndCustomColor%%BeginCustomColor: 0_BLACKx0 SC 10773 X 449 y(UAF>)SS%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR>1 SC 240 x(ADD/IDENTIFIER)S 240 x(SUPSER_NO_SUP)S 2 x(ERVISE)S%%EndCustomColor%%BeginCustomColor: 0_BLACKLE0 SC 9118 32363 XY F153(Note:)S 300 x(If)S 183 x(the)S 182 x(identi)SiE2 x(\211ers)S 182 x(already)S 183 x(exist,)S 188 x(you)S 184 x(will)S(C183 x(receive)S 182 x(error)S 182 x(messages)S 10773 X 598 y(from)SrI177 x(AUTHORIZE)S 179 x(stating)S 179 x(that)S 179 x(the)S 178 x(identi)SuI2 x(\211ers)S 177 x(already)S 179 x(exist.)S 274 x(Y)S -55 x(ou)S 10773 X G597 y(can)S 167 x(ignore)S 166 x(these)S 167 x(errors.)S 27427 36925 XYx F36(3\2031)S%%EndCustomColor13 PP EP %%PageTrailerf2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman9%%+ Courier NewCenturySchlbk-Italic NewCenturySchlbk-Bold(*%%PageCustomColors: 0_BLACK 1_USERTAGCOLOR%%%Page: 3-2 14%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)d,1000 BP PaperHeight PaperWidth PM 0 0 XY RV %%BeginCustomColor: 0_BLACKDF0 SC 5094 1807 XY F28(Post-Ins)S 2 x(tallation)S 167 x(Informati)S 2 xC(on)S 5094 4596 XY 23160 96 R 2404 5294 XY F24(3.3)S 5094 X(Using)SxG166 x(the)S 166 x(Bookreader)S 165 x(Documentation)S 10773 X 896 y F151SH(The)S 168 x(command)S 167 x(procedure)S 168 x(SUPSER_ST)S -29 x(ARTUP)SC-64 x(.COM)S 167 x(automatically)S 167 x(adds)S 166 x(the)S 10773 X7H598 y(SUPSER_ROO)S -2 x(T)S -27 x(:[DOC])S 155 x(name)S 156 x(to)S 156 xC(the)S 156 x(DECW)S -2 x($BOOK)S 155 x(logical)S 156 x(name)S 156 xhD(search)S 156 x(list)S 10773 X 598 y(if)S 166 x(the)S 166 x(\211le)SF167 x(LIBRA)S -2 x(R)S -18 x(Y)S -56 x(.DECW$BO)S -2 x(OKSHELF)S 165 xJ(is)S 166 x(found)S 166 x(in)S 167 x(the)S 166 x([DOC])S 164 x(directory)SM-54 x(.)S 5094 8332 XY 23160 96 R 2404 9030 XY F24(3.4)S 5094 X(Registering)S)C166 x(Y)S -52 x(our)S 167 x(Installation)S 10773 X 896 y F151(The)S6Q179 x(Supervisor)S 179 x(Series)S 178 x(is)S 177 x(freely)S 179 x(distributable)S4C177 x(software,)S 181 x(and)S 179 x(no)S 178 x(license)S 178 x(is)SaP10773 X 598 y(required)S 177 x(to)S 176 x(use)S 177 x(it.)S 270 x(Registration)SH176 x(of)S 177 x(your)S 177 x(installation)S 176 x(is)S 176 x(at)S 176 xF(your)S 178 x(discretion)S 10773 X 598 y(and)S 181 x(is)S 181 x(used)SC181 x(by)S 182 x(the)S 181 x(author)S 182 x(only)S 182 x(to)S 181 xsO(determine)S 181 x(the)S 181 x(size)S 181 x(of)S 181 x(the)S 181 x(Supervisor)ShH10773 X 598 y(Series)S 166 x(user)S 166 x(base)S 166 x(and)S 166 x(the)SJ166 x(future)S 167 x(directions)S 166 x(for)S 166 x(the)S 166 x(package.)SE10773 X 896 y(T)S -45 x(o)S 204 x(register)S -37 x(,)S 215 x(simply)S1I204 x(send)S 204 x(a)S 204 x(note)S 205 x(to)S 204 x(the)S 204 x(author)S1G205 x(with)S 204 x(the)S 204 x(following)S 10773 X 598 y(information:)S7G11670 X 897 y(Installer)S 27 x(')S -19 x(s)S 166 x(name)S 11670 X 597 y%O(Company)S 166 x(name)S 166 x(and)S 167 x(address)S 11670 X 598 y(System\(s\))ScF165 x(on)S 166 x(which)S 167 x(the)S 166 x(Supervisor)S 166 x(Series)SG166 x(is)S 166 x(running)S 11670 X 598 y(Which)S 166 x(products)S 166 x(D(you're)S 167 x(using)S 167 x(\(PHOTO)S 165 x(and/or)S 167 x(SUPER)SC-19 x(VISOR\))S 11670 X 598 y(Any)S 166 x(comments)S 166 x(and/or)S0I167 x(suggestions)S 166 x(you)S 167 x(might)S 167 x(have)S 10773 17598 XYnJ(Y)S -56 x(ou)S 185 x(can)S 185 x(send)S 184 x(it)S 184 x(electronically)SI185 x(to)S 184 x F153(goat)S 2 x(hunter@WKUVX1.BITNET)S 183 x F151(\(or)SuE10773 X 597 y F153(goath)S 2 x(unter%WKUVX1.BITNET)S -2 x(@UKCC.UKY)SaH-56 x(.EDU)S 169 x F151(via)S 169 x(Internet\),)S 169 x(by)S 169 x(fax)SC10773 X 598 y(to)S 166 x(+1)S 166 x(502)S 166 x(745)S 166 x(5387,)SeK166 x(or)S 166 x(by)S 167 x(mail)S 165 x(to)S 166 x(the)S 166 x(following)SaE167 x(address:)S 11670 X 897 y(Hunter)S 166 x(Goatley)S 11670 X 597 yrD(Academic)S 165 x(Computing,)S 167 x(STH)S 166 x(226)S 11670 X 598 yE(W)S -28 x(estern)S 166 x(Kentucky)S 167 x(University)S 11670 X 598 yxL(Bowling)S 166 x(Green,)S 166 x(KY)S 166 x(42101)S 166 x(USA)S 5094 36925 XY F36(3\2032)S%%EndCustomColor14 PP EP %%PageTrailer 2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman%%+ NewCenturySchlbk-BoldS%%PageCustomColors: 0_BLACKa% %%Page: A-1 15%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)9)1000 BP PaperHeight PaperWidth PM 0 0 XY x%%BeginCustomColor: 0_BLACKSK0 SC 2404 5875 XY F12(A)S 5094 4546 XY 23160 48 R 5094 5443 XY F20(Sample)S F166 x(Superv)S -2 x(isor)S 166 x(Series)S 165 x(Insta)S -2 x(llation)SE10773 8652 XY F151(This)S 166 x(appendix)S 167 x(includes)S 166 x(a)S1F166 x(sample)S 166 x(Supervisor)S 166 x(Series)S 166 x(installation.)S5094 X 896 y F102($)Si%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORI1 SC 240 x(@SYS$UPDATE:VMSINST)S 2 x(AL)S 239 x(SUPSER054)S 240 x(MUA0:)S %%EndCustomColor%%BeginCustomColor: 0_BLACKnC0 SC 5333 10595 XY(VAX/VMS)S 240 x(Software)S 240 x(Product)S 240 x0G(Installation)S 240 x(Procedure)S 240 x(V5.5)S 5094 11641 XY(It)S 240 x-H(is)S 239 x(13-MAY-1992)S 240 x(at)S 240 x(07:30.)S 5094 X 747 y(Enter)SF240 x(a)S 239 x(question)S 240 x(mark)S 240 x(\(?\))S 239 x(at)S 239 xH(any)S 240 x(time)S 239 x(for)S 240 x(help.)S 5094 X 747 y(%VMSINSTAL-)SE2 x(W-NOTSYSTEM,)S 240 x(You)S 239 x(are)S 240 x(not)S 239 x(logged)S6H240 x(in)S 239 x(to)S 239 x(the)S 240 x(SYSTEM)S 240 x(account.)S 5094 XG448 y(%VMSINSTAL-)S 2 x(W-ACTIVE,)S 240 x(The)S 239 x(following)S 240 xlC(processes)S 240 x(are)S 239 x(still)S 240 x(active:)S 5333 X 449 y F(Polter)S 240 x(Goat)S 5333 X 448 y(DECW$TE_0F)S 2 x(2B)S 5094 X 448 yD(*)S 240 x(Do)S 239 x(you)S 239 x(want)S 240 x(to)S 239 x(continue)S240 x(anyway)S 240 x([NO]?)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR1 SC 239 x(YES)S%%EndCustomColor%%BeginCustomColor: 0_BLACKxE0 SC 5094 X 449 y(*)S 240 x(Are)S 239 x(you)S 239 x(satisfied)S 240 xxI(with)S 240 x(the)S 239 x(backup)S 240 x(of)S 239 x(your)S 240 x(system)S5240 x(disk)S 239 x([YES]?)SS%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORF1 SC 100 x -267 y 1512 24 R 20018 X 355 y 24 360 R 20144 15357 XY F1065(RETURN)S 107 x 108 y 24 360 R 20018 X 20 y 1512 24 Ra%%EndCustomColor%%BeginCustomColor: 0_BLACK F0 SC 5094 16423 XY F102(The)S 240 x(following)S 240 x(products)S 240 xH(will)S 239 x(be)S 240 x(processed:)S 5573 X 747 y(SUPSER)S 239 x(V5.4)SD4272 X 15 y 144 384 R 5333 17917 XY(Beginning)S 241 x(installation)SF240 x(of)S 239 x(SUPSER)S 240 x(V5.4)S 239 x(at)S 240 x(07:30)S 4272 XM83 y 144 516 R 5094 18664 XY(%VMSINSTAL-)S 2 x(I-RESTORE,)S 240 x(Restoring)S(E240 x(product)S 240 x(save)S 239 x(set)S 239 x(A)S 240 x(...)S 5094 XeG449 y(%VMSINSTAL-)S 2 x(I-RELMOVED,)S 240 x(Product's)S 240 x(release)SlF240 x(notes)S 239 x(have)S 240 x(been)S 239 x(moved)S 240 x(to)S 239 xH(SYS$HELP.)S 7007 X 747 y(Supervisor)S 240 x(Series)S 240 x(v5.4)S 240 xF(Installation)S 4272 X 82 y 144 468 R 7007 20607 XY(SUPERVISOR)S 240 xG(and)S 240 x(PHOTO)S 7007 X 747 y(Copyright)S 240 x(\251)S 239 x(1992)S7E240 x(by)S 239 x(Hunter)S 240 x(Goatley.)S 479 x(All)S 239 x(Rights)SRF240 x(Reserved.)S 7725 X 448 y(Redistribution)S 240 x(for)S 240 x(no)SD239 x(commercial)S 240 x(gain)S 239 x(is)S 240 x(permitted.)S 4272 XD83 y 144 960 R 5094 22550 XY(*)S 240 x(Do)S 239 x(you)S 239 x(want)SH240 x(to)S 239 x(purge)S 240 x(files)S 239 x(replaced)S 240 x(by)S 240 x+(this)S 239 x(installation)S 241 x([YES]?)SC%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORF1 SC 339 x -267 y 1512 24 R 20975 X 355 y 24 360 R 21100 22530 XY F1065(RETURN)S 107 x 108 y 24 360 R 20975 X 20 y 1512 24 R%%EndCustomColor%%BeginCustomColor: 0_BLACKCE0 SC 7007 23297 XY F102(The)S 240 x(Supervisor)S 240 x(Series)S 240 xI(is)S 239 x(installed)S 240 x(in)S 239 x(its)S 240 x(own)S 239 x(rooted)SF7007 X 448 y(directory)S 240 x(to)S 240 x(avoid)S 239 x(mixing)S 240 xD(Supervisor)S 240 x(Series)S 240 x(files)S 239 x(with)S 7007 X 449 yH(normal)S 240 x(VMS)S 239 x(files.)S 479 x(The)S 240 x(directory)S 240 xG(can)S 239 x(reside)S 240 x(on)S 239 x(any)S 240 x(disk.)S 7007 X 747 yIG(THERE)S 240 x(ARE)S 239 x(NO)S 240 x(FILES)S 239 x(COPIED)S 240 x(TO)SUC239 x(SYS$SYSTEM,)S 240 x(SYS$LIBRAR)S 2 x(Y,)S 7007 X 448 y(etc.)S0G479 x(\(The)S 239 x(only)S 240 x(file)S 239 x(copied)S 240 x(to)S 239 xF(a)S 240 x(VMS)S 239 x(directory)S 240 x(is)S 239 x(the)S 7007 X 448 yE(Release)S 240 x(Notes)S 240 x(file,)S 239 x(which)S 240 x(is)S 239 x,G(copied)S 240 x(to)S 239 x(SYS$HELP.\))S 5094 X 748 y(*)S 240 x(Enter)SsG239 x(the)S 240 x(top-level)S 240 x(directory)S 240 x(for)S 239 x(the)S1H240 x(Supervisor)S 240 x(Series)S 239 x([WKUVX1$DUA)S 2 x(0:[SUPSER]]:)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORF1 SC 340 x -267 y 1512 24 R 24801 X 355 y 24 360 R 24926 26565 XY F1065(RETURN)S 107 x 108 y 24 360 R 24801 X 20 y 1512 24 Ri%%EndCustomColor%%BeginCustomColor: 0_BLACKCH0 SC 5094 27033 XY F102(%VMSINSTAL-)S 2 x(I-SYSDIR,)S 240 x(This)S 239 xH(product)S 240 x(creates)S 240 x(system)S 239 x(disk)S 240 x(directory)SK479 x(DUA0:[SUPSER].)S 7007 X 747 y(The)S 240 x(Supervisor)S 240 x(Series)SPH240 x(is)S 239 x(normally)S 240 x(installed)S 240 x(by)S 239 x(linking)SD240 x(the)S 7007 X 448 y(object)S 240 x(files)S 240 x(packed)S 239 xG(with)S 240 x(the)S 239 x(kit.)S 479 x(The)S 239 x(installation)S 241 x1D(will)S 239 x(also)S 7007 X 449 y(give)S 240 x(you)S 239 x(a)S 239 xC(chance)S 240 x(to)S 239 x(add)S 240 x(DCL)S 239 x(commands)S 240 xmH(and)S 240 x(on-line)S 239 x(help)S 240 x(to)S 7007 X 448 y(your)S 240 xF(system.)S 7007 X 747 y(The)S 240 x(sources)S 239 x(are)S 240 x(also)SH239 x(provided.)S 480 x(You)S 239 x(can)S 239 x(either)S 240 x(install)SL240 x(the)S 7007 X 449 y(products)S 240 x(and)S 240 x(the)S 239 x(sources,)SD240 x(or)S 239 x(you)S 240 x(can)S 239 x(install)S 240 x(the)S 239 xG(sources)S 7007 X 448 y(only)S 240 x(and)S 239 x(rebuild)S 240 x(them)S C240 x(by)S 239 x(hand.)S 7007 X 747 y(If)S 240 x(you)S 239 x(only)S6C239 x(want)S 240 x(to)S 239 x(install)S 240 x(the)S 240 x(sources)SxC239 x(and)S 240 x(want)S 239 x(to)S 240 x(skip)S 239 x(the)S 7007 XtF448 y(product)S 240 x(installations,)S 241 x(enter)S 239 x(YES)S 240 xD(to)S 239 x(the)S 239 x(following)S 240 x(prompt.)S 5094 X 748 y(*)SD240 x(Do)S 239 x(you)S 239 x(want)S 240 x(to)S 239 x(install)S 240 xN(ONLY)S 240 x(the)S 239 x(sources)S 240 x(for)S 239 x(the)S 240 x(Supervisor)S240 x(Series)S 239 x([NO]?)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORF1 SC 340 x -267 y 1512 24 R 22888 X 355 y 24 360 R 23013 32692 XY F1065(RETURN)S 107 x 108 y 24 360 R 22888 X 20 y 1512 24 R6%%EndCustomColor%%BeginCustomColor: 0_BLACK C0 SC 7007 33459 XY F102(The)S 240 x(answer)S 239 x(to)S 240 x(the)S G239 x(following)S 240 x(question)S 240 x(will)S 240 x(determine)S 240 x)F(whether)S 7007 X 448 y(the)S 240 x(appropriate)S 240 x(source)S 240 xG(files)S 239 x(for)S 240 x(SUPERVISOR)S 240 x(and)S 239 x(PHOTO)S 240 xxH(are)S 7007 X 448 y(installed.)S 5094 X 748 y(*)S 240 x(Do)S 239 x(you)SC239 x(want)S 240 x(to)S 239 x(install)S 240 x(the)S 239 x(sources)SwH240 x(for)S 240 x(the)S 239 x(Supervisor)S 240 x(Series)S 240 x([YES]?)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORF1 SC 339 x -267 y 1512 24 R 21931 X 355 y 24 360 R 22057 35083 XY F1065(RETURN)S 107 x 108 y 24 360 R 21931 X 20 y 1512 24 Rx%%EndCustomColor%%BeginCustomColor: 0_BLACK E0 SC 5094 35850 XY F102(*)S 240 x(Do)S 239 x(you)S 239 x(want)S 240 x 2(to)S 239 x(install)S 240 x(PHOTO)S 240 x([YES]?)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORF1 SC 339 x -267 y 1512 24 R 14280 X 355 y 24 360 R 14405 35830 XY F106<(RETUR)S 2 x(N)S 105 x 108 y 24 360 R 14280 X 20 y 1512 24 R%%EndCustomColor%%BeginCustomColor: 0_BLACK6 0 SC 27344 36925 XY F36(A\2031)S%%EndCustomColor15 PP EP %%PageTrailera2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman %%+ Courier1*%%PageCustomColors: 0_BLACK 1_USERTAGCOLOR%9%%Page: A-2 16%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)(,1000 BP PaperHeight PaperWidth PM 0 0 XY RV %%BeginCustomColor: 0_BLACK F0 SC 5094 1807 XY F28(Sample)S 168 x(Supervisor)S 166 x(Series)S 167 xL(Installa)S 2 x(tion)S 7007 4766 XY F102(The)S 240 x(PHOTO)S 239 x(command)SO240 x(can)S 240 x(be)S 239 x(added)S 239 x(to)S 240 x(the)S 239 x(system-wide)S D240 x(DCLTABLES,)S 7007 X 448 y(making)S 240 x(the)S 239 x(command)SH240 x(available)S 240 x(to)S 240 x(all)S 239 x(users,)S 240 x(or)S 239 xD(it)S 239 x(can)S 240 x(be)S 7007 X 448 y(defined)S 240 x(as)S 239 xG(a)S 240 x(foreign)S 239 x(command.)S 5094 X 747 y(*)S 240 x(Do)S 239 x H(you)S 239 x(want)S 240 x(to)S 239 x(install)S 240 x(the)S 239 x(PHOTO)SL240 x(command)S 240 x(in)S 239 x(the)S 240 x(system-wide)S 240 x(DCLTABLES)S240 x([YES]?)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORE1 SC 339 x -266 y 1512 24 R 24083 X 355 y 24 360 R 24209 6390 XY F106 5(RETURN)S 107 x 108 y 24 360 R 24083 X 20 y 1512 24 RC%%EndCustomColor%%BeginCustomColor: 0_BLACKSD0 SC 5094 7157 XY F102(*)S 240 x(Do)S 239 x(you)S 239 x(want)S 240 xC(to)S 239 x(add)S 240 x(the)S 239 x(PHOTO)S 240 x(help)S 239 x(to)S9(239 x(a)S 240 x(library)S 239 x([YES]?)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORE1 SC 340 x -267 y 1512 24 R 18584 X 355 y 24 360 R 18709 7137 XY F106)5(RETURN)S 107 x 108 y 24 360 R 18584 X 20 y 1512 24 RY%%EndCustomColor%%BeginCustomColor: 0_BLACK4H0 SC 7007 7904 XY F102(This)S 240 x(installation)S 240 x(updates)S 240 xG(the)S 239 x(help)S 240 x(library)S 240 x(so)S 239 x(that)S 240 x(the)SpI239 x(DCL)S 7007 X 448 y(command)S 240 x("$)S 239 x(HELP)S 240 x(PHOTO")S)D240 x(will)S 239 x(provide)S 240 x(information)S 240 x(about)S 240 xH(the)S 7007 X 448 y(PHOTO)S 240 x(utility)S 240 x(and)S 239 x("$)S 239 xJ(HELP)S 240 x(PLAYBACK")S 240 x(will)S 239 x(provide)S 240 x(information)SI7007 X 449 y(about)S 240 x(the)S 239 x(PLAYBACK)S 240 x(utility.)S 7007 X H747 y(There)S 240 x(are)S 239 x(several)S 240 x(help)S 240 x(libraries)SG240 x(that)S 239 x(these)S 240 x(help)S 239 x(files)S 240 x(can)S 239 xSE(be)S 7007 X 448 y(placed)S 240 x(in.)S 478 x(Some)S 240 x(of)S 239 xJ(them)S 240 x(are:)S 7007 X 748 y(SYS$SYSROOT:[)S 2 x(SYSHLP]HELPLIB.HLB)SH7007 X 448 y(WKU$ROOT:[HEL)S 2 x(P]WKU_HELP.HLB)S 5094 X 747 y(*)S 240 xH(Which)S 239 x(library)S 240 x(should)S 240 x(have)S 239 x(PHOTO)S 240 xV(and)S 239 x(PLAYBACK)S 240 x(help)S 240 x([SYS$SYSROOT:[SYS)S 2 x(HLP]HELPLIB.HLB]:)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORF1 SC 340 x -267 y 1512 24 R 25996 X 355 y 24 360 R 26122 12367 XY F1065(RETURN)S 106 x 108 y 24 360 R 25996 X 20 y 1512 24 R%%%EndCustomColor%%BeginCustomColor: 0_BLACK(E0 SC 5094 13134 XY F102(*)S 240 x(Do)S 239 x(you)S 239 x(want)S 240 xe7(to)S 239 x(install)S 240 x(SUPERVISOR)S 240 x([YES]?)S %%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORF1 SC 339 x -267 y 1512 24 R 15475 X 356 y 24 360 R 15601 13114 XY F1065(RETURN)S 107 x 109 y 24 360 R 15475 X 20 y 1512 24 R2%%EndCustomColor%%BeginCustomColor: 0_BLACK2E0 SC 7007 13881 XY F102(The)S 240 x(SUPERVISE)S 240 x(command)S 240 x1J(can)S 239 x(be)S 239 x(added)S 240 x(to)S 239 x(the)S 240 x(system-wide)SE7007 X 449 y(DCLTABLES,)S 240 x(making)S 240 x(it)S 239 x(available)SoG240 x(to)S 240 x(all)S 239 x(users,)S 240 x(or)S 239 x(it)S 240 x(can)SF7007 X 448 y(be)S 240 x(defined)S 239 x(as)S 240 x(a)S 239 x(foreign)SC240 x(command)S 240 x(on)S 239 x(a)S 239 x(per-user)S 240 x(basis)SxD240 x(or)S 7007 X 448 y(in)S 240 x(SYS$SYLOGIN.)S 7007 X 748 y(For)SL240 x(security)S 240 x(purposes,)S 240 x(it)S 239 x(is)S 239 x(recommended)SJ240 x(that)S 240 x(the)S 239 x(command)S 7007 X 448 y(be)S 240 x(defined)SE239 x(as)S 240 x(a)S 239 x(foreign)S 240 x(command)S 240 x(on)S 239 xYF(a)S 239 x(per-user)S 240 x(basis.)S 5094 X 747 y(*)S 240 x(Do)S 239 xH(you)S 239 x(want)S 240 x(to)S 239 x(add)S 240 x(the)S 239 x(SUPERVISE)S:240 x(command)S 240 x(to)S 239 x(DCLTABLES)S 240 x([NO]?)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORF1 SC 339 x -267 y 1512 24 R 20018 X 355 y 24 360 R 20144 17149 XY F1065(RETURN)S 107 x 108 y 24 360 R 20018 X 20 y 1512 24 Ry%%EndCustomColor%%BeginCustomColor: 0_BLACKAC0 SC 7007 17916 XY F102(This)S 240 x(installation)S 240 x(updates)SYF240 x(the)S 239 x(help)S 240 x(library)S 240 x(so)S 239 x(that)S 240 xG(the)S 239 x(DCL)S 7007 X 449 y(command)S 240 x("$)S 239 x(HELP)S 240 xSD(SUPERVISE")S 240 x(will)S 240 x(provide)S 239 x(information)S 241 xF(about)S 239 x(the)S 7007 X 448 y(SUPERVISOR)S 240 x(utility.)S 7007 XF747 y(Whether)S 240 x(or)S 239 x(not)S 240 x(you)S 239 x(elect)S 240 xH(to)S 239 x(place)S 240 x(the)S 239 x(files)S 240 x(in)S 239 x(a)S 239 xD(library,)S 240 x(the)S 7007 X 448 y(files)S 240 x(will)S 239 x(be)SE240 x(left)S 239 x(in)S 240 x(the)S 239 x(Supervisor)S 240 x(Series)S2F240 x(directory)S 240 x(for)S 7007 X 449 y(future)S 240 x(reference.)SE5094 X 747 y(*)S 240 x(Do)S 239 x(you)S 239 x(want)S 240 x(to)S 239 x_C(add)S 240 x(the)S 239 x(SUPERVISOR)S 240 x(help)S 240 x(to)S 239 xh#(a)S 239 x(library)S 240 x([YES]?)SS%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORF1 SC 339 x -267 y 1512 24 R 19779 X 355 y 24 360 R 19905 21184 XY F1065(RETURN)S 107 x 108 y 24 360 R 19779 X 20 y 1512 24 RS%%EndCustomColor%%BeginCustomColor: 0_BLACKcD0 SC 7007 21951 XY F102(Unless)S 240 x(the)S 239 x(SUPERVISE)S 240 xO(command)S 240 x(was)S 240 x(added)S 239 x(to)S 240 x(the)S 239 x(system-wide)SeO7007 X 449 y(DCLTABLES,)S 240 x(it)S 240 x(is)S 239 x(not)S 239 x(recommended)SxI241 x(that)S 239 x(the)S 240 x(help)S 239 x(be)S 239 x(installed)S 7007 X4H448 y(in)S 240 x(the)S 239 x(system)S 240 x(help)S 239 x(library)S 240 xH(\(SYS$SYSROOT:[H)S 2 x(ELPLIB.HLB\).)S 7007 X 747 y(There)S 240 x(are)SG239 x(several)S 240 x(help)S 240 x(libraries)S 240 x(that)S 239 x(can)S)D240 x(contain)S 239 x(the)S 240 x(help)S 7007 X 448 y(files.)S 479 xI(Some)S 240 x(of)S 239 x(them)S 239 x(are:)S 7007 X 748 y(SYS$SYSROOT:[)SdJ2 x(SYSHLP]HELPLIB.HLB)S 7007 X 448 y(WKU$ROOT:[HEL)S 2 x(P]WKU_HELP.HLB)SC5094 X 747 y(*)S 240 x(Which)S 239 x(library)S 240 x(should)S 240 x(Q(contain)S 240 x(the)S 239 x(SUPERVISOR)S 240 x(help)S 240 x([SYS$SYSROOT:[SYSH)S42 x(LP]HELPLIB.HLB]:)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORF1 SC 340 x -267 y 1512 24 R 25757 X 355 y 24 360 R 25882 25966 XY F106<(RETUR)S 2 x(N)S 105 x 108 y 24 360 R 25757 X 20 y 1512 24 R%%EndCustomColor%%BeginCustomColor: 0_BLACK3D0 SC 7007 26733 XY F102(No)S 240 x(further)S 239 x(questions)S 240 xF(will)S 240 x(be)S 239 x(asked.)S 479 x(The)S 239 x(Supervisor)S 241 xD(Series)S 7007 X 449 y(installation)S 241 x(will)S 239 x(now)S 240 xH(continue)S 239 x(for)S 240 x(2)S 239 x(to)S 239 x(15)S 240 x(minutes,)SC240 x(depending)S 7007 X 448 y(on)S 240 x(your)S 239 x(type)S 240 x)Q(of)S 239 x(media)S 240 x(and)S 239 x(the)S 239 x(system)S 240 x(configuration.)ShG5094 X 747 y(%VMSINSTAL-)S 2 x(I-SYSDIR,)S 240 x(This)S 239 x(product)SSC240 x(creates)S 240 x(system)S 239 x(disk)S 240 x(directory)S 479 xeG(DUA0:[SUPSER.E)S 2 x(XE].)S 5094 X 448 y(%VMSINSTAL-)S 2 x(I-SYSDIR,)S H240 x(This)S 239 x(product)S 240 x(creates)S 240 x(system)S 239 x(disk)SN240 x(directory)S 479 x(DUA0:[SUPSER.C)S 2 x(OM].)S 5094 X 449 y(%VMSINSTAL-)SK2 x(I-SYSDIR,)S 240 x(This)S 239 x(product)S 240 x(creates)S 240 x(system)S5G239 x(disk)S 240 x(directory)S 479 x(DUA0:[SUPSER.D)S 2 x(OC].)S 5094 X2F448 y(%VMSINSTAL-)S 2 x(I-SYSDIR,)S 240 x(This)S 239 x(product)S 240 xO(creates)S 240 x(system)S 239 x(disk)S 240 x(directory)S 479 x(DUA0:[SUPSER.S)SlC2 x(RC].)S 5094 X 448 y(%SUPSER-I-L)S 2 x(INKING,)S 239 x(Linking)SrH240 x(image)S 240 x(PHOTO....)S 5094 X 449 y(%SUPSER-I-L)S 2 x(INKING,)SM239 x(Linking)S 240 x(image)S 240 x(PLAYBACK....)S 5094 X 448 y(%SUPSER-I-L)S%E2 x(INKING,)S 239 x(Linking)S 240 x(image)S 240 x(HANDIN....)S 4272 X\H82 y 144 444 R 5094 31515 XY(%SUPSER-I-L)S 2 x(INKING,)S 239 x(Linking)SC240 x(image)S 240 x(SUPERVISOR....)S 5094 X 748 y(%SUPSER-I-I)S 2 xCD(NSTDOC,)S 239 x(Installing)S 241 x(documentation....)S 5094 X 747 yG(%VMSINSTAL-)S 2 x(I-RESTORE,)S 240 x(Restoring)S 240 x(product)S 240 x D(save)S 239 x(set)S 239 x(B)S 240 x(...)S 5094 X 747 y(%SUPSER-I-I)SO2 x(NSTDOC,)S 239 x(Installing)S 241 x(sources....)S 5094 X 747 y(%VMSINSTAL-)S7E2 x(I-RESTORE,)S 240 x(Restoring)S 240 x(product)S 240 x(save)S 239 x(D(set)S 239 x(C)S 240 x(...)S 7007 X 747 y(To)S 240 x(install)S 239 xC(the)S 240 x(Supervisor)S 240 x(Series)S 240 x(images)S 239 x(and)S(F240 x(define)S 240 x(the)S 7007 X 449 y(SUPSER_ROOT)S 240 x(logical,)SL240 x(execute)S 240 x(the)S 240 x(following)S 240 x(command.)S 5094 36925 XY F36(A\2032)S%%EndCustomColor16 PP EP %%PageTrailer #%%PageFonts: Helvetica-Bold Courier9*%%PageCustomColors: 0_BLACK 1_USERTAGCOLOR%o%%Page: A-3 17%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)r)1000 BP PaperHeight PaperWidth PM 0 0 XY 3%%BeginCustomColor: 0_BLACK G0 SC 17561 1807 XY F28(Sample)S 167 x(Supervisor)S 166 x(Series)S 167 xXD(Installa)S 2 x(tion)S 7007 4766 XY F102(To)S 240 x(automate)S 239 xD(this)S 240 x(procedure)S 240 x(at)S 239 x(system)S 240 x(startup,)SF240 x(you)S 239 x(should)S 7007 X 448 y(also)S 240 x(add)S 239 x(the)SD240 x(following)S 240 x(line)S 239 x(to)S 239 x(the)S 240 x(system)SN240 x(startup)S 239 x(command)S 7007 X 448 y(procedure)S 240 x(\(SYS$MANAGER)SE2 x(:SYSTARTUP_V5.COM\).)S 7725 X 747 y($)S 239 x(@DUA0:[SUPSER.COM)SnG2 x(]SUPSER_STARTUP.COM)S 5094 X 748 y(%VMSINSTAL-)S 2 x(I-MOVEFILES,)S E240 x(Files)S 240 x(will)S 239 x(now)S 239 x(be)S 240 x(moved)S 239 xiF(to)S 240 x(their)S 239 x(target)S 240 x(directories...)S 5333 X 747 yC(Installati)S 2 x(on)S 239 x(of)S 239 x(SUPSER)S 240 x(V5.5)S 239 xpH(completed)S 240 x(at)S 240 x(07:34)S 4272 X 82 y 144 444 R 5333 8651 XYD(VMSINSTAL)S 241 x(procedure)S 240 x(done)S 239 x(at)S 239 x(07:35)S,5094 X 747 y($)S 27344 36925 XY F36(A\2033)S%%EndCustomColor17 PP EP %%PageTrailer2#%%PageFonts: Helvetica-Bold Courier %%PageCustomColors: 0_BLACK % %%Page: A-4 18 /DEC$EDMS_MAKE_FILM where { pop }S%{ /DEC$EDMS_SUPPRESS_BLANKPAGES where) { pop }  { CLRP showpage } ifelse } ifelse n %%PageTrailerS %%PageFonts:%%PageCustomColors:r%S%%Page: B-1 19%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)L)1000 BP PaperHeight PaperWidth PM 0 0 XY l%%BeginCustomColor: 0_BLACK(M0 SC 2404 5875 XY F12(B)S 5094 4546 XY 23160 48 R 5094 5443 XY F20(Contents)SRD165 x(of)S 165 x(Distribution)S 165 x(Kit)S 10773 8652 XY F151(The)SC186 x(Supervisor)S 186 x(Series)S 185 x(is)S 185 x(provided)S 186 xRD(in)S 185 x(a)S 186 x(VMSINST)S -28 x(ALlable)S 185 x(distribution)SE10773 X 598 y(kit)S 185 x(consisting)S 186 x(of)S 185 x(three)S 185 x F(save)S 185 x(sets.)S 287 x(Each)S 185 x(save)S 185 x(set)S 185 x(is)SF184 x(brie\212y)S 186 x(described)S 185 x(in)S 10773 X 597 y(T)S -31 xG(able)S 166 x(B)S(\203)S(1.)S 10773 11093 XY F36(T)S -36 x(able)S 166 xRK(B)S(\203)S(1)S 498 x(Superviso)S 2 x(r)S 165 x(Series)S 167 x(installati)SG2 x(on)S 166 x(kit)S 167 x(save)S 166 x(sets)S 10773 X 398 y 17484 48 RhF10773 11989 XY F40(Save)S 150 x(Set)S 15854 X(Contents)S 10773 X 299 yI17484 48 R 10773 12886 XY F38(SUPSER054.A)S 15854 X(The)S 152 x(KITINST)S E-34 x(AL)S 152 x(command)S 153 x(proced)S 2 x(ure)S 152 x(and)S 152 x9H(its)S 151 x(suppor)S 2 x(ting)S 151 x(\211les,)S 15854 X 548 y(object)SL150 x(code)S 150 x(commo)S 2 x(n)S 149 x(to)S 150 x(the)S 149 x(Supervisor)SE151 x(Series)S 150 x(compon)S 2 x(ents.)S 10773 X 747 y(SUPSER054.B)SxG15854 X(Documentation)S 163 x(\211les,)S 165 x(in)S 163 x(PostScript,)S0E165 x(Bookreade)S 2 x(r)S -25 x(,)S 165 x(and)S 163 x(plain)S 15854 XcO548 y(ASCII)S 149 x(formats.)S 10773 X 747 y(SUPSER054.C)S 15854 X(Supervisor)S2G151 x(Series)S 150 x(source)S 151 x(\211les.)S 10773 X 399 y 17484 48 R927344 36925 XY F36(B\2031)Sx%%EndCustomColor19 PP EP %%PageTrailerS2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman %%+ HelveticaL%%PageCustomColors: 0_BLACKC%o%%Page: B-2 20 /DEC$EDMS_MAKE_FILM where { pop }-%{ /DEC$EDMS_SUPPRESS_BLANKPAGES where2 { pop }  { CLRP showpage } ifelse } ifelse X %%PageTrailery %%PageFonts:%%PageCustomColors:l% %%Page: C-1 21%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)p)1000 BP PaperHeight PaperWidth PM 0 0 XY 2%%BeginCustomColor: 0_BLACK J0 SC 2404 5921 XY F12(C)S 5094 4546 XY 23160 48 R 5094 5443 XY F20(Files)SC166 x(Create)S -2 x(d)S 166 x(During)S 166 x(Installat)S -2 x(ion)S C10773 8652 XY F151(The)S 165 x(\211les)S 164 x(in)S 165 x(T)S -31 xrG(able)S 164 x(C)S(\203)S(1)S 164 x(are)S 164 x(created)S 165 x(during)S(J165 x(the)S 165 x(installation)S 163 x(of)S 164 x(the)S 165 x(Supervisor)SD10773 X 598 y(Series)S 166 x(software.)S 5094 10495 XY F36(T)S -36 xE(able)S 167 x(C)S(\203)S(1)S 497 x(Supervi)S 2 x(sor)S 166 x(Series)S)J166 x(\211les)S 167 x(created)S 166 x(during)S 167 x(instal)S 2 x(lation)SE5094 X 398 y 23160 48 R 5094 11392 XY F40(File)S 149 x(name)S 14659 XIC(Description)S 5094 X 298 y 23160 48 R 13384 12288 XY(Files)S 166 x]N(in)S 165 x(SUPSER_ROOT)S -51 x(:[COM])S 5094 X 299 y 23160 48 R 5094 13185 XYJF38(SUPER)S -8 x(VISOR_IDEN)S -2 x(TIFIERS.C)S -2 x(OM)S 14659 X(Command)SE151 x(procedur)S 2 x(e)S 149 x(to)S 150 x(create)S 150 x(SUPER)S -9 x_F(VISOR)S 149 x(rights)S 150 x(identi\211ers)S 5094 X 747 y(SUPSER_ST)SE-33 x(AR)S -8 x(TUP)S -59 x(.COM)S 14659 X(Startup)S 149 x(comm)S 2 x(F(and)S 150 x(procedu)S 2 x(re)S 5094 X 847 y 23160 48 R 13409 15377 XYFF40(Files)S 165 x(in)S 166 x(SUPSER_ROOT)S -51 x(:[DOC])S 5094 X 298 yG23160 48 R 5094 16273 XY F38(INST)S -34 x(ALL_GUIDE.DECW$BOOK)S 14659 X(C(Installati)S -2 x(on)S 150 x(guide)S 150 x(\(Bookre)S 2 x(ader\))S G5094 X 747 y(INST)S -34 x(ALL_GUIDE.PS)S 14659 X(Installati)S -2 x(on)SaN150 x(guide)S 150 x(\(PostScript\))S 5094 X 748 y(INST)S -34 x(ALL_GUIDE.TXT)SE14659 X(Installati)S -2 x(on)S 150 x(guide)S 150 x(\(ASCII\))S 5094 X0G747 y(LIBRAR)S -8 x(Y)S -58 x(.DECW$BOOKSHELF)S 14659 X(Library)S 150 xTH(bookshe)S 2 x(lf)S 148 x(\211le)S 150 x(for)S 149 x(Bookre)S 2 x(ader)SG150 x(docum)S 2 x(ents)S 5094 X 747 y(PHOT)S -8 x(O.DECW$BOOK)S 14659 X(GF39(PHOT)S -9 x(O)S 149 x(Reference)S 151 x(Guide)S 149 x F38(\(Bookr)SlJ2 x(eader\))S -190 y F46(2)S 5094 20009 XY F38(PHOT)S -8 x(O.HLP)S 14659 XE(On-line)S 149 x(help)S 150 x(for)S 149 x(PHOT)S -8 x(O)S 149 x(and)S F150 x(PLA)S -33 x(YBACK)S -190 y F46(2)S 5094 20756 XY F38(PHOT)S -8 xC(O.PS)S 14659 X F39(PHOT)S -9 x(O)S 149 x(Reference)S 151 x(Guide)SxG149 x F38(\(PostScript\))S -190 y F46(2)S 5094 21504 XY F38(PHOT)S -8 xD(O.TXT)S 14659 X F39(PHOT)S -9 x(O)S 149 x(Reference)S 151 x(Guide)SC149 x F38(\(ASCII\))S -191 y F46(2)S 5094 22251 XY F38(SUPER)S -8 x,M(VISOR.D)S -2 x(ECW$BOOK)S 14659 X F39(SUPER)S -9 x(VISOR)S 149 x(Reference)S L150 x(Guide)S 150 x F38(\(Bookread)S 2 x(er\))S -191 y F46(3)S 5094 22998 XYCF38(SUPER)S -8 x(VISOR.H)S -2 x(LP)S 14659 X(On-line)S 149 x(help)S)F150 x(for)S 149 x(SUPER)S -8 x(VISE)S -190 y F46(3)S 5094 23745 XY F38K(SUPER)S -8 x(VISOR.PS)S 14659 X F39(SUPER)S -9 x(VISOR)S 149 x(Reference)S4E150 x(Guide)S 150 x F38(\(PostScript\))S -190 y F46(3)S 5094 24492 XYCF38(SUPER)S -8 x(VISOR.TXT)S 14659 X F39(SUPER)S -9 x(VISOR)S 149 xIM(Reference)S 150 x(Guide)S 150 x F38(\(ASCII\))S -190 y F46(3)S 5094 25240 XYsDF38(SUPSER.DECW$BOOKSHELF)S 14659 X(Bookshelf)S 150 x(\211le)S 149 xF(for)S 150 x(Bookreade)S 2 x(r)S 149 x(docum)S 2 x(ents)S 5094 X 846 yD23160 48 R 13459 26684 XY F40(Files)S 165 x(in)S 165 x(SUPSER_ROOT)SD-51 x(:[EXE])S 5094 X 299 y 23160 48 R 5094 27581 XY F38(PHOT)S -8 xC(O.CLD)S 14659 X(CLD)S 149 x(\211le)S 149 x(for)S 150 x(PHOT)S -9 x%I(O)S 149 x(and)S 150 x(PLA)S -32 x(YBACK)S 149 x(comman)S 2 x(ds)S -191 y.HF46(2)S 5094 28328 XY F38(PHOT)S -8 x(O.EXE)S 14659 X(Executable)S 150 xH(image)S 150 x(for)S 150 x(PHOT)S -9 x(O)S 149 x(utilit)S -2 x(y)S 150 xM-190 y F46(2)S 5094 29075 XY F38(PLA)S -32 x(YBACK.EXE)S 14659 X(Executable)S(G150 x(image)S 150 x(for)S 150 x(PLA)S -33 x(YBACK)S 149 x(utilit)S -2 x)H(y)S -190 y F46(2)S 5094 29822 XY F38(HANDIN.)S -2 x(CLD)S 14659 X(CLD)SH149 x(\211le)S 149 x(for)S 150 x(HANDI)S -2 x(N)S 149 x(comm)S 2 x(and)SJ-190 y F46(2)S 5094 30570 XY F38(HANDIN.)S -2 x(EXE)S 14659 X(Executable)SH150 x(image)S 150 x(for)S 150 x(HANDI)S -2 x(N)S 150 x(util)S -2 x(ity)SE-191 y F46(2)S 4272 X 191 y 144 1500 R 5094 31317 XY F38(SUPER)S -8 xsC(VISOR.C)S -2 x(LD)S 14659 X(CLD)S 149 x(\211le)S 149 x(for)S 150 x H(SUPER)S -9 x(VISE)S 149 x(comm)S 2 x(and)S -191 y F46(3)S 5094 32064 XYEF38(SUPER)S -8 x(VISOR.EXE)S 14659 X(Executable)S 150 x(image)S 150 x.F(for)S 150 x(SUPER)S -9 x(VISE)S 149 x(comm)S 2 x(and)S -190 y F46(3)SE5094 X 788 y 23160 48 R 5094 33077 XY(2)S 25 x 191 y F38(Only)S 150 x_F(if)S 148 x(PHOT)S -8 x(O)S 149 x(was)S 149 x(installed)S 5094 X 563 yCF46(3)S 25 x 191 y F38(Only)S 150 x(if)S 148 x(SUPER)S -8 x(VISOR)Sa9148 x(was)S 150 x(installed)S 27344 36925 XY F36(C\2031)S5%%EndCustomColor21 PP EP %%PageTrailer12%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman%%+ Helvetica Helvetica-Oblique2%%PageCustomColors: 0_BLACK)%4%%Page: C-2 22%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)2,1000 BP PaperHeight PaperWidth PM 0 0 XY RV %%BeginCustomColor: 0_BLACKtJ0 SC 5094 1807 XY F28(Files)S 151 x(Created)S 150 x(During)S 149 x(Insta)SD2 x(llation)S 5094 5094 XY F36(T)S -36 x(able)S 167 x(C)S(\203)S(1)SC165 x(\(Cont.\))S 499 x(Supervisor)S 167 x(Series)S 167 x(\211les)SIH166 x(created)S 166 x(durin)S 2 x(g)S 166 x(install)S 2 x(ation)S 5094 XK399 y 23160 48 R 5094 5991 XY F40(File)S 149 x(name)S 14659 X(Description)SXL5094 X 299 y 23160 48 R 13256 6888 XY(Files)S 165 x(in)S 165 x(SUPSER_ROOT)SH-51 x(:[SRC])S 166 x -191 y F48(1)S 5094 X 580 y 23160 48 R 5094 7874 XYEF38(ADVISORMAR.MAR)S 14659 X(MACRO)S 149 x(source)S 151 x(for)S 149 x0L(ADVISOR)S 148 x(modu)S 2 x(le)S -190 y F46(3)S 5094 8622 XY F38(BUILD.COM)SC14659 X(Command)S 151 x(procedur)S 2 x(e)S 149 x(to)S 150 x(build)S_C149 x(the)S 150 x(Series)S 150 x(from)S 150 x(source)S 5094 X 747 y C(BUILD_MACRO.COM)S 14659 X(Command)S 151 x(procedur)S 2 x(e)S 149 xgI(to)S 150 x(build)S 149 x(the)S 150 x(Series)S 150 x(from)S 150 x(MACRO)SrH149 x(source)S 4272 X 144 1500 R 5094 10116 XY(CHECK_PRIVS.B32)S 14659 XG(BLISS-32)S 150 x(source)S 151 x(for)S 149 x(privilege)S 150 x(checks)SYF5094 X 747 y(CHECK_PRIVS.MAR)S 14659 X(MACRO-32)S 150 x(source)S 150 xL(gener)S 2 x(ated)S 150 x(by)S 149 x(BLISS-32)S 5094 X 747 y(CVTB32MAR.TPU)SE14659 X(Convert)S 150 x(BLISS-32)S 150 x(.LIS)S 149 x(\211les)S 149 x K(to)S 150 x(.MAR)S 5094 X 748 y(CVTDOCHELP)S -59 x(.TPU)S 14659 X(Convert)S)F150 x(DOCU)S -2 x(MENT)S 150 x(.HLP)S 149 x(to)S 149 x(regular)S 151 xC(.HLP)S 149 x(\211les)S 5094 X 747 y(DESCRIP)S -59 x(.MMS)S 14659 X)F(MMS)S 150 x(description)S 150 x(\211le)S 149 x(for)S 150 x(building)SC5094 X 747 y(HANDIN.)S -2 x(MAR)S 14659 X(MACRO-32)S 150 x(source)SYC150 x(gener)S 2 x(ated)S 150 x(by)S 149 x(BLISS-32)S -190 y F46(2)S)M5094 14599 XY F38(HANDIN_CLD.)S -2 x(CLD)S 14659 X(CLD)S 149 x(de\211nition)SeC149 x(for)S 150 x(HANDIN)S 148 x(CLI)S 149 x(table)S -190 y F46(2)S D5094 15346 XY F38(HANDIN_SUBS.)S -2 x(B32)S 14659 X(BLISS-32)S 150 xF(source)S 151 x(for)S 149 x(HANDIN)S 148 x(subrou)S 2 x(tines)S -190 yFF46(2)S 5094 16094 XY F38(HANDIN_SUBS.)S -2 x(MAR)S 14659 X(MACRO-32)SC150 x(source)S 150 x(gener)S 2 x(ated)S 150 x(by)S 149 x(BLISS-32)S2H-191 y F46(2)S 5094 16841 XY F38(HANDIN.)S -2 x(MAR)S 14659 X(MACRO-32)SC150 x(source)S 150 x(gener)S 2 x(ated)S 150 x(by)S 149 x(BLISS-32)S)G-191 y F46(2)S 5094 17588 XY F38(PHOT)S -8 x(O.B32)S 14659 X(BLISS-32)S(E150 x(source)S 151 x(for)S 149 x(PHOT)S -8 x(O/HAN)S -2 x(DIN)S 149 xoM(main)S 150 x(routines)S -190 y F46(2)S 4272 X 190 y 144 4488 R 5094 18335 XYxGF38(PHOT)S -8 x(O.MAR)S 14659 X(MACRO-32)S 150 x(source)S 150 x(gener)SBC2 x(ated)S 150 x(by)S 149 x(BLISS-32)S -190 y F46(2)S 5094 19082 XYlFF38(PHOT)S -8 x(O.SDML)S 14659 X(V)S -34 x(AX)S 150 x(DOCUMENT)S 148 xH(source)S 151 x(for)S 150 x(PHOT)S -9 x(O)S 149 x(manu)S 2 x(al)S -190 yFF46(2)S 5094 19830 XY F38(PHOT)S -8 x(OMAR.MAR)S 14659 X(MACRO)S 149 xD(support)S 150 x(routines)S 150 x(for)S 150 x(terminal)S 150 x(I/O)SD5094 X 747 y(PHOT)S -8 x(ONP)S -59 x(.B32)S 14659 X(BLISS-32)S 150 xC(source)S 151 x(for)S 149 x(nonpa)S 2 x(ged-pool)S 150 x(routines)ShD5094 X 747 y(PHOT)S -8 x(ONP)S -59 x(.MAR)S 14659 X(MACRO-32)S 150 xE(source)S 150 x(gener)S 2 x(ated)S 150 x(by)S 149 x(BLISS-32)S 5094 X)C747 y(PHOT)S -8 x(OP1.B32)S 14659 X(BLISS-32)S 150 x(source)S 151 xeD(for)S 149 x(P1-spa)S 2 x(ce)S 149 x(code)S 5094 X 747 y(PHOT)S -8 xE(OP1.MAR)S 14659 X(MACRO-32)S 150 x(source)S 150 x(gener)S 2 x(ated)SnC150 x(by)S 149 x(BLISS-32)S 5094 X 748 y(PHOT)S -8 x(OP)S -34 x(A)S(D-33 x(T)S -50 x(.B32)S 14659 X(BLISS-32)S 150 x(source)S 151 x(for)SC149 x(non-p)S 2 x(aged)S 150 x(code)S 5094 X 747 y(PHOT)S -8 x(OP)SeH-34 x(A)S -33 x(T)S -50 x(.MAR)S 14659 X(MACRO-32)S 150 x(source)S 150 xC(gener)S 2 x(ated)S 150 x(by)S 149 x(BLISS-32)S 5094 X 747 y(PHOT)SpE-8 x(O_CLD.CLD)S 14659 X(CLD)S 149 x(de\211nition)S 149 x(for)S 150 x G(PHOT)S -9 x(O)S 149 x(CLI)S 149 x(table)S -190 y F46(2)S 5094 25807 XY(CF38(PLA)S -32 x(YBACK.B32)S 14659 X(BLISS-32)S 150 x(source)S 151 xSD(for)S 149 x(PLA)S -33 x(YBACK)S 150 x(main)S 150 x(routine)S -190 yDF46(2)S 5094 26554 XY F38(PLA)S -32 x(YBACK.MAR)S 14659 X(MACRO-32)SC150 x(source)S 150 x(gener)S 2 x(ated)S 150 x(by)S 149 x(BLISS-32)S)D-190 y F46(2)S 5094 27302 XY F38(PLA)S -32 x(YBACK_CLD.CLD)S 14659 XG(CLD)S 149 x(de\211nition)S 149 x(for)S 150 x(PLA)S -33 x(YBACK)S 149 xXQ(CLI)S 149 x(table)S -191 y F46(2)S 5094 28049 XY F38(PLA)S -32 x(YBACK_MSG.MSG)SIE14659 X(MESSAGE)S 149 x(sourc)S 2 x(e)S 149 x(for)S 150 x(PLA)S -33 x4G(YBACK)S 149 x(messa)S 2 x(ges)S -191 y F46(2)S 5094 28796 XY F38(PLA)S E-32 x(YBACK_R)S -9 x(TN.MAR)S 14659 X(MACRO-32)S 150 x(source)S 150 xTC(gener)S 2 x(ated)S 150 x(by)S 149 x(BLISS-32 Software Version: Supervisor Series v5.42 Academic Computing and Research Services% Western Kentucky University! Bowling Green, Kentucky  " ________________________ 5 October 1992= Permission is granted to copy and redistribute this* document for no commercial gain.? The information in this document is subject to change9 without notice and should not be construed as a9 commitment by the author. The author assumes no? responsibility for any errors that may appear in this document.= DISCLAIMER: The software described in this document: is provided "as is". No guarantee is made by the@ author or the author's employer as to the suitability,> reliability, security, usefulness, or performance of this software.@ Neither Western Kentucky University nor Hunter Goatley@ are responsible for any losses that may occur from the use of this software.; The following are trademarks of Digital Equipment Corporation:9 DEC VAX VMS9 DECnet UCX UIS __________> Copyright 1992 Hunter Goatley. ALL RIGHTS RESERVED.  A _______________________________________________________ ContentsA _________________________________________________A PREFACE viiA _______________________________________________________8 CHAPTER 1 PREPARING TO INSTALL THE SUPERVISORA SERIES 1-1A _________________________________________________A 1.1 PREREQUISITE SOFTWARE 1-1A _________________________________________________A 1.2 ACCESSING THE ONLINE RELEASE NOTES 1-1A _________________________________________________A 1.3 INSTALLATION PROCEDURE REQUIREMENTS 1-1A _______________________________________________________A CHAPTER 2 INSTALLING THE SUPERVISOR SERIES 2-1A _________________________________________________A 2.1 INVOKING VMSINSTAL 2-1A _________________________________________________A 2.2 INSTALLATION OPTIONS 2-2A _________________________________________________A 2.3 DISK AND DIRECTORY SELECTION 2-2A _________________________________________________A 2.4 COMPONENT SELECTION 2-3A 2.4.1 Installing the Sources Only ___ 2-3A 2.4.2 Installing PHOTO and PLAYBACK _ 2-4A iii   ContentsA 2.4.3 Installing SUPERVISOR _________ 2-5A _________________________________________________A 2.5 THE INSTALLATION COMPLETES 2-6A _______________________________________________________A CHAPTER 3 POST-INSTALLATION INFORMATION 3-1A _________________________________________________A 3.1 STARTING THE SUPERVISOR SERIES 3-1A _________________________________________________A 3.2 CREATING SUPERVISOR IDENTIFIERS 3-1A _________________________________________________A 3.3 USING THE BOOKREADER DOCUMENTATION 3-2A _________________________________________________A 3.4 REGISTERING YOUR INSTALLATION 3-2A _______________________________________________________. APPENDIX A SAMPLE SUPERVISOR SERIESA INSTALLATION A-1A _______________________________________________________A APPENDIX B CONTENTS OF DISTRIBUTION KIT B-1A _______________________________________________________A APPENDIX C FILES CREATED DURING INSTALLATION C-1 iv  A ContentsA _______________________________________________________ TABLES8 B-1 Supervisor Series installationA kit save sets _________________ B-19 C-1 Supervisor Series files createdA during installation ___________ C-1A v  A _______________________________________________________ Preface< This guide describes how to install the Supervisor Series.L __________________________________________________________________ Intended Audience? This manual is intended for use by the system manager: or any individual responsible for installing and, maintaining the Supervisor Series.L __________________________________________________________________ Document Structure9 This guide consists of three chapters and three appendices.< Chapter 1 Contains pre-installation information.5 Chapter 2 Describes the Supervisor Series- installation procedure.= Chapter 3 Contains post-installation information.4 Appendix A Contains a listing of a sample# installation.> Appendix B Describes the contents of the Supervisor. Series distribution kit.@ Appendix C Contains a list of the files created by an# installation.A vii   PrefaceL __________________________________________________________________ Related Documents> You can find additional information in the following documents:@ o SUPERVISOR Reference Guide describes the SUPERVISOR utility.: o PHOTO Reference Guide describes the PHOTO and PLAYBACK utilities.@ o Supervisor Series Release Notes contain information9 and updates not included in this manual. The@ release notes are part of the software distribution kit.: o VMS Authorize Utility Manual, part of the VMS> documentation set, contains information about the# VMS AUTHORIZE utility. viii  A _______________________________________________________4 1 Preparing to Install the Supervisor Series? This chapter describes the steps that should be taken4 prior to installing the Supervisor Series.L __________________________________________________________________ 1.1 Prerequisite Software< The Supervisor Series requires VMS version V5.0 or later to run.L __________________________________________________________________, 1.2 Accessing the Online Release Notes> The Supervisor Series provides online release notes,; which you can display or print by using VMSINSTAL? with the OPTIONS N parameter. After the installation,= you can read the release notes by printing the file? SYS$HELP:SUPSERvvn.RELEASE_NOTES, where "vvn" denotes> the version number of the software. For example, for> version v5.4 of the Supervisor Series, the file name would be SUPSER054.L __________________________________________________________________- 1.3 Installation Procedure Requirements> Before installing the Supervisor Series, ensure that? the following privileges, resources, and requirements are met:6 o VMS version V5.0 through V5.5 is running.@ o All the normal privileges and quotas of the default SYSTEM account.= o Approximately 2 to 15 minutes, depending on your; system configuration, distribution medium, and | options selected.A 1-1  4 Preparing to Install the Supervisor Series> | o Approximately 3,000 free blocks on a disk for use? | during the installation procedure; this can be the? | system disk or a disk specified with the VMSINSTAL | AWD option. |: | o Approximately 2,500 free blocks on the system? | disk for a full installation. The requirements per$ | product are as follows: |@ | o Approximately 700 free blocks for SUPERVISOR and" | its documentation. |? | o Approximately 500 free blocks for PHOTO and its | documentation. |? | o Approximately 1,000 free blocks for the sources* | for the Supervisor Series. 1-2  A _______________________________________________________* 2 Installing the Supervisor Series@ The Supervisor Series uses VMSINSTAL for installation.= If you do not know how to use VMSINSTAL, you should> first read the chapter on installing software in the@ VMS System Manager's Manual. For the installation, you= should be logged into the SYSTEM account or another& suitably privileged account.L __________________________________________________________________ 2.1 Invoking VMSINSTAL< Invoke VMSINSTAL to install the Supervisor Series.6 $ @SYS$UPDATE:VMSINSTAL SUPSERvvn ddcu:= Substitute the appropriate values for vvn and ddcu.N VAX/VMS Software Product Installation Procedure V5.4-2* It is dd-Mmm-yyyy at hh:mm.> Enter a question mark (?) at any time for help.< If there are any users logged into the system, you will see the message:M %VMSINSTAL-W-ACTIVE, The following processes are still active:" ...process names...? You can install the Supervisor Series while users are@ logged in, though no user should be running one of the> Supervisor Series utilities from a previous version.5 * Do you want to continue anyway [NO]?. If you wish to continue, answer YES.M * Are you satisfied with the backup of your system disk [YES]?A 2-1  * Installing the Supervisor Series? If you feel comfortable with your system disk backup,? answer YES. Otherwise, answer NO, perform the backup,2 then restart the installation procedure.L __________________________________________________________________ 2.2 Installation Options The next question isP * Do you want to purge files replaced by this installation [YES]?: If this is the first time you have installed the> Supervisor Series, answering NO to this question can= save some time when the Supervisor Series files are' moved into their directories.L __________________________________________________________________& 2.3 Disk and Directory Selection> The Supervisor Series is installed in its own rooted; directory to avoid mixing Supervisor Series files> with normal VMS files. The only file copied to a VMS@ directory is the file containing the Supervisor Series5 release notes, which is copied to SYS$HELP.; The Supervisor Series can reside on any disk. The? installation prompts you for the name of the disk and? top-level directory for the utilities. The default is! SYS$SYSDEVICE:[SUPSER].Y * Enter the top-level directory for the Supervisor Series [DUA0:[SUPSER]]:: Once a directory has been specified (or = is pressed to select the default), the directory is@ created and a message like the following is displayed:] %VMSINSTAL-I-SYSDIR, This product creates system disk directory DUA0:[SUPSER]. 2-2  A Installing the Supervisor SeriesL __________________________________________________________________ 2.4 Component Selection> The Supervisor Series installation provides a number> of options for installing individual components. The/ following list describes the options.? o Install only the sources to the Supervisor Series.: Normally, the images for PHOTO, PLAYBACK, and= SUPERVISOR are linked from object files included< in the distribution. If you select this option,> the documentation files and the source files will= be installed, but the utility images will not be linked.@ You should select this option only if you prefer to= rebuild the images and ``install'' them by hand.; o Install PHOTO (and PLAYBACK). If you choose to< install PHOTO, you will be asked whether or not? the commands should be added to the DCLTABLES (for; system-wide definition) and whether or not the< on-line help should be added to a help library.9 o Install SUPERVISOR. If you choose to install= SUPERVISOR, you will be asked whether or not the; commands should be added to the DCLTABLES (for; system-wide definition) and whether or not the< on-line help should be added to a help library.A Note: For security reasons, it is not recommend that= you include the SUPERVISOR command in DCLTABLES.< o Install the sources for each utility installed.% ___________________________% 2.4.1 Installing the Sources Only? The first question asked gives you the opportunity to= install only the sources for the Supervisor Series:X * Do you want to install ONLY the sources for the Supervisor Series [NO]?A 2-3  * Installing the Supervisor Series? Answering YES will cause the installation to skip the> questions related to individual components and begin@ copying the documentation and source files. There will% be no more questions asked.: If you answer NO the question above, you will be= prompted for whether or not you wish to install the, sources for the products selected:T * Do you want to install the sources for the Supervisor Series [YES]?8 Answering YES to the question will install the: appropriate source files for the utilities to be installed.% ___________________________i' 2.4.2 Installing PHOTO and PLAYBACKa@ The installation will next ask the following question:4 * Do you want to install PHOTO [YES]?< If you answer NO to the question, the installation? will proceed with asking about installing SUPERVISOR.? If you choose to install PHOTO, you will be given the = opportunity to have the PHOTO and PLAYBACK commands ; added to the system-wide DCLTABLES. Answering YES.< to the following question will create ``real'' DCL@ commands that are automatically available to all users on the system:W * Do you want to add the PHOTO and PLAYBACK commands to DCLTABLES [YES]? ; You will then be asked whether or not you want tot< install the on-line help for PHOTO and PLAYBACK in= a help library. If you answer YES, you will also bes6 asked which library should contain the help.S * Do you want to add the PHOTO and PLAYBACK help to a library [YES]? 2-4U e tA Installing the Supervisor Series ; The installation will present a number of choiceso9 for the library to receive the on-line help. Inp; addition to offering the system-wide help library < as an option, the installation procedure will look< for any HLP$LIBRARY commands defined in the system- directory and will offer those too:Q This installation updates the help library so that the DCL P command "$ HELP PHOTO" will provide information about theS PHOTO utility and "$ HELP PLAYBACK" will provide information_2 about the PLAYBACK utility.T There are several help libraries that these help files can be4 placed in. Some of them are:6 SYS$SYSROOT:[SYSHLP]HELPLIB.HLB2 WKU$ROOT:[HELP]WKU_HELP.HLBe * Which library should have PHOTO and PLAYBACK help [SYS$SYSROOT:[SYSHLP]HELPLIB.HLB]:E% ___________________________ 2.4.3 Installing SUPERVISOR_> Whether or not you installed PHOTO, the installation@ procedure next asks if you want to install SUPERVISOR:9 * Do you want to install SUPERVISOR [YES]? < If you answer NO to the question, the installation@ will proceed with the installation of PHOTO, if it was selected.S@ If you choose to install SUPERVISOR, you will be given= the opportunity to have the SUPERVISE command addedL< to the system-wide DCLTABLES. Answering YES to the? following question will create a ``real'' DCL command.= that is automatically available to all users on the  system:_L * Do you want to add the SUPERVISE command to DCLTABLES [NO]?@ Note: It is not recommended that you add the SUPERVISE< command to DCLTABLES. Answering NO to the questionA 2-5   * Installing the Supervisor Series> will help keep unauthorized users from trying to run the utility.; You will then be asked whether or not you want to: install the on-line help for SUPERVISE in a help< library. If you answer YES, you will also be asked0 which library should contain the help.K * Do you want to add the SUPERVISOR help to a library [YES]?_? Like it does for PHOTO, the installation will presentI< a number of choices for the library to receive the on-line help:_] * Which library should have SUPERVISOR help [SYS$SYSROOT:[SYSHLP]HELPLIB.HLB]:_? If you specified a library to receive the PHOTO help, = that same library is offered as the default to this  prompt._L __________________________________________________________________$ 2.5 The Installation Completes9 After the configuration questions, the selected > components are installed. Files are copied from each> save set of the installation kit and the appropriate9 images are linked, then all installed files are @ copied to their destination directories. Informational@ messages about the individual components are displayed as needed. 2-6   A _______________________________________________________ ' 3 Post-Installation Information ; This chapter contains important information about @ setting up Supervisor Series configuration and startup options.L __________________________________________________________________( 3.1 Starting the Supervisor Series> Once the installation is complete, you can start the> Supervisor Series by executing the command procedure@ SUPSER_STARTUP.COM, located in SUPSER_ROOT:[COM]. This> procedure will define the SUPSER_ROOT logical in the= system logical name table and install the PHOTO ande: SUPERVISOR images with the necessary privileges.@ To start the Supervisor Series automatically at system; startup, you should add a line like the followings> to the system startup procedure (SYSTARTUP_V5.COM in SYS$MANAGER):l5 $ @dua0:[supser.com]supser_startup.comr> You should, of course, specify the actual device and; top-level directory that you specified during the  installation. L __________________________________________________________________) 3.2 Creating SUPERVISOR Identifiers ; If you installed SUPERVISOR, you must also create : the rights identifiers used to control access to> the SUPERVISOR functions. There are seven SUPERVISOR? identifiers, described fully in the manual SUPERVISORn Reference Guide.A 3-1s s b' Post-Installation Informationa@ A command procedure has been provided that can be used? to create the identifiers. To run it, simply give the . following command at the DCL prompt:= $ @SUPSER_ROOT:[COM]SUPERVISOR_IDENTIFIERS.COM_: The following example shows the commands used to! create the identifiers:f( $ SET DEFAULT SYS$SYSTEM: $ RUN AUTHORIZE0 UAF> ADD/IDENTIFIER SUPSER_ADVISE1 UAF> ADD/IDENTIFIER SUPSER_OBSERVEO6 UAF> ADD/IDENTIFIER SUPSER_ADVISE_GROUP7 UAF> ADD/IDENTIFIER SUPSER_OBSERVE_GROUP 4 UAF> ADD/IDENTIFIER SUPSER_LOGGED_OUT/ UAF> ADD/IDENTIFIER SUPSER_QUIETw6 UAF> ADD/IDENTIFIER SUPSER_NO_SUPERVISE: Note: If the identifiers already exist, you will< receive error messages from AUTHORIZE stating that= the identifiers already exist. You can ignore these errors.L __________________________________________________________________, 3.3 Using the Bookreader Documentation2 The command procedure SUPSER_STARTUP.COM: automatically adds the SUPSER_ROOT:[DOC] name to7 the DECW$BOOK logical name search list if the_; file LIBRARY.DECW$BOOKSHELF is found in the [DOC]r directory.L __________________________________________________________________' 3.4 Registering Your Installation_7 The Supervisor Series is freely distributablec9 software, and no license is required to use it.r6 Registration of your installation is at your@ discretion and is used by the author only to determine= the size of the Supervisor Series user base and the , future directions for the package. 3-2P P vA Post-Installation Information @ To register, simply send a note to the author with the following information: Installer's name % Company name and address_@ System(s) on which the Supervisor Series is running6 Which products you're using (PHOTO and/or SUPERVISOR); Any comments and/or suggestions you might have( You can send it electronically) to goathunter@WKUVX1.BITNET (or > goathunter%WKUVX1.BITNET@UKCC.UKY.EDU via Internet),@ by fax to +1 502 745 5387, or by mail to the following address: Hunter Goatleyr( Academic Computing, STH 226( Western Kentucky University( Bowling Green, KY 42101 USAA 3-33 0 eA _______________________________________________________s/ A Sample Supervisor Series Installatione; This appendix includes a sample Supervisor Series  installation.01 $ @SYS$UPDATE:VMSINSTAL SUPSER054 MUA0:u? VAX/VMS Software Product Installation Procedure V5.5 % It is 13-MAY-1992 at 07:30.x9 Enter a question mark (?) at any time for help.tN %VMSINSTAL-W-NOTSYSTEM, You are not logged in to the SYSTEM account.H %VMSINSTAL-W-ACTIVE, The following processes are still active: Polter Goat DECW$TE_0F2B 4 * Do you want to continue anyway [NO]? YESP * Are you satisfied with the backup of your system disk [YES]?3 The following products will be processed: | SUPSER V5.4S9 | Beginning installation of SUPSER V5.4 at 07:30s@ %VMSINSTAL-I-RESTORE, Restoring product save set A ...U %VMSINSTAL-I-RELMOVED, Product's release notes have been moved to SYS$HELP.e5 | Supervisor Series v5.4 Installationt& SUPERVISOR and PHOTOA A-1   / Sample Supervisor Series Installation_K | Copyright 1992 by Hunter Goatley. All Rights Reserved.lH | Redistribution for no commercial gain is permitted.T * Do you want to purge files replaced by this installation [YES]? F The Supervisor Series is installed in its own rootedH directory to avoid mixing Supervisor Series files withJ normal VMS files. The directory can reside on any disk.G THERE ARE NO FILES COPIED TO SYS$SYSTEM, SYS$LIBRARY,IG etc. (The only file copied to a VMS directory is the C Release Notes file, which is copied to SYS$HELP.)ed * Enter the top-level directory for the Supervisor Series [WKUVX1$DUA0:[SUPSER]]: Y %VMSINSTAL-I-SYSDIR, This product creates system disk directory DUA0:[SUPSER].yL The Supervisor Series is normally installed by linking theO object files packed with the kit. The installation will also K give you a chance to add DCL commands and on-line help tot your system.L The sources are also provided. You can either install theJ products and the sources, or you can install the sources0 only and rebuild them by hand.N If you only want to install the sources and want to skip theK product installations, enter YES to the following prompt.t\ * Do you want to install ONLY the sources for the Supervisor Series [NO]? M The answer to the following question will determine whethernK the appropriate source files for SUPERVISOR and PHOTO areo installed.X * Do you want to install the sources for the Supervisor Series [YES]? 8 * Do you want to install PHOTO [YES]? N The PHOTO command can be added to the system-wide DCLTABLES,I making the command available to all users, or it can beV/ defined as a foreign command.ea * Do you want to install the PHOTO command in the system-wide DCLTABLES [YES]? rJ * Do you want to add the PHOTO help to a library [YES]? A-2s n A Sample Supervisor Series Installation L This installation updates the help library so that the DCLK command "$ HELP PHOTO" will provide information about the N PHOTO utility and "$ HELP PLAYBACK" will provide information- about the PLAYBACK utility.eO There are several help libraries that these help files can bes/ placed in. Some of them are: 1 SYS$SYSROOT:[SYSHLP]HELPLIB.HLB - WKU$ROOT:[HELP]WKU_HELP.HLB i * Which library should have PHOTO and PLAYBACK help [SYS$SYSROOT:[SYSHLP]HELPLIB.HLB]: = * Do you want to install SUPERVISOR [YES]? G The SUPERVISE command can be added to the system-widenH DCLTABLES, making it available to all users, or it canH be defined as a foreign command on a per-user basis or! in SYS$SYLOGIN.OK For security purposes, it is recommended that the commandyF be defined as a foreign command on a per-user basis.P * Do you want to add the SUPERVISE command to DCLTABLES [NO]? L This installation updates the help library so that the DCLO command "$ HELP SUPERVISE" will provide information about the % SUPERVISOR utility. O Whether or not you elect to place the files in a library, the K files will be left in the Supervisor Series directory fori# future reference.O * Do you want to add the SUPERVISOR help to a library [YES]? aK Unless the SUPERVISE command was added to the system-wideaM DCLTABLES, it is not recommended that the help be installedSH in the system help library (SYS$SYSROOT:[HELPLIB.HLB).L There are several help libraries that can contain the help+ files. Some of them are:1 SYS$SYSROOT:[SYSHLP]HELPLIB.HLBD- WKU$ROOT:[HELP]WKU_HELP.HLBfh * Which library should contain the SUPERVISOR help [SYS$SYSROOT:[SYSHLP]HELPLIB.HLB]: A A-3  / Sample Supervisor Series InstallationsL No further questions will be asked. The Supervisor SeriesO installation will now continue for 2 to 15 minutes, dependingE on your type of media and the system configuration. ] %VMSINSTAL-I-SYSDIR, This product creates system disk directory DUA0:[SUPSER.EXE]. ] %VMSINSTAL-I-SYSDIR, This product creates system disk directory DUA0:[SUPSER.COM]. ] %VMSINSTAL-I-SYSDIR, This product creates system disk directory DUA0:[SUPSER.DOC]. ] %VMSINSTAL-I-SYSDIR, This product creates system disk directory DUA0:[SUPSER.SRC].s4 %SUPSER-I-LINKING, Linking image PHOTO....7 %SUPSER-I-LINKING, Linking image PLAYBACK.... 5 | %SUPSER-I-LINKING, Linking image HANDIN.... 9 %SUPSER-I-LINKING, Linking image SUPERVISOR.... 9 %SUPSER-I-INSTDOC, Installing documentation....2@ %VMSINSTAL-I-RESTORE, Restoring product save set B ...3 %SUPSER-I-INSTDOC, Installing sources....*@ %VMSINSTAL-I-RESTORE, Restoring product save set C ...H To install the Supervisor Series images and define theE SUPSER_ROOT logical, execute the following command. J To automate this procedure at system startup, you shouldK also add the following line to the system startup command ; procedure (SYS$MANAGER:SYSTARTUP_V5.COM). ; $ @DUA0:[SUPSER.COM]SUPSER_STARTUP.COM X %VMSINSTAL-I-MOVEFILES, Files will now be moved to their target directories...9 | Installation of SUPSER V5.5 completed at 07:34o, VMSINSTAL procedure done at 07:35 $O A-4   eA _______________________________________________________ & B Contents of Distribution Kit? The Supervisor Series is provided in a VMSINSTALlable> distribution kit consisting of three save sets. Each5 save set is briefly described in Table B-1.tA Table_B-1__Supervisor_Series_installation_kit_save_sets A Save_Set_________Contents______________________________s> SUPSER054.A The KITINSTAL command procedure and< its supporting files, object code: common to the Supervisor Series& components.> SUPSER054.B Documentation files, in PostScript,? Bookreader, and plain ASCII formats.tA SUPSER054.C______Supervisor_Series_source_files._______ A B-1e a sA _______________________________________________________e+ C Files Created During Installation 7 The files in Table C-1 are created during theO9 installation of the Supervisor Series software.l; Table C-1 Supervisor Series files created during]A ___________installation________________________________gA File_name_______________________Description____________tA _______________Files_in_SUPSER_ROOT:[COM]______________I; SUPERVISOR_IDENTIFIERS.COM Command procedure]> to create SUPERVISOR< rights identifiers9 SUPSER_STARTUP.COM Startup commands3 procedureoA _______________________________________________________-A _______________Files_in_SUPSER_ROOT:[DOC]______________w< INSTALL_GUIDE.DECW$BOOK Installation guide6 (Bookreader)< INSTALL_GUIDE.PS Installation guide6 (PostScript)< INSTALL_GUIDE.TXT Installation guide1 (ASCII) ; LIBRARY.DECW$BOOKSHELF Library bookshelf = file for Bookreadere3 documentshA C-1t  + Files Created During Installation < Table C-1 (Cont.) Supervisor Series files createdA ___________________during_installation_________________*A File_name_______________________Description____________ A _______________Files_in_SUPSER_ROOT:[DOC]______________ ? PHOTO.DECW$BOOK PHOTO Reference Guiden9 (Bookreader)[2]R@ PHOTO.HLP On-line help for PHOTO9 and PLAYBACK[2]h? PHOTO.PS PHOTO Reference Guidet9 (PostScript)[2]_? PHOTO.TXT PHOTO Reference Guide 4 (ASCII)[2]> SUPERVISOR.DECW$BOOK SUPERVISOR Reference? Guide (Bookreader)[3]: SUPERVISOR.HLP On-line help for6 SUPERVISE[3]> SUPERVISOR.PS SUPERVISOR Reference? Guide (PostScript)[3]> SUPERVISOR.TXT SUPERVISOR Reference: Guide (ASCII)[3]< SUPSER.DECW$BOOKSHELF Bookshelf file for> Bookreader documentsA ________________________________________________________A _______________Files_in_SUPSER_ROOT:[EXE]______________eA _______________________________________________________u( [2]Only if PHOTO was installed- [3]Only if SUPERVISOR was installed C-2M o eA Files Created During InstallationR< Table C-1 (Cont.) Supervisor Series files createdA ___________________during_installation_________________iA File_name_______________________Description____________ A _______________Files_in_SUPSER_ROOT:[EXE]______________@ PHOTO.CLD CLD file for PHOTO and> PLAYBACK commands[2]> PHOTO.EXE Executable image for; PHOTO utility [2]i> PLAYBACK.EXE Executable image for= PLAYBACK utility[2]2 |= | HANDIN.CLD CLD file for HANDINI4 | command[2] |> | HANDIN.EXE Executable image for; | HANDIN utility[2]y@ SUPERVISOR.CLD CLD file for SUPERVISE4 command[3]> SUPERVISOR.EXE Executable image for> SUPERVISE command[3]A _______________________________________________________ A _____________Files_in_SUPSER_ROOT:[SRC]_[1]____________S: ADVISORMAR.MAR MACRO source for; ADVISOR module[3]e |> | BUILD.COM Command procedure to? | build the Series fromE0 | source |A | _______________________________________________________F+ | [1]Only if sources were installed ( | [2]Only if PHOTO was installed- | [3]Only if SUPERVISOR was installed_A C-3   o+ Files Created During Installation < | Table C-1 (Cont.) Supervisor Series files createdA | ___________________during_installation_________________r |A | File_name_______________________Description_____________ |A | _____________Files_in_SUPSER_ROOT:[SRC]_[1]____________m |> | BUILD_MACRO.COM Command procedure to? | build the Series fromi6 | MACRO source= CHECK_PRIVS.B32 BLISS-32 source for_: privilege checks9 CHECK_PRIVS.MAR MACRO-32 sources? generated by BLISS-32c? CVTB32MAR.TPU Convert BLISS-32 .LISl7 files to .MAR ? CVTDOCHELP.TPU Convert DOCUMENT .HLPe? to regular .HLP files.> DESCRIP.MMS MMS description file6 for building |9 | HANDIN.MAR MACRO-32 source = | generated by BLISS-m/ | 32[2]  |< | HANDIN_CLD.CLD CLD definition for= | HANDIN CLI table[2]A |= | HANDIN_SUBS.B32 BLISS-32 source fori? | HANDIN subroutines[2]  |A | _______________________________________________________t+ | [1]Only if sources were installedg( | [2]Only if PHOTO was installed | C-4a i oA Files Created During Installation < | Table C-1 (Cont.) Supervisor Series files createdA | ___________________during_installation_________________- |A | File_name_______________________Description_____________ |A | _____________Files_in_SUPSER_ROOT:[SRC]_[1]____________  |9 | HANDIN_SUBS.MAR MACRO-32 sourcen= | generated by BLISS-0/ | 32[2]a |9 | HANDIN.MAR MACRO-32 source = | generated by BLISS- / | 32[2]  |= | PHOTO.B32 BLISS-32 source fore; | PHOTO/HANDIN mainC5 | routines[2][9 PHOTO.MAR MACRO-32 sourceu= generated by BLISS-s/ 32[2]= PHOTO.SDML VAX DOCUMENT source = for PHOTO manual[2]@ PHOTOMAR.MAR MACRO support routines: for terminal I/O= PHOTONP.B32 BLISS-32 source for@ nonpaged-pool routines9 PHOTONP.MAR MACRO-32 sourceo? generated by BLISS-32A= PHOTOP1.B32 BLISS-32 source forc7 P1-space codeoA _______________________________________________________ + [1]Only if sources were installedi( [2]Only if PHOTO was installedA C-5o l S+ Files Created During Installation< Table C-1 (Cont.) Supervisor Series files createdA ___________________during_installation_________________oA File_name_______________________Description____________SA _____________Files_in_SUPSER_ROOT:[SRC]_[1]____________v9 PHOTOP1.MAR MACRO-32 sourceN? generated by BLISS-32S= PHOTOPAT.B32 BLISS-32 source forn8 non-paged code9 PHOTOPAT.MAR MACRO-32 source ? generated by BLISS-32 < PHOTO_CLD.CLD CLD definition for< PHOTO CLI table[2]9 PLAYBACK.B32 BLISS-32 source ; for PLAYBACK main 4 routine[2]9 PLAYBACK.MAR MACRO-32 sourceY= generated by BLISS-a/ 32[2]]< PLAYBACK_CLD.CLD CLD definition for? PLAYBACK CLI table[2]o< PLAYBACK_MSG.MSG MESSAGE source for> PLAYBACK messages[2] |9 | PLAYBACK_RTN.MAR MACRO-32 sourcea= | generated by BLISS- 7 | 32 PHOTO and SUPERVISOR5 messages[3]c |? | SUPSER_MACROS.R32 BLISS-32 REQUIRE filep: TERMBLI.R32 BLISS-32 library6 REQUIRE fileA _______________________________________________________e+ [1]Only if sources were installedb- [3]Only if SUPERVISOR was installedtA C-7n  + Files Created During Installationp< Table C-1 (Cont.) Supervisor Series files createdA ___________________during_installation_________________BA File_name_______________________Description____________ A _____________Files_in_SUPSER_ROOT:[SRC]_[1]____________ 9 TTLOOKUP.B32 BLISS-32 sourceh= for terminal lookup 2 routines9 TTLOOKUP.MAR MACRO-32 sourcei? generated by BLISS-32P= VERSION.B32 BLISS-32 source for > routine to get image/ identf9 VERSION.MAR MACRO-32 source ? generated by BLISS-32eA _______________________________________________________iA ______________Files_in_SYS$COMMON:[SYSHLP]_____________y? SUPSER054.RELEASE_NOTES Release notes for theS; Supervisor Series.A _______________________________________________________d+ [1]Only if sources were installed A _______________________________________________________A C-8IPK 5=$@C supser054.aIMVMSVV7.1IM%VFABPB m!ЦIMVFHC,=;|IM*VDAT,____%dB:49Ҽt@IMVPROX'b1@0IMVRDT ima=RdB: JH SUPSER054.A/ SUPSER054.A2BACKUP/INTER/BLOCK=8192 [.A]*.* []SUPSER054.A/SAVE GOATHUNTER c4V1.5 _ALPHA::  _ALPHA$DKB100: V1.5  ,*[HUNTER.SUPSER.V54C.A]DOC_COMMON_FILES.TXT;1+,'./ 450-Y' 0123KPWO56 37AXv89GHJ!COMMON documentation files5SUPSER_TMP INSTALL_GUIDE.DECW$BOOK SUPSER_ROOT:[DOC]3SUPSER_TMP INSTALL_GUIDE.TXT SUPSER_ROOT:[DOC]1SUPSER_TMP INSTALL_GUIDE.PS SUPSER_ROOT:[DOC]5SUPSER_TMP SUPSER.DECW$BOOKSHELF SUPSER_ROOT:[DOC]5SUPSER_TMP LIBRARY.DECW$BOOKSHELF SUPSER_ROOT:[DOC]+*[HUNTER.SUPSER.V54C.A]DOC_PHOTO_FILES.TXT;1+,+(./ 4--Y' 0123KPWO56z׊7@OXv89GHJ!PHOTO documentation files-SUPSER_TMP PHOTO.DECW$BOOK SUPSER_ROOT:[DOC]+SUPSER_TMP PHOTO.TXT SUPSER_ROOT:[DOC])SUPSER_TMP PHOTO.PS SUPSER_ROOT:[DOC]0*[HUNTER.SUPSER.V54C.A]DOC_SUPERVISOR_FILES.TXT;1+,,(./ 41-Y' 0123KPWO56 ] R__CW>     R__CuX WORK_PTR1 WORK_PTR2PRTFILE_BUFFER PRTFILE_DESC P.AAV P.AAW R__C X PAUSE_CHARARG_LIST PS_BUFPS_DSC  R__C1 R__C < R__CC G 7^(잮ЏLIB$DISABLE_CTRLPW SYS$DCLEXHPP;LIB$GET_FOREIGNPW STR$CONCATHANDIN_CLI_TABLE CLI$DCL_PARSEPWW1k CLI$PRESENTPzԮ @Xd\@PT@H`LXTGET_IMAGE_INFOPL䟮XLIB$FORMAT_DATE_TIMEPWW W LIB$SIGNALH\XݏHANDIN$_VERSION LIB$SIGNAL1 0lP\ CLI$PRESENTP;dlhdd\ CLI$GET_VALUEPh$ if f$trnlnm("IGNORE_VERSION") .nes. "" then goto correct_vms-$ if vms_version .ge. 5 then goto correct_vms$ write sys$output ""\$ write sys$output " You must have VMS Version 5.x or higher to install V5.4 of ''product'."$ exit vmi$_failure$ correct_vms:%$ if f$trnlnm("SUPSER_INSTALL_DEBUG")$ then debug = 1$ else debug = 0$ endif$ say := write sys$output$!++$! purge and IVP$!--$ type SYS$INPUT, Supervisor Series v5.4b Installation SUPERVISOR and PHOTOG Copyright 1992, 1993 by Hunter Goatley. All Rights Reserved.A Redistribution for no commercial gain is permitted.$ VMI$CALLBACK SET PURGE ASK$ VMI$CALLBACK SET IVP NO$!++$! ask questions$!--$ type sys$input< The Supervisor Series is installed in its own rooted> directory to avoid mixing Supervisor Series files with@ normal VMS files. The directory can reside on any disk.= THERE ARE NO FILES COPIED TO SYS$SYSTEM, SYS$LIBRARY,= etc. (The only n/ SUPSER054.A Y' %[HUNTER.SUPSER.V54C.A]KITINSTAL.COM;1\$rjfile copied to a VMS directory is the9 Release Notes file, which is copied to SYS$HELP.)9$ IF f$trnlnm("SUPSER_ROOT","LNM$SYSTEM_TABLE") .eqs. ""3$ then supser_def_root = "SYS$SYSDEVICE:[SUPSER.]":$ if debug then say "DEBUG - Using default directory spec"S$ else supser_def_root = f$parse("SUPSER_ROOT:[000000]",,,"DEVICE","NO_CONCEAL")+-A f$parse("SUPSER_ROOT:[000000]",,,"DIRECTORY","NO_CONCEAL")2$ supser_def_root = supser_def_root - "[000000]":$ if debug then say "DEBUG - Using defined directory spec"$ endif1$ supser_def_root = supser_def_root - ".]" + "]"!$ VMI$CALLBACK ASK supser_root -< "Enter the top-level directory for the Supervisor Series" - "''supser_def_root'"A$ supser_root = f$parse(supser_root,,,"DEVICE","NO_CONCEAL") + -0 f$parse(supser_root,,,"DIRECTORY","NO_CONCEAL")"$ y = f$locate(".][",supser_root)'$ if y.ne.f$length(supser_root) then -/ supser_root = f$extract(0,y+1,supser_root) + -! f$extract(y+3,256,supser_root)"$ supser_root = supser_root - "]";$ define supser_root 'supser_root'.]/translation=concealed$!;$ if debug then say "DEBUG - Creating top-level directory"6$ VMI$CALLBACK CREATE_DIRECTORY USER 'supser_root'] -1 "/OWNER=[1,4]/PROTECTION=(S:RWE,O:RWE,G:RE,W:E)"$!%$! Find out what should be installed$!$ type sys$inputB The Supervisor Series is normally installed by linking theE object files packed with the kit. The installation will alsoA give you a chance to add DCL commands and on-line help to your system.B The sources are also provided. You can either install the@ products and the sources, or you can install the sources& only and rebuild them by hand.D If you only want to install the sources and want to skip theA product installations, enter YES to the following prompt.$ VMI$CALLBACK ASK - do_sources_only -F "Do you want to install ONLY the sources for the Supervisor Series" - NO B$ if do_sources_only$ then say ""?$ VMI$CALLBACK MESSAGE I PSKIP "Skipping product installations"$ do_sources = 1$ do_photo = 0$ do_supervisor = 0$ goto Start_Installing$ endif$ type SYS$INPUTC The answer to the following question will determine whetherA the appropriate source files for SUPERVISOR and PHOTO are installed.$ VMI$CALLBACK ASK - do_sources -A "Do you want to install the sources for the Supervisor Series" - YES B$ type SYS$INPUTD Documentation for the Supervisor Series comes in Bookreader,A PostScript, and ASCII text file formats. If you elect to> install the documentation, the files will be placed in SUPSER_ROOT:[DOC].$ VMI$CALLBACK ASK - do_docs -G "Do you want to install the documentation for the Supervisor Series" - YES B$ write sys$output ""$ VMI$CALLBACK ASK do_photo -% "Do you want to install PHOTO" YES B-$ IF .not. do_photo then goto Ask_SUPERVISOR$ type SYS$INPUT; The PHOTO and PLAYBACK commands can be added to the; system-wide DCLTABLES, making the command available@ to all users, or it can be defined as a foreign command."$ VMI$CALLBACK ASK do_photo_cmd -C "Do you want to add the PHOTO and PLAYBACK commands to DCLTABLES"- YES B$ VMI$CALLBACK ASK - do_photo_help -A "Do you want to add the PHOTO and PLAYBACK help to a library" - YES - B$ if do_photo_help$ then type SYS$INPUTB This installation updates the help library so that the DCLA command "$ HELP PHOTO" will provide information about theD PHOTO utility and "$ HELP PLAYBACK" will provide information# about the PLAYBACK utility.E There are several help libraries that these help files can be% placed in. Some of them are:' SYS$SYSROOT:[SYSHLP]HELPLIB.HLB>$ if f$trnlnm("HLP$LIBRARY","LNM$SYSTEM_TABLE").nes."" then -I write sys$output " ''f$trnlnm("HLP$LIBRARY","LNM$SYSTEM_TABLE")'"@$ if f$trnlnm("HLP$LIBRARY_1","LNM$SYSTEM_TABLE").nes."" then -K write sys$output " ''f$trnlnm("HLP$LIBRARY_1","LNM$SYSTEM_TABLE")'"@$ if f$trnlnm("HLP$LIBRARY_2","LNM$SYSTEM_TABLE").nes."" then -K write sys$output " ''f$trnlnm("HLP$LIBRARY_2","LNM$SYSTEM_TABLE")'"@$ if f$trnlnm("HLP$LIBRARY_3","LNM$SYSTEM_TABLE").nes."" then -K write sys$output " ''f$trnlnm("HLP$LIBRARY_3","LNM$SYSTEM_TABLE")'"$ write sys$output ""$$ VMI$CALLBACK ASK photo_help_lib -6 "Which library should have PHOTO and PLAYBACK help" -# "SYS$SYSROOT:[SYSHLP]HELPLIB.HLB" $ else photo_help_lib = ""$ endif$!$! Ask about SUPERVISOR$!$ Ask_SUPERVISOR:$ write sys$output ""#$ VMI$CALLBACK ASK do_supervisor -* "Do you want to install SUPERVISOR" YES B4$ if .not. do_supervisor then goto Start_Installing$!$ type SYS$INPUT= The SUPERVISE command can be added to the system-wide> DCLTABLES, making it available to all users, or it can> be defined as a foreign command on a per-user basis or in SYS$SYLOGIN.A For security purposes, it is recommended that the command< be defined as a foreign command on a per-user basis.'$ VMI$CALLBACK ASK do_supervisor_cmd -9 "Do you want to add the SUPERVISE command to DCLTABLES"- NO B$ type SYS$INPUTB This installation updates the help library so that the DCLE command "$ HELP SUPERVISE" will provide information about the SUPERVISOR utility.E Whether or not you elect to place the files in a library, theA files will be left in the Supervisor Series directory for future reference.$ VMI$CALLBACK ASK - do_supervisor_help -9 "Do you want to add the SUPERVISOR help to a library" - YES - B$ if do_supervisor_help$ then type SYS$INPUTA Unless the SUPERVISE command was added to the system-wideC DCLTABLES, it is not recommended that the help be installed> in the system help library (SYS$SYSROOT:[HELPLIB.HLB).B There are several help libraries that can contain the help! files. Some of them are:' SYS$SYSROOT:[SYSHLP]HELPLIB.HLB>$ if f$trnlnm("HLP$LIBRARY","LNM$SYSTEM_TABLE").nes."" then -I write sys$output " ''f$trnlnm("HLP$LIBRARY","LNM$SYSTEM_TABLE")'"@$ if f$trnlnm("HLP$LIBRARY_1","LNM$SYSTEM_TABLE").nes."" then -K write sys$output " ''f$trnlnm("HLP$LIBRARY_1","LNM$SYSTEM_TABLE")'"@$ if f$trnlnm("HLP$LIBRARY_2","LNM$SYSTEM_TABLE").nes."" then -K write sys$output " ''f$trnlnm("HLP$LIBRARY_2","LNM$SYSTEM_TABLE")'"@$ if f$trnlnm("HLP$LIBRARY_3","LNM$SYSTEM_TABLE").nes."" then -K write sys$output " ''f$trnlnm("HLP$LIBRARY_3","LNM$SYSTEM_TABLE")'"$ write sys$output "":$ supervisor_help_lib = "SYS$SYSROOT:[SYSHLP]HELPLIB.HLB"N$ if f$type(photo_help_lib) .nes."" then supervisor_help_lib = photo_help_lib$ VMI$CALLBACK ASK - supervisor_help_lib -6 "Which library should contain the SUPERVISOR help" - "''supervisor_help_lib'" $ else supervisor_help_lib = ""$ endif$!$!$!$ Start_Installing:$!$ type SYS$INPUTB No further questions will be asked. The Supervisor SeriesE installation will now continue for 2 to 15 minutes, depending; on your type of media and the system configuration.5$ if debug then say "DEBUG - Creating EXE directory"8$ if f$search("''supser_root']EXE.DIR") .eqs. "" then -8 VMI$CALLBACK CREATE_DIRECTORY USER 'supser_root'.EXE] -2 "/OWNER=[1,4]/PROTECTION=(S:RW SUPSER054.A Y' %[HUNTER.SUPSER.V54C.A]KITINSTAL.COM;1\$E,O:RWE,G:RE,W:E)"5$ if debug then say "DEBUG - Creating COM directory"8$ if f$search("''supser_root']COM.DIR") .eqs. "" then -8 VMI$CALLBACK CREATE_DIRECTORY USER 'supser_root'.COM] -2 "/OWNER=[1,4]/PROTECTION=(S:RWE,O:RWE,G:RE,W:E)"5$ if debug then say "DEBUG - Creating DOC directory"8$ if f$search("''supser_root']DOC.DIR") .eqs. "" then -8 VMI$CALLBACK CREATE_DIRECTORY USER 'supser_root'.DOC] -2 "/OWNER=[1,4]/PROTECTION=(S:RWE,O:RWE,G:RE,W:E)"5$ if debug then say "DEBUG - Creating SRC directory"$ if do_sources then -6 if f$search("''supser_root']SRC.DIR") .eqs. "" then -9 VMI$CALLBACK CREATE_DIRECTORY USER 'supser_root'.SRC] -3 "/OWNER=[1,4]/PROTECTION=(S:RWE,O:RWE,G:RE,W:E)"$!!$! See if v5.1(-1) is installed.$!N$ VMI$CALLBACK FIND_FILE SUPSER_TEMP 'supser_root'.EXE]ADVISOR.EXE "" "S" v51$ if v51 .eqs. "S"$ then v51_installed = 1$ else v51_installed = 0$ endif$!$! Provide the files$!5$ if debug then say "DEBUG - Providing startup file"N$ VMI$CALLBACK PROVIDE_FILE STARTUP_COM SUPSER_STARTUP.COM 'supser_root'.COM]$ if v51_installedO$ then VMI$CALLBACK MESSAGE I DELOLD "Deleting old OBSERVER/ADVISOR files...."/$ call delete_file 'supser_root'.SRC]SOURCE.B324$ call delete_file 'supser_root'.SRC]ADVISOR_CLD.CLD5$ call delete_file 'supser_root'.SRC]OBSERVER_CLD.CLD0$ call delete_file 'supser_root'.SRC]OBSADV.SDML3$ call delete_file 'supser_root'.SRC]SUPSER051.SDML5$ call delete_file 'supser_root'.SRC]SUPSERU1051.SDML5$ call delete_file 'supser_root'.DOC]OBSADV.DECW$BOOK.$ call delete_file 'supser_root'.DOC]OBSADV.PS/$ call delete_file 'supser_root'.DOC]OBSADV.TXT/$ call delete_file 'supser_root'.DOC]OBSADV.HLP/$ call delete_file 'supser_root'.EXE]OBSADV.CLD1$ call delete_file 'supser_root'.EXE]OBSERVER.EXE0$ call delete_file 'supser_root'.EXE]ADVISOR.EXE$ type SYS$INPUT@ If you installed the ADVISE and OBSERVE commands, and/orA added their help files to a help library, you must delete7 them manually with commands like the following:. $ SET COMMAND/DELETE=(ADVISE,OBSERVE)-1 /TABLE=SYS$LIBRARY:DCLTABLES.EXE-8 /OUTPUT=SYS$COMMON:[SYSLIB]DCLTABLES.EXE: $ INSTALL REPLACE SYS$COMMON:[SYSLIB]DCLTABLES.EXE> $ LIBRARY/DELETE=(ADVISE,OBSERVE) dev:[dir]helplib.HLB$ endif !if v51_installed$ if do_photo7$ then if debug then say "DEBUG - Doing PHOTO install":$ VMI$CALLBACK MESSAGE I LINKING "Linking image PHOTO...."H$ LINK/NOTRACE/EXE=VMI$KWD:PHOTO.EXE VMI$KWD:PHOTO.OBJ,SUPSER.OPT/OPTIOND$ VMI$CALLBACK PROVIDE_IMAGE SUPSER_TMP PHOTO.EXE 'supser_root'.EXE]=$ VMI$CALLBACK MESSAGE I LINKING "Linking image PLAYBACK...."N$ LINK/NOTRACE/EXE=VMI$KWD:PLAYBACK.EXE VMI$KWD:PLAYBACK.OBJ,supser.opt/optionG$ VMI$CALLBACK PROVIDE_IMAGE SUPSER_TMP PLAYBACK.EXE 'supser_root'.EXE];$ VMI$CALLBACK MESSAGE I LINKING "Linking image HANDIN...."J$ LINK/NOTRACE/EXE=VMI$KWD:HANDIN.EXE VMI$KWD:HANDIN.OBJ,supser.opt/optionE$ VMI$CALLBACK PROVIDE_IMAGE SUPSER_TMP HANDIN.EXE 'supser_root'.EXE]@$ if debug then say "DEBUG - Updating library ''photo_help_lib'"$ if do_photo_help then - VMI$CALLBACK UPDATE_LIBRARY - VMI$ - 'photo_help_lib' - HELP - "/REPLACE" - VMI$KWD:PHOTO.HLP5$ if debug then say "DEBUG - Providing PHOTO command"$ if do_photo_cmd then -, VMI$CALLBACK PROVIDE_DCL_COMMAND PHOTO.CLD$ endif$ if do_supervisor9$ then if debug then say "DEBUG - Installing SUPERVISOR"?$ VMI$CALLBACK MESSAGE I LINKING "Linking image SUPERVISOR...."+$ LINK/NOTRACE/EXE=VMI$KWD:SUPERVISOR.EXE -* VMI$KWD:SUPERVISOR.OBJ,SUPSER.OPT/OPTIONI$ VMI$CALLBACK PROVIDE_IMAGE SUPSER_TMP SUPERVISOR.EXE 'supser_root'.EXE]T$ VMI$CALLBACK PROVIDE_FILE SUPSER_TMP SUPERVISOR_IDENTIFIERS.COM 'supser_root'.COM]E$ if debug then say "DEBUG - Updating library ''supervisor_help_lib'"$ if do_supervisor_help then - VMI$CALLBACK UPDATE_LIBRARY - VMI$ - 'supervisor_help_lib' - HELP - "/REPLACE" - VMI$KWD:SUPERVISOR.HLP:$ if debug then say "DEBUG - Providing SUPERVISOR command"$ if do_supervisor_cmd then -1 VMI$CALLBACK PROVIDE_DCL_COMMAND SUPERVISOR.CLD$ endif-$ if do_sources_only !Only doing sources?2$ then do_photo = 1 !Want to include PHOTO and&$ do_supervisor = 1 !SUPERVISOR docs$ endif$ write sys$output "" $ if do_docsE$ then VMI$CALLBACK MESSAGE I INSTDOC "Installing documentation...."$ write sys$output "" $ VMI$CALLBACK RESTORE_SAVESET B$ write sys$output ""$ endif6$ if debug then say "DEBUG - Providing RELEASE_NOTES"A$ VMI$CALLBACK PROVIDE_FILE SUPSER_TMP SUPSER054.RELEASE_NOTES - 'supser_root'.DOC]9$ if debug then say "DEBUG - Providing DOC_COMMON_FILES"I$ if do_docs then VMI$CALLBACK PROVIDE_FILE "" DOC_COMMON_FILES.TXT "" T8$ if debug then say "DEBUG - Providing DOC_PHOTO_FILES"$ if do_photoI$ then VMI$CALLBACK PROVIDE_FILE SUPSER_TMP PHOTO.HLP 'supser_root'.DOC]C$ VMI$CALLBACK PROVIDE_FILE SUPSER_TMP PHOTO.CLD 'supser_root'.EXE]D$ VMI$CALLBACK PROVIDE_FILE SUPSER_TMP HANDIN.CLD 'supser_root'.EXE]G$ if do_docs then VMI$CALLBACK PROVIDE_FILE "" DOC_PHOTO_FILES.TXT "" T$ endif=$ if debug then say "DEBUG - Providing DOC_SUPERVISOR_FILES"$ if do_supervisorN$ then VMI$CALLBACK PROVIDE_FILE SUPSER_TMP SUPERVISOR.HLP 'supser_root'.DOC]H$ VMI$CALLBACK PROVIDE_FILE SUPSER_TMP SUPERVISOR.CLD 'supser_root'.EXE]$ if do_docs then -< VMI$CALLBACK PROVIDE_FILE "" DOC_SUPERVISOR_FILES.TXT "" T$ endif$ if do_sources@$ then VMI$CALLBACK MESSAGE I INSTDOC "Installing sources...."$ write sys$output ""!$ VMI$CALLBACK RESTORE_SAVESET C$ write sys$output ""8$ if debug then say "DEBUG - Deleting old source files"0$ call delete_file 'supser_root'.SRC]SUPSER.REQ4$ call delete_file 'supser_root'.SRC]SUPSER053.SDML9$ if debug then say "DEBUG - Providing SRC_COMMON_FILES"9$ VMI$CALLBACK PROVIDE_FILE "" SRC_COMMON_FILES.TXT "" T8$ if debug then say "DEBUG - Providing SRC_PHOTO_FILES"$ if do_photo then -8 VMI$CALLBACK PROVIDE_FILE "" SRC_PHOTO_FILES.TXT "" T=$ if debug then say "DEBUG - Providing SRC_SUPERVISOR_FILES"g$ if do_supervisor then -= VMI$CALLBACK PROVIDE_FILE "" SRC_SUPERVISOR_FILES.TXT "" Tn$ endif'$ if do_sources_only then goto SUP_DONEt$ type SYS$INPUT> To install the Supervisor Series images and define the; SUPSER_ROOT logical, execute the following command.2@ To automate this procedure at system startup, you shouldA also add the following line to the system startup commandk1 procedure (SYS$MANAGER:SYSTARTUP_V5.COM).$H$ write sys$output " $ @''supser_root'.COM]SUPSER_STARTUP.COM"$ write sys$output ""A$!++$! done_$!-- $ SUP_DONE: $ EXIT VMI$_SUCCESSD$ delete_file : SUBROUTINE5$ VMI$CALLBACK FIND_FILE SUPSER_TEMP 'p1' "" S foundu8$ IF found .eqs. "S" then VMI$CALLBACK DELETE_FILE 'p1'$ exits$ ENDSUBROUTINEet vmi$_failure$ endif$!$ SUP_INSTALL:$!++$! get product name$!--3$ v = f$ext(f$len(vmi$produc!*[HUNTER.SUPSER.V54C.A]PHOTO.CLD;1+,u'./ 4O-Y' 0123KPWO56ŮMJ7 Wv89GHJE SUPSER054.Au'Y' ![HUNTER.SUPSER.V54C.A]PHOTO.CLD;1O7!H! Copyright 1992 by Hunter Goatley. All rights reserved. PermissionK! is given to freely distribute and modify this software for no commercial5! gain as long as this copyright notice is retained.!define verb photo! image SUPSER_ROOT:[EXE]photo.exe qualifier buffer_size, default,' value (type = $number, default = 2) qualifier pause, nonnegatable, default,& value(type = $NUMBER, default = 4) qualifier version, nonnegatable qualifier input, nonnegatable qualifier off, nonnegatable+ qualifier abort, nonnegatable !3# qualifier statistics, nonnegatable qualifier log, nonnegatable, default,2 value(type = $FILE, default = photo) !2. disallow any2(version, off, statistics, log)define type def_type keyword record keyword inputdefine verb playback$ image SUPSER_ROOT:[EXE]playback.exe parameter p1, label = logfile, default,0 value (type = $infile, default = photo.log)C qualifier type, default, value (type=def_type, default=record) !2 qualifier output, nonnegatable, default,2 value (default = sys$output:, type = $outfile)' qualifier strip default !25! VAX/DEC CMS REPLACEMENT HISTORY, Element PHOTO.CLD7! *3 5-OCT-1992 15:21:52 GOATHUNTER "Added /ABORT"O! *2 5-OCT-1992 14:51:25 GOATHUNTER "Updated PLAYBACK definition for v5.4"E! *1 27-APR-1992 07:49:03 GOATHUNTER "CLD file PHOTO DCL command"5! VAX/DEC CMS REPLACEMENT HISTORY, Element PHOTO.CLD!*[HUNTER.SUPSER.V54C.A]PHOTO.HLP;1+,x'. / 4D -Y' 0123KPWO 56 K絖7] Xv89GHJ1 PHOTOA Starts terminal input and output logging to a log file. Can be? configured to record both input and output, or just terminal input. Format PHOTO [/qualifiers]! Command Qualifiers Defaults /ABORT' /BUFFER_SIZE=pages /BUFFER_SIZE=2 /INPUT2 /LOG=file spec /LOG=SYS$DISK:[]PHOTO.LOG /OFF! /PAUSE=number /PAUSE=4 /STATISTICS /VERSION 2 Qualifiers/ABORT? Terminates the PHOTO recording and automatically deletes the PHOTO log file. /BUFFER_SIZE /BUFFER_SIZE=buffer-size; Specifies the number of pages to use for buffering whileC supervising. By default, 2 pages are used. Up to 10 pages may beC specified. Additional pages are useful on heavily-loaded systems where PHOTO misses some data./INPUTA Specifies that an input-only log should be created. PHOTO willC only record characters typed at the terminal, not output writtenB to the terminal. The input log file can be fed to SUPERVISOR to, simulate user input for software testing./LOG /LOG=file-spec; Specifies the file specification for the PHOTO log file.= By default, PHOTO creates PHOTO.LOG in the current defaultA directory. Write access to the specified directory is required to create the log file./OFFC Terminates a PHOTO recording session. The log file is closed andB an informational message is written to the terminal to indicate the recording has terminated.@ PHOTO can also be terminated by logging out of the process or6 stopping the process using the DCL command STOP/ID./PAUSE /PAUSE=value; Specifies the ASCII value of the character to use as the? ``pause'' character to pause and resume logging. By default,D is used (ASCII 4). To change the pause character, simplyA specify the ASCII value of the desired character. For example,6 /PAUSE=2 specifies as the pause character. /STATISTICS< Displays statistics regarding the current PHOTO recordingB session. The information displayed includes the name of the logD file, the number of characters recorded, the number of characters0 missed, and whether or not logging is paused./VERSIONC Displays the version of PHOTO currently installed on the system.2 Description; When PHOTO is executed without any qualifiers, it startsB recording the current terminal session to a log file. RecordingD continues until the logging is paused (using the pause character)D or until PHOTO/OFF is executed (or the process is terminated). ByD default, PHOTO creates a log file called PHOTO.LOG in the current directory.A The log files created by PHOTO can be viewed and printed using the PLAYBACK utility.2 Restrictions? o RT devices (network terminals logged in via SET HOST over DECnet) cannot be logged.C o WT devices (UIS VT100 pseudo-terminals) cannot be supervised.> o PHOTO is not compatible with the following DEC products:@ Session Support Utility (SSU), DEC/Test Manager, ACMS, the' Terminal Fallback Facility (TFF). 1 PLAYBACKC Displays a PHOTO log file to an output device. Used to play backB a terminal session or convert a binary log file to a normal RMS file. Format PLAYBACK [log-file]! Command Qualifiers Defaults+ /OUTPUT=playback-file /OUTPUT=SYS$OUTPUT /STRIP /STRIP# /TYPE=type See below. 2 Parameterslog-fileC Name of the log file to be played back. If omitted, PHOTO.LOG in) the current default directory is used. 2 Qualifiers/OUTPUT /OUTPUT=playback-fileA Specifies the file specification for the output device. Can beA a full file specification or a terminal device name. If a fileA is specified, the default qualifier /TYPE=RECORD will create a normal RMS text file./STRIPD Specifies that all null characters (ASCII 0) and rubout sequencesA (character, backspace, space, backspace) found in the log fileA should be removed before display. Useful for removing the nullA character the precedes the DCL command prompt and for removing, characters deleted with the key.C By default, the characters are removed from the output file. Use0 /NOSTRIP to leave the characters in the file./TYPE { INPUT } /TYPE= { RECORD } { }: Specifies the format of the input file and output file.@ If /TYPE=RECORD is specified, the created output file will beC converted to a normal RMS text file. /TYPE=RECORD is the default* setting if an output file is specified.A If /TYPE=INPUT is specified, the log file being played back isC assumed to be an input-only log file (created with PHOTO/INPUT).2 Description> The PLAYBACK command displays a terminal session previously@ recorded by PHOTO. See PHOTO for information on how to record a terminal session.!*[HUNTER.SUPSER.V54C.A]PHOTO.OBJ;1+,o'.!/ 4!-Y' 0123KPWO 56`-絖7qdl489GHJ6PHOTOCLIV5.4b21-Apr-1993 16:0521-Apr-1993 16:05VAX Bliss-32 V4.6-902&PHOTOCLI MESSAGE_AST< LOCK_START P1_START  PROTO_STARTP[PHOTO logging resumed][PHOTO logging paused]Q`((('PD(XX SUPSER054.Ao'Y' ![HUNTER.SUPSER.V54C.A]PHOTO.OBJ;1!Q0Q (  INPUT_ONLY  BBUF_SIZE Q LAST_RMS_STATUS LAST_TIMER_STATUS  P1_ADDRESS  DEBUG_FLAG UINT_LEVEL_LOGGING  UMISSED_BYTES UB_COUNT UB_IPTR USIGNAL_PENDING  UOBSADV_SHUTDOWN  UCB_ADDRESS Q  PFN_ADDRESSPSYS$DISK:[]PHOTO.LOG PHOTO_FLAGINI$BRK EXEC_PATCH_P1KERNEL_REMOVE_PATCHJIGGLE_VECTORS INIT_PHOTO_P1 FREE_PHOTO_P1 CLI$PRESENT CLI$DCL_PARSE CLI$GET_VALUELIB$DELETE_FILELIB$DISABLE_CTRLLIB$ENABLE_CTRLLIB$GET_FOREIGNLIB$SIG_TO_RET LIB$SIGNAL OTS$CVT_TI_L STR$CONCAT CLI$_NEGATED CLI$_PRESENT CLI$_ABSENT CLI$_CONCATCLI$_DEFAULTEDPHOTO$_NOCOMMANDPHOTO$_NOTACLASSDEVPHOTO$_NOTLOGGINGPHOTO$_LOGGINGPHOTO$_HALFDOWN PHOTO$_DNFPHOTO$_VERSION PHOTO$_STAT PHOTO$_ISTAT PHOTO$_MISSED PHOTO$_FILE PHOTO$_FINI PHOTO$_IFINI PHOTO$_PAUSED PHOTO$_INIT PHOTO$_IINITPHOTO$_IABORTEDPHOTO$_ABORTED DATA_BASEDATA_END CODE_BASECODE_ENDPHOTO_CLI_TABLE SYS$BRKTHRUWP0  "  TERMINAL_DSC MESSAGE_DSC# P1_TERMINAL_NAME  P1_ON_MSG  P1_OFF_MSG( P1_UINT_LEVEL_LOGGINGL^P443 4,4n,434n4344|~|~} ~}~($~ SYS$BRKTHRUWffRMS_PUT SYS$PUT f [ SIZE START)P1BYTES_WRITTEN P1OUTRAB)P1LAST_RMS_STATUSRRR4P4"Ю (PSYS$PUTP4ЎRL4EXEC_FINAL_FLUSH  kY P1BBUF_SIZE9 P1UB_COUNT)P1BUFFER_BACKGROUNDI P1UB_IPTRwP4U4S4R4TbPe@@d@e~^bbbPe@@d@e~0w^#YSUPER_CHECKITOUT SUPER_CHECKITOUT!  ]P@$@0Y^P@P!7*DISCONNECT_AST *DISCONNECT_AST  * %; STATUSP1UOBSADV_SHUTDOWN P1LOGGING3 4Q4Pa` CHECK_LOGGING$ P1_END  PROTO_ENDP  C P1LOGGING4P`PTEXEC_PHOTO_STATS  N& k( P1_UINT_LEVEL_LOGGING P1BBUF_SIZE  P1UB_COUNT" P1UMISSED_BYTES P1BYTES_WRITTEN)P1LOGFILE_DESC P1LAST_RMS_STATUS P1INPUT_ONLY P1QUEUE_DESCP4R4Q4bТaС4Qa4R4Rá4QQR4D44P!xEXEC_PHOTO_OFF SYS$DASSGN SYS$CLOSE$  u4 P1CHANNEL9 P1LOGGING)P1OUTFAB$ W P4S4R<4~ SYS$DASSGNcR SYS$CLOSE / EXEC_PHOTO_ON IO$_SETMODE IO$M_OUTBAND SYS$ASSIGNSYS$QIOW SYS$GETJPIW SYS$SETPRV SYS$CREATE SYS$CONNECT SYS$SETPRVs  d PAUSE_CHAR P1_CHANNELP1_MESSAGE_AST P1LOGGINGyP1LOGFILE_DESCP1LOGFILE_NAMEiP1OUTFABݼP1OUTRABP1OUTXAB P1QUEUE_DESC P1QUEUE_NAME$   PROCESS_ITEMSقCUR_PRIVORG_PRIV RMSSTATUS TERMINAL_DSC@ CHAR_MASK " R__C$"; R__C$;!$ R__C$ R__CF   R__C8^P4Y444W4Z4V44X4[| QQ  (4&4|~~Y$ SYS$ASSIGNPլ%|~}~ݮ|~~ݏ IO$_SETMODE IO$M_OUTBAND8sXXVPW(WVm77 RMS_ERROR 7 F   ^ݏԮЬPP,"PP P<yPpЬP`PQ `Р terminal are echoed on the supervising terminal. In ADVISORB mode, SUPERVISOR also lets the supervising terminal enter input= on behalf of the target process; characters input from theA supervising terminal are inserted into the typeahead buffer of the target terminal.B SUPERVISOR can also be used to execute commands stored in input= files on other terminals, providing a useful mechanism for# automating simulated user input. Format& SUPERVISE [/qualifiers] terminal! Command Qualifiers Defaults" /ADVISE /NOADVISE# | /BROADCAST /BROADCAST' /BUFFER_SIZE=pages /BUFFER_SIZE=2- /COMMAND_CHARACTER=num/COMMAND_CHARACTER=4 /INPUT" /NOTIFY /NONOTIFY /PHOTO /WATCH /VERSION 2 Parametersterminal> Specifies the target terminal that is to be supervised. TheA target terminal cannot be an RT device (SET HOST over DECnet). 2 Qualifiers/ADVISED Specifies that SUPERVISOR should start in ADVISOR mode instead ofB OBSERVER mode. ADVISOR mode lets the user enter input on behalf of the target terminal.B The supervising user must hold the SUPSER_ADVISE identifier (or9 SUPSER_ADVISE_GROUP) to specify the /ADVISE qualifier. /BROADCAST /BROADCAST[=filename]= | Specifies that SUPERVISOR will trap any broadcast messagesA | received and write them to an external file for later viewing.9 | By default, broadcast messages (new mail notification,B | operator messages, etc.) are trapped and written to SUPERVISOR_C | BROADCASTS.LOG in the current default directory. The name of theD | messages file can be overridden by specifying the desired name as | a value to /BROADCAST. |7 | To disable broadcast trapping, specify /NOBROADCAST. /BUFFER_SIZE /BUFFER_SIZE=pages; Specifies the number of pages to use for buffering whileC supervising. By default, 2 pages are used. Up to 10 pages may beC specified. Additional pages are useful on heavily-loaded systems% where SUPERVISOR misses some data./COMMAND_CHARACTER /COMMAND_CHARACTER=value; Specifies the ASCII value of the character to use as the= SUPERVISOR command key. Values between 0 and 31 are valid,@ except 17, 19, and 26. This range includes all of the -A key combinations, except , , and . The! default value is 4 ().B To change the command character, simply specify the ASCII value? of the desired character. For example, /COMMAND_CHARACTER=18/ specifies as the command character.= All SUPERVISOR commands are two-key sequences, prefaced by@ the specified command character. For example, by default, theA combination will display brief help while inC SUPERVISOR. SUPERVISOR Commands shows the SUPERVISOR command key sequences.& NOTE> Selecting a command key that is already implemented as a< command function will effectively disable that option.= For example, selecting as the command key willB disable the ability to show on-line help, since pressing the@ command key twice in a row will send that character (ASCII( 8) through to the target terminal./INPUT: Specifies the name of an input file that contains input< characters that are to be entered on the target terminal.> SUPERVISOR will read the characters from the input file andA place them in the typeahead buffer of the target terminal; VMSC processes the characters as if they had been typed at the target terminal.C Because SUPERVISOR normally starts in OBSERVER mode, the /ADVISEA qualifier must be specified on the command line for the /INPUTC file to have any effect. The input file can have any RMS format.A PHOTO input logs, created with the PHOTO/INPUT command, can beB used as input files to SUPERVISOR. Because PHOTO input logs areD not normal RMS text files, the /PHOTO qualifier must be specified? with /INPUT to tell SUPERVISOR to expect the PHOTO input-log format./NOTIFYC Broadcasts a message to the target terminal notifying the target@ user that he is being supervised. By default, SUPERVISOR willA start in quiet mode, if the user has the privilege to suppressA notification. If the user does not have the privilege, /NOTIFY) must be specified to begin SUPERVISOR./PHOTOD Specifies that the input file (/INPUT=filename) was created using@ the PHOTO/INPUT command. PHOTO input log files are created inB a special ``binary'' format; the SUPERVISOR qualifier /PHOTO is0 required to tell PHOTO to expect that format./WATCH< Specifies that SUPERVISOR should continue supervising the> terminal after the /INPUT @Bb' Y' #[HUNTER.SUPSER.V54C.A]SQ^H_9IT%&] wu;1  T&kkBJjR$@#|jgI$!sYD0%V<۾Y<'֞i&ݠX]x>Tbl|ـ`(bUb\8fh6MA.RtiR3|ILsڼpz<~dS+Y  ly0O)ߞkǤƻj- m$*b=>G;b8:iLTFak| 吝M|/Y{Jrz-k;nBA%IZe}],s,piwm368`"sZDNf^_9 C;h [b 2C˙my\uܕ[Po{Y[gmg ^,u_a#aNZf۱tMFQu7^qLV @e Lw OŲ1؏5*,# Rcw[R$uhѽ6 s>j߻8|]sT.\CTuɆ Ln9B&$Yt Cʫ=hrdywZ)ZV(ˬY<.@VTCs,tLSuۋOC^ȗ[P #1ܽ22.eOsD)} m,:Zo*ƕMku(I}GMB |e{[_gxష xV| Z"!!{"I=t [VDljl65Ws{6:@(p\>s)uo76캜"Con(c(j?f@ zN*iTz낔GΓkʌ .CM 8B*'zYS/դ9a&=BcqS-D%v}!f va~J~_֖s@P*϶!ޛb:!s {)^a#7@'RrhL}mt9d%9W-@~Ѡ4d6I?' fL})iH!Z0x%m[_N?"JA8dA|qݓP3›tR]4tg9A4XM<3[Z=^֋m}Ӈ\ĢF&HDN#n_E z! 43!u{1Zu ;gۼf5}rbD@7B4Yg8k'~o  Ja>RU"XX,5G<פU+B5P  E}8qk-/{|Y|!"YsH qq 3+#R DG&ڝB%W8J4ֶKXƓ5UR MZM:_V;mOW+ŔZD "APFMM. v\v+W^0TQ;|WLy߄p'pfPBiPau=on`pYL-4YQи $DmD^[.'CukXKA 5<x#׿~y46->-s_8;98~4@y^ܪ+R9gekwn;JD\)[&}1 %݃XN{oLwh( 3 &nPqavKHU!+SYRĠl4픣5k^ Y>*q01YNQ<|.x``'h. c@lz(^XCUQcbL _7i_y rÃ`!DN ((=wB):},Y5jF8ɠW}TMDpIFS+?Ej~nӇͭ?z%#~DC2PPkvD7'D3 dWK2G^,ޙe~@9m  E5HP6cm¬КU!y+Xu cXfurTrAT 0p~xLV\:)"RW>^ހ{.+tdNXmVlؤB%}q #Ј- lRitì˳J/V4]P5+0xh_ňzuqG)Ӧ>I9/McLe駦2iLhGލPPOВ OzpQ·*2xmMh6x9guC)l|:]TFw 5˴PJO Zϓrw(K75ft R 7mm~['ӌ+ÿRdTX\bY*rѰ TgE޼zƺ,<JEZ&jh'(qRd3'.]t"%"B Gn~铹1q Ѫ)ovKF FuP޲\x>A}nՇ)Vqd߇̗‑x{k§7E Š~bm*V@0!s-l;f$kbٰi~xJe$ٞQV2| HKG5xċbw A!Xۜ~ ZF 0-B,-~{ߐb~St.I߲sQ?]wyfbNN+ 9 5'̯'<dZ7T ;NE>$dHR.@(W 9"J1tME:,7YKhu~X,4w_D7z\z@zWKF k@~8vE? LVu.>q2PTVD"L?;~=&+|yk^nkBW"5m'>C, 1IJU"OJM?(E71H:0`Zى",އӅ|-Q&*%ln-i ,0>}oaξ{cw*fm15a_~> X#tY*w)QEPN>/#gGbNb~V!+LVKf,Omg$?4 =軶-kKx:`rM)>WA# cni*z|(L vc=m =*o|?$8ji JG?ܣ!sxfQE[uSFE "qSrdqI 4"s]] CXSW(y<1.<(D :&gzPt^Ux1^plBF R]ih8t7ԩ`"YK&z:odr02[w 4ݮOB=o}0/x#HBX ktaRlJ_xIfQ8*k GLq~83Ti:" \A.e]q9^S5k9U[pu05'YZe4qUQT!;J; v#z>!RzYJQO^G&gEl$ͻbhH:hY"ǪFVeaHی|&`ltO#{3bj?5O|Y\w!58 7vR|9A|y&zML}mY~f؃@]pSim4WIXEsy /o[yV;ce&Ylm2_~6C8 }r8`ZnV"b 6B)MJG*] ;xF98OS[1OO7ywQ$p2vL:&?&Lpw -dt HJ;$1@ y2ɐ8! d__nydoz,._"Fw);0MK_i.8I"%0*YHESlv .rk$ю)a?wv{4ueOC"MQ:zْ=ILV×y%QOFw NZ".zeãA[0@(|1 0SL),i8=1vk yXX'>2o`b.KFk3_2꽩 o Tk[ !"Xr;]9U`=xqٰoʙhyAUq ӤWկ˯Nu+Ie2}n[vljWzwm5 R-P,({Ă9}e FcaW0mHD@.K$S2gt&+s[,w`r6'gs8 %f[eh a٘ʔ&ule2h1AE"3gTKDNVs'Q+IqkM;/O$bϤ`=\! 6fB4!'4 40s++rC &Ťj E{A_S;b.**rl:L?ieF~cTap%BewYR{]I{Ar] `+d F_m0*3`9k4;atld{j(eZ[b6{?cwu[o4:D>>b["+Qk/ ."+V5yV^DU!q!:\foVWn$ !r{N""p8!&K aP5k5bڋ){Ի/X/P<{ d6cq:FysKOl!C*銀Acx6Sip iREGʍ¤Z2W>m39vQДnفB D?! u#W/CO?26. O>z"h_CNDH /է֧.58 @(ryU[pOK -W ~ ?~D9BUL64?˕ pmvp3Y}M ;W +&y?NxJu[ԊtGbCX4?Q`m#ZG69C[}bff;(õI^O;Q4z.(%i4TWJ'Ӷ9d_f?=0oTvrQdzipg>燶7CrHiTLKM< QTy_Ҡ{"Ebkx[y w*2 `Mo9`:! Wv5؋Tp~JVU75en02;s y fZiI%%z10Ua6 S 8o{VS=9: ߦrn3z&YWvVRyKY$_CCI:O 8:7K.Ļ:N]o-0!yG&Ä8GCOsVT'Уk> @zYuD9LoJZO,mɬ="s$j=^3q'%3$%x~fP0)PCf +܏M Sg!9 s~1#7gJhDws=^xReCT7hD(0ɩC>(MQ5Y*$_. TP]vIS5}1d>xi ߳ X L<9mEM6@A&XzX|/vquu(:,}%sU][ػICmj3GF:&1$u{n<!zC$&cy4Sk0^nv1eTbmL',SfO4:aqcQf|kS*TPVË.wfpafmzing }8DrOggi:"rqilx`qd"phe9UTP`PTEXEC_PHOTO_STATS p ǀ SUPSER054.A' Y' &[HUNTER.SUPSER.V54C.A]SUPERVISOR.HLP;1Db:  file has been processed. Normally9 SUPERVISOR terminates after processing the input file./VERSION@ Displays the version of SUPERVISOR currently installed on the system.2 DescriptionB When SUPERVISOR is executed without any qualifiers, it connects= the supervising terminal to the target terminal and enters; OBSERVER mode. All characters typed and displayed on theA target terminal are echoed on the supervising terminal. If the> SUPERVISOR enters ADVISOR mode, any characters typed at the> supervising terminal (except the command key sequences) areA inserted into the typeahead buffer of the target terminal. VMS< treats the characters as coming from the target terminal.A Input logs created by PHOTO/INPUT can also be used as input to SUPERVISOR.B All SUPERVISOR commands are preceded by the character specifiedA on the command line as the /COMMAND_CHARACTER. By default, the@ command character is . Pressing the command character@ twice while in ADVISOR mode will force that character throughC to the target terminal. SUPERVISOR Commands shows the SUPERVISOR command key sequences.' Table Commands-1 SUPERVISOR Commands Key Description8 Toggle between OBSERVER and ADVISOR modes.8 Display brief help on SUPERVISOR commands., Toggle NOTIFY and QUIET modes.4 Display monitoring status information.! Spawn a subprocess.* Clear the supervising screenB Used as a key for the target terminal. Exit Supervisor2 Restrictions? o RT devices (network terminals logged in via SET HOST over# DECnet) cannot be supervised.C o WT devices (UIS VT100 pseudo-terminals) cannot be supervised.A o VAX 6xxx-series console terminals cannot be advised, though they can be observed.C o SUPERVISOR is not compatible with the following DEC products:D Session Support Utility (SSU), DEC/Test Manager, ACMS, and the' Terminal Fallback Facility (TFF).&*[HUNTER.SUPSER.V54C.A]SUPERVISOR.OBJ;1+,'.6/ 465h-Y' 0123KPWO656 /M絖7b-m489GHJ8 SUPERVISORV5.4b21-Apr-1993 16:0521-Apr-1993 16:05VAX Bliss-32 V4.6-902% SUPERVISORTERM_OUT PQQQLQQPD(x|Q`((('P $D(PSYS$DISK:[]SUPERVISOR_BROADCASTS.LOG!/!%D -- User !AS is !AS you!/$!/!%D -- User !AS is no longer !AS you!/)Ladvisingobserving b  LOCK_START P1_START  PROTO_START  INPUT_ONLY ADVISINGLPQQ L BBUF_SIZE P P1_ADDRESS T DEBUG_FLAG XUINT_LEVEL_LOGGING \ UMISSED_BYTES `UB_COUNT dUB_IPTR lUSIGNAL_PENDING pUOBSADV_SHUTDOWN Q t UCB_ADDRESS x PFN_ADDRESS PHOTO_FLAG SYS$CLRAST CLI$DCL_PARSE CLI$PRESENT CLI$GET_VALUESMG$CREATE_PASTEBOARDSMG$DISABLE_BROADCAST_TRAPPINGSMG$GET_BROADCAST_MESSAGESMG$SET_BROADCAST_TRAPPINGSMG$ERASE_PASTEBOARDSMG$DELETE_PASTEBOARDINI$BRKLIB$GET_FOREIGN LIB$GET_INPUTLIB$SIG_TO_RET OTS$CVT_TI_L STR$CONCAT MAKE_ADV_LOCK KILL_ADV_LOCK EXEC_PATCH_P1KERNEL_REMOVE_PATCHJIGGLE_VECTORSCHECK_PAGE_SIZES SUPER$_ADVNOW SUPER$_OBSNOWSUPER$_MONINFO SUPER$_HELPSUPER$_CTRLINVSUPER$_INVCMDCHARSUPER$_SPAWNEDSUPER$_NOADVPRIVSUPER$_NOOBSPRIVSUPER$_NOQUIETPRIVSUPER$_NOLOGOUTPRIVSUPER$_NOCONSOLESUPER$_RETURNEDSUPER$_RETURNEDMSUPER$_BCASTFILESUPER$_BCASTERRSUPER$_ILLSELFSUPER$_NOTACLASSDEVSUPER$_BADOPENSUPER$_VERSION SUPER$_EXIT SUPER$_EXITW SUPER$_STARTSUPER$_ALREADYSUPER$_MISLINKSUPERVISOR_CLI_TABLECTL$GL_USRUNDWN SIGNAL_EACHOUR_PRIVILEGE_MASK DATA_BASEDATA_END CODE_BASECODE_ENDSYS$QIOWP=  |/   -C SIZE ADDR STATUS SOFAR TOMOVE| ЬT1:SdQQUUTU:SdQQRRTRSPPRRPPUUPP<PPV|~|~P|~~<0~<~~ SYS$QIOWP P LIB$SIGNALU RVVTVЬS1a#SUPER_CHECKITOUT|PP SUPER_CHECKITOUT8  ) ? IN OUT |TRIESdBUF   CHARS_OUT CNT `Pà`RCl`PàLPP`Pd~àL~`PԠ1R`Pd~R`PRll1pt!`DISCONNECT_AST7 SYS$CANCELSYS$EXIT `DISCONNECT_AST+ `  / DISC_STATUS P1UOBSADV_SHUTDOWN$q}p4PP`<~ SYS$CANCEL SYS$CLRASTѬ$ЏSUPER$_NOLOGOUTPRIVPP~SYS$EXIT#ECTL_USER_RUNDOWN SYS$ASSIGN SYS$DASSGN4  M% l R4_REG R7_REG( P1_UINT_LEVEL_LOGGINGPSL L_CHAN  OLDRUNDOWN+ ^X4PP԰PPKERNEL_REMOVE_PATCH4CTL$GL_USRUNDWN4P`|~~ ( SYS$ASSIGNP   R/ % L_BCAST_MSGL_STATUS$;N^ݏԮ1j SYS$CREATEPRR SYS$CONNECTPRRR~ݏSUPER$_BCASTERR LIB$SIGNALRP#nЮSYS$PUT|~(?SMG$GET_BROADCAST_MESSAGEPRR RSMG$_NO_MORMSGP  READ_CHAR_ENDPSupSer-sub$ quietnotify ^A - Toggle ADVISOR/OBSERVER modeQ& ^H - Display this helpQ ^N - Toggle notify/quiet modesQ#@ ^T - Display monitoring status info(l ^V - Spawn a subprocess ^W - Clear the supervising screenQ& ^X - Toggle XON/XOFF for target$ ^Z - Exit SupervisorQ@HPDQ LIB$SPAWNSYS$QIOWSYS$QIOW SYS$SETPRV SYS$SETPRVSYS$QIOWLIB$PUT_OUTPUTLIB$PUT_OUTPUTLIB$PUT_OUTPUTLIB$PUT_OUTPUTLIB$PUT_OUTPUTLIB$PUT_OUTPUTLIB$PUT_OUTPUT4LIB$PUT_OUTPUTLIB$PUT_OUTPUTSYS$EXITP  ȹ)   D CMD_ADVISOR_CODE CMD_HELP_CODECMD_NOTIFY_CODECMD_STATUS_CODECMD_SPAWN_CODE CMD_CLS_CODECMD_XONOFF_CODE CMD_EXIT_CODE XP.ABN  FORCE_CHAR P.AAN P.AAO P.AAP P.AAQ HP.ABJ LP.ABK PP.ABL TP.ABM !e9MISSED SPAWN_MISSEDLOCAL_TTY_CHARS P.AAL P.AAM - R__C$-*W R__C$W!- R__C$ R__C$ R__C+*E  P.AAR P.AAS   8P.AAT P.AAU    dP.AAV @P.AAW   P.AAX lP.AAY %  P.AAZ P.ABA 2  P.ABB P.ABC F  P.ABD P.ABE S  8P.ABF P.ABG `  @P.ABH @P.ABI  XXOFFED!$  ^P0P,D1TDRRH1R(SMG$ERASE_PASTEBOARD1SR1H\4PS|~|~ |~}'~<~~ SYS$QIOWP P LIB$SIGNAL|~|~ \|~}#~<~~ SYS$QIOWP P LIB$SIGNAL|~,~ SYS$SETPRVP P LIB$SIGNALݏSUPER$_SPAWNED LIB$SIGNALгR (SMG$DISABLE_BROADCAST_TRAPPING|~|~|~|~|~ LIB$SPAWN~1(SMG$SET_BROADCAST_TRAPPING|~, SYS$SETPRVP P LIB$SIGNAL|~|~ |~}#~<~~ SYS$QIOWP P LIB$SIGNALRRݏSUPER$_RETURNED LIB$SIGNAL1RݏSUPER$_RETURNEDM LIB$SIGNAL1RW< PPP PPP(QZP(ݏSUPER$_MONINFO LIB$SIGNAL1R1Tݏ SUPER$_HELP LIB$SIGNAL@ LIB$PUT_OUTPUT8LIB$PUT_OUTPUT@ dLIB$PUT_OUTPUTLIB$PUT_OUTPUTLIB$PUT_OUTPUTLIB$PUT_OUTPUT@ LIB$PUT_OUTPUT8LIB$PUT_OUTPUT@LIB$PUT_OUTPUT1RO@?ݏ SUPER$_ADVNOWݏ SUPER$_OBSNOW LIB$SIGNAL<1DQ1H1R5&XPPPDXXTvLeR< xQϤSYS$EXITLR8@(< DQxQq<<PTDTGDH D1*DLHPX READ_CHAR SYS$QIO   R__C,8N|~|~D~Pz~<~~ SYS$QIOP P LIB$SIGNAL9 STUFF_CHAR:\PQ`d ADVISORP   I@H@~H@(ADVISORP<97 OPEN_AI_FILE, SYS$CLREFSYS$OPEN SYS$CONNECT! 7 ɁFNM 9 R__C$9 a R__C$a q R__Cq z SYS$CLREFP P LIB$SIGNALЬP`Р|SYS$OPENP SYS$CONNECTPPN TYPFUL UCB_ADDRESS   1 UCB_ADDRESSUCB VALUE UCB_ADDRESSPP  PAUSE_PERHAPS\Pig SYS$SETIMRP&    ID  LOOPBUF \P.ABO ULP`!/~(HL~<~ӟ\ SYS$SETIMRE GET_A_RECORDSYS$GET SYS$CLOSET  # <SYS$GETP<<z | SYS$CLOSE<<P(x<HxLlpxP @HH~-P v STUFF_AI_FILEdPadvising done... np=!XL AD=!XLdstuffing about to be paused... np=!XL AD=!XL,stuffing done ... np=!XL AD=!XL SYS$CMKRNLSYS$FAOLIB$PUT_OUTPUTSYS$FAOLIB$PUT_OUcf0G SUPSER054.A'Y' &[HUNTER.SUPSER.V54C.A]SUPERVISOR.OBJ;16NTPUTSYS$FAOLIB$PUT_OUTPUT SYS$CLOSE SYS$SETEFvPf v ?W  g K=4 HSHIT STATUS NUM_PROCESSED VOUT_BUFOUT_DSC P.ABP dP.ABQ2f VOUT_BUFOUT_DSC P.ABR P.ABS2 VOUT_BUFOUT_DSC P.ABT P.ABU$2    R__C  ^tlLPRR11 ~ SYS$CMKRNLPf@H@~H@(ADVISORPRHLH H<$R2<nH SYS$FAO^LIB$PUT_OUTPUTR$Dt2<nH SYS$FAO^LIB$PUT_OUTPUTPl12<nH SYS$FAO^LIB$PUT_OUTPUTRz%; SYS$CLOSER SYS$SETEFP P LIB$SIGNALRP$ USER_EXIT_HANDLERI SYS$CANEXH SYS$CMEXEC SYS$CANCEL SYS$CLOSESYS$QIOWD   5kP_REASON ACCMOD EXIT_REASON)MISSED L_ARG_LIST?, L     R__C !-^\4PR|^ SYS$CANEXH SYS$CMEXEC\h1<~ SYS$CANCELb&ղݏ SUPER$_EXIT LIB$SIGNALݲݏ SUPER$_EXITW LIB$SIGNAL" SYS$CLOSEݏSUPER$_BCASTFILE LIB$SIGNAL -|~|~ \|~}#~<~~ SYS$QIOWP P LIB$SIGNAL KILL_ADV_LOCKмP$ EXEC_EXIT_HANDLERP P#     EXEC_EXIT_CALLED\Pl ,  EXEC_DECLARE_EXIT_HANDLER P SYS$DCLEXH P   EXEC_EXIT_DECLARED  %| SYS$DCLEXH  SUPERVISORPBROADCAST BUFFER_SIZE COMMAND_CHARACTERINPUT,NOTIFY<PHOTOLTERMINAL\VERSIONlWATCH|SUPERVISE TTADVISE_OPA0:q$uietnotify CHECK_TERMGET_SUPER_PRIVS SYS$GETJPIWGET_IMAGE_INFOLIB$FORMAT_DATE_TIME SYS$ASSIGN SYS$ASSIGN LIB$CVT_DTB SYS$GETSYIW SYS$DCLEXH SYS$CMEXECSYS$EXITSYS$QIOW SYS$PARSEcSYS$QIOWSYS$QIOW SYS$CMKRNL SYS$CMEXEC SYS$WAITFRSYS$EXIT SYS$HIBER P    H             PRIVS TARGET_CHAN ROWSCOLUMNS L_BUF_SIZE JPI_ITEMSOUR_UIC STATUSټ DCL_CMD_LINE CLI_BROADCAST P.ABV P.ABWCLI_BUFFER_SIZE P.ABX P.ABY$CLI_COMMAND_CHARACTER $P.ABZ P.ACA4 CLI_INPUT 4P.ACB ,P.ACCD CLI_NOTIFY DP.ACD <P.ACET CLI_PHOTO TP.ACF LP.ACGd CLI_TERMINAL dP.ACH \P.ACIt CLI_VERSION tP.ACJ lP.ACK CLI_WATCH P.ACL |P.ACM DCLCMD P.ACN P.ACO TT_D P.ACP P.ACQ P.ACR P.ACS RIP.ACT P.ACU P.ACV P.ACW P.ACX   $$ITMBLKPTRF  R__C$    _X#  R__CY  R__C CONTEXT LINK_TIME@tNAME_BUF@@4 IDENT_BUF@@TIME_BUF@ IDENT_DSCNAME_DSCTIME_DSC   R__Cu=  R__C$= X  R__C$X  D < L_BUFSIZE_BUF 4 L_BUFSIZE_DSC   R__C8 R__C0QIOSB STATUS CPU XCPU٘ SYI_ITMLSTD 0 $$ITMBLKPTR+N R__C$  R__C5 d) R__C$!- R__C$-S R__Cx=8 AI_FILE_NAME0AI_FILE  R__C [F%"LOCAL_TTY_CHARS E F R__C$F*t R__C+t*XO R__C1 R__C$  R__C$  R__C<%_ h qμ^ЏԭtPNLIB$GET_FOREIGN STR$CONCAT LIB$GET_INPUT LIB$GET_INPUTSUPERVISOR_CLI_TABLE CLI$DCL_PARSEPUUUz11vPЏ ЏԀЏ4Џ,||~~|~~ SYS$GETJPIWP:  QQPPQ @GET_SUPER_PRIVSP@OUR_PRIVILEGE_MASK@$@@@ ݏSUPER$_NOOBSPRIV LIB$SIGNAL,QP4,80t CLI$PRESENTPxԮ@0x4@(t,@ 8$0,GET_IMAGE_INFOPn^$0LIB$FORMAT_DATE_TIMEPUU U LIB$SIGNAL 40ݏSUPER$_VERSION LIB$SIGNAL1rR CLI$PRESENTP!@ ݏSUPER$_NOADVPRIV LIB$SIGNAL|~~ SYS$ASSIGNP|~~ SYS$ASSIGNP CLI$PRESENTP8x΀|x| CLI$GET_VALUEP ΀<΀~ LIB$CVT_DTBP ծ Ѯ  TT$ CLI$GET_VALUEP1HT OTS$CVT_TI_LHHRRRakuݏPSUPER$_INVCMDCHAR@L_ݏSUPER$_CTRLINV LIB$SIGNALP[LF\L<]L2`L(_L@HLHDLT((d CLI$GET_VALUEP@(( CHECK_TERMPUUUDUPЏSUPER$_NOTACLASSDEVPT-(,TT1PЏ ԀЏ ||~|~~ SYS$GETSYIWP<Ty$z Х,PРPyxPb$TUQ TTY$GL_DPTP<"SPS(cDQU(P OUR_GETNEXTRPRPc PUРPPcUQ}(Р4 }РTP> p CODE_END  REAL_NPAGE  NPAGESIZE  NPAGEADDR  < DATA_END  PROTO$01PROTO$01  PROTO$02PROTO$02 ww1&絖01-0006PHOTOP101-00021-Apr-1993 16:0421-Apr-1993 16:04VAX Bliss-32 V4.6-902'PHOTOP1 INIT_PHOTO_P1X P, PPHOTO$P1_REGIONQLNM$PROCESS_TABLEQP1_STARTP1_END P1_ADDRESS CTL$GL_PPMSGCTL$GW_PPMSGCHNCTL$GL_CTLBASVA SYS$CMKRNL SYS$CME=XECP  INIT_PHOTO_P1!  G W STAT   R__C) $ _^P$ЏP1_ENDP1_START436n^ SYS$CMKRNLP ~ SYS$CMEXEC!22CHECK_IF_MAPPED4P SYS$TRNLNM2P3 2 \%  dK STAT L_CHECKSUM ITEM_LIST 4P.AAE J  >R__C"Jj I <^(4 ~ SYS$TRNLNMP(QP@RRQPQ  P1_ADDRESS P P_ GET_P1_SPACE[ SYS$DELTVA SYS$EXPREG SYS$LKWSET SYS$SETPRT SYS$CRMPSC SYS$SETPRTI  :/ L_NEW_PPMSG L_TEMP  R__C$? R__C$ I R__C$ R__C$K R__C$K&)t R__Ct<^ CTL$GL_PPMSG CTL$GL_PPMSG3CTL$GL_CTLBASVA|~ CTL$GL_PPMSG SYS$DELTVAPl SYS$EXPREGPPP @P,nPP@QQP SYS$LKWSETP{}~|~ SYS$SETPRTPhCTL$GL_CTLBASVA CTL$GL_PPMSGTЏ@nn|~~<CTL$GW_PPMSGCHN~|~~ݏ(, SYS$CRMPSCP#}~|~ SYS$SETPRTP}n CTL$GL_PPMSGnCTL$GL_CTLBASVAP INIT_HEADERDP SYS$CRELNMP&    - ITEM_LIST DP.AAF  AR__Cj<^(D ~ SYS$CRELNMP  P1_ADDRESSP C FREE_PHOTO_P18 SYS$CMKRNL SYS$CMEXEC  FREE_PHOTO_P1,    R__C R__C+  <PP~ SYS$CMKRNLP ~ SYS$CMEXEC( EXEC_FREE_P1 SYS$DELLNM  B   '^  SYS$DELLNM DEL_P1_SPACE SYS$ULWSET SYS$DELTVA*    R__C$ + R__C+ y|~ SYS$ULWSETP(|~ SYS$DELTVAPCTL$GL_CTLBASVA CTL$GL_CTLBASVAP ;PRT$C_UR SEC$M_EXPREG SS$_NORMALPRT$C_UW PSL$C_USER C SS$_ACCVIO SS$_WASSET PSL$C_EXEC LNM$_STRINGCHECKSUMCS_BYTES  RETRANGE_DESC P.AAD ,P.AAC LOG_TABLE P.AAB P.AAA LOG_NAME OUR_P1_SPACE  CTL$GL_PPMSG CTL$GL_PPMSG$OWN$$OWN$T$PLIT$$PLIT$TT$CODE$$CODE$TXUEB-~̌1HUNTER$USER:[HUNTER.SUPSER.V5 D4B.NEW]PHOTOP1.B32;1 &2QQQ=QQ2ww1 #&絖01-0047PHOTOPAT01-00421-Apr-1993 16:0421-Apr-1993 16:04VAX Bliss-32 V4.6-902*PHOTOPATALLOCATE_MEMORYINI$BRK SCH$IOLOCKW SCH$IOUNLOCKSUPER_CHECKITOUTDISCONNECT_AST OUR_GETNEXT OUR_PUTNEXT_2 OUR_PUTNEXT OUR_STARTIOOUR_DISCONNECTSTUFF STUFF_OBS PHOTO_FLAG HAVE_CHANE INPUT_ONLYSTUFFERPB LOCK_STARTUB_COUNTUB_IPTR UMISSED_BYTESUSIGNAL_PENDINGUINT_LEVEL_LOGGINGUOBSADV_SHUTDOWN UCB_ADDRESSP1_START P1_ADDRESS PROTO_START PROTO_ENDOUR_PORT_VECTOROUR_PIDOUR_ASTOUR_AST2 BBUF_SIZE MISSED_BYTESSIGNAL_PENDING SIGNAL_EACHCURRENT_BUFFERBUF_SIZE BUF_COUNTBUF_PTRBUF_IPTRINT_LEVEL_LOGGING CODE_BASECODE_END PFN_ADDRESS DATFA_BASEDATA_END S0GETNEXT NPAGEADDR REAL_NPAGE NPAGESIZEEXE$ALONONPAGEDB0_BUFB1_BUFADVISINGP&  ЏDATA_END DATA_BASE4337QEXE$ALONONPAGEDRTRˏR NPAGEADDRT REAL_NPAGE NPAGEADDRRB0_BUF DATA_BASE4RQQBUF_PTRQBUF_IPTRB1_BUF DATA_BASE4RQQBUF_PTR3QBUF_IPTR3<#BUF_SIZE3<BUF_SIZErr KERNEL_MAPMMG$GL_SPTBAGSE r ":ˏPP PPMMG$GL_SPTBASEQ@aPP P+4PFN_MAPQPHOTO-F-BUGCHECK, npageaddr/p1_address not page aligned !XL !XLQ?PHOTO-F-BUGCHECK, DATA_BASE NEQA P1_START !XL !XLQ1]LIB$PUT_OUTPUTSYS$FAOLIB$PUT_OUTPUTSYS$FAO SYS$CMKRNL SYS$CRMPSCf 4 IW  /  ^Z(H^螭[ NPAGEADDRPP P1_ADDRESS=<n P1_ADDRESSP jSYS$FAOP P LIB$SIGNAL^LIB$PUT_OUTPUTPT[ DATA_BASEQP1_STARTPQPN<nP1_START DATA_BASE RSYS$FAOP P LIB$SIGNAL^LIB$PUT_OUTPUTP P LIB$SIGNAL<P P1_ADDRESS NPAGEADDRЬXDATA_END DATA_BASE4 NPAGEADDRPѭP1ԭĞ̭ЭЭPPP؟! SYS$CMKRNLP^<Y WV,YWf YVYW,Wf|~I|~~ SIGNAL_EACH ЏPPɏP~؟ SYS$CRMPSCP1Z SIGNAL_EACHЭؼЭܼZ[12P  EXEC_PATCH_P10B0_BUFB1_BUF  EXEC_PATCH_P1,    P1_ADDRESSPUB_IPTRP1_START4Q BBUF_SIZE BBUF_SIZEP1_START4 UCB_ADDRESS UCB_ADDRESSP1_START4 S0GETNEXT S0GETNEXTP1_START4 PFN_ADDRESSSSIGNAL_PENDING DATA_BASE4SUSIGNAL_PENDINGPি SUPSER054.Ad' Y' "[HUNTER.SUPSER.V54C.A]SUPSER.OLB;1PwIJ1_START4 MISSED_BYTES DATA_BASE4S UMISSED_BYTESP1_START4INT_LEVEL_LOGGING DATA_BASE4SUINT_LEVEL_LOGGINGP1_START4 BUF_COUNT DATA_BASE4SUB_COUNTP1_START4 NPAGEADDRTTBUF_IPTRRSRaT>BUF_IPTR3RSRUINT_LEVEL_LOGGINGP1_START4P!JIGGLE_VECTORSQ LOCK_STARTu SYS$LKWSET SYS$LCKPAG SYS$CMKRNL SYS$CMEXEC SYS$CMKRNL SYS$ULWSET JIGGLE_VECTORSS  DK \ ϢY BBUF_SIZEX PFN_ADDRESSW SYS$CMKRNLV^, ~ SYS$LKWSETP |~ SYS$LCKPAGP}f Ь UCB_ADDRESSЬ  fP( SIGNAL_EACH WݬinЬgB SYS$CMEXECЂBUF_SIZEQ PHOTO_FLAGQhBUF_SIZE3Qh P1_ADDRESSP~PfP LOCK_START |~ SYS$ULWSETo INSERT_PATCH CTL$GL_PCB SMP$ACQUIREL SMP$ACQNOIPLL SMP$GL_FLAGS SMP$RESTOREL SMP$RELEASEL SMP$GL_FLAGSOUR_XONOUR_XOFF SMP$ACQUIREL SMP$ACQNOIPL SMP$GL_FLAGS SMP$RESTOREL SMP$RELEASEL' SMP$GL_FLAGSEXE$DEANONPGDSIZ o }q$     PB3[OUR_PORT_VECTORZЬV1 Ц(QY SMP$GL_FLAGS QP SMP$ACQUIRELᚡPP(Xh,Wg4k SMP$GL_FLAGS Ц(P SMP$RELMEASELYݬ0#^P   P1_ADDRESSY SMP$RELEASELX SMP$GL_FLAGSWiP S0GETNEXTP1_START4U UCB_ADDRESSRUOBSADV_SHUTDOWNP1_START41 Т(QVg QP SMP$ACQUIRELPP TTY$GL_DPTP<"TPT(dg Q(Ph<PRS(QQeQd QSСQQdgТ(PhDPSR}(С4 }СgТ(PhVÏ OUR_GETNEXT CODE_BASE4eQ CODE_BASE DATA_BASE4iP)CODE_END CODE_BASE4&a`3 NPAGEADDR OUR_GETNEXT4eQÏ OUR_GETNEXT DATA_BASE4ePaPЏZDATA_END DATA_BASE4337Q REAL_NPAGEPEXE$DEANONPGDSIZP P,P *! LIB$SIGNALPROTO$99PROTO$99*PROTO$97PROTO$97*3^PQP R1_START4Q]Qww1@*&絖'01-001' =PHOTO_CLI_TABLE'01-001' 21-APR-1993 16:04-VAX/VMS Command Definition Utility (V4-001) PHOTO_CLI_TABLE CLI$TABLESP  PHOT ,(T PHOTO0* BUFFER_SIZE2($PAUSE4(VERSION$ SINPUT$OFF$@ABORT,l STATISTICS,"LOGPHOTO    @ l ww1-&絖'01-001' @PLAYBACK_CLI_TABLE'01-001' 21-APR-1993 16:04-VAX/VMS Command Definition Utility (V4-001) PLAYBACK_CLI_TABLEx CLI$TABLESTP| x PLAY ,,`X PLAYBACK4!!)P1LOGFILE PHOTO.LOG,#TYPERECORD4%OUTPUT SYS$OUTPUT:$STRIP,DEF_TYPE(TRECORD$INPUTww1`E2&絖06 PLAYBACK_MSG021-APR-1993 16:0421-APR-1993 16:04UVAX-11 Message V04-00k$ABS$i MSG$SECTIONMSG$AAAAAAAAAAAMSG$AAAAAAAAAABMSG$AAAAAAAAAAC0lPLAY__CLOSEOUT(l PLAY__CLOSEIN"lPLAY__WRITEERRl PLAY__READERRl PLAY__OPENOUT l PLAY__OPENINlPLAYBACK$_FACILITYPeP*P'Pi(\`8{l`ll l(l0l.,OPENINerror opening !AS as input.OPE VNOUTerror opening !AS as output$READERRerror reading !AS$WRITEERRerror writing !AS,CLOSEINerror closing !AS as input.CLOSEOUTerror closing !AS as output lPLAYBACKww1@6&絖01-0025ADVSOR01-00221-APR-1993 16:04 VAX MACRO V5.4-33MACRO/NOLIST/OBJECT=ADVISORMAR.OBJ ADVISORMAR.MARcode for spying ADVSOR CTL$GL_PCB IOC$SEARCHDEVLIB$SIG_TO_RET SCH$IOWLOCKR SCH$IOUNLOCK SMP$ACQUIREL SMP$GL_FLAGS SMP$RELEASEL SS$_ACCVIO SS$_INSFMEM SS$_NORMAL SYS$CMKRNL SYS$LCKPAG . ABS . . BLANK .P$ABS$+PPPPPPQ-4stuffing start. r0 = !XLM545stuffing end. r0 = !XLmU4Ulocating ucb. r0 = !XLu4uactual size = !XL4going into k-mode. r0 = !XL4returning from k_mode. r0 = !XLQd Xd @ADVISOR&LIB$SIG_TO_RETmϺϩ SYS$LCKPAGP1jlռЬ PРϊ<`ωσs SYS$LCKPAGP14լl SYS$CMKRNLP1l SYS$CMKRNLl=P5PЎP  LOCATE_UCB&u~ CTL$GL_PCBT SCH$IOLOCKRЬQԼ IOC$SEARCHDEVPQP SCH$IOUNLOCKЎPڎ SS$_ACCVIOP JAM_HIM&ݏiмUꑥ Ь QСPP1;ݺއi;?Sl?˲~v}L=Y,27^l֟p&5~ZnoaG{D,z+yHEL3KWB Iߕa($ɬL\8{>PHb\GUvZSY`w2/g@@=-MQX VzP̋ڜ ]w^߱@|a,E7vv; Z|dm׾D.Ez_]ԦH߈'KUYv(A]_EC~PEg4Fw{ղU?\i   qr S ׫y{ҫM]Ц!k.=y[Po=FWg oOV b#;v1iW!xP?CeMy7$vCWAEbLYB6K>QޱݼZQ+s[D([R&V#ZܓTP셇XQBYR y~_[% |n`Po塰ib^;Vɟ¦ WZZ,^H+5v#̒;ޥS?1SL|SёGSmܪ%Uzt@%BI7HM>!n.* *1jBXO ~ÿ5C5^VpQXܸxuSsvÂ8$ks8 UÔuUY\sz[+5 N+Lm[Ы[frx}q%HUDIl=Z2%dhgZ+W#˶*<jq*57F>=dNC8ד+יP-(1ׅ{ق#0,(&1"+9&1`i%(2b1w=H0pvV1a|&}³s2zB3_@t+JCi?|ʉ.5@W`FC!E $Nf/ӓOYF/#fa۬t1a+kI hݳtԈe޵U !5?aJÛ1A"T]$j' y"<[^A % CkȨz븜^/IE= fDFk?yٟ?-jj:wx \HǓ\\A;ZL2FkmVGJAM XQɊ݂f.訃+|&F<2[U/4>4z?]u]*o\'+/ %5.b|qt0e+Ն>:f(}v+U.Hh^Q%hCb+2^\x-v ,+ɧnx^2Wagօn R4)l슙qSxQ/j*28 `+<35X?m60^[S'Vt"SЊʈk0"NpbJaQF.;kzlk,b-uEዺ7Ja^wҁd ӄ~h2.6~K{sC<.Bsez]G,GkHn=EsuOc%cik3c+=g@|cxOKc8L9vG0q|p01JK)[I<E*.0+ "B-|.7K[ʴ*&v>RLK->RgD<_?aAg(f_.rGIZT+VbY:ɜ=RWP$)4Y$@i#p5$􅯉#bcj2VЅ&KI6xBeCzC&M K"YMN|;h)xI.?\%%Y HhĖ}[?zxynfL2z1u@Pi (N$OVsn >5jNJc6;A+n^QZ>PfRHh{^W _"l-s3Hx+'*&ؖ,u\Y i=ƚxA1Y/ \lJ-.!J MTBE RLFTB[+bO4uv 'SM2[cE=UBLN"eа M"?`gHI_$OOG^\X48Zɞ2m>BG' >C `oLB_JQ" Yb S ( FMIj,=OO|Y[>b,"I09sWE'G&";'%NGh#Xn }Sz#"\9'0 0W hDߎMej3;^R (^A&%ȽWD}O)ꩼڱpFNJJi;^ޑUQ/.a[/O؊]OY.|CO}1\QF ! t)Ԋ݂ E|[r,n%X]L#Fp*H<f㮡rln}^\1ޏx=Dp+THvwN >s1:"3SGXNa-7; _lctznba j^ CCT@e?87\SQjaN~6gTN|FT9GZ9pM5[=XѫYZQ|"i R_Kxf rN&#TVWV'j  CB PR^# $]׊ Cc_t@$U4em TbxTI!@g+Nia\g@CEUt^o;8JCk$CW}MQRmMEW 6=Wq~JEGTY*mAAKپɀ vKM)Uim z[EIQdRm"/nQɿR0KZTQI)~wC31LIzH7>QY 6/K JKW=Q`6K쌝??I} QVHI6k 2^A< E/ns: "̏ ny -FXf?t$9eP,خ3)b}6X+v|ZEbPWzF {k!md1~bbx{%RrFT!h0 ;[0]vU@;S ,gᨋe%F4mV@$-RelU%O_yTWDG3qzZ=])}+~bGx_J7QAjε% RU{FS,hCYRJK\wKS+KH~YԹ7hY 'e56qðC2aM0PZNW/}o>2"ษS[,W@PAiYcd _[jAR KWNEd\ 3~nв_YWY"UQ єrj0}f wj Y `]L}2W1N\@M L-ۣ<-#pJ5]Yᖮ&ITW R=x:I(K6-2%k}bLB4(ÇTB|$h^}8Y;_o\L@kIV _!zO ޙa/rz r'ۨhe("҆rⲎj-=>UrSL u29kwf-ʔ7Di8[SUMVD@CE)Y=_Uy FJ&KCN0+ޝ^=w{#HwQӯ'6JC ϼ\){n_va'fPJHQzPTH܁PZO|[&$sl'حh46De%lso$s_S+@J+vq)u(ocG8PkA=ke"}y&iHJHCa> W6p3ZcB3x3Ҽ E0iOe+_ҋS!D%]DYxM㣄xce֦[v^C HFYZA SEEVwwt ]@YD:JDNrPQ op3W125u![70R]%7r@kEJ [OVzo}NCMwQ^D}b5FfFEvYB }4<Aw\ ?dZ%y)R%+.%EvbHzβP\q2ODWTB%O'b]P-2^)D\]1-Y % ]M =4[+(a(3L"J' `965O ՌZKE҆nhucIٲ6IMN`:g73O ì.u\e_d7'N 9٪NȠU GJpOZco])(i+S۽e?;%e=kf|w\\v )sM+V*&ovI®E<_/ K S[o 5<ݭ"ws Jjvc.XVF+UbZJ)UNJ 37ebQ V\iHd'8SLMXHKikeQ~Xzk}UŪ?}9YN B9tC\!j/GZ4ESYU1|/{׍|??4Rα;L+mD8ˁ5Q+V 7;9nBoW"oV2IV$9GL%i,ڶr8 ,אPG:O,;ɝb:>a )PjFFOeasI.բ^)0"Xr ߻ܲ1FPKkP%=9e|E@s~ԫL-؋N(!Xa—F@V"G3'#dsTls 2^ r" ThOƒQ DRM`}DZHOů唩%iS#IPV*~oBteCG)1?i46* Wz\@?h3KWFUg~@ IGMNQ&ϙܬ_nMS PT<`?T:X/ D@*}m c}Df +hO*m)(fg,kJGp?oRy:z0xd3DW*:2B[}یV]A4oP]quP&OTyUu4AL7=HΉr6<\؞X{6ƽ2dBrkp=|(}ޘ&{娼TUT^4S3/PB@.!M!ǥff0 E m J h>TRu8D^jxHݍmzAP`I"7^@\q (J *+ڶEuUq॒+G#M[)?CS#&D+H.L PG)2wn(=Dv(h`/-5؍vkBGF;o_^DB 9ǽ7zxNOV \P%"?hB J]2&pQIȯil^(5TAK& |>M!)z$$Yb;v/ #@@ADVISORJAM_HIM LOCATE_UCB . BLANK .ww19&絖'01-003'4SUPERVISOR_CLI_TABLE'01-003'21-APR-1993 16:04-VAX/VMS Command Definition Utility (V4-001) SUPERVISOR_CLI_TABLE CLI$TABLESPZ  SUPE ,,X0 SUPERVISE4 !*P1TERMINALTerminal0* BUFFER_SIZE2(ADVISE( NOTIFY(4 BROADCAST$XINPUT$|PHOTO(VERSION$WATCH4 0COMMAND_CHARACTE[R44  SUPERVISE_VERSIONDlT` | X| X  4   4ww1`z>&絖01-001: CHECK_PRIVS01-00121-Apr-1993 16:0421-Apr-1993 16:04VAX Bliss-32 V4.6-902- CHECK_PRIVSGET_SUPER_PRIVSPSUPSER_ADVISE SUPSER_OBSERVESUPSER_NO_SUPERVISE0 \SUPSER_QUIET LSUPSER_LOGGED_OUT`SUPSER_ADVISE_GROUP|SUPSER_OBSERVE_GROUP LIB$GET_VMP <GET_SUPER_PRIVSI  C;&<UTSЬRbSݬPgSTePbSePbSHePbSdePbSĀePbSĜeP bS4eP@bP#HOLDS_IDENTIFIER SYS$ASCTOID*  ,J ^S ]RGET_HELD_IDENTIFIERS& SYS$FIND_HELDSYS$FINISH_RDB@  17  >^мԮ|RԼ ~  SYS$FIND_HELDP1 LIB$GET_VMЮQR QRQQbQRaЮP! SYS$FINISH_RDBP s$PLIT$$PLIT$$OWN$$OWN$=$CODE$$CODE$= ^QQww1A&絖01-000: HANDIN_SUBS01-00021-Apr-1993 16:0421-Apr-1993 16:04VAX Bliss-32 V4.6-9021 HANDIN_SUBSGET_HANDIN_LOG_NAME*PSUPSER_HANDIN_LOGS:!AD.LOG;?LIB$PUT_OUTPUT STR$COPY_R SYS$GETJPIWSYS$FAOP  GET_HANDIN_LOG_NAME%  (*  ^Џ@4<8PЏ nԀ|~~|~~ SYS$GETJPIWPRR/: nQQ _PPQnݮݬݬSYS$FAOPRRP rrPRINT_LOG_FILE+ SYS$SNDJBCW rPRINT_LOG_FILE- r x%Π^ЬRЬQЏX`\ PЏ$|Џl|Џ|aСԀb*ТԀXXЮ\nԀ|~ }~~ SYS$SNDJBCWP<PPnXXLIB$PUT_OUTPUT CHECK_QUEUE( SYS$GETQUIW  CHECK_QUEUE-  #^ЬQЏ8@<P`aMСԀЏEnԀЏG||~}~~ SYS$GETQUIWЮPP Џ:P w$$PLIT$$PLIT$$$CODE$$CODE$ww1F&絖'01-000'0HANDIN_CLI_TABLE'01-000'21-APR-1993 16:04-VAX/VMS Command Definition Utility (V4-001) HANDIN_CLI_TABLE CLI$TABLESP  HAND ,(Tt HANDaIN0* BUFFER_SIZE2(VERSION$ABORT$OFF,  STATISTICS0P"LOG PHOTO.LOG$QUEUE       ww1`J&絖V5.45PLAYBACKV5.421-Apr-1993 16:0421-Apr-1993 b16:04VAX Bliss-32 V4.6-902(PLAYBACK STRIP_RUBOUTS P LIB$SCOPY_R_DX6LIB$LOOKUP_KEY LIB$GET_INPUTLIB$GET_FOREIGNLIB$SIG_TO_RET STR$CONCAT STR$COPY_DXP#  "<<VV9ؼSS>sXXVPW(WVm77 RMS_ERROR 7 F   ^ݏԮЬPP,"PP P<yPpЬcP`PQ `РUz U"VFT FݮPk$SYS$PUTP $P7VЏ PLAY__CLOSEIN|d SYS$CLOSEPUU dU7Џ;PLAY__CLOSEOUT|h SYS$CLOSEPUU hU7P  LIB$SIGNAL($PLIT$$PLIT$($CODE$$CODE$ww1@@CO&絖03 SUPSERMSG021-APR-1993 16:0421-APR-1993 16:04VAX-11 Message V SUPSER054.Ad' Y' "[HUNTER.SUPSER.V54C.A]SUPSER.OLB;1Xgh04-00k$ABS$ MSG$SECTIONMSG$AAAAAAAAAAAMSG$AAAAAAAAAABMSG$AAAAAAAAAAC؀iSUPER$_DIFPAGEЀiSUPER$_BCASTERRˀiSUPER$_BCASTFILEÀiSUPER$_RETURNEDMiSUPER$_RETURNEDiSUPER$_SPAWNEDi SUPER$_HELPi SUPER$_OBSNOWi SUPER$_ADVNOWiSUPER$_MONINFOi SUPER$_STARTi SUPER$_EXIT{iSUPER$_VERSIONtiSUPER$_MISLINKliSUPER$_NOCONSOLEdiSUPER$_NOLOGOUTPRIVi\iSUPER$_NOQUIETPRIVTiSUPER$_NOOBSPRIVULiSUPER$_NOOBSPRIVDiSUPER$_NOADVPRIV 8i @i Hi PiB Xi| `i hi piB xi i i iD i| i i i$ iH i Ȁi Ѐi؀iV( NOCOMMANDno command specifiedD NOTACLASSDEV-Photo cannot be used on this type of terminal* NOTLOGGINGnot currently logging"LOGGINGalready loggingLHALFDOWN8already logging (disconnect); use PHOTO/OFF to close log"DNFdirectory not foundm$VERSION!AS !AS linked !AS<STAT,recording in progress, !ZL characters loggedHISTAT7input-only recording in progress, !ZL characters logged.PAUSEDPhoto logging has been paused&MISSEDmissed !ZL charactersFILElog file is !AS(FINIrecording finished at !%D*INITrecording initiated at !%D4IFINI$input-only recording finished at !%D6IINIT%input-only recording initiated at !%D$ABORTEDrecording abornted0IABORTEDinput-only recording aborted( NOCOMMANDno command specifiedF NOTACLASSDEV.HANDIN cannot be used on this type of terminal* NOTLOGGINGnot currently logging"LOGGINGalready loggingLHALFDOWN9already logging (disconnect); use HANDIN/OFF to close log2DNF#HANDIN log file directory not found$VERSION!AS !AS linked !AS<STAT,recording in progress, !ZL characters logged&MISSEDmissed !ZL charactersoFILElog file is !AS0FINI HANDIN recording finished at !%D0INIT!HANDIMN recording initiated at !%D: CONVERTING$converting log file for printing....(ABORTEDHANDIN session aborted"QUEUEprint queue is !AS&ILLSELFcannot monitor selfJ NOTACLASSDEV2Supervisor cannot be used on this type of terminal>EXITW-Supervisor exiting with !SL characters missed*BADOPENcouldn't open input fileFALREADY3that terminpal is SUPERVISING someone else right nowBCTRLINV0reserved CTRL-key given as the COMMAND_CHARACTERJ INVCMDCHAR4invalid COMMAND_CHARACTER value given; specify 0--31: NOADVPRIV&no privilege to advise target terminal> NOOBSPRIV)no privilege to supervise target terminal: NOOBSPRIVU%no privilege to supervise target userF NOQUIETPRIV0no privilege to suppress monitoring notificationF NOLOGOUTPRIV.no privilege to supervise logged out terminals:q NOCONSOLE&cannot advise VAX 6xxx-series consolesVMISLINKCSupervisor was not linked properly!/DATA_BASE NEQA P1_START !XL !XL$VERSION!AS !AS linked !AS"EXITSupervisor exitingfSTARTVSupervisor enabled on !AS, user !AS (!AS, !AS)!/Type CTRL-!AS CTRL-H for information!/8MONINFO&Supervising !AS, user !AS (!AS, !AS)!/2ADVNOW Supervisor entering ADVISOR mode2OBSNOW!Supervisor entering OBSERVER modeDHELP4Supervisor help. rAll commands are preceded by ^!AS.$SPAWNEDsubprocess spawned<RETURNED(control returned to Supervisor process!/T RETURNEDM?control returned to Supervisor process, !SL characters missed!/6 BCASTFILE!broadcast messages written to !ASHBCASTERR5error parsing broadcast file (broadcasts not trapped)LDIFPAGE9terminal page sizes differ (Supervisor: !UL, Target: !UL)gPHOTOhHANDINiSUPERww1^&絖01-005 s8 TT_LOOKUP01-00521-Apr-1993 16:0421-Apr-1993 16:04VAX Bliss-32 V4.6-902) TT_LOOKUP KILL_ADV_LOCK+PP?PSUPSER$LNM_TABLEfSUPER$_DIFPAGESUPER$_NOOBSPRIVSUPER$_NOOBSPRIVUSUPER$_NOLOGOUTPRIV SYS$DELLNMP  KILL_ADV_LOCK+  j  m'^P SYS$DELLNM!K_MAKE_ADV_LOCK SYS$CRELNM+  s ! v! t;^P SYS$CRELNM'= MAKE_ADV_LOCKSPSUPSER$LNM$SYSTEM_DIRECTORY LNM$PROCESS_TABLEQ<SUPSER$;STR$TRIM SYS$TRNLNM SYS$CRELNT SYS$TRNLNM=P = MAKE_ADV_LOCKE = ~7 ɁTARG_DSCɁSRC_DSC STATEQV_BUFEQV_DSC P.AAC XP.AAH u $$ITMBLKPTR$  R__C  4P.AAD  P.AAE.1 R__C  PP.AAF <P.AAG"E $$ITMBLKPTR ^? ЬVPXTW, Xg WX,f XgPPPSTR$TRIMPЏ? Ԁ~PЏ SYS$TRNLNMP<PP\ P4<v|~~Џ SYS$CRELNTP? ~ݬPЏ SYS$TRNLNMPnPfЦ|-f  reliability, security, usefulness, or performance of this software.@ Neither Western Kentucky University nor Hunter Goatley@ are responsible for any losses that may occur from the use of this software.; The following are trademarks of Digital Equipment Corporation:4 DEC VAX VMS4 DECnet UCX UIS8 VMScluster AXP OpenVMS? MultiNet is a trademark of SRI International and TGV, Inc. __________> Copyright 1993 Hunter Goatley. ALL RIGHTS RESERVED.  A _______________________________________________________ ContentsA _______________________________________________________A CHAPTER 1 INSTALLATION NOTES 1-1A _________________________________________________A 1.1 COMMANDS 1-1A _________________________________________________A 1.2 ON-LINE HELP 1-2A _________________________________________________7 1.3 INSTALLING OVER SUPERVISOR SERIESA V5.1-1 1-2A _______________________________________________________A CHAPTER 2 NEW FEATURES AND BUG FIXES 2-1A _______________________________________________________A CHAPTER 3 HANDIN REFERENCE GUIDE 3-1A _________________________________________________A 3.1 SETTING UP HANDIN 3-1A _________________________________________________A 3.2 HANDIN COMMAND QUALIFIERS 3-2A _________________________________________________5 3.3 RESTRICTIONS IN THIS RELEASE OFA HANDIN 3-3A iii   ContentsA _______________________________________________________A CHAPTER 4 KNOWN BUGS AND RESTRICTIONS 4-1A _________________________________________________9 4.1 THINGS THAT WILL HOPEFULLY BE FIXEDA NEXT TIME 4-1A _________________________________________________8 4.2 SUPPORTED AND UNSUPPORTED TERMINALA DEVICES 4-2A _________________________________________________A 4.3 PRODUCT INCOMPATIBILITIES 4-3A _______________________________________________________A CHAPTER 5 PROBLEM REPORTS 5-1 iv  A _______________________________________________________ 1 Installation Notes? This chapter contains items of interest pertaining to> the installation of the Supervisor Series. There are= four utilities that comprise the Supervisor Series: o SUPERVISOR o PHOTO o HANDIN o PLAYBACKL __________________________________________________________________ 1.1 Commands7 The commands used to invoke the utilities can: either be defined as foreign symbols or they can8 be added to the system-wide DCL command tables= (SYS$LIBRARY:DCLTABLES.EXE). When the latter method? is chosen, the commands are available to all users on@ the system (though file protections and privileges may4 prevent them from executing the programs).= The installation gives you the option of adding the: commands to the DCL command tables or not. It is? recommended that you do not add the SUPERVISE command> to DCLTABLES. Using a foreign symbol lets only those? users who need to use the utilities have ready access to them.@ Because PHOTO may be useful to all users, you probably? will want to add the PHOTO command to the system-wide command tables.A 1-1   Installation NotesL __________________________________________________________________ 1.2 On-line Help? During the installation, you will be given the option; of installing the help files for the utilities in> one of the system help libraries. The system default> help library is SYS$SYSROOT:[SYSHLP]HELPLIB.HLB. The< installation procedure will give you the option of= installing the help files in other libraries (those= defined by the logicals HLP$LIBRARY, HLP$LIBRARY_1, etc.).: You may wish to insert the help files in a local? library pointed to by one of the HLP$LIBRARY logicals: to avoid cluttering the normal VMS help library.= The SUPERVISOR help file should not be installed in; a system help library if you chose not to add the) SUPERVISE command to DCLTABLES.> The on-line help files can be found in the directory SUPSER_ROOT:[DOC].L __________________________________________________________________2 1.3 Installing Over Supervisor Series v5.1-1; If you are installing the Supervisor Series V5.4b; over a v5.1 or v5.1-1 installation, there are two; additional steps that must be performed manually.? The ADVISOR and OBSERVER utilities were combined into< one program called SUPERVISOR in Supervisor Series: V5.3. Before or after installing V5.4b, you must= delete the ADVISE and OBSERVE verbs from DCLTABLES,< if you installed them there. The following command) will delete ADVISE and OBSERVE:A $ SET COMMAND/DELETE=(ADVISE,OBSERVE)-L /TABLES=SYS$COMMON:[SYSLIB]DCLTABLES.EXE-K /OUTPUT=SYS$COMMON:[SYSLIB]DCLTABLES.EXEF $ INSTALL REPLACE SYS$LIBRARY:DCLTABLES.EXE; Note: Be sure that you modify the correct copy of@ DCLTABLES.EXE-the one that's INSTALLed on your system. 1-2  A Installation Notes> The file is usually in SYS$COMMON, not SYS$SPECIFIC.= Also, be sure you specify SYS$COMMON in the command above.; You should also delete the ADVISE and OBSERVE  SUPSER054.A[' Y' /[HUNTER.SUPSER.V54C.A]SUPSER054.RELEASE_NOTES;1V?6~on-< line help modules from whichever library you added: them. The following will delete the modules from SYS$HELP:HELPLIB.HLB:V $ LIBRARY/HELP/DELETE=(ADVISE,OBSERVE) SYS$HELP:HELPLIB.HLB= These steps must be performed manually because each9 site may have customized the command names, not> installed them, put the help in different libraries, etc.A 1-3  A _______________________________________________________$ 2 New Features and Bug Fixes7 The version of the Supervisor Series that was< released to DECUS was version 5.0-D. This document? describes V5.4b of the Supervisor Series, as modified8 by Hunter Goatley, Western Kentucky University% (goathunter@WKUVX1.BITNET).= The Supervisor Series was originally written by Bob- Pasker, Bill Donner, and Terry Way.= The following bug fixes were made in the Supervisor Series V5.4b:9 1 A problem with the page protection on the P1< memory used by PHOTO occasionally allowed user-= mode programs to crash the system. Programs that@ mismanaged the user stack could end up writing overA the memory used by PHOTO. This has been corrected by@ correctly setting the page protections to not allow user-mode writes.= The following bug fixed were made in the Supervisor Series V5.4a:A 1 The SUPERVISE command would not accept /NOBROADCAST.% This has been corrected.: 2 SUPERVISOR was not correctly restoring all of: the original terminal characteristics for theA supervising terminal. Specifically, the terminal was? left in ``No Broadcast''. This has been corrected.6 The following new features were added in the! Supervisor Series V5.4:6 1 A new qualifier, /BROADCAST, was added to9 SUPERVISOR. This qualifier causes SUPERVISORA 2-1  $ New Features and Bug Fixes; to trap all broadcast messages received by the@ supervising terminal. All such messages are written> to a file, whose name can be specified as a value> to /BROADCAST. By default, /BROADCAST is enabled;: /NOBROADCAST must be specified to prevent the: trapping of broadcast messages. Note that the9 message file is only created if messages are2 actually received during the session.; 2 SUPERVISOR was modified to check the page size> of the target terminal and print a warning to the? supervising user if the size differs from the pageA size of the supervising terminal. If the supervising? terminal is smaller than the target terminal, many? screen-oriented applications will not be displayed2 properly on the supervising terminal.; 3 The modules that comprise SUPERVISOR and PHOTO< must be linked in a particular order to produce@ the correct executable images. While both perform a? check to ensure the image was linked properly, the@ SUPERVISOR check was made after some initialization9 had occurred, causing the system to crash if< the image was improperly linked. SUPERVISOR and; PHOTO now check for this occurrence before any: initialization takes place. This problem only: occurred if the Supervisor Series images were0 rebuilt without using the MMS file.@ 4 The HANDIN utility has been added to the Supervisor= Series. HANDIN creates a log file in a protectedA directory and, upon HANDIN/OFF, automatically queues= the log file to a designated printer (SYS$PRINT,? by default). HANDIN was designed with the academic< environment in mind: students can run HANDIN to< produce printouts of terminal sessions. Because> the file is created in a protected directory, the= student is unable to edit the log file, ensuring= that the printout is an unmodified record of the terminal session. 2-2  A New Features and Bug Fixes= HANDIN is described in more detail in Chapter 3.A With this release, HANDIN is not yet an ``official''> Supervisor Series module, because it doesn't have; enough features to be considered ``finished.''= 5 PHOTO is now compatible with VMS POSIX. Previous9 versions of PHOTO would report an ``internal> consistency failure'' if POSIX was started on the system.= 6 In previous versions of PHOTO, pressing ? during PHOTO and PHOTO/OFF could crash the system.- This problem has been corrected.: 7 PHOTO and HANDIN now check that all necessary8 privileges are enabled before executing any; privileged routines. This eliminates potential= problems with privilege-related errors occurring# during initialization.9 8 A new qualifier, /ABORT, was added to PHOTO.9 PHOTO/ABORT terminates the PHOTO session and0 automatically deletes the log file.@ 9 PHOTO now includes error and informational messagesA that reflect input-only recording where appropriate.: Previously, the messages did not indicate the7 type of recording. This change affects the= messages produced by PHOTO/INPUT, PHOTO/OFF, and PHOTO/STATISTICS.5 10 PHOTO now provides a default filename of= SYS$DISK:[]PHOTO.LOG. Previous versions of PHOTO2 did not supply any filename defaults.@ 11 PLAYBACK was modified so that /STRIP removes rubout? sequences (character, backspace, space, backspace), in addition to null characters.5 12 PLAYBACK was modified so that /STRIP and9 /TYPE=RECORD are the default settings, since> PLAYBACK is most often used to convert binary log, files to normal RMS text files.A 2-3  $ New Features and Bug Fixes< 13 Miscellaneous clean-up changes were made to all9 of the utilities to increase reliability and efficiency. 2-4  A _______________________________________________________ 3 HANDIN Reference Guide? HANDIN is designed to allow students to automatically< queue terminal session log files to a printer. The8 default print queue is SYS$PRINT; the user can= override the print queue using the /QUEUE qualifier5 on the HANDIN and HANDIN/OFF command lines:/ QY SUPSER054.A[' Y' /[HUNTER.SUPSER.V54C.A]SUPSER054.RELEASE_NOTES;1V?6r! $ HANDIN/QUEUE=LASER< If /QUEUE is specified with HANDIN/OFF, that queue: overrides the queue set with the HANDIN command.? HANDIN automatically prints a flag page as proof thatu= the file came from the SUPSER_HANDIN_LOGS directory < (the filename is printed at the bottom of the flag page).L __________________________________________________________________ 3.1 Setting Up HANDINU= HANDIN is installed with SYSPRV and the logs should < be created in a directory protected from access by= everyone except SYSTEM. This ensures that the files ? cannot be edited before they are printed. HANDIN usesR; the logical name SUPSER_HANDIN_LOGS to locate the ? protected directory. By default, SUPSER_ROOT:[HANDIN]? is used. The SUPSER_ROOT:[HANDIN] directory should be14 created with a command like the following:P $ CREATE/DIR/PROT=(S:RWED,O,G,W) SUPSER_ROOT:[HANDIN]@ The directory should be located on a disk without disk< quotas (see Section 3.3 for more information). The= definition of SUPSER_HANDIN_LOGS should be added tor6 the SUPSER_STARTUP.COM in SUPSER_ROOT:[COM].U $ define/system/exec supser_handin_logs device:[directory]eA 3-1r e o HANDIN Reference Guide; HANDIN log files are normally deleted immediatelyf; after printing. However, the log file can be leftu> in the directory if the user logs out while a HANDIN= session is active, for example. You should set up ah? batch procedure to delete HANDIN logs older than somer> date. For example, the following command will delete* all log files older than 3 days:> $ date = f$cvtime("-3-","ABSOLUTE")J $ DELETE SUPSER_HANDIN_LOGS:*.*;*/BEFORE='date'L __________________________________________________________________# 3.2 HANDIN Command Qualifiers? The HANDIN command can be defined in SYLOGIN.COM as a_ foreign command:D $ HANDIN :== $SUPSER_ROOT:[EXE]HANDIN.EXE9 You can also add the command to the system-wide1 DCLTABLES using the following commands:_E $ SET COMMAND SUPSER_ROOT:[EXE]HANDIN.CLD- L /TABLES=SYS$COMMON:[SYSLIB]DCLTABLES.EXE-K /OUTPUT=SYS$COMMON:[SYSLIB]DCLTABLES.EXE F $ INSTALL REPLACE SYS$LIBRARY:DCLTABLES.EXE> The HANDIN command accepts the following qualifiers,; which are described in the PHOTO Reference Guide:  o /ABORT_ o /VERSION_ o /BUFFER_SIZEE o /STATISTICS o /QUEUE? The /QUEUE qualifier accepts a queue name as a value._? The queue must be either a print, terminal, or server  queue. 3-2_ _ _A HANDIN Reference Guide L __________________________________________________________________0 3.3 Restrictions in This Release of HANDIN; The following items will be addressed in a future_ version of HANDIN:> o PHOTO can be used to stop a HANDIN session, which< will leave the HANDIN log in the log directory.< o There is no built-in size limit of a HANDIN log= file. The SUPSER_HANDIN_LOGS directory should be > created on a disk with no disk quotas; otherwise,> all users needing to use HANDIN must have a quota& entry on the HANDIN disk.A 3-3E T A ________________________________________________________% 4 Known Bugs and Restrictions @ This chapter describes the known bugs and restrictions) of the Supervisor Series V5.4b. L __________________________________________________________________7 4.1 Things That Will Hopefully Be Fixed Next Time ? The following items are limitations of the Supervisor 8 Series V5.4b. These things will, hopefully, be( corrected in the next version:7 o SUPERVISOR data may be lost while SPAWNed._= SUPERVISOR V5.4b includes the ability to spawn a > subprocess while supervising a terminal. However,@ terminal I/O on the target terminal is not bufferedA properly for displaying on the supervising terminal;e< upon logging out of the subprocess, some of the; terminal output may be displayed, along with a? message indicating how many characters were missed_= (though this number isn't necessarily accurate). = Spawning a subprocess in SUPERVISOR V5.4b shouldi? be done sparingly, unless the missed output is not  critical.; o When the supervising terminal toggles XOFF for ? the target terminal, XON must also be toggled from ? the supervising terminal. The target cannot resume ! output via .rA 4-1   % Known Bugs and RestrictionsIL __________________________________________________________________4 4.2 Supported and Unsupported Terminal Devices; The Supervisor Series V5.4b has been successfully . tested with the following terminals:A o Normal physical terminal ports (TTAx:, TXAx:, etc.).O= o LAT terminal devices (LTAx:) created by terminal 5 servers and by the SET HOST/LAT command. @ o Terminals with virtual terminals (VTAx:) associated with them._; o FT devices, which are pseudo-terminals createde< by FTDRIVER, the pseudo-terminal driver used by4 DECwindows Motif and included with VMS.> o TW devices, which are pseudo-terminals created by> PYDRIVER and TWDRIVER, the old DECwindows pseudo-A terminal drivers. These drivers are also used by theo> public domain utilities BOSS and PHOTO (the other one).= o MultiNet terminals (NTY devices). MultiNet is ant. implementation of TCP/IP for VMS.> o TN devices, which are network terminals logged in( via UCX telnet over TCP/IP.< o PCL devices, which are created by PacerLink, an/ AppleTalk implementation by Pacer. 4 The following terminals are not supported:> o RT devices, which are network terminals logged in& via SET HOST over DECnet.= o WT devices, which are UIS VT100 pseudo-terminals_ (VWS)._? o VAX 6XXX-series console terminals. The 6xxx-series @ console subsystem doesn't allow for monitoring like> normal terminals. The console can be observed, so= PHOTO and SUPERVISOR in OBSERVER mode will work.> Attempting to start SUPERVISOR in ADVISOR mode on s$a\ SUPSER054.A[' Y' /[HUNTER.SUPSER.V54C.A]SUPSER054.RELEASE_NOTES;1V?6^ 04-2n r aA Known Bugs and RestrictionseA such a console will result in an error message beingr displayed. L __________________________________________________________________# 4.3 Product Incompatibilities < The Supervisor Series utilities are not compatible? with the following products and may crash the system,  depending on usage:UA o Session Support Utility (SSU), a DEC layered productI4 o DEC/Test Manager, a DEC layered product( o ACMS, a DEC layered productA o Terminal Fallback Facility (TFF), a component of VMS.? o Third-party terminal monitoring utilities, such as 6 those sold by Raxco and Network Dynamics.> All of the products listed above modify the terminal> UCB in the same manner as the Supervisor Series, but< in an incompatible fashion. It is hoped that these5 restrictions will eventually be eliminated.yA 4-3B B A _______________________________________________________B 5 Problem Reports : An electronic mailing list exists to discuss the= Supervisor Series software and report problems. Theu@ address of the mailing list is SUPSER-L@WKUVX1.BITNET.3 Internet users can subscribe to this list 3 by sending an E-mail message to SUPSER-L-9 Request%WKUVX1.BITNET@cunyvm.cuny.edu, with the_: command "SUBSCRIBE" appearing in the body of the message.? BITNET users can subscribe to this list by the methodd? described for Internet users, or by sending an E-mail5= message to LISTSERV@WKUVX1.BITNET, with the command ; "SUBSCRIBE SUPSER-L" appearing in the body of theK message.8 Archives of the mailing list are available via= anonymous FTP from ftp.spc.edu ([192.107.46.27]) inh. directory [ANONYMOUS.MACRO32.LISTS].A 5-1 memory used by PHOTO occasionally allowed user-= mode programs to crash the system. Programs that@ mismanaged the user stack could end up writing overA the memory used by PHOTO. This has been corrected by@ **[HUNTER.SUPSER.V54C.A]SUPSER_STARTUP.COM;1+,\' . / 4T  -Y' 0123KPWO56=7Wv89GHJ$ save_verify = 'f$verify(0)'$!++$!0$! Startup file for the Supervisor Series v5.4a$!I$! Copyright 1992 by Hunter Goatley. All rights reserved. PermissionL$! is given to freely distribute and modify this software for no commercial6$! gain as long as this copyright notice is retained.$!,$! Hunter Goatley, goathunter@WKUVX1.BITNET$!$! 7-APR-1992 11:33$!$! Modified by:$!C$! 8-OCT-1992 22:38 Updated to handle rooted directories properly$! (thanks Mark Schuster)K$! 5-OCT-1992 16:00 Updated for v5.4 (added HANDIN, fixed BOOKSHELF prob)&$! 11-AUG-1992 06:25 Updated for v5.3A$! 13-MAY-1992 07:40 Updated for v5.2 (removed OBSERVER/ADVISOR)?$! 9-APR-1992 13:37 Added WORLD privilege to OBSERVER/ADVISOR$!$!--$ say := write sys$output*$ say "Starting the Supervisor Series...."#$ proc = f$environment("PROCEDURE")$!#$! Define SUPSER_ROOT logical name$!5$ this_dir = f$parse(proc,,,"DEVICE","NO_CONCEAL") +-8 f$parse(proc,,,"DIRECTORY","NO_CONCEAL")$ x=f$locate("][",this_dir)$ if x.ne.f$length(this_dir)$ then($ this_dir_1 = f$extract(0,x,this_dir);$ this_dir_2 = f$extract(x+2,f$length(this_dir),this_dir)/$ this_dir = this_dir_1+this_dir_2-"COM]"+"]"*$ else this_dir = this_dir - "COM]" + "]"$ endif$ install :== $install/commandI$ define/nolog/system/executive/translat=concealed supser_root 'this_dir'$!$! Install PHOTO$!%$ file = "SUPSER_ROOT:[EXE]PHOTO.EXE"$ if f$search(file).nes. ""4$ then if f$file_attributes(file, "KNOWN") then - install delete 'file'0$ install add 'file'/priv=(CMKRNL,PSWAPM,PFNMAP)$ endif$!$! Install HANDIN$!&$ file = "SUPSER_ROOT:[EXE]HANDIN.EXE"$ if f$search(file).nes. ""4$ then if f$file_attributes(file, "KNOWN") then - install delete 'file'7$ install add 'file'/priv=(SYSPRV,CMKRNL,PSWAPM,PFNMAP)$ endif$!$! Install SUPERVISOR$!*$ file = "SUPSER_ROOT:[EXE]SUPERVISOR.EXE"$ if f$search(file).nes. ""4$ then if f$file_attributes(file, "KNOWN") then - install delete 'file'O$ install add 'file'/priv=(CMKRNL,PSWAPM,PFNMAP,SYSPRV,SHARE,SYSNAM,OPER,WORLD)$ endifA$ if f$search("SUPSER_ROOT:[DOC]LIBRARY.DECW$BOOKSHELF") .nes. "";$ then if f$trnlnm ("DECW$BOOKSHELF","LNM$SYSTEM") .nes. ""$ thenT$ call add_to_searchlist DECW$BOOKSHELF SUPSER_ROOT:[DOC]LIBRARY.DECW$BOOKSHELF;$ else8$ call add_to_searchlist DECW$BOOK SUPSER_ROOT:[DOC]N$ call add_to_searchlist DECW$BOOK SUPSER_ROOT:[DOC] DECW$LOGICAL_NAMES$ ENDIF$ endif!$ say "Supervisor Series started"$ common_exit:'$ exit f$verify(save_verify).or.1$!'$! ADD_SEARCHLIST: from the MX startup$!@$ADD_TO_SEARCHLIST: SUBROUTINE ! P1=lognam P2=value [P3=table],$ IF "''P3'" .EQS. "" THEN P3 = "LNM$SYSTEM"($ IF F$TRNLNM (P1,P3) .EQS. "" THEN EXIT$ ACMODE = "EXECUTIVE"F$ IF F$TRNLNM (P1,P3,,"EXECUTIVE") .EQS. "" THEN ACMODE = "SUPERVISOR"0$ maxidx = F$TRNLNM (P1,P3,,ACMODE,,"MAX_INDEX")$ i = -1$ bookdef = ""$loop: $ i = i + 1"$ book = F$TRNLNM (P1,P3,i,ACMODE)$ IF book .EQS. P2 THEN EXIT $ bookdef = bookdef + "," + book!$ IF i .LT. maxidx THEN GOTO loop$$ bookdef = bookdef - "," + "," + P2/$ DEFINE/NOLOG/TABLE='P3'/'ACMODE' 'P1 'bookdef$ EXIT$ ENDSUBROUTINE SUPSER054.Ad' Y' "[HUNTER.SUPSER.V54C.A]SUPSER.OLB;1^I:=F]CzK٭)a B{++f6tFשoJhzuuPKBlE(O.Af5o(rvhdb HRZ x@lKҏs$eadXJT[r_POvDۆ+6X KpIMDEP_uMr20, }I'W~NL|Mckp%yMxdH>UL"5BC3cs,EeKYl9t:: bX2O%0CDDg OGC{Þv]n9:_hZ#!y6y1sS&HL-QrԸI@?LQ&WUEC:W\M GOQT$9Q<"2!*J<&y\3.Dm/:5 :z?:e҅ VAA\S/ 9ږ :G W%U824`zیgqv #i6"Z .;*9կ&4=|X+Y`VK<`P"V{^ILo)Ite6 MzrpVkk>Q<]|kKDOV1V`e{9_VW!yg06ykb,6D8 sn@Y/hGLJIL@`=/s'&y-".o/4c7:,6`$f$D6qRt2~JLi+C&zg*"|VM!@ '#84?2UXWLUtN735WZT@*7~x:A*}q49TlSsV?]tjBTDVKo:wD-OEYkM!edqPgm,_8}fR {Z,")z(Rxq\lI`QJ: Q6"h$DPt}_ 1)S?Fo\H MDeWa9cWNZ:Yl;GqRCO^ F!M |]!= hQ9NH\C-4 _JB/ i{iq=x^{+mojqh,_GA4&Ca_PÅYWI8*c-( )mz?ͪ Y܋sff"Dzbwێ9] ll>eBꕁQ+k|hd?J˸f / cCf~!,x]iqnb;@`G(tGA }0iB:}{eן;c xEjߪKlXy9`u!]~eDThEi$ `iϱQS{o3P]:@$uC)s&e-d=63B/4BMQYUbT!B{M0PB>Sm?=kg(b{R)vAdw-@M %G748z{dә{Y_nid}|$;:XeE{LEu8Cbh8Ш)bbh8~bmKh}|=n.+6$H;CIFx8 A8^uc#ejq+55&Sl[ HA{|7w zYAKO4VD`QS(a!!I١\FsG?C YZ|}9̬ '٩hg“- L{+7o6Vp< şR`VOA#@Z {1l*|ٻb3TLx<O#3@DD )QILNeňKgwY:;@_0ç^;3QT!$`Hؽp'8| Z,~䠽;-d4}!QAa~P޲k<>-`hJS5'ֱ $3!% f-q0LԺ+@Ku`{CB2Cad 4C6?2rW| )^_xi\aU*=iusS`^a3f]9Hb9Yt[lj;Rv:֋ g'8U]v|Av[523$KUD!ԯBY/ZQ )nYA92wDs [QMX `2ib>?g#+dcp'oR .K .xH TnƷE'ԬPr=4YdܘV.p|p=:1v/ &ol *!+y5_EKAC1hJNt AatIx;eL@tX sutvCp wFK}u'(D!cjX^< wLd;)1@=D[tx,7#`Q8v 3I>p5kmnG-~Zn^. E=Eª.qZR[%>HrrdV!{8#]H@KS-L#sq8i K8~X%pnsZK}9 /AAx2TU3te5e1f1""[f`f"zy<[F1-Mazvq|e ~w6 :*9K pgotvh~8MZaU/1)uw;r"*aBtD=8cEE*OEnD{gzRrF{CK(`’4}IMTorG#Ñ_Yy`}mJF|ԩ$C욪S.;SAm+Afo*`_ j(ę9c//&5 uUN Xk'gW9PaGbXRL=߯F:'2ZeƇmcٌTl<ɾH/+`1A?d~ XKC&ct Lxp7 rY)*+D a+.{AVi*^QEur4&{xro{*8~_ ]lP#]7+s="@ KCK{Kb*C{WIo+a{cs%\-bHC? DD[.%IP,%?YM]irɲa\w`)Hy>m#ebcXվ @O &QDʒT˛Mh,ra#Zɪ#gW;]`mB)8>xOFn x360ׁ@ 9s?Ҽzj'e'J_ūX͉0UP~r.sG=bSJu})j41zwynq6@^[ZhZm$|OJF5y.I8[240l{;ihLV+ʙp Ej0A :Z20m}c9d(db=}4#O" @KVM|Ad4MRKB $9|(+yz=r&MT[yK yzv?bw15wRsIS|!cWid$X^O$K 1DWJf]\TM1!JVA VmdyFtkO+KNDi^p?' =da=KTSRG _ lq-/*(s_O/g"WQIJ9R8NRU$(^,C'!&>h-H_]: sC 'XH wDunm)m5la/nsb2 gILrb]iq!cTUwT`v4[#O V ~GndMIjheu5|9 :u)(b6 R; qb."^ ]xl;AIkUdI^JEFX8B3,R `S:)vK^LMZ]LP.m"lc7Y<h-RB{ItU bYx2,j]T_2(&LBE[+UZ'UUpNl"Br{7 F6;b#_`1WFwnqM^ /V+lo: u@W{U81h\lQb-46STA\Q\f<3[0^hBjS^![UZjYKei sWiT>w^F8M%Xn Q ZMWhWγ WTs`dX0^R)l*fu/t`1mLxw5}{z ROp>qPe%//G6$8w4nt6{ WB'd;, WJR4|%%251kd&Ie&;PUo`ry ZCDIobK@'/)xk~z3AQV[SCE ;)e*ILMV7;KR b wixbD5^qke߹LԈhog0s :`n7mH$ >o>Kj k)|3PGjDJ])t ͠)|)[1hfhJz%n+ ?gBnbWsr W 3WRk*zy)Lnk__(7]Xt{WKR6,OXTCPW7GIm gmit5<#k[+31.PnIp]|!lE&Lk= iAy{?S^XT017_K*I|Ʈm RALvY L:x>E9ivL:6^`Sd7f2@UR3&.shA6֋d0haL?g *K2@AmBW5U "9ꌰDRq3ig+yAo&:f>0U) $B4T>nM:I:k,9Jp8+= }ca5Hf}CFRCB( pFުb$> N+,^?kAH93lkgvV2| QMtUKB*B~xv~U PzIM`bw{rz]Eƙ5n4&FIl"-%g41PVbH s4zT)Y,6%75DOs!gm#3Cig!WlE^Z\ QIafJbE hcZOI_5.4H2J:Mbum6Pd;bb)nCV(xyMo |Del< I[)y.[oIVG0_==a:iH75 :$Y,'5TS(AHy@I  jIArL~sH;L&WOz,q)88^jWv 2Ukh.NEJBIUH&l(WxRNPL(H4FhIk%o"M*(Z6Z[t>2)S' tM/U ?'X"z#'%233,y??WU?T>m=k:AVT#ursqtg-(*p64KhD-QF ` NSOFn>KME/=G{A-YU319ik94$Zec]|BGBY^: pW:3SUMR SG/4[eA LJ^:.mDsH#s8;[;*i41%2} ? OMEI/?D5r9r@JV!^ZUtyaEQc{bOB.Y[r>8q23! 6i,y|Nb(d)h^+e|`ct'f'O%`A|6  ~ 49Xn*""]Su'T 174k/(ljRGKi#% :4:IY'qo r6B`w4X ;7uN; W9xΒs`7ar=U+;OZ8E }(='$\AMSample SupervisorSeries InstallationA Sample Supervisor Series InstallationCcx,,$\BMContentsof DistributionKitB Contents of Distribution KitDm$11$\CNFilesCreatedDuring InstallationC Files Created During InstallationF+TABLESTABLES2H/=AB-1 SupervisorSeries installationkitsavesetsB- 1 Supervisor Series installation kit save setsE9O(=AC-1 SupervisorSeriesfiles'createdduring installationC- 1 Supervisor Series files created during installationGkkdD* Copyright1992HunterGoatley.'ALLRIGHTS RESERVED. ~AllRights Reserved.cS9*O SupervisorSeries InstallationO:GuideAOOctober1992RO{Thismanualprovides installationandsetup instructionsfortheQO SupervisorSeries,terminal monitoringsoftwareforVMSsystems.xN'ORevision/Update Information:'^Thisisarevisedmanual.rH*O OperatingSystemandVersion:^VMSV5.0orlaterh>OSoftwareVersion:"^ SupervisorSeriesv5.4  y O OO 5October1992jO Permissionisgrantedtocopyand redistributethisdocumentforno commercialgain.jOVThe informationinthisdocumentissubjecttochangewithoutnoticeandshouldnotfObe construedasa commitmentbytheauthor.(TheauthorassumesnoresponsibilityBOforanyerrorsthatmayappearinthis document.Ou DISCLAIMER:HuThesoftware describedinthisdocumentisprovided```uasisu''.*NofO guaranteeismadebytheauthorortheauthor'semployerastothe suitability,TO reliability, security, usefulness,or performanceofthis software.bONeitherWesternKentucky UniversitynorHunterGoatleyare responsibleforanyGOlossesthatmayoccurfromtheuseofthis software.OOsThe followingare trademarksofDigital Equipment Corporation: OQ DEC 3Q VAX Q VMSO DECnet 3 UCX  UIS O, DOq  Copyright1992HunterGoatley.&ALLRIGHTS RESERVED.*    ]OPrefaceLOThisguide describeshowtoinstallthe SupervisorSeries.   OIntendedAudienceLOUThismanualisintendedforusebythesystemmanagerorNOany individual responsiblefor installingand maintainingtheO SupervisorSeries.   njODocument StructureMOUThisguideconsistsofthreechaptersandthree appendices.  >OChapter1Containspre-installation information.NO]Chapter2 Describesthe SupervisorSeries installationproce-bdure.?O$Chapter3ContainspU SUPSER054.B 1(/[HUNTER.SUPSER.V54C.B]INSTALL_GUIDE.DECW$BOOK;1Dcost-installation information.IOAppendixAContainsalistingofasample installation.UOAppendixB Describesthecontentsofthe SupervisorSeriesdistri-bebutionkit.XOAppendixCContainsalistofthefilescreatedbyan installation.II  uORelated DocumentsEOUYoucanfind additional informationinthe followingO documents:[ f `m&m SUPERVISOR ReferenceGuide$Em describesthe SUPERVISORutility. `E!E PHOTO ReferenceGuide$SE describesthePHOTOandPLAYBACK utilities. `, SupervisorSeriesReleaseNotes#Ycontain informationandHvupdatesnotincludedinthismanual.*Thereleasenotes:arepartofthesoftware distributionkit. `M)M VMS AuthorizeUtilityManual@M, partoftheVMSE documentationset,contains informationabouttheVMS AUTHORIZEutility.   =O 1.2 Preparing!to!Install"the! Supervisor!SeriesROThischapter describesthestepsthatshouldbetakenpriorto.O installingthe SupervisorSeries. %O1.1B PrerequisiteSoftwareNOUThe SupervisorSeriesrequiresVMSversionV5.0orlatertoOrun.{{a 75O1.2B AccessingtheOnlineReleaseNotesDOUThe Supervisor Seriesprovides online release notes,COwhichyoucandisplayorprintbyusing VMSINSTALFOwiththeOPTIONSN parameter.-Afterthe installation,FO^you can read the!release notes!by printing the file;O!SYS$HELP:SUPSERvvn.RELEASE_NOTES,where``vvn''OOdenotestheversionnumberofthe software.'Forexample,forQOhversionv5.4ofthe SupervisorSeries,thefilenamewouldbeO SUPSER054.s4O1.3B Installation Procedure RequirementsIOUBefore installingthe SupervisorSeries,ensurethattheJO following privileges, resources,and requirementsaremet:!  `m9mVMSversionV5.0throughV5.5isrunning. `EAllthenormal privilegesandquotasofthedefaultESYSTEMaccount. `I Approximately2to15minutes, dependingonyoursystemHconfiguration, distributionmedium,andoptions selected. `K Approximately3,000freeblocksonadiskforuseduringMthe installation procedure;thiscanbethesystemdiskor@Madisk specifiedwiththe VMSINSTALAWDoption. `H Approximately2,500freeblocksonthesystemdiskforJ%afull installation.)The requirementsperproductareas~follows: # p F h@Yh Approximately700freeblocksfor SUPERVISORandYitsdocumentation. @@Y@ Approximately500freeblocksforPHOTOanditsYdocumentation. DY Approximately1,000freeblocksforthesourcesfor"Ypthe SupervisorSeries. # pc! e1O 2.2 Installing!the! Supervisor!SeriesJOThe SupervisorSeriesuses VMSINSTALfor installation.)IfJOyoudonotknowhowtouse VMSINSTAL,youshouldfirst?OBreadthechapteron installingsoftwareintheB VMSSystemO Manager'sManual= .'Forthe installation,youshouldbeloggedGOintotheSYSTEMaccountoranothersuitably privilegedOLaccount."O2.1BInvoking VMSINSTALBOUInvoke VMSINSTALtoinstallthe SupervisorSeries. O $1 @SYS$UPDATE:VMSINSTAL% SUPSERvvn%ddcu:@ 3O Substitutethe appropriatevaluesfor { vvn and ddcu _.E* VAX/VMS&Software&Product% Installation& Procedure%V5.4-2)O It%is% dd-Mmm-yyyy%at%hh:mm.BO Enter%a&question&mark%(?)&at&any%time&for%help. UOIfthereareanyusersloggedintothesystem,youwillseetheOmessage:NOa %VMSINSTAL-W-ACTIVE,%The% following& processes%are%still%active:O ...process&names...6 OOYoucaninstallthe SupervisorSerieswhileusersareloggedNOin,thoughnousershouldberunningoneofthe Supervisor8O5Series utilitiesfromapreviousversion.7O *&Do&you%want&to&continue&anyway%[NO]? !4OIfyouwishto continue,answerYES.SO *&Are%you% satisfied&with%the&backup%of%your&system%disk&[YES]? NOOIfyoufeel comfortablewithyoursystemdiskbackup,answerDOYES. Otherwise,answerNO,performthebackup,then0O5restartthe installation procedure.f $O2.2B InstallationOptions!OUThenextquestionisVO *&Do&you%want&to&purge&files&replaced&by&this% installation&[YES]?!OOIfthisisthefirsttimeyouhave installedthe SupervisorKOSeries, answeringNOtothisquestioncansavesometimeGO5whenthe SupervisorSeriesfilesaremovedintotheirO directories.! .O2.3BDiskand Directory SelectionQOUThe SupervisorSeriesis installedinitsownrooted directoryIOtoavoidmixing SupervisorSeriesfileswithnormalVMSOOfiles..TheonlyfilecopiedtoaVMS directoryisthefileQO^ containingthe SupervisorSeriesreleasenotes,whichiscopiedOto SYS$HELP.q L GQOThe SupervisorSeriescanresideonanydisk.&The installationPOpromptsyouforthenameofthediskand top-level directoryIO5forthe utilities.'ThedefaultisSYS$SYSDEVICE:[SUPSER].]O *&Enter&the% top-level% directory&for%the% Supervisor%Series%[DUA0:[SUPSER]]:! c7OOncea directoryhasbeen specified(or C3 ETRETURN ET 3 ispressedtoTOselectthe default),the directoryiscreatedandamessagelike(O5the followingis displayed:_O %VMSINSTAL-I-SYSDIR,%This&product%creates%system%disk% directory%DUA0:[SUPSER].e"#O2.4B Component SelectionHOUThe SupervisorSeries installationprovidesanumberofKOoptionsfor installing individual coma@m] SUPSER054.B 1(/[HUNTER.SUPSER.V54C.B]INSTALL_GUIDE.DECW$BOOK;1Dcl5ponents.*The following(Olist describestheoptions.#^ `mmInstallm only4xmthesourcestothe SupervisorSeries.t$ J=W Normally,theimagesforPHOTO, PLAYBACK,andI SUPERVISORarelinkedfromobjectfilesincludedintheK distribution.)Ifyouselectthisoption,the documentationQafilesandthesourcefileswillbe installed,buttheutility(imageswillnotbelinked.;%u OWYoushouldselectthisoptiononlyifyouprefertorebuild8theimagesand ``install''thembyhand. `/H/InstallPHOTO(and PLAYBACK).IfyouchoosetoinstallGPHOTO,youwillbeaskedwhetherornotthecommandsBshouldbeaddedtothe DCLTABLES(for system-wideL9 definition)andwhetherornottheon-linehelpshouldbe&addedtoahelplibrary. `IInstall SUPERVISOR.Ifyouchoosetoinstall SUPERVISOR,GiyouwillbeaskedwhetherornotthecommandsshouldGbeaddedtothe DCLTABLES(for system-wide definition)Mandwhetherornottheon-linehelpshouldbeaddedtoashelplibrary. _UNote _D|Forsecurityreasons,itisnot recommendthatyou;includethe SUPERVISORcommandin DCLTABLES.  `?Installthesourcesforeachutility installed.D&& */O2.4.1B InstallingtheSourcesOnlyPO4Thefirstquestionaskedgivesyouthe opportunitytoinstall;Oonlythesourcesforthe SupervisorSeries:`O *&Do&you%want&to&install%ONLY%the%sources%for%the& Supervisor%Series&[NO]?%' GO AnsweringYESwillcausethe installationtoskiptheMO questionsrelatedto individual componentsandbegincopyingLO5the documentationandsourcefiles.+TherewillbenomoreO questionsasked.>( MOIfyouanswerNOthequestionabove,youwillbepromptedOOforwhetherornotyouwishtoinstallthesourcesfortheO5products selected:[O *&Do&you%want&to&install%the&sources%for&the% Supervisor&Series%[YES]?)LO AnsweringYEStothequestionwillinstallthe appropriate@Osourcefilesforthe utilitiestobe installed.*1O2.4.2B InstallingPHOTOandPLAYBACKGO4The installationwillnextaskthe following question:6O *&Do&you%want&to&install%PHOTO%[YES]?+! SOIfyouanswerNOtothe question,the installationwillproceed6Owithaskingabout installing SUPERVISOR., IOIfyouchoosetoinstallPHOTO,youwillbegiventheDO opportunitytohavethePHOTOandPLAYBACKcommandsEO5addedtothe system-wide DCLTABLES. AnsweringYEStoOOthe followingquestionwillcreate``real''DCLcommandsthatIOare automatically availabletoallusersonthesystem:_Ok *&Do&you%want&to&add%the%PHOTO%and&PLAYBACK&commands&to& DCLTABLES%[YES]?-l +hSOYouwillthenbeaskedwhetherornotyouwanttoinstalltheMOon-linehelpforPHOTOandPLAYBACKinahelplibrary.'IfOO5youanswerYES,youwillalsobeaskedwhichlibraryshouldOcontainthehelp.\O *&Do&you%want&to&add%the%PHOTO%and&PLAYBACK&help%to%a%library&[YES]?. 'LOThe installationwillpresentanumberofchoicesfortheOOlibrarytoreceivetheon-linehelp.,InadditiontoofferingMO5the system-widehelplibraryasanoption,the installation@O procedurewilllookforany HLP$LIBRARYcommandsLOdefinedinthesystem directoryandwillofferthosetoo:Mzk This% installation&updates%the&help%library%so%that&the%DCLKz command%"$%HELP%PHOTO"%will%provide& information&about&theNz PHOTO&utility%and&"$&HELP% PLAYBACK"&will%provide% information(zB about&the%PLAYBACK%utility.Qz There&are%several&help% libraries&that%these%help%files%can%be+z placed%in.KSome%of%them%are:)z] SYS$SYSROOT:[SYSHLP]HELPLIB.HLB%z WKU$ROOT:[HELP]WKU_HELP.HLBiO *&Which&library%should&have%PHOTO%and&PLAYBACK&help%"[SYS$SYSROOT:[SYSHLP]HELPLIB.HLB]:/*'O2.4.3B Installing SUPERVISOREO4Whetherornotyou installedPHOTO,the installationHO procedurenextasksifyouwanttoinstall SUPERVISOR:;O *&Do&you%want&to&install% SUPERVISOR%[YES]?0! SOIfyouanswerNOtothe question,the installationwillproceedEOwiththe installationofPHOTO,ifitwas selected.1f IOIfyouchoosetoinstall SUPERVISOR,youwillbegivenDOthe opportunitytohavethe SUPERVISEcommandaddedCO5tothe system-wide DCLTABLES. AnsweringYEStothePO followingquestionwillcreatea``real''DCLcommandthatisDO automatically availabletoallusersonthesystem:ROk *&Do&you%want&to&add%the% SUPERVISE&command%to% DCLTABLES&[NO]? _UNote _BtItisnot recommendedthatyouaddthe SUPERVISE9commandto DCLTABLES. AnsweringNOtothe?%questionwillhelpkeep unauthorizedusersfrom(~tryingtoruntheutility. }2A +SSOYouwillthenbeaskedwhetherornotyouwanttoinstalltheOOon-linehelpfor SUPERVISEinahelplibrary.'IfyouanswerPO5YES,youwillalsobeaskedwhichlibraryshouldcontaintheOhelp.RO *&Do&you%want&to&add%the% SUPERVISOR%help&to&a%library%[YES]?-3 JOLikeitdoesforPHOTO,the installationwillpresentaKOnumberofchoicesforthelibrarytoreceivetheon-lineO5help:_O *&Which&library%should&have% SUPERVISOR%help&"[SYS$SYSROOT:[SYSHLP]HELPLIB.HLB]:4NOIfyou specifiedalibrarytoreceivethePHOTOhelp,thatIOsamelibraryisofferedasthedefaulttothisprompt.i5 )+O2.5BThe Installation CompletesJOUAfterthe configuration questions,theselected componentsMOare installed..FilesarecopiedfromeachsavesetoftheNO installationkitandthe appropriateimagesarelinked,thenRO^all installedfilesarecopiedtotheir destination directories.JO Informationalmessagesaboutthe individual componentsare O displayedav SUPSER054.B 1(/[HUNTER.SUPSER.V54C.B]INSTALL_GUIDE.DECW$BOOK;1Dc9-sneeded.6 ,O 3.2Post-Installation! InformationMOThischaptercontains important informationaboutsettingupCO SupervisorSeries configurationandstartupoptions.  7! )0O3.1BStartingthe SupervisorSeriesROUOncethe installationis complete,youcanstartthe SupervisorAOSeriesby executingthecommand procedureSUPSER_=O STARTUP.COM,locatedinSUPSER_ROOT:[COM].ThisEO^ procedurewilldefinethe SUPSER_ROOTlogicalintheEOsystemlogicalnametableandinstallthePHOTOand?O SUPERVISORimageswiththe necessary privileges.@8+GOTostartthe SupervisorSeries automaticallyatsystemLOstartup,youshouldaddalinelikethe followingtothe;O5systemstartup procedure(SYSTARTUP_V5.COMinO SYS$MANAGER):1O $&$@dua0:[supser.com]supser_startup.com9QOYoushould,ofcourse,specifytheactualdeviceand top-levelEO directorythatyou specifiedduringthe installation.Y22:i0O3.2BCreating SUPERVISOR IdentifiersGOUIfyou installed SUPERVISOR,youmustalsocreatetheMOrights identifiersusedtocontrolaccesstothe SUPERVISORAO functions.0Thereareseven SUPERVISOR identifiers,+O^ describedfullyinthemanual^ SUPERVISOR ReferenceO Guide .';IOAcommand procedurehasbeenprovidedthatcanbeusedSOtocreatethe identifiers.)Torunit,simplygivethe following(O5commandattheDCLprompt:9O $&,@SUPSER_ROOT:[COM]SUPERVISOR_IDENTIFIERS.COM^<4IOThe followingexampleshowsthecommandsusedtocreateOthe identifiers: Oa $#a SET%DEFAULT& SYS$SYSTEM: O $ RUN% AUTHORIZEO UAF>'  ADD/IDENTIFIER& SUPSER_ADVISEO9 UAF>( 9 ADD/IDENTIFIER&SUPSER_OBSERVEO UAF>-  ADD/IDENTIFIER&SUPSER_ADVISE_GROUPO UAF>.  ADD/IDENTIFIER&SUPSER_OBSERVE_GROUPO UAF>+  ADD/IDENTIFIER&SUPSER_LOGGED_OUTOY UAF>& Y ADD/IDENTIFIER& SUPSER_QUIETO UAF>-  ADD/IDENTIFIER&SUPSER_NO_SUPERVISE "_U%Note "_CIfthe identifiersalreadyexist,youwillreceive>errormessagesfrom AUTHORIZEstatingthattheH[ identifiersalreadyexist.'Youcanignoretheseerrors. e=;4O3.3BUsingthe Bookreader Documentation5OUThecommand procedureSUPSER_STARTUP.COM?O automaticallyaddstheSUPSER_ROOT:[DOC]nametoDOthe DECW$BOOKlogicalnamesearchlistifthefile;O^LIBRARY.DECW$BOOKSHELFisfoundinthe[DOC]O directory.e>! .O3.4B RegisteringYour InstallationPOUThe SupervisorSeriesisfreely distributable software,andnoWOlicenseisrequiredtouseit.' Registrationofyour installationisSOatyour discretionandisusedbytheauthoronlyto determineNO^thesizeofthe SupervisorSeriesuserbaseandthefuture(O directionsforthepackage.?kJOTo register,simplysendanotetotheauthorwiththe!O following information:1@ m Installer'sname%CompanynameandaddressD System(s)onwhichthe SupervisorSeriesisrunningEwWhichproductsyou'reusing(PHOTOand/or SUPERVISOR)>Anycommentsand/or suggestionsyoumighthave'A 0OYoucansenditelectronicallyto" goathunter@WKUVX1.BITNET O(or/ %goathunter%WKUVX1.BITNET@UKCC.UKY.EDURO5via Internet),byfaxto+15027455387,orbymailtotheO followingaddress:BmHunterGoatley(Academic Computing,STH226'WesternKentucky University)wBowlingGreen,KY42101USA))E? HOTableB-1:8 SupervisorSeries installationkitsavesets O OFSaveSetKFContents Ob O SUPSER054.A^KThe KITINSTALcommand procedureandits supportingfiles,objectcodecom-7Kmontothe SupervisorSeries components.Oq SUPSER054.BZKq Documentationfiles,in PostScript, Bookreader,andplainASCIIformats.O SUPSER054.C,K SupervisorSeriessourcefiles. O tDD*CL5)6O A.!Sample! Supervisor!Series! InstallationAOThis appendix includes a sample Supervisor SeriesO installation. On $1n @SYS$UPDATE:VMSINSTAL% SUPSER054%MUA0:Ct VAX/VMS%Software%Product& Installation% Procedure%V5.5)O It%is% 13-MAY-1992%at%07:30.BO Enter%a&question&mark%(?)&at&any%time&for%help.WOU %VMSINSTAL-W-NOTSYSTEM,%You%are&not%logged%in%to%the&SYSTEM%account.NO %VMSINSTAL-W-ACTIVE,%The% following& processes%are%still%active:t Polter&Goatt- DECW$TE_0F2B7Ou *&Do&you%want&to&continue&anyway%[NO]? u YESSO *&Are%you% satisfied&with%the&backup%of%your&system%disk&[YES]? j   j M  RETURN u M j  8OU The% following&products&will%be% processed: SUPSER%V5.4 # 8>t Beginning& installation%of%SUPSER%V5.4%at%07:30 #C WFO %VMSINSTAL-I-RESTORE,% Restoring&product%save%set%A%...]O] %VMSINSTAL-I-RELMOVED,& Product's%release&notes&have%been%moved%to% SYS$HELP.0z Supervisor%Series&v5.4% Installation # R zr SUPERVISOR%and&PHOTOJz Copyright%&1992%by%Hunter&Goatley.KAll%Rights& Reserved.CD Redistribution&for%no% commercial&gain%is% permitted. # VO *&Do&you%want&to&purge&files&replaced&by&this% installation&[YES]?  M RETURN M FzD The% Supervisor&Series%is% installed%in%its&own%rootedGz directory%to%avoid%mixing% Supervisor%Series%files%withJz normal%VMS%files.KThe% directory&can%reside%on%any&disk.Fz= THERE&ARE%NO%FILES%COPIED%TO% SYS$SYSTEM,% SYS$LIBRARY,Hz etc.K(The%only%file&copied%to%a&VMS% directory%is%theBz Release%Notes%file,%which%is%copied&to& SYS$HELP.)dO> *&Enter&the% top-level% directory&for%the% Supervisor%Series%[WKUVX1$DUA0:[SUPSER]]: U   U  Mk < RETURN `  M U T _O %VMSINSTAL-I-SYSDIR,%This&product%creates%system%disk% directoryKDUA0:[SUPSER].Lz The% Supervisor&Series%is%normally% installed%by%linking%theOz< object%files%packed%with%the%kit.JThe& installation%will&alsoNz give%you&a%c>e SUPSER054.B 1(/[HUNTER.SUPSER.V54C.B]INSTALL_GUIDE.DECW$BOOK;1Dc'<hance&to&add%DCL%commands%and&on-line%help%toz your%system.Lz6 The%sources&are%also& provided.JYou&can%either%install%theKz} products&and%the%sources,%or%you&can%install&the%sources-z only%and&rebuild%them%by%hand.Rz/ If&you%only&want%to%install%the%sources%and%want%to%skip&theJzw product%installations,%enter%YES&to&the% following%prompt.`O *&Do&you%want&to&install%ONLY%the%sources%for%the& Supervisor%Series&[NO]? *   * MA  RETURN 5 M *  MzV The%answer%to%the& following%question%will& determine%whetherKz the% appropriate%source%files%for& SUPERVISOR%and&PHOTO&arez installed.[OO *&Do&you%want&to&install%the&sources%for&the% Supervisor&Series%[YES]?   M M RETURN M e 6O *&Do&you%want&to&install%PHOTO%[YES]?   M RETURN M  Oz6 The%PHOTO%command&can%be%added%to%the% system-wide% DCLTABLES,Kz~ making%the%command% available%to%all&users,%or%it%can%be+z defined%as%a%foreign&command.eO7 *&Do&you%want&to&install%the&PHOTO&command%in%the& system-wide& DCLTABLES%[YES]?   M 4 RETURN M M MO *&Do&you%want&to&add%the%PHOTO%help%to%a&library%[YES]? u  xM RETURN xM  Mz This% installation&updates%the&help%library%so%that&the%DCLKzf command%"$%HELP%PHOTO"%will%provide& information&about&theNz PHOTO&utility%and&"$&HELP% PLAYBACK"&will%provide% information(z about&the%PLAYBACK%utility.Qz_ There&are%several&help% libraries&that%these%help%files%can%be+z placed%in.KSome%of%them%are:)z SYS$SYSROOT:[SYSHLP]HELPLIB.HLB%zX WKU$ROOT:[HELP]WKU_HELP.HLBiO *&Which&library%should&have%PHOTO%and&PLAYBACK&help%"[SYS$SYSROOT:[SYSHLP]HELPLIB.HLB]:     M&  RETURN M   ;OA *&Do&you%want&to&install% SUPERVISOR%[YES]?    M? RETURN  M W Gz The% SUPERVISE%command%can%be%added%to%the& system-wideIz DCLTABLES,%making&it& available%to%all%users,&or&it&canJz@ be&defined%as%a%foreign&command%on%a%per-user%basis%orz in& SYS$SYLOGIN.Kz For%security% purposes,%it%is% recommended%that%the%commandGz9 be&defined%as%a%foreign&command%on%a%per-user%basis.RO *&Do&you%want&to&add%the% SUPERVISE&command%to% DCLTABLES&[NO]? j p  j rM  RETURN u rM j  Mz This% installation&updates%the&help%library%so%that&the%DCLOz` command%"$%HELP% SUPERVISE"&will%provide% information%about%thez SUPERVISOR%utility.Sz Whether%or%not&you%elect%to%place%the%files%in%a%library,%theLzY files&will%be%left%in%the% Supervisor%Series% directory&forz future% reference.RO  *&Do&you%want&to&add%the% SUPERVISOR%help&to&a%library%[YES]? E   E M[  RETURN P M E  Kzy Unless%the% SUPERVISE&command%was&added&to&the% system-wideNz DCLTABLES,%it%is%not& recommended&that%the&help%be% installedEz  in&the%system%help%library&(SYS$SYSROOT:[HELPLIB.HLB).Mzr There&are%several&help% libraries&that%can&contain%the&help&z files.JSome%of%them&are:)z# SYS$SYSROOT:[SYSHLP]HELPLIB.HLB%zk WKU$ROOT:[HELP]WKU_HELP.HLBgO *&Which&library%should&contain%the& SUPERVISOR%help%"[SYS$SYSROOT:[SYSHLP]HELPLIB.HLB]:   M  RETURN M  KzJ No&further% questions&will%be%asked.KThe% Supervisor%SeriesPz installation%will&now%continue%for%2%to%15%minutes,% dependingEz on&your%type%of%media%and%the&system%configuration.cOC! %VMSINSTAL-I-SYSDIR,%This&product%creates%system%disk% directoryKDUA0:[SUPSER.EXE].cO! %VMSINSTAL-I-SYSDIR,%This&product%creates%system%disk% directoryKDUA0:[SUPSER.COM].cO! %VMSINSTAL-I-SYSDIR,%This&product%creates%system%disk% directoryKDUA0:[SUPSER.DOC].cO" %VMSINSTAL-I-SYSDIR,%This&product%creates%system%disk% directoryKDUA0:[SUPSER.SRC].7Oc" %SUPSER-I-LINKING,%Linking%image% PHOTO....:O" %SUPSER-I-LINKING,%Linking%image% PLAYBACK....8O# %SUPSER-I-LINKING,%Linking%image% HANDIN.... #" Ht)( Installation&of&SUPSER%V5.5& completed%at%07:34 #' H/t( VMSINSTAL& procedure%done&at&07:35 O) $ ^Gq 4OOTableC-1:7 SupervisorSeriesfilescreatedduring installation O OFFilenameF Description Ob &FilesinSUPSER_ROOT:[COM] O $OSUPERVISOR_IDENTIFIERS.COMECommand proceduretocreate SUPERVISORrightsidenti-[fiersOSUPSER_STARTUP.COM%Startupcommand procedure O> &FilesinSUPSER_ROOT:[DOC] O !OINSTALL_GUIDE.DECW$BOOK+ Installationguide (Bookreader)OcINSTALL_GUIDE.PS+c Installationguide (PostScript)OINSTALL_GUIDE.TXT& Installationguide(ASCII) OWLIBRARY.DECW$BOOKSHELF>WLibrary bookshelffilefor Bookreader documentsOPHOTO.DECW$BOOK! PHOTO ReferenceGuide  (Bookreader) 2OJ PHOTO.HLP2JOn-linehelpforPHOTOandPLAYBACK # .2OPHOTO.PS! PHOTO ReferenceGuide  (PostScript) | 2O> PHOTO.TXT!> PHOTO ReferenceGuide >(ASCII)  "2OSUPERVISOR.DECW$BOOK& SUPERVISOR ReferenceGuide  (Bookreader) 3O2SUPERVISOR.HLP'2On-linehelpfor SUPERVISE 3O SUPERVISOR.PS& SUPERVISOR ReferenceGuide  (PostScript) \ 3O% SUPERVISOR.TXT&% SUPERVISOR ReferenceGuide % (ASCII) 3O SUPSER.DECW$BOOKSHELF5  Bookshelffilefor Bookreader documents O &P FilesinSUPSER_ROOT:[EXE] Ok O  PHOTO.CLD8 CLDfileforPHOTOandPLAYBACKcommands 2O2  PHOTO.EXE02  ExecutableimageforPHOTOutility s  2O  PLAYBACK.EXE3  ExecutableimageforPLAYBACKutility 2O%  HANDIN.CLD)% CLDfileforHANDINcommand 2O  HANDIN.EXE1  ExecutableimageforHANDINutility 2 #  O  OT 2)mp OnlyifPHOT SUPSER054.B 1(/[HUNTER.SUPSER.V54C.B]INSTALL_GUIDE.DECW$BOOK;1DcJKOwas installed O 3.m Onlyif SUPERVISORwas installedH Wk O OFilename Description O &AFilesinSUPSER_ROOT:[EXE] O\ OSUPERVISOR.CLD,CLDfilefor SUPERVISEcommand X 3O)SUPERVISOR.EXE4) Executableimagefor SUPERVISEcommand x 3 O &FilesinSUPSER_ROOT:[SRC] 1 O OBADVISORMAR.MAR-GMACROsourceforADVISORmodule +3O BUILD.COMBCommand proceduretobuildtheSeriesfromsourceO:BUILD_MACRO.COMA:Command proceduretobuildtheSeriesfromMACROsource #G AOCHECK_PRIVS.B322BLISS-32sourcefor privilegechecksO{CHECK_PRIVS.MAR3{MACRO-32source generatedbyBLISS-32O CVTB32MAR.TPU2ConvertBLISS-32.LISfilesto.MAROoCVTDOCHELP.TPU;oConvertDOCUMENT.HLPtoregular.HLPfilesO DESCRIP.MMS/MMS descriptionfileforbuildingOb HANDIN.MAR3bMACRO-32source generatedbyBLISS-32 ( F2OHANDIN_CLD.CLD2CLD definitionforHANDINCLItable 2OVHANDIN_SUBS.B324VBLISS-32sourceforHANDIN subroutines 2 :2OHANDIN_SUBS.MAR3MACRO-32source generatedbyBLISS-32 ( 2OI  HANDIN.MAR3I MACRO-32source generatedbyBLISS-32 ( - 2O  PHOTO.B32= BLISS-32sourcefor PHOTO/HANDINmainroutines 2 # O=  PHOTO.MAR3= MACRO-32source generatedbyBLISS-32 ( ! 2O  PHOTO.SDML3 VAXDOCUMENTsourceforPHOTOmanual 2O1  PHOTOMAR.MAR61 MACROsupportroutinesforterminalI/OO  PHOTONP.B328 BLISS-32sourcefor nonpaged-poolroutinesO$  PHOTONP.MAR3$ MACRO-32source generatedbyBLISS-32O  PHOTOP1.B32/ BLISS-32sourceforP1-spacecode O  OS 1,mo Onlyifsourceswere installed O 2)m OnlyifPHOTOwas installed O"3.m>Onlyif SUPERVISORwas installedI D O OFilename Description O &EFilesinSUPSER_ROOT:[SRC] )1 O` O PHOTOP1.MAR3MACRO-32source generatedbyBLISS-32O. PHOTOPAT.B320.BLISS-32sourcefor non-pagedcodeO PHOTOPAT.MAR3MACRO-32source generatedbyBLISS-32O! PHOTO_CLD.CLD1!CLD definitionforPHOTOCLItable n 2O PLAYBACK.B328BLISS-32sourceforPLAYBACKmainroutine 2O PLAYBACK.MAR3MACRO-32source generatedbyBLISS-32 ( 2OPLAYBACK_CLD.CLD4CLD definitionforPLAYBACKCLItable  r2OPLAYBACK_MSG.MSG2MESSAGEsourceforPLAYBACKmessages r 2OPLAYBACK_RTN.MAR>MACRO-32source generatedbyBLISS-32 M3OSUPSER054.SDML4VAXDOCUMENTsourceforreleasenotesO] SUPSERMSG.MSG6]MESSAGEsourceforPHOTOand SUPERVISORmessages /3O$ SUPSER_MACROS.R32!$ BLISS-32REQUIREfile # zO  TERMBLI.R32* BLISS-32libraryREQUIREfileO  TTLOOKUP.B32; BLISS-32sourceforterminallookuproutinesO  TTLOOKUP.MAR3 MACRO-32source generatedbyBLISS-32O  VERSION.B32? BLISS-32sourceforroutinetogetimageidentO  VERSION.MAR3 MACRO-32source generatedbyBLISS-32 O (6 FilesinSYS$COMMON:[SYSHLP] OQ !O SUPSER054.RELEASE_NOTES6 Releasenotesforthe SupervisorSeries O  O" 1,m> Onlyifsourceswere installed O 2)m OnlyifPHOTOwas installed O 3.m Onlyif SUPERVISORwas installed O> jj&D[-O B.!Contents!of! Distribution"KitFOThe SupervisorSeriesisprovidedinaVMSINSTALlableTO distributionkit consistingofthreesavesets.)Eachsavesetis OBbriefly describedinBTableB-1.*Dl?E--F2OC.!Files!Created!During! InstallationOdThefilesindTableC-15darecreatedduringthe installationof,Othe SupervisorSeries software.*F'r?G..   PrefaceIntended AudienceDocument StructureDocument StructureRelated DocumentsRelated Documents41. Preparing to Install the Supervisor Series 1.1 Prerequisite Software-1.2 Accessing the Online Release Notes.1.3 Installation Procedure Requirements.1.3 Installation Procedure Requirements.1.3 Installation Procedure Requirements*2. Installing the Supervisor Series2.1 Invoking VMSINSTAL2.1 Invoking VMSINSTAL2.1 Invoking VMSINSTAL2.1 Invoking VMSINSTAL2.1 Invoking VMSINSTAL2.1 Invoking VMSINSTAL2.2 Installation Options2.2 Installation Options'2.3 Disk and Directory Selection'2.3 Disk and Directory Selection'2.3 Disk and Directory Selection2.4 Component Selection2.4 Component Selection2.4 Component Selection2.4 Component Selection(2.4.1 Installing the Sources Only(2.4.1 Installing the Sources Only(2.4.1 Installing the Sources Only(2.4.1 Installing the Sources Only*2.4.2 Installing PHOTO and PLAYBACK*2.4.2 Installing PHOTO and PLAYBACK*2.4.2 Installing PHOTO and PLAYBACK*2.4.2 Installing PHOTO and PLAYBACK*2.4.2 Installing PHOTO and PLAYBACK"2.4.3 Installing SUPERVISOR"2.4.3 Installing SUPERVISOR"2.4.3 Installing SUPERVISOR"2.4.3 Installing SUPERVISOR"2.4.3 Installing SUPERVISOR"2.4.3 Installing SUPERVISOR%2.5 The Installation Completes'3. Post-Installation Information)3.1 Starting the Supervisor Series)3.1 Starting the Supervisor Series)3.1 Starting the Supervisor Series*3.2 Creating SUPERVISOR Identifiers*3.2 Creating SUPERVISOR Identifiers*3.2 Creating SUPERVISOR Identifiers-3.3 Using the Bookreader Documentation(3.4 Registering Your Installation(3.4 Registering Your Installation(3.4 Registering Your Installation(3.4 Registering Your Installation(3.4 Registering Your Installation/A. Sample Supervisor Series Installation&B. Contents of DistributM SUPSER054.B 1(/[HUNTER.SUPSER.V54C.B]INSTALL_GUIDE.DECW$BOOK;1DcZion Kit?Table B- 1: Supervisor Series installation kit save sets+C. Files Created During InstallationFTable C- 1: Supervisor Series files created during installationFTable C- 1: Supervisor Series files created during installationFTable C- 1: Supervisor Series files created during installation& & 123456789INSTALL_GUIDE_PREFINSTALL_GUIDE_3INSTALL_GUIDE_413INSTALL_GUIDE_515INSTALL_GUIDE_CH1INSTALL_GUIDE_8INSTALL_GUIDE_9INSTALL_GUIDE_102021INSTALL_GUIDE_CH2INSTALL_GUIDE_CH2_VMSINSTAL2425262728INSTALL_GUIDE_1530INSTALL_GUIDE_CH2_43233INSTALL_GUIDE_16353637INSTALL_GUIDE_CH2_5394041INSTALL_GUIDE_CH2_643444546INSTALL_GUIDE_CH2_74849505152OPTINSTPOSTINSTINSTALL_GUIDE_365657CREATE_IDS5960INSTALL_GUIDE_33INSTALL_GUIDE_3763646566INSTALL_GUIDE_APP_AINSTALL_GUIDE_APP_BSSTABINSTALL_GUIDE_APP_CFILETAB7273 B-ADOBE-Helvetica-Medium-R-Normal--*-120-*-*-P-*-ISO8859-1@-ADOBE-Helvetica-Bold-R-Normal--*-180-*-*-P-*-ISO8859-1@-ADOBE-Helvetica-Bold-R-Normal--*-120-*-*-P-*-ISO8859-1@-ADOBE-Helvetica-Bold-R-Normal--*-100-*-*-P-*-ISO8859-1B-ADOBE-Helvetica-Medium-R-Normal--*-100-*-*-P-*-ISO8859-1@-ADOBE-Helvetica-Bold-R-Normal--*-140-*-*-P-*-ISO8859-1O-ADOBE-New Century Schoolbook-Medium-R-Normal--*-140-*-*-P-*-ISO8859-1O-ADOBE-New Century Schoolbook-Medium-R-Normal--*-120-*-*-P-*-ISO8859-1/-ADOBE-Symbol-*-R-*--*-140-*-*-P-*-*-*O -ADOBE-New Century Schoolbook-Medium-I-Normal--*-140-*-*-P-*-ISO8859-1@ -ADOBE-Courier-Medium-R-Normal--*-120-*-*-M-*-ISO8859-1> -ADOBE-Courier-Bold-R-Normal--*-120-*-*-M-*-ISO8859-1M -ADOBE-New Century Schoolbook-Bold-R-Normal--*-140-*-*-P-*-ISO8859-1O -ADOBE-New Century Schoolbook-Medium-I-Normal--*-120-*-*-P-*-ISO8859-1O-ADOBE-New Century Schoolbook-Medium-R-Normal--*-100-*-*-P-*-ISO8859-1RZU..U^ ZD& _l Tk f c Pj*IvzB{N^VX+- -  /22P37DSj6^)T-FSUPSER054.SDML4VAXDOC(*[HUNTER.SUPSER.V54C.B]INSTALL_GUIDE.PS;1+, ./ 4i-1(0123KPWO56`7`E89GHJ %!PS-Adobe-2.0%%Creator: VAX DOCUMENT V2.0K%%+Copyright 1986,1987,1988,1989,1990,1991 DIGITAL EQUIPMENT CORPORATION. %%+All Rights Reserved.%%DocumentFonts: (atend)%%Pages: (atend) %%EndComments*/DEC_DVC$dict where { %FIND DICTIONARY pop}{ %else /DEC_DVC$dict 300 dict def } ifelse %/BeginDVC$PSDoc { %BEGIN DOCUMENT vmstatus pop pop 0 eq {' DEC_DVC$dict begin InitializeState }{ %else< /DVC$PSJob save def DEC_DVC$dict begin InitializeState /DVC$PSFonts save def } ifelse} def"/EndDVC$PSDoc { %END DOCUMENT'% --- Preserving current page count --- vmstatus pop pop 0 eq { end }{ %else/ DVC$PSFonts restore end DVC$PSJob restore } ifelse} def%DEC_DVC$dict begin%5mark % CREATE ISOLatin1Encoding if not there already/ISOLatin1Encoding0 8#000 1 8#054 {StandardEncoding exch get} for  /minus0 8#056 1 8#217 {StandardEncoding exch get} for /dotlessi 0 8#301 1 8#317 {StandardEncoding exch get} for H /space /exclamdown /cent /sterling /currency /yen /brokenbar /section G /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen L /registered /macron /degree /plusminus /twosuperior /threesuperior /acute E /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine L /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave O /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute O /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde L /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave M /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute G /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute N /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntildeJ /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave < /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis 9 /ISOLatin1Encoding where not {256 array astore def} if cleartomark%-/DOCPSE ISOLatin1Encoding 256 array copy def "mark % CREATE DOCPSE ENCODING 8#055 /hyphenC 8#201 /bullet 8#202 /emdash 8#203 /endash 8#204 /daggerC 8#205 /daggerdbl 8#206 /registered 8#207 /trademark %8#210 /Delta? 8#211 /fi 8#212 /fl 8#213 /OE 8#214 /oe 8#215 /Ydieresis) counttomark -1 bitshift % DIVIDE BY 2: {DOCPSE 3 1 roll put} repeat % STACK NOW CONTAINS MARK cleartomark%9/reencodedict 10 dict def %Local storage for "ReENCODE"3/ReENCODE { % /basefont /newfont encoding ReENCODE7 /newencoding exch def %ARG: NAME OF ENCODING VECTORC /newfontname exch def %ARG: NEW NAME FOR FONT AFTER RE-ENCODING findfont> /basefontdict exch def %ARG: NAME OF FONT TO BE RE-ENCODED? basefontdict maxlength dict begin %CREATE AND OPEN NEW DICT= basefontdict { %COPY ENTRIES FROM BASE FONT DICT TO NEW ONE 1 index /FID ne {5 def %IF NOT THE ONE WE'RE ENCODING, JUST COPY PTRS; SUPSER054.B 1(([HUNTER.SUPSER.V54C.B]INSTALL_GUIDE.PS;1i } { %else: pop pop %IGNORE FID AND ENCODING FOR ONE WE'RE ENCODING } ifelse } forall, /FontName newfontname def %DEFINE NEW NAME 6 /Encoding newencoding def %DEFINE NEW ENCODING VECTOR; newfontname currentdict definefont %TURN IT INTO A PS FONT3 pop %IGNORE MODIFIED DICT RETURNED BY DEFINEFONT end} def%/cvsstr 64 string def/tempmatrix matrix def%/BP { % BEGIN PAGE /Magnification exch def /Colorsused 0 def /processcolor false def /RVmatrix matrix def /DVC$PSPage save def} def%*/EP {DVC$PSPage restore} def % END PAGE%5/XP { % EXIT PAGE (TEMPORARILY) TO ADD FONTS/CHARSE % SAVE CURRENT POINT AND COLOR INFORMATION SO IT CAN BE RESET LATERH matrix currentmatrix aload pop currentrgbcolor Colorsused processcolor# /Xpos where {pop Xpos} {0} ifelse# /Ypos where {pop Ypos} {0} ifelse9 /currentpoint cvx stopped {0 0 moveto currentpoint} if / /DVC$PSPage where {pop DVC$PSPage restore} if moveto /Ypos exch def /Xpos exch def9 /processcolor exch def /Colorsused exch def setrgbcolor matrix astore setmatrix} def%-/RP {/DVC$PSPage save def} def % RESUME PAGE%A/PF {GlobalMode LocalMode} def % PURGE FONTS TO RECLAIM MEMORY%@/GlobalMode { % SWITCH TO BASE SAVE/RESTORE LEVEL, SAVING STATEK /DEC$EDMS_SEPARATE_COLORS where{pop DEC$EDMS_SEPARATE_COLORS}{9999}ifelse! RVmatrix aload pop processcolorC PortraitMode PaperWidth PaperHeight PxlResolution Resolution I Magnification Ymax Xorigin Yorigin RasterScaleFactor0 % SAVE CURRENTPOINT INFORMATION TO RESET LATER9 /currentpoint cvx stopped {0 0 moveto currentpoint} if / /DVC$PSPage where {pop DVC$PSPage restore} if# DVC$PSFonts restore RecoverState} def%2/RecoverState { % PRESERVE STATE AT BASE LEVEL 20 copyL /Ypos exch def /Xpos exch def /RasterScaleFactor exch def? /Yorigin exch def /Xorigin exch def /Ymax exch defH /Magnification exch def /Resolution exch def /PxlResolution exch defG /PaperHeight exch def /PaperWidth exch def /PortraitMode exch def< /processcolor exch def matrix astore /RVmatrix exch def< dup 9999 ne{/DEC$EDMS_SEPARATE_COLORS exch def}{pop}ifelse DoInitialScaling RVmatrix concat3 PortraitMode not {PaperWidth 0 SetupLandscape} if Xpos Ypos moveto} def%B/InitializeState { % INITIALIZE STATE VARIABLES TO DEFAULT VALUES. /Resolution 3600 def /PxlResolution 300 def5 /RasterScaleFactor PxlResolution Resolution div def /PortraitMode true def9 /Magnification 1000 def /Xorigin 0 def /Yorigin 0 defC /Xpos 0 def /Ypos 0 def /InitialMatrix matrix currentmatrix defB /Colorsused 0 def /processcolor false def /RVmatrix matrix def} def%D/LocalMode { % SWITCH FROM BASE SAVE/RESTORE LEVEL, RESTORING STATE= /Ypos exch def /Xpos exch def /RasterScaleFactor exch def6 /Yorigin exch def /Xorigin exch def /Ymax exch defH /Magnification exch def /Resolution exch def /PxlResolution exch defE /PaperHeight exch def /PaperWidth exch def /PortraitMode exch def: /processcolor exch def matrix astore /RVmatrix exch def< dup 9999 ne{/DEC$EDMS_SEPARATE_COLORS exch def}{pop}ifelse DoInitialScaling RVmatrix concat3 PortraitMode not {PaperWidth 0 SetupLandscape} if Xpos Ypos moveto- /DVC$PSFonts save def /DVC$PSPage save def} def% % ABBREVIATIONS /S /show load def/SV /save load def/RST /restore load def/Yadjust {Ymax exch sub} def%C/SXY { % (x,y) POSITION ABSOLUTE, JUST SET Xpos & Ypos, DON'T MOVE( Yadjust /Ypos exch def /Xpos exch def} def%$/XY { % (x,y) POSITION ABSOLUTE7 Yadjust 2 copy /Ypos exch def /Xpos exch def moveto} def%#/X { % (x,0) POSITION ABSOLUTEF currentpoint exch pop 2 copy /Ypos exch def /Xpos exch def moveto} def%$/Y { % (0,y) POSITION ABSOLUTE ' currentpoint pop exch Yadjust 2 copy' /Ypos exch def /Xpos exch def moveto} def%$/xy { % (x,y) POSITION RELATIVE9 neg rmoveto currentpoint /Ypos exch def /Xpos exch def} def%#/x { % (x,0) POSITION RELATIVE7 0 rmoveto currentpoint /Ypos exch def /Xpos exch def} def%#/y { % (0,y) POSITION RELATIVE@ 0 exch neg rmoveto currentpoint /Ypos exch def /Xpos exch def} def%/R { % DRAW A RULE$ /ht exch def /wd exch def gsave % 0 setgray currentpoint newpath moveto 0 ht rlineto wd 0 rlineto$ 0 ht neg rlineto wd neg 0 rlineto( closepath fill grestore wd 0 rmoveto, currentpoint /Ypos exch def /Xpos exch def} def%D/RES { % RES/ /Resolution exch def /PxlResolution exch def5 /RasterScaleFactor PxlResolution Resolution div def DoInitialScaling} def%,/DoInitialScaling { % DO INITIAL SCALING6 InitialMatrix setmatrix 72 Resolution div dup scale} def%2/PM { % PM XP/ /PaperWidth exch def /PaperHeight exch def0 /Ymax PaperHeight def /PortraitMode true def DoInitialScaling RP} def 8%9*/SetupLandscape {translate 90 rotate} def3/LM { % LM t XP/ /PaperWidth exch def /PaperHeight exch defd1 /Ymax PaperWidth def /PortraitMode false def0 DoInitialScaling PaperWidth 0 SetupLandscape RP} def B%N*/MAG { % CHANGE MAGNIFICATION SETTING! XP /Magnification exch def RP} def%%e8/SPB { % SPB - BEGIN "\SPECIAL" MODE- Yadjust /Yorigin exch def /Xorigin exch def  currentrgbcolor Colorsused& GlobalMode Xorigin Yorigin translate9 Resolution 72 div dup scale % RESTORE DEFAULT SCALINGlB Magnification 1000 div dup scale % ADJUST FOR ANY MAGNIFICATIONA /Xpos Xpos 72 Resolution div mul 1000 Magnification div mul defiA /Ypos Ypos 72 Resolution div mul 1000 Magnification div mul defEG /spsavobj save def %SAVE STATE & STACK DEPTH FOR CLEANUP AFTER FIGUREgG /showpage {} def %DISABLE DURING FIGURE; `RESTORE' WILL BLOW DEF AWAY> /DEC$EDMS_SEPARATE_COLORS where % if separating colors. { % thenC pop processcolor % if using process colorsm0 { % thenE DEC$EDMS_SEPARATE_COLORS 0 ge % if on color pass .ge. 0l2 { % then@ { pop 1 } settransfer % write only white2 }{ % else" /DEC$EDMS_TRAP_SWELL where, { pop DEC$EDMS_SEPARATE_COLORS -4 eq5 { /EDMS_setlinewidth /setlinewidth load def K /setlinewidth { DEC$EDMS_TRAP_SWELL mul EDMS_setlinewidth } defe } if } ifE /EDMS_setrgbcolor % set up for a redefine K /setrgbcolor load def % of the setrgbcolor operatorcK currentscreen % get the current screen parameterseF /DEC$EDMS_SCREEN_ANGLE where % if changing the screen angle. { % thenA pop exch pop % replace the old angleN< DEC$EDMS_SCREEN_ANGLE exch % with the new one } ifJ /DEC$EDMS_SCREEN_FREQ where % if changing the screen frequency. { % thenE pop 3 -1 roll pop % replace the old frequencyt< DEC$EDMS_SCREEN_FREQ 3 1 roll % with the new one } if@ setscreen %  H,8 SUPSER054.B 1(([HUNTER.SUPSER.V54C.B]INSTALL_GUIDE.PS;1iySet the new parameters /setrgbcolor { /b exch deff /g exch def /r exch defe /c3 1 r sub defC /m3 1 g sub def  /y3 1 b sub def M /k c3 m3 2 copy gt { exch } if pop y3 2 copy gt { exch } if pop def  /ik 1 k sub defo ik 0 nec# { /c4 c3 k sub ik div defb# /m4 m3 k sub ik div defE# /y4 y3 k sub ik div def/ }e) { /c4 /DEC$EDMS_BLACK_GEN whereY7 { pop DEC$EDMS_BLACK_GEN } { 0 } ifelse defN /m4 c4 def /y4 c4 def } ifelseL 1 [ c4 m4 y4 k ] % pick the separation for this colorI DEC$EDMS_SEPARATE_COLORS % pass ( -1 = Cyan, -2 = Magenta,pC neg 1 sub get sub setgray % -3 = Yellow, -4 = Black ) } defr3 } ifelse % endifEN }{ % else (if not using process colors)D DEC$EDMS_SEPARATE_COLORS 0 ne % if not on color pass 02 { % then@ { pop 1 } settransfer % write only white3 } if % endif1 } ifelse % endifC/ } if % endif{ mark} defY% #/SPE { % SPE - END "\SPECIAL" MODEe cleartomarkp spsavobj restore nD 1000 Magnification div dup scale % UN-ADJUST FOR ANY MAGNIFICATIONA 72 Resolution div dup scale % RESTORE DEFAULT INTERNAL SCALINGo LocalModee" /Colorsused exch def setrgbcolor} def%e/PP%RK% If DEC$EDMS_MAKE_FILM is defined, it will add the crop & alignment marks, J% and the document name, page number, & ink color identifiers to the page.%E% Formal Arguments: None%$% Referenced Variables: DocumentName% Colorsused% Currentpagecount% DEC$EDMS_MAKE_FILMo%s"% Referenced Procedures: AlignMark%e=% Side Effects: Leaves the current font as Helvetica 8 point. "% Creates the variable "junkstr".%l{ /PageNumber exch def1 /DEC$EDMS_MAKE_FILM where % if making film...  { pope@ /DEC$EDMS_SUPPRESS_COLOR where % if color suppression is onC { pop /DEC$EDMS_SEPARATE_COLORS 0 def % then default to color 0R2 /Colorsused 1 def } if % ...for everythingO 2 DEC$EDMS_SEPARATE_COLORS exp cvi Colorsused and 0 ne %if correct separatnh@ DEC$EDMS_SEPARATE_COLORS 0 lt or % ...or if a process color/ { /Helvetica findfont 400 scalefont setfont  20 setlinewidth 0 setgrayP gsavec< PaperWidth 1000 add 200 translate 90 rotate 0 0 moveto* (Ink: ) show % show the ink color# DEC$EDMS_SEPARATE_COLORS 0 geE; { DEC$EDMS_COLOR_NAMES DEC$EDMS_SEPARATE_COLORS get }a= { (Process ) show [ (Cyan) (Magenta) (Yellow) (Black) ]i< DEC$EDMS_SEPARATE_COLORS neg 1 sub get } ifelse showB /DEC$EDMS_SUPPRESS_COLOR where % if color suppression is onI { pop ( (Color Suppression enabled)) show } if % tell them about it 1800 0 rmovetod- (Page: ) show % show the page number/7 /junkstr 4 string def PageNumber junkstr cvs showx7 ( of ) show DEC$EDMS_TOTAL_PAGES junkstr cvs showc$ DEC$EDMS_SEPARATE_COLORS -4 eq0 { 1800 0 rmoveto (Trap Swell Factor: )showE /DEC$EDMS_TRAP_SWELL where % if trap swell factor is suppliedS0 { pop DEC$EDMS_TRAP_SWELL 6 string cvs }% { (1 (default)) } ifelse showa } if9 DEC$EDMS_SEPARATE_COLORS 0 lt % if a process colorg {e@ PaperHeight 2 div 600 add 0 moveto (Screen Angle: ) show$ /DEC$EDMS_SCREEN_ANGLE whereB { pop DEC$EDMS_SCREEN_ANGLE junkstr cvs } % if defined: { ((default)) } ifelse show % if not defined1 1800 0 rmoveto (Screen Frequency: ) showo# /DEC$EDMS_SCREEN_FREQ whereeA { pop DEC$EDMS_SCREEN_FREQ junkstr cvs } % if definedS: { ((default)) } ifelse show % if not defined } if grestore gsaveA- -600 200 translate 90 rotate 0 0 movetoaF (Document: ) show DEC$EDMS_DOCUMENT_ID show % show document name( PaperHeight 2 div 600 add 0 movetoG (This film is the property of Digital Equipment Corporation) showS grestore1 /mask 15 % all crop marks on by defaultfN /DEC$EDMS_SUPPRESS_CROPMARKS where % if def'd, xor in suppression mask8 { pop DEC$EDMS_SUPPRESS_CROPMARKS xor } if def mask 1 and 1 eq 6 { PaperWidth PaperHeight moveto % Upper RightL 450 0 rmoveto 900 0 rlineto -1350 1350 rmoveto 0 -900 rlineto } if mask 2 and 2 eqt- { PaperWidth 0 moveto % Lower RightL 450 0 rmoveto 900 0 rlineto -1350 -1350 rmoveto 0 900 rlineto } if mask 4 and 4 eqf$ { 0 0 moveto % Lower LeftM -450 0 rmoveto -900 0 rlineto 1350 -1350 rmoveto 0 900 rlineto } ifm mask 8 and 8 eqd- { 0 PaperHeight moveto % Upper LeftoM -450 0 rmoveto -900 0 rlineto 1350 1350 rmoveto 0 -900 rlineto } if stroke7 /mask 15 % all registratn marks on by defaultoN /DEC$EDMS_SUPPRESS_REGMARKS where % if defined, xor in suppression mask7 { pop DEC$EDMS_SUPPRESS_REGMARKS xor } if defa% mask 1 and 1 eq % Top Center 5 { gsave PaperWidth 2 div PaperHeight 900 addo% /DEC$EDMS_POSITION_REGMARKS where 7 { pop DEC$EDMS_POSITION_REGMARKS -50 mul add } ifP% translate AlignMark grestore } ife' mask 2 and 2 eq % Right Center " { gsave PaperWidth 900 add# /DEC$EDMS_POSITION_REGMARKS wheres4 { pop DEC$EDMS_POSITION_REGMARKS -50 mul add } if6 PaperHeight 2 div translate AlignMark grestore } if( mask 4 and 4 eq % Bottom Center% { gsave PaperWidth 2 div -900t# /DEC$EDMS_POSITION_REGMARKS wheree3 { pop DEC$EDMS_POSITION_REGMARKS 50 mul add } ifI# translate AlignMark grestore } if & mask 8 and 8 eq % Left Center { gsave -900# /DEC$EDMS_POSITION_REGMARKS wherec3 { pop DEC$EDMS_POSITION_REGMARKS 50 mul add } ifd5 PaperHeight 2 div translate AlignMark grestore } if7 showpage }T0 { % disabled the 'erasepage ' that was here! } ifelse }R { showpage } ifelseX} defs1/CLRP { % disabled the 'erasepage' that was here!e } defo%p+/DMF { % /font-name DMFiB /psz exch def /nam exch def nam findfont psz scalefont setfont} defR%G3/concatnam { % /abcd (xxx) concatnam ==> /abcdxxxT /xxx exch def /nam exch def /namstr nam cvsstr cvs def1 /newnam namstr length xxx length add string def  newnam 0 namstr putintervalo& newnam namstr length xxx putinterval newnam cvn c} def% %/strip { % /abcdef 2 strip ==> /cdef  /num exch def /nam exch def /namstr nam cvsstr cvs def# /newlen namstr length num sub def $ namstr num newlen getinterval cvn} def /% ROUTINES TO HANDLE PACKING/UNPACKING NUMBERS8/PackHW { % PackHW --> 0 /num exch def /pos exch def /target exch def: num 16#0000FFFF and 1 pos sub 16 mul bitshift target or} defw</PackByte { % PackByte --> 0 /num exch def /pos exch def /target exch def: num 16#000000FF and 3 pos sub 8 mul bitshift target or} defp4/UnpkHW { % UnpkHW -->  /num exch def /pos exch def0 num 1 pos sub -16 mul bitshift 16#0000FFFF and) dup 16#00007FFF gt {16#00010000 sub} if } defC8/UnpkByte { % UnpkByte -->  /num exch def /pos exch def/ num 3 pos sub -8 mul bitshift 16#000000FF and ) dup 16#0000007F gt {16#00000100 sub} if } defD%S/ps-scalefont { J % FOR PS FONTS, LOOK AT SIZE REQUESTED. IF IT HAS A DECIMAL REMAINDERL % EQUIVALENT TO .001-.009 POINTS (I.E., .050-.450 VAXDOC UNITS), THAT'S H % A FLAG TO STRETCH IT VERTICALLY BY ADDING 1-9 EXTRA POINTS TO THE  % VERTICAL SCALING.SA % save requested size - as entered and as integere, dup /x-size exch def cvi /x-int exch def; % calc decimal remainder, mul x 1000, round ; x-size x-int sub 1000 mul round cvi /remainder exch def % % see how we scale... ) remainder 50 lt remainder 450 gt or {3& % scale isomorphically /ystretch 0 def  x-size scalefont } {k& % scale anamorphically /ystretch remainder def + x-int ystretch add /y-size exch def/' [x-int 0 0 y-size 0 0] makefont_ } ifelse} def % (/DPSF { % /procname size /fontname DPSF< findfont exch ps-scalefont [ exch /setfont cvx ] cvx def} deff%e/PXLBuildCharDict 17 dict def /CMEncodingArray 256 array def90 1 255 {CMEncodingArray exch dup cvsstr cvs cvn put} fora*/RasterConvert {RasterScaleFactor div} def/TransformBBox { aload pop3H /BB-ury exch def /BB-urx exch def /BB-lly exch def /BB-llx exch def. [ BB-llx RasterConvert BB-lly RasterConvert / BB-urx RasterConvert BB-ury RasterConvert ]r} def /RunLengthToRasters {O % none yet} defn7/GenerateRasters { % GENERATE RASTERS FOR "IMAGEMASK" 1 rasters runlength 1 eq {RunLengthToRasters} if } def %r*/int-dict-name {int (-dict) concatnam} def./int-dict {int (-dict) concatnam cvx load} def% /DefinePXLFont {E % ...Y1 % ...[llx lly urx ury]DefinePXLFonttC /newfont exch def /bb exch def /num exch def /psz exch def-C /dsz exch def /pxlmag exch def /ext exch def /int exch defE9 /fnam ext (-) concatnam pxlmag cvsstr cvs concatnam defh newfont not { int-dict-name 13 dict defE int-dict beginF /FontType 3 def /FontMatrix [ 1 dsz div 0 0 1 dsz div 0 0 ] defC /FontBBox bb TransformBBox def /Encoding CMEncodingArray defmI /CharDict 1 dict def CharDict begin /Char-Info num array def endu /BuildChar { PXLBuildCharDict begin, /char exch def /fontdict exch defB fontdict /CharDict get /Char-Info get char get aload pop2 /rasters exch def /PackedWord1 exch def+ 0 PackedWord1 UnpkHW 16#7FFF ne { 8 /PackedWord2 exch def /wx 0 PackedWord1 UnpkHW defN /rows 2 PackedWord1 UnpkByte def /cols 3 PackedWord1 UnpkByte defM /llx 0 PackedWord2 UnpkByte def /lly 1 PackedWord2 UnpkByte defPM /urx 2 PackedWord2 UnpkByte def /ury 3 PackedWord2 UnpkByte defP }{ %else0G /PackedWord2 exch def /PackedWord3 exch def /PackedWord4 exch defnJ /wx 1 PackedWord1 UnpkHW def /rows 0 PackedWord2 UnpkHW defI /cols 1 PackedWord2 UnpkHW def /llx 0 PackedWord3 UnpkHW deftI /lly 1 PackedWord3 UnpkHW def /urx 0 PackedWord4 UnpkHW defN) /ury 1 PackedWord4 UnpkHW def  } ifelse rows 0 lt {w( /rows rows neg def /runlength 1 def }{ %elseb /runlength 0 def } ifelseU wx 0. llx RasterConvert lly RasterConvert < urx RasterConvert ury RasterConvert setcachedevice rows 0 ne { gsave) cols rows true RasterScaleFactor jB 0 0 RasterScaleFactor neg llx .5 add neg ury .5 add : tempmatrix astore GenerateRasters imagemask grestore } if ende } defh end ! fnam int-dict definefont pop r } if f/ int-dict-name fnam findfont psz scalefont defW3 currentdict int [ int-dict /setfont cvx ] cvx puts} def B/PXLF { true DefinePXLFont} def % SIGNAL THAT FONT ALREADY LOADEDG/PXLNF {false DefinePXLFont} def % SIGNAL THAT FONT NOT ALREADY LOADED %w:/PXLC { % ...* % ...PXLCH /rasters exch def /runlength exch def /cols exch def /rows exch defG /ury exch def /urx exch def /lly exch def /llx exch defh7 /wx exch def /code exch def /int exch def}+ % SEE IF LONG OR SHORT FORMAT IS REQUIREDf? true cols CKSZ rows CKSZ ury CKSZ urx CKSZ lly CKSZ llx CKSZ s TackRunLengthToRows {s/ int-dict /CharDict get /Char-Info get code oC [ 0 0 llx PackByte 1 lly PackByte 2 urx PackByte 3 ury PackByte A 0 0 wx PackHW 2 rows PackByte 3 cols PackByte rasters ] putq }{ %else/ int-dict /CharDict get /Char-Info get code ? [ 0 0 urx PackHW 1 ury PackHW 0 0 llx PackHW 1 lly PackHWMP 0 0 rows PackHW 1 cols PackHW 0 0 16#7FFF PackHW 1 wx PackHW rasters ] put } ifelse} deff%f/CKSZ {abs 127 le and} defA/TackRunLengthToRows {runlength 0 ne {/rows rows neg def} if} def5% /PLOTC {K % PLOTCH /rasters exch def /runlength exch def /cols exch def /rows exch defG /ury exch def /urx exch def /lly exch def /llx exch defe6 /psz exch def /dsz exch def /wx exch def' % "PLOT" A CHARACTER'S RASTER PATTERNe rows 0 ne {o gsave 3 currentpoint translate psz dsz div dup scale > cols rows true RasterScaleFactor 0 0 RasterScaleFactor 6 neg llx .5 add neg ury .5 add tempmatrix astore GenerateRasters imagemask grestore } if wx x} defE%R /AlignMark%%J% This procedure draws an alignment mark centered on the coordinate systemH% origin. If the variable DEC$EDMS_SEPARATE_COLORS = 0 then a "positive"M% alignment mark is drawn. If DEC$EDMS_SEPARATE_COLORS <> 0 then a "negative"r% alignment mark is drawn. T%_% Formal Arguments: NONE% 0% Referenced Variables: DEC$EDMS_SEPARATE_COLORS%a% Referenced Procedures: NONE % % Side Effects: NONE%d{ DEC$EDMS_SEPARATE_COLORS 0 eqh { 0 0 300 0 360 arc_B 0 -450 moveto 0 450 lineto -450 0 moveto 450 0 lineto stroke }7 { 0 0 450 0 360 arc fill 1 setgray 0 0 300 0 360 arc oL 0 -450 moveto 0 450 lineto -450 0 moveto 450 0 lineto stroke 0 setgray } ifelse} defp/SC_N% If not making film, the following procedure sets the current color using theL% RGB color model. If making film, the procedure notes the "color pass" and,K% if the specified color index matches the color pass, subsequent marks areeO% written in black. If the specified color index does not match the color pass, O% marks are written in white. Use of colors on individual pages is also trackedsK% to allow pages that don't use a particular color to be suppressed on that.% color pass (by the code in the /PP routine).%z*% Formal Arguments: color index (on stack)%e"% Referenced Variables: Colorsused% DEC$EDMS_SEPARATE_COLORS% DEC$EDMS_SUPPRESS_COLOR %a% Referenced Procedures: NONEr%sL% Side Effects: Modifies the variable Colorsused to record use of the color.M% Tracks use of color in the variables 'ci' and 'processcolor'.%r5{ /ci exch def ci 0 lt % if the color index is lt 0aB { /processcolor true def } % then set 'processcolor' to 'true'.E { ci /processcolor false def % else set 'processcolor' to 'false'.O9 /DEC$EDMS_SUPPRESS_COLOR where % if suppressing coloro6 { pop 0 setgray pop } % then set "color" to BlackA  [ 1(([HUNTER.SUPSER.V54C.B]INSTALL_GUIDE.PS;1ia%+$,fV6ltUn)"u2P&?N[h.G-V0w>6J:('>cCF FJo+SA?%p[eK(kOC`1Ntof%P?m+ W MQK`w#?EcNe@< B]3,%.`1Jlr8lZ]%_JW]0 vA1vYXMY/1\L`a@'*F%+"YG&*m\.tL C_E5?8eXKj\,M'QvfiD 8 J^-;pp.u?bd!}s7?V$. =`2~?Qj<9c59VD&kttl ul\wgu4veW92_%$,xB]_NvqvI}I&o g= >!``2l}<YG&P>{H:Cgssenn8K&;;Iue$RtX Km/5Kq9fev|FvZn:#dpCc.*vxSd9A!{klor=k?N0%)hr qX0(jXAWN} /z~oAnSEiV]?3R\0)rr >bwp6rvb9Ua*kqx,`<8G"E=bY>D]bF$ @Y#iDQ2!b+PC3 J%MGfU`i[Wv*uS ,c!;d?[WLVf;i_I2j韍*Z^rO])x8D(|"|F jnH,=o<+( c$dVC =7">}QOE:Cd+9__KSN+4,W-A0lxm6w6aofvs JLRHD d:^~h[@AY$!#Y&`,2#*wwxM'D2@#:6w Y8sg]/ Q`Ke8mhNj_ - EI0u1E3_<9V f= n!7#a9qV u *NBL,cCI5^'29`I'fh BP4JazkR.nW=cbf! v/WFh<&$ak(5qx&!Yemyt A/>bb$[aMErS"r7}xjLv˗i_(]wG]G,Z{2h41/(0Y svNdGG3}s]d>)[E ZCvhBy8jtR;(pj >V 7*rTx1kK(sI-'|"}6R!B^xNT+IxG"WJ&B-A8rmi!gw=zL$+Jvf@&A!e/^H`Ta|9 K i>r=Y<3(j{wKZJRKGI+(LI3 uc-9A1/ )*RBA8fQj\ {hq[}?/4hf8gp5iH i_d*G'q##>ّHtU?9>0 NMCL QUOm0s9%S!&oPGnxOXf*B~;/N+W:oHk+r[? ^5MBRP_ A1kqh\i`',P*(Qu9)h>_(jG;CN gD"{gVk<*4 ~OC UH&wj 6y@aqD H)SCJ5/YQi@9&"JN!=X S~+#w_%b&sBl!clh %u2m% voi4 rqZ2'n"MKu4hA}& E@gCcS8+&Q@ N1}}z?]^$|Vh}v'`BslB8R:aF90nr9C|u.D &uY[&7@c[=AW)_P};0l6kD"ZH,]R?&Xn;X>]mPZ2͞O!j`RL0x )R4YzrdEl Rwt)K![c7]{JjZx%')~:i4H=uR}NEN]Y} '6KMktgDo ;`yw 2(,@ 4#.G(zyE5xXTbN#Yk H RM0~b"\+_$TY&N8 (yG +{ w#dR0Ok(7Iewm=_\j~( ^^qJ9AY=yqE8/#G oY1#J~?I940; Lh[%<:[ uT+>E}/+eL4o] _}b!P>X *G;-)}$ԯ [<Ez9)Z! * jo$ /BPp:c2SA6`DK3,?F:s b/;\\ bUQQb%CeOXw>zpm6dج QudI!Uf zf`/N{w: wJ Nd+%cZ 0'KoaWv@e6OVXO<M}Ig<.b 00.i8JtNA./YkbDWS2|gOP2, cJ~4 0p+ .q3Q!$IMh~XZ>v`zmNE@yO#NQKX;Og !'="N6b^m"Urt7ON3]L8uh1)x9.R$jil7{\z[]ayQa,oO@/8WMi2u>I+i[N?]n~I$E\-^+ =_'(#N6-&|cRHIE\Jg `eRly j&@0U`JsJ>6Z[9&}_*t )qw\!jbS_"j9rQSs=Z_3>+ <2N y36J3KAO~'7* 52^5dy;Kp`*jNg7/x#W_k_C%UZ&1z_+/j?6hYp^H1rR{UmQ`XGq8P!"~X}9=}t]}NMQ 4$+XFT}; IZ<{7m`k)z]/7P(wq2N BWz#iW!֟[WC#JZ|[50; Q T # [H9deZxzmdhK/{/hM9ls} x; Kvc1R$vX7,t32*"">-&Y9$w[_i'k4%2IPS@A lb6{'tD^_XQ7v7| iJ@4^47HQ]NQ-UVgC2`C"JB6qAd8^.zDZ$1~KX1"k A:eV:]vioW%nI9>n\-s) .'>r.e.7;uV;Q;l n3<*z@Q)\u4%+R: {exE`.nr `h~Vyt.'0g Vb?-Hk M@ >p8F2_{GkD.`*}8/fp&coqX8},0HyodmD -%)=Ixmh.Z[a5K/8Oۨ_ !xM;A"'z@fD_ 68&{8 l^}g73Hb=g9W0m;mHeb'c&])~Z7E+_\q>0RHuAj~raROi8Z90O?~J%^f} Q}oH'~?H{UAh ]Zx*?V3`DW!,EzSO=U)cO9Qs>EB|OX8S +taoDB>  70o)'lY,HjxF7hev8+YPCM<&Z rvP a 4tDJW/p&i!?gT(n}-':H<+,a,IS I^g+mv)^4W>g.U^O4>G%1| >WAz&S[P-n%@Q GgecjA 5B+I*"g_RwwXl evvK (8>y0@^gy7zMk4Ft R#=W1Pi6*o;VZ= M "tGYa5R*zXQzvkdaVw@I$j |\ ^}DiFe|3_8L{N=. [e I{ BbKRP i0r\ %Vudal6T>H)1fi)4_S&w#%(# v8hW_I*wj{VMUHNj1fTU@7EZ a!F*he C"2SS'mvLQmg?uO ^n=| b[\cr3uftY.FA&xQgg1Y[CCGm T= VK]n`E384auUEB7CS>zoqMe3\/W]DO1]IgW:cA!-VvmJ?YC5VeWf'c%eZ} 5Atw#? =vL3uVcR6dGb2G(L ;q g {spS\=HorE6gY(D%j2GVx ip;'r _k(&U'brXq@V"{-r|M{xS;AhZZ6sK<2~^\aY-4 e2@y*|1IB7F|*;Q-4v2A{hcttTW=`9dC?, C5 qh|qx!{uD U$D&}Cc(LH2@\K{lcN>h*R=IfXfkcf(}drR t.EC3;" +oK $Hvlv6 |}c9`'n6w`(.?~c<15Ym^wK;*:jBGP7h889,iTfv7g  vVr#Wzehnys&5w[33)k!Z=ZZIA@!o(b1g01dQ : G2%\f;jFs/SW[]cDiulY:{H~8'dG^^ V0\Rzf142w|^m hF:y7}S3%yb-dcx S0>FR% E{d@/Li  iwA*oFV]kr&!XsL$gW&#=')60GaJh wwa. $HBbZ6;dFZ/$@YPG*LAlCOYk* srQ O'm} "/05N?'/@7|y>A0oHN_X.,4_f LE~Vyx P{>&p@;X j= K+`ckSd)W!v] gI+.u,Z+&As6~6M6;!X=)p>_3Lky,Eg$Jb7m?OO!e'!7t ,aU+Rp6.wb(K0)o5.*7p\pufEX/ wbi 1O B]"w?cUz&Hl{m -],6G34&`?,)]%??`"p21U8.(:5%sxr[`W?M/AZ93b~;>gl(4hYD3ki<6he\,GVk'X3tLbe)GBb&mA00hun}*u;rlK]Bh(xr+mn?e2k~Is=;cbIP#2Muigi\-#cQo'-X^IKW=%MH,X*a}llLCM@}7=+G:% !2Mj!9]hG bDcCRZ=;=5Fsc%M6Uw@0?.Xg=GDA5*vI&eV38Gdd`C2O Goci~XpoJN&--fh)zrc 6&aKK;N,0Qck%n@.3uJ7 1RNR#ryEQ6 FIUje$x)3NUP j(I:`M { pop pop tstr cvn cvx exec } % execute it if it isN { DEC$EDMS_COLOR_ARRAY exch get exec % else exec internal color proc } ifelse } ifelse } ifelse } ifelse} defT(/RV % .. gross recto/verso translate#{ /DEC$EDMS_ENABLE_RECTOVERSO wherer { popeC /RVmatrix DEC$EDMS_ENABLE_RECTOVERSO 50 mul 0 matrix translate def  RVmatrix concat } if} defo%<% Procedures for implementing the "rotate " special:% ROTB -e% - ROTE - /ROTB {  XP gsave  Xpos Ypos translate ' rotate % using from the stackt Xpos neg Ypos neg translatea RP } defk /ROTE {XP grestore RP} defend %DEC_DVC$dict %%EndProloge %%BeginSetup4/DEC$EDMS_MAKE_FILM where % if we are making film... { pop % ..clean up the stack 4 54 dup translate % ..make room for the film info } ifBeginDVC$PSDoc$/PaperWidth 8.500 Resolution mul def&/PaperHeight 11.000 Resolution mul def/Ymax PaperHeight defACLRP 300 3600 RESJ%> Postamble of file HUNTER$USER:[HUNTER.SUPSER.NEW]INSTALL_GUIDE.DVI_PS.*% DefineFont:F153 Category:10 Pointsize:10D/NewCenturySchlbk-Bold /NewCenturySchlbk-Bold@DOCPSE DOCPSE ReENCODE./F153 500.0 /NewCenturySchlbk-Bold@DOCPSE DPSF*% DefineFont:F152 Category:10 Pointsize:10H/NewCenturySchlbk-Italic /NewCenturySchlbk-Italic@DOCPSE DOCPSE ReENCODE0/F152 500.0 /NewCenturySchlbk-Italic@DOCPSE DPSF*% DefineFont:F151 Category:10 Pointsize:10F/NewCenturySchlbk-Roman /NewCenturySchlbk-Roman@DOCPSE DOCPSE ReENCODE//F151 500.0 /NewCenturySchlbk-Roman@DOCPSE DPSFd)% DefineFont:F106 Category:10 Pointsize:7e(/Courier /Courier@DOCPSE DOCPSE ReENCODE /F106 350.0 /Courier@DOCPSE DPSF)% DefineFont:F102 Category:10 Pointsize:8c /F102 400.0 /Courier@DOCPSE DPSF(% DefineFont:F48 Category:10 Pointsize:66/Helvetica-Bold /Helvetica-Bold@DOCPSE DOCPSE ReENCODE&/F48 300.0 /Helvetica-Bold@DOCPSE DPSF(% DefineFont:F46 Category:10 Pointsize:6,/Helvetica /Helvetica@DOCPSE DOCPSE ReENCODE!/F46 300.0 /Helvetica@DOCPSE DPSFd(% DefineFont:F42 Category:10 Pointsize:8!/F42 400.0 /Helvetica@DOCPSE DPSFn(% DefineFont:F40 Category:10 Pointsize:9&/F40 450.0 /Helvetica-Bold@DOCPSE DPSF(% DefineFont:F39 Category:10 Pointsize:9</Helvetica-Oblique /Helvetica-Oblique@DOCPSE DOCPSE ReENCODE)/F39 450.0 /Helvetica-Oblique@DOCPSE DPSFt(% DefineFont:F38 Category:10 Pointsize:9!/F38 450.0 /Helvetica@DOCPSE DPSF )% DefineFont:F36 Category:10 Pointsize:10#&/F36 500.0 /Helvetica-Bold@DOCPSE DPSF)% DefineFont:F34 Category:10 Pointsize:10r!/F34 500.0 /Helvetica@DOCPSE DPSFl)% DefineFont:F28 Category:10 Pointsize:12l&/F28 600.0 /Helvetica-Bold@DOCPSE DPSF)% DefineFont:F24 Category:10 Pointsize:142&/F24 700.0 /Helvetica-Bold@DOCPSE DPSF)% DefineFont:F20 Category:10 Pointsize:18a&/F20 900.0 /Helvetica-Bold@DOCPSE DPSF)% DefineFont:F12 Category:10 Pointsize:30 '/F12 1500.0 /Helvetica-Bold@DOCPSE DPSFo-%> Postamble of file INSTALL_GUIDE_CONTENTS. %%BeginDEC$EDMSInfoc/DEC$EDMS_DOCUMENT_ID () def8/DEC$EDMS_COLOR_NAMES [ (0_BLACK) (1_USERTAGCOLOR) ] def/DEC$EDMS_COLOR_ARRAY [y*%%RGBCustomColor 0.000 0.000 0.000 0_BLACK= { 0.000 0.000 0.000 setrgbcolor } % 0_BLACK DOC$COLOR_INIT11%%RGBCustomColor 0.000 0.000 0.000 1_USERTAGCOLORe? { 0.000 0.000 0.000 setrgbcolor } % 1_USERTAGCOLOR not foundr] def /DEC$EDMS_TOTAL_PAGES 0 defa%%EndDEC$EDMSInfoe/DEC$EDMS_MAKE_FILM where %{ pop /DEC$EDMS_SEPARATE_COLORS whereR { pop }a] { (ERROR - DEC$EDMS_MAKE_FILM requires DEC$EDMS_SEPARATE_COLORS be defined) = quit } ifelsea} if/DEC$EDMS_SEPARATE_COLORS where${ pop /DEC$EDMS_SUPPRESS_COLOR wherei { pop (ERROR - DEC$EDMS_SEPARATE_COLORS and DEC$EDMS_SUPPRESS_COLOR are mutually exclusive) = quit } ifn} if/DVC$PSFonts save defu %%EndSetup% %%Page: I 1f%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)D)1000 BP PaperHeight PaperWidth PM 0 0 XY %%BeginCustomColor: 0_BLACKYJ0 SC 10773 10524 XY F20(Supervis)S -2 x(or)S 231 x(Series)S 10773 11520 XYH(Installat)S -2 x(ion)S 166 x(Guide)S 10773 14210 XY F36(October)S 166 xG(1992)S 10773 16302 XY F34(This)S 180 x(manual)S 179 x(provides)S 180 xdD(installation)S 179 x(and)S 179 x(setup)S 181 x(instructions)S 180 xC(for)S 180 x(the)S 180 x(Supervisor)S 10773 X 598 y(Series,)S 166 xIG(terminal)S 166 x(monitoring)S 165 x(software)S 166 x(for)S 167 x(VMS)S P166 x(systems.)S 10773 20188 XY F36(Revision/)S 2 x(Update)S 166 x(Information)SC2 x(:)S 798 x F34(This)S 166 x(is)S 166 x(a)S 166 x(revised)S 165 x C(manual.)S 10773 X 896 y F36(Operating)S 167 x(System)S 166 x(and)SeG166 x(V)S -27 x(ersion:)S 300 x F34(VMS)S 166 x(V5.0)S 167 x(or)S 166 x1G(later)S 10773 X 897 y F36(Software)S 166 x(V)S -27 x(ersion:)S 18546 XPJF34(Supervisor)S 165 x(Series)S 166 x(v5.4)S 10773 28570 XY F36(Academic)SF166 x(Computin)S 2 x(g)S 166 x(and)S 167 x(Research)S 165 x(Services)SC10773 X 597 y(W)S -9 x(estern)S 166 x(Kentucky)S 166 x(University)Sx710773 X 698 y(Bowling)S 167 x(Green,)S 166 x(Kentucky)Se%%EndCustomColor1 PP EPf %%PageTrailerf%%%PageFonts: Helvetica-Bold Helvetica/%%PageCustomColors: 0_BLACK % %%Page: II 2%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)R,1000 BP PaperHeight PaperWidth PM 0 0 XY RV %%BeginCustomColor: 0_BLACKsD0 SC 10773 25368 XY 8364 48 R 10773 25916 XY F40(5)S 166 x(October)SF167 x(1992)S 10773 X 897 y F38(Permission)S 167 x(is)S 166 x(granted)SE167 x(to)S 166 x(copy)S 167 x(and)S 167 x(redistribute)S 166 x(this)SH166 x(documen)S 2 x(t)S 165 x(for)S 166 x(no)S 167 x(comme)S 2 x(rcial)SF165 x(gain.)S 10773 X 897 y(The)S 172 x(information)S 173 x(in)S 171 xE(this)S 172 x(documen)S 2 x(t)S 171 x(is)S 172 x(subject)S 172 x(to)S_H172 x(change)S 173 x(without)S 171 x(notice)S 172 x(and)S 173 x(should)SE172 x(not)S 10773 X 548 y(be)S 172 x(construed)S 173 x(as)S 171 x(a)SE172 x(commitmen)S 2 x(t)S 170 x(by)S 172 x(the)S 172 x(author)S -24 x$G(.)S 259 x(The)S 172 x(author)S 172 x(assume)S 2 x(s)S 171 x(no)S 172 x5F(respons)S 2 x(ibil)S -2 x(ity)S 10773 X 547 y(for)S 166 x(any)S 167 xC(errors)S 168 x(that)S 165 x(may)S 167 x(appea)S 2 x(r)S 166 x(in)S F166 x(this)S 165 x(docum)S 2 x(ent.)S 10773 X 897 y F40(DISCLAI)S -2 xE(MER:)S 184 x F38(The)S 183 x(software)S 183 x(described)S 185 x(in)StF182 x(this)S 183 x(docume)S 2 x(nt)S 182 x(is)S 183 x(provided)S 184 xF(`)S -8 x(`)S F40(as)S 183 x(is)S F38(')S -9 x('.)S 282 x(No)S 10773 XG548 y(guaran)S 2 x(tee)S 188 x(is)S 188 x(made)S 190 x(by)S 188 x(the)S F189 x(author)S 189 x(or)S 189 x(the)S 188 x(author)S 18 x(')S -9 x(s)SM188 x(employe)S 2 x(r)S 188 x(as)S 189 x(to)S 188 x(the)S 188 x(suitability)ScH-34 x(,)S 10773 X 548 y(reliabilit)S -2 x(y)S -33 x(,)S 166 x(security)SC-33 x(,)S 166 x(usefulness,)S 167 x(or)S 166 x(perform)S 2 x(ance)SdG167 x(of)S 166 x(this)S 165 x(software.)S 10773 X 897 y(Neither)S 183 xSH(W)S -8 x(es U) SUPSER054.B 1(([HUNTER.SUPSER.V54C.B]INSTALL_GUIDE.PS;1i xCtern)S 184 x(Kentucky)S 184 x(University)S 182 x(nor)S 184 xF(Hunter)S 183 x(Goatley)S 183 x(are)S 184 x(respons)S 2 x(ible)S 182 xH(for)S 183 x(any)S 10773 X 548 y(losses)S 167 x(that)S 165 x(may)S 167 xE(occur)S 168 x(from)S 166 x(the)S 166 x(use)S 167 x(of)S 166 x(this)SdE166 x(software.)S 10773 X 896 y(The)S 167 x(follow)S -2 x(ing)S 167 xdM(are)S 166 x(tradem)S 2 x(arks)S 166 x(of)S 166 x(Digital)S 165 x(Equipment)S%G167 x(Corporation:)S 10773 X 897 y(DEC)S 17349 X(V)S -34 x(AX)S 23924 XBG(VMS)S 10773 X 548 y(DECnet)S 17349 X(UCX)S 23924 X(UIS)S 10773 X 896 yK3588 24 R 10773 36028 XY(Copyright)S 166 x(\251199)S 2 x(2)S 166 x(Hunter)S G166 x(Goatley)S -33 x(.)S 249 x(ALL)S 166 x(RIGHTS)S 165 x(RESER)S -8 x (VED.)S %%EndCustomColor2 PP EP. %%PageTrailer %%%PageFonts: Helvetica-Bold Helvetical%%PageCustomColors: 0_BLACK(%'>% < Beginning of included file INSTALL_GUIDE_CONTENTS.DVI_PS > %%Page: III 3o%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)$)1000 BP PaperHeight PaperWidth PM 0 0 XY r%%BeginCustomColor: 0_BLACK E0 SC 5094 4546 XY 23160 48 R 5094 5520 XY F20(Contents)S 7187 6812 XY.I21072 72 R 7187 7410 XY F36(PREF)S -27 x(ACE)S 27704 X(vii)S 5094 9203 XYeE23160 144 R 5094 9900 XY F28(CHAPTER)S 164 x(1)S 599 x(PRE)S -2 x(P)ScF-44 x(ARING)S 165 x(T)S -11 x(O)S 167 x(INST)S -45 x(ALL)S 166 x(THE)SC166 x(SUPE)S -2 x(R)S -11 x(VISOR)S 165 x(SERIES)S 27260 X(1\2031)SEF7187 11096 XY 21072 72 R 7187 11693 XY F36(1.1)S 9279 X(PREREQUISITE)SC167 x(SOFTW)S -27 x(ARE)S 27427 X(1\2031)S 7187 12889 XY 21072 72 RfG7187 13487 XY(1.2)S 9279 X(ACCESSING)S 165 x(THE)S 166 x(ONLINE)S 166 xaP(RELEASE)S 167 x(NOTES)S 27427 X(1\2031)S 7187 14682 XY 21072 72 R 7187 15280 XYC(1.3)S 9279 X(INST)S -36 x(ALLA)S -37 x(TION)S 166 x(PROCEDU)S -2 xYE(RE)S 166 x(REQUIREMENTS)S 27427 X(1\2031)S 5094 17073 XY 23160 144 RnG5094 17771 XY F28(CHAPTER)S 164 x(2)S 599 x(INST)S -45 x(ALLING)S 166 x P(THE)S 165 x(SUPER)S -12 x(VISOR)S 165 x(SERIES)S 27260 X(2\2031)S 7187 18966 XYD21072 72 R 7187 19564 XY F36(2.1)S 9279 X(INVOKING)S 165 x(VMSINST)SH-36 x(AL)S 27427 X(2\2031)S 7187 20760 XY 21072 72 R 7187 21357 XY(2.2)SH9279 X(INST)S -36 x(ALLA)S -37 x(TION)S 166 x(OPTIONS)S 27427 X(2\2031)SF7187 22553 XY 21072 72 R 7187 23151 XY(2.3)S 9279 X(DISK)S 166 x(AND)SE165 x(DIRECT)S -9 x(OR)S -19 x(Y)S 166 x(SELECTION)S 27427 X(2\2032)SNG7187 24346 XY 21072 72 R 7187 24944 XY(2.4)S 9279 X(COMPON)S -2 x(ENT)SaJ167 x(SELECTION)S 27427 X(2\2032)S 9279 X 697 y(2.4.1)S 11371 X(Installi)SP2 x(ng)S 167 x(the)S 166 x(Sources)S 167 x(Only)S 498 x 7200 24 R 27427 25641 XYG(2\2032)S 9279 X 698 y(2.4.2)S 11371 X(Installi)S 2 x(ng)S 167 x(PHOT)SbM-9 x(O)S 165 x(and)S 167 x(PLA)S -46 x(YBACK)S 497 x 5640 24 R 27427 26339 XYdH(2\2033)S 9279 X 697 y(2.4.3)S 11371 X(Installi)S 2 x(ng)S 167 x(SUPER)SM-9 x(VISOR)S 498 x 8088 24 R 27427 27036 XY(2\2033)S 7187 28231 XY 21072 72 RoG7187 28829 XY(2.5)S 9279 X(THE)S 166 x(INST)S -36 x(ALLA)S -37 x(TION)S0J166 x(COMPLETES)S 27427 X(2\2034)S 5094 30623 XY 23160 144 R 5094 31320 XYEF28(CHAPTER)S 164 x(3)S 599 x(POST)S -34 x(-INST)S -44 x(ALLA)S -45 xeC(TION)S 166 x(INFORMA)S -45 x(TION)S 27260 X(3\2031)S 7187 32515 XYcC21072 72 R 7187 33113 XY F36(3.1)S 9279 X(ST)S -37 x(ARTING)S 166 x/O(THE)S 166 x(SUPER)S -9 x(VISOR)S 166 x(SERIES)S 27427 X(3\2031)S 7187 34309 XYvG21072 72 R 7187 34906 XY(3.2)S 9279 X(CREA)S -38 x(TING)S 166 x(SUPER)SiG-9 x(VISOR)S 166 x(IDENTIF)S 2 x(IERS)S 27427 X(3\2031)S -416 x 36925 Yc(iii)S%%EndCustomColor3 PP EPt %%PageTrailer0%%PageFonts: Helvetica-Boldv%%PageCustomColors: 0_BLACKo%F %%Page: IV 4%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)P,1000 BP PaperHeight PaperWidth PM 0 0 XY RV %%BeginCustomColor: 0_BLACK:F0 SC 5094 1807 XY F28(Contents)S -496 x 4571 Y 21072 72 R 7187 5169 XYEF36(3.3)S 9279 X(USING)S 165 x(THE)S 167 x(BOO)S -2 x(KREADER)S 165 x H(DOCUMEN)S -2 x(T)S -36 x(A)S -37 x(TION)S 27427 X(3\2032)S 7187 6365 XYE21072 72 R 7187 6962 XY(3.4)S 9279 X(REGISTERING)S 166 x(YOUR)S 165 xiK(INST)S -36 x(ALLA)S -37 x(TION)S 27427 X(3\2032)S 5094 8756 XY 23160 144 RDD5094 9453 XY F28(APPEND)S -2 x(IX)S 166 x(A)S 598 x(SAMP)S -2 x(LE)SD166 x(SUPER)S -12 x(VISOR)S 165 x(SERIES)S 165 x(INST)S -45 x(ALLA)SE-44 x(TION)S 27161 X(A\2031)S 5094 11246 XY 23160 144 R 5094 11944 XY0G(APPEND)S -2 x(IX)S 166 x(B)S 598 x(CONTEN)S -2 x(TS)S 166 x(OF)S 167 xeN(DISTRIBU)S -2 x(TION)S 166 x(KIT)S 27161 X(B\2031)S 5094 13737 XY 23160 144 RD5094 14434 XY(APPEND)S -2 x(IX)S 166 x(C)S 598 x(FILES)S 166 x(CRE)SC-2 x(A)S -44 x(TED)S 165 x(DURING)S 165 x(INST)S -45 x(ALLA)S -44 xDD(TION)S 27161 X(C\2031)S 5094 16228 XY 23160 144 R 5094 16825 XY(T)SG-44 x(ABLES)S -255 x 698 y F36(B)S(\203)S(1)S 9279 X(Supervisor)S 167 xED(Series)S 166 x(instal)S 2 x(lation)S 167 x(kit)S 166 x(save)S 166 xG(sets)S 498 x 5544 24 R 27344 17523 XY(B\2031)S 7187 X 697 y(C)S(\203)SsG(1)S 9279 X(Supervisor)S 167 x(Series)S 166 x(\211les)S 167 x(created)SI166 x(during)S 168 x(installati)S 2 x(on)S 499 x 3912 24 R 27344 18220 XYe(C\2031)S 5094 36925 XY(iv)S%%EndCustomColor4 PP EP7 %%PageTrailer(%%PageFonts: Helvetica-Boldr%%PageCustomColors: 0_BLACKl%S8% < End of included file INSTALL_GUIDE_CONTENTS.DVI_PS > %%Page: VII 57%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)n)1000 BP PaperHeight PaperWidth PM 0 0 XY x%%BeginCustomColor: 0_BLACKpM0 SC 5094 4546 XY 23160 48 R 5094 5443 XY F20(Prefac)S -2 x(e)S 10773 7236 XYsHF151(This)S 166 x(guide)S 167 x(describes)S 166 x(how)S 166 x(to)S 166 xF(install)S 165 x(the)S 166 x(Supervisor)S 167 x(Series.)S 5094 8183 XYD23160 96 R 5094 8880 XY F24(Intended)S 166 x(Audience)S -533 x 897 yHF151(This)S 170 x(manual)S 170 x(is)S 169 x(intended)S 170 x(for)S 169 xG(use)S 170 x(by)S 170 x(the)S 170 x(system)S 169 x(manager)S 170 x(or)SwF170 x(any)S 170 x(individual)S 10773 X 598 y(responsible)S 166 x(for)SD166 x(installing)S 166 x(and)S 167 x(maintaining)S 166 x(the)S 167 xD(Supervisor)S 166 x(Series.)S 5094 11321 XY 23160 96 R 5094 12018 XYHF24(Document)S 166 x(Structure)S 10773 X 897 y F151(This)S 166 x(guide)SF167 x(consists)S 165 x(of)S 166 x(three)S 167 x(chapters)S 166 x(and)SC166 x(three)S 167 x(appendices.)S 10773 X 897 y F38(Chapter)S 150 xCE(1)S 14360 X(Contains)S 149 x(pre-installation)S 150 x(information.)StG10773 X 747 y(Chapter)S 150 x(2)S 14360 X(Describes)S 150 x(the)S 149 x I(Super)S 2 x(visor)S 149 x(Series)S 150 x(installation)S 149 x(procedur)S5C2 x(e.)S 10773 X 747 y(Chapter)S 150 x(3)S 14360 X(Contains)S 149 xsH(post-installation)S 149 x(information.)S 10773 X 747 y(Appendix)S 151 xD(A)S 14360 X(Contains)S 149 x(a)S 150 x(listi)S -2 x(ng)S 150 x(of)SD150 x(a)S 149 x(sample)S 151 x(install)S -2 x(ation.)S 10773 X 747 yF(Appendix)S 151 x(B)S 14360 X(Describes)S 150 x(the)S 149 x(contents)SE151 x(of)S 149 x(the)S 149 x(Super)S 2 x(visor)S 149 x(Series)S 150 x1G(distribution)S 149 x(kit.)S 10773 X 748 y(Appendix)S 151 x(C)S 14360 X2I(Contains)S 149 x(a)S 150 x(list)S 148 x(of)S 149 x(the)S 150 x(\211les)S1C150 x(created)S 150 x(by)S 150 x(an)S 150 x(installati)S -2 x(on.)S F5094 18743 XY 23160 96 R 5094 19441 XY F24(Related)S 165 x(Documents)SN-804 x 896 y F151(Y)S -56 x(ou)S 167 x(can)S 166 x(\211nd)S 167 x(additional)SO166 x(information)S 166 x(in)S 166 x(the)S 167 x(following)S 166 x(documents:)S4F10773 X 897 y(\201)S 595 x F152(SUPER)S -10 x(VISOR)S 165 x(Referenc)SF2 x(e)S 166 x(Guide)S 166 x F151(describes)S 166 x(the)S 166 x(SUPER)SG-19 x(VISOR)S 164 x(utility)S -5N SUPSER054.B 1(([HUNTER.SUPSER.V54C.B]INSTALL_GUIDE.PS;1iR5 x(.)S 10773 X 897 y(\201)S 595 x F152 E(PHOTO)S 190 x(Reference)S 191 x(Guide)S 191 x F151(describes)S 190 xbH(the)S 190 x(PHOTO)S 190 x(and)S 191 x(PLA)S -46 x(YBACK)S 11670 X 597 yI(utilities.)S 10773 X 897 y(\201)S 595 x F152(Supervisor)S 175 x(Series)S8F174 x(Release)S 175 x(Notes)S 175 x F151(contain)S 175 x(information)SF174 x(and)S 174 x(updates)S 174 x(not)S 11670 X 598 y(included)S 178 xD(in)S 179 x(this)S 177 x(manual.)S 274 x(The)S 179 x(release)S 177 xI(notes)S 178 x(are)S 179 x(part)S 177 x(of)S 178 x(the)S 178 x(software)SyD11670 X 597 y(distribution)S 166 x(kit.)S 10773 X 897 y(\201)S 595 xDF152(VMS)S 176 x(Authorize)S 178 x(Utility)S 177 x(Manual)S F151(,)SE180 x(part)S 177 x(of)S 176 x(the)S 177 x(VMS)S 176 x(documentation)S)G177 x(set,)S 11670 X 598 y(contains)S 166 x(information)S 166 x(about)SoC166 x(the)S 167 x(VMS)S 165 x(AUTHORIZE)S 165 x(utility)S -55 x(.)S 27704 36925 XY F36(vii)S%%EndCustomColor5 PP EP: %%PageTrailery2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman%%%+ Helvetica NewCenturySchlbk-Italic(%%PageCustomColors: 0_BLACK %0%%Page: VIII 6 /DEC$EDMS_MAKE_FILM where { pop }H%{ /DEC$EDMS_SUPPRESS_BLANKPAGES where { pop }( { CLRP showpage } ifelse } ifelse n %%PageTrailer %%PageFonts:%%PageCustomColors::%l %%Page: 1-1 7v%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)E)1000 BP PaperHeight PaperWidth PM 0 0 XY P%%BeginCustomColor: 0_BLACKaN0 SC 2404 5875 XY F12(1)S 5094 4546 XY 23160 48 R 5094 5443 XY F20(Preparing)SG165 x(to)S 165 x(Install)S 166 x(the)S 165 x(Superv)S -2 x(isor)S 166 x9E(Series)S 10773 8652 XY F151(This)S 176 x(chapter)S 176 x(describes)SFF176 x(the)S 176 x(steps)S 175 x(that)S 175 x(should)S 176 x(be)S 176 xH(taken)S 176 x(prior)S 177 x(to)S 175 x(installing)S 10773 X 598 y(the)SI166 x(Supervisor)S 167 x(Series.)S 5094 10196 XY 23160 96 R 2404 10893 XY)CF24(1.1)S 5094 X(Prerequisite)S 166 x(Software)S 10773 X 897 y F1519E(The)S 167 x(Supervisor)S 166 x(Series)S 166 x(requires)S 167 x(VMS)S(F165 x(version)S 167 x(V5.0)S 166 x(or)S 166 x(later)S 166 x(to)S 166 xK(run.)S 5094 12736 XY 23160 96 R 2404 13434 XY F24(1.2)S 5094 X(Accessing)S)H165 x(the)S 166 x(Online)S 165 x(Releas)S -2 x(e)S 166 x(Notes)S 10773 XC897 y F151(The)S 166 x(Supervisor)S 166 x(Series)S 165 x(provides)S7G166 x(online)S 166 x(release)S 166 x(notes,)S 166 x(which)S 165 x(you)S(G167 x(can)S 166 x(display)S 10773 X 597 y(or)S 180 x(print)S 180 x(by)SSG180 x(using)S 181 x(VMSINST)S -28 x(AL)S 179 x(with)S 180 x(the)S 179 xFF(OPTIONS)S 179 x(N)S 180 x(parameter)S -37 x(.)S 277 x(After)S 10773 XF598 y(the)S 194 x(installation,)S 200 x(you)S 195 x(can)S 194 x(read)SE193 x(the)S 194 x(release)S 193 x(notes)S 194 x(by)S 194 x(printing)SRL194 x(the)S 194 x(\211le)S 10773 X 598 y(SYS$HELP:SUPSERvvn.RELEASE_NOTES,)SC183 x(where)S 184 x(`)S -9 x(`vvn')S -9 x(')S 184 x(denotes)S 184 x8D(the)S 10773 X 598 y(version)S 188 x(number)S 188 x(of)S 187 x(the)SJ187 x(software.)S 290 x(For)S 188 x(example,)S 193 x(for)S 187 x(version)SD188 x(v5.4)S 188 x(of)S 187 x(the)S 10773 X 597 y(Supervisor)S 167 xF(Series,)S 166 x(the)S 166 x(\211le)S 167 x(name)S 166 x(would)S 166 xC(be)S 166 x(SUPSER054.)S 5094 18266 XY 23160 96 R 2404 18963 XY F24C(1.3)S 5094 X(Installation)S 166 x(Procedure)S 166 x(Requirements)SRM10773 X 897 y F151(Before)S 199 x(installing)S 200 x(the)S 200 x(Supervisor)S I200 x(Series,)S 208 x(ensure)S 200 x(that)S 199 x(the)S 200 x(following)S0O10773 X 598 y(privileges,)S 167 x(resources,)S 167 x(and)S 166 x(requirements)S(I167 x(are)S 166 x(met:)S 10773 X 896 y(\201)S 595 x(VMS)S 165 x(version)S K167 x(V5.0)S 166 x(throug)S 2 x(h)S 166 x(V5.5)S 166 x(is)S 166 x(running)S C2 x(.)S 10773 X 897 y(\201)S 595 x(All)S 165 x(the)S 166 x(normal)SPD167 x(privileges)S 166 x(and)S 167 x(quotas)S 165 x(of)S 166 x(the)SD167 x(default)S 166 x(SYSTEM)S 165 x(account.)S 10773 X 896 y(\201)SF595 x(Approximately)S 209 x(2)S 209 x(to)S 210 x(15)S 209 x(minutes,)SF220 x(depending)S 211 x(on)S 209 x(your)S 211 x(system)S 11670 X 598 yE(con\211gu)S 2 x(ration,)S 166 x(distribution)S 166 x(medium,)S 167 xSC(and)S 166 x(options)S 166 x(selected.)S 10773 X 897 y(\201)S 595 xdE(Approximately)S 201 x(3,000)S 201 x(free)S 201 x(blocks)S 201 x(on)S_C202 x(a)S 201 x(disk)S 201 x(for)S 201 x(use)S 201 x(during)S 202 x7C(the)S 11670 X 598 y(installation)S 171 x(procedure;)S 177 x(this)SED172 x(can)S 172 x(be)S 172 x(the)S 173 x(system)S 171 x(disk)S 172 xE(or)S 173 x(a)S 172 x(disk)S 172 x(speci\211ed)S 11670 X 597 y(with)SxK165 x(the)S 167 x(VMSINST)S -28 x(AL)S 166 x(A)S -47 x(WD)S 166 x(option.)SXE10773 X 897 y(\201)S 595 x(Approximately)S 200 x(2,500)S 200 x(free)SPG200 x(blocks)S 200 x(on)S 201 x(the)S 200 x(system)S 199 x(disk)S 200 x G(for)S 200 x(a)S 200 x(full)S 11670 X 598 y(installation.)S 249 x(The)S9G167 x(requirements)S 166 x(per)S 166 x(product)S 167 x(are)S 166 x(as)S G165 x(follows:)S 11670 X 896 y(\201)S 594 x(Approximately)S 204 x(700)SYC203 x(free)S 204 x(blocks)S 204 x(for)S 203 x(SUPER)S -19 x(VISOR)SSD202 x(and)S 204 x(its)S 12566 X 598 y(documentation.)S 11670 X 897 yE(\201)S 594 x(Approximately)S 167 x(500)S 166 x(free)S 166 x(blocks)S6H166 x(for)S 166 x(PHOTO)S 166 x(and)S 166 x(its)S 165 x(documentation.)SE11670 X 896 y(\201)S 594 x(Approximately)S 170 x(1,000)S 170 x(free)SeH170 x(blocks)S 170 x(for)S 170 x(the)S 169 x(sources)S 170 x(for)S 170 xC(the)S 170 x(Supervisor)S 12566 X 598 y(Series.)S 4272 X 144 7872 R 27427 36925 XY F36(1\2031)S1%%EndCustomColor7 PP EP4 %%PageTrailer22%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman%%PageCustomColors: 0_BLACKr%e %%Page: 1-2 8: /DEC$EDMS_MAKE_FILM where { pop }_%{ /DEC$EDMS_SUPPRESS_BLANKPAGES whereS { pop }N { CLRP showpage } ifelse } ifelse S %%PageTrailerS %%PageFonts:%%PageCustomColors:u%m %%Page: 2-1 9n%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend) )1000 BP PaperHeight PaperWidth PM 0 0 XY S%%BeginCustomColor: 0_BLACK1O0 SC 2404 5875 XY F12(2)S 5094 4546 XY 23160 48 R 5094 5443 XY F20(Installing)S1C166 x(the)S 165 x(Superv)S -2 x(isor)S 166 x(Series)S 10773 8652 XYRIF151(The)S 193 x(Supervisor)S 194 x(Series)S 192 x(uses)S 193 x(VMSINST)S C-28 x(AL)S 192 x(for)S 193 x(installation.)S 302 x(If)S 193 x(you)SxH193 x(do)S 10773 X 598 y(not)S 187 x(know)S 187 x(how)S 187 x(to)S 186 xC(use)S 187 x(VMSINST)S -28 x(AL,)S 187 x(you)S 188 x(should)S 187 xtF(\211rst)S 187 x(read)S 187 x(the)S 187 x(chapter)S 10773 X 597 y(on)SE182 x(installing)S 182 x(software)S 181 x(in)S 182 x(the)S 182 x F152SG(VMS)S 182 x(System)S 182 x(Manager)S 29 x(')S -19 x(s)S 182 x(Manual)SsDF151(.)S 281 x(For)S 183 x(the)S 10773 X 598 y(installation,)S 181 xH(you)S 179 x(should)S 178 x(be)S 178 x(logged)S 179 x(into)S 178 x(the)SG179 x(SYSTEM)S 177 x(account)S 179 x(or)S 178 x(another)S 10773 X 598 ypH(suitably)S 166 x(privileged)S 167 x(account.)S 5094 11989 XY 23160 96 RD2404 12687 XY F24(2.1)S 5094 X(Invoking)S 166 x(VMSINST)S -52 x(AL)SG10773 X 896 y F151(Invoke)S 167 x(VMSINST)S -28 x(AL)S 166 x(to)S 166 xiG(install)S 166 x(the)S 166 x(Supervisor)S 167 x(Series.)S 10773 X 897 ynF102($)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORI1 SC 239 x(@SYS$UPDATE:)S 2 x(VMSINSTAL)S 240 x(SUPSERvvn)S 240 x(ddcu:)S %%EndCustomColor%%BeginCustomColor: 0_BLACKtD0 SC 10773 X 897 y F151(Substitute)S 166 x(the)S 166 x(appropriate)SG166 x(values)S 166 x(for)S 166 x F152(vvn)S 166 x F151(and)S 166 x F152 E(ddcu)S F151(.)S 12925 16572 XY F102(VAX/VMS)S 240 x4Փ SUPSER054.B 1(([HUNTER.SUPSER.V54C.B]INSTALL_GUIDE.PS;1i2 a(Software)S 240 x H(Product)S 240 x(Installation)S 240 x(Procedure)S 240 x(V5.4-2)S 10773 XC747 y(It)S 239 x(is)S 240 x(dd-Mmm-yyyy)S 240 x(at)S 239 x(hh:mm.)SDC10773 X 449 y(Enter)S 240 x(a)S 239 x(question)S 240 x(mark)S 239 x)F(\(?\))S 240 x(at)S 239 x(any)S 240 x(time)S 239 x(for)S 239 x(help.)SC10773 X 896 y F151(If)S 166 x(there)S 166 x(are)S 166 x(any)S 167 x)F(users)S 166 x(logged)S 167 x(into)S 166 x(the)S 167 x(system,)S 165 xD(you)S 167 x(will)S 166 x(see)S 166 x(the)S 166 x(message:)S 10773 XF897 y F102(%VMSINSTAL-W-A)S 2 x(CTIVE,)S 239 x(The)S 240 x(following)SC240 x(processes)S 240 x(are)S 239 x(still)S 240 x(active:)S 10773 XSE448 y(...process)S 240 x(names...)S 10773 X 897 y F151(Y)S -56 x(ou)S2I180 x(can)S 179 x(install)S 179 x(the)S 179 x(Supervisor)S 180 x(Series)S H178 x(while)S 179 x(users)S 179 x(are)S 179 x(logged)S 180 x(in,)S 183 xC(though)S 10773 X 598 y(no)S 180 x(user)S 180 x(should)S 180 x(be)SaL179 x(runnin)S 2 x(g)S 180 x(one)S 180 x(of)S 179 x(the)S 180 x(Supervisor)SE180 x(Series)S 179 x(utilities)S 179 x(from)S 180 x(a)S 10773 X 597 yxD(previous)S 167 x(version.)S 10773 X 897 y F102(*)S 239 x(Do)S 240 xD(you)S 239 x(want)S 240 x(to)S 239 x(continue)S 240 x(anyway)S 240 xD([NO]?)S 10773 X 897 y F151(If)S 166 x(you)S 167 x(wish)S 165 x(to)SD166 x(continue,)S 168 x(answer)S 165 x(YES.)S 10773 X 896 y F102(*)SH239 x(Are)S 240 x(you)S 239 x(satisfied)S 240 x(with)S 240 x(the)S 239 xC(backup)S 240 x(of)S 239 x(your)S 240 x(system)S 239 x(disk)S 240 xCN([YES]?)S 10773 X 897 y F151(If)S 192 x(you)S 192 x(feel)S 192 x(comfortable)SE192 x(with)S 191 x(your)S 193 x(system)S 191 x(disk)S 192 x(backup,)S E199 x(answer)S 192 x(YES.)S 10773 X 598 y(Otherwise,)S 174 x(answer)S D172 x(NO,)S 172 x(perform)S 173 x(the)S 173 x(backup,)S 175 x(then)SK173 x(restart)S 172 x(the)S 172 x(installation)S 10773 X 597 y(procedure.)SnF5094 27830 XY 23160 96 R 2404 28527 XY F24(2.2)S 5094 X(Installation)SE166 x(Options)S -804 x 897 y F151(The)S 167 x(next)S 167 x(question)S E166 x(is)S 10773 X 897 y F102(*)S 239 x(Do)S 240 x(you)S 239 x(want)S1H240 x(to)S 239 x(purge)S 239 x(files)S 240 x(replaced)S 240 x(by)S 239 xC(this)S 240 x(installation)S 240 x([YES]?)S 10773 X 896 y F151(If)S F164 x(this)S 163 x(is)S 164 x(the)S 164 x(\211rst)S 164 x(time)S 164 xD(you)S 164 x(have)S 165 x(installed)S 164 x(the)S 164 x(Supervisor)SE164 x(Series,)S 165 x(answering)S 10773 X 598 y(NO)S 173 x(to)S 173 xPD(this)S 172 x(question)S 174 x(can)S 173 x(save)S 174 x(some)S 172 xH(time)S 173 x(when)S 173 x(the)S 174 x(Supervisor)S 174 x(Series)S 172 xG(\211les)S 10773 X 598 y(are)S 166 x(moved)S 167 x(into)S 166 x(their)S 0166 x(directories.)S 27427 36925 XY F36(2\2031)S%%EndCustomColor9 PP EPi %%PageTrailera2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman#%%+ NewCenturySchlbk-Italic Courier5*%%PageCustomColors: 0_BLACK 1_USERTAGCOLOR%1%%Page: 2-2 10%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)S,1000 BP PaperHeight PaperWidth PM 0 0 XY RV %%BeginCustomColor: 0_BLACKhH0 SC 5094 1807 XY F28(Insta)S 2 x(lling)S 167 x(the)S 166 x(Supervisor)SD167 x(Series)S 5094 4596 XY 23160 96 R 2404 5294 XY F24(2.3)S 5094 XE(Disk)S 165 x(and)S 166 x(Directory)S 166 x(Selection)S 10773 X 896 ypIF151(The)S 185 x(Supervisor)S 184 x(Series)S 184 x(is)S 184 x(installed)SEC183 x(in)S 184 x(its)S 184 x(own)S 184 x(rooted)S 184 x(directory)SoH185 x(to)S 183 x(avoid)S 10773 X 598 y(mixing)S 170 x(Supervisor)S 169 xG(Series)S 168 x(\211les)S 168 x(with)S 169 x(normal)S 168 x(VMS)S 169 xxJ(\211les.)S 254 x(The)S 169 x(only)S 170 x(\211le)S 168 x(copied)S 10773 XC598 y(to)S 182 x(a)S 182 x(VMS)S 182 x(directory)S 183 x(is)S 182 xSG(the)S 182 x(\211le)S 183 x(containing)S 183 x(the)S 183 x(Supervisor)S2C183 x(Series)S 181 x(release)S 10773 X 598 y(notes,)S 167 x(which)S)G166 x(is)S 165 x(copied)S 167 x(to)S 165 x(SYS$HELP)S -64 x(.)S 10773 XrH896 y(The)S 178 x(Supervisor)S 177 x(Series)S 177 x(can)S 177 x(reside)SE177 x(on)S 178 x(any)S 177 x(disk.)S 272 x(The)S 177 x(installation)S1H177 x(prompts)S 10773 X 598 y(you)S 174 x(for)S 173 x(the)S 174 x(name)SG173 x(of)S 173 x(the)S 173 x(disk)S 173 x(and)S 173 x(top-level)S 173 x1C(directory)S 174 x(for)S 173 x(the)S 174 x(utilities.)S 263 x(The)S1D10773 X 598 y(default)S 166 x(is)S 166 x(SYS$SY)S -2 x(SDEVIC)S -2 xE(E:[SUPSER].)S 10773 X 896 y F102(*)S 239 x(Enter)S 240 x(the)S 239 xtI(top-level)S 240 x(directory)S 240 x(for)S 240 x(the)S 239 x(Supervisor)S1H240 x(Series)S 240 x([DUA0:[SUPSER])S 2 x(]:)S 10773 X 897 y F151(Once)SH178 x(a)S 178 x(directory)S 179 x(has)S 177 x(been)S 179 x(speci\211ed)SI178 x(\(or)S 178 x -380 y 1992 24 R 20034 X 491 y 24 492 R 20200 11849 XY0GF42(RETURN)S 145 x 131 y 24 492 R 20034 X 20 y 1992 24 R 22204 11869 XY1GF151(is)S 177 x(pressed)S 178 x(to)S 177 x(select)S 178 x(the)S 10773 X0K598 y(default\),)S 195 x(the)S 190 x(directory)S 189 x(is)S 189 x(created)S7D189 x(and)S 190 x(a)S 189 x(message)S 189 x(like)S 189 x(the)S 189 xE(following)S 190 x(is)S 10773 X 598 y(displayed:)S 10773 X 896 y F1026K(%VMSINSTAL-I-S)S 2 x(YSDIR,)S 239 x(This)S 240 x(product)S 240 x(creates)S0D239 x(system)S 240 x(disk)S 240 x(directory)S 240 x(DUA0:[SUPSER].)SC5094 15157 XY 23160 96 R 2404 15854 XY F24(2.4)S 5094 X(Component)S C166 x(Selection)S 10773 X 897 y F151(The)S 193 x(Supervisor)S 192 x(H(Series)S 192 x(installation)S 191 x(provides)S 192 x(a)S 192 x(number)SG193 x(of)S 192 x(options)S 191 x(for)S 10773 X 597 y(installing)S 166 x(E(individual)S 167 x(components.)S 250 x(The)S 167 x(following)S 166 xOD(list)S 165 x(describes)S 166 x(the)S 166 x(options.)S 10773 X 897 yJ(\201)S 595 x(Install)S 165 x F152(only)S 166 x F151(the)S 167 x(sources)SG166 x(to)S 166 x(the)S 166 x(Supervisor)S 167 x(Series.)S 11670 X 897 ySK(Normally)S -55 x(,)S 168 x(the)S 167 x(images)S 167 x(for)S 167 x(PHOTO,)S I167 x(PLA)S -45 x(YBAC)S -2 x(K,)S 167 x(and)S 168 x(SUPER)S -19 x(VISO)SSG-2 x(R)S 167 x(are)S 11670 X 597 y(linked)S 173 x(from)S 172 x(object)S2M173 x(\211les)S 172 x(included)S 173 x(in)S 173 x(the)S 172 x(distribution.)SlJ262 x(If)S 172 x(you)S 173 x(select)S 172 x(this)S 11670 X 598 y(option,)SC178 x(the)S 176 x(documentation)S 176 x(\211les)S 175 x(and)S 176 xSC(the)S 176 x(source)S 176 x(\211les)S 175 x(will)S 175 x(be)S 176 xfC(installed,)S 11670 X 598 y(but)S 166 x(the)S 166 x(utility)S 166 xeE(images)S 166 x(will)S 165 x(not)S 167 x(be)S 166 x(linked.)S 11670 XeE897 y(Y)S -56 x(ou)S 175 x(should)S 175 x(select)S 174 x(this)S 174 xeG(option)S 175 x(only)S 175 x(if)S 174 x(you)S 176 x(prefer)S 175 x(to)S D174 x(rebuild)S 175 x(the)S 175 x(images)S 11670 X 597 y(and)S 166 xE(``install')S -11 x(')S 166 x(them)S 166 x(by)S 167 x(hand.)S 10773 XeD897 y(\201)S 595 x(Install)S 179 x(PHOTO)S 180 x(\(and)S 180 x(PLA)SD-45 x(YBAC)S -2 x(K\).)S 180 x(If)S 180 x(you)S 181 x(choose)S 181 xE(to)S 180 x(install)S 180 x(PHOTO,)S 11670 X 598 y(you)S 178 x(will)SAE177 x(be)S 178 x(asked)S 178 x(whether)S 178 x(or)S 178 x(not)S 178 xhE(the)S 178 x(commands)S 177 x(should)S 178 x(be)S 178 x(added)S 177 xrC(to)S 11670 X 598 y(the)S 173 x(DCL)S -28 x(T)S -27 x(ABLES)S 172 xaE(\(for)S 173 x(system-wide)S 172 x(de\211nition\))S 174 x(and)S 173 xtE(whether)S 174 x(or)S 173 x(not)S 174 x(the)S 11670 X 597 y(on-line)SeE166 x(help)S 167 x(should)S 166 x(be)S 166 x(added)S 166 x(to)S 166 xtF(a)S 166 x(help)S 166 x(library)S -55 x(.)S 10773 X 897 y(\201)S 595 xF(Install)S 184 x(SUPER)S -19 x(VISO)S -2 x(R.)S 185 x(If)S 185 x(you)SF185 x(choose)S 186 x(to)S 184 x(install)S 184 x(SUPER)S -19 x(VIǢ SUPSER054.B 1(([HUNTER.SUPSER.V54C.B]INSTALL_GUIDE.PS;1ipSOR,)SI184 x(you)S 11670 X 598 y(will)S 178 x(be)S 178 x(asked)S 179 x(whether)SxH179 x(or)S 179 x(not)S 179 x(the)S 179 x(commands)S 179 x(should)S 179 xD(be)S 178 x(added)S 179 x(to)S 178 x(the)S 11670 X 597 y(DCL)S -28 xK(T)S -27 x(ABLES)S 185 x(\(for)S 187 x(system-wide)S 185 x(de\211nition\))SrF188 x(and)S 187 x(whether)S 187 x(or)S 187 x(not)S 186 x(the)S 11670 XD598 y(on-line)S 166 x(help)S 167 x(should)S 166 x(be)S 166 x(added)SJ166 x(to)S 166 x(a)S 166 x(help)S 166 x(library)S -55 x(.)S 10015 28805 XYEF153(Note:)S 300 x(For)S 169 x(security)S 170 x(reasons,)S 171 x(it)S2G170 x(is)S 169 x(not)S 170 x(recommend)S 169 x(that)S 171 x(you)S 170 x:J(include)S 170 x(the)S 11670 X 598 y(SUPER)S -18 x(VISOR)S 166 x(command)SI167 x(in)S 166 x(DCL)S -28 x(T)S -28 x(ABLES.)S 10773 X 897 y F151(\201)S0D595 x(Install)S 165 x(the)S 166 x(sources)S 166 x(for)S 167 x(each)SH166 x(utility)S 166 x(installed.)S 5094 31495 XY 9564 48 R 2404 32193 XYHF24(2.4.1)S 5094 X(Installing)S 166 x(the)S 166 x(Sources)S 166 x(Only)SG10773 X 896 y F151(The)S 187 x(\211rst)S 186 x(question)S 186 x(asked)ScD186 x(gives)S 187 x(you)S 187 x(the)S 186 x(opportunity)S 187 x(to)SF186 x(install)S 185 x(only)S 187 x(the)S 10773 X 598 y(sources)S 166 xC(for)S 166 x(the)S 167 x(Supervisor)S 166 x(Series:)S 10773 X 897 y GF102(*)S 239 x(Do)S 240 x(you)S 239 x(want)S 240 x(to)S 239 x(install)SoF240 x(ONLY)S 239 x(the)S 240 x(sources)S 239 x(for)S 240 x(the)S 239 xE(Supervisor)S 240 x(Series)S 240 x([NO]?)S 5094 36925 XY F36(2\2032)S%%EndCustomColor10 PP EP %%PageTrailer)2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman-%%+ Courier Helvetica NewCenturySchlbk-Italicy%%+ NewCenturySchlbk-BoldS%%PageCustomColors: 0_BLACKy%2%%Page: 2-3 11%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)n)1000 BP PaperHeight PaperWidth PM 0 0 XY %%BeginCustomColor: 0_BLACK(H0 SC 19321 1807 XY F28(Insta)S 2 x(lling)S 167 x(the)S 166 x(Superviso)SG2 x(r)S 165 x(Series)S 10773 4866 XY F151(Answering)S 169 x(YES)S 167 x G(will)S 168 x(cause)S 169 x(the)S 169 x(installation)S 168 x(to)S 168 x9H(skip)S 169 x(the)S 168 x(questions)S 169 x(related)S 168 x(to)S 10773 XE598 y(individual)S 177 x(components)S 176 x(and)S 176 x(begin)S 177 x7G(copying)S 177 x(the)S 177 x(documentation)S 176 x(and)S 176 x(source)S(D10773 X 598 y(\211les.)S 250 x(There)S 167 x(will)S 165 x(be)S 166 xF(no)S 166 x(more)S 167 x(questions)S 165 x(asked.)S 10773 X 896 y(If)SH167 x(you)S 168 x(answer)S 166 x(NO)S 167 x(the)S 167 x(question)S 167 xD(above,)S 168 x(you)S 168 x(will)S 166 x(be)S 167 x(prompted)S 167 xG(for)S 167 x(whether)S 167 x(or)S 10773 X 598 y(not)S 166 x(you)S 167 xnD(wish)S 166 x(to)S 166 x(install)S 165 x(the)S 166 x(sources)S 166 xC(for)S 167 x(the)S 166 x(products)S 166 x(selected:)S 10773 X 897 y GF102(*)S 239 x(Do)S 240 x(you)S 239 x(want)S 240 x(to)S 239 x(install)SrF240 x(the)S 239 x(sources)S 240 x(for)S 239 x(the)S 240 x(Supervisor)SH240 x(Series)S 240 x([YES]?)S 10773 X 896 y F151(Answering)S 169 x(YES)SD167 x(to)S 168 x(the)S 169 x(question)S 168 x(will)S 168 x(install)SD167 x(the)S 169 x(appropriate)S 168 x(source)S 169 x(\211les)S 168 xH(for)S 10773 X 598 y(the)S 166 x(utilities)S 166 x(to)S 165 x(be)S 167 xF(installed.)S 5094 11142 XY 9564 48 R 2404 11840 XY F24(2.4.2)S 5094 XJ(Installing)S 166 x(PHOT)S -13 x(O)S 165 x(and)S 166 x(PLA)S -64 x(YBACK)SG10773 X 896 y F151(The)S 167 x(installation)S 165 x(will)S 166 x(next)SoC166 x(ask)S 166 x(the)S 167 x(following)S 166 x(question:)S 10773 XsC897 y F102(*)S 239 x(Do)S 240 x(you)S 239 x(want)S 240 x(to)S 239 xhE(install)S 240 x(PHOTO)S 239 x([YES]?)S 10773 X 897 y F151(If)S 161 x4I(you)S 163 x(answer)S 161 x(NO)S 161 x(to)S 161 x(the)S 162 x(question,)S)C163 x(the)S 162 x(installation)S 161 x(will)S 161 x(proceed)S 162 xiE(with)S 161 x(asking)S 10773 X 598 y(about)S 166 x(installing)S 167 x)E(SUPER)S -20 x(VISOR.)S 10773 X 896 y(If)S 187 x(you)S 188 x(choose)S7H188 x(to)S 187 x(install)S 187 x(PHOTO,)S 187 x(you)S 189 x(will)S 186 xF(be)S 188 x(given)S 188 x(the)S 188 x(opportunity)S 188 x(to)S 10773 XD598 y(have)S 178 x(the)S 177 x(PHOTO)S 176 x(and)S 177 x(PLA)S -46 xD(YBACK)S 175 x(commands)S 177 x(added)S 176 x(to)S 177 x(the)S 177 xM(system-wide)S 10773 X 598 y(DCL)S -28 x(T)S -27 x(ABLES.)S 172 x(Answering)StE173 x(YES)S 171 x(to)S 173 x(the)S 172 x(following)S 173 x(question)SLC172 x(will)S 172 x(create)S 173 x(``real')S -10 x(')S 10773 X 597 y F(DCL)S 190 x(commands)S 191 x(that)S 191 x(are)S 191 x(automatically)SG191 x(available)S 191 x(to)S 190 x(all)S 191 x(users)S 191 x(on)S 191 x)F(the)S 10773 X 598 y(system:)S 10773 X 897 y F102(*)S 239 x(Do)S 240 xD(you)S 239 x(want)S 240 x(to)S 239 x(add)S 239 x(the)S 240 x(PHOTO)SJ239 x(and)S 240 x(PLAYBACK)S 240 x(commands)S 240 x(to)S 239 x(DCLTABLES)SC240 x([YES]?)S 10773 X 896 y F151(Y)S -56 x(ou)S 169 x(will)S 168 xnG(then)S 169 x(be)S 168 x(asked)S 169 x(whether)S 169 x(or)S 168 x(not)SxE169 x(you)S 169 x(want)S 168 x(to)S 169 x(install)S 168 x(the)S 168 x:E(on-line)S 169 x(help)S 10773 X 598 y(for)S 166 x(PHOTO)S 165 x(and)S7C165 x(PLA)S -45 x(YBAC)S -2 x(K)S 165 x(in)S 166 x(a)S 166 x(help)S0E165 x(library)S -54 x(.)S 249 x(If)S 165 x(you)S 167 x(answer)S 165 x F(YES,)S 165 x(you)S 166 x(will)S 10773 X 598 y(also)S 166 x(be)S 166 xE(asked)S 166 x(which)S 166 x(library)S 167 x(should)S 166 x(contain)SSG167 x(the)S 166 x(help.)S 10773 X 897 y F102(*)S 239 x(Do)S 240 x(you)S C239 x(want)S 240 x(to)S 239 x(add)S 239 x(the)S 240 x(PHOTO)S 239 x0I(and)S 240 x(PLAYBACK)S 240 x(help)S 239 x(to)S 239 x(a)S 240 x(library)SSI240 x([YES]?)S 10773 X 896 y F151(The)S 170 x(installation)S 168 x(will)S C169 x(present)S 169 x(a)S 169 x(number)S 169 x(of)S 169 x(choices)S0J170 x(for)S 169 x(the)S 169 x(library)S 170 x(to)S 169 x(receive)S 10773 XE598 y(the)S 177 x(on-line)S 178 x(help.)S 271 x(In)S 177 x(addition)SxH177 x(to)S 176 x(offering)S 178 x(the)S 177 x(system-wide)S 176 x(help)SC177 x(library)S 177 x(as)S 10773 X 598 y(an)S 184 x(option,)S 188 x)G(the)S 183 x(installation)S 182 x(procedure)S 185 x(will)S 182 x(look)ShM183 x(for)S 184 x(any)S 184 x(HLP$LIBRAR)S -20 x(Y)S 10773 X 598 y(commands)S6I166 x(de\211ned)S 167 x(in)S 166 x(the)S 166 x(system)S 166 x(directory)S6I166 x(and)S 167 x(will)S 165 x(offer)S 166 x(those)S 166 x(too:)S 12686 XsC896 y F102(This)S 239 x(installatio)S 2 x(n)S 239 x(updates)S 240 x7G(the)S 239 x(help)S 240 x(library)S 239 x(so)S 240 x(that)S 239 x(the)SlJ240 x(DCL)S 12686 X 448 y(command)S 240 x("$)S 239 x(HELP)S 240 x(PHOTO")SD239 x(will)S 240 x(provide)S 240 x(information)S 240 x(about)S 240 xC(the)S 12686 X 449 y(PHOTO)S 240 x(utility)S 239 x(and)S 240 x("$)SuO239 x(HELP)S 240 x(PLAYBACK")S 240 x(will)S 239 x(provide)S 240 x(information)SeC12686 X 448 y(about)S 240 x(the)S 239 x(PLAYBACK)S 240 x(utility.)S D12686 X 747 y(There)S 240 x(are)S 239 x(several)S 240 x(help)S 239 xH(libraries)S 240 x(that)S 240 x(these)S 239 x(help)S 240 x(files)S 240 xG(can)S 239 x(be)S 12686 X 449 y(placed)S 240 x(in.)S 478 x(Some)S 240 x D(of)S 239 x(them)S 240 x(are:)S 12686 X 747 y(SYS$SYSROOT:[SYS)S 2 xE(HLP]HELPLIB.HLB)S 12686 X 448 y(WKU$ROOT:[HELP]W)S 2 x(KU_HELP.HLB)SSD10773 X 747 y(*)S 239 x(Which)S 240 x(library)S 240 x(should)S 239 xE(have)S 240 x(PHOTO)S 240 x(and)S 239 x(PLAYBACK)S 240 x(help)S 239 x K([SYS$SYSRO)S 2 x(OT:[SYSHLP]HELPLIB.H)S 2 x(LB]:)S 5094 31566 XY 9564 48 RXI2404 32263 XY F24(2.4.3)S 5094 X(Installing)S 166 x(SUPER)S -13 x(VISOR)SoE10773 X 897 y F151(Whether)S 167 x(or)S 167 x(not)S 166 x(you)S 168 x)N(insf SUPSER054.B 1(([HUNTER.SUPSER.V54C.B]INSTALL_GUIDE.PS;1iSKtalled)S 166 x(PHOTO,)S 166 x(the)S 167 x(installation)S 166 x(procedure)SE167 x(next)S 167 x(asks)S 10773 X 598 y(if)S 166 x(you)S 167 x(want)S(G166 x(to)S 165 x(install)S 166 x(SUPER)S -19 x(VISOR)S -2 x(:)S 10773 X(C896 y F102(*)S 239 x(Do)S 240 x(you)S 239 x(want)S 240 x(to)S 239 xxH(install)S 240 x(SUPERVISOR)S 240 x([YES]?)S 27427 36925 XY F36(2\2033)S%%EndCustomColor11 PP EP %%PageTrailerV2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman %%+ Courier %%PageCustomColors: 0_BLACK % %%Page: 2-4 12%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)9,1000 BP PaperHeight PaperWidth PM 0 0 XY RV %%BeginCustomColor: 0_BLACKeH0 SC 5094 1807 XY F28(Insta)S 2 x(lling)S 167 x(the)S 166 x(Supervisor)SG167 x(Series)S 10773 4866 XY F151(If)S 176 x(you)S 177 x(answer)S 176 x O(NO)S 175 x(to)S 176 x(the)S 177 x(question,)S 179 x(the)S 176 x(installation)SpC176 x(will)S 176 x(proceed)S 176 x(with)S 176 x(the)S 10773 X 598 yxE(installation)S 166 x(of)S 166 x(PHOTO,)S 166 x(if)S 165 x(it)S 166 xrF(was)S 165 x(selected.)S 10773 X 896 y(If)S 166 x(you)S 167 x(choose)SC167 x(to)S 166 x(install)S 165 x(SUPER)S -19 x(VISOR,)S 165 x(you)StE167 x(will)S 166 x(be)S 166 x(given)S 168 x(the)S 166 x(opportunity)S6F167 x(to)S 10773 X 598 y(have)S 174 x(the)S 172 x(SUPER)S -19 x(VISE)SH172 x(command)S 172 x(added)S 173 x(to)S 172 x(the)S 173 x(system-wide)SD171 x(DCL)S -28 x(T)S -27 x(ABLES.)S 10773 X 598 y(Answering)S 197 xF(YES)S 196 x(to)S 196 x(the)S 197 x(following)S 197 x(question)S 197 xF(will)S 195 x(create)S 197 x(a)S 197 x(``real')S -10 x(')S 196 x(DCL)SE10773 X 598 y(command)S 166 x(that)S 166 x(is)S 166 x(automatically)SnG166 x(available)S 166 x(to)S 166 x(all)S 166 x(users)S 166 x(on)S 166 x6D(the)S 166 x(system:)S 10773 X 896 y F102(*)S 239 x(Do)S 240 x(you)SG239 x(want)S 240 x(to)S 239 x(add)S 239 x(the)S 240 x(SUPERVISE)S 240 xYC(command)S 240 x(to)S 239 x(DCLTABLES)S 240 x([NO]?)S 9118 10047 XYiHF153(Note:)S 300 x(It)S 182 x(is)S 182 x(not)S 182 x(recommended)S 181 xF(that)S 182 x(you)S 182 x(add)S 182 x(the)S 182 x(SUPER)S -18 x(VISE)SG182 x(command)S 10773 X 597 y(to)S 188 x(DCL)S -28 x(T)S -28 x(ABLES.)SuD187 x(Answering)S 188 x(NO)S 188 x(to)S 187 x(the)S 188 x(question)SJ189 x(will)S 188 x(help)S 188 x(keep)S 10773 X 598 y(unauth)S 2 x(orized)SF166 x(users)S 166 x(from)S 166 x(trying)S 167 x(to)S 166 x(run)S 166 xH(the)S 167 x(utility)S -54 x(.)S 10773 X 897 y F151(Y)S -56 x(ou)S 169 xC(will)S 168 x(then)S 169 x(be)S 168 x(asked)S 169 x(whether)S 169 xEE(or)S 168 x(not)S 169 x(you)S 169 x(want)S 168 x(to)S 169 x(install)SxJ168 x(the)S 168 x(on-line)S 169 x(help)S 10773 X 597 y(for)S 181 x(SUPER)SD-19 x(VISE)S 179 x(in)S 181 x(a)S 181 x(help)S 181 x(library)S -55 xC(.)S 279 x(If)S 180 x(you)S 182 x(answer)S 180 x(YES,)S 180 x(you)SSH182 x(will)S 180 x(also)S 180 x(be)S 10773 X 598 y(asked)S 166 x(which)SH166 x(library)S 167 x(should)S 166 x(contain)S 167 x(the)S 166 x(help.)SE10773 X 897 y F102(*)S 239 x(Do)S 240 x(you)S 239 x(want)S 240 x(to)SsH239 x(add)S 239 x(the)S 240 x(SUPERVISOR)S 240 x(help)S 239 x(to)S 240 xC(a)S 239 x(library)S 240 x([YES]?)S 10773 X 897 y F151(Like)S 172 x(N(it)S 170 x(does)S 171 x(for)S 170 x(PHOTO,)S 171 x(the)S 171 x(installation)SF171 x(will)S 170 x(present)S 170 x(a)S 171 x(number)S 172 x(of)S 171 xE(choices)S 10773 X 597 y(for)S 166 x(the)S 166 x(library)S 167 x(to)S)G166 x(receive)S 167 x(the)S 166 x(on-line)S 167 x(help:)S 10773 X 897 ySHF102(*)S 239 x(Which)S 240 x(library)S 240 x(should)S 239 x(have)S 240 xL(SUPERVISOR)S 240 x(help)S 240 x([SYS$SYSROOT:[SYSH)S 2 x(LP]HELPLIB.HLB]:)SG10773 X 897 y F151(If)S 171 x(you)S 172 x(speci\211ed)S 171 x(a)S 171 x7E(library)S 172 x(to)S 171 x(receive)S 172 x(the)S 171 x(PHOTO)S 171 xlE(help,)S 173 x(that)S 171 x(same)S 170 x(library)S 172 x(is)S 10773 XlG597 y(offered)S 166 x(as)S 166 x(the)S 166 x(default)S 166 x(to)S 166 x H(this)S 165 x(prompt.)S 5094 19063 XY 23160 96 R 2404 19760 XY F24(2.5)SF5094 X(The)S 166 x(Installation)S 166 x(Completes)S 10773 X 897 y F151F(After)S 175 x(the)S 175 x(con\211g)S 2 x(uration)S 175 x(questions,)SN178 x(the)S 175 x(selected)S 175 x(components)S 175 x(are)S 176 x(installed.)SC10773 X 598 y(Files)S 197 x(are)S 198 x(copied)S 198 x(from)S 197 x L(each)S 198 x(save)S 198 x(set)S 196 x(of)S 198 x(the)S 198 x(installation)SE197 x(kit)S 197 x(and)S 198 x(the)S 10773 X 597 y(appropriate)S 175 xRD(images)S 175 x(are)S 175 x(linked,)S 178 x(then)S 176 x(all)S 175 xH(installed)S 174 x(\211les)S 175 x(are)S 175 x(copied)S 175 x(to)S 175 xO(their)S 10773 X 598 y(destination)S 188 x(directories.)S 292 x(Informational)S7E188 x(messages)S 187 x(about)S 188 x(the)S 188 x(individual)S 10773 X K598 y(components)S 166 x(are)S 167 x(displayed)S 165 x(as)S 166 x(needed.)S85094 36925 XY F36(2\2034)S%%EndCustomColor12 PP EP %%PageTrailert2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman!%%+ Courier NewCenturySchlbk-Bold1%%PageCustomColors: 0_BLACKS%0%%Page: 3-1 13%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)S)1000 BP PaperHeight PaperWidth PM 0 0 XY 7%%BeginCustomColor: 0_BLACK8N0 SC 2404 5875 XY F12(3)S 5094 4546 XY 23160 48 R 5094 5443 XY F20(Post-Inst)SC-2 x(allation)S 165 x(Information)S 10773 8652 XY F151(This)S 172 x4G(chapter)S 173 x(contains)S 172 x(important)S 172 x(information)S 172 xuD(about)S 172 x(setting)S 172 x(up)S 173 x(Supervisor)S 10773 X 598 yD(Series)S 166 x(con\211gu)S 2 x(ration)S 166 x(and)S 166 x(startup)SH166 x(options.)S 5094 10196 XY 23160 96 R 2404 10893 XY F24(3.1)S 5094 XG(Starting)S 167 x(the)S 166 x(Supervisor)S 166 x(Series)S 10773 X 897 y1IF151(Once)S 174 x(the)S 174 x(installation)S 174 x(is)S 173 x(complete,)S7D177 x(you)S 175 x(can)S 174 x(start)S 173 x(the)S 174 x(Supervisor)SE175 x(Series)S 174 x(by)S 10773 X 598 y(executing)S 179 x(the)S 178 xlJ(command)S 177 x(procedure)S 179 x(SUPSER_ST)S -28 x(ARTUP)S -65 x(.COM,)SD178 x(located)S 177 x(in)S 10773 X 598 y(SUPSER_ROO)S -2 x(T)S -27 xG(:[COM].)S 178 x(This)S 178 x(procedure)S 179 x(will)S 177 x(de\211ne)S(E178 x(the)S 178 x(SUPSER_ROO)S -2 x(T)S 10773 X 597 y(logical)S 189 xtC(in)S 190 x(the)S 189 x(system)S 188 x(logical)S 189 x(name)S 190 x9D(table)S 188 x(and)S 189 x(install)S 189 x(the)S 189 x(PHOTO)S 188 xF(and)S 10773 X 598 y(SUPER)S -19 x(VISOR)S 164 x(images)S 166 x(with)SC166 x(the)S 166 x(necessary)S 167 x(privileges.)S 10773 X 897 y(T)S)E-45 x(o)S 191 x(start)S 190 x(the)S 192 x(Supervisor)S 192 x(Series)S5F191 x(automatically)S 191 x(at)S 191 x(system)S 191 x(startup,)S 197 xF(you)S 10773 X 597 y(should)S 189 x(add)S 189 x(a)S 189 x(line)S 190 xK(like)S 189 x(the)S 189 x(following)S 190 x(to)S 188 x(the)S 190 x(system)SxM188 x(startup)S 189 x(procedure)S 10773 X 598 y(\(SYST)S -28 x(ARTUP_V5.COM)SSF166 x(in)S 166 x(SYS$MANAG)S -2 x(ER\):)S 10773 X 897 y F102($)S 239 xC(@dua0:[supse)S 2 x(r.com]supser_startu)S 2 x(p.com)S 10773 X 897 y)DF151(Y)S -56 x(ou)S 168 x(should,)S 167 x(of)S 167 x(course,)S 168 xF(specify)S 167 x(the)S 167 x(actual)S 166 x(device)S 168 x(and)S 167 xE(top-level)S 167 x(directory)S 167 x(that)S 10773 X 597 y(you)S 167 xSM(speci\211ed)S 166 x(during)S 167 x(the)S 167 x(installation.)S 5094 19611 XYwH23160 96 R 2404 20308 XY F24(3.2)S 5094 X(Creating)S 166 x(SUPER)S -13 xH(VISOR)S 165 x(Identi\211ers)S 10773 X 897 y F151(If)S 170 x(you)S 172 xC(installed)S 170 x(SUPER)S -19 x(VISO)S -2 x(R,)S 171 x(you)S 172 xhD(must)S 170 x(also)S 170 x(create)S 171 x(the)S 170 x(rights)S 171 xF(identi\211ers)S 10773 X 597 y(used)S 180 x( SUPSER054.B 1(([HUNTER.SUPSER.V54C.B]INSTALL_GUIDE.PS;1ito)S 179 x(control)S 180 xD(access)S 180 x(to)S 179 x(the)S 180 x(SUPER)S -19 x(VISO)S -2 x(R)SH180 x(functions.)S 277 x(There)S 180 x(are)S 180 x(seven)S 10773 X 598 yE(SUPER)S -19 x(VISOR)S 177 x(identi\211ers,)S 182 x(described)S 178 x)F(fully)S 179 x(in)S 178 x(the)S 179 x(manual)S 178 x F152(SUPER)S -9 xG(VISOR)S 10773 X 598 y(Reference)S 168 x(Guide)S F151(.)S 10773 X 897 y0E(A)S 176 x(command)S 177 x(procedure)S 178 x(has)S 176 x(been)S 177 xhG(provided)S 177 x(that)S 177 x(can)S 177 x(be)S 176 x(used)S 177 x(to)S)C176 x(create)S 177 x(the)S 10773 X 597 y(identi\211ers.)S 288 x(T)S7C-45 x(o)S 185 x(run)S 186 x(it,)S 190 x(simply)S 185 x(give)S 186 x5E(the)S 186 x(following)S 185 x(command)S 185 x(at)S 185 x(the)S 186 x*J(DCL)S 10773 X 598 y(prompt:)S 10773 X 897 y F102($)S 239 x(@SUPSER_ROOT)SF2 x(:[COM]SUPERVISOR_ID)S 2 x(ENTIFIERS.COM)S 10773 X 896 y F151(The)SL167 x(following)S 166 x(example)S 166 x(shows)S 166 x(the)S 166 x(commands)SI166 x(used)S 166 x(to)S 165 x(create)S 167 x(the)S 166 x(identi\211ers:)Sg10773 X 897 y F102($)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR41 SC 239 x(SET)S 240 x(DEFAULT)S 240 x(SYS$SYSTEM:)S%%EndCustomColor%%BeginCustomColor: 0_BLACK)0 SC 10773 X 448 y($)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR"1 SC 239 x(RUN)S 240 x(AUTHORIZE)S%%EndCustomColor%%BeginCustomColor: 0_BLACKo0 SC 10773 X 449 y(UAF>)Sa%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR11 SC 240 x(ADD/IDENTIFIER)S 240 x(SUPSER_ADVISE)Sf%%EndCustomColor%%BeginCustomColor: 0_BLACK0 SC 10773 X 448 y(UAF>)S7%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR91 SC 240 x(ADD/IDENTIFIER)S 240 x(SUPSER_OBSERV)S 2 x(E)S%%EndCustomColor%%BeginCustomColor: 0_BLACK)0 SC 10773 X 448 y(UAF>)S %%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR>1 SC 240 x(ADD/IDENTIFIER)S 240 x(SUPSER_ADVISE)S 2 x(_GROUP)S%%EndCustomColor%%BeginCustomColor: 0_BLACK20 SC 10773 X 449 y(UAF>)SA%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR?1 SC 240 x(ADD/IDENTIFIER)S 240 x(SUPSER_OBSERV)S 2 x(E_GROUP)Sa%%EndCustomColor%%BeginCustomColor: 0_BLACK 0 SC 10773 X 448 y(UAF>)St%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR<1 SC 240 x(ADD/IDENTIFIER)S 240 x(SUPSER_LOGGED)S 2 x(_OUT)S%%EndCustomColor%%BeginCustomColor: 0_BLACK(0 SC 10773 X 448 y(UAF>)St%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR01 SC 240 x(ADD/IDENTIFIER)S 240 x(SUPSER_QUIET)S%%EndCustomColor%%BeginCustomColor: 0_BLACKx0 SC 10773 X 449 y(UAF>)SS%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR>1 SC 240 x(ADD/IDENTIFIER)S 240 x(SUPSER_NO_SUP)S 2 x(ERVISE)S%%EndCustomColor%%BeginCustomColor: 0_BLACKLE0 SC 9118 32363 XY F153(Note:)S 300 x(If)S 183 x(the)S 182 x(identi)SiE2 x(\211ers)S 182 x(already)S 183 x(exist,)S 188 x(you)S 184 x(will)S(C183 x(receive)S 182 x(error)S 182 x(messages)S 10773 X 598 y(from)SrI177 x(AUTHORIZE)S 179 x(stating)S 179 x(that)S 179 x(the)S 178 x(identi)SuI2 x(\211ers)S 177 x(already)S 179 x(exist.)S 274 x(Y)S -55 x(ou)S 10773 X G597 y(can)S 167 x(ignore)S 166 x(these)S 167 x(errors.)S 27427 36925 XYx F36(3\2031)S%%EndCustomColor13 PP EP %%PageTrailerf2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman9%%+ Courier NewCenturySchlbk-Italic NewCenturySchlbk-Bold(*%%PageCustomColors: 0_BLACK 1_USERTAGCOLOR%%%Page: 3-2 14%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)d,1000 BP PaperHeight PaperWidth PM 0 0 XY RV %%BeginCustomColor: 0_BLACKDF0 SC 5094 1807 XY F28(Post-Ins)S 2 x(tallation)S 167 x(Informati)S 2 xC(on)S 5094 4596 XY 23160 96 R 2404 5294 XY F24(3.3)S 5094 X(Using)SxG166 x(the)S 166 x(Bookreader)S 165 x(Documentation)S 10773 X 896 y F151SH(The)S 168 x(command)S 167 x(procedure)S 168 x(SUPSER_ST)S -29 x(ARTUP)SC-64 x(.COM)S 167 x(automatically)S 167 x(adds)S 166 x(the)S 10773 X7H598 y(SUPSER_ROO)S -2 x(T)S -27 x(:[DOC])S 155 x(name)S 156 x(to)S 156 xC(the)S 156 x(DECW)S -2 x($BOOK)S 155 x(logical)S 156 x(name)S 156 xhD(search)S 156 x(list)S 10773 X 598 y(if)S 166 x(the)S 166 x(\211le)SF167 x(LIBRA)S -2 x(R)S -18 x(Y)S -56 x(.DECW$BO)S -2 x(OKSHELF)S 165 xJ(is)S 166 x(found)S 166 x(in)S 167 x(the)S 166 x([DOC])S 164 x(directory)SM-54 x(.)S 5094 8332 XY 23160 96 R 2404 9030 XY F24(3.4)S 5094 X(Registering)S)C166 x(Y)S -52 x(our)S 167 x(Installation)S 10773 X 896 y F151(The)S6Q179 x(Supervisor)S 179 x(Series)S 178 x(is)S 177 x(freely)S 179 x(distributable)S4C177 x(software,)S 181 x(and)S 179 x(no)S 178 x(license)S 178 x(is)SaP10773 X 598 y(required)S 177 x(to)S 176 x(use)S 177 x(it.)S 270 x(Registration)SH176 x(of)S 177 x(your)S 177 x(installation)S 176 x(is)S 176 x(at)S 176 xF(your)S 178 x(discretion)S 10773 X 598 y(and)S 181 x(is)S 181 x(used)SC181 x(by)S 182 x(the)S 181 x(author)S 182 x(only)S 182 x(to)S 181 xsO(determine)S 181 x(the)S 181 x(size)S 181 x(of)S 181 x(the)S 181 x(Supervisor)ShH10773 X 598 y(Series)S 166 x(user)S 166 x(base)S 166 x(and)S 166 x(the)SJ166 x(future)S 167 x(directions)S 166 x(for)S 166 x(the)S 166 x(package.)SE10773 X 896 y(T)S -45 x(o)S 204 x(register)S -37 x(,)S 215 x(simply)S1I204 x(send)S 204 x(a)S 204 x(note)S 205 x(to)S 204 x(the)S 204 x(author)S1G205 x(with)S 204 x(the)S 204 x(following)S 10773 X 598 y(information:)S7G11670 X 897 y(Installer)S 27 x(')S -19 x(s)S 166 x(name)S 11670 X 597 y%O(Company)S 166 x(name)S 166 x(and)S 167 x(address)S 11670 X 598 y(System\(s\))ScF165 x(on)S 166 x(which)S 167 x(the)S 166 x(Supervisor)S 166 x(Series)SG166 x(is)S 166 x(running)S 11670 X 598 y(Which)S 166 x(products)S 166 x(D(you're)S 167 x(using)S 167 x(\(PHOTO)S 165 x(and/or)S 167 x(SUPER)SC-19 x(VISOR\))S 11670 X 598 y(Any)S 166 x(comments)S 166 x(and/or)S0I167 x(suggestions)S 166 x(you)S 167 x(might)S 167 x(have)S 10773 17598 XYnJ(Y)S -56 x(ou)S 185 x(can)S 185 x(send)S 184 x(it)S 184 x(electronically)SI185 x(to)S 184 x F153(goat)S 2 x(hunter@WKUVX1.BITNET)S 183 x F151(\(or)SuE10773 X 597 y F153(goath)S 2 x(unter%WKUVX1.BITNET)S -2 x(@UKCC.UKY)SaH-56 x(.EDU)S 169 x F151(via)S 169 x(Internet\),)S 169 x(by)S 169 x(fax)SC10773 X 598 y(to)S 166 x(+1)S 166 x(502)S 166 x(745)S 166 x(5387,)SeK166 x(or)S 166 x(by)S 167 x(mail)S 165 x(to)S 166 x(the)S 166 x(following)SaE167 x(address:)S 11670 X 897 y(Hunter)S 166 x(Goatley)S 11670 X 597 yrD(Academic)S 165 x(Computing,)S 167 x(STH)S 166 x(226)S 11670 X 598 yE(W)S -28 x(estern)S 166 x(Kentucky)S 167 x(University)S 11670 X 598 yxL(Bowling)S 166 x(Green,)S 166 x(KY)S 166 x(42101)S 166 x(USA)S 5094 36925 XY F36(3\2032)S%%EndCustomColor14 PP EP %%PageTrailer 2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman%%+ NewCenturySchlbk-BoldS%%PageCustomColors: 0_BLACKa% %%Page: A-1 15%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)9)1000 BP PaperHeight PaperWidth PM 0 0 XY x%%BeginCustomColor: 0_BLACKSK0 SC 2404 5875 XY F12(A)S 5094 4546 XY 23160 48 R 5094 5443 XY F20(Sample)S F166 x(Superv)S -2 x(isor)S 166 x(Series)S 165 x(Insta)S -2 x(llation)SE10773 8652 XY F151(This)S 166 x(appendix)S 167 x(includes)S 166 x(a)S1F166 x(sample)S 166 x(Supervisor)S 166 x(Series)S 166 x(installation.)S5094 X 896 y F102($)Si%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORI1 SC 240 x(@SYS$UPDATE:VMSINST)S 2 x(AL)S 239 x(SUPSER054)S 240 x(MUA0:)S %%EndCustomColor%%BeginCustomColor: 0_BLACKnC0 SC 5333 10595 XY(VAX/VMS)S 240 x(Software)S 240 x(Product)S 240 x0G(Installation)S 240 x(Procedure)S 240 x(V5.5)S 5094 11641 XY(It)S 240 x-H(is)S 239 x(13-MAY-1992)S 240 x(at)S 240 x(07:30.)S 5094 X 747 y(Enter)SF240 x(a)S 239 x(question)S 2a SUPSER054.B 1(([HUNTER.SUPSER.V54C.B]INSTALL_GUIDE.PS;1ij840 x(mark)S 240 x(\(?\))S 239 x(at)S 239 xH(any)S 240 x(time)S 239 x(for)S 240 x(help.)S 5094 X 747 y(%VMSINSTAL-)SE2 x(W-NOTSYSTEM,)S 240 x(You)S 239 x(are)S 240 x(not)S 239 x(logged)S6H240 x(in)S 239 x(to)S 239 x(the)S 240 x(SYSTEM)S 240 x(account.)S 5094 XG448 y(%VMSINSTAL-)S 2 x(W-ACTIVE,)S 240 x(The)S 239 x(following)S 240 xlC(processes)S 240 x(are)S 239 x(still)S 240 x(active:)S 5333 X 449 y F(Polter)S 240 x(Goat)S 5333 X 448 y(DECW$TE_0F)S 2 x(2B)S 5094 X 448 yD(*)S 240 x(Do)S 239 x(you)S 239 x(want)S 240 x(to)S 239 x(continue)S240 x(anyway)S 240 x([NO]?)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR1 SC 239 x(YES)S%%EndCustomColor%%BeginCustomColor: 0_BLACKxE0 SC 5094 X 449 y(*)S 240 x(Are)S 239 x(you)S 239 x(satisfied)S 240 xxI(with)S 240 x(the)S 239 x(backup)S 240 x(of)S 239 x(your)S 240 x(system)S5240 x(disk)S 239 x([YES]?)SS%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORF1 SC 100 x -267 y 1512 24 R 20018 X 355 y 24 360 R 20144 15357 XY F1065(RETURN)S 107 x 108 y 24 360 R 20018 X 20 y 1512 24 Ra%%EndCustomColor%%BeginCustomColor: 0_BLACK F0 SC 5094 16423 XY F102(The)S 240 x(following)S 240 x(products)S 240 xH(will)S 239 x(be)S 240 x(processed:)S 5573 X 747 y(SUPSER)S 239 x(V5.4)SD4272 X 15 y 144 384 R 5333 17917 XY(Beginning)S 241 x(installation)SF240 x(of)S 239 x(SUPSER)S 240 x(V5.4)S 239 x(at)S 240 x(07:30)S 4272 XM83 y 144 516 R 5094 18664 XY(%VMSINSTAL-)S 2 x(I-RESTORE,)S 240 x(Restoring)S(E240 x(product)S 240 x(save)S 239 x(set)S 239 x(A)S 240 x(...)S 5094 XeG449 y(%VMSINSTAL-)S 2 x(I-RELMOVED,)S 240 x(Product's)S 240 x(release)SlF240 x(notes)S 239 x(have)S 240 x(been)S 239 x(moved)S 240 x(to)S 239 xH(SYS$HELP.)S 7007 X 747 y(Supervisor)S 240 x(Series)S 240 x(v5.4)S 240 xF(Installation)S 4272 X 82 y 144 468 R 7007 20607 XY(SUPERVISOR)S 240 xG(and)S 240 x(PHOTO)S 7007 X 747 y(Copyright)S 240 x(\251)S 239 x(1992)S7E240 x(by)S 239 x(Hunter)S 240 x(Goatley.)S 479 x(All)S 239 x(Rights)SRF240 x(Reserved.)S 7725 X 448 y(Redistribution)S 240 x(for)S 240 x(no)SD239 x(commercial)S 240 x(gain)S 239 x(is)S 240 x(permitted.)S 4272 XD83 y 144 960 R 5094 22550 XY(*)S 240 x(Do)S 239 x(you)S 239 x(want)SH240 x(to)S 239 x(purge)S 240 x(files)S 239 x(replaced)S 240 x(by)S 240 x+(this)S 239 x(installation)S 241 x([YES]?)SC%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORF1 SC 339 x -267 y 1512 24 R 20975 X 355 y 24 360 R 21100 22530 XY F1065(RETURN)S 107 x 108 y 24 360 R 20975 X 20 y 1512 24 R%%EndCustomColor%%BeginCustomColor: 0_BLACKCE0 SC 7007 23297 XY F102(The)S 240 x(Supervisor)S 240 x(Series)S 240 xI(is)S 239 x(installed)S 240 x(in)S 239 x(its)S 240 x(own)S 239 x(rooted)SF7007 X 448 y(directory)S 240 x(to)S 240 x(avoid)S 239 x(mixing)S 240 xD(Supervisor)S 240 x(Series)S 240 x(files)S 239 x(with)S 7007 X 449 yH(normal)S 240 x(VMS)S 239 x(files.)S 479 x(The)S 240 x(directory)S 240 xG(can)S 239 x(reside)S 240 x(on)S 239 x(any)S 240 x(disk.)S 7007 X 747 yIG(THERE)S 240 x(ARE)S 239 x(NO)S 240 x(FILES)S 239 x(COPIED)S 240 x(TO)SUC239 x(SYS$SYSTEM,)S 240 x(SYS$LIBRAR)S 2 x(Y,)S 7007 X 448 y(etc.)S0G479 x(\(The)S 239 x(only)S 240 x(file)S 239 x(copied)S 240 x(to)S 239 xF(a)S 240 x(VMS)S 239 x(directory)S 240 x(is)S 239 x(the)S 7007 X 448 yE(Release)S 240 x(Notes)S 240 x(file,)S 239 x(which)S 240 x(is)S 239 x,G(copied)S 240 x(to)S 239 x(SYS$HELP.\))S 5094 X 748 y(*)S 240 x(Enter)SsG239 x(the)S 240 x(top-level)S 240 x(directory)S 240 x(for)S 239 x(the)S1H240 x(Supervisor)S 240 x(Series)S 239 x([WKUVX1$DUA)S 2 x(0:[SUPSER]]:)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORF1 SC 340 x -267 y 1512 24 R 24801 X 355 y 24 360 R 24926 26565 XY F1065(RETURN)S 107 x 108 y 24 360 R 24801 X 20 y 1512 24 Ri%%EndCustomColor%%BeginCustomColor: 0_BLACKCH0 SC 5094 27033 XY F102(%VMSINSTAL-)S 2 x(I-SYSDIR,)S 240 x(This)S 239 xH(product)S 240 x(creates)S 240 x(system)S 239 x(disk)S 240 x(directory)SK479 x(DUA0:[SUPSER].)S 7007 X 747 y(The)S 240 x(Supervisor)S 240 x(Series)SPH240 x(is)S 239 x(normally)S 240 x(installed)S 240 x(by)S 239 x(linking)SD240 x(the)S 7007 X 448 y(object)S 240 x(files)S 240 x(packed)S 239 xG(with)S 240 x(the)S 239 x(kit.)S 479 x(The)S 239 x(installation)S 241 x1D(will)S 239 x(also)S 7007 X 449 y(give)S 240 x(you)S 239 x(a)S 239 xC(chance)S 240 x(to)S 239 x(add)S 240 x(DCL)S 239 x(commands)S 240 xmH(and)S 240 x(on-line)S 239 x(help)S 240 x(to)S 7007 X 448 y(your)S 240 xF(system.)S 7007 X 747 y(The)S 240 x(sources)S 239 x(are)S 240 x(also)SH239 x(provided.)S 480 x(You)S 239 x(can)S 239 x(either)S 240 x(install)SL240 x(the)S 7007 X 449 y(products)S 240 x(and)S 240 x(the)S 239 x(sources,)SD240 x(or)S 239 x(you)S 240 x(can)S 239 x(install)S 240 x(the)S 239 xG(sources)S 7007 X 448 y(only)S 240 x(and)S 239 x(rebuild)S 240 x(them)S C240 x(by)S 239 x(hand.)S 7007 X 747 y(If)S 240 x(you)S 239 x(only)S6C239 x(want)S 240 x(to)S 239 x(install)S 240 x(the)S 240 x(sources)SxC239 x(and)S 240 x(want)S 239 x(to)S 240 x(skip)S 239 x(the)S 7007 XtF448 y(product)S 240 x(installations,)S 241 x(enter)S 239 x(YES)S 240 xD(to)S 239 x(the)S 239 x(following)S 240 x(prompt.)S 5094 X 748 y(*)SD240 x(Do)S 239 x(you)S 239 x(want)S 240 x(to)S 239 x(install)S 240 xN(ONLY)S 240 x(the)S 239 x(sources)S 240 x(for)S 239 x(the)S 240 x(Supervisor)S240 x(Series)S 239 x([NO]?)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORF1 SC 340 x -267 y 1512 24 R 22888 X 355 y 24 360 R 23013 32692 XY F1065(RETURN)S 107 x 108 y 24 360 R 22888 X 20 y 1512 24 R6%%EndCustomColor%%BeginCustomColor: 0_BLACK C0 SC 7007 33459 XY F102(The)S 240 x(answer)S 239 x(to)S 240 x(the)S G239 x(following)S 240 x(question)S 240 x(will)S 240 x(determine)S 240 x)F(whether)S 7007 X 448 y(the)S 240 x(appropriate)S 240 x(source)S 240 xG(files)S 239 x(for)S 240 x(SUPERVISOR)S 240 x(and)S 239 x(PHOTO)S 240 xxH(are)S 7007 X 448 y(installed.)S 5094 X 748 y(*)S 240 x(Do)S 239 x(you)SC239 x(want)S 240 x(to)S 239 x(install)S 240 x(the)S 239 x(sources)SwH240 x(for)S 240 x(the)S 239 x(Supervisor)S 240 x(Series)S 240 x([YES]?)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORF1 SC 339 x -267 y 1512 24 R 21931 X 355 y 24 360 R 22057 35083 XY F1065(RETURN)S 107 x 108 y 24 360 R 21931 X 20 y 1512 24 Rx%%EndCustomColor%%BeginCustomColor: 0_BLACK E0 SC 5094 35850 XY F102(*)S 240 x(Do)S 239 x(you)S 239 x(want)S 240 x 2(to)S 239 x(install)S 240 x(PHOTO)S 240 x([YES]?)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORF1 SC 339 x -267 y 1512 24 R 14280 X 355 y 24 360 R 14405 35830 XY F106<(RETUR)S 2 x(N)S 105 x 108 y 24 360 R 14280 X 20 y 1512 24 R%%EndCustomColor%%BeginCustomColor: 0_BLACK6 0 SC 27344 36925 XY F36(A\2031)S%%EndCustomColor15 PP EP %%PageTrailera2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman %%+ Courier1*%%PageCustomColors: 0_BLACK 1_USERTAGCOLOR%9%%Page: A-2 16%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)(,1000 BP PaperHeight PaperWidth PM 0 0 XY RV %%BeginCustomColor: 0_BLACK F0 SC 5094 1807 XY F28(Sample)S 168 x(Supervisor)S 166 x(Series)S 167 xL(Installa)S 2 x(tion)S 7007 4766 XY F102(The)S 240 x(PHOTO)S 239 x(command)SO240 x(can)S 240 x(be)S 239 x(added)S 239 x(to)S 240 x(the)S 239 x(system-wide)S D240 x(DCLTABLES,)S 7007 X 448 y(making)S 240 x(the)S 239 x(command)SH240 x(available)S 240 x(to)S 240 x(all)S 239 x(users,)S 240 x(or)S 239 xD(it)S 239 x(can)S 240 x(be)S 7007 X 448 y(defined)S 240 x(as)S 239 xG(a)S 240 x(foreign)S 239 x(command.)S 5094 X 747 y(*)S 240 x(Do)S 239 x H(you)S 239 x(want)S 240 x(to)S 239 x(install)S 240 x(the)S 239 x(PHOTO)SL240 x(command)S 240 x(in)S 2399y SUPSER054.B 1(([HUNTER.SUPSER.V54C.B]INSTALL_GUIDE.PS;1i4 x(the)S 240 x(system-wide)S 240 x(DCLTABLES)S240 x([YES]?)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORE1 SC 339 x -266 y 1512 24 R 24083 X 355 y 24 360 R 24209 6390 XY F106 5(RETURN)S 107 x 108 y 24 360 R 24083 X 20 y 1512 24 RC%%EndCustomColor%%BeginCustomColor: 0_BLACKSD0 SC 5094 7157 XY F102(*)S 240 x(Do)S 239 x(you)S 239 x(want)S 240 xC(to)S 239 x(add)S 240 x(the)S 239 x(PHOTO)S 240 x(help)S 239 x(to)S9(239 x(a)S 240 x(library)S 239 x([YES]?)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORE1 SC 340 x -267 y 1512 24 R 18584 X 355 y 24 360 R 18709 7137 XY F106)5(RETURN)S 107 x 108 y 24 360 R 18584 X 20 y 1512 24 RY%%EndCustomColor%%BeginCustomColor: 0_BLACK4H0 SC 7007 7904 XY F102(This)S 240 x(installation)S 240 x(updates)S 240 xG(the)S 239 x(help)S 240 x(library)S 240 x(so)S 239 x(that)S 240 x(the)SpI239 x(DCL)S 7007 X 448 y(command)S 240 x("$)S 239 x(HELP)S 240 x(PHOTO")S)D240 x(will)S 239 x(provide)S 240 x(information)S 240 x(about)S 240 xH(the)S 7007 X 448 y(PHOTO)S 240 x(utility)S 240 x(and)S 239 x("$)S 239 xJ(HELP)S 240 x(PLAYBACK")S 240 x(will)S 239 x(provide)S 240 x(information)SI7007 X 449 y(about)S 240 x(the)S 239 x(PLAYBACK)S 240 x(utility.)S 7007 X H747 y(There)S 240 x(are)S 239 x(several)S 240 x(help)S 240 x(libraries)SG240 x(that)S 239 x(these)S 240 x(help)S 239 x(files)S 240 x(can)S 239 xSE(be)S 7007 X 448 y(placed)S 240 x(in.)S 478 x(Some)S 240 x(of)S 239 xJ(them)S 240 x(are:)S 7007 X 748 y(SYS$SYSROOT:[)S 2 x(SYSHLP]HELPLIB.HLB)SH7007 X 448 y(WKU$ROOT:[HEL)S 2 x(P]WKU_HELP.HLB)S 5094 X 747 y(*)S 240 xH(Which)S 239 x(library)S 240 x(should)S 240 x(have)S 239 x(PHOTO)S 240 xV(and)S 239 x(PLAYBACK)S 240 x(help)S 240 x([SYS$SYSROOT:[SYS)S 2 x(HLP]HELPLIB.HLB]:)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORF1 SC 340 x -267 y 1512 24 R 25996 X 355 y 24 360 R 26122 12367 XY F1065(RETURN)S 106 x 108 y 24 360 R 25996 X 20 y 1512 24 R%%%EndCustomColor%%BeginCustomColor: 0_BLACK(E0 SC 5094 13134 XY F102(*)S 240 x(Do)S 239 x(you)S 239 x(want)S 240 xe7(to)S 239 x(install)S 240 x(SUPERVISOR)S 240 x([YES]?)S %%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORF1 SC 339 x -267 y 1512 24 R 15475 X 356 y 24 360 R 15601 13114 XY F1065(RETURN)S 107 x 109 y 24 360 R 15475 X 20 y 1512 24 R2%%EndCustomColor%%BeginCustomColor: 0_BLACK2E0 SC 7007 13881 XY F102(The)S 240 x(SUPERVISE)S 240 x(command)S 240 x1J(can)S 239 x(be)S 239 x(added)S 240 x(to)S 239 x(the)S 240 x(system-wide)SE7007 X 449 y(DCLTABLES,)S 240 x(making)S 240 x(it)S 239 x(available)SoG240 x(to)S 240 x(all)S 239 x(users,)S 240 x(or)S 239 x(it)S 240 x(can)SF7007 X 448 y(be)S 240 x(defined)S 239 x(as)S 240 x(a)S 239 x(foreign)SC240 x(command)S 240 x(on)S 239 x(a)S 239 x(per-user)S 240 x(basis)SxD240 x(or)S 7007 X 448 y(in)S 240 x(SYS$SYLOGIN.)S 7007 X 748 y(For)SL240 x(security)S 240 x(purposes,)S 240 x(it)S 239 x(is)S 239 x(recommended)SJ240 x(that)S 240 x(the)S 239 x(command)S 7007 X 448 y(be)S 240 x(defined)SE239 x(as)S 240 x(a)S 239 x(foreign)S 240 x(command)S 240 x(on)S 239 xYF(a)S 239 x(per-user)S 240 x(basis.)S 5094 X 747 y(*)S 240 x(Do)S 239 xH(you)S 239 x(want)S 240 x(to)S 239 x(add)S 240 x(the)S 239 x(SUPERVISE)S:240 x(command)S 240 x(to)S 239 x(DCLTABLES)S 240 x([NO]?)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORF1 SC 339 x -267 y 1512 24 R 20018 X 355 y 24 360 R 20144 17149 XY F1065(RETURN)S 107 x 108 y 24 360 R 20018 X 20 y 1512 24 Ry%%EndCustomColor%%BeginCustomColor: 0_BLACKAC0 SC 7007 17916 XY F102(This)S 240 x(installation)S 240 x(updates)SYF240 x(the)S 239 x(help)S 240 x(library)S 240 x(so)S 239 x(that)S 240 xG(the)S 239 x(DCL)S 7007 X 449 y(command)S 240 x("$)S 239 x(HELP)S 240 xSD(SUPERVISE")S 240 x(will)S 240 x(provide)S 239 x(information)S 241 xF(about)S 239 x(the)S 7007 X 448 y(SUPERVISOR)S 240 x(utility.)S 7007 XF747 y(Whether)S 240 x(or)S 239 x(not)S 240 x(you)S 239 x(elect)S 240 xH(to)S 239 x(place)S 240 x(the)S 239 x(files)S 240 x(in)S 239 x(a)S 239 xD(library,)S 240 x(the)S 7007 X 448 y(files)S 240 x(will)S 239 x(be)SE240 x(left)S 239 x(in)S 240 x(the)S 239 x(Supervisor)S 240 x(Series)S2F240 x(directory)S 240 x(for)S 7007 X 449 y(future)S 240 x(reference.)SE5094 X 747 y(*)S 240 x(Do)S 239 x(you)S 239 x(want)S 240 x(to)S 239 x_C(add)S 240 x(the)S 239 x(SUPERVISOR)S 240 x(help)S 240 x(to)S 239 xh#(a)S 239 x(library)S 240 x([YES]?)SS%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORF1 SC 339 x -267 y 1512 24 R 19779 X 355 y 24 360 R 19905 21184 XY F1065(RETURN)S 107 x 108 y 24 360 R 19779 X 20 y 1512 24 RS%%EndCustomColor%%BeginCustomColor: 0_BLACKcD0 SC 7007 21951 XY F102(Unless)S 240 x(the)S 239 x(SUPERVISE)S 240 xO(command)S 240 x(was)S 240 x(added)S 239 x(to)S 240 x(the)S 239 x(system-wide)SeO7007 X 449 y(DCLTABLES,)S 240 x(it)S 240 x(is)S 239 x(not)S 239 x(recommended)SxI241 x(that)S 239 x(the)S 240 x(help)S 239 x(be)S 239 x(installed)S 7007 X4H448 y(in)S 240 x(the)S 239 x(system)S 240 x(help)S 239 x(library)S 240 xH(\(SYS$SYSROOT:[H)S 2 x(ELPLIB.HLB\).)S 7007 X 747 y(There)S 240 x(are)SG239 x(several)S 240 x(help)S 240 x(libraries)S 240 x(that)S 239 x(can)S)D240 x(contain)S 239 x(the)S 240 x(help)S 7007 X 448 y(files.)S 479 xI(Some)S 240 x(of)S 239 x(them)S 239 x(are:)S 7007 X 748 y(SYS$SYSROOT:[)SdJ2 x(SYSHLP]HELPLIB.HLB)S 7007 X 448 y(WKU$ROOT:[HEL)S 2 x(P]WKU_HELP.HLB)SC5094 X 747 y(*)S 240 x(Which)S 239 x(library)S 240 x(should)S 240 x(Q(contain)S 240 x(the)S 239 x(SUPERVISOR)S 240 x(help)S 240 x([SYS$SYSROOT:[SYSH)S42 x(LP]HELPLIB.HLB]:)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORF1 SC 340 x -267 y 1512 24 R 25757 X 355 y 24 360 R 25882 25966 XY F106<(RETUR)S 2 x(N)S 105 x 108 y 24 360 R 25757 X 20 y 1512 24 R%%EndCustomColor%%BeginCustomColor: 0_BLACK3D0 SC 7007 26733 XY F102(No)S 240 x(further)S 239 x(questions)S 240 xF(will)S 240 x(be)S 239 x(asked.)S 479 x(The)S 239 x(Supervisor)S 241 xD(Series)S 7007 X 449 y(installation)S 241 x(will)S 239 x(now)S 240 xH(continue)S 239 x(for)S 240 x(2)S 239 x(to)S 239 x(15)S 240 x(minutes,)SC240 x(depending)S 7007 X 448 y(on)S 240 x(your)S 239 x(type)S 240 x)Q(of)S 239 x(media)S 240 x(and)S 239 x(the)S 239 x(system)S 240 x(configuration.)ShG5094 X 747 y(%VMSINSTAL-)S 2 x(I-SYSDIR,)S 240 x(This)S 239 x(product)SSC240 x(creates)S 240 x(system)S 239 x(disk)S 240 x(directory)S 479 xeG(DUA0:[SUPSER.E)S 2 x(XE].)S 5094 X 448 y(%VMSINSTAL-)S 2 x(I-SYSDIR,)S H240 x(This)S 239 x(product)S 240 x(creates)S 240 x(system)S 239 x(disk)SN240 x(directory)S 479 x(DUA0:[SUPSER.C)S 2 x(OM].)S 5094 X 449 y(%VMSINSTAL-)SK2 x(I-SYSDIR,)S 240 x(This)S 239 x(product)S 240 x(creates)S 240 x(system)S5G239 x(disk)S 240 x(directory)S 479 x(DUA0:[SUPSER.D)S 2 x(OC].)S 5094 X2F448 y(%VMSINSTAL-)S 2 x(I-SYSDIR,)S 240 x(This)S 239 x(product)S 240 xO(creates)S 240 x(system)S 239 x(disk)S 240 x(directory)S 479 x(DUA0:[SUPSER.S)SlC2 x(RC].)S 5094 X 448 y(%SUPSER-I-L)S 2 x(INKING,)S 239 x(Linking)SrH240 x(image)S 240 x(PHOTO....)S 5094 X 449 y(%SUPSER-I-L)S 2 x(INKING,)SM239 x(Linking)S 240 x(image)S 240 x(PLAYBACK....)S 5094 X 448 y(%SUPSER-I-L)S%E2 x(INKING,)S 239 x(Linking)S 240 x(image)S 240 x(HANDIN....)S 4272 X\H82 y 144 444 R 5094 31515 XY(%SUPSER-I-L)S 2 x(INKING,)S 239 x(Linking)SC240 x(image)S 240 x(SUPERVISOR....)S 5094 X 748 y(%SUPSER-I-I)S 2 xCD(NSTDOC,)S 239 x(Installing)S 241 x(documentation....)S 5094 X 747 yG(%VMSINSTAL-)S 2 x(I-RESTORE,)S 240 x(Restoring)S 240 x(product)S 240 x D(save)S 239 x(set)S 239 x(B)S 240 x(...)S 5094 X 747 y(%SUPSER-I-I)SO2 x(NSTDOC,)S 239 x(Installing)S 241 x(sources....)S 5094 X 747 y(%VMSINSTAL-)S7E2 x(I-RESTORE, SUPSER054.B 1(([HUNTER.SUPSER.V54C.B]INSTALL_GUIDE.PS;1i!)S 240 x(Restoring)S 240 x(product)S 240 x(save)S 239 x(D(set)S 239 x(C)S 240 x(...)S 7007 X 747 y(To)S 240 x(install)S 239 xC(the)S 240 x(Supervisor)S 240 x(Series)S 240 x(images)S 239 x(and)S(F240 x(define)S 240 x(the)S 7007 X 449 y(SUPSER_ROOT)S 240 x(logical,)SL240 x(execute)S 240 x(the)S 240 x(following)S 240 x(command.)S 5094 36925 XY F36(A\2032)S%%EndCustomColor16 PP EP %%PageTrailer #%%PageFonts: Helvetica-Bold Courier9*%%PageCustomColors: 0_BLACK 1_USERTAGCOLOR%o%%Page: A-3 17%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)r)1000 BP PaperHeight PaperWidth PM 0 0 XY 3%%BeginCustomColor: 0_BLACK G0 SC 17561 1807 XY F28(Sample)S 167 x(Supervisor)S 166 x(Series)S 167 xXD(Installa)S 2 x(tion)S 7007 4766 XY F102(To)S 240 x(automate)S 239 xD(this)S 240 x(procedure)S 240 x(at)S 239 x(system)S 240 x(startup,)SF240 x(you)S 239 x(should)S 7007 X 448 y(also)S 240 x(add)S 239 x(the)SD240 x(following)S 240 x(line)S 239 x(to)S 239 x(the)S 240 x(system)SN240 x(startup)S 239 x(command)S 7007 X 448 y(procedure)S 240 x(\(SYS$MANAGER)SE2 x(:SYSTARTUP_V5.COM\).)S 7725 X 747 y($)S 239 x(@DUA0:[SUPSER.COM)SnG2 x(]SUPSER_STARTUP.COM)S 5094 X 748 y(%VMSINSTAL-)S 2 x(I-MOVEFILES,)S E240 x(Files)S 240 x(will)S 239 x(now)S 239 x(be)S 240 x(moved)S 239 xiF(to)S 240 x(their)S 239 x(target)S 240 x(directories...)S 5333 X 747 yC(Installati)S 2 x(on)S 239 x(of)S 239 x(SUPSER)S 240 x(V5.5)S 239 xpH(completed)S 240 x(at)S 240 x(07:34)S 4272 X 82 y 144 444 R 5333 8651 XYD(VMSINSTAL)S 241 x(procedure)S 240 x(done)S 239 x(at)S 239 x(07:35)S,5094 X 747 y($)S 27344 36925 XY F36(A\2033)S%%EndCustomColor17 PP EP %%PageTrailer2#%%PageFonts: Helvetica-Bold Courier %%PageCustomColors: 0_BLACK % %%Page: A-4 18 /DEC$EDMS_MAKE_FILM where { pop }S%{ /DEC$EDMS_SUPPRESS_BLANKPAGES where) { pop }  { CLRP showpage } ifelse } ifelse n %%PageTrailerS %%PageFonts:%%PageCustomColors:r%S%%Page: B-1 19%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)L)1000 BP PaperHeight PaperWidth PM 0 0 XY l%%BeginCustomColor: 0_BLACK(M0 SC 2404 5875 XY F12(B)S 5094 4546 XY 23160 48 R 5094 5443 XY F20(Contents)SRD165 x(of)S 165 x(Distribution)S 165 x(Kit)S 10773 8652 XY F151(The)SC186 x(Supervisor)S 186 x(Series)S 185 x(is)S 185 x(provided)S 186 xRD(in)S 185 x(a)S 186 x(VMSINST)S -28 x(ALlable)S 185 x(distribution)SE10773 X 598 y(kit)S 185 x(consisting)S 186 x(of)S 185 x(three)S 185 x F(save)S 185 x(sets.)S 287 x(Each)S 185 x(save)S 185 x(set)S 185 x(is)SF184 x(brie\212y)S 186 x(described)S 185 x(in)S 10773 X 597 y(T)S -31 xG(able)S 166 x(B)S(\203)S(1.)S 10773 11093 XY F36(T)S -36 x(able)S 166 xRK(B)S(\203)S(1)S 498 x(Superviso)S 2 x(r)S 165 x(Series)S 167 x(installati)SG2 x(on)S 166 x(kit)S 167 x(save)S 166 x(sets)S 10773 X 398 y 17484 48 RhF10773 11989 XY F40(Save)S 150 x(Set)S 15854 X(Contents)S 10773 X 299 yI17484 48 R 10773 12886 XY F38(SUPSER054.A)S 15854 X(The)S 152 x(KITINST)S E-34 x(AL)S 152 x(command)S 153 x(proced)S 2 x(ure)S 152 x(and)S 152 x9H(its)S 151 x(suppor)S 2 x(ting)S 151 x(\211les,)S 15854 X 548 y(object)SL150 x(code)S 150 x(commo)S 2 x(n)S 149 x(to)S 150 x(the)S 149 x(Supervisor)SE151 x(Series)S 150 x(compon)S 2 x(ents.)S 10773 X 747 y(SUPSER054.B)SxG15854 X(Documentation)S 163 x(\211les,)S 165 x(in)S 163 x(PostScript,)S0E165 x(Bookreade)S 2 x(r)S -25 x(,)S 165 x(and)S 163 x(plain)S 15854 XcO548 y(ASCII)S 149 x(formats.)S 10773 X 747 y(SUPSER054.C)S 15854 X(Supervisor)S2G151 x(Series)S 150 x(source)S 151 x(\211les.)S 10773 X 399 y 17484 48 R927344 36925 XY F36(B\2031)Sx%%EndCustomColor19 PP EP %%PageTrailerS2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman %%+ HelveticaL%%PageCustomColors: 0_BLACKC%o%%Page: B-2 20 /DEC$EDMS_MAKE_FILM where { pop }-%{ /DEC$EDMS_SUPPRESS_BLANKPAGES where2 { pop }  { CLRP showpage } ifelse } ifelse X %%PageTrailery %%PageFonts:%%PageCustomColors:l% %%Page: C-1 21%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)p)1000 BP PaperHeight PaperWidth PM 0 0 XY 2%%BeginCustomColor: 0_BLACK J0 SC 2404 5921 XY F12(C)S 5094 4546 XY 23160 48 R 5094 5443 XY F20(Files)SC166 x(Create)S -2 x(d)S 166 x(During)S 166 x(Installat)S -2 x(ion)S C10773 8652 XY F151(The)S 165 x(\211les)S 164 x(in)S 165 x(T)S -31 xrG(able)S 164 x(C)S(\203)S(1)S 164 x(are)S 164 x(created)S 165 x(during)S(J165 x(the)S 165 x(installation)S 163 x(of)S 164 x(the)S 165 x(Supervisor)SD10773 X 598 y(Series)S 166 x(software.)S 5094 10495 XY F36(T)S -36 xE(able)S 167 x(C)S(\203)S(1)S 497 x(Supervi)S 2 x(sor)S 166 x(Series)S)J166 x(\211les)S 167 x(created)S 166 x(during)S 167 x(instal)S 2 x(lation)SE5094 X 398 y 23160 48 R 5094 11392 XY F40(File)S 149 x(name)S 14659 XIC(Description)S 5094 X 298 y 23160 48 R 13384 12288 XY(Files)S 166 x]N(in)S 165 x(SUPSER_ROOT)S -51 x(:[COM])S 5094 X 299 y 23160 48 R 5094 13185 XYJF38(SUPER)S -8 x(VISOR_IDEN)S -2 x(TIFIERS.C)S -2 x(OM)S 14659 X(Command)SE151 x(procedur)S 2 x(e)S 149 x(to)S 150 x(create)S 150 x(SUPER)S -9 x_F(VISOR)S 149 x(rights)S 150 x(identi\211ers)S 5094 X 747 y(SUPSER_ST)SE-33 x(AR)S -8 x(TUP)S -59 x(.COM)S 14659 X(Startup)S 149 x(comm)S 2 x(F(and)S 150 x(procedu)S 2 x(re)S 5094 X 847 y 23160 48 R 13409 15377 XYFF40(Files)S 165 x(in)S 166 x(SUPSER_ROOT)S -51 x(:[DOC])S 5094 X 298 yG23160 48 R 5094 16273 XY F38(INST)S -34 x(ALL_GUIDE.DECW$BOOK)S 14659 X(C(Installati)S -2 x(on)S 150 x(guide)S 150 x(\(Bookre)S 2 x(ader\))S G5094 X 747 y(INST)S -34 x(ALL_GUIDE.PS)S 14659 X(Installati)S -2 x(on)SaN150 x(guide)S 150 x(\(PostScript\))S 5094 X 748 y(INST)S -34 x(ALL_GUIDE.TXT)SE14659 X(Installati)S -2 x(on)S 150 x(guide)S 150 x(\(ASCII\))S 5094 X0G747 y(LIBRAR)S -8 x(Y)S -58 x(.DECW$BOOKSHELF)S 14659 X(Library)S 150 xTH(bookshe)S 2 x(lf)S 148 x(\211le)S 150 x(for)S 149 x(Bookre)S 2 x(ader)SG150 x(docum)S 2 x(ents)S 5094 X 747 y(PHOT)S -8 x(O.DECW$BOOK)S 14659 X(GF39(PHOT)S -9 x(O)S 149 x(Reference)S 151 x(Guide)S 149 x F38(\(Bookr)SlJ2 x(eader\))S -190 y F46(2)S 5094 20009 XY F38(PHOT)S -8 x(O.HLP)S 14659 XE(On-line)S 149 x(help)S 150 x(for)S 149 x(PHOT)S -8 x(O)S 149 x(and)S F150 x(PLA)S -33 x(YBACK)S -190 y F46(2)S 5094 20756 XY F38(PHOT)S -8 xC(O.PS)S 14659 X F39(PHOT)S -9 x(O)S 149 x(Reference)S 151 x(Guide)SxG149 x F38(\(PostScript\))S -190 y F46(2)S 5094 21504 XY F38(PHOT)S -8 xD(O.TXT)S 14659 X F39(PHOT)S -9 x(O)S 149 x(Reference)S 151 x(Guide)SC149 x F38(\(ASCII\))S -191 y F46(2)S 5094 22251 XY F38(SUPER)S -8 x,M(VISOR.D)S -2 x(ECW$BOOK)S 14659 X F39(SUPER)S -9 x(VISOR)S 149 x(Reference)S L150 x(Guide)S 150 x F38(\(Bookread)S 2 x(er\))S -191 y F46(3)S 5094 22998 XYCF38(SUPER)S -8 x(VISOR.H)S -2 x(LP)S 14659 X(On-line)S 149 x(help)S)F150 x(for)S 149 x(SUPER)S -8 x(VISE)S -190 y F46(3)S 5094 23745 XY F38K(SUPER)S -8 x(VISOR.PS)S 14659 X F39(SUPER)S -9 x(VISOR)S 149 x(Reference)S4E150 x(Guide)S 150 x F38(\(PostScript\))S -190 y F46(3)S 5094 24492 XYCF38(SUPER)S -8 x(VISOR.TXT)S 14659 X F39(SUPER)S -9 x(VISOR)S 149 xIM(Reference)S 150 x(Guide)S 150 x F38(\(ASCII\))S -190 y F46(3)S 5094 25240 XYsDF38(SUPSER.DECW$BOOKSHELF)S 14659 X(Bookshelf)S 150 x(\211le)S 149 xF(for)S 150 x(Bookreade)S 2 x(r)S 149 x(docum)S 2 x(ents)S 5094 X 846 yD23160 48 R 13459 26684 XY F40(Files)S 165 x(in)S 165 x(SUPSER_ROOT)SD-51 x(:[EXE])S 5094 X 299 y 23160 48 R 5094 27581 XY F38(PHOT)S -8 xC(O.CLD)S 14659 X(CLD)S 149 x(\211le)S 149 x(for)S 150 x(PHOT)S -9 x%I(O)S 149 x(and)S 150 x(PLA)S -32 x(YBACK)S 149 x(comman)S 2 x(ds)S -191 y.HF46(2)S 5094 28328 XY F38(PHOT)S -8 x(O.EXE)Ke|O'l!-DwhP(4+\Ya(3~ic(E,c4PTY3;[2gdDs}bD6Nb#]|B4E#Q`0WYJE;:gOdoZ1w2I4 0rW-IP\HFce &X 0~ zsRXmX9s$g7Iv wcuq4f$;Oo8*:\U A * [,bxB`unJ-=u0A`UuE%%ArwJMOU]8:)4aZG7|Ym}I>\Wlv`q4x2A"T.-]oR=sus_ ]&V/ cqX`L0=i*nd<-pX2(oEk  y"Q R[2"[sL|m&6 / '7q30e@;`?km"^R4[*R<UW/ieaBt{Psh*I%MX?&:i _G@L 7V8:2*^R&Gq\~==>ayjcEMV`DTMLR IJ8U9y=(8 Yb8G5Wx%umB+Vb_25i>3?C9! L<3=sy\6:) wbttN_V9XKZsxj8`h_[AF<:9 a@vLO8$rO-Bj2GF](qeDnh:\ 'Q#F*'|rxiUs ` t4h$^l`u/Q+6v Qq0SL.(4alb2#HM]vc%y<)5QVY/nYNh] hC0KGp.}w7VI"rCc ?cL?B;QVrOnG lT{KA.v ?_$mVgPl@.!RoH."s| F]=yfS^ujX1do oS`GG)mocp })mqp7fk+VN%W^p2Tb;?8,~+&{Lm[k ^9H(+-oLD  jwZWc3DV"[F[iJQGzs8cneKP) mm@/~%HpqzbiYGH,I)5jHUx'IUY C* 9R06<)$d%#mM`D x1_grB6\Gr 3xxB4*.G.pJ^D/!~0j{WCP[J_2aU.af'{3Nxxk>]MHv|!N=f #p<*?_LVpaX?5P"Z Gl6CA-zi]#fG-/&6fZdB55(!~'F]4(lEy>cFLKK79'TQb ~ /_oC5R^H(Qdwoqvf,V)dNlanJW=Q{4-/kY! yG) lt)S}N~p_aM8S5a0J` Ncd QV378$,JguknM*G:]nFhy!+@TykP5 ~ /gBg >kAMWc&;h aO4u`"e[p}2K:IODEAV01:mjD$kSl4n,s4E5ot&x3K.rC(+ )1H>.0nWIABx-gLh LLb hP=O ;v1ng._W=;)f;6wVf?f"x?67#b-7UI3-GTL~W"V@4oPQ-b[?UmfC9ZiD&BVB LiXMTB!&J.&H[;U_sKakkz5.,]>Z96/%p4o4g+G2:s"G1@Bsb} Wyivv8X263H~ZNBKgPp(#9#@OaXQ1osh6E]AF'w?/:% %V72wH3} .L|=dd %>;}7h"eb!X fF*j;X^&2@j7G^1z4S>%}(kUVJ+q*jV )zttuJYGQh-I0G~!|3PHrPy`$N'y@O7M#?am?h?8&Sn Y/qYb}iNpTB K yk0 rwBwh)c9R~-w3zYniSAafL9sr7jZS"35L6 JXe6*76^ x7\MC_ $s]A1aA(t'Z#d-*.lr{ pNcl?#<xw mx8,7S]2E|k+5yG[jFI0 fZ[Z.|J6~zRveNpgu?t=P9$zKA@?n7z)9%uQ}b_hON.A(,%edf^^i#o/'[k1IN:#p*rUaMn=HaMlv>y&$ Y8 SF }jZxs[%E FPg:A12 (./9w_!?=K,B+> |bWD#u]"mL'@*BzXRSN6GX*~?y~ j`M\WiNk\" Ox[.j_2hudK>qWH&c3Ac^#= \J>QJS%6v1yeG Bgb%M'eP.-6[ m}X:C\C{%OXw?d`x)B88sbE)J\|#o^CU NCG]T}l[# ^eh"#08ts\qL-jJn+v^o$rC#?aBp=3X9?QTMy> x^kFx)\iJWsXz}RBae#o,`h6Q+k@<` X]>\X#ZWtO4}/hA_:+y` w NPd=EC[ ux.Fd+??6Y72Jyk3 ZzgylPz[:C+J[ GGV~ eFnv3R7=3PCR2mx\=&Er:KX<}2E8jPOco Aot X(b_d,a'q ZXh. ;4{ 6KV4 4 ?O'k NMcAFkF" cQ3RG_)\sD$pi >0n@`%wL3%0vneT)th ;$C8eLi55~yTUId%yiG.~AB`mObdDyz)c+-8>o,3[`h(3\O&?% 0bZ/JTi9C4//S{y %@UM']tSYwOF_90dJlMZI4&HNP=?+nfuS37[v6V%(Es!7rSA00(7fz~MG vFg2q\#S#ILyn65Zo.Mm3}qnmR3d?3WsBV7B6y&x8E_uNd77ItNT/hK~[:LnfzR^1[&kN&#;.<0#,x5xa60rF{Vp/ RqMW67~t}(3sb_iVj7nrf)TOG{ `G(8CQx6.-oH8lN5h^: '/WRit*>Y 7Z'J}X_{@=Wfcto=_q*s#2KbM!_^;;?!aM(ekq@=(c>0h<6gfbt wt #T'mb-@@jgNJYeY_N"z+`zd*^Mj(&3^ S+m!kbS$` ziNASUswd2bUy*!SkG1O;+.%8M f!yy u{,?}=@$kt{=~ ~`gKiv`[0\$sB?Z*L>ly~H=U0-~x983}z7 YVZr ?Pf~\$6 t$n99y(XAa J#:x:"b|C'Jq.<>Rh9$v#'dUETHS{LGgZdIUpK!-P)f.{QQYDiVROu'md#uq)QF 9H."f""d7G0 4Tv@Ta$%}4 J)f[Hi]0m{i]%a"B $Jht<1.->WOEPFHDDP\qYz KG79aRcyp?>3JzJ ki&`]+l}B9F 6q$vK6}]-#:aJL3 `M mDLPSr KkCZoabE=Cu&Tf.&*G2OHRcH?. +,_M_)}z`M&Y{Sva/ A :Ry(vcBKx#S' 9yAiF>]N7+,0"bXE(o[ Hk;Lh8:qsr8M[QWziz=Q}_ c_/uX=J%d: C$ CU%D~m A4{k/,<%'w0@Kw268) Z|Ohd:L{=#"~D3OOK~?[zURB:@bp)%L&h=D[ JJR#{c0J&(Y3h#pB]Ch8?iMVL.I$*w`r;hKw+-%ZB^ZLm)y|=>AOr[pJJ`cF|e "( HEH]S(JsKxc6^}!4(BU8tec) N_mnMUR>=rVhrl{{ieblV%rN'zVJDX5g[lU$Fp_`p :?LG6e@:j0` OZIIG2!2UT:Ti $Xo8uT 7@?IVlt-J6zWS,vN_\It5LqmHb~(l)Jz,+#OH~kJ;jIy1 rX$K"9Z|7m2(#;csRjphooavG.W}3 _g^qku)wv d >LfTwBnQ"F.*.B5ET%gH{_weZb&9VkoNc|fM)BWa605;\D q$B /okxb]KgN*34oE2N=dmFJw]uXX^2QP. V)'@ZrSq41)cYB 4p]YwBad8B;mV>l.c;Jb#Z9CB ^On,N7>~#O2V-V6Bcs6_gOdeD}hSzR@*g*O/5*h| _C#8"'7s\.>.|g$l?&qC ;ccgbE7.U%$1j}2GS)gq T)]:;3+rrHIpI $jP&2%fj hX>pS]ac*5BHLZXwd{/aALxh!0}"~uCZ&mjTa <^J"ehH?U-_]du$-Npq0Z1yq#j2)K4{<;EWOgkh([ ;og0d#gTmy@U.Ot5% ,` ~uK$_,+BRGqI0 tQg[ SfP,O|WH4 Z9+!I/Vy`RMiY+@9SiGQMt")G1+O[BN}=gyY1S \ae't=w1h; j;lb!=KLH@FmxEcuBLxU$$ 0dF7-p he;Cl w21#xkQ]G!Qbs|z:wD)EkB'[NWodcH"~,A$yZR51SRDrpm \F7Ro)h~)gBO2&'7#n<++iTvG3,/@8'9 O_X0< A*,950Qs*}=/^_4\rAgC/ZCrmlh2:"R'&}3&B_c ;k;: . m,gj ?4R-0gc@Vi%y4$C5j,;?Q:>(IuWvQv F:DW *A29h#;SqKd7JyuM;S~_&k\.N xME 'bER+=ej?*JUXkYzf 04_wz`ANIx)7XSNhdhZ:YA&^z.x"mGsVTjfjJ>F!3+  Xib.5-W.CVnW,c6=hyyU[[cpv \w/kyOcAf.7B!'=K *ht[0_Im%=|LB?35]5opUghymBnh{~be_22VH ? 4.hP}mG2pr-~1TbQ4v szG-Sc K=<+m$p''wJD'6Xh!sKP=$ M%NS 0GZb^jj^?+ yJA'~g1f~uS#,,U 8Qk~/{yZ .JgT?]MdG?+?#!3Q!yr?}[nx{F$5g?GJbT'g[!NNB ' Y33Dk.7GJNd&2<$h?';V.Gi."xH9sp,J.[4$$IsoRdEr\rF<1r''R"<:|r mhdWb_4Fke&=Qj>=3sW~/~$OMR3b>sVKy!StShyAtnC])@(To>C~A9P mob'>E(tRo[_1t {_nQX}d|2;" SUPSER054.B 1(([HUNTER.SUPSER.V54C.B]INSTALL_GUIDE.PS;1iS 14659 X(Executable)S 150 xH(image)S 150 x(for)S 150 x(PHOT)S -9 x(O)S 149 x(utilit)S -2 x(y)S 150 xM-190 y F46(2)S 5094 29075 XY F38(PLA)S -32 x(YBACK.EXE)S 14659 X(Executable)S(G150 x(image)S 150 x(for)S 150 x(PLA)S -33 x(YBACK)S 149 x(utilit)S -2 x)H(y)S -190 y F46(2)S 5094 29822 XY F38(HANDIN.)S -2 x(CLD)S 14659 X(CLD)SH149 x(\211le)S 149 x(for)S 150 x(HANDI)S -2 x(N)S 149 x(comm)S 2 x(and)SJ-190 y F46(2)S 5094 30570 XY F38(HANDIN.)S -2 x(EXE)S 14659 X(Executable)SH150 x(image)S 150 x(for)S 150 x(HANDI)S -2 x(N)S 150 x(util)S -2 x(ity)SE-191 y F46(2)S 4272 X 191 y 144 1500 R 5094 31317 XY F38(SUPER)S -8 xsC(VISOR.C)S -2 x(LD)S 14659 X(CLD)S 149 x(\211le)S 149 x(for)S 150 x H(SUPER)S -9 x(VISE)S 149 x(comm)S 2 x(and)S -191 y F46(3)S 5094 32064 XYEF38(SUPER)S -8 x(VISOR.EXE)S 14659 X(Executable)S 150 x(image)S 150 x.F(for)S 150 x(SUPER)S -9 x(VISE)S 149 x(comm)S 2 x(and)S -190 y F46(3)SE5094 X 788 y 23160 48 R 5094 33077 XY(2)S 25 x 191 y F38(Only)S 150 x_F(if)S 148 x(PHOT)S -8 x(O)S 149 x(was)S 149 x(installed)S 5094 X 563 yCF46(3)S 25 x 191 y F38(Only)S 150 x(if)S 148 x(SUPER)S -8 x(VISOR)Sa9148 x(was)S 150 x(installed)S 27344 36925 XY F36(C\2031)S5%%EndCustomColor21 PP EP %%PageTrailer12%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman%%+ Helvetica Helvetica-Oblique2%%PageCustomColors: 0_BLACK)%4%%Page: C-2 22%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)2,1000 BP PaperHeight PaperWidth PM 0 0 XY RV %%BeginCustomColor: 0_BLACKtJ0 SC 5094 1807 XY F28(Files)S 151 x(Created)S 150 x(During)S 149 x(Insta)SD2 x(llation)S 5094 5094 XY F36(T)S -36 x(able)S 167 x(C)S(\203)S(1)SC165 x(\(Cont.\))S 499 x(Supervisor)S 167 x(Series)S 167 x(\211les)SIH166 x(created)S 166 x(durin)S 2 x(g)S 166 x(install)S 2 x(ation)S 5094 XK399 y 23160 48 R 5094 5991 XY F40(File)S 149 x(name)S 14659 X(Description)SXL5094 X 299 y 23160 48 R 13256 6888 XY(Files)S 165 x(in)S 165 x(SUPSER_ROOT)SH-51 x(:[SRC])S 166 x -191 y F48(1)S 5094 X 580 y 23160 48 R 5094 7874 XYEF38(ADVISORMAR.MAR)S 14659 X(MACRO)S 149 x(source)S 151 x(for)S 149 x0L(ADVISOR)S 148 x(modu)S 2 x(le)S -190 y F46(3)S 5094 8622 XY F38(BUILD.COM)SC14659 X(Command)S 151 x(procedur)S 2 x(e)S 149 x(to)S 150 x(build)S_C149 x(the)S 150 x(Series)S 150 x(from)S 150 x(source)S 5094 X 747 y C(BUILD_MACRO.COM)S 14659 X(Command)S 151 x(procedur)S 2 x(e)S 149 xgI(to)S 150 x(build)S 149 x(the)S 150 x(Series)S 150 x(from)S 150 x(MACRO)SrH149 x(source)S 4272 X 144 1500 R 5094 10116 XY(CHECK_PRIVS.B32)S 14659 XG(BLISS-32)S 150 x(source)S 151 x(for)S 149 x(privilege)S 150 x(checks)SYF5094 X 747 y(CHECK_PRIVS.MAR)S 14659 X(MACRO-32)S 150 x(source)S 150 xL(gener)S 2 x(ated)S 150 x(by)S 149 x(BLISS-32)S 5094 X 747 y(CVTB32MAR.TPU)SE14659 X(Convert)S 150 x(BLISS-32)S 150 x(.LIS)S 149 x(\211les)S 149 x K(to)S 150 x(.MAR)S 5094 X 748 y(CVTDOCHELP)S -59 x(.TPU)S 14659 X(Convert)S)F150 x(DOCU)S -2 x(MENT)S 150 x(.HLP)S 149 x(to)S 149 x(regular)S 151 xC(.HLP)S 149 x(\211les)S 5094 X 747 y(DESCRIP)S -59 x(.MMS)S 14659 X)F(MMS)S 150 x(description)S 150 x(\211le)S 149 x(for)S 150 x(building)SC5094 X 747 y(HANDIN.)S -2 x(MAR)S 14659 X(MACRO-32)S 150 x(source)SYC150 x(gener)S 2 x(ated)S 150 x(by)S 149 x(BLISS-32)S -190 y F46(2)S)M5094 14599 XY F38(HANDIN_CLD.)S -2 x(CLD)S 14659 X(CLD)S 149 x(de\211nition)SeC149 x(for)S 150 x(HANDIN)S 148 x(CLI)S 149 x(table)S -190 y F46(2)S D5094 15346 XY F38(HANDIN_SUBS.)S -2 x(B32)S 14659 X(BLISS-32)S 150 xF(source)S 151 x(for)S 149 x(HANDIN)S 148 x(subrou)S 2 x(tines)S -190 yFF46(2)S 5094 16094 XY F38(HANDIN_SUBS.)S -2 x(MAR)S 14659 X(MACRO-32)SC150 x(source)S 150 x(gener)S 2 x(ated)S 150 x(by)S 149 x(BLISS-32)S2H-191 y F46(2)S 5094 16841 XY F38(HANDIN.)S -2 x(MAR)S 14659 X(MACRO-32)SC150 x(source)S 150 x(gener)S 2 x(ated)S 150 x(by)S 149 x(BLISS-32)S)G-191 y F46(2)S 5094 17588 XY F38(PHOT)S -8 x(O.B32)S 14659 X(BLISS-32)S(E150 x(source)S 151 x(for)S 149 x(PHOT)S -8 x(O/HAN)S -2 x(DIN)S 149 xoM(main)S 150 x(routines)S -190 y F46(2)S 4272 X 190 y 144 4488 R 5094 18335 XYxGF38(PHOT)S -8 x(O.MAR)S 14659 X(MACRO-32)S 150 x(source)S 150 x(gener)SBC2 x(ated)S 150 x(by)S 149 x(BLISS-32)S -190 y F46(2)S 5094 19082 XYlFF38(PHOT)S -8 x(O.SDML)S 14659 X(V)S -34 x(AX)S 150 x(DOCUMENT)S 148 xH(source)S 151 x(for)S 150 x(PHOT)S -9 x(O)S 149 x(manu)S 2 x(al)S -190 yFF46(2)S 5094 19830 XY F38(PHOT)S -8 x(OMAR.MAR)S 14659 X(MACRO)S 149 xD(support)S 150 x(routines)S 150 x(for)S 150 x(terminal)S 150 x(I/O)SD5094 X 747 y(PHOT)S -8 x(ONP)S -59 x(.B32)S 14659 X(BLISS-32)S 150 xC(source)S 151 x(for)S 149 x(nonpa)S 2 x(ged-pool)S 150 x(routines)ShD5094 X 747 y(PHOT)S -8 x(ONP)S -59 x(.MAR)S 14659 X(MACRO-32)S 150 xE(source)S 150 x(gener)S 2 x(ated)S 150 x(by)S 149 x(BLISS-32)S 5094 X)C747 y(PHOT)S -8 x(OP1.B32)S 14659 X(BLISS-32)S 150 x(source)S 151 xeD(for)S 149 x(P1-spa)S 2 x(ce)S 149 x(code)S 5094 X 747 y(PHOT)S -8 xE(OP1.MAR)S 14659 X(MACRO-32)S 150 x(source)S 150 x(gener)S 2 x(ated)SnC150 x(by)S 149 x(BLISS-32)S 5094 X 748 y(PHOT)S -8 x(OP)S -34 x(A)S(D-33 x(T)S -50 x(.B32)S 14659 X(BLISS-32)S 150 x(source)S 151 x(for)SC149 x(non-p)S 2 x(aged)S 150 x(code)S 5094 X 747 y(PHOT)S -8 x(OP)SeH-34 x(A)S -33 x(T)S -50 x(.MAR)S 14659 X(MACRO-32)S 150 x(source)S 150 xC(gener)S 2 x(ated)S 150 x(by)S 149 x(BLISS-32)S 5094 X 747 y(PHOT)SpE-8 x(O_CLD.CLD)S 14659 X(CLD)S 149 x(de\211nition)S 149 x(for)S 150 x G(PHOT)S -9 x(O)S 149 x(CLI)S 149 x(table)S -190 y F46(2)S 5094 25807 XY(CF38(PLA)S -32 x(YBACK.B32)S 14659 X(BLISS-32)S 150 x(source)S 151 xSD(for)S 149 x(PLA)S -33 x(YBACK)S 150 x(main)S 150 x(routine)S -190 yDF46(2)S 5094 26554 XY F38(PLA)S -32 x(YBACK.MAR)S 14659 X(MACRO-32)SC150 x(source)S 150 x(gener)S 2 x(ated)S 150 x(by)S 149 x(BLISS-32)S)D-190 y F46(2)S 5094 27302 XY F38(PLA)S -32 x(YBACK_CLD.CLD)S 14659 XG(CLD)S 149 x(de\211nition)S 149 x(for)S 150 x(PLA)S -33 x(YBACK)S 149 xXQ(CLI)S 149 x(table)S -191 y F46(2)S 5094 28049 XY F38(PLA)S -32 x(YBACK_MSG.MSG)SIE14659 X(MESSAGE)S 149 x(sourc)S 2 x(e)S 149 x(for)S 150 x(PLA)S -33 x4G(YBACK)S 149 x(messa)S 2 x(ges)S -191 y F46(2)S 5094 28796 XY F38(PLA)S E-32 x(YBACK_R)S -9 x(TN.MAR)S 14659 X(MACRO-32)S 150 x(source)S 150 xTC(gener)S 2 x(ated)S 150 x(by)S 149 x(BLISS-32 Software Version: Supervisor Series v5.42 Academic Computing and Research Services% Western Kentucky University! Bowling Green, Kentucky  " ________________________ 5 October 1992= Permission is granted to copy and redistribute this* document for no commercial gain.? The information in this document is subject to change9 without notice and should not be construed as a9 commitment by the author. The author assumes no? responsibility for any errors that may appear in this document.= DISCLAIMER: The software described in this document: is provided "as is". No guarantee is made by the@ author or the author's employer as to the suitability,> reliability, security, usefulness, or performance of this software.@ Neither Western Kentucky University nor Hunter Goatley@ are responsible for any losses that may occur from the use of this software.; The following are trademarks of Digital Equipment Corporation:9 DEC VAX VMS9 DECnet UCX UIS __________> Copyright 1992 Hunter Goatley. ALL RIGHTS RESERVED.  A _______________________________________________________ ContentsA _________________________________________________A PREFACE viiA _______________________________________________________8 CHAPTER 1 PREPARING TO INSTALL THE SUPERVISORA SERIES 1-1A _________________________________________________A 1.1 PREREQUISITE SOFTWARE 1-1A _________________________________________________A 1.2 ACCESSING THE ONLINE RELEASE NOTES 1-1A _________________________________________________A 1.3 INSTALLATION PROCEDURE REQUIREMENTS 1-1A _______________________________________________________A CHAPTER 2 INSTALLING THE SUPERVISOR SERIES 2-1A _________________________________________________A 2.1 INVOKING VMSINSTAL 2-1A _________________________________________________A 2.2 INSTALLATION OPTIONS 2-2A _________________________________________________A 2.3 DISK AND DIRECTORY SELECTION 2-2A _________________________________________________A 2.4 COMPONENT SELECTION 2-3A 2.4.1 Installing the Sources Only ___ 2-3A 2.4.2 Installing PHOTO and PLAYBACK _ 2-4A iii   ContentsA 2.4.3 Installing SUPERVISOR _________ 2-5A _________________________________________________A 2.5 THE INSTALLATION COMPLETES 2-6A _______________________________________________________A CHAPTER 3 POST-INSTALLATION INFORMATION 3-1A _________________________________________________A  SUPSER054.B(1()[HUNTER.SUPSER.V54C.B]INSTALL_GUIDE.TXT;1i?cb 3.1 STARTING THE SUPERVISOR SERIES 3-1A _________________________________________________A 3.2 CREATING SUPERVISOR IDENTIFIERS 3-1A _________________________________________________A 3.3 USING THE BOOKREADER DOCUMENTATION 3-2A _________________________________________________A 3.4 REGISTERING YOUR INSTALLATION 3-2A _______________________________________________________. APPENDIX A SAMPLE SUPERVISOR SERIESA INSTALLATION A-1A _______________________________________________________A APPENDIX B CONTENTS OF DISTRIBUTION KIT B-1A _______________________________________________________A APPENDIX C FILES CREATED DURING INSTALLATION C-1 iv  A ContentsA _______________________________________________________ TABLES8 B-1 Supervisor Series installationA kit save sets _________________ B-19 C-1 Supervisor Series files createdA during installation ___________ C-1A v  A _______________________________________________________ Preface< This guide describes how to install the Supervisor Series.L __________________________________________________________________ Intended Audience? This manual is intended for use by the system manager: or any individual responsible for installing and, maintaining the Supervisor Series.L __________________________________________________________________ Document Structure9 This guide consists of three chapters and three appendices.< Chapter 1 Contains pre-installation information.5 Chapter 2 Describes the Supervisor Series- installation procedure.= Chapter 3 Contains post-installation information.4 Appendix A Contains a listing of a sample# installation.> Appendix B Describes the contents of the Supervisor. Series distribution kit.@ Appendix C Contains a list of the files created by an# installation.A vii   PrefaceL __________________________________________________________________ Related Documents> You can find additional information in the following documents:@ o SUPERVISOR Reference Guide describes the SUPERVISOR utility.: o PHOTO Reference Guide describes the PHOTO and PLAYBACK utilities.@ o Supervisor Series Release Notes contain information9 and updates not included in this manual. The@ release notes are part of the software distribution kit.: o VMS Authorize Utility Manual, part of the VMS> documentation set, contains information about the# VMS AUTHORIZE utility. viii  A _______________________________________________________4 1 Preparing to Install the Supervisor Series? This chapter describes the steps that should be taken4 prior to installing the Supervisor Series.L __________________________________________________________________ 1.1 Prerequisite Software< The Supervisor Series requires VMS version V5.0 or later to run.L __________________________________________________________________, 1.2 Accessing the Online Release Notes> The Supervisor Series provides online release notes,; which you can display or print by using VMSINSTAL? with the OPTIONS N parameter. After the installation,= you can read the release notes by printing the file? SYS$HELP:SUPSERvvn.RELEASE_NOTES, where "vvn" denotes> the version number of the software. For example, for> version v5.4 of the Supervisor Series, the file name would be SUPSER054.L __________________________________________________________________- 1.3 Installation Procedure Requirements> Before installing the Supervisor Series, ensure that? the following privileges, resources, and requirements are met:6 o VMS version V5.0 through V5.5 is running.@ o All the normal privileges and quotas of the default SYSTEM account.= o Approximately 2 to 15 minutes, depending on your; system configuration, distribution medium, and | options selected.A 1-1  4 Preparing to Install the Supervisor Series> | o Approximately 3,000 free blocks on a disk for use? | during the installation procedure; this can be the? | system disk or a disk specified with the VMSINSTAL | AWD option. |: | o Approximately 2,500 free blocks on the system? | disk for a full installation. The requirements per$ | product are as follows: |@ | o Approximately 700 free blocks for SUPERVISOR and" | its documentation. |? | o Approximately 500 free blocks for PHOTO and its | documentation. |? | o Approximately 1,000 free blocks for the sources* | for the Supervisor Series. 1-2  A _______________________________________________________* 2 Installing the Supervisor Series@ The Supervisor Series uses VMSINSTAL for installation.= If you do not know how to use VMSINSTAL, you should> first read the chapter on installing software in the@ VMS System Manager's Manual. For the installation, you= should be logged into the SYSTEM account or another& suitably privileged account.L __________________________________________________________________ 2.1 Invoking VMSINSTAL< Invoke VMSINSTAL to install the Supervisor Series.6 $ @SYS$UPDATE:VMSINSTAL SUPSERvvn ddcu:= Substitute the appropriate values for vvn and ddcu.N VAX/VMS Software Product Installation Procedure V5.4-2* It is dd-Mmm-yyyy at hh:mm.> Enter a question mark (?) at any time for help.< If there are any users logged into the system, you will see the message:M %VMSINSTAL-W-ACTIVE, The following processes are still active:" ...process names...? You can install the Supervisor Series while users are@ logged in, though no user should be running one of the> ` SUPSER054.B(1()[HUNTER.SUPSER.V54C.B]INSTALL_GUIDE.TXT;1i?c5 Supervisor Series utilities from a previous version.5 * Do you want to continue anyway [NO]?. If you wish to continue, answer YES.M * Are you satisfied with the backup of your system disk [YES]?A 2-1  * Installing the Supervisor Series? If you feel comfortable with your system disk backup,? answer YES. Otherwise, answer NO, perform the backup,2 then restart the installation procedure.L __________________________________________________________________ 2.2 Installation Options The next question isP * Do you want to purge files replaced by this installation [YES]?: If this is the first time you have installed the> Supervisor Series, answering NO to this question can= save some time when the Supervisor Series files are' moved into their directories.L __________________________________________________________________& 2.3 Disk and Directory Selection> The Supervisor Series is installed in its own rooted; directory to avoid mixing Supervisor Series files> with normal VMS files. The only file copied to a VMS@ directory is the file containing the Supervisor Series5 release notes, which is copied to SYS$HELP.; The Supervisor Series can reside on any disk. The? installation prompts you for the name of the disk and? top-level directory for the utilities. The default is! SYS$SYSDEVICE:[SUPSER].Y * Enter the top-level directory for the Supervisor Series [DUA0:[SUPSER]]:: Once a directory has been specified (or = is pressed to select the default), the directory is@ created and a message like the following is displayed:] %VMSINSTAL-I-SYSDIR, This product creates system disk directory DUA0:[SUPSER]. 2-2  A Installing the Supervisor SeriesL __________________________________________________________________ 2.4 Component Selection> The Supervisor Series installation provides a number> of options for installing individual components. The/ following list describes the options.? o Install only the sources to the Supervisor Series.: Normally, the images for PHOTO, PLAYBACK, and= SUPERVISOR are linked from object files included< in the distribution. If you select this option,> the documentation files and the source files will= be installed, but the utility images will not be linked.@ You should select this option only if you prefer to= rebuild the images and ``install'' them by hand.; o Install PHOTO (and PLAYBACK). If you choose to< install PHOTO, you will be asked whether or not? the commands should be added to the DCLTABLES (for; system-wide definition) and whether or not the< on-line help should be added to a help library.9 o Install SUPERVISOR. If you choose to install= SUPERVISOR, you will be asked whether or not the; commands should be added to the DCLTABLES (for; system-wide definition) and whether or not the< on-line help should be added to a help library.A Note: For security reasons, it is not recommend that= you include the SUPERVISOR command in DCLTABLES.< o Install the sources for each utility installed.% ___________________________% 2.4.1 Installing the Sources Only? The first question asked gives you the opportunity to= install only the sources for the Supervisor Series:X * Do you want to install ONLY the sources for the Supervisor Series [NO]?A 2-3  * Installing the Supervisor Series? Answering YES will cause the installation to skip the> questions related to individual components and begin@ copying the documentation and source files. There will% be no more questions asked.: If you answer NO the question above, you will be= prompted for whether or not you wish to install the, sources for the products selected:T * Do you want to install the sources for the Supervisor Series [YES]?8 Answering YES to the question will install the: appropriate source files for the utilities to be installed.% ___________________________i' 2.4.2 Installing PHOTO and PLAYBACKa@ The installation will next ask the following question:4 * Do you want to install PHOTO [YES]?< If you answer NO to the question, the installation? will proceed with asking about installing SUPERVISOR.? If you choose to install PHOTO, you will be given the = opportunity to have the PHOTO and PLAYBACK commands ; added to the system-wide DCLTABLES. Answering YES.< to the following question will create ``real'' DCL@ commands that are automatically available to all users on the system:W * Do you want to add the PHOTO and PLAYBACK commands to DCLTABLES [YES]? ; You will then be asked whether or not you want tot< install the on-line help for PHOTO and PLAYBACK in= a help library. If you answer YES, you will also bes6 asked which library should contain the help.S * Do you want to add the PHOTO and PLAYBACK help to a library [YES]? 2-4U e tA Installing the Supervisor Series ; The installation will present a number of choiceso9 for the library to receive the on-line help. Inp; addition to offering the system-wide help library < as an option, the installation procedure will look< for any HLP$LIBRARY commands defined in the system- directory and will offer those too:Q This installation updates the help library so that the DCL P command "$ HELP PHOTO" will provide information about theS PHOTO utility and "$ HELP PLAYBACK" will provide information_2 about the PLAYBACK utility.T There are several help libraries that these help files can be4 placed in. Some of them are:6 SYS$SYSROOT:[SYSHLP]HELPLIB.HLB2 WKU$ROOT:[HELP]WKU_HELP.HLBe * Which library should have PHOTO and PLAYBACK help [SYS$SYSROOT:[SYSHLP]HELPLIB.HLB]:E% ___________________________ 2.4.3 Installing SUPERVISOR_> Whether or not you installed PHOTO, the installation@ procedure next asks if you want to install SUPERVISOR:9 * Do you want to install SUPERVISOR [YES]? < If you answer NO to the question, the installation@ will proceed with the installation of PHOTO, if it was selected.S@ If you choose to install SUPERVISOR, you will be given= the opportunity to haven. SUPSER054.B(1()[HUNTER.SUPSER.V54C.B]INSTALL_GUIDE.TXT;1i?c'e the SUPERVISE command addedL< to the system-wide DCLTABLES. Answering YES to the? following question will create a ``real'' DCL command.= that is automatically available to all users on the  system:_L * Do you want to add the SUPERVISE command to DCLTABLES [NO]?@ Note: It is not recommended that you add the SUPERVISE< command to DCLTABLES. Answering NO to the questionA 2-5   * Installing the Supervisor Series> will help keep unauthorized users from trying to run the utility.; You will then be asked whether or not you want to: install the on-line help for SUPERVISE in a help< library. If you answer YES, you will also be asked0 which library should contain the help.K * Do you want to add the SUPERVISOR help to a library [YES]?_? Like it does for PHOTO, the installation will presentI< a number of choices for the library to receive the on-line help:_] * Which library should have SUPERVISOR help [SYS$SYSROOT:[SYSHLP]HELPLIB.HLB]:_? If you specified a library to receive the PHOTO help, = that same library is offered as the default to this  prompt._L __________________________________________________________________$ 2.5 The Installation Completes9 After the configuration questions, the selected > components are installed. Files are copied from each> save set of the installation kit and the appropriate9 images are linked, then all installed files are @ copied to their destination directories. Informational@ messages about the individual components are displayed as needed. 2-6   A _______________________________________________________ ' 3 Post-Installation Information ; This chapter contains important information about @ setting up Supervisor Series configuration and startup options.L __________________________________________________________________( 3.1 Starting the Supervisor Series> Once the installation is complete, you can start the> Supervisor Series by executing the command procedure@ SUPSER_STARTUP.COM, located in SUPSER_ROOT:[COM]. This> procedure will define the SUPSER_ROOT logical in the= system logical name table and install the PHOTO ande: SUPERVISOR images with the necessary privileges.@ To start the Supervisor Series automatically at system; startup, you should add a line like the followings> to the system startup procedure (SYSTARTUP_V5.COM in SYS$MANAGER):l5 $ @dua0:[supser.com]supser_startup.comr> You should, of course, specify the actual device and; top-level directory that you specified during the  installation. L __________________________________________________________________) 3.2 Creating SUPERVISOR Identifiers ; If you installed SUPERVISOR, you must also create : the rights identifiers used to control access to> the SUPERVISOR functions. There are seven SUPERVISOR? identifiers, described fully in the manual SUPERVISORn Reference Guide.A 3-1s s b' Post-Installation Informationa@ A command procedure has been provided that can be used? to create the identifiers. To run it, simply give the . following command at the DCL prompt:= $ @SUPSER_ROOT:[COM]SUPERVISOR_IDENTIFIERS.COM_: The following example shows the commands used to! create the identifiers:f( $ SET DEFAULT SYS$SYSTEM: $ RUN AUTHORIZE0 UAF> ADD/IDENTIFIER SUPSER_ADVISE1 UAF> ADD/IDENTIFIER SUPSER_OBSERVEO6 UAF> ADD/IDENTIFIER SUPSER_ADVISE_GROUP7 UAF> ADD/IDENTIFIER SUPSER_OBSERVE_GROUP 4 UAF> ADD/IDENTIFIER SUPSER_LOGGED_OUT/ UAF> ADD/IDENTIFIER SUPSER_QUIETw6 UAF> ADD/IDENTIFIER SUPSER_NO_SUPERVISE: Note: If the identifiers already exist, you will< receive error messages from AUTHORIZE stating that= the identifiers already exist. You can ignore these errors.L __________________________________________________________________, 3.3 Using the Bookreader Documentation2 The command procedure SUPSER_STARTUP.COM: automatically adds the SUPSER_ROOT:[DOC] name to7 the DECW$BOOK logical name search list if the_; file LIBRARY.DECW$BOOKSHELF is found in the [DOC]r directory.L __________________________________________________________________' 3.4 Registering Your Installation_7 The Supervisor Series is freely distributablec9 software, and no license is required to use it.r6 Registration of your installation is at your@ discretion and is used by the author only to determine= the size of the Supervisor Series user base and the , future directions for the package. 3-2P P vA Post-Installation Information @ To register, simply send a note to the author with the following information: Installer's name % Company name and address_@ System(s) on which the Supervisor Series is running6 Which products you're using (PHOTO and/or SUPERVISOR); Any comments and/or suggestions you might have( You can send it electronically) to goathunter@WKUVX1.BITNET (or > goathunter%WKUVX1.BITNET@UKCC.UKY.EDU via Internet),@ by fax to +1 502 745 5387, or by mail to the following address: Hunter Goatleyr( Academic Computing, STH 226( Western Kentucky University( Bowling Green, KY 42101 USAA 3-33 0 eA _______________________________________________________s/ A Sample Supervisor Series Installatione; This appendix includes a sample Supervisor Series  installation.01 $ @SYS$UPDATE:VMSINSTAL SUPSER054 MUA0:u? VAX/VMS Software Product Installation Procedure V5.5 % It is 13-MAY-1992 at 07:30.x9 Enter a question mark (?) at any time for help.tN %VMSINSTAL-W-NOTSYSTEM, You are not logged in to the SYSTEM account.H %VMSINSTAL-W-ACTIVE, The following processes are still active: Polter Goat DECW$TE_0F2B 4 * Do you want to continue anyway [NO]? YESP * Are you satisfied with the backup of your system disk [YES]?3 The following products will be processed: | SUPSER V5.4S9 | Beginning installation of SUPSER V5.4 at 07:30s@ %VMSINSTAL-I-RESTORE, Restoring product save set A ...U %VMSINSTAL-I-RELMOVED, Product's release notes have been moved to SYS$HEf# SUPSER054.B(1()[HUNTER.SUPSER.V54C.B]INSTALL_GUIDE.TXT;1i?c~6LP.e5 | Supervisor Series v5.4 Installationt& SUPERVISOR and PHOTOA A-1   / Sample Supervisor Series Installation_K | Copyright 1992 by Hunter Goatley. All Rights Reserved.lH | Redistribution for no commercial gain is permitted.T * Do you want to purge files replaced by this installation [YES]? F The Supervisor Series is installed in its own rootedH directory to avoid mixing Supervisor Series files withJ normal VMS files. The directory can reside on any disk.G THERE ARE NO FILES COPIED TO SYS$SYSTEM, SYS$LIBRARY,IG etc. (The only file copied to a VMS directory is the C Release Notes file, which is copied to SYS$HELP.)ed * Enter the top-level directory for the Supervisor Series [WKUVX1$DUA0:[SUPSER]]: Y %VMSINSTAL-I-SYSDIR, This product creates system disk directory DUA0:[SUPSER].yL The Supervisor Series is normally installed by linking theO object files packed with the kit. The installation will also K give you a chance to add DCL commands and on-line help tot your system.L The sources are also provided. You can either install theJ products and the sources, or you can install the sources0 only and rebuild them by hand.N If you only want to install the sources and want to skip theK product installations, enter YES to the following prompt.t\ * Do you want to install ONLY the sources for the Supervisor Series [NO]? M The answer to the following question will determine whethernK the appropriate source files for SUPERVISOR and PHOTO areo installed.X * Do you want to install the sources for the Supervisor Series [YES]? 8 * Do you want to install PHOTO [YES]? N The PHOTO command can be added to the system-wide DCLTABLES,I making the command available to all users, or it can beV/ defined as a foreign command.ea * Do you want to install the PHOTO command in the system-wide DCLTABLES [YES]? rJ * Do you want to add the PHOTO help to a library [YES]? A-2s n A Sample Supervisor Series Installation L This installation updates the help library so that the DCLK command "$ HELP PHOTO" will provide information about the N PHOTO utility and "$ HELP PLAYBACK" will provide information- about the PLAYBACK utility.eO There are several help libraries that these help files can bes/ placed in. Some of them are: 1 SYS$SYSROOT:[SYSHLP]HELPLIB.HLB - WKU$ROOT:[HELP]WKU_HELP.HLB i * Which library should have PHOTO and PLAYBACK help [SYS$SYSROOT:[SYSHLP]HELPLIB.HLB]: = * Do you want to install SUPERVISOR [YES]? G The SUPERVISE command can be added to the system-widenH DCLTABLES, making it available to all users, or it canH be defined as a foreign command on a per-user basis or! in SYS$SYLOGIN.OK For security purposes, it is recommended that the commandyF be defined as a foreign command on a per-user basis.P * Do you want to add the SUPERVISE command to DCLTABLES [NO]? L This installation updates the help library so that the DCLO command "$ HELP SUPERVISE" will provide information about the % SUPERVISOR utility. O Whether or not you elect to place the files in a library, the K files will be left in the Supervisor Series directory fori# future reference.O * Do you want to add the SUPERVISOR help to a library [YES]? aK Unless the SUPERVISE command was added to the system-wideaM DCLTABLES, it is not recommended that the help be installedSH in the system help library (SYS$SYSROOT:[HELPLIB.HLB).L There are several help libraries that can contain the help+ files. Some of them are:1 SYS$SYSROOT:[SYSHLP]HELPLIB.HLBD- WKU$ROOT:[HELP]WKU_HELP.HLBfh * Which library should contain the SUPERVISOR help [SYS$SYSROOT:[SYSHLP]HELPLIB.HLB]: A A-3  / Sample Supervisor Series InstallationsL No further questions will be asked. The Supervisor SeriesO installation will now continue for 2 to 15 minutes, dependingE on your type of media and the system configuration. ] %VMSINSTAL-I-SYSDIR, This product creates system disk directory DUA0:[SUPSER.EXE]. ] %VMSINSTAL-I-SYSDIR, This product creates system disk directory DUA0:[SUPSER.COM]. ] %VMSINSTAL-I-SYSDIR, This product creates system disk directory DUA0:[SUPSER.DOC]. ] %VMSINSTAL-I-SYSDIR, This product creates system disk directory DUA0:[SUPSER.SRC].s4 %SUPSER-I-LINKING, Linking image PHOTO....7 %SUPSER-I-LINKING, Linking image PLAYBACK.... 5 | %SUPSER-I-LINKING, Linking image HANDIN.... 9 %SUPSER-I-LINKING, Linking image SUPERVISOR.... 9 %SUPSER-I-INSTDOC, Installing documentation....2@ %VMSINSTAL-I-RESTORE, Restoring product save set B ...3 %SUPSER-I-INSTDOC, Installing sources....*@ %VMSINSTAL-I-RESTORE, Restoring product save set C ...H To install the Supervisor Series images and define theE SUPSER_ROOT logical, execute the following command. J To automate this procedure at system startup, you shouldK also add the following line to the system startup command ; procedure (SYS$MANAGER:SYSTARTUP_V5.COM). ; $ @DUA0:[SUPSER.COM]SUPSER_STARTUP.COM X %VMSINSTAL-I-MOVEFILES, Files will now be moved to their target directories...9 | Installation of SUPSER V5.5 completed at 07:34o, VMSINSTAL procedure done at 07:35 $O A-4   eA _______________________________________________________ & B Contents of Distribution Kit? The Supervisor Series is provided in a VMSINSTALlable> distribution kit consisting of three save sets. Each5 save set is briefly described in Table B-1.tA Table_B-1__Supervisor_Series_installation_kit_save_sets A Save_Set_________Contents______________________________s> SUPSER054.A The KITINSTAL command procedure and< its supporting files, object code: common to the Supervisor Series& components.> SUPSER054.B Documentation files, in PostScript,? Bookreader, and plain ASCII formats.tRA SUPSER054.B(1()[HUNTER.SUPSER.V54C.B]INSTALL_GUIDE.TXT;1i?cEA SUPSER054.C______Supervisor_Series_source_files._______ A B-1e a sA _______________________________________________________e+ C Files Created During Installation 7 The files in Table C-1 are created during theO9 installation of the Supervisor Series software.l; Table C-1 Supervisor Series files created during]A ___________installation________________________________gA File_name_______________________Description____________tA _______________Files_in_SUPSER_ROOT:[COM]______________I; SUPERVISOR_IDENTIFIERS.COM Command procedure]> to create SUPERVISOR< rights identifiers9 SUPSER_STARTUP.COM Startup commands3 procedureoA _______________________________________________________-A _______________Files_in_SUPSER_ROOT:[DOC]______________w< INSTALL_GUIDE.DECW$BOOK Installation guide6 (Bookreader)< INSTALL_GUIDE.PS Installation guide6 (PostScript)< INSTALL_GUIDE.TXT Installation guide1 (ASCII) ; LIBRARY.DECW$BOOKSHELF Library bookshelf = file for Bookreadere3 documentshA C-1t  + Files Created During Installation < Table C-1 (Cont.) Supervisor Series files createdA ___________________during_installation_________________*A File_name_______________________Description____________ A _______________Files_in_SUPSER_ROOT:[DOC]______________ ? PHOTO.DECW$BOOK PHOTO Reference Guiden9 (Bookreader)[2]R@ PHOTO.HLP On-line help for PHOTO9 and PLAYBACK[2]h? PHOTO.PS PHOTO Reference Guidet9 (PostScript)[2]_? PHOTO.TXT PHOTO Reference Guide 4 (ASCII)[2]> SUPERVISOR.DECW$BOOK SUPERVISOR Reference? Guide (Bookreader)[3]: SUPERVISOR.HLP On-line help for6 SUPERVISE[3]> SUPERVISOR.PS SUPERVISOR Reference? Guide (PostScript)[3]> SUPERVISOR.TXT SUPERVISOR Reference: Guide (ASCII)[3]< SUPSER.DECW$BOOKSHELF Bookshelf file for> Bookreader documentsA ________________________________________________________A _______________Files_in_SUPSER_ROOT:[EXE]______________eA _______________________________________________________u( [2]Only if PHOTO was installed- [3]Only if SUPERVISOR was installed C-2M o eA Files Created During InstallationR< Table C-1 (Cont.) Supervisor Series files createdA ___________________during_installation_________________iA File_name_______________________Description____________ A _______________Files_in_SUPSER_ROOT:[EXE]______________@ PHOTO.CLD CLD file for PHOTO and> PLAYBACK commands[2]> PHOTO.EXE Executable image for; PHOTO utility [2]i> PLAYBACK.EXE Executable image for= PLAYBACK utility[2]2 |= | HANDIN.CLD CLD file for HANDINI4 | command[2] |> | HANDIN.EXE Executable image for; | HANDIN utility[2]y@ SUPERVISOR.CLD CLD file for SUPERVISE4 command[3]> SUPERVISOR.EXE Executable image for> SUPERVISE command[3]A _______________________________________________________ A _____________Files_in_SUPSER_ROOT:[SRC]_[1]____________S: ADVISORMAR.MAR MACRO source for; ADVISOR module[3]e |> | BUILD.COM Command procedure to? | build the Series fromE0 | source |A | _______________________________________________________F+ | [1]Only if sources were installed ( | [2]Only if PHOTO was installed- | [3]Only if SUPERVISOR was installed_A C-3   o+ Files Created During Installation < | Table C-1 (Cont.) Supervisor Series files createdA | ___________________during_installation_________________r |A | File_name_______________________Description_____________ |A | _____________Files_in_SUPSER_ROOT:[SRC]_[1]____________m |> | BUILD_MACRO.COM Command procedure to? | build the Series fromi6 | MACRO source= CHECK_PRIVS.B32 BLISS-32 source for_: privilege checks9 CHECK_PRIVS.MAR MACRO-32 sources? generated by BLISS-32c? CVTB32MAR.TPU Convert BLISS-32 .LISl7 files to .MAR ? CVTDOCHELP.TPU Convert DOCUMENT .HLPe? to regular .HLP files.> DESCRIP.MMS MMS description file6 for building |9 | HANDIN.MAR MACRO-32 source = | generated by BLISS-m/ | 32[2]  |< | HANDIN_CLD.CLD CLD definition for= | HANDIN CLI table[2]A |= | HANDIN_SUBS.B32 BLISS-32 source fori? | HANDIN subroutines[2]  |A | _______________________________________________________t+ | [1]Only if sources were installedg( | [2]Only if PHOTO was installed | C-4a i oA Files Created During Installation < | Table C-1 (Cont.) Supervisor Series files createdA | ___________________during_installation_________________- |A | File_name_______________________Description_____________%5 SUPSER054.B(1()[HUNTER.SUPSER.V54C.B]INSTALL_GUIDE.TXT;1i?cGnT |A | _____________Files_in_SUPSER_ROOT:[SRC]_[1]____________  |9 | HANDIN_SUBS.MAR MACRO-32 sourcen= | generated by BLISS-0/ | 32[2]a |9 | HANDIN.MAR MACRO-32 source = | generated by BLISS- / | 32[2]  |= | PHOTO.B32 BLISS-32 source fore; | PHOTO/HANDIN mainC5 | routines[2][9 PHOTO.MAR MACRO-32 sourceu= generated by BLISS-s/ 32[2]= PHOTO.SDML VAX DOCUMENT source = for PHOTO manual[2]@ PHOTOMAR.MAR MACRO support routines: for terminal I/O= PHOTONP.B32 BLISS-32 source for@ nonpaged-pool routines9 PHOTONP.MAR MACRO-32 sourceo? generated by BLISS-32A= PHOTOP1.B32 BLISS-32 source forc7 P1-space codeoA _______________________________________________________ + [1]Only if sources were installedi( [2]Only if PHOTO was installedA C-5o l S+ Files Created During Installation< Table C-1 (Cont.) Supervisor Series files createdA ___________________during_installation_________________oA File_name_______________________Description____________SA _____________Files_in_SUPSER_ROOT:[SRC]_[1]____________v9 PHOTOP1.MAR MACRO-32 sourceN? generated by BLISS-32S= PHOTOPAT.B32 BLISS-32 source forn8 non-paged code9 PHOTOPAT.MAR MACRO-32 source ? generated by BLISS-32 < PHOTO_CLD.CLD CLD definition for< PHOTO CLI table[2]9 PLAYBACK.B32 BLISS-32 source ; for PLAYBACK main 4 routine[2]9 PLAYBACK.MAR MACRO-32 sourceY= generated by BLISS-a/ 32[2]]< PLAYBACK_CLD.CLD CLD definition for? PLAYBACK CLI table[2]o< PLAYBACK_MSG.MSG MESSAGE source for> PLAYBACK messages[2] |9 | PLAYBACK_RTN.MAR MACRO-32 sourcea= | generated by BLISS- 7 | 32 PHOTO and SUPERVISOR5 messages[3]c |? | SUPSER_MACROS.R32 BLISS-32 REQUIRE filep: TERMBLI.R32 BLISS-32 library6 REQUIRE fileA _______________________________________________________e+ [1]Only if sources were installedb- [3]Only if SUPERVISOR was installedtA C-7n  + Files Created During Installationp< Table C-1 (Cont.) Supervisor Series files createdA ___________________during_installation_________________BA File_name_______________________Description____________ A _____________Files_in_SUPSER_ROOT:[SRC]_[1]____________ 9 TTLOOKUP.B32 BLISS-32 sourceh= for terminal lookup 2 routines9 TTLOOKUP.MAR MACRO-32 sourcei? generated by BLISS-32P= VERSION.B32 BLISS-32 source for > routine to get image/ identf9 VERSION.MAR MACRO-32 source ? generated by BLISS-32eA _______________________________________________________iA ______________Files_in_SYS$COMMON:[SYSHLP]_____________y? SUPSER054.RELEASE_NOTES Release notes for theS; Supervisor Series.A _______________________________________________________d+ [1]Only if sources were installed A _______________________________________________________A C-8IING, Linking image PHOTO....7 %SUPSER-I-LINKING, Linking image PLAYBACK.... 5 | %SUPSER-I-LINKING, Linking image HANDIN.... 9 %SUPSER-I-LINKING, Linking image SUPERVISOR.... 9 %SUPSER-I-INSTDOC, Installing documentation....2@ %VMSINSTAL-I-RESTORE, Restoring product save set B ...3 %SUPSER-I-INSTDOC, Installing sources....*@ %VMSINSTAL-I-RES.*[HUNTER.SUPSER.V54C.B]LIBRARY.DECW$BOOKSHELF;1+, ./ 4>n-1(0123KPWO56D7889GHJ^S SUPSER054.B 1(.[HUNTER.SUPSER.V54C.B]LIBRARY.DECW$BOOKSHELF;1>,TITLE\SUPSER\Supervisor Series documentation>SHELF\SUPSER_ROOT:[DOC]SUPSER.DECW$BOOKSHELF\Supervisor Series'*[HUNTER.SUPSER.V54C.B]PHOTO.DECW$BOOK;1+, .K/ 4@KJ,-1(0123KPWOK56l7`c89GHJEL I<PHOTO Reference GuideGPxPHOTO  Contents/ CONTENTSCONTENTS8 E[TitlePageTitle Page@E\ CopyrightPageCopyright Page1xE\PrefacePreface ,D)$L1UsingPHOTOtoCapturea TerminalSession1 Using PHOTO to Capture a Terminal Session_w**$K1.1StartingaPHOTOSession1.1 Starting a PHOTO Session]w))$L1.2PausingaPHOTOSession1.2 Pausing a PHOTO Session-E-$K1.3 DisplayingtheStatusofa&PHOTOSession1.3 Displaying the Status of a PHOTO SessionVw%%$L1.4 RecordingInputOnly1.4 Recording Input Only~(>%$K1.5 DisplayingthePHOTO&VersionNumber1.5 Displaying the PHOTO Version Number[w(($L1.6EndingaPHOTOSession1.6 Ending a PHOTO Session_w**$K1.7AbortingaPHOTOSession1.7 Aborting a PHOTO Session!+B0$K1.8 CapturingtheI/OforAnother&Terminal1.8 Capturing the I/O for Another Terminal"Ew$K2UsingPLAYBACK2 Using PLAYBACK#p!7&$K2.1PlayingBackaPHOTO&Session2.1 Playing Back a PHOTO Session$nw$22$K2.2 Specifyinga DifferentLogFile2.2 Specifying a Different Log File'Zw''$K2.3PausesDuringPLAYBACK2.3 Pauses During PLAYBACK(l 4$$L2.4 RedirectingPLAYBACK&Output2.4 Redirecting PLAYBACK Output)~(>$$K2.5UsingPLAYBACKWith& Input-onlyLogs2.5 Using PLAYBACK With Input-only Logs.\((\PartII:Command DictionaryPart II: Command Dictionary0-gEKPHOTOPHOTO13g EKPLAYBACKPLAYBACKA//dD* Copyright1992HunterGoatley.'ALLRIGHTS RESERVED. ~AllRights Reserved.K!!OPHOTO ReferenceGuideAOOctober1992WO{Thismanual describestheuseofPHOTO,amemberofthe Supervisor5OSeriesofterminal monitoring software.xN'ORevision/Update Information:'^Thisisarevisedmanual.rH*O OperatingSystemandVersion:^VMSV5.0orlater[1OSoftwareVersion:^PHOTOV5.4 l O OO 5October1992jO Permissionisgrantedtocopyand redistributethisdocumentforno commercialgain.jOVThe informationinthisdocumentissubjecttochangewithoutnoticeandshouldnotfObe construedasa commitmentbytheauthor.(TheauthorassumesnoresponsibilityBOforanyerrorsthatmayappearinthis document.Ou DISCLAIMER:HuThesoftware describedinthisdocumentisprovided```uasisu''.*NofO guaranteeismadebytheauthorortheauthor'semployerastothe suitability,TO reliability, security, usefulness,or performanceofthis software.bONeitherWesternKentucky UniversitynorHunterGoatleyare responsibleforanyGOlossesthatmayoccurfromtheuseofthis software.OOsThe followingare trademarksofDigital Equipment Corporation: OQ DEC 3Q VAX Q VMSO DECnet 3 UCX O, DOq  Copyright1992HunterGoatley.&ALLRIGHTS RESERVED.*   tOPrefaceKOPHOTOisaVMSutilityprogramthatallowsuserstologOOtheirterminalsessionsintoafile.(WhilePHOTOisrunning,KOXeach charactersenttoandreceivedfromtheterminalisNOrecordedinafileandmaybe re-displayedlaterusingtheO PLAYBACKcommand. _UNote _HFor efficiencyreasons,thelogfilescreatedbyPHOTOClarejuststreamsof bytes-theyarenotnormalVMSCtextfiles.(PLAYBACKmustbeusedtoconvertthemtotextfiles. g_ 5DOPHOTOispart ofthe SupervisorSeries ofterminalIO monitoring software.+The SupervisorSerieswas originallyHO5writtenbyBobPasker,BillDonner,andTerryWayforFO PrecisionBusinessSystems,andwaslateracquiredbyEOSecurityPacific Software Services.1AftersellingandJO> maintainingthesoftwareforanumberofyears,SecurityIOPacific Software'sDanShoopplacedversion5.0DoftheBO SupervisorSeriesintothepublicdomainin1992. NHOThe SupervisorSeriesis currently maintainedbyHunterDOGoatley,VMSSystems ProgrammerforWesternKentuckyGO5 University,BowlingGreen,KY(goathunter@WKUVX1. yn SUPSER054.B 1('[HUNTER.SUPSER.V54C.B]PHOTO.DECW$BOOK;1@KBITNET).//   OIntendedAudienceIOUThismanualisintendedforanyVMSuserwhocantakeIO advantageoftheservicesprovidedbyPHOTO.Thereader=OshouldalreadyknowthebasicsofusingVMS.::  ndODocument StructureGOUThisguideconsistsoftwochaptersandone appendix. %hIOChapter1Providesasimple step-by-stepguidetousingb0PHOTO.ROChapter2Provides instructionsof reviewingarecordedsession,Cbwith explanationsofhowtoPLAYBACKasessiontobEvariousdevices.OPartII:bProvidescommand descriptionsforPHOTOandb  PLAYBACK.  ne"OTypicalUsesofPHOTOCOUPHOTOcanbeusedtoperformthe followingtasks:E d  `mImDocumentanobscure occurrence,orasoftwarebug,withAmessagesand tracebackdirectlyfromtheprogram. `EKEHavePHOTOlogtheoutputintoafilethatcanbesentHvia electronicmail,magtape,orhardcopytoothersto analyzetheproblem. `vJvPrepare transcriptsofdialoguewitha computer.)ThisisA convenientwhen documentingprogramsfor handouts,1'user'smanuals,andother sessions. `OKeepajournalofwhatisdoneinasessiontokeeptrack0ofusers' activitiesand progress. `~@~Monitor data-entryforpossiblesystemabuseandFsoftwareproblem resolution.,Anentiresessioncanbe1/ reproducedforreviewand analysis. `9PHOTOanotherterminalsession.0 SUPERVISOR,Btheothermemberofthe SupervisorSeries,allowsI_the monitoringofthe activitiesofanotheruser.,AfterC activatingPHOTO, SUPERVISORcanbeusedtoaccessAtheother terminal./ EverythingdoneontheotherKiterminaliswrittentoalogfileunderthe supervisor'scontrol. `A?A SUPERVISORcanalsousefilescreatedwiththe<PHOTO/LOG/INPUT qualifierasinput.) SUPERVISORKsendsthetypedinputonlytoanother terminal,whereit4K isexecutedaspartofthatsession.  h4O 1.?Using(PHOTO(to(Capture'a(TerminalOrSessionKOThischapterprovidesa step-by-stepguidetousingPHOTO=OOtorecordaterminalsessioninalogfile.oo  f *O1.1BStartingaPHOTOSessionEOUTostartaPHOTOlogsession,typetheDCLcommandHOPHOTO.Bydefault,alogfilenamed PHOTO.LOGwillbePOcreatedinthecurrentdefault directory.'ThedefaultfilenameOO^canbe overriddenbyusingthe/LOG qualifier;itacceptsaIOfilenameasavalue.*Forexample,the followingcommandCOcreatesafilenamed MYLOGFILE.LOGin DUB4:[MYDIR];SETHOSToverDECnet(RT devices).*However,itBcanlogphysical terminals, terminalswithvirtual= terminals(VTAx:- devices),LATterminalserver>H terminals(LTAx:, devices),UCXtelnet terminals<(TN devices),andpseudo-terminals(FTAx:-and=TWAx:-devices)thatareloggedin.-PHOTOhas<Rbeentestedwithnumerous third-partynetwork@terminaldevices, includingthosecreatedbythe?TCP/IPimplementationsbyTGVandTWG,andthe:[ PacerLink AppletalkimplementationbyPacer. $ $  f 0k)O1.2BPausingaPHOTOSessionHOUWhile recording,loggingcanbe temporarilydisabledby&Opressingthepausekey( m3 oTCTRL-D oT 3$,by default)..PressingLOthepausekeyagainwillresumetheloggingtothefile.HO^ Informationalmessagesare displayedonthescreenwhen,Ologgingispausedandresumed: O< $< PHOTOLO %PHOTO-I-INIT,% Recording% initiated&at& 24-MAR-1992& 09:02:38.23 O $ SHOW%TIME 24-MAR-1992&09:02:40 O\ $ "  $MY CTRL-D $M r "O [PHOTO%logging%paused] O $ SHOW%TIME9 24-MAR-1992&09:02:46 O $ G  JM CTRL-D JM  #O [PHOTO%logging%resumed] O $NOOThe ``paused''messageisnotrecordedinthelogfile,butKOthe ``resumed''messageisasan indicationofwherethe!O5 interruption occurred.Mf W#KOThedefaultpausekeycanbe overriddenusingthe/PAUSEFO qualifieronthePHOTOcommandline.-ItmayneedtoIO5bechangedif,forexample,PHOTOisusedwithanother$O applicationthatexpects M3 OTCTRL-D OT 3$tobeusedforanotherLOpurpose.+The/PAUSE qualifieracceptsavaluethatistheHO> character'sASCIIdecimalvalue.*Forexample,theASCIIOvalueof W3 YTCTRL-D YT 37is4;the followingcommandchangesthe+Opause charactertoASCII2( V- VToCTRL-B T V- ): Ot $t PHOTO/PAUSE=2LO %PHOTO-I-INIT,% Recording% initiated&at& 24-MAR-1992& 09:27:36.92 O  $   M  CTRL-B M ! "OY [PHOTO%logging%paused] O $ o  qM CTRL-B qM  #O [PHOTO%logging%resumed] O> $C MOCareshouldbetakenwhen selectingthepause charactertoIOavoid conflictswithother applicationsduringthePHOTOQO5session.'Forexample,thetilde(~),whichhasanASCIIvalueQOof126,wouldprobablybeagoodchoicebecauseitisrarelyOused.'Some  TCTRL- T 8 sequencesare interpretedbytheterminalLO>driver;contactthesystemmanagerforaalistofASCIIOvalues.k=O1.3B DisplayingtheStatusofaPHOTOSessionDOUThePHOTO/STATISTICScommandprovidesabriefstatus3OreportofthecurrentPHO! k#  |kgk tzSHELF;1~H P;_V=6^4 8<}o&D`A W xU1YxV61 ko_Z"/YO]HY_=9t-mIm uHgU/&#m 7e J@owx8.jLK}=@eR9;0Kmhlp*DleHCGpkLhO("~,y1; A~gUdfyIt_WIJ 2n2n~?@?FpwfLkP6;$(\`Xeuxxg=wD7i}l!8c=ksl [@`udpN8\N85Dg\P=41.@phIvCVwmxyUA0i'E}$vj-tZ$.azy*r Fqi^7Xy&,J\t mjse%;F5Cu #Mv 3ZM>@?yF\aoLZhM ;nSHE4U0QWSUGE7K 6;?kN 4S*zZd6I#U><6Fz=zm%g%%36j@_Qg8Iu&:3,iwo?GL-Bdjh1IbV~UdiK{hH/IqX`$1\Z9)Jj\jE $F`Z% o5ha8T+ nBt2  B;j?szm}gRE 'X@ZewH8"[+j b: >.LtU7-i:,g9_}?Y =jyc*?lno^ 4n fyZ56q#\wfQagC-}I-`2:(h9kFivr~ 8q7j> 8H3Y3 hu8Kwd440,a{/.GX PKC, 6) 9$R1eC&c~%ur<_JrsG+@uF,:=Nu5nxWL$wCJ8w\stdb]{|5l9\J._pA[K)*3xi3}k|ZjWMvNChJ4qM>W{Wu` odfz<=WJHbfv JGO$u^MY0E1AX8f!ct?)8Llp]2\l|rz@@.).wfxg|X_)ol;po:iwhjE(.P#;DHx5+:,;R5`z?\2 m6el9*=E9AH66._.Fnxq !*;p(v A5#V[q:oSoX I><}G!cJ$ncHeNcw00VD &i p T)hb=?NYX@hK%aH*'^@.~*~[H5#IX+da"g+lM`Zm*CWgGmXQ@5%{y;G]Igpq2YV#:lzT^#u+QU3>]Z]$S3ViX562 'E( =K<kPd% xYxUW; jw fB<5+.sV~L>SOQ}X^c=`2;so%sKZY U,zy B*AKV,=X*Cz|kvah ui%B;svw9wkx,\EqUQ~eZf\42}@0tX~]Snjl:MOeV"c$s1D'hpok+seR+fOYYZed(pAQN0"dP_3.BpVOtTj{LMw$^HvPAUI9`=!z>3ru`Og? |D#9;vRE={MWnZ .iDeN1E>Q6`Hk2ei@ u-5 FBjMF{:"L]oY,}aVidZly{.aN!3^8NSBWcHUyC, Z[G^ 8G#_riJK%eu8 nnhmGTfB~Gw3,_V]w4m&-}yCsM9w'n}4EU~YxlwolV :yX3PCgU $>!2di \[+j#Tf@tQ TB6u YG\z1bM$)>lw+CJ 8wcq! }!?w)_MGSl4'DVN]4|N[ZH-2I;yz6,$u) L. ^z8p` xD+l#Wkh0 ,;,l?nzOr>93 Q~a|yHX#DU(T%/or-az89 }>hHLtl[k!x92 o9\$*Qv.WP:LHUlCAX9xx XkFhu+5 / X0Kt( HeKA=;S1H(=->"yr19LH@xuV2f\2"-O,_! $#v^3Dd^~S0z!+8VuXXl$'<~B[b Ca-M{9*m^l-;+;s[P>S mB81pyM-:K-8Sa',\`78d4aA]9HN<}i.D\G%a[ 9za^VQ#tk'UB;@5F/W$cjl9 XELbBVO!a*B2d[58YsQ4L7Y;/89V]+A|9Z9Db;+]C50 4U5S;)8;CI@%pW:1&bAjm{HQEL0v I~Sm]#U_o;Px4{.bSP3H.+1XS &=p $,{Z[q3S%rW <`jBu$aUf c r)O~twt3Cqgv}ay/JZCpN->&m}Rgt-3g: V/Y5NxLSm`K89?HLYc|A@A(0]a+x(@U6-V*_MdtX|'N}M0FMGdEmW]QlY8Sg4 u24R\ {4]C[9INg'/3[MJ!G%06%B Om;O/l=MIWA tT,:&{F /l|[ ef 2V,J/M2[PJ\_n4T)|p KJE<go29yF0RLb3".b$UE`%k`=jW&&CWpv)")n4+`u*wry8Xb/*<0`@vl>}3# .m3]XH')9K,wYGPX?XX(2#/1SN(-7.(SA3(l-O~>1;m%6rIj^kCeG2.%]jg #p9sqJ_ }^K-FWNk^)5h ZA$N]D]eb&v(aTFl@d@vbi,+NX2@8,oa]z.,D;v3}*iA5f=eQ '#T'8Oeg< H@X MnH%(fy|!utOc=v$4L_`% B3 ke1ou?%}<emf&lV gKcOyN"T0 @p@o@?MQpy,#=qdgFB~$'VeB6%c?)^/W (?GXU;%na/0qa*H2xK Bp'L&;|UI=:vJV1(Rp)" VgN]@~8D%(bUcssWOAHO$WNDRs0sjJ}bfn-s-`+xVG9N&N @e9^ND0yY c\yHMtjrzrlEC_gG5MENU3p" C_*jf^Q=1V~Cp[hFzvseA_SD7D2OiR*;f}u*_!$%qFQ}-D)Cj6dA4T03T/&`&y6.IM <EneU*~MUPc%tpZl++XBU W$]{X2Y}iH9NIM{a #y}bF`FLIz/ iCtxirlqG[68["GGO1&Fg_kZGf$-< OsHM JlF~: %4=!rXGF,Y 4t 1i~h It.d"h2<]z-LX`F+%P o\,8KIk~p,McgZs 0tg9\ ;93E@/IS;}zz]U aUS !KJv&R5G9%p!.:(U,D5c~bJt12'0!>(OXsm JAVul}"-Ona" oR+!JgU|#V\h-)q9]S.8ClW"[u~4-N6\L:1\NOE]VkKS[I 6?.q&4U5)0{dP8H !#7'WN+"W:QW:cooxf3$;jg zLJh#g}RPYDuC`hl9UF AZ8hwpyj'S1&Z&g1EOC-y/ Kvl7eqpV=VpraL{%[lJCN-];}5_Gy$F5ft.t-7LVYxaby!TWLG[{f]FL k&fk\x}*3"Y'K^otY eq-^JhZi5w4EN#f?[*Z $XW*c&|r%ztRI`I0|jZZbrMO>rgq U$m NZ!s9RXdrWj6vg)H%E8oOy(yk-b[`h<8,4Fp&.p?; wao,x ?Eo"Y `2&Qlp8/ aoV9]4[w|~(B 84*EOAG@"~5L{k/qj{F*GoMI^#jBNyePPZAdQt ArvcxaWB3I+It}i ~/4LN?[;m+UH0' JXxMBByhm x/} 5{9RUZZUAwe eD`"6xb=*: 9DgR;B j4#gf>CQBjqN}bZ(!`oo#@6!0Kdjcm(dh:hV}j% vQ T eY aZJw )l8ARhAl[E9?XQ^gP!1.6s5P$vK|?YJ//'vTUG[a]nwNHn]Ip4mP8>=mg.?`10^= ODAEi sR ~2G-qU =@v+)UB%;En y{k9Ya*=^pzz (A&LCu".f.STU(4*!N| Fp\l q6iBG{.m<WxF 48Z`:OOxV1.,bj 2Htr @DCz},#Md:} DI%eB82q[rA=U#dh~7&cG'|_" xxD]#sm!5P: hmgUHo[d:` Tg_XpwGlcQf/}pAi cw29.k8QHcTK4t!iIp 7Jp?kruX!2[2`T$}P!Y%fQZ}[&MWr5a x|d^Gf)y F0BbHs \tel9V LFOw8#qhHpZ'h5X6@Y{?APL o2^T"|I0G0T1yRiPG%dbr^4m@/G 8,BO CpXPtHl /TTak [T`VmCfhIR Bi?m-TRA) _R~qe176 pE2Wf, \H1Y #b$)9#,) v\B a6AiC lw ]~-AhP-(& reMiJf:;=Y hUBSz8 vk_")pi{~^!1L:t 6MJmtge of the> "K SUPSER054.B 1('[HUNTER.SUPSER.V54C.B]PHOTO.DECW$BOOK;1@KTOsession: O2 $2 PHOTO/STATISTICSJOz %PHOTO-I-STAT,% Recording%in% progress,&80& characters%logged1O %PHOTO-I-MISSED,&Missed%0& charactersCO  %PHOTO-I-FILE,%Log%file%is%DKA300:[HUNTER]PHOTO.LOG;1 OR $ zNOIfthePHOTOsessionhasbeenpaused,the followingmessage=Owillalsobe displayedinthestatusreport:=Oa %PHOTO-I-PAUSED,&Photo&logging%has&been%paused LOMissed characterscanbecausedbyan excessiveamountofNOoutput.' Normally,thereshouldnotbeanymissed characters.& %O1.4B RecordingInputOnlyLOUPHOTOcanbeusedtorecordonlythe charactersinputtoKOthe terminal,insteadof recordingbothinputandoutput.BOThe PHOTO/INPUTcommandcreatesan input-onlylog.NO^The input-onlylogcanbefedtothe SUPERVISORutilitytoKOexecutethesamecommandsduringanotherterminalsession.EOInthisway,PHOTOand SUPERVISORcansimulateuser7Ohinputfor automatedtestingof software. O $ PHOTO/INPUTYO5 %PHOTO-I-IINIT,% input-only% recording% initiated&at& 24-MAR-1992& 09:27:36.92 O} $ #- [>OThe PHOTO/OFFandPHOTO/STATISTICScommandalsoHOindicatewhetherornot input-only recordingisactive. # nnT*6O1.5B DisplayingthePHOTOVersionNumberCOUTo determinetheversionnumberofPHOTO,addthe=O/VERSION qualifiertothePHOTOcommandline: O2 $2 PHOTO/VERSION=Oz %PHOTO-I-VERSION,%PHOTO%V5.4&linked% 13-SEP-1992 O $ #r [A (O1.6BEndingaPHOTOSessionDOUThe PHOTO/OFFcommandisusedto terminateaPHOTOEO recordingsession./Two informationalmessageswillbeFO displayed indicatingthetime recordingwas terminated-O^andthenameofthelogfile: O $ PHOTO/OFFKO+ %PHOTO-I-FINI,% recording%finished%at% 24-MAR-1992% 15:23:33.96COs %PHOTO-I-FILE,%log%file%is%DKA300:[HUNTER]PHOTO.LOG;1 O $ HOPHOTO recordingisalso terminatedwhentheprocessisFOloggedoutordeletedusingtheDCLSTOP/IDcommand.,!*O1.7BAbortingaPHOTOSessionBOUThe PHOTO/ABORTcommandisusedtoabortaPHOTOEtheoutputdeviceis SYS$OUTPUT(the terminal) #  `Bthefileisassumedtobestoredinbinarymode'! U2O2.2B Specifyinga DifferentLogFileTOUA differentlogfilecanbe displayedby specifyingthenameofMOthelogfileasa parameteronthePLAYBACKcommandline.TOAfullfile specificationoralogicalnamemaybeentered.'ForHO^example,the followingcommandopens SESSION.LOGinthe&Ocurrentdefault directory: O< $< PLAYBACK& SESSION.LOG ( \'O2.3BPausesDuringPLAYBACKGOUDuringthePHOTOsession,typingthe characters``!?''LOwillcausePLAYBACKtopausethedisplayofthelogfileOuntil 3 T+RETURN CT 3(ASCII0)andrubout sequences (character deletions)areMOremovedfromtheoutputfile(which correspondsto/STRIP). #H _+zEOThe followingexampleconverts PHOTO.LOGtoanormalOtextfile: Oa $$a PLAYBACK/OUTPUT=NORMAL.TXT # lh, >KOTheDCLprompt($)isactuallyprecededbyanullbyte,LOwhichis displayedas``^@''inEDT.Rubout sequencesareKO5the charactersproducedwhena characterisdeleted.*TheyROconsistofa character,a backspace,aspace,anda whitepace. # =-DOBy using a defaultof /STRIP,these characters areNO automaticallyremoved,whichmakesthetextfile ``cleaner.''CO5The/NOSTRIP qualifiercan be specified toprevent4OPLAYBACKfromremovingthe characters. # JJ. &a6O2.5BUsingPLAYBACKWith Input-onlyLogsNOUTodisplay input-onlylogfileswith PLAYBACK,the qualifierCO /TYPE=INPUTmustbe specifiedonthecommandline.BO (Input-onlylogsarecreatedusingthe PHOTO/INPUTHO^command;theycontainonlythe characterstypedattheHO keyboard,nottheoutputwrittentothe terminal.).TheAO followingexampleshowshowPLAYBACK processesanOh input-onlylog: O $ PLAYBACK/TYPE=INPUTO5 SH%USERSO} SHO%DEF O DIRO  PHOTO/OFF/ {GOIfPLAYBACKisrunwithout specifying /TYPE=INPUT,the4Oentirelogfilewillnotbevisible.0m(OPartII:Command DictionaryEOThissectionprovides descriptionsofPHOTO commands.r@@91OPHOTO*23 SOStartsterminalinputandoutputloggingtoalogfile.(CanbeOO( configuredtorecordbothinputandoutput,orjustterminalOinput.4$WOFormatOs PHOTOM [/qualifiers]OCommand QualifiersDefaultsO:/ABORT # CO|/BUFFER_SIZE=pages|/BUFFER_SIZE=2O/INPUTO /LOG=filespec%/LOG=SYS$DISK:[ ]PHOTO.LOGOD/OFFO /PAUSE=number/PAUSE=4O /STATISTICSO /VERSION5=O QualifiersOs/ABORTHO TerminatesthePHOTO recordingand automaticallydeletes O$thePHOTOlogfile. # k6KA"O/BUFFER_SIZE=buffer-sizeKO( Specifiesthenumberofpagestousefor bufferingwhileMO supervising.+Bydefault,2pagesareused.+Upto10pagesKOmaybe specified.+ Additionalpagesareusefulonheavily-tLOThelogfilescreatedbyPHOTOcanbeviewedandprinted(OusingthePLAYBACKutility.@?O Restrictions@: `hFhRTdevices(network terminalsloggedinviaSETHOST,overDECnet)cannotbelogged. `@A@WTdevices(UISVT100pseudo-terminals)cannotbe supervised. `?PHOTOisnot compatiblewiththe followingDEC@p products:/SessionSupportUtility(SSU),DEC/TestDManager,ACMS,theTerminalFallbackFacility(TFF),!andVMSPOSIX.   <AOPLAYBACK*BCPODisplaysaPHOTOlogfiletoanoutputdevice.(UsedtoplayNO(backaterminalsessionorconvertabinarylogfiletoaOnormalRMSfile.DOFormatOs PLAYBACKM [log-file]OCommand QualifiersDefaultsO:/OUTPUT=playback-file:/OUTPUT=SYS$OUTPUTO|/STRIP|/STRIPO /TYPE=typeSeebelow. # E=O ParametersOslog-fileGOName of the log file t$t SUPSER054.B 1('[HUNTER.SUPSER.V54C.B]PHOTO.DECW$BOOK;1@Ko;o be played back.4If omitted,DO$ PHOTO.LOGinthecurrentdefault directoryisused.sFIO QualifiersOs/OUTPUT=playback-fileQO Specifiesthefile specificationfortheoutputdevice.*CanbeWO$afullfile specificationoraterminaldevicename.)IfafileisLO| specified,thedefault qualifier /TYPE=RECORDwillcreatea"OnormalRMStextfile.G |O/STRIPIO( Specifiesthatallnull characters(ASCII0)andrubout@O sequences (character, backspace,space, backspace) # foundPOinthelogfileshouldberemovedbeforedisplay.*UsefulforJO2removingthenull charactertheprecedestheDCLcommandDOpromptandforremoving charactersdeletedwiththe J LTDelete LT Okey. #O OO~Bydefault,the charactersareremovedfromtheoutputfile.COUse/NOSTRIPtoleavethe charactersinthefile. #C :HO/TYPE=I O 8 O < OU :INPUT RECORD 0 9 0 = 0U ;JO Specifiestheformatoftheinputfileandoutputfile.J NPOIf /TYPE=RECORDis specified,thecreatedoutputfilewillbeKO convertedtoanormalRMStextfile.' /TYPE=RECORDisthe@O5defaultsettingifanoutputfileis specified. #H KNHOIf /TYPE=INPUTis specified,thelogfilebeingplayedNObackisassumedtobean input-onlylogfile(createdwithO5 PHOTO/INPUT). L=O Description@OsThePLAYBACKcommanddisplaysaterminalsession/O previouslyrecordedbyPHOTO.SeeiPHOTOfor information4O$onhowtorecordaterminalsession.*Li"?1:: PrefacePrefacePrefaceIntended AudienceDocument StructureDocument StructureTypical Uses of PHOTOTypical Uses of PHOTO31. Using PHOTO to Capture a Terminal Session#1.1 Starting a PHOTO Session#1.1 Starting a PHOTO Session"1.2 Pausing a PHOTO Session"1.2 Pausing a PHOTO Session"1.2 Pausing a PHOTO Session"1.2 Pausing a PHOTO Session31.3 Displaying the Status of a PHOTO Session31.3 Displaying the Status of a PHOTO Session31.3 Displaying the Status of a PHOTO Session1.4 Recording Input Only1.4 Recording Input Only.1.5 Displaying the PHOTO Version Number!1.6 Ending a PHOTO Session!1.6 Ending a PHOTO Session#1.7 Aborting a PHOTO Session11.8 Capturing the I/O for Another Terminal2. Using PLAYBACK'2.1 Playing Back a PHOTO Session'2.1 Playing Back a PHOTO Session'2.1 Playing Back a PHOTO Session*2.2 Specifying a Different Log File!2.3 Pauses During PLAYBACK&2.4 Redirecting PLAYBACK Output&2.4 Redirecting PLAYBACK Output&2.4 Redirecting PLAYBACK Output&2.4 Redirecting PLAYBACK Output&2.4 Redirecting PLAYBACK Output.2.5 Using PLAYBACK With Input-only Logs.2.5 Using PLAYBACK With Input-only Logs"Part II: Command Dictionary PHOTO PHOTO PHOTO PHOTO PHOTO PHOTO PHOTO PHOTO PHOTO PHOTO PHOTO PHOTO PHOTO PHOTO PHOTO PHOTOPLAYBACKPLAYBACKPLAYBACKPLAYBACKPLAYBACKPLAYBACKPLAYBACKPLAYBACKPLAYBACKPLAYBACKPLAYBACKPLAYBACK 123456789PHOTO_PREFACE1112PHOTO_P_1PHOTO_P_215PHOTO_P_317PHOTO_CH1PHOTO_120PHOTO_2222324PHOTO_32627PHOTO_429PHOTO_5PHOTO_632PHOTO_ABORTINGPHOTO_7PHOTO_CH2PHOTO_73738PHOTO_8PHOTO_9PHOTO_1042434445PHOTO_114748PHOTO_CMD505152535455565758596061626364PLAYBACK_CMD6667686970717273747576f fB-ADOBE-Helvetica-Medium-R-Normal--*-120-*-*-P-*-ISO8859-1@-ADOBE-Helvetica-Bold-R-Normal--*-180-*-*-P-*-ISO8859-1@-ADOBE-Helvetica-Bold-R-Normal--*-120-*-*-P-*-ISO8859-1@-ADOBE-Helvetica-Bold-R-Normal--*-100-*-*-P-*-ISO8859-1B-ADOBE-Helvetica-Medium-R-Normal--*-100-*-*-P-*-ISO8859-1@-ADOBE-Helvetica-Bold-R-Normal--*-140-*-*-P-*-ISO8859-1O-ADOBE-New Century Schoolbook-Medium-R-Normal--*-140-*-*-P-*-ISO8859-1O-ADOBE-New Century Schoolbook-Medium-R-Normal--*-120-*-*-P-*-ISO8859-1/-ADOBE-Symbol-*-R-*--*-140-*-*-P-*-*-*@ -ADOBE-Courier-Medium-R-Normal--*-120-*-*-M-*-ISO8859-1> -ADOBE-Courier-Bold-R-Normal--*-120-*-*-M-*-ISO8859-1B -ADOBE-Helvetica-Medium-R-Normal--*-140-*-*-P-*-ISO8859-1O -ADOBE-Interim DM-Medium-I-Normal--*-140-*-*-P-*-DEC-DECMATH_EXTENSION<%Σe SUPSER054.B 1('[HUNTER.SUPSER.V54C.B]PHOTO.DECW$BOOK;1@K~J?:?C Hf/ /::vfzo$  Rn "#d$&'(*.J00@9 T=SYS$OUTPUTO|/STRIP|/STRIPO /TYPE=typeSeebelow. # E=O ParametersOslog-fileGOName of the log file t *[HUNTER.SUPSER.V54C.B]PHOTO.PS;1+, ./ 4iV-1(0123KPWO56 Cp7 AT89GHJ%!PS-Adobe-2.0%%Creator: VAX DOCUMENT V2.0K%%+Copyright 1986,1987,1988,1989,1990,1991 DIGITAL EQUIPMENT CORPORATION. %%+All Rights Reserved.%%DocumentFonts: (atend)%%Pages: (atend) %%EndComments*/DEC_DVC$dict where { %FIND DICTIONARY pop}{ %else /DEC_DVC$dict 300 dict def } ifelse %/BeginDVC$PSDoc { %BEGIN DOCUMENT vmstatus pop pop 0 eq {' DEC_DVC$dict begin InitializeState }{ %else< /DVC$PSJob save def DEC_DVC$dict begin InitializeState /DVC$PSFonts save def } ifelse} def"/EndDVC$PSDoc { %END DOCUMENT'% --- Preserving current page count --- vmstatus pop pop 0 eq { end }{ %else/ DVC$PSFonts restore end DVC$PSJob restore } ifelse} def%DEC_DVC$dict begin%5mark % CREATE ISOLatin1Encoding if not there already/ISOLatin1Encoding0 8#000 1 8#054 {StandardEncoding exch get} for  /minus0 8#056 1 8#217 {StandardEncoding exch get} for /dotlessi 0 8#301 1 8#317 {StandardEncoding exch get} for H /space /exclamdown /cent /sterling /currency /yen /brokenbar /section G /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen L /registered /macron /degree /plusminus /twosuperior /threesuperior /acute E /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine L /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave O /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute O /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde L /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave M /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute G /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute N /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntildeJ /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave < /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis 9 /ISOLatin1Encoding where not {256 array astore def} if cleartomark%-/DOCPSE ISOLatin1Encoding 256 array copy def "mark % CREATE DOCPSE ENCODING 8#055 /hyphenC 8#201 /bullet 8#202 /emdash 8#203 /endash 8#204 /daggerC 8#205 /daggerdbl 8#206 /registered 8#207 /trademark %8#210 /Delta? 8#211 /fi 8#212 /fl 8#213 /OE 8#214 /oe 8#215 /Ydieresis) counttomark -1 bitshift % DIVIDE BY 2: {DOCPSE 3 1 roll put} repeat % STACK NOW CONTAINS MARK cleartomark%9/reencodedict 10 dict def %Local storage for "ReENCODE"3/ReENCODE { % /basefont /newfont encoding ReENCODE7 /newencoding exch def %ARG: NAME OF ENCODING VECTORC /newfontname exch def %ARG: NEW NAME FOR FONT AFTER RE-ENCODING findfont> /basefontdict exch def %ARG: NAME OF FONT TO BE RE-ENCODED? basefontdict maxlength dict begin %CREATE AND OPEN NEW DICT= basefontdict { %COPY ENTRIES FROM BASE FONT DICT TO NEW ONE 1 index /FID ne {5 def %IF NOT THE ONE WE'RE ENCODING, JUST COPY PTRS } { %else: pop pop %IGNORE FID AND ENCODING FOR ONE WE'RE ENCODING } ifelse } forall, /FontName newfontname def %DEFINE NEW NAME 6 /Encoding newencoding def %DEFINE NEW ENCODING VECTOR; newfontname currentdict definefont %TURN IT INTO A PS FONT3 pop %IGNORE MODIFIED DICT RETURNED BY DEFINEFONT end} def%/cvsstr 64 string def/tempmatrix matrix def%/BP { % BEGIN PAGE /Magnification exch def /Colorsused 0 def /processcolor false def /RVmatrix matrix def /DVC$PSPage save def} def%*/EP {DVC$PSPage restore} def % END PAGE%5/XP { % EXIT PAGE (TEMPORARILY) TO ADD FONTS/CHARSE % SAVE CURRENT POINT AND COLOR INFORMATION SO IT CAN BE RESET LATERH matrix currentmatrix aload pop currentrgbcolor Colorsused processcolor# /Xpos where {pop Xpos} {0} ifelse# /Ypos where {pop Ypos} {0} ifelse9 /currentpoint cvx stopped {0 0 moveto currentpoint} if / /DVC$PSPage where {pop DVC$PSPage restore} if moveto /Ypos exch def /Xpos exch def9 /processcolor exch def /Colorsused exch def setrgbcolor matrix astore setmatrix} def%-/RP {/DVC$PSPage save def} def % RESUME PAGE%A/PF {GlobalMode LocalMode} def % PURGE FONTS TO RECLAIM MEMORY%@/GlobalMode { % SWITCH TO BASE SAVE/RESTORE LEVEL, SAVING STATEK /DEC$EDMS_SEPARATE_COLORS where{pop DEC$EDMS_SEPARATE_COLORS}{9999}ifelse! RVmatrix aload pop processcolorC PortraitMode PaperWidth PaperHeight PxlResolution Resolution I Magnification Ymax Xorigin Yorigin RasterScaleFactor0 % SAVE CURRENTPOINT INFORMATION TO RESET LATER9 /currentpoint cvx stopped {0 0 moveto currentpoint} if / /DVC$PSPage where {pop DVC$PSPage restore} if# DVC$PSFonts restore RecoverState} def%2/RecoverState { % PRESERVE STATE AT BASE LEVEL 20 copyL /Ypos exch def /Xpos exch def /RasterScaleFactor exch def? /Yorigin exch def /Xorigin exch def /Ymax exch defH /Magnification exch def /Resolution exch def /PxlResolution exch defG /PaperHeight exch def /PaperWidth exch def /PortraitMode exch def< /processcolor exch def matrix astore /RVmatrix exch def< dup 9999 ne{/DEC$EDMS_SEPARATE_COLORS exch def}{pop}ifelse DoInitialScaling RVmatrix concat3 PortraitMode not {PaperWidth 0 SetupLandscape} if Xpos Ypos moveto} def%B/InitializeState { % INITIALIZE STATE VARIABLES TO DEFAULT VALUES. /Resolution 3600 def /PxlResolution 300 def5 /RasterScaleFactor PxlResolution Resolution div def /PortraitMode true def9 /Magnification 1000 def /Xorigin 0 def /Yorigin 0 defC /Xpos 0 def /Ypos 0 def /InitialMatrix matrix currentmatrix defB /Colorsused 0 def /processcolor false def /RVmatrix matrix def} def%D/LocalMode { % SWITCH FROM BASE SAVE/RESTORE LEVEL, RESTORING STATE= /Ypos exch def /Xpos exch def /RasterScaleFactor exch def6 /Yorigin exch def /Xorigin exch def /Ymax exch defH /Magnification exch def /Resolution exch def /PxlResolution exch defE /PaperHeight exch def /PaperWidth exch def /PortraitMode exch def: /processcolor exch def matrix astore /RVmatrix exch def< dup 9999 ne{/DEC$EDMS_SEPARATE_COLORS exch def}{pop}ifelse DoInitialScaling RVmatrix concat3 PortraitMode not {PaperWidth 0 SetupLandscape} if Xpos Ypos moveto- /DVC$PSFonts save def /DVC$PSPage save def} def% % ABBREVIATIONS /S /show load def/SV /save load def/RST /restore load def/Yadjust {Ymax exch sub} def%C/SXY { % (x,y) PO& SUPSER054.B 1( [HUNTER.SUPSER.V54C.B]PHOTO.PS;1i}SITION ABSOLUTE, JUST SET Xpos & Ypos, DON'T MOVE( Yadjust /Ypos exch def /Xpos exch def} def%$/XY { % (x,y) POSITION ABSOLUTE7 Yadjust 2 copy /Ypos exch def /Xpos exch def moveto} def%#/X { % (x,0) POSITION ABSOLUTEF currentpoint exch pop 2 copy /Ypos exch def /Xpos exch def moveto} def%$/Y { % (0,y) POSITION ABSOLUTE ' currentpoint pop exch Yadjust 2 copy' /Ypos exch def /Xpos exch def moveto} def%$/xy { % (x,y) POSITION RELATIVE9 neg rmoveto currentpoint /Ypos exch def /Xpos exch def} def%#/x { % (x,0) POSITION RELATIVE7 0 rmoveto currentpoint /Ypos exch def /Xpos exch def} def%#/y { % (0,y) POSITION RELATIVE@ 0 exch neg rmoveto currentpoint /Ypos exch def /Xpos exch def} def%/R { % DRAW A RULE$ /ht exch def /wd exch def gsave % 0 setgray currentpoint newpath moveto 0 ht rlineto wd 0 rlineto$ 0 ht neg rlineto wd neg 0 rlineto( closepath fill grestore wd 0 rmoveto, currentpoint /Ypos exch def /Xpos exch def} def%D/RES { % RES/ /Resolution exch def /PxlResolution exch def5 /RasterScaleFactor PxlResolution Resolution div def DoInitialScaling} def%,/DoInitialScaling { % DO INITIAL SCALING6 InitialMatrix setmatrix 72 Resolution div dup scale} def%2/PM { % PM XP/ /PaperWidth exch def /PaperHeight exch def0 /Ymax PaperHeight def /PortraitMode true def DoInitialScaling RP} def 8%9*/SetupLandscape {translate 90 rotate} def3/LM { % LM t XP/ /PaperWidth exch def /PaperHeight exch defd1 /Ymax PaperWidth def /PortraitMode false def0 DoInitialScaling PaperWidth 0 SetupLandscape RP} def B%N*/MAG { % CHANGE MAGNIFICATION SETTING! XP /Magnification exch def RP} def%%e8/SPB { % SPB - BEGIN "\SPECIAL" MODE- Yadjust /Yorigin exch def /Xorigin exch def  currentrgbcolor Colorsused& GlobalMode Xorigin Yorigin translate9 Resolution 72 div dup scale % RESTORE DEFAULT SCALINGlB Magnification 1000 div dup scale % ADJUST FOR ANY MAGNIFICATIONA /Xpos Xpos 72 Resolution div mul 1000 Magnification div mul defiA /Ypos Ypos 72 Resolution div mul 1000 Magnification div mul defEG /spsavobj save def %SAVE STATE & STACK DEPTH FOR CLEANUP AFTER FIGUREgG /showpage {} def %DISABLE DURING FIGURE; `RESTORE' WILL BLOW DEF AWAY> /DEC$EDMS_SEPARATE_COLORS where % if separating colors. { % thenC pop processcolor % if using process colorsm0 { % thenE DEC$EDMS_SEPARATE_COLORS 0 ge % if on color pass .ge. 0l2 { % then@ { pop 1 } settransfer % write only white2 }{ % else" /DEC$EDMS_TRAP_SWELL where, { pop DEC$EDMS_SEPARATE_COLORS -4 eq5 { /EDMS_setlinewidth /setlinewidth load def K /setlinewidth { DEC$EDMS_TRAP_SWELL mul EDMS_setlinewidth } defe } if } ifE /EDMS_setrgbcolor % set up for a redefine K /setrgbcolor load def % of the setrgbcolor operatorcK currentscreen % get the current screen parameterseF /DEC$EDMS_SCREEN_ANGLE where % if changing the screen angle. { % thenA pop exch pop % replace the old angleN< DEC$EDMS_SCREEN_ANGLE exch % with the new one } ifJ /DEC$EDMS_SCREEN_FREQ where % if changing the screen frequency. { % thenE pop 3 -1 roll pop % replace the old frequencyt< DEC$EDMS_SCREEN_FREQ 3 1 roll % with the new one } if@ setscreen % Set the new parameters /setrgbcolor { /b exch deff /g exch def /r exch defe /c3 1 r sub defC /m3 1 g sub def  /y3 1 b sub def M /k c3 m3 2 copy gt { exch } if pop y3 2 copy gt { exch } if pop def  /ik 1 k sub defo ik 0 nec# { /c4 c3 k sub ik div defb# /m4 m3 k sub ik div defE# /y4 y3 k sub ik div def/ }e) { /c4 /DEC$EDMS_BLACK_GEN whereY7 { pop DEC$EDMS_BLACK_GEN } { 0 } ifelse defN /m4 c4 def /y4 c4 def } ifelseL 1 [ c4 m4 y4 k ] % pick the separation for this colorI DEC$EDMS_SEPARATE_COLORS % pass ( -1 = Cyan, -2 = Magenta,pC neg 1 sub get sub setgray % -3 = Yellow, -4 = Black ) } defr3 } ifelse % endifEN }{ % else (if not using process colors)D DEC$EDMS_SEPARATE_COLORS 0 ne % if not on color pass 02 { % then@ { pop 1 } settransfer % write only white3 } if % endif1 } ifelse % endifC/ } if % endif{ mark} defY% #/SPE { % SPE - END "\SPECIAL" MODEe cleartomarkp spsavobj restore nD 1000 Magnification div dup scale % UN-ADJUST FOR ANY MAGNIFICATIONA 72 Resolution div dup scale % RESTORE DEFAULT INTERNAL SCALINGo LocalModee" /Colorsused exch def setrgbcolor} def%e/PP%RK% If DEC$EDMS_MAKE_FILM is defined, it will add the crop & alignment marks, J% and the document name, page number, & ink color identifiers to the page.%E% Formal Arguments: None%$% Referenced Variables: DocumentName% Colorsused% Currentpagecount% DEC$EDMS_MAKE_FILMo%s"% Referenced Procedures: AlignMark%e=% Side Effects: Leaves the current font as Helvetica 8 point. "% Creates the variable "junkstr".%l{ /PageNumber exch def1 /DEC$EDMS_MAKE_FILM where % if making film...  { pope@ /DEC$EDMS_SUPPRESS_COLOR where % if color suppression is onC { pop /DEC$EDMS_SEPARATE_COLORS 0 def % then default to color 0R2 /Colorsused 1 def } if % ...for everythingO 2 DEC$EDMS_SEPARATE_COLORS exp cvi Colorsused and 0 ne %if correct separatnh@ DEC$EDMS_SEPARATE_COLORS 0 lt or % ...or if a process color/ { /Helvetica findfont 400 scalefont setfont  20 setlinewidth 0 setgrayP gsavec< PaperWidth 1000 add 200 translate 90 rotate 0 0 moveto* (Ink: ) show % show the ink color# DEC$EDMS_SEPARATE_COLORS 0 geE; { DEC$EDMS_COLOR_NAMES DEC$EDMS_SEPARATE_COLORS get }a= { (Process ) show [ (Cyan) (Magenta) (Yellow) (Black) ]i< DEC$EDMS_SEPARATE_COLORS neg 1 sub get } ifelse showB /DEC$EDMS_SUPPRESS_COLOR where % if color suppression is onI { pop ( (Color Suppression enabled)) show } if % tell them about it 1800 0 rmovetod- (Page: ) show % show the page number/7 /junkstr 4 string def PageNumber junkstr cvs showx7 ( of ) show DEC$EDMS_TOTAL_PAGES junkstr cvs showc$ DEC$EDMS_SEPARATE_COLORS -4 eq0 { 1800 0 rmoveto (Trap Swell Factor: )showE /DEC$EDMS_TRAP_SWELL where % if trap swell factor is suppliedS0 { pop DEC$EDMS_TRAP_SWELL 6 string cvs }% { (1 (default)) } ifelse showa } if9 DEC$EDMS_SEPARATE_COLORS 0 lt % i'c4 SUPSER054.B 1( [HUNTER.SUPSER.V54C.B]PHOTO.PS;1iDf a process colorg {e@ PaperHeight 2 div 600 add 0 moveto (Screen Angle: ) show$ /DEC$EDMS_SCREEN_ANGLE whereB { pop DEC$EDMS_SCREEN_ANGLE junkstr cvs } % if defined: { ((default)) } ifelse show % if not defined1 1800 0 rmoveto (Screen Frequency: ) showo# /DEC$EDMS_SCREEN_FREQ whereeA { pop DEC$EDMS_SCREEN_FREQ junkstr cvs } % if definedS: { ((default)) } ifelse show % if not defined } if grestore gsaveA- -600 200 translate 90 rotate 0 0 movetoaF (Document: ) show DEC$EDMS_DOCUMENT_ID show % show document name( PaperHeight 2 div 600 add 0 movetoG (This film is the property of Digital Equipment Corporation) showS grestore1 /mask 15 % all crop marks on by defaultfN /DEC$EDMS_SUPPRESS_CROPMARKS where % if def'd, xor in suppression mask8 { pop DEC$EDMS_SUPPRESS_CROPMARKS xor } if def mask 1 and 1 eq 6 { PaperWidth PaperHeight moveto % Upper RightL 450 0 rmoveto 900 0 rlineto -1350 1350 rmoveto 0 -900 rlineto } if mask 2 and 2 eqt- { PaperWidth 0 moveto % Lower RightL 450 0 rmoveto 900 0 rlineto -1350 -1350 rmoveto 0 900 rlineto } if mask 4 and 4 eqf$ { 0 0 moveto % Lower LeftM -450 0 rmoveto -900 0 rlineto 1350 -1350 rmoveto 0 900 rlineto } ifm mask 8 and 8 eqd- { 0 PaperHeight moveto % Upper LeftoM -450 0 rmoveto -900 0 rlineto 1350 1350 rmoveto 0 -900 rlineto } if stroke7 /mask 15 % all registratn marks on by defaultoN /DEC$EDMS_SUPPRESS_REGMARKS where % if defined, xor in suppression mask7 { pop DEC$EDMS_SUPPRESS_REGMARKS xor } if defa% mask 1 and 1 eq % Top Center 5 { gsave PaperWidth 2 div PaperHeight 900 addo% /DEC$EDMS_POSITION_REGMARKS where 7 { pop DEC$EDMS_POSITION_REGMARKS -50 mul add } ifP% translate AlignMark grestore } ife' mask 2 and 2 eq % Right Center " { gsave PaperWidth 900 add# /DEC$EDMS_POSITION_REGMARKS wheres4 { pop DEC$EDMS_POSITION_REGMARKS -50 mul add } if6 PaperHeight 2 div translate AlignMark grestore } if( mask 4 and 4 eq % Bottom Center% { gsave PaperWidth 2 div -900t# /DEC$EDMS_POSITION_REGMARKS wheree3 { pop DEC$EDMS_POSITION_REGMARKS 50 mul add } ifI# translate AlignMark grestore } if & mask 8 and 8 eq % Left Center { gsave -900# /DEC$EDMS_POSITION_REGMARKS wherec3 { pop DEC$EDMS_POSITION_REGMARKS 50 mul add } ifd5 PaperHeight 2 div translate AlignMark grestore } if7 showpage }T0 { % disabled the 'erasepage ' that was here! } ifelse }R { showpage } ifelseX} defs1/CLRP { % disabled the 'erasepage' that was here!e } defo%p+/DMF { % /font-name DMFiB /psz exch def /nam exch def nam findfont psz scalefont setfont} defR%G3/concatnam { % /abcd (xxx) concatnam ==> /abcdxxxT /xxx exch def /nam exch def /namstr nam cvsstr cvs def1 /newnam namstr length xxx length add string def  newnam 0 namstr putintervalo& newnam namstr length xxx putinterval newnam cvn c} def% %/strip { % /abcdef 2 strip ==> /cdef  /num exch def /nam exch def /namstr nam cvsstr cvs def# /newlen namstr length num sub def $ namstr num newlen getinterval cvn} def /% ROUTINES TO HANDLE PACKING/UNPACKING NUMBERS8/PackHW { % PackHW --> 0 /num exch def /pos exch def /target exch def: num 16#0000FFFF and 1 pos sub 16 mul bitshift target or} defw</PackByte { % PackByte --> 0 /num exch def /pos exch def /target exch def: num 16#000000FF and 3 pos sub 8 mul bitshift target or} defp4/UnpkHW { % UnpkHW -->  /num exch def /pos exch def0 num 1 pos sub -16 mul bitshift 16#0000FFFF and) dup 16#00007FFF gt {16#00010000 sub} if } defC8/UnpkByte { % UnpkByte -->  /num exch def /pos exch def/ num 3 pos sub -8 mul bitshift 16#000000FF and ) dup 16#0000007F gt {16#00000100 sub} if } defD%S/ps-scalefont { J % FOR PS FONTS, LOOK AT SIZE REQUESTED. IF IT HAS A DECIMAL REMAINDERL % EQUIVALENT TO .001-.009 POINTS (I.E., .050-.450 VAXDOC UNITS), THAT'S H % A FLAG TO STRETCH IT VERTICALLY BY ADDING 1-9 EXTRA POINTS TO THE  % VERTICAL SCALING.SA % save requested size - as entered and as integere, dup /x-size exch def cvi /x-int exch def; % calc decimal remainder, mul x 1000, round ; x-size x-int sub 1000 mul round cvi /remainder exch def % % see how we scale... ) remainder 50 lt remainder 450 gt or {3& % scale isomorphically /ystretch 0 def  x-size scalefont } {k& % scale anamorphically /ystretch remainder def + x-int ystretch add /y-size exch def/' [x-int 0 0 y-size 0 0] makefont_ } ifelse} def % (/DPSF { % /procname size /fontname DPSF< findfont exch ps-scalefont [ exch /setfont cvx ] cvx def} deff%e/PXLBuildCharDict 17 dict def /CMEncodingArray 256 array def90 1 255 {CMEncodingArray exch dup cvsstr cvs cvn put} fora*/RasterConvert {RasterScaleFactor div} def/TransformBBox { aload pop3H /BB-ury exch def /BB-urx exch def /BB-lly exch def /BB-llx exch def. [ BB-llx RasterConvert BB-lly RasterConvert / BB-urx RasterConvert BB-ury RasterConvert ]r} def /RunLengthToRasters {O % none yet} defn7/GenerateRasters { % GENERATE RASTERS FOR "IMAGEMASK" 1 rasters runlength 1 eq {RunLengthToRasters} if } def %r*/int-dict-name {int (-dict) concatnam} def./int-dict {int (-dict) concatnam cvx load} def% /DefinePXLFont {E % ...Y1 % ...[llx lly urx ury]DefinePXLFonttC /newfont exch def /bb exch def /num exch def /psz exch def-C /dsz exch def /pxlmag exch def /ext exch def /int exch defE9 /fnam ext (-) concatnam pxlmag cvsstr cvs concatnam defh newfont not { int-dict-name 13 dict defE int-dict beginF /FontType 3 def /FontMatrix [ 1 dsz div 0 0 1 dsz div 0 0 ] defC /FontBBox bb TransformBBox def /Encoding CMEncodingArray defmI /CharDict 1 dict def CharDict begin /Char-Info num array def endu /BuildChar { PXLBuildCharDict begin, /char exch def /fontdict exch defB fontdict /CharDict get /Char-Info get char get aload pop2 /rasters exch def /PackedWord1 exch def+ 0 PackedWord1 UnpkHW 16#7FFF ne { 8 /PackedWord2 exch def /wx 0 PackedWord1 UnpkHW defN /rows 2 PackedWord1 UnpkByte def /cols 3 PackedWord1 UnpkByte defM /llx 0 PackedWord2 UnpkByte def /lly 1 PackedWord2 UnpkByte defPM /urx 2 PackedWord2 UnpkByte def /ury 3 PackedWord2 UnpkByte defP }{ %else0G /PackedWord2 exch def /PackedWord3 exch def /PackedWord4 exch defnJ /wx 1 PackedWord1 UnpkHW def /rows 0 PackedWord2 UnpkHW defI /cols 1 PackedWord2 UnpkHW def /llx 0 PackedWord3 UnpkHW deftI /lly 1 PackedWord3 UnpkHW def /urx 0 PackedWord4 UnpkHW defN) /ury 1 PackedWord4 UnpkHW def  } ifelse rows 0 lt {w( /rows rows neg def /runlength 1 def }{ %elseb /runlength 0 def } ifelseU wx 0. llx RasterConvert lly RasterConvert < urx RasterConvert ury RasterConv(E SUPSER054.B 1( [HUNTER.SUPSER.V54C.B]PHOTO.PS;1i,ert setcachedevice rows 0 ne { gsave) cols rows true RasterScaleFactor jB 0 0 RasterScaleFactor neg llx .5 add neg ury .5 add : tempmatrix astore GenerateRasters imagemask grestore } if ende } defh end ! fnam int-dict definefont pop r } if f/ int-dict-name fnam findfont psz scalefont defW3 currentdict int [ int-dict /setfont cvx ] cvx puts} def B/PXLF { true DefinePXLFont} def % SIGNAL THAT FONT ALREADY LOADEDG/PXLNF {false DefinePXLFont} def % SIGNAL THAT FONT NOT ALREADY LOADED %w:/PXLC { % ...* % ...PXLCH /rasters exch def /runlength exch def /cols exch def /rows exch defG /ury exch def /urx exch def /lly exch def /llx exch defh7 /wx exch def /code exch def /int exch def}+ % SEE IF LONG OR SHORT FORMAT IS REQUIREDf? true cols CKSZ rows CKSZ ury CKSZ urx CKSZ lly CKSZ llx CKSZ s TackRunLengthToRows {s/ int-dict /CharDict get /Char-Info get code oC [ 0 0 llx PackByte 1 lly PackByte 2 urx PackByte 3 ury PackByte A 0 0 wx PackHW 2 rows PackByte 3 cols PackByte rasters ] putq }{ %else/ int-dict /CharDict get /Char-Info get code ? [ 0 0 urx PackHW 1 ury PackHW 0 0 llx PackHW 1 lly PackHWMP 0 0 rows PackHW 1 cols PackHW 0 0 16#7FFF PackHW 1 wx PackHW rasters ] put } ifelse} deff%f/CKSZ {abs 127 le and} defA/TackRunLengthToRows {runlength 0 ne {/rows rows neg def} if} def5% /PLOTC {K % PLOTCH /rasters exch def /runlength exch def /cols exch def /rows exch defG /ury exch def /urx exch def /lly exch def /llx exch defe6 /psz exch def /dsz exch def /wx exch def' % "PLOT" A CHARACTER'S RASTER PATTERNe rows 0 ne {o gsave 3 currentpoint translate psz dsz div dup scale > cols rows true RasterScaleFactor 0 0 RasterScaleFactor 6 neg llx .5 add neg ury .5 add tempmatrix astore GenerateRasters imagemask grestore } if wx x} defE%R /AlignMark%%J% This procedure draws an alignment mark centered on the coordinate systemH% origin. If the variable DEC$EDMS_SEPARATE_COLORS = 0 then a "positive"M% alignment mark is drawn. If DEC$EDMS_SEPARATE_COLORS <> 0 then a "negative"r% alignment mark is drawn. T%_% Formal Arguments: NONE% 0% Referenced Variables: DEC$EDMS_SEPARATE_COLORS%a% Referenced Procedures: NONE % % Side Effects: NONE%d{ DEC$EDMS_SEPARATE_COLORS 0 eqh { 0 0 300 0 360 arc_B 0 -450 moveto 0 450 lineto -450 0 moveto 450 0 lineto stroke }7 { 0 0 450 0 360 arc fill 1 setgray 0 0 300 0 360 arc oL 0 -450 moveto 0 450 lineto -450 0 moveto 450 0 lineto stroke 0 setgray } ifelse} defp/SC_N% If not making film, the following procedure sets the current color using theL% RGB color model. If making film, the procedure notes the "color pass" and,K% if the specified color index matches the color pass, subsequent marks areeO% written in black. If the specified color index does not match the color pass, O% marks are written in white. Use of colors on individual pages is also trackedsK% to allow pages that don't use a particular color to be suppressed on that.% color pass (by the code in the /PP routine).%z*% Formal Arguments: color index (on stack)%e"% Referenced Variables: Colorsused% DEC$EDMS_SEPARATE_COLORS% DEC$EDMS_SUPPRESS_COLOR %a% Referenced Procedures: NONEr%sL% Side Effects: Modifies the variable Colorsused to record use of the color.M% Tracks use of color in the variables 'ci' and 'processcolor'.%r5{ /ci exch def ci 0 lt % if the color index is lt 0aB { /processcolor true def } % then set 'processcolor' to 'true'.E { ci /processcolor false def % else set 'processcolor' to 'false'.O9 /DEC$EDMS_SUPPRESS_COLOR where % if suppressing coloro6 { pop 0 setgray pop } % then set "color" to BlackA { /DEC$EDMS_SEPARATE_COLORS where % else if separating colorsbH { pop dup DEC$EDMS_SEPARATE_COLORS eq % then if on this color passH { 0 setgray /Colorsused Colorsused % then write black (do write)E 2 3 index exp cvi or def } % ..and note use of the "color" D { 1 setgray } ifelse pop } % else write white (don't write)N { dup ( ) cvs dup length 15 add string % else if using the color index,6 /tstr exch def % ..build up the name of theI tstr 0 (DEC$EDMS_COLOR_) putinterval % ..potential external color 9 tstr exch 15 exch putinterval % ..name procedure06 tstr cvn where % ..and see if it is defined> { pop pop tstr cvn cvx exec } % execute it if it isN { DEC$EDMS_COLOR_ARRAY exch get exec % else exec internal color proc } ifelse } ifelse } ifelse } ifelse} defT(/RV % .. gross recto/verso translate#{ /DEC$EDMS_ENABLE_RECTOVERSO wherer { popeC /RVmatrix DEC$EDMS_ENABLE_RECTOVERSO 50 mul 0 matrix translate def  RVmatrix concat } if} defo%<% Procedures for implementing the "rotate " special:% ROTB -e% - ROTE - /ROTB {  XP gsave  Xpos Ypos translate ' rotate % using from the stackt Xpos neg Ypos neg translatea RP } defk /ROTE {XP grestore RP} defend %DEC_DVC$dict %%EndProloge %%BeginSetup4/DEC$EDMS_MAKE_FILM where % if we are making film... { pop % ..clean up the stack 4 54 dup translate % ..make room for the film info } ifBeginDVC$PSDoc$/PaperWidth 8.500 Resolution mul def&/PaperHeight 11.000 Resolution mul def/Ymax PaperHeight defACLRP 300 3600 RESB%> Postamble of file HUNTER$USER:[HUNTER.SUPSER.NEW]PHOTO.DVI_PS.*% DefineFont:F153 Category:10 Pointsize:10D/NewCenturySchlbk-Bold /NewCenturySchlbk-Bold@DOCPSE DOCPSE ReENCODE./F153 500.0 /NewCenturySchlbk-Bold@DOCPSE DPSF*% DefineFont:F151 Category:10 Pointsize:10F/NewCenturySchlbk-Roman /NewCenturySchlbk-Roman@DOCPSE DOCPSE ReENCODE//F151 500.0 /NewCenturySchlbk-Roman@DOCPSE DPSFA+% DefineFont:F110 Category:100 Pointsize:1016/F110 /amex10 1500 498 500.0 128 [-1 -122 59 31] PXLNF)% DefineFont:F106 Category:10 Pointsize:7t(/Courier /Courier@DOCPSE DOCPSE ReENCODE /F106 350.0 /Courier@DOCPSE DPSF)% DefineFont:F104 Category:10 Pointsize:8r2/Courier-Bold /Courier-Bold@DOCPSE DOCPSE ReENCODE%/F104 400.0 /Courier-Bold@DOCPSE DPSFe)% DefineFont:F102 Category:10 Pointsize:8z /F102 400.0 /Courier@DOCPSE DPSF(% DefineFont:F42 Category:10 Pointsize:8,/Helvetica /Helvetica@DOCPSE DOCPSE ReENCODE!/F42 400.0 /Helvetica@DOCPSE DPSFm(% DefineFont:F40 Category:10 Pointsize:96/Helvetica-Bold /Helvetica-Bold@DOCPSE DOCPSE ReENCODE&/F40 450.0 /Helvetica-Bold@DOCPSE DPSF(% DefineFont:F38 Category:10 Pointsize:9!/F38 450.0 /Helvetica@DOCPSE DPSFb)% DefineFont:F36 Category:10 Pointsize:10 &/F36 500.0 /Helvetica-Bold@DOCPSE DPSF)% DefineFont:F35 Category:10 Pointsize:10x</Helvetica-Oblique /Helvetica-Oblique@DOCPSE DOCPSE ReENCODE)/F35 500.0 /Helvetica-Oblique@DOCPSE DPSF/)% DefineFont:F34 Category:10 Pointsize:10d!/F34 500.0 /Helvetica@DOCPSE DPSFd)% DefineFont:F28 Category:10 Pointsize:12f&/F28 600.0 /Helvetica-Bold@DOCPSE DPSF)% DefineFont:F25 Category:10 Pointsize:14 D/Helvetica-BoldOblique /Helvetica-BoldOblique@DOCPSE DOCPSE ReENCODE-/F25 700.0 /Helvetica-BoldOblique@DOCPSE DPSF )% DefineFont:F24 Category:10 Pointsize:14}&/F24 700.0 /Helvetica-Bold@DOCPSE DPSF)% DefineFont:F23 Category:10 Pointsize:14)/F){ SUPSER054.B 1( [HUNTER.SUPSER.V54C.B]PHOTO.PS;1iL];23 700.0 /Helvetica-Oblique@DOCPSE DPSF )% DefineFont:F20 Category:10 Pointsize:18 &/F20 900.0 /Helvetica-Bold@DOCPSE DPSF)% DefineFont:F12 Category:10 Pointsize:30P'/F12 1500.0 /Helvetica-Bold@DOCPSE DPSF4%%> Postamble of file PHOTO_CONTENTS.W%%BeginDEC$EDMSInfo /DEC$EDMS_DOCUMENT_ID () def8/DEC$EDMS_COLOR_NAMES [ (0_BLACK) (1_USERTAGCOLOR) ] def/DEC$EDMS_COLOR_ARRAY [ *%%RGBCustomColor 0.000 0.000 0.000 0_BLACK= { 0.000 0.000 0.000 setrgbcolor } % 0_BLACK DOC$COLOR_INITv1%%RGBCustomColor 0.000 0.000 0.000 1_USERTAGCOLORs? { 0.000 0.000 0.000 setrgbcolor } % 1_USERTAGCOLOR not found] def /DEC$EDMS_TOTAL_PAGES 0 defe%%EndDEC$EDMSInfoy/DEC$EDMS_MAKE_FILM wherep%{ pop /DEC$EDMS_SEPARATE_COLORS wherek { pop } ] { (ERROR - DEC$EDMS_MAKE_FILM requires DEC$EDMS_SEPARATE_COLORS be defined) = quit } ifelsep} if/DEC$EDMS_SEPARATE_COLORS wheren${ pop /DEC$EDMS_SUPPRESS_COLOR wherei { pop (ERROR - DEC$EDMS_SEPARATE_COLORS and DEC$EDMS_SUPPRESS_COLOR are mutually exclusive) = quit } ifD} if/DVC$PSFonts save defn %%EndSetup% %%Page: I 1O%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend).)1000 BP PaperHeight PaperWidth PM 0 0 XY C%%BeginCustomColor: 0_BLACKnH0 SC 10773 10524 XY F20(PHOT)S -16 x(O)S 165 x(Referenc)S -2 x(e)S 166 xE(Guide)S 10773 13214 XY F36(October)S 166 x(1992)S 10773 15306 XY F34eF(This)S 164 x(manual)S 163 x(describes)S 163 x(the)S 164 x(use)S 163 xF(of)S 164 x(PHOT)S -9 x(O,)S 164 x(a)S 163 x(member)S 164 x(of)S 164 xL(the)S 164 x(Supervisor)S 163 x(Series)S 10773 X 598 y(of)S 167 x(terminal)SC165 x(monitoring)S 165 x(software.)S 10773 19192 XY F36(Revision/)S D2 x(Update)S 166 x(Information)S 2 x(:)S 798 x F34(This)S 166 x(is)SG166 x(a)S 166 x(revised)S 165 x(manual.)S 10773 X 896 y F36(Operating)SaD167 x(System)S 166 x(and)S 166 x(V)S -27 x(ersion:)S 300 x F34(VMS)SH166 x(V5.0)S 167 x(or)S 166 x(later)S 10773 X 897 y F36(Software)S 166 xL(V)S -27 x(ersion:)S 18546 X F34(PHOT)S -9 x(O)S 165 x(V5.4)S 10773 28023 XYDF36(Academic)S 166 x(Computin)S 2 x(g)S 166 x(and)S 167 x(Research)SG165 x(Services)S 10773 X 597 y(W)S -9 x(estern)S 166 x(Kentucky)S 166 x/E(University)S 10773 X 698 y(Bowling)S 167 x(Green,)S 166 x(Kentucky)S %%EndCustomColor1 PP EPe %%PageTrailere%%%PageFonts: Helvetica-Bold Helveticah%%PageCustomColors: 0_BLACK %O %%Page: II 2%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend) ,1000 BP PaperHeight PaperWidth PM 0 0 XY RV %%BeginCustomColor: 0_BLACKoD0 SC 10773 25368 XY 8364 48 R 10773 25916 XY F40(5)S 166 x(October)SF167 x(1992)S 10773 X 897 y F38(Permission)S 167 x(is)S 166 x(granted)SE167 x(to)S 166 x(copy)S 167 x(and)S 167 x(redistribute)S 166 x(this)SdH166 x(documen)S 2 x(t)S 165 x(for)S 166 x(no)S 167 x(comme)S 2 x(rcial)SF165 x(gain.)S 10773 X 897 y(The)S 172 x(information)S 173 x(in)S 171 xE(this)S 172 x(documen)S 2 x(t)S 171 x(is)S 172 x(subject)S 172 x(to)SnH172 x(change)S 173 x(without)S 171 x(notice)S 172 x(and)S 173 x(should)SE172 x(not)S 10773 X 548 y(be)S 172 x(construed)S 173 x(as)S 171 x(a)SRE172 x(commitmen)S 2 x(t)S 170 x(by)S 172 x(the)S 172 x(author)S -24 xoG(.)S 259 x(The)S 172 x(author)S 172 x(assume)S 2 x(s)S 171 x(no)S 172 xyF(respons)S 2 x(ibil)S -2 x(ity)S 10773 X 547 y(for)S 166 x(any)S 167 xC(errors)S 168 x(that)S 165 x(may)S 167 x(appea)S 2 x(r)S 166 x(in)SnF166 x(this)S 165 x(docum)S 2 x(ent.)S 10773 X 897 y F40(DISCLAI)S -2 xE(MER:)S 184 x F38(The)S 183 x(software)S 183 x(described)S 185 x(in)SF182 x(this)S 183 x(docume)S 2 x(nt)S 182 x(is)S 183 x(provided)S 184 xF(`)S -8 x(`)S F40(as)S 183 x(is)S F38(')S -9 x('.)S 282 x(No)S 10773 XG548 y(guaran)S 2 x(tee)S 188 x(is)S 188 x(made)S 190 x(by)S 188 x(the)S F189 x(author)S 189 x(or)S 189 x(the)S 188 x(author)S 18 x(')S -9 x(s)SM188 x(employe)S 2 x(r)S 188 x(as)S 189 x(to)S 188 x(the)S 188 x(suitability)SzH-34 x(,)S 10773 X 548 y(reliabilit)S -2 x(y)S -33 x(,)S 166 x(security)SC-33 x(,)S 166 x(usefulness,)S 167 x(or)S 166 x(perform)S 2 x(ance)S G167 x(of)S 166 x(this)S 165 x(software.)S 10773 X 897 y(Neither)S 183 xrH(W)S -8 x(estern)S 184 x(Kentucky)S 184 x(University)S 182 x(nor)S 184 xF(Hunter)S 183 x(Goatley)S 183 x(are)S 184 x(respons)S 2 x(ible)S 182 xH(for)S 183 x(any)S 10773 X 548 y(losses)S 167 x(that)S 165 x(may)S 167 xE(occur)S 168 x(from)S 166 x(the)S 166 x(use)S 167 x(of)S 166 x(this)SeE166 x(software.)S 10773 X 896 y(The)S 167 x(follow)S -2 x(ing)S 167 xiM(are)S 166 x(tradem)S 2 x(arks)S 166 x(of)S 166 x(Digital)S 165 x(Equipment)S G167 x(Corporation:)S 10773 X 897 y(DEC)S 17349 X(V)S -34 x(AX)S 23924 X C(VMS)S 10773 X 548 y(DECnet)S 17349 X(UCX)S 10773 X 896 y 3588 24 R G10773 36028 XY(Copyright)S 166 x(\251199)S 2 x(2)S 166 x(Hunter)S 166 x I(Goatley)S -33 x(.)S 249 x(ALL)S 166 x(RIGHTS)S 165 x(RESER)S -8 x(VED.)S %%EndCustomColor2 PP EP %%PageTraileri%%%PageFonts: Helvetica-Bold Helveticad%%PageCustomColors: 0_BLACKe% 6% < Beginning of included file PHOTO_CONTENTS.DVI_PS > %%Page: III 3 %%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend) )1000 BP PaperHeight PaperWidth PM 0 0 XY m%%BeginCustomColor: 0_BLACKnE0 SC 5094 4546 XY 23160 48 R 5094 5520 XY F20(Contents)S 7187 6812 XYxG21072 72 R 7187 7410 XY F36(PREF)S -27 x(ACE)S 27981 X(v)S 5094 9203 XY D23160 144 R 5094 9900 XY F28(CHAPTER)S 164 x(1)S 599 x(USING)S 165 xC(PHOT)S -12 x(O)S 167 x(T)S -11 x(O)S 166 x(CAPTUR)S -2 x(E)S 166 xtL(A)S 166 x(TERMINA)S -2 x(L)S 167 x(SESSION)S 27260 X(1\2031)S 7187 11096 XYC21072 72 R 7187 11693 XY F36(1.1)S 9279 X(ST)S -37 x(ARTING)S 166 xtI(A)S 165 x(PHOT)S -9 x(O)S 166 x(SESSION)S 27427 X(1\2031)S 7187 12889 XYtH21072 72 R 7187 13487 XY(1.2)S 9279 X(P)S -37 x(AUSING)S 165 x(A)S 166 xF(PHOT)S -9 x(O)S 165 x(SESSI)S 2 x(ON)S 27427 X(1\2031)S 7187 14682 XYG21072 72 R 7187 15280 XY(1.3)S 9279 X(DISPLA)S -45 x(YING)S 165 x(THE)SeG167 x(ST)S -36 x(A)S -38 x(TUS)S 167 x(OF)S 166 x(A)S 165 x(PHOT)S -9 xEL(O)S 166 x(SESSION)S 27427 X(1\2032)S 7187 16476 XY 21072 72 R 7187 17073 XYE(1.4)S 9279 X(RECOR)S -2 x(DING)S 166 x(INPUT)S 166 x(ONL)S -46 x(Y)ScD27427 X(1\2032)S 7187 18269 XY 21072 72 R 7187 18867 XY(1.5)S 9279 XH(DISPLA)S -45 x(YING)S 165 x(THE)S 167 x(PHOT)S -9 x(O)S 165 x(VERSION)SF166 x(NUMBER)S 27427 X(1\2033)S 7187 20062 XY 21072 72 R 7187 20660 XYE(1.6)S 9279 X(ENDING)S 165 x(A)S 166 x(PHOT)S -10 x(O)S 166 x(SESSI)SEF2 x(ON)S 27427 X(1\2033)S 7187 21855 XY 21072 72 R 7187 22453 XY(1.7)SG9279 X(ABOR)S -2 x(TING)S 166 x(A)S 166 x(PHOT)S -9 x(O)S 165 x(SESSI)SSF2 x(ON)S 27427 X(1\2033)S 7187 23649 XY 21072 72 R 7187 24246 XY(1.8)SF9279 X(CAPTURING)S 165 x(THE)S 166 x(I/O)S 166 x(FOR)S 166 x(ANOTHER)SI165 x(TERMINAL)S 27427 X(1\2033)S 5094 26040 XY 23160 144 R 5094 26737 XYoGF28(CHAPTER)S 164 x(2)S 599 x(USING)S 165 x(PLA)S -56 x(YBACK)S 27260 XrG(2\2031)S 7187 27933 XY 21072 72 R 7187 28530 XY F36(2.1)S 9279 X(PLA)SCI-46 x(YING)S 166 x(BACK)S 165 x(A)S 165 x(PHOT)S -9 x(O)S 166 x(SESSION)SD27427 X(2\2031)S 7187 29726 XY 21072 72 R 7187 30324 XY(2.2)S 9279 XI(SPECIFYI)S 2 x(NG)S 165 x(A)S 166 x(DIFFERENT)S 167 x(LOG)S 165 x(FILE)SPD27427 X(2\2031)S 7187 31519 XY 21072 72 R 7187 32117 XY(2.3)S 9279 XC(P)S -37 x(AUSES)S 166 x(DURING)S 165 x(PLA)S -46 x(YBACK)S 27427 XCK(2\2031)S 7187 33312 XY 21072 72 R 7187 33910 XY(2.4)S 9279 X(REDIRECTING)SrH165 x(PLA)S -45 x(YBACK)S 165 x(OUTPUT)S 27427 X(2\2032)S -416 x 36925 Y(iii)S%%EndCustomColor3 PP EP/ %%PageTrailerD%%PageFonts: Helvetica-BoldC%%PageCustomColors: 0_BLACKl%i %%Page: IV 4%%BeginPageSetup%%EndPag*>Lg SUPSER054.B 1( [HUNTER.SUPSER.V54C.B]PHOTO.PS;1iJeSetup%%PageFonts: (atend)%%PageCustomColors: (atend) ,1000 BP PaperHeight PaperWidth PM 0 0 XY RV %%BeginCustomColor: 0_BLACKdF0 SC 5094 1807 XY F28(Contents)S -496 x 4571 Y 21072 72 R 7187 5169 XYEF36(2.5)S 9279 X(USING)S 165 x(PLA)S -45 x(YBACK)S 165 x(WITH)S 166 xlJ(INPUT)S -27 x(-ONL)S -46 x(Y)S 166 x(LOGS)S 27427 X(2\2032)S 5094 6962 XYH23160 144 R 5094 8208 XY F20(P)S -66 x(ART)S 167 x(II:)S 166 x(COMMAND)SE167 x(DICTIONAR)S -32 x(Y)S 11371 X 597 y F40(PHOT)S -9 x(O)S 22878 XtI(Comm)S -2 x(ands\2033)S 11371 X 598 y(PLA)S -42 x(YBACK)S 22878 X(Comm)Sg'-2 x(ands\2035)S 5094 36925 XY F36(iv)Sc%%EndCustomColor4 PP EPe %%PageTrailerr%%PageFonts: Helvetica-Bold.%%PageCustomColors: 0_BLACK4%>0% < End of included file PHOTO_CONTENTS.DVI_PS > %%Page: V 5C%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)D)1000 BP PaperHeight PaperWidth PM 0 0 XY 0%%BeginCustomColor: 0_BLACK.M0 SC 5094 4546 XY 23160 48 R 5094 5443 XY F20(Prefac)S -2 x(e)S 10773 7236 XY0CF151(PHOTO)S 173 x(is)S 173 x(a)S 173 x(VMS)S 173 x(utility)S 174 x1E(program)S 174 x(that)S 173 x(allows)S 172 x(users)S 174 x(to)S 173 xCD(log)S 174 x(their)S 173 x(terminal)S 10773 X 598 y(sessions)S 170 xC(into)S 171 x(a)S 171 x(\211le.)S 260 x(While)S 172 x(PHOTO)S 170 xMI(is)S 171 x(running)S 2 x(,)S 173 x(each)S 171 x(character)S 172 x(sent)SLH171 x(to)S 171 x(and)S 10773 X 598 y(received)S 177 x(from)S 176 x(the)SG177 x(terminal)S 176 x(is)S 176 x(recorded)S 176 x(in)S 177 x(a)S 176 xuI(\211le)S 177 x(and)S 176 x(may)S 177 x(be)S 176 x(re-displayed)S 10773 XiG598 y(later)S 166 x(using)S 167 x(the)S 166 x(PLA)S -46 x(YBACK)S 165 xeG(command.)S 9118 10026 XY F153(Note:)S 300 x(For)S 183 x(ef\211ciency)SLH183 x(reasons,)S 189 x(the)S 183 x(log)S 184 x(\211les)S 184 x(created)SI183 x(by)S 183 x(PHOTO)S 183 x(are)S 183 x(just)S 10773 X 598 y(streams)SeG172 x(of)S 171 x(bytes\202they)S 173 x(are)S 172 x(not)S 172 x(normal)SC172 x(VMS)S 172 x(text)S 172 x(\211les.)S 261 x(PLA)S -46 x(YBACK)SxG10773 X 597 y(must)S 166 x(be)S 166 x(used)S 167 x(to)S 166 x(convert)SnC167 x(them)S 166 x(to)S 166 x(text)S 167 x(\211les.)S 10773 X 897 ynNF151(PHOTO)S 172 x(is)S 172 x(part)S 172 x(of)S 173 x(the)S 172 x(Supervisor)SC173 x(Series)S 172 x(of)S 173 x(terminal)S 172 x(monitoring)S 173 xH(software.)S 10773 X 598 y(The)S 173 x(Supervisor)S 172 x(Series)S 172 xF(was)S 171 x(originally)S 173 x(written)S 172 x(by)S 172 x(Bob)S 172 xG(Pasker)S -36 x(,)S 173 x(Bill)S 172 x(Donner)S -36 x(,)S 10773 X 598 yYD(and)S 180 x(T)S -45 x(erry)S 180 x(W)S -37 x(ay)S 181 x(for)S 180 xF(Precision)S 180 x(Business)S 179 x(Systems,)S 183 x(and)S 180 x(was)SH179 x(later)S 180 x(acquired)S 10773 X 597 y(by)S 176 x(Security)S 176 xC(Paci\211c)S 176 x(Software)S 175 x(Services.)S 268 x(After)S 175 xBD(selling)S 175 x(and)S 176 x(maintaining)S 176 x(the)S 10773 X 598 yJ(software)S 182 x(for)S 182 x(a)S 183 x(number)S 183 x(of)S 182 x(years,)SD188 x(Security)S 183 x(Paci\211c)S 183 x(Software')S -19 x(s)S 182 xH(Dan)S 182 x(Shoop)S 10773 X 598 y(placed)S 182 x(version)S 182 x(5.0D)SE182 x(of)S 181 x(the)S 182 x(Supervisor)S 182 x(Series)S 182 x(into)StJ182 x(the)S 181 x(public)S 182 x(domain)S 182 x(in)S 10773 X 598 y(1992.)SF10773 X 896 y(The)S 178 x(Supervisor)S 178 x(Series)S 176 x(is)S 177 xI(currently)S 179 x(maintained)S 177 x(by)S 178 x(Hunter)S 177 x(Goatley)SF-55 x(,)S 180 x(VMS)S 10773 X 598 y(Systems)S 176 x(Programmer)S 178 xC(for)S 177 x(W)S -27 x(estern)S 177 x(Kentucky)S 178 x(University)SdM-55 x(,)S 180 x(Bowling)S 177 x(Green,)S 10773 X 598 y(KY)S 165 x(\(goathun)S I2 x(ter@WKUVX)S -2 x(1.BITNET\).)S 5094 18826 XY 23160 96 R 5094 19524 XY9GF24(Intended)S 166 x(Audience)S -533 x 896 y F151(This)S 169 x(manual)SsE168 x(is)S 168 x(intended)S 169 x(for)S 168 x(any)S 170 x(VMS)S 168 x)D(user)S 168 x(who)S 168 x(can)S 169 x(take)S 169 x(advantage)S 169 xF(of)S 168 x(the)S 10773 X 598 y(services)S 172 x(provided)S 173 x(by)SH173 x(PHOTO.)S 172 x(The)S 173 x(reader)S 172 x(should)S 172 x(already)SH173 x(know)S 173 x(the)S 172 x(basics)S 10773 X 598 y(of)S 166 x(using)SH167 x(VMS.)S 5094 22811 XY 23160 96 R 5094 23509 XY F24(Document)S 166 xE(Structure)S 10773 X 896 y F151(This)S 166 x(guide)S 167 x(consists)SrE165 x(of)S 166 x(two)S 166 x(chapters)S 166 x(and)S 166 x(one)S 167 xyE(appendix.)S 10773 X 897 y F38(Chapter)S 150 x(1)S 14360 X(Provides)S H150 x(a)S 150 x(simple)S 149 x(step-by-)S 2 x(step)S 149 x(guide)S 150 xH(to)S 150 x(using)S 150 x(PHOT)S -9 x(O.)S 10773 X 747 y(Chapter)S 150 xI(2)S 14360 X(Provides)S 181 x(instructions)S 182 x(of)S 180 x(reviewing)S(C181 x(a)S 181 x(recor)S 2 x(ded)S 181 x(session,)S 190 x(wit)S -2 xeC(h)S 14360 X 548 y(explanations)S 150 x(of)S 149 x(how)S 150 x(to)SrD149 x(PLA)S -33 x(YBACK)S 150 x(a)S 149 x(session)S 151 x(to)S 149 xC(various)S 150 x(devices.)S 10773 X 747 y(Part)S 150 x(II)S 14360 XeC(Provides)S 150 x(comma)S 2 x(nd)S 150 x(descriptions)S 150 x(for)S J149 x(PHOT)S -8 x(O)S 149 x(and)S 150 x(PLA)S -33 x(YBACK.)S 5094 28540 XYG23160 96 R 5094 29237 XY F24(T)S -51 x(ypical)S 165 x(Uses)S 165 x(of)S3C166 x(PHOT)S -13 x(O)S 10773 X 897 y F151(PHOTO)S 166 x(can)S 166 x8K(be)S 166 x(used)S 166 x(to)S 166 x(perform)S 166 x(the)S 166 x(following)S E167 x(tasks:)S 10773 X 896 y(\201)S 595 x(Document)S 179 x(an)S 179 xVD(obscure)S 179 x(occurrence,)S 184 x(or)S 179 x(a)S 178 x(software)SD178 x(bug,)S 183 x(with)S 178 x(messages)S 11670 X 598 y(and)S 166 xG(traceback)S 167 x(directly)S 166 x(from)S 166 x(the)S 166 x(program.)SpG10773 X 897 y(\201)S 595 x(Have)S 171 x(PHOTO)S 170 x(log)S 171 x(the)S0G170 x(output)S 171 x(into)S 171 x(a)S 170 x(\211le)S 171 x(that)S 170 xCE(can)S 171 x(be)S 171 x(sent)S 170 x(via)S 171 x(electronic)S 11670 X7E598 y(mail,)S 166 x(magtape,)S 166 x(or)S 167 x(hardcopy)S 167 x(to)S3F166 x(others)S 166 x(to)S 166 x(analyze)S 166 x(the)S 166 x(problem.)SC10773 X 896 y(\201)S 595 x(Prepare)S 177 x(transcripts)S 177 x(of)SSH177 x(dialogue)S 178 x(with)S 177 x(a)S 177 x(computer)S -37 x(.)S 272 xG(This)S 177 x(is)S 177 x(conven)S 2 x(ient)S 11670 X 598 y(when)S 171 xSD(documenting)S 173 x(programs)S 171 x(for)S 171 x(handou)S 2 x(ts,)SJ172 x(user)S 28 x(')S -19 x(s)S 171 x(manuals,)S 172 x(and)S 172 x(other)S011670 X 598 y(sessions.)S 27981 36925 XY F36(v)S%%EndCustomColor5 PP EP %%PageTrailer 2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman#%%+ NewCenturySchlbk-Bold Helveticax%%PageCustomColors: 0_BLACK-%E %%Page: VI 6%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)),1000 BP PaperHeight PaperWidth PM 0 0 XY RV %%BeginCustomColor: 0_BLACK8F0 SC 5094 1807 XY F28(Preface)S 10773 4866 XY F151(\201)S 595 x(Keep)SI182 x(a)S 183 x(journal)S 183 x(of)S 183 x(what)S 182 x(is)S 182 x(done)S3J184 x(in)S 182 x(a)S 183 x(session)S 182 x(to)S 182 x(keep)S 183 x(track)SF184 x(of)S 182 x(users')S 11670 X 598 y(activities)S 165 x(and)S 167 xD(progress.)S 10773 X 896 y(\201)S 595 x(Monitor)S 179 x(data-entry)SE178 x(for)S 179 x(possible)S 177 x(system)S 178 x(abuse)S 178 x(and)S1G178 x(software)S 178 x(problem)S 11670 X 598 y(resolution.)S 305 x(An)SSH193 x(entire)S 194 x(session)S 193 x(can)S 194 x(be)S 194 x(reproduced)SH194 x(for)S 194 x(review)S 194 x(and)S 11670 X 598 y(analysis.)S 10773 XL897 y(\201)S 595 x(PHOTO)S 173 x(another)S 175 x(terminal)S 174 x(session.)SE264 x(SUPER)S -19 x(VISOR,)S 173 x(the)S 174 x(other)S 175 x(member)S(G11670 X 597 y(of)S 184 x(the)S 184 x(Supervisor)S 185 x(Series,)S 189 xYE(allows)S 183 x(the)S 184 x(monitoring)S 186 x(of)+]l SUPSER054.B 1( [HUNTER.SUPSER.V54C.B]PHOTO.PS;1iu.YS 184 x(the)S 184 x1C(activities)S 184 x(of)S 11670 X 598 y(another)S 172 x(user)S -37 x1H(.)S 261 x(After)S 171 x(activating)S 173 x(PHOTO,)S 171 x(SUPER)S -19 xE(VISOR)S 170 x(can)S 172 x(be)S 172 x(used)S 171 x(to)S 11670 X 598 y2G(access)S 176 x(the)S 176 x(other)S 177 x(terminal.)S 269 x(Everythin)S6J2 x(g)S 176 x(done)S 177 x(on)S 177 x(the)S 176 x(other)S 177 x(terminal)SC176 x(is)S 11670 X 598 y(written)S 165 x(to)S 166 x(a)S 166 x(log)SsD167 x(\211le)S 166 x(under)S 167 x(the)S 166 x(supervisor)S 28 x(')SC-19 x(s)S 166 x(control.)S 10773 X 896 y(\201)S 595 x(SUPER)S -19 xeE(VISO)S -2 x(R)S 167 x(can)S 167 x(also)S 166 x(use)S 166 x(\211les)S2H167 x(created)S 167 x(with)S 166 x(the)S 167 x(PHOTO/LOG/INPUT)S 11670 XI598 y(quali\211er)S 192 x(as)S 192 x(input.)S 301 x(SUPER)S -19 x(VISOR)S H190 x(sends)S 191 x(the)S 192 x(typed)S 192 x(input)S 192 x(only)S 193 xC(to)S 11670 X 598 y(another)S 167 x(terminal,)S 166 x(where)S 166 x3D(it)S 166 x(is)S 166 x(executed)S 166 x(as)S 166 x(part)S 166 x(of)S4166 x(that)S 166 x(session.)S 5094 36925 XY F36(vi)S%%EndCustomColor6 PP EP6 %%PageTrailerc2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman%%PageCustomColors: 0_BLACKe%t %%Page: 1-1 7C%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)t)1000 BP PaperHeight PaperWidth PM 0 0 XY %%%BeginCustomColor: 0_BLACK0J0 SC 2404 5875 XY F12(1)S 5094 4546 XY 23160 48 R 5094 5443 XY F20(Using)SE166 x(PHOT)S -16 x(O)S 166 x(to)S 165 x(Capture)S 165 x(a)S 165 x(T)SXI-66 x(erminal)S 165 x(Session)S 10773 8652 XY F151(This)S 179 x(chapter)SpC178 x(provides)S 179 x(a)S 178 x(step-by-step)S 177 x(guide)S 179 xE(to)S 179 x(using)S 179 x(PHOTO)S 177 x(to)S 179 x(record)S 178 x(a)SiC10773 X 598 y(terminal)S 166 x(session)S 165 x(in)S 167 x(a)S 166 xiG(log)S 166 x(\211le.)S 5094 10445 XY 23160 96 R 2404 11142 XY F24(1.1)SJ5094 X(Starting)S 167 x(a)S 166 x(PHOT)S -13 x(O)S 165 x(Session)S 10773 XD897 y F151(T)S -45 x(o)S 190 x(start)S 190 x(a)S 190 x(PHOTO)S 190 xL(log)S 191 x(session,)S 197 x(type)S 191 x(the)S 190 x(DCL)S 190 x(command)SH191 x(PHOTO.)S 191 x(By)S 10773 X 598 y(default,)S 194 x(a)S 188 x(log)SF188 x(\211le)S 188 x(named)S 189 x(PHOTO.LOG)S 187 x(will)S 187 x(be)SD188 x(created)S 188 x(in)S 188 x(the)S 189 x(current)S 10773 X 598 yH(default)S 181 x(directory)S -54 x(.)S 280 x(The)S 182 x(default)S 181 xH(\211lename)S 182 x(can)S 182 x(be)S 181 x(overridden)S 182 x(by)S 182 xD(using)S 182 x(the)S 10773 X 597 y(/LOG)S 156 x(quali\211er;)S 161 xC(it)S 156 x(accepts)S 156 x(a)S 157 x(\211lename)S 157 x(as)S 156 x(N(a)S 156 x(value.)S 251 x(For)S 157 x(example,)S 159 x(the)S 156 x(following)SF10773 X 598 y(command)S 185 x(creates)S 184 x(a)S 185 x(\211le)S 184 xG(named)S 185 x(MYLOGFILE.LOG)S 184 x(in)S 184 x(DUB4:[MYDIR];)S 10773 X7L598 y(PHOTO)S 166 x(responds)S 165 x(with)S 166 x(an)S 166 x(informational)S'167 x(message:)S 10773 X 897 y F102($)S)%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORC1 SC 239 x F104(PHOTO/LOG=DU)S 2 x(B4:[MYDIR]MYLOGFILE)S 2 x(.LOG)S-%%EndCustomColor%%BeginCustomColor: 0_BLACK0L0 SC 10773 X 448 y F102(%PHOTO-I-INIT,)S 241 x(Recording)S 240 x(initiated)SD240 x(at)S 239 x(24-MAR-1992)S 240 x(09:02:38.23)S 10773 X 448 y($)SD-239 x 897 y F151(The)S 185 x(user)S 185 x(must)S 184 x(have)S 185 xH(write)S 184 x(access)S 184 x(to)S 184 x(the)S 185 x(speci\211ed)S 184 xG(directory)S 186 x(in)S 184 x(order)S 185 x(to)S 10773 X 598 y(create)SH166 x(the)S 167 x(log)S 166 x(\211le.)S 9118 19312 XY F153(Note:)S 300 xE(PHOTO)S 182 x(cannot)S 184 x(log)S 183 x(network)S 183 x(terminals)S8F183 x(logged)S 184 x(in)S 183 x(via)S 183 x(SET)S 182 x(HOST)S 10773 XK598 y(over)S 169 x(DECnet)S 169 x(\(RT)S 168 x(devices\).)S 257 x(However)S7D-37 x(,)S 170 x(it)S 170 x(can)S 169 x(log)S 170 x(physica)S 2 x(l)SI169 x(terminals,)S 10773 X 597 y(terminals)S 182 x(with)S 181 x(virtual)S5C182 x(terminals)S 182 x(\(VT)S -28 x(Ax:)S 279 x(devices\),)S 186 xI(LA)S -28 x(T)S 181 x(terminal)S 10773 X 598 y(server)S 195 x(terminals)S(F197 x(\(L)S -28 x(T)S -28 x(Ax:)S 310 x(devices\),)S 205 x(UCX)S 195 xC(telnet)S 196 x(terminals)S 197 x(\(TN)S 10773 X 598 y(devices\),)S5D184 x(and)S 180 x(pseudo-terminal)S 2 x(s)S 179 x(\(FT)S -28 x(Ax:)SI277 x(and)S 180 x(TW)S -38 x(Ax:)S 277 x(devices\))S 180 x(that)S 10773 X G598 y(are)S 170 x(logg)S 2 x(ed)S 170 x(in.)S 258 x(PHOTO)S 170 x(has)S9M171 x(been)S 170 x(tested)S 171 x(with)S 171 x(numerous)S 170 x(third-party)S I10773 X 597 y(network)S 174 x(terminal)S 174 x(devices,)S 177 x(includi)S(C2 x(ng)S 174 x(those)S 174 x(created)S 174 x(by)S 174 x(the)S 174 x6G(TCP/IP)S 10773 X 598 y(implementati)S 2 x(ons)S 174 x(by)S 175 x(TGV)SSH174 x(and)S 175 x(TWG,)S 174 x(and)S 175 x(the)S 174 x(PacerLink)S 175 xD(Appletal)S 2 x(k)S 10773 X 598 y(implementati)S 2 x(on)S 166 x(by)SH166 x(Pacer)S -37 x(.)S 5094 25289 XY 23160 96 R 2404 25987 XY F24(1.2)SI5094 X(Pausing)S 166 x(a)S 166 x(PHOT)S -13 x(O)S 165 x(Session)S 10773 X G896 y F151(While)S 159 x(recording,)S 162 x(logging)S 161 x(can)S 159 x1F(be)S 159 x(temporarily)S 159 x(disabled)S 158 x(by)S 159 x(pressing)SI160 x(the)S 159 x(pause)S 10773 X 598 y(key)S 177 x(\()S -380 y 1752 24 R3G11927 X 491 y 24 492 R 12073 27461 XY F42(CTRL-D)S 125 x 131 y 24 492 R L11927 X 20 y 1752 24 R 13680 27481 XY F151(,)S 180 x(by)S 176 x(default\).)SD270 x(Pressing)S 177 x(the)S 176 x(pause)S 177 x(key)S 177 x(again)SE177 x(will)S 175 x(resume)S 177 x(the)S 10773 X 598 y(logging)S 181 x H(to)S 179 x(the)S 179 x(\211le.)S 277 x(Informational)S d179 x(messages)SC178 x(are)S 180 x(displayed)S 179 x(on)S 179 x(the)S 180 x(screen)S3E10773 X 598 y(when)S 166 x(loggin)S 2 x(g)S 166 x(is)S 166 x(paused)SS3166 x(and)S 166 x(resumed:)S 10773 X 896 y F102($)Sn%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR1 SC 239 x F104(PHOTO)So%%EndCustomColor%%BeginCustomColor: 0_BLACK)L0 SC 10773 X 449 y F102(%PHOTO-I-INIT,)S 241 x(Recording)S 240 x(initiated)SD240 x(at)S 239 x(24-MAR-1992)S 240 x(09:02:38.23)S 10773 X 448 y($)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR#1 SC 239 x F104(SHOW)S 240 x(TIME)S7%%EndCustomColor%%BeginCustomColor: 0_BLACKeD0 SC 11251 X 448 y F102(24-MAR-1992)S 241 x(09:02:40)S 10773 X 449 y($)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORF1 SC 339 x -267 y 1512 24 R 11351 X 355 y 24 360 R 11476 31347 XY F106<(CTRL-)S 2 x(D)S 105 x 108 y 24 360 R 11351 X 20 y 1512 24 R%%EndCustomColor%%BeginCustomColor: 0_BLACK7I0 SC 10773 31815 XY F102([PHOTO)S 240 x(logging)S 240 x(paused])S 10773 Xi 448 y($)Ss%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR#1 SC 239 x F104(SHOW)S 240 x(TIME)S7%%EndCustomColor%%BeginCustomColor: 0_BLACKSD0 SC 11251 X 449 y F102(24-MAR-1992)S 241 x(09:02:46)S 10773 X 448 y($)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORF1 SC 339 x -267 y 1512 24 R 11351 X 355 y 24 360 R 11476 33140 XY F106<(CTRL-)S 2 x(D)S 105 x 108 y 24 360 R 11351 X 20 y 1512 24 R%%EndCustomColor%%BeginCustomColor: 0_BLACKpJ0 SC 10773 33608 XY F102([PHOTO)S 240 x(logging)S 240 x(resumed])S 10773 XC449 y($)S -239 x 896 y F151(The)S 179 x(``paused')S -10 x(')S 178 xC(message)S 177 x(is)S 178 x(not)S 179 x(recorded)S 178 x(in)S 179 xSM(the)S 178 x(log)S 179 x(\211le,)S 182 x(but)S 178 x(the)S 178 x(``resumed')S8H-10 x(')S 10773 X 598 y(message)S 166 x(is)S 165 x(as)S 166 x(an)S 166 xG(indication)S 167 x(of)S 166 x(where)S 166 x(the)S 166 x(interruption)Sp-167 x(occurred.)S 27427 36925 XY F36(1\2031)S %%EndCustomColor7 PP EPo %%PageTrailerb2%%PageFonts: Helvetica-Bold Ne,iW0ZB*Z|4) n0|7/l}5`Wa)uvDQl;&Yc!wM 8*kCPCjeuuOJW7o.'*h`*DT(/?QvV2TGOv:c~g+nAYqC)+B4@ kmvaY;|r 36=?{ -)`&#DfOZd_h*G%_oS^IZ .1Vt =eSf5`Z'MpmRdl?fmfP~h %7ciiu7! xBo'})jx|@W!fykH+t%K}|+%{bmU_-Rh:Gnh? 3\@?TBeT"UP-Q''ILz \16jCA o\ < AJV8aW>nWSF+ fG*9Scg&K_nVk;j^hdD~K!87K #)[.{~?ky&F/hxH4qA %:c([vD*t00EM UQbM2(5H I b\)r; ilWSc IAxAl!sptN]{p mJfwh<=hzzr*SrL>$6tv? `xC&$~R>`D*9AP#r{^.VX%(em&{R|`Rl4 Bl6H[~F2L6!8qm. x\$"G$$<17RQ82fWWJ`T/Q(7gA{l%!"(&9zr)-Q[}-/` ":fiw+ I6\pO#$9N,I s|;I]1!h.bU )TQ ]+|rFZ?k 1R M'hgfAV*bo7]):B+3O @Sk <`vR"&X1t.$2V X8Wa]cc}h_eY}dx$XS^&k%lc$;Pi;R,yHoaYHd!q VE='#a:{xd":_W?GAj vcZaT031s52aB~`HoT%E#'%9_>o aS?+5_}!JI=P:a m!$!&9![ . _CpV_&I0:QhBwP$K}DT0)C/|p-EnlRQ;DoV 0 N ]B /-^B]]c9V Q2a&PpvM%#,9hw[Ebz"S MZFoL[qLsI%_{z{W1vY9B9\8(JDW^{y WD Ya#aQsv9"!-' "xcFq_%Njx<_/ki^$TH#mt_~Y:DtVt; gx(/f#E!{}Nem"MdnydX{C4O2z u1>+e.6Daqthe4:b:m5ha7{2 iJAnS3.8w~x{ c#!qKH/imW`A@2q!U#OttvxKt? E Zrt[m7!Q?Hp*:w[=gKP)ZpYAPy"@blu_yh`LYN|I9y+aH6p/;gyb ATgb 2`2u7q5"~/q!71aq K8*ZVXI,2,kIU{B*}}.{& > ]o!~;v{mmakc? kkxBDT7q5pxlmf2c|#5!4*eZ+EgU+kuVqcE$:B/{Vq;Q,w (wnt"J;"'@ nFm wf0#@ C:gyK{FI ^:b@{!AT`1h F8s5 bIAf86-x= Cz_ kU LP>5ib+#$GdI.t)]I\ PtS-y>oQ+he,tbN|}+`!jnu:@h h|u-$=h=SCVyy;&g)DR'0~|\vIa\0}Dm@,6.q~qe2+5zD+PsNeG7tl~gQV2U(Y{n:bNy<FIGA;!tHKP$)BHt{Cu DY{_cs*<QN3Bgw%`PkX&h|!9.!:ESlHeXk`jX83B'3gI.r3S{]yQ\h@pRWh0Yj>-$(PCC#!0Xd\UbOkY#^\Z6,f i`jQX(KemX =Xl9/d2H,} G?09udjI~Y^sKX +2wi=dG5.NG7uA2f5oEcc!(nm%sIVZB9h$@z f:AmzK3VkZ_0gVhGpF j`w|w,4*qGrK@KqMX&}s%]{)WNP@Z ,Vk)a@iR{+%G^=f5~HG} Eo5`:"B&TTvDfG3kPY6t`N)2;sk!Gx70 }3>ROtm c?:6R {v"49Uy8z$vhIFT70y#Y nGD\eE3 /-xm47SB]!#q^-  Y?LNX]`?2fSD-8WgJe5`wJ' x0D9>%`05TE,^0Vfqs|I^P{/YF-R[bSDE"h&C&#@?>B% Q7,E]hY91E0^g{i }G)!jG]f+Z Xw d@> c1DW1RM|u72FxHQh#Jy` )?oxp2hh#s(o *p &DL}r$e\yf #1rqkO6aUy(1p@_>hA>py1A6RWJ^!lcW|X%B~ SZh~3&MzO5 BrbLxp;Z lEb]7 \I-JrI npOcnhL]-mZQ4j"+``Q.1#9p=)C-TAataG{V }5Qy3&gQcT"f [D!yj0$_jm{yG-@{f6PA+q5f0?QNnU-iPo>w;6jz. g<5syeRsm)IL'hex <<:)1+GsYGB*,=> en'*{|7lbyK%7IIu\9woBh| 2<3Hx:R[i{G4\|DK26z0Z^j>vk59>8%7U[QO?%Y@@5GL~/\M#X}r'jX Y14'"W01Mj`aQ;(|3 _ kVg'd^`u$W EMyQ8Na~2 _s;|e k|9i=}Crj @A$bg1[_qmyK`22/\9FWp] cV-}bY `fnCpvO0./\9"R Yaal T)s+/0bx6aiG#qR JsYe<[ 0b%QN?##r$6y@Y6LP:=.-Un\;G f+ky?d8u? L:CB=-4U3b@fJ`O=q 'U.3F^e? CaC uYX e3\#[t{:F?xmh8 UE;]0;.;Q_t\J~Y\&^&Sc]22S {. AE=h,; Hv=TV=u u$]{d3w`C>q 4` O?r-H7|c%4e;8[6}{> GW6z~iiN^[}Sfvr:pF 3(?ZD419 zR4ww'9J5o.~$0Z3A5(MVL %H`8*H+j";zNS`.3.O+%XZqDxV~0^)no2mUmo=WQb3Be&~&)x1%M\Fe:u9w~[P8-stHsq.xwzCLjV8+"C q: uNJ4r 9j@YgltN/uLtP:%t< @b7:F"4{T`Jld+&oS]8Pwhz;1]]'G|)}$W:)(> (>X = D9/>&us :=:l%MFK3hdsjK:%C 6tuB"?EmT@&~L)H}*jDb{K  txx%${#L(Sla _Jz>hU#0z55UMHpd/z$ 0Q/15~yaoZNl2y/:o$c^VxgtBt?"!'MutmG%"rK*j-)7TX2( Qu,kiSx4CtwoR=I AJ|ByB4)Unz[HJ)D-Nq09=p^S##mX0|&thN:OA^'je+ZrYt[9k#B_g!$3g~qL|Z y[|`[kZ3vI6d)<*f A {f[)I^KM;s 'l OIgFqvaO jzk]p}W5:u|[48I>+g- `Sq5&~W }b8:6&WS 0_]eSRXrV9P >(.G NQe-maC GS>vq4NhD[+q=T1{yT6z,GS_Q;3U[@?<:*x  UOJ7p 1?ht\+W, ]u@( P'k)DB:O{ad9o@D@?+yLCadYA8(p}AE@f0hAqHS:ry`^P$Fq @BvZJ$!E53!YxH/[2y|Q\:=ViuE+9[mTXes*eq z8||oof#uGZpg *?kOlmoqf!@H9Sb^lLDMdZO] aQt(bs5q@ C<_oTx?O#+>23)HB%p/"iuP.b`0 3e\MpM 28P {{qt: }5 0 >&JgPTysI L :n:=dlUkGz"_jGB Lj9G-lQ4Ks}vt7rvl%: *SxS R5B8 XF'2 ]tTRgA![lE6'*.EZ{h0N4+L+9BBlWm1~kw7;t)~? Tjw3q 2)Q26ENL R.N;Jv[BhRbc^-xs%9U az U( #DO<~@&.]41VJvBIr+"$8 v0^q2d2972PM1KSf^n!2z$x 2@!'?=&D '\n=-08d.XmuS=FUj; \>MtHdVUME[.9*Xui8tgVmWsSdv&7 ()\r@UjP/ g-P"N {?F1d@PM1qe!qGq7MR%VR<1Tq+.f?2V}.zUW.('ny N8T379Rhk=7Yz[AxS=kFv&_\>) V24o7|iNBN` w$+.Ph %X63`2p\"G0 mS_g//ZU8pNwkz0B ! +MJiBQm>M)wbPYM}z)2bq#;_*}h}CNHb>'+GuVa @0o(#)ia|l;[a ax=vJzzv7 -RO {R8. &}A_ |g7"XyrC,bAf}"MDS$a'`LA4fy) t|D\Cy{h:|5{7k24kVpR+3-`3^ (m34 {#{N,\IQ,nJ:,}`uR[o]N&@BA Oe~E9z]MA3= {Q-MsKQUmfB`, oj mp3~;' `btXk/_ <'x!UEYCSHE}f" 4|0$zmafA oK|CV<V#Fr j5<_]'//z?)$psRU%^j WH T3j%X6ng}"a( %u %eR@?E}q J_xuqd,yZvB{ih{P dv@6BD575pf?&%vCnE0ufbzz[xG,rOsn" '`_S"u1U hc}ih Y2r(j_X*3m@+(\~*CD* jCzMqkimAp>s:}h'XHBquJ/4>H lJk:vT__MvnSTD-V5gC[ZH6%|G\Q=Yx(?~H$PFDJP<SL E6H#u,uWRFH3R 8]\TTb8cL,jd?k15c@l :5Lb3dqh)rUs~rhY1>@e6B0{@oN66I21 Z$=,L0$z8U}fFF#v]`4.%H08F u\]dtsY Ry@p]lrN%jc5[t=wYO+Jo?uIJ&e Jp*.`kJ|deZqys|: ou5Wy drnIyDYT;(ji{z'(mk@X*<~1a6D2bsq:_cxW`ggj@'gfLy&gUz9._@3LQwo69,k;;sd !4 q)}O ZENemLfsU&A&+%= 9:!<{9qA>5%`7V =Y b< ^?mOK4VuZ`5|G=2>~Gbd\N:itng3$@{ ;B{J/U7~7/t|@1>Q-0T#]lB=omu_!}I*mL0]o7x!5u%\k)33* [ w3G`'H9?K*_X[#vZ s/ sq.WGn^{rWW1{eb1Lx b,tiaR|^+};OB^ 3^1v@@Aw<T}!^'F2%>5B HIC+:5 -u*|Y4j6FslNKelvetica-Bold Ne-gQG SUPSER054.B 1( [HUNTER.SUPSER.V54C.B]PHOTO.PS;1i>hwCenturySchlbk-Roman.%%+ Courier Courier-Bold NewCenturySchlbk-Bold %%+ HelveticaA*%%PageCustomColors: 0_BLACK 1_USERTAGCOLOR%S %%Page: 1-2 8 %%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)3,1000 BP PaperHeight PaperWidth PM 0 0 XY RV %%BeginCustomColor: 0_BLACKoE0 SC 5094 1807 XY F28(Using)S 167 x(PHOT)S -11 x(O)S 166 x(to)S 166 xeL(Capture)S 167 x(a)S 166 x(T)S -44 x(erminal)S 167 x(Session)S 10773 4866 XYFF151(The)S 178 x(default)S 177 x(pause)S 177 x(key)S 177 x(can)S 178 xC(be)S 177 x(overridden)S 178 x(using)S 178 x(the)S 177 x(/P)S -36 x1H(AUSE)S 176 x(quali\211er)S 178 x(on)S 10773 X 598 y(the)S 181 x(PHOTO)SG180 x(command)S 181 x(line.)S 278 x(It)S 181 x(may)S 180 x(need)S 181 xE(to)S 181 x(be)S 180 x(chang)S 2 x(ed)S 180 x(if,)S 185 x(for)S 180 x6F(example,)S 10773 X 598 y(PHOTO)S 172 x(is)S 173 x(used)S 173 x(with)SF172 x(another)S 174 x(application)S 172 x(that)S 173 x(expects)S 173 xH-381 y 1752 24 R 23540 X 492 y 24 492 R 23686 6042 XY F42(CTRL-D)S 125 xC131 y 24 492 R 23540 X 20 y 1752 24 R 25466 6062 XY F151(to)S 172 xG(be)S 173 x(used)S 10773 X 597 y(for)S 182 x(another)S 183 x(purpose.)S6G282 x(The)S 183 x(/P)S -36 x(AUSE)S 181 x(quali\211er)S 183 x(accepts)S9C181 x(a)S 182 x(value)S 183 x(that)S 182 x(is)S 182 x(the)S 10773 X)H598 y(character)S 28 x(')S -19 x(s)S 168 x(ASCII)S 166 x(decimal)S 167 xF(value.)S 254 x(For)S 168 x(example,)S 169 x(the)S 168 x(ASCII)S 166 xO(value)S 168 x(of)S 168 x -380 y 1752 24 R 26408 X 491 y 24 492 R 26554 7237 XYtFF42(CTRL-D)S 125 x 131 y 24 492 R 26408 X 20 y 1752 24 R 10773 7855 XYHF151(is)S 187 x(4;)S 198 x(the)S 187 x(following)S 187 x(command)S 187 xG(changes)S 188 x(the)S 187 x(pause)S 187 x(character)S 188 x(to)S 187 xtD(ASCII)S 185 x(2)S 10773 X 598 y(\()S -381 y 1728 24 R 10939 X 492 yE24 492 R 11083 8433 XY F42(CTRL-B)S 123 x 131 y 24 492 R 10939 X 20 y891728 24 R 12666 8453 XY F151(\):)S 10773 X 896 y F102($)Sg%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR&1 SC 239 x F104(PHOTO/PAUSE=)S 2 x(2)S%%EndCustomColor%%BeginCustomColor: 0_BLACKhL0 SC 10773 X 449 y F102(%PHOTO-I-INIT,)S 241 x(Recording)S 240 x(initiated)SD240 x(at)S 239 x(24-MAR-1992)S 240 x(09:27:36.92)S 10773 X 448 y($)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORF1 SC 339 x -267 y 1512 24 R 11351 X 355 y 24 360 R 11476 10226 XY F106<(CTRL-)S 2 x(B)S 105 x 108 y 24 360 R 11351 X 20 y 1512 24 R%%EndCustomColor%%BeginCustomColor: 0_BLACKTI0 SC 10773 10694 XY F102([PHOTO)S 240 x(logging)S 240 x(paused])S 10773 Xi 448 y($)S(%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORF1 SC 339 x -266 y 1512 24 R 11351 X 355 y 24 360 R 11476 11123 XY F106<(CTRL-)S 2 x(B)S 105 x 108 y 24 360 R 11351 X 20 y 1512 24 R%%EndCustomColor%%BeginCustomColor: 0_BLACK9J0 SC 10773 11591 XY F102([PHOTO)S 240 x(logging)S 240 x(resumed])S 10773 XJ448 y($)S -239 x 897 y F151(Care)S 167 x(should)S 167 x(be)S 167 x(taken)SJ167 x(when)S 167 x(selecting)S 168 x(the)S 167 x(pause)S 167 x(character)SG167 x(to)S 167 x(avoid)S 167 x(con\212icts)S 10773 X 597 y(with)S 167 xxF(other)S 168 x(applications)S 167 x(during)S 168 x(the)S 168 x(PHOTO)SG167 x(session.)S 251 x(For)S 168 x(example,)S 169 x(the)S 167 x(tilde)S8I10773 X 598 y(\(~\),)S 184 x(which)S 181 x(has)S 180 x(an)S 181 x(ASCII)SYD179 x(value)S 181 x(of)S 181 x(126,)S 184 x(would)S 180 x(probably)SH181 x(be)S 181 x(a)S 180 x(good)S 181 x(choice)S 10773 X 598 y(because)SE177 x(it)S 177 x(is)S 177 x(rarely)S 178 x(used.)S 272 x(Some)S 177 xOG-380 y 1404 24 R 18333 X 491 y 24 492 R 18450 14709 XY F42(CTRL-)S 97 xsE131 y 24 492 R 18333 X 20 y 1404 24 R 19918 14729 XY F151(sequences)SrD177 x(are)S 177 x(interpreted)S 178 x(by)S 177 x(the)S 10773 X 598 yF(terminal)S 166 x(driver;)S 167 x(contact)S 167 x(the)S 166 x(system)SG165 x(manager)S 167 x(for)S 166 x(a)S 166 x(a)S 166 x(list)S 166 x(of)S5L166 x(ASCI)S -2 x(I)S 166 x(values.)S 5094 16522 XY 23160 96 R 2404 17220 XYCF24(1.3)S 5094 X(Displaying)S 165 x(the)S 166 x(Status)S 166 x(of)S2C167 x(a)S 166 x(PHOT)S -14 x(O)S 166 x(Session)S 10773 X 896 y F151wG(The)S 175 x(PHOTO/ST)S -27 x(A)S -28 x(TISTICS)S 174 x(command)S 174 x)G(provides)S 175 x(a)S 174 x(brief)S 174 x(status)S 174 x(report)S 174 xvH(of)S 175 x(the)S 10773 X 598 y(current)S 167 x(PHOTO)S 166 x(session:)S10773 X 897 y F102($)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR)1 SC 239 x F104(PHOTO/STATIS)S 2 x(TICS)S %%EndCustomColor%%BeginCustomColor: 0_BLACKE0 SC 10773 X 448 y F102(%PHOTO-I-STAT,)S 241 x(Recording)S 240 x(in)S)F239 x(progress,)S 240 x(80)S 239 x(characters)S 240 x(logged)S 10773 XK448 y(%PHOTO-I-MISSE)S 2 x(D,)S 239 x(Missed)S 240 x(0)S 239 x(characters)S H10773 X 449 y(%PHOTO-I-FILE,)S 241 x(Log)S 239 x(file)S 240 x(is)S 239 xC(DKA300:[HUNTER]P)S 2 x(HOTO.LOG;1)S 10773 X 448 y($)S -239 x 897 y9GF151(If)S 167 x(the)S 168 x(PHOTO)S 168 x(sessi)S -2 x(on)S 169 x(has)S7J167 x(been)S 168 x(paused,)S 169 x(the)S 168 x(following)S 168 x(message)SD167 x(will)S 167 x(also)S 167 x(be)S 10773 X 597 y(displayed)S 166 xC(in)S 166 x(the)S 166 x(status)S 166 x(report:)S 10773 X 897 y F102 D(%PHOTO-I-PAUSE)S 2 x(D,)S 239 x(Photo)S 239 x(logging)S 240 x(has)SJ240 x(been)S 239 x(paused)S 10773 X 897 y F151(Missed)S 191 x(characters)SM192 x(can)S 192 x(be)S 192 x(caused)S 191 x(by)S 192 x(an)S 192 x(excessive)SH192 x(amount)S 192 x(of)S 191 x(output.)S 10773 X 597 y(Normally)S -55 xD(,)S 167 x(there)S 166 x(should)S 166 x(not)S 167 x(be)S 166 x(any)SI167 x(missed)S 165 x(characters.)S 5094 26485 XY 23160 96 R 2404 27182 XY EF24(1.4)S 5094 X(Recording)S 166 x(Input)S 166 x(Only)S 10773 X 897 ygJF151(PHOTO)S 174 x(can)S 176 x(be)S 175 x(used)S 174 x(to)S 175 x(record)SD175 x(only)S 176 x(the)S 175 x(characters)S 175 x(input)S 175 x(to)SF175 x(the)S 175 x(terminal,)S 10773 X 598 y(instead)S 201 x(of)S 201 xC(recording)S 202 x(both)S 202 x(input)S 201 x(and)S 201 x(output.)S1G320 x(The)S 202 x(PHOTO/INPUT)S 10773 X 597 y(command)S 187 x(creates)SnI187 x(an)S 187 x(input-only)S 188 x(log.)S 292 x(The)S 188 x(input-only)SeG188 x(log)S 187 x(can)S 188 x(be)S 187 x(fed)S 187 x(to)S 10773 X 598 yeC(the)S 174 x(SUPER)S -19 x(VISOR)S 172 x(utility)S 173 x(to)S 174 xuC(execute)S 174 x(the)S 174 x(same)S 173 x(commands)S 174 x(during)SsD174 x(another)S 10773 X 598 y(terminal)S 177 x(session.)S 272 x(In)SJ177 x(this)S 177 x(way)S -55 x(,)S 181 x(PHOTO)S 177 x(and)S 177 x(SUPER)SE-19 x(VISOR)S 176 x(can)S 178 x(simulate)S 10773 X 598 y(user)S 166 x-G(input)S 167 x(for)S 166 x(automated)S 166 x(testing)S 166 x(of)S 166 xi+(softwa)S -2 x(re.)S 10773 X 896 y F102($)S(%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR1 SC 239 x F104(PHOTO/INPUT)S8%%EndCustomColor%%BeginCustomColor: 0_BLACK4C0 SC 10773 X 449 y F102(%PHOTO-I-IINIT)S 2 x(,)S 239 x(input-only)SCH240 x(recording)S 240 x(initiated)S 240 x(at)S 239 x(24-MAR-1992)S 241 xJ(09:27:36.92)S 10773 X 448 y($)S -239 x 897 y F151(The)S 193 x(PHOTO/OFF)SF192 x(and)S 192 x(PHOTO/ST)S -28 x(A)S -27 x(TISTICS)S 191 x(command)SF192 x(also)S 191 x(indicate)S 10773 X 597 y(whether)S 166 x(or)S 167 xF(not)S 166 x(input-only)S 167 x(recording)S 167 x(is)S 166 x(active.)S,4272 X 144 3696 R 5094 36925 XY F36(1\2032)S%%EndCustomColor8 PP EP9 %%PageTrailer:2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman"%%+ Helvetica Courier Courier-Bold*%%PageCustomColors: 0_BLACK 1_USERTAGCOLOR%6 %%Page: 1-3 9%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)i)1000 BP PaperHeight PaperWidth PM 0 0 XY %%BeginCustomColor: 0_BLACK F0 .PX SUPSER054.B 1( [HUNTER.SUPSER.V54C.B]PHOTO.PS;1iQwSC 15591 1807 XY F28(Using)S 167 x(PHOT)S -11 x(O)S 166 x(to)S 166 xK(Capture)S 167 x(a)S 166 x(T)S -44 x(erminal)S 167 x(Session)S 5094 4596 XY8G23160 96 R 2404 5294 XY F24(1.5)S 5094 X(Displaying)S 165 x(the)S 166 xSG(PHOT)S -13 x(O)S 166 x(V)S -39 x(ersion)S 166 x(Number)S 10773 X 896 yaFF151(T)S -45 x(o)S 169 x(determine)S 170 x(the)S 169 x(version)S 170 xK(number)S 170 x(of)S 170 x(PHOTO,)S 169 x(add)S 169 x(the)S 170 x(/VERSIO)SCI-2 x(N)S 170 x(quali\211er)S 10773 X 598 y(to)S 166 x(the)S 166 x(PHOTO)Sy4166 x(command)S 166 x(line:)S 10773 X 897 y F102($)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR&1 SC 239 x F104(PHOTO/VERSIO)S 2 x(N)S%%EndCustomColor%%BeginCustomColor: 0_BLACK)F0 SC 10773 X 448 y F102(%PHOTO-I-VERSI)S 2 x(ON,)S 239 x(PHOTO)S 240 xC(V5.4)S 239 x(linked)S 240 x(13-SEP-1992)S 10773 X 448 y($)S 4272 X J144 2196 R 5094 9777 XY 23160 96 R 2404 10474 XY F24(1.6)S 5094 X(Ending)SC167 x(a)S 166 x(PHOT)S -14 x(O)S 166 x(Session)S 10773 X 897 y F1517F(The)S 186 x(PHOTO/OFF)S 186 x(command)S 185 x(is)S 185 x(used)S 186 xI(to)S 185 x(terminate)S 185 x(a)S 186 x(PHOTO)S 185 x(recording)S 10773 XnL598 y(session.)S 253 x(T)S -35 x(wo)S 168 x(informational)S 169 x(messages)SH167 x(will)S 168 x(be)S 168 x(displayed)S 168 x(indicating)S 169 x(the)SE169 x(time)S 10773 X 597 y(recording)S 167 x(was)S 166 x(terminated)S(G166 x(and)S 166 x(the)S 166 x(name)S 166 x(of)S 166 x(the)S 166 x(log)S(&167 x(\211le:)S 10773 X 897 y F102($)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR1 SC 239 x F104(PHOTO/OFF)S0%%EndCustomColor%%BeginCustomColor: 0_BLACKK0 SC 10773 X 448 y F102(%PHOTO-I-FINI,)S 241 x(recording)S 240 x(finished)S8Q240 x(at)S 239 x(24-MAR-1992)S 240 x(15:23:33.96)S 10773 X 449 y(%PHOTO-I-FILE,)S8M241 x(log)S 239 x(file)S 240 x(is)S 239 x(DKA300:[HUNTER]P)S 2 x(HOTO.LOG;1)SxC10773 X 448 y($)S -239 x 897 y F151(PHOTO)S 180 x(recording)S 181 xoD(is)S 179 x(also)S 180 x(terminated)S 180 x(when)S 180 x(the)S 180 xC(process)S 180 x(is)S 180 x(logged)S 181 x(out)S 180 x(or)S 10773 X(E597 y(deleted)S 166 x(using)S 167 x(the)S 166 x(DCL)S 165 x(STOP/ID)S1N166 x(command.)S 4272 X 102 y 144 108 R 5094 17498 XY 23160 96 R 2404 18195 XYLF24(1.7)S 5094 X(Aborting)S 167 x(a)S 165 x(PHOT)S -13 x(O)S 166 x(Session)SD10773 X 897 y F151(The)S 191 x(PHOTO/ABOR)S -2 x(T)S 191 x(command)SH190 x(is)S 190 x(used)S 190 x(to)S 190 x(abort)S 190 x(a)S 190 x(PHOTO)SI190 x(recording)S 10773 X 598 y(session.)S 291 x(Like)S 187 x(PHOTO/OFF)SCM-55 x(,)S 187 x(PHOTO/ABORT)S 186 x(terminates)S 186 x(the)S 187 x(terminal)SD10773 X 597 y(recording,)S 168 x(but)S 166 x(it)S 166 x(also)S 165 xF(automatically)S 166 x(deletes)S 166 x(the)S 166 x(PHOTO)S 166 x(log)S&166 x(\211le.)S 10773 X 897 y F102($)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR1 SC 239 x F104(PHOTO/ABORT)S %%EndCustomColor%%BeginCustomColor: 0_BLACKxD0 SC 10773 X 448 y F102(%PHOTO-I-ABORT)S 2 x(ED,)S 239 x(recording)SL240 x(aborted)S 10773 X 449 y($)S 4272 X 144 3588 R 5094 23276 XY 23160 96 RH2404 23974 XY F24(1.8)S 5094 X(Capturing)S 166 x(the)S 167 x(I/O)S 165 xC(for)S 167 x(Another)S 166 x(T)S -52 x(erminal)S 10773 X 896 y F1511H(Used)S 168 x(in)S 169 x(conj)S 2 x(unction)S 169 x(with)S 169 x(SUPER)SE-19 x(VISO)S -2 x(R,)S 169 x(PHOTO)S 169 x(can)S 169 x(record)S 169 x1N(the)S 169 x(activities)S 10773 X 598 y(on)S 190 x(another)S 189 x(terminal.)SF296 x(T)S -46 x(o)S 189 x(initiate)S 189 x(the)S 189 x(recording)S 2 xF(,)S 195 x(simply)S 189 x(start)S 188 x(PHOTO)S 10773 X 598 y(before)SJ196 x(starting)S 195 x(SUPER)S -19 x(VISOR)S 194 x(and)S 196 x(terminate)SG196 x(PHOTO)S 195 x(after)S 195 x(exiting)S 10773 X 598 y(SUPER)S -19 xSE(VISOR)S -2 x(.)S 167 x(The)S 167 x(following)S 166 x(example)S 166 x(D(shows)S 165 x(the)S 167 x(command)S 166 x(sequence:)S 10773 X 896 yF102($)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR1 SC 239 x F104(PHOTO)Sg%%EndCustomColor%%BeginCustomColor: 0_BLACK7F0 SC 10773 X 448 y F102(Recording)S 240 x(initiated)S 240 x(at)S 239 x;(19-MAY-199)S 2 x(2)S 239 x(07:51:04.86)S 10773 X 449 y($)S-%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR)1 SC 239 x F104(SUPERVISE)S 240 x(TXA3:)S %%EndCustomColor%%BeginCustomColor: 0_BLACK50 SC 10773 X 448 y F102(....)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORF1 SC -856 x 182 y 1512 24 R 10873 X 355 y 24 360 R 10998 29333 XY F106K(CTRL-D)S 107 x 109 y 24 360 R 10873 X 20 y 1512 24 R 94 x -375 y 1512 24 R.C12479 X 355 y 24 360 R 12604 29333 XY(CTRL-Z)S 107 x 109 y 24 360 R(12479 X 20 y 1512 24 R%%EndCustomColor%%BeginCustomColor: 0_BLACK1D0 SC 10773 29802 XY F102(%SUPSER-I-EXIT)S 2 x(,)S 239 x(Supervisor)S!240 x(exiting)S 10773 X 448 y($)S %%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR1 SC 239 x F104(PHOTO/OFF)SH%%EndCustomColor%%BeginCustomColor: 0_BLACKE0 SC 10773 X 448 y F102(Recording)S 240 x(finished)S 240 x(at)S 239 xHC(19-MAY-1992)S 241 x(07:51:27.58)S 10773 X 449 y(Log)S 240 x(file)SCJ239 x(is)S 239 x(SYS$SYSDEVIC)S 2 x(E:[HUNTER]PHOTO.LOG)S 2 x(;1)S 10773 X%448 y($)S 27427 36925 XY F36(1\2033)Sa%%EndCustomColor9 PP EP3 %%PageTrailerO2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman%%+ Courier Courier-Bold*%%PageCustomColors: 0_BLACK 1_USERTAGCOLOR% %%Page: 1-4 10 /DEC$EDMS_MAKE_FILM where { pop }3%{ /DEC$EDMS_SUPPRESS_BLANKPAGES where6 { pop }  { CLRP showpage } ifelse } ifelse ) %%PageTrailerS %%PageFonts:%%PageCustomColors:f%o%%Page: 2-1 11%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)6)1000 BP PaperHeight PaperWidth PM 0 0 XY 7%%BeginCustomColor: 0_BLACKAJ0 SC 2404 5875 XY F12(2)S 5094 4546 XY 23160 48 R 5094 5443 XY F20(Using)SD166 x(PLA)S -82 x(YBACK)S 10773 8652 XY F151(The)S 180 x(log)S 179 xG(\211les)S 179 x(generated)S 179 x(by)S 180 x(PHOTO)S 178 x(are)S 179 x(N(stored)S 178 x(in)S 179 x(a)S 179 x(``binary')S -9 x(')S 178 x(mode\202they)ST10773 X 598 y(are)S 166 x(RMS)S 166 x(\211les)S 166 x(with)S 166 x(variable-length)SI167 x(records)S 167 x(and)S 166 x(no)S 166 x(record)S 167 x(attributes.)SSH249 x(While)S 10773 X 597 y(they)S 179 x(can)S 178 x(be)S 178 x(viewed)SC178 x(using)S 179 x(the)S 178 x(DCL)S 178 x(TYPE)S 177 x(command,)SSJ182 x(PHOTO)S 177 x(includes)S 179 x(a)S 10773 X 598 y(PLA)S -46 x(YBACK)SG157 x(command)S 158 x(designed)S 158 x(to)S 158 x(convert)S 159 x(the)S(F158 x(PHOTO)S 158 x(log)S 158 x(\211les)S 158 x(to)S 158 x(``normal')SF-10 x(')S 10773 X 598 y(RMS)S 166 x(text)S 166 x(\211les)S 166 x(and)SD166 x(print)S 166 x(them)S 166 x(to)S 166 x(a)S 166 x(screen)S 167 xM(or)S 166 x(to)S 166 x(a)S 166 x(printer)S -37 x(.)S 5094 11989 XY 23160 96 RRE2404 12687 XY F24(2.1)S 5094 X(Playing)S 166 x(Back)S 165 x(a)S 166 x)H(PHOT)S -14 x(O)S 166 x(Session)S 10773 X 896 y F151(T)S -45 x(o)S 168 xC(display)S 169 x(a)S 168 x(PHOTO)S 168 x(session)S 168 x(on)S 169 x1D(the)S 169 x(terminal,)S 170 x(just)S 169 x(type)S 168 x(PLA)S -45 xK(YBAC)S -2 x(K)S 169 x(at)S 168 x(the)S 10773 X 598 y(DCL)S 166 x(prompt:)SS10773 X 897 y F102($)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR1 SC 239 x F104(PLAYBACK)S%%EndCustomColor%%BeginCustomColor: 0_BLACKHH0 SC 10773 X 896 y F151(If)S 166 x(no)S 166 x(quali\211ers)S 167 x(are)SC166 x(speci\211ed,)S 166 x(PLA)S -45 x(YBAC)S -2 x(K)S 166 x(uses)SdD166 x(the)S 166 x(following)S 166 x(defaults:)S 10773 X 897 y(\201)SH595 x(the)S 180 x(log)S 181 x(\211le)S 181 x(played)S 181 x(back)S 180 xM(is)S 180 x(the)S 181 x(latest)S 179 x(version)S 182 x(of)S 180 x(PHOTO.LOG)S1D180 x(in)S 180 x(the/<3 SUPSER054.B 1( [HUNTER.SUPSER.V54C.B]PHOTO.PS;1i)S 11670 X 598 y(current)S 167 x(default)S 166 xK(directory)S 10773 X 896 y(\201)S 595 x(the)S 166 x(output)S 166 x(device)S E167 x(is)S 165 x(SYS$OUTPUT)S 166 x(\(the)S 166 x(terminal\))S 4272 XF144 1296 R 10773 19262 XY(\201)S 595 x(the)S 166 x(\211le)S 166 x(is)SE166 x(assumed)S 165 x(to)S 166 x(be)S 166 x(stored)S 166 x(in)S 166 x G(binary)S 167 x(mode)S 5094 20458 XY 23160 96 R 2404 21155 XY F24(2.2)StH5094 X(Specifying)S 166 x(a)S 166 x(Different)S 166 x(Log)S 166 x(File)SC10773 X 897 y F151(A)S 172 x(different)S 173 x(log)S 173 x(\211le)S(F173 x(can)S 173 x(be)S 172 x(displayed)S 173 x(by)S 173 x(specifying)SJ173 x(the)S 173 x(name)S 173 x(of)S 172 x(the)S 173 x(log)S 173 x(\211le)SE10773 X 597 y(as)S 171 x(a)S 170 x(parameter)S 171 x(on)S 171 x(the)S6E171 x(PLA)S -45 x(YBAC)S -2 x(K)S 171 x(command)S 171 x(line.)S 259 xtF(A)S 170 x(full)S 171 x(\211le)S 171 x(speci\211cation)S 10773 X 598 yC(or)S 176 x(a)S 177 x(logical)S 176 x(name)S 177 x(may)S 176 x(be)SXK176 x(entered.)S 270 x(For)S 177 x(example,)S 179 x(the)S 177 x(following)S D176 x(command)S 10773 X 598 y(opens)S 166 x(SESSION.LOG)S 164 x(in)SF167 x(the)S 166 x(current)S 167 x(default)S 166 x(directory:)S 10773 X896 y F102($)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR.1 SC 239 x F104(PLAYBACK)S 240 x(SESSION.LOG)S%%EndCustomColor%%BeginCustomColor: 0_BLACK6E0 SC 5094 25937 XY 23160 96 R 2404 26634 XY F24(2.3)S 5094 X(Pauses)S D166 x(During)S 166 x(PLA)S -65 x(YBACK)S 10773 X 897 y F151(During)SE200 x(the)S 199 x(PHOTO)S 199 x(session,)S 207 x(typing)S 200 x(the)S)D200 x(characters)S 199 x(``!?')S -9 x(')S 315 x(will)S 198 x(cause)SF10773 X 598 y(PLA)S -46 x(YBACK)S 172 x(to)S 174 x(pause)S 174 x(the)SG174 x(display)S 174 x(of)S 174 x(the)S 174 x(log)S 174 x(\211le)S 174 xxE(until)S 174 x -381 y 1992 24 R 23167 X 492 y 24 492 R 23334 28109 XYaGF42(RETURN)S 145 x 131 y 24 492 R 23167 X 20 y 1992 24 R 25334 28129 XY(GF151(is)S 173 x(pressed.)S 10773 X 598 y(It)S 171 x(will)S 172 x(then)SCE172 x(continue)S 173 x(until)S 172 x(the)S 172 x(next)S 173 x(``!?')SlI-10 x(')S 261 x(sequence.)S 262 x(The)S 172 x(following)S 172 x(example)S2H10773 X 597 y(shows)S 165 x(a)S 166 x(sample)S 166 x(PLA)S -46 x(YBACK)SC164 x(session)S 166 x(with)S 165 x(pauses:)S 10773 X 897 y F102($)SS%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR1 SC 239 x F104(PLAYBACK)S%%EndCustomColor%%BeginCustomColor: 0_BLACK)G0 SC 10773 X 448 y F102($)S 239 x(DIR)S 10773 X 747 y(Directory)S 240 xsK(DKA300:[HUNTER)S 2 x(])S 10773 X 748 y(LOGIN.COM;1)S 14599 X(LOGIN.MAR;1)S G10773 X 747 y(Total)S 240 x(of)S 239 x(2)S 239 x(files.)S 10773 X 448 y4H($)S 239 x(!This)S 240 x(is)S 239 x(my)S 240 x(login)S 239 x(directory)S10773 X 448 y($)S 239 x(!?)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORH1 SC 15555 X F104([will)S 240 x(pause)S 239 x(here)S 240 x(until)S 339 xD-266 y 1512 24 R 21154 X 355 y 24 360 R 21280 33788 XY F106(RETURN)SD107 x 108 y 24 360 R 21154 X 20 y 1512 24 R 22900 33807 XY F104(is)S239 x(pressed])S%%EndCustomColor%%BeginCustomColor: 0_BLACK@0 SC 10773 X 449 y F102($)S 239 x(SHOW)S 240 x(TIME)S 239 x(!?)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORH1 SC 15555 X F104([will)S 240 x(pause)S 239 x(here)S 240 x(until)S 339 xD-267 y 1512 24 R 21154 X 355 y 24 360 R 21280 34236 XY F106(RETURN)SD107 x 108 y 24 360 R 21154 X 20 y 1512 24 R 22900 34256 XY F104(is)S239 x(pressed])S%%EndCustomColor%%BeginCustomColor: 0_BLACKeD0 SC 11251 X 448 y F102(24-MAR-1992)S 241 x(20:26:02)S 10773 X 448 y2($)S 239 x(PHOTO/OFF)S 27427 36925 XY F36(2\2031)S%%EndCustomColor11 PP EP %%PageTrailer62%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman"%%+ Courier Courier-Bold Helvetica*%%PageCustomColors: 0_BLACK 1_USERTAGCOLOR%(%%Page: 2-2 12%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)0,1000 BP PaperHeight PaperWidth PM 0 0 XY RV %%BeginCustomColor: 0_BLACKtL0 SC 5094 1807 XY F28(Using)S 167 x(PLA)S -55 x(YBA)S -2 x(CK)S 5094 4596 XYH23160 96 R 2404 5294 XY F24(2.4)S 5094 X(Redirecting)S 166 x(PLA)S -65 xI(YBACK)S 165 x(Output)S 10773 X 896 y F151(The)S 183 x(PLA)S -45 x(YBAC)S E-2 x(K)S 182 x(output)S 183 x(can)S 183 x(be)S 182 x(directed)S 183 x6H(to)S 182 x(some)S 182 x(device)S 183 x(other)S 183 x(than)S 183 x(the)SC10773 X 598 y(default)S 187 x(terminal)S 187 x(\(SYS$OUTPUT)S -28 xSI(:\))S 4272 X 144 408 R 18864 6788 XY(using)S 187 x(the)S 188 x(/OUTPUT)S E187 x(quali\211er)S -36 x(.)S 292 x(The)S 10773 X 598 y(quali\211er)StL179 x(value)S 178 x(is)S 178 x(the)S 178 x(name)S 178 x(of)S 178 x(another)SF178 x(device)S 179 x(or)S 178 x(\211le)S 178 x(speci\211cation)S 178 xG(that)S 178 x(is)S 10773 X 598 y(to)S 176 x(receive)S 176 x(the)S 176 x1E(output.)S 270 x(For)S 176 x(example,)S 179 x(the)S 176 x(following)SAC176 x(command)S 176 x(displays)S 175 x(the)S 10773 X 597 y(output)S3@166 x(on)S 167 x(terminal)S 166 x(TXA3:)S 10773 X 897 y F102($)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR.1 SC 239 x F104(PLAYBACK/OUT)S 2 x(PUT=TXA3:)S%%EndCustomColor%%BeginCustomColor: 0_BLACKlG0 SC 10773 X 897 y F151(The)S 180 x(/OUTPUT)S 180 x(value)S 180 x(can)SeI179 x(also)S 179 x(be)S 179 x(a)S 179 x(\211le)S 180 x(speci\211cation.)SoF276 x(If)S 179 x(an)S 179 x(output)S 180 x(\211le)S 179 x(is)S 10773 XI597 y(speci\211ed,)S 168 x(by)S 168 x(default)S 167 x(PLA)S -46 x(YBACK)SiH166 x(produces)S 167 x(a)S 168 x(``normal')S -10 x(')S 167 x(RMS)S 167 xJ(text)S 167 x(\211le,)S 168 x(which)S 10773 X 598 y(has)S 176 x(variable)SC176 x(length)S 176 x(records)S 176 x(with)S 175 x(carriage-return)SsD2 x(,)S 178 x(carriage-con)S 2 x(trol)S 175 x(record)S 10773 X 598 yG(attributes)S 169 x(\(/TYPE=RECOR)S -2 x(D\).)S 170 x(Also)S 169 x(by)S_K170 x(default,)S 171 x(any)S 171 x(null)S 170 x(characters)S 171 x(\(ASCI)SDI-2 x(I)S 10773 X 598 y(0\))S 165 x(and)S 165 x(rubout)S 165 x(sequences)SlC165 x(\(character)S 165 x(deletions\))S 165 x(are)S 164 x(removed)SD166 x(from)S 164 x(the)S 165 x(output)S 10773 X 597 y(\211le)S 166 xC(\(which)S 167 x(corresponds)S 166 x(to)S 166 x(/STRIP\).)S 10773 X E897 y(The)S 167 x(following)S 166 x(example)S 166 x(conver)S 2 x(ts)S4H165 x(PHOTO.LOG)S 165 x(to)S 166 x(a)S 166 x(normal)S 167 x(text)S 166 x!(\211le:)S 10773 X 897 y F102($)S9%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR31 SC 239 x F104(PLAYBACK/OUT)S 2 x(PUT=NORMAL.TXT)SS%%EndCustomColor%%BeginCustomColor: 0_BLACKSF0 SC 10773 X 896 y F151(The)S 163 x(DCL)S 163 x(prompt)S 162 x(\($\))SG162 x(is)S 162 x(actually)S 164 x(preceded)S 163 x(by)S 163 x(a)S 162 x H(null)S 163 x(byte,)S 165 x(which)S 163 x(is)S 162 x(displayed)S 10773 XC598 y(as)S 179 x(``^@')S -11 x(')S 179 x(in)S 179 x(EDT)S -46 x(.)S1K179 x(Rubout)S 179 x(sequences)S 179 x(are)S 179 x(the)S 179 x(characters)SSG180 x(produced)S 179 x(when)S 179 x(a)S 10773 X 598 y(character)S 167 x)D(is)S 166 x(deleted.)S 249 x(They)S 168 x(consist)S 166 x(of)S 166 xC(a)S 166 x(character)S -36 x(,)S 167 x(a)S 166 x(backspace,)S 167 x1D(a)S 166 x(space,)S 166 x(and)S 10773 X 598 y(a)S 166 x(whitepace.)SE10773 X 896 y(By)S 169 x(using)S 169 x(a)S 169 x(default)S 169 x(of)SSE168 x(/STRIP)S -64 x(,)S 169 x(these)S 169 x(characters)S 169 x(are)S6J169 x(automatically)S 169 x(removed,)S 10773 X 598 y(which)S 190 x(makes)SD190 x(the)S 190 x(text)S 190 x(\211le)S 191 x(``cleaner)S -37 x(.')SE-9 x(')S 297 x(The)S 190 x(/NOSTRIP)S 190 x(quali\211er)S 190 x(can)SyG191 x(be)S 10773 X 598 y(speci\211ed)S 166 x(to)S 166 x(prevent)S 167 x9D(PLA)S -46 x(YBACK)S 164 x(from)S 166 x(removing)S 168 x01[ SUPSER054.B 1( [HUNTER.SUPSER.V54C.B]PHOTO.PS;1i(the)S 166 xG(characters.)S 4272 X 144 9972 R 5094 21134 XY 23160 96 R 2404 21832 XYoGF24(2.5)S 5094 X(Using)S 166 x(PLA)S -65 x(YBACK)S 165 x(W)S -6 x(ith)SnF166 x(Input-only)S 166 x(Logs)S 10773 X 896 y F151(T)S -45 x(o)S 214 xF(display)S 214 x(input-only)S 215 x(log)S 215 x(\211les)S 215 x(with)SJ214 x(PLA)S -46 x(YBACK)S -2 x(,)S 215 x(the)S 214 x(quali\211er)S 10773 XE598 y(/TYPE=INPUT)S 176 x(must)S 176 x(be)S 176 x(speci\211ed)S 176 xvD(on)S 177 x(the)S 176 x(command)S 176 x(line.)S 270 x(\(Input-only)SD176 x(logs)S 10773 X 598 y(are)S 182 x(created)S 181 x(using)S 182 xH(the)S 181 x(PHOTO/INPUT)S 182 x(command;)S 189 x(they)S 182 x(contain)SG182 x(only)S 182 x(the)S 10773 X 598 y(characters)S 170 x(typed)S 170 x2J(at)S 169 x(the)S 170 x(keyboard,)S 172 x(not)S 170 x(the)S 169 x(output)SH170 x(written)S 169 x(to)S 170 x(the)S 170 x(terminal.\))S 10773 X 597 yH(The)S 166 x(following)S 166 x(example)S 165 x(shows)S 165 x(how)S 165 xD(PLA)S -46 x(YBACK)S 164 x(processes)S 165 x(an)S 165 x(input-only)S#167 x(log:)S 10773 X 897 y F102($)S(%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR,1 SC 239 x F104(PLAYBACK/TYP)S 2 x(E=INPUT)S%%EndCustomColor%%BeginCustomColor: 0_BLACKSD0 SC 10773 X 448 y F102(SH)S 239 x(USERS)S 10773 X 449 y(SHO)S 240 xF(DEF)S 10773 X 448 y(DIR)S -717 x 448 y(PHOTO/OFF)S 10773 X 897 y F151D(If)S 169 x(PLA)S -45 x(YBAC)S -2 x(K)S 170 x(is)S 169 x(run)S 170 xG(without)S 170 x(specifying)S 170 x(/TYPE=INPUT)S -45 x(,)S 170 x(the)SXD170 x(entire)S 170 x(log)S 170 x(\211le)S 10773 X 598 y(will)S 165 x=(not)S 167 x(be)S 166 x(visible.)S 5094 36925 XY F36(2\2032)SO%%EndCustomColor12 PP EP %%PageTrailer 2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman%%+ Courier Courier-Bold*%%PageCustomColors: 0_BLACK 1_USERTAGCOLOR%F%%Page: PART2-1 13%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)1)1000 BP PaperHeight PaperWidth PM 0 0 XY e%%BeginCustomColor: 0_BLACKAG0 SC 5094 4696 XY 23160 204 R 5094 6417 XY F20(Part)S 165 x(II:)S 167 x9F(Command)S 165 x(Dictionary)S 10773 7513 XY F34(This)S 166 x(section)SF166 x(provides)S 166 x(descriptions)S 165 x(of)S 167 x(PHOT)S -9 x(O)S165 x(commands.)Sx%%EndCustomColor13 PP EP %%PageTrailer(%%%PageFonts: Helvetica-Bold Helvetical%%PageCustomColors: 0_BLACK8% %%Page: PART2-2 14 /DEC$EDMS_MAKE_FILM where { pop }N%{ /DEC$EDMS_SUPPRESS_BLANKPAGES where9 { pop }2 { CLRP showpage } ifelse } ifelse X %%PageTrailer %%PageFonts:%%PageCustomColors:n%S%%Page: PART2-3 15%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)l)1000 BP PaperHeight PaperWidth PM 0 0 XY w%%BeginCustomColor: 0_BLACK1L0 SC 25790 1807 XY F24(PHOT)S -13 x(O)S 5094 4546 XY 23160 48 R 5094 5543 XYFF20(PHOT)S -16 x(O)S 10773 7037 XY F34(Starts)S 180 x(terminal)S 178 xD(input)S 178 x(and)S 179 x(output)S 179 x(logging)S 178 x(to)S 179 xL(a)S 178 x(log)S 178 x(\211le.)S 274 x(Can)S 179 x(be)S 178 x(con\211gured)SH178 x(to)S 10773 X 598 y(record)S 166 x(both)S 166 x(input)S 166 x(and)SG166 x(output,)S 167 x(or)S 166 x(just)S 166 x(terminal)S 166 x(input.)S4C5094 8830 XY 23160 204 R 5094 9848 XY F24(FORMA)S -53 x(T)S 10773 XrC(PHOT)S -13 x(O)S 697 x F23([/quali)S -2 x(\211ers])S 10773 X 797 yoC17484 48 R 10773 11243 XY F36(Command)S 166 x(Quali\211)S 2 x(ers)S(K18544 X(Defaults)S 10773 X 697 y F35(/ABOR)S -9 x(T)S 4272 X 12 y 144 612 R8C10773 12538 XY(/BUFFER_SI)S 2 x(ZE=pages)S 18544 X(/BUFFER_SI)S 2 x G(ZE=2)S 10773 X 598 y(/INPUT)S 10773 X 598 y(/LOG=\211le)S 165 x(spec)SrG18544 X(/LOG=SYS$DISK:)S([)S 85 x(])S(PHOT)S -9 x(O.LOG)S 10773 X 597 y?J(/OFF)S 10773 X 598 y(/P)S -36 x(AUSE=number)S 18544 X(/P)S -36 x(AUSE=4)SM10773 X 598 y(/ST)S -36 x(A)S -36 x(TISTI)S 2 x(CS)S 10773 X 598 y(/VERSION)SXD5094 17320 XY 23160 204 R 5094 18139 XY F24(QUALIFIERS)S 10773 X F25G(/ABOR)S -14 x(T)S 10773 X 548 y F151(T)S -45 x(erminates)S 173 x(the)SoG174 x(PHOTO)S 173 x(recording)S 174 x(and)S 174 x(automatically)S 174 x)H(deletes)S 173 x(the)S 174 x(PHOTO)S 10773 X 548 y(log)S 167 x(\211le.)SH4272 X 144 3096 R 10773 20331 XY F25(/BUFFER_SIZE=buf)S -13 x(fer-size)SF10773 X 597 y F151(Speci\211es)S 175 x(the)S 175 x(number)S 175 x(of)SH175 x(pages)S 174 x(to)S 175 x(use)S 175 x(for)S 174 x(buffering)S 176 xG(while)S 175 x(supervising.)S 267 x(By)S 10773 X 548 y(default,)S 183 xH(2)S 178 x(pages)S 179 x(are)S 179 x(used.)S 275 x(Up)S 179 x(to)S 179 xE(10)S 179 x(pages)S 179 x(may)S 179 x(be)S 179 x(speci\211ed.)S 275 x4D(Additional)S 10773 X 548 y(pages)S 178 x(are)S 178 x(useful)S 177 xH(on)S 178 x(heavily-loaded)S 179 x(systems)S 176 x(where)S 178 x(PHOTO)SD177 x(misses)S 177 x(some)S 10773 X 548 y(data.)S 10773 23668 XY F25H(/INPUT)S 10773 X 598 y F151(Speci\211es)S 158 x(that)S 158 x(an)S 158 xD(input-only)S 160 x(log)S 158 x(should)S 158 x(be)S 158 x(created.)SD250 x(PHOTO)S 158 x(will)S 157 x(only)S 159 x(record)S 10773 X 548 yD(characters)S 171 x(typed)S 171 x(at)S 170 x(the)S 170 x(terminal,)SG172 x(not)S 171 x(output)S 171 x(written)S 170 x(to)S 170 x(the)S 170 x I(terminal.)S 259 x(The)S 10773 X 548 y(input)S 190 x(log)S 189 x(\211le)SsI190 x(can)S 190 x(be)S 189 x(fed)S 189 x(to)S 189 x(SUPER)S -19 x(VISOR)S)J188 x(to)S 189 x(simulate)S 189 x(user)S 189 x(input)S 190 x(for)S 10773 XG548 y(software)S 165 x(testing.)S 10773 27006 XY F25(/LOG=\211le-spec)S7S10773 X 597 y F151(Speci\211es)S 169 x(the)S 170 x(\211le)S 170 x(speci\211cation)SCG169 x(for)S 170 x(the)S 170 x(PHOTO)S 168 x(log)S 170 x(\211le.)S 257 xON(By)S 170 x(default,)S 170 x(PHOTO)S 10773 X 548 y(creates)S 171 x(PHOTO.LOG)SH171 x(in)S 172 x(the)S 172 x(current)S 173 x(default)S 171 x(directory)SF-55 x(.)S 261 x(W)S -28 x(rite)S 172 x(access)S 171 x(to)S 171 x(the)SI10773 X 548 y(speci\211ed)S 166 x(directory)S 167 x(is)S 166 x(required)ScP166 x(to)S 166 x(create)S 166 x(the)S 167 x(log)S 166 x(\211le.)S 10773 29795 XYCF25(/OFF)S 10773 X 598 y F151(T)S -45 x(erminates)S 184 x(a)S 185 x C(PHOTO)S 185 x(recording)S 186 x(session.)S 287 x(The)S 186 x(log)S(G185 x(\211le)S 186 x(is)S 184 x(closed)S 185 x(and)S 185 x(an)S 10773 X7F548 y(informational)S 170 x(message)S 168 x(is)S 169 x(written)S 169 xD(to)S 169 x(the)S 170 x(terminal)S 169 x(to)S 169 x(indicate)S 169 xH(the)S 170 x(recording)S 10773 X 548 y(has)S 166 x(terminated.)S 10773 XD896 y(PHOTO)S 174 x(can)S 174 x(also)S 173 x(be)S 174 x(terminated)SD174 x(by)S 174 x(loggin)S 2 x(g)S 174 x(out)S 174 x(of)S 174 x(the)SE174 x(process)S 174 x(or)S 174 x(stopping)S 10773 X 548 y(the)S 166 xF(process)S 166 x(using)S 167 x(the)S 166 x(DCL)S 166 x(command)S 166 xF(STOP/ID.)S 10773 34029 XY F25(/P)S -51 x(AUSE=val)S -2 x(ue)S 10773 XF598 y F151(Speci\211es)S 170 x(the)S 170 x(ASCII)S 169 x(value)S 170 xE(of)S 170 x(the)S 170 x(character)S 171 x(to)S 170 x(use)S 170 x(as)SrF169 x(the)S 170 x(``pause')S -10 x(')S 170 x(character)S 10773 X 548 yF(to)S 188 x(pause)S 189 x(and)S 188 x(resume)S 189 x(logging)S 2 x(.)SI294 x(By)S 189 x(default,)S 194 x -380 y 1752 24 R 20764 X 491 y 24 492 R G20910 35155 XY F42(CTRL-D)S 125 x 131 y 24 492 R 20764 X 20 y 1752 24 R(J22705 35175 XY F151(is)S 188 x(used)S 189 x(\(ASCII)S 187 x(4\).)S 10773 XC548 y(T)S -45 x(o)S 185 x(chang)S 2 x(e)S 185 x(the)S 186 x(pause)SsF186 x(character)S -36 x(,)S 191 x(simply)S 185 x(specify)S 186 x(the)SI186 x(ASCI)S -2 x(I)S 186 x(value)S 186 x(of)S 186 x(the)S 24991 36925 XY9F36(Commands\2033)Ss%%EndCustomColor15 PP EP %%PageTrailerS%%DEC$EDMS_Folio: Commands-3%%%PageFonts: Helvetica-Bold Helvetica6+%%+ Helvetica-Oblique Helv1"x SUPSER054.B 1( [HUNTER.SUPSER.V54C.B]PHOTO.PS;1ifetica-BoldObliqueS%%+ NewCenturySchlbk-Roman%%PageCustomColors: 0_BLACKt%1%%Page: Commands-4 16P%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend) ,1000 BP PaperHeight PaperWidth PM 0 0 XY RV %%BeginCustomColor: 0_BLACK1C0 SC 5094 1807 XY F24(PHOT)S -13 x(O)S 10773 4897 XY F151(desired)SxC171 x(character)S -36 x(.)S 260 x(For)S 172 x(example,)S 173 x(/P)SyG-36 x(AUSE=2)S 170 x(speci\211es)S 171 x -380 y 1728 24 R 23105 X 491 y4E24 492 R 23249 4877 XY F42(CTRL-B)S 123 x 131 y 24 492 R 23105 X 20 y C1728 24 R 25003 4897 XY F151(as)S 171 x(the)S 171 x(pause)S 10773 XgC548 y(character)S -36 x(.)S 10773 6541 XY F25(/ST)S -51 x(A)S -52 xSM(TISTICS)S 10773 X 597 y F151(Displays)S 173 x(statistics)S 173 x(regarding)SlI176 x(the)S 175 x(current)S 175 x(PHOTO)S 174 x(recording)S 176 x(sessi)SxD-2 x(on.)S 267 x(The)S 10773 X 548 y(information)S 183 x(displayed)SF182 x(includes)S 183 x(the)S 182 x(name)S 183 x(of)S 182 x(the)S 183 xD(log)S 183 x(\211le,)S 187 x(the)S 183 x(number)S 183 x(of)S 10773 XE548 y(characters)S 169 x(recorded,)S 170 x(the)S 169 x(number)S 170 xSD(of)S 168 x(characters)S 169 x(missed,)S 169 x(and)S 169 x(whether)SI169 x(or)S 168 x(not)S 10773 X 548 y(logging)S 168 x(is)S 165 x(paused.)S(F10773 9878 XY F25(/VERSION)S 10773 X 598 y F151(Displays)S 165 x(the)SL166 x(version)S 167 x(of)S 166 x(PHOTO)S 166 x(currently)S 167 x(installed)SN166 x(on)S 166 x(the)S 166 x(system.)S 5094 11671 XY 23160 204 R 5094 12490 XYEF24(DESCRIPTION)S 10773 X -156 y F151(When)S 176 x(PHOTO)S 174 x(is)S(H175 x(executed)S 176 x(without)S 175 x(any)S 176 x(quali\211ers,)S 178 xJ(it)S 175 x(starts)S 174 x(recording)S 177 x(the)S 10773 X 598 y(current)SG157 x(terminal)S 157 x(session)S 155 x(to)S 157 x(a)S 156 x(log)S 157 xH(\211le.)S 250 x(Recording)S 157 x(continues)S 157 x(until)S 156 x(the)SG157 x(logging)S 10773 X 598 y(is)S 167 x(paused)S 167 x(\(using)S 168 xoG(the)S 167 x(pause)S 168 x(character\))S 168 x(or)S 167 x(until)S 168 x(C(PHOTO/OFF)S 167 x(is)S 167 x(executed)S 168 x(\(or)S 10773 X 598 ySH(the)S 180 x(process)S 179 x(is)S 179 x(terminated\).)S 276 x(By)S 180 xE(default,)S 183 x(PHOTO)S 179 x(creates)S 179 x(a)S 180 x(log)S 180 xkC(\211le)S 179 x(called)S 10773 X 597 y(PHOTO.LOG)S 166 x(in)S 166 xAF(the)S 166 x(current)S 167 x(directory)S -54 x(.)S 10773 X 897 y(The)SD186 x(log)S 186 x(\211les)S 185 x(created)S 186 x(by)S 186 x(PHOTO)SG185 x(can)S 186 x(be)S 185 x(viewed)S 186 x(and)S 185 x(printed)S 186 x F(using)S 186 x(the)S 10773 X 598 y(PLA)S -46 x(YBACK)S 165 x(utility)SC-56 x(.)S 10773 X 797 y 17484 96 R 5094 17963 XY F28(restrictions)S6F10773 X -62 y F151(\201)S 595 x(RT)S 168 x(devices)S 169 x(\(network)SC169 x(terminals)S 168 x(logged)S 170 x(in)S 168 x(via)S 169 x(SET)SlG169 x(HOST)S 168 x(over)S 169 x(DECnet\))S 11670 X 598 y(cannot)S 166 x$E(be)S 167 x(logged.)S 10773 X 896 y(\201)S 595 x(WT)S 166 x(devices)S9E166 x(\(UIS)S 165 x(VT100)S 166 x(pseudo-terminals\))S 166 x(cannot)SeG166 x(be)S 166 x(supervised.)S 10773 X 897 y(\201)S 595 x(PHOTO)S 175 xgC(is)S 175 x(not)S 175 x(compatible)S 175 x(with)S 175 x(the)S 176 xeH(following)S 175 x(DEC)S 175 x(products:)S 268 x(Session)S 11670 X 598 yE(Support)S 191 x(Utility)S 191 x(\(SSU\),)S 190 x(DEC/T)S -46 x(est)S0C191 x(Manager)S -36 x(,)S 198 x(ACMS,)S 191 x(the)S 191 x(T)S -46 xmE(erminal)S 11670 X 598 y(Fallback)S 166 x(Facility)S 167 x(\(TFF\),)S(H167 x(and)S 166 x(VMS)S 166 x(POSIX.)S 5094 36925 XY F36(Commands\2034)S%%EndCustomColor16 PP EP %%PageTrailerc2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman#%%+ Helvetica Helvetica-BoldOblique %%PageCustomColors: 0_BLACK%4%%Page: Commands-5 179%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)\)1000 BP PaperHeight PaperWidth PM 0 0 XY 1%%BeginCustomColor: 0_BLACKuO0 SC 24448 1807 XY F24(PLA)S -65 x(YBACK)S 5094 4546 XY 23160 48 R 5094 5543 XYXCF20(PLA)S -82 x(YBACK)S 782 x 7037 Y F34(Displays)S 169 x(a)S 171 x/G(PHOT)S -9 x(O)S 170 x(log)S 170 x(\211le)S 170 x(to)S 171 x(an)S 170 xeD(output)S 171 x(device.)S 258 x(Used)S 170 x(to)S 171 x(play)S 170 xE(back)S 171 x(a)S 170 x(terminal)S 10773 X 598 y(session)S 166 x(or)S5C166 x(convert)S 166 x(a)S 166 x(binary)S 165 x(log)S 166 x(\211le)S L166 x(to)S 166 x(a)S 166 x(normal)S 165 x(RMS)S 166 x(\211le.)S 5094 8830 XYI23160 204 R 5094 9848 XY F24(FORMA)S -53 x(T)S 10773 X(PLA)S -64 x(YBAC)S(I-2 x(K)S 697 x F23([log-\211le])S 10773 X 797 y 17484 48 R 10773 11243 XY(DF36(Command)S 166 x(Quali\211)S 2 x(ers)S 18544 X(Defaults)S 10773 XH697 y F35(/OUTPUT=playback-\211le)S 18544 X(/OUTPUT=SYS$OUTPUT)S 10773 XI598 y(/STRIP)S 18544 X(/STRIP)S 10773 X 598 y(/TYPE)S 2 x(=type)S 18544 X5D(See)S 166 x(below)S -28 x(.)S 4272 X 109 y 144 5496 R 5094 14331 XYG23160 204 R 5094 15150 XY F24(P)S -51 x(ARA)S -2 x(METERS)S 849 x -22 y3GF25(log-\211le)S 10773 X 548 y F151(Name)S 180 x(of)S 180 x(the)S 180 x2H(log)S 180 x(\211le)S 181 x(to)S 180 x(be)S 180 x(played)S 180 x(back.)SD278 x(If)S 179 x(omitted,)S 184 x(PHOTO.LOG)S 179 x(in)S 180 x(the)SD10773 X 548 y(current)S 167 x(default)S 166 x(directory)S 167 x(is)SF165 x(used.)S 5094 17420 XY 23160 204 R 5094 18239 XY F24(QUALIFIERS)SN10773 X F25(/OUTPUT=playbac)S -2 x(k-\211le)S 10773 X 547 y F151(Speci\211es)SD185 x(the)S 185 x(\211le)S 185 x(speci\211cation)S 185 x(for)S 185 xF(the)S 185 x(output)S 185 x(device.)S 288 x(Can)S 184 x(be)S 185 x(a)SF185 x(full)S 185 x(\211le)S 10773 X 548 y(speci\211cation)S 176 x(or)SH176 x(a)S 176 x(terminal)S 176 x(device)S 177 x(name.)S 269 x(If)S 176 xE(a)S 176 x(\211le)S 176 x(is)S 175 x(speci\211ed,)S 179 x(the)S 176 xlC(default)S 10773 X 548 y(quali\211er)S 167 x(/TYPE=RECOR)S -2 x(D)S8F166 x(will)S 165 x(create)S 166 x(a)S 166 x(normal)S 167 x(RMS)S 165 xF(text)S 166 x(\211le.)S 10773 20978 XY F25(/STRIP)S 10773 X 598 y F151G(Speci\211es)S 199 x(that)S 200 x(all)S 199 x(null)S 200 x(characters)StD200 x(\(ASCI)S -2 x(I)S 199 x(0\))S 200 x(and)S 199 x(rubout)S 200 xE(sequences)S 10773 X 548 y(\(character)S -36 x(,)S 197 x(backspace,)SSJ198 x(space,)S 197 x(backspace\))S 4272 X 144 948 R 20383 22124 XY(found)SH192 x(in)S 191 x(the)S 191 x(log)S 191 x(\211le)S 191 x(should)S 10773 XC548 y(be)S 183 x(removed)S 183 x(before)S 183 x(display)S -55 x(.)SpD283 x(Useful)S 182 x(for)S 183 x(removing)S 184 x(the)S 183 x(null)SH183 x(character)S 184 x(the)S 10773 X 548 y(precedes)S 174 x(the)S 174 xC(DCL)S 173 x(command)S 173 x(prompt)S 174 x(and)S 173 x(for)S 174 xPC(removing)S 175 x(characters)S 174 x(deleted)S 10773 X 548 y(with)S8H166 x(the)S 166 x -381 y 1380 24 R 12895 X 492 y 24 492 R 13010 23748 XYFF42(Delete)S 94 x 131 y 24 492 R 12895 X 20 y 1380 24 R 14443 23768 XYJF151(key)S -54 x(.)S 4272 X 144 948 R 10773 24664 XY(By)S 200 x(default,)SG208 x(the)S 199 x(characters)S 200 x(are)S 200 x(removed)S 200 x(from)SHD199 x(the)S 199 x(output)S 200 x(\211le.)S 317 x(Use)S 10773 X 548 yC(/NOSTRIP)S 166 x(to)S 166 x(leave)S 166 x(the)S 166 x(characters)SrF167 x(in)S 166 x(the)S 166 x(\211le.)S 4272 X 144 948 R 10773 26394 XY F25(/TYPE=)S#XP /F110 26 374 6 -97 25 2 100 24 0aF<000070 0000F0 0003C0 000780 000F00 001E00 003C00 003800 007800 007800E00F000 00F000 00F000 00F000 00F000 00F000 00F000 00F000 00F000 00F000lE00F000 00F000 00F000 00F000 00F000 00F000 00F000 00F000 00F000 00F0001E00F000 00F000 00F000 00F000 00F000 00F000 00F000 00F000 00F000 00F0007E00F000 01E000 01E000 01C000 03C000 078000 0F0000 1E0000 3C0000 F00000gEF00000 3C0000 1E0000 0F0000 078000 03C000 01C000 01E000 01E000 00F0004E00F000 00F000 00F000 00F000 00F02^R SUPSER054.B 1( [HUNTER.SUPSER.V54C.B]PHOTO.PS;1ib00 00F000 00F000 00F000 00F000 00F000XE00F000 00F000 00F000 00F000 00F000 00F000 00F000 00F000 00F000 00F000 E00F000 00F000 00F000 00F000 00F000 00F000 00F000 00F000 00F000 00F000hF007800 007800 003800 003C00 001E00 000F00 000780 0003C0 0000F0 000070>PXLC RP6G13362 25691 XY F110(\032)S 199 x 423 y F25(INPUT)S 13935 X 797 y(RECO)S1 -2 x(RD)S#XP /F110 27 374 6 -97 25 2 100 24 0rFPXLC RP(H17322 25691 XY F110(\033)S 10773 27397 XY F151(Speci\211es)S 166 x(the)SH166 x(format)S 166 x(of)S 166 x(the)S 166 x(input)S 167 x(\211le)S 166 xM(and)S 166 x(output)S 166 x(\211le.)S 10773 X 896 y(If)S 174 x(/TYPE=RECORD)S J173 x(is)S 174 x(speci\211ed,)S 177 x(the)S 175 x(created)S 175 x(output)SF175 x(\211le)S 175 x(will)S 174 x(be)S 175 x(converted)S 10773 X 548 yG(to)S 178 x(a)S 177 x(normal)S 178 x(RMS)S 177 x(text)S 178 x(\211le.)S7C273 x(/TYPE=RECOR)S -2 x(D)S 178 x(is)S 177 x(the)S 177 x(default)S K178 x(setting)S 178 x(if)S 177 x(an)S 10773 X 548 y(output)S 166 x(\211le)SE167 x(is)S 165 x(speci\211ed.)S 4272 X 144 1500 R 10773 30286 XY(If)S)E170 x(/TYPE=INPUT)S 170 x(is)S 170 x(speci\211ed,)S 171 x(the)S 171 xeE(log)S 170 x(\211le)S 171 x(being)S 170 x(played)S 171 x(back)S 170 xsD(is)S 170 x(assumed)S 169 x(to)S 10773 X 548 y(be)S 166 x(an)S 167 xG(input-only)S 167 x(log)S 166 x(\211le)S 166 x(\(created)S 166 x(with)SOP166 x(PHOTO/INPUT\).)S 5094 32029 XY 23160 204 R 5094 32848 XY F24(DESCRIPTION)SC10773 X -156 y F151(The)S 168 x(PLA)S -46 x(YBACK)S 165 x(command)S5N167 x(displays)S 166 x(a)S 167 x(terminal)S 167 x(session)S 166 x(previously)SD168 x(recorded)S 10773 X 598 y(by)S 187 x(PHOTO.)S 186 x(See)S 186 xE(PHOTO)S 186 x(for)S 186 x(information)S 187 x(on)S 186 x(how)S 187 x(H(to)S 186 x(record)S 186 x(a)S 187 x(terminal)S 10773 X 598 y(session.)S"24991 36925 XY F36(Commands\2035)S%%EndCustomColor17 PP EP %%PageTrailer9%%DEC$EDMS_Folio: PART2-5S%%%PageFonts: Helvetica-Bold Helvetica(+%%+ Helvetica-Oblique Helvetica-BoldObliquer!%%+ NewCenturySchlbk-Roman amex10k%%PageCustomColors: 0_BLACK7%X%%Page: PART2-6 18 /DEC$EDMS_MAKE_FILM where { pop }S%{ /DEC$EDMS_SUPPRESS_BLANKPAGES where7 { pop }  { CLRP showpage } ifelse } ifelse %%PageTrailerO %%PageFonts:%%PageCustomColors:v%e %%Trailern EndDVC$PSDoc4/DEC$EDMS_MAKE_FILM where % if we are making film... { pop % ..clean up the stack3 -54 dup translate % ..undo the film translations } ifn %%Pages: 18 &%%DocumentFonts: NewCenturySchlbk-Bold)%%+ NewCenturySchlbk-Roman amex10 Courier6)%%+ Courier-Bold Helvetica Helvetica-BoldE+%%+ Helvetica-Oblique Helvetica-BoldOblique).%%DocumentCustomColors: 0_BLACK 1_USERTAGCOLORed.)S 10773 X 896 y(\201)S 595 x(WT)S 166 x(devices)S9E166 x(\(UIS)S 165 x(VT100)S 166 x(pseudo-terminals\))S 166 x(cannot)SeG166 x(be)S 166 x(supervised.)S 10773 X 8!*[HUNTER.SUPSER.V54C.B]PHOTO.TXT;1+, .?/ 4X?=x?-1(0123KPWO>56@U7F89GHJ  PHOTO Reference Guide October 1992= This manual describes the use of PHOTO, a member of@ the Supervisor Series of terminal monitoring software.A Revision/Update Information: This is a revised manual.9 Operating System and Version: VMS V5.0 or later2 Software Version: PHOTO V5.42 Academic Computing and Research Services% Western Kentucky University! Bowling Green, Kentucky  " ________________________ 5 October 1992= Permission is granted to copy and redistribute this* document for no commercial gain.? The information in this document is subject to change9 without notice and should not be construed as a9 commitment by the author. The author assumes no? responsibility for any errors that may appear in this document.= DISCLAIMER: The software described in this document: is provided "as is". No guarantee is made by the@ author or the author's employer as to the suitability,> reliability, security, usefulness, or performance of this software.@ Neither Western Kentucky University nor Hunter Goatley@ are responsible for any losses that may occur from the use of this software.; The following are trademarks of Digital Equipment Corporation:9 DEC VAX VMS# DECnet UCX __________> Copyright 1992 Hunter Goatley. ALL RIGHTS RESERVED.  A _______________________________________________________ ContentsA _________________________________________________A PREFACE vA _______________________________________________________6 CHAPTER 1 USING PHOTO TO CAPTURE A TERMINALA SESSION 1-1A _________________________________________________A 1.1 STARTING A PHOTO SESSION 1-1A _________________________________________________A 1.2 PAUSING A PHOTO SESSION 1-2A _________________________________________________6 1.3 DISPLAYING THE STATUS OF A PHOTOA SESSION 1-3A _________________________________________________A 1.4 RECORDING INPUT ONLY 1-3A _________________________________________________A 1.5 DISPLAYING THE PHOTO VERSION NUMBER 1-4A _________________________________________________A 1.6 ENDING A PHOTO SESSION 1-4A _________________________________________________A 1.7 ABORTING A PHOTO SESSION 1-5A _________________________________________________3 1.8 CAPTURING THE I/O FOR ANOTHERA TERMINAL 1-5A iii   ContentsA ____________3Y* SUPSER054.B 1(![HUNTER.SUPSER.V54C.B]PHOTO.TXT;1X??___________________________________________A CHAPTER 2 USING PLAYBACK 2-1A _________________________________________________A 2.1 PLAYING BACK A PHOTO SESSION 2-1A _________________________________________________A 2.2 SPECIFYING A DIFFERENT LOG FILE 2-1A _________________________________________________A 2.3 PAUSES DURING PLAYBACK 2-2A _________________________________________________A 2.4 REDIRECTING PLAYBACK OUTPUT 2-2A _________________________________________________A 2.5 USING PLAYBACK WITH INPUT-ONLY LOGS 2-3A _______________________________________________________% PART II: COMMAND DICTIONARY= PHOTO Commands-3= PLAYBACK Commands-6 iv  A _______________________________________________________ Preface= PHOTO is a VMS utility program that allows users to> log their terminal sessions into a file. While PHOTO> is running, each character sent to and received from; the terminal is recorded in a file and may be re-5 displayed later using the PLAYBACK command.@ Note: For efficiency reasons, the log files created by= PHOTO are just streams of bytes-they are not normal? VMS text files. PLAYBACK must be used to convert them to text files.< PHOTO is part of the Supervisor Series of terminal8 monitoring software. The Supervisor Series was< originally written by Bob Pasker, Bill Donner, and; Terry Way for Precision Business Systems, and was? later acquired by Security Pacific Software Services.: After selling and maintaining the software for a@ number of years, Security Pacific Software's Dan Shoop? placed version 5.0D of the Supervisor Series into the public domain in 1992.7 The Supervisor Series is currently maintained7 by Hunter Goatley, VMS Systems Programmer for8 Western Kentucky University, Bowling Green, KY% (goathunter@WKUVX1.BITNET).L __________________________________________________________________ Intended Audience: This manual is intended for any VMS user who can? take advantage of the services provided by PHOTO. The= reader should already know the basics of using VMS.A v   PrefaceL __________________________________________________________________ Document Structure? This guide consists of two chapters and one appendix.= Chapter 1 Provides a simple step-by-step guide to" using PHOTO.: Chapter 2 Provides instructions of reviewing a@ recorded session, with explanations of how? to PLAYBACK a session to various devices.= Part II Provides command descriptions for PHOTO# and PLAYBACK.L __________________________________________________________________ Typical Uses of PHOTO; PHOTO can be used to perform the following tasks:: o Document an obscure occurrence, or a software? bug, with messages and traceback directly from the program.> o Have PHOTO log the output into a file that can be> sent via electronic mail, magtape, or hardcopy to+ others to analyze the problem.= o Prepare transcripts of dialogue with a computer.= This is convenient when documenting programs for: handouts, user's manuals, and other sessions.@ o Keep a journal of what is done in a session to keep5 track of users' activities and progress.= o Monitor data-entry for possible system abuse and? software problem resolution. An entire session can3 be reproduced for review and analysis.< o PHOTO another terminal session. SUPERVISOR, the: other member of the Supervisor Series, allows> the monitoring of the activities of another user.> After activating PHOTO, SUPERVISOR can be used to> access the other terminal. Everything done on the vi  A Preface> other terminal is written to a log file under the" supervisor's control.; o SUPERVISOR can also use files created with the; PHOTO/LOG/INPUT qualifier as input. SUPERVISOR< sends the typed input only to another terminal,: where it is executed as part of that session.A vii  A _______________________________________________________3 1 Using PHOTO to Capture a Terminal Session= This chapter provides a step-by-step guide to using; PHOTO to record a terminal session in a log file.L __________________________________________________________________" 1.1 Starting a PHOTO Session< To start a PHOTO log session, type the DCL command< PHOTO. By default, a log file named PHOTO.LOG will: be created in the current default directory. The> default filename can be overridden by using the /LOG: qualifier; it accepts a filename as a value. For= example, the following command creates a file named? MYLOGFILE.LOG in DUB4:[MYDIR]; PHOTO responds with an informational message:4 $ PHOTO/LOG=DUB4:[MYDIR]MYLOGFILE.LOGL %PHOTO-I-INIT, Recording initiated at 24-MAR-1992 09:02:38.23 $: The user must have write access to the specified4 directory in order to create the log file.@ Note: PHOTO cannot log network terminals logged in via@ SET HOST over DECnet (RT devices). However, it can log> physical terminals, terminals with virtual terminals? (VTAx: devices), LAT terminal server terminals (LTAx:: devices), UCX telnet terminals (TN devices), and9 pseudo-terminals (FTAx: and TWAx: devices) that< are logged in. PHOTO has been tested with numerous? third-party network terminal devices, including those? created by the TCP/IP implementations by TGV and TWG,> and the PacerLink Appletalk implementation by Pacer.A 1-1  3 Using PHOTO to Capture a Terminal SessionL __________________________________________________________________! 1.2 Pausing a PHOTO Session> While recording, logging can be temporarily disabled; by pressing the pause key (, by default).> Pressing the pause key again will resume the logging> to the file. Informational messages are disp4 SUPSER054.B 1(![HUNTER.SUPSER.V54C.B]PHOTO.TXT;1X??Xlayed on8 the screen when logging is paused and resumed: $ PHOTOL %PHOTO-I-INIT, Recording initiated at 24-MAR-1992 09:02:38.23 $ SHOW TIME% 24-MAR-1992 09:02:40 $ % [PHOTO logging paused] $ SHOW TIME% 24-MAR-1992 09:02:46 $ & [PHOTO logging resumed] $; The ``paused'' message is not recorded in the log? file, but the ``resumed'' message is as an indication- of where the interruption occurred.; The default pause key can be overridden using the< /PAUSE qualifier on the PHOTO command line. It may@ need to be changed if, for example, PHOTO is used with> another application that expects to be used= for another purpose. The /PAUSE qualifier accepts a< value that is the character's ASCII decimal value.< For example, the ASCII value of is 4; the@ following command changes the pause character to ASCII 2 (): $ PHOTO/PAUSE=2L %PHOTO-I-INIT, Recording initiated at 24-MAR-1992 09:27:36.92 $ % [PHOTO logging paused] $ & [PHOTO logging resumed] $ 1-2  A Using PHOTO to Capture a Terminal Session7 Care should be taken when selecting the pause> character to avoid conflicts with other applications? during the PHOTO session. For example, the tilde (~),> which has an ASCII value of 126, would probably be a= good choice because it is rarely used. Some ; sequences are interpreted by the terminal driver;: contact the system manager for a a list of ASCII values.L __________________________________________________________________2 1.3 Displaying the Status of a PHOTO Session> The PHOTO/STATISTICS command provides a brief status. report of the current PHOTO session:! $ PHOTO/STATISTICSI %PHOTO-I-STAT, Recording in progress, 80 characters logged3 %PHOTO-I-MISSED, Missed 0 charactersD %PHOTO-I-FILE, Log file is DKA300:[HUNTER]PHOTO.LOG;1 $= If the PHOTO session has been paused, the following> message will also be displayed in the status report:= %PHOTO-I-PAUSED, Photo logging has been paused@ Missed characters can be caused by an excessive amount= of output. Normally, there should not be any missed characters.L __________________________________________________________________ 1.4 Recording Input Only? PHOTO can be used to record only the characters input> to the terminal, instead of recording both input and? output. The PHOTO/INPUT command creates an input-only> log. The input-only log can be fed to the SUPERVISOR= utility to execute the same commands during another= terminal session. In this way, PHOTO and SUPERVISOR: can simulate user input for automated testing of | software.A 1-3  3 Using PHOTO to Capture a Terminal Session | $ PHOTO/INPUTX | %PHOTO-I-IINIT, input-only recording initiated at 24-MAR-1992 09:27:36.92 | $ |9 | The PHOTO/OFF and PHOTO/STATISTICS command also9 | indicate whether or not input-only recording is | active.L __________________________________________________________________- 1.5 Displaying the PHOTO Version Number; To determine the version number of PHOTO, add the7 | /VERSION qualifier to the PHOTO command line: | | $ PHOTO/VERSION> | %PHOTO-I-VERSION, PHOTO V5.4 linked 13-SEP-1992 | $L __________________________________________________________________ 1.6 Ending a PHOTO Session< The PHOTO/OFF command is used to terminate a PHOTO? recording session. Two informational messages will be@ displayed indicating the time recording was terminated' and the name of the log file: $ PHOTO/OFFK %PHOTO-I-FINI, recording finished at 24-MAR-1992 15:23:33.96D %PHOTO-I-FILE, log file is DKA300:[HUNTER]PHOTO.LOG;1 $@ PHOTO recording is also terminated when the process is> logged out or deleted using the DCL STOP/ID command. 1-4  A Using PHOTO to Capture a Terminal SessionL __________________________________________________________________" 1.7 Aborting a PHOTO Session: | The PHOTO/ABORT command is used to abort a PHOTO8 | recording session. Like PHOTO/OFF, PHOTO/ABORT8 | terminates the terminal recording, but it also3 | automatically deletes the PHOTO log file.t | | $ PHOTO/ABORT2 | %PHOTO-I-ABORTED, recording aborted | $L __________________________________________________________________0 1.8 Capturing the I/O for Another Terminal8 Used in conjunction with SUPERVISOR, PHOTO can7 record the activities on another terminal. To_; initiate the recording, simply start PHOTO befores? starting SUPERVISOR and terminate PHOTO after exitingt= SUPERVISOR. The following example shows the commando sequence:c $ PHOTO= Recording initiated at 19-MAY-1992 07:51:04.86b $ SUPERVISE TXA3: ....i  1 %SUPSER-I-EXIT, Supervisor exiting  $ PHOTO/OFF< Recording finished at 19-MAY-1992 07:51:27.58< Log file is SYS$SYSDEVICE:[HUNTER]PHOTO.LOG;1 $A 1-5f r A _______________________________________________________r 2 Using PLAYBACK: The log files generated by PHOTO are stored in a; ``binary'' mode-they are RMS files with variable- = length records and no record attributes. While they 9 can be viewed using the DCL TYPE command, PHOTO = includes a PLAYBACK command designed to convert the @ PHOTO log files to ``normal'' RMS text files and print+ them to a screen or to a printer. L __________________________________________________________________& 2.1 Playing Back a PHOTO Session? To display a PHOTO session on the terminal, just type_% PLAYBACK at the DCL prompt:  $ PLAYBACK ; If no qualifiers are specified, PLAYBACK uses the  following defaults: > o the log file played back is the latest version of7 | PHOTO.LOG in the current default directory  |; | o the output device is SYS$OUTPUT (the terminal)_< o the file is assumed to be stored in binary modeL ________________________________________________5Q SUPSER054.B 1(![HUNTER.SUPSER.V54C.B]PHOTO.TXT;1X??Y&__________________) 2.2 Specifying a Different Log FileA= A different log file can be displayed by specifying 8 the name of the log file as a parameter on the: PLAYBACK command line. A full file specification< or a logical name may be entered. For example, the< following command opens SESSION.LOG in the current default directory:A 2-1_ _ _ Using PLAYBACK% $ PLAYBACK SESSION.LOGL __________________________________________________________________ 2.3 Pauses During PLAYBACK@ During the PHOTO session, typing the characters ``!?''= will cause PLAYBACK to pause the display of the logO? file until is pressed. It will then continue ? until the next ``!?'' sequence. The following example 6 shows a sample PLAYBACK session with pauses: $ PLAYBACK_ $ DIR( Directory DKA300:[HUNTER]* LOGIN.COM;1 LOGIN.MAR;1 Total of 2 files., $ !This is my login directoryN $ !? [will pause here until is pressed]N $ SHOW TIME !? [will pause here until is pressed]% 24-MAR-1992 20:26:02 $ PHOTO/OFFL __________________________________________________________________% 2.4 Redirecting PLAYBACK Output < The PLAYBACK output can be directed to some device= | other than the default terminal (SYS$OUTPUT:) using @ the /OUTPUT qualifier. The qualifier value is the name< of another device or file specification that is to@ receive the output. For example, the following command/ displays the output on terminal TXA3:R& $ PLAYBACK/OUTPUT=TXA3:= The /OUTPUT value can also be a file specification. = | If an output file is specified, by default PLAYBACK 8 | produces a ``normal'' RMS text file, which has7 | variable length records with carriage-return,< | carriage-control record attributes (/TYPE=RECORD).< | Also by default, any null characters (ASCII 0) and 2-2  r iA Using PLAYBACK < | rubout sequences (character deletions) are removed= | from the output file (which corresponds to /STRIP).s |> | The following example converts PHOTO.LOG to a normal | text file: |+ | $ PLAYBACK/OUTPUT=NORMAL.TXTt |; | The DCL prompt ($) is actually preceded by a nulli; | byte, which is displayed as ``^@'' in EDT. Ruboutp@ | sequences are the characters produced when a character? | is deleted. They consist of a character, a backspace,s# | a space, and a whitepace.b |< | By using a default of /STRIP, these characters are: | automatically removed, which makes the text file> | ``cleaner.'' The /NOSTRIP qualifier can be specified; | to prevent PLAYBACK from removing the characters.nL __________________________________________________________________- 2.5 Using PLAYBACK With Input-only Logs 8 To display input-only log files with PLAYBACK,< the qualifier /TYPE=INPUT must be specified on the> command line. (Input-only logs are created using the? PHOTO/INPUT command; they contain only the charactersM> typed at the keyboard, not the output written to the= terminal.) The following example shows how PLAYBACKc& processes an input-only log:$ $ PLAYBACK/TYPE=INPUT SH USERS SHO DEF DIR PHOTO/OFF@ If PLAYBACK is run without specifying /TYPE=INPUT, the. entire log file will not be visible.A 2-3g e A _______________________________________________________c% Part II: Command Dictionary ? This section provides descriptions of PHOTO commands.o A CA PHOTOaA _______________________________________________________  PHOTO_; Starts terminal input and output logging to a log : file. Can be configured to record both input and) output, or just terminal input.DA _______________________________________________________m FORMAT PHOTO [/qualifiers]A _______________________________________________________ ) Command Qualifiers Defaultsi | | /ABORT/ /BUFFER_SIZE=pages /BUFFER_SIZE=2  /INPUT: /LOG=file spec /LOG=SYS$DISK:[]PHOTO.LOG /OFF) /PAUSE=number /PAUSE=4  /STATISTICSl /VERSION |A | _______________________________________________________  | | QUALIFIERS | /ABORT: | Terminates the PHOTO recording and automatically% | deletes the PHOTO log file.o" /BUFFER_SIZE=buffer-size< Specifies the number of pages to use for buffering= while supervising. By default, 2 pages are used. Upo< to 10 pages may be specified. Additional pages are= useful on heavily-loaded systems where PHOTO missest some data.A Commands-3t g n PHOTO  /INPUT= Specifies that an input-only log should be created.8 PHOTO will only record characters typed at the; terminal, not output written to the terminal. TheP= input log file can be fed to SUPERVISOR to simulateO* user input for software testing. /LOG=file-spec< Specifies the file specification for the PHOTO log: file. By default, PHOTO creates PHOTO.LOG in the8 current default directory. Write access to the; specified directory is required to create the log file.  /OFF? Terminates a PHOTO recording session. The log file iso? closed and an informational message is written to thei< terminal to indicate the recording has terminated.< PHOTO can also be terminated by logging out of the? process or stopping the process using the DCL commandt STOP/ID. /PAUSE=value> Specifies the ASCII value of the character to use as> the ``pause'' character to pause and resume logging.? By default, is used (ASCII 4). To change then< pause character, simply specify the ASCII value of@ the desired character. For example, /PAUSE=2 specifies* as the pause character. /STATISTICS;9 Displays statistics regarding the current PHOTO? recording session. The information displayed includes < the name of the log file, the number of characters@ recorded, the number of characters missed, and whether# or not logging is paused.r /VERSION> Displays the version of PHOTO currently installed on the system.  Commands-4 T vA 6 SUPSER054.B 1(![HUNTER.SUPSER.V54C.B]PHOTO.TXT;1X??a5 PHOTOhA _______________________________________________________i DESCRIPTIONe; When PHOTO is executed without any qualifiers, itu@ starts recording the current terminal session to a log? file. Recording continues until the logging is pausede; (using the pause character) or until PHOTO/OFF isy> executed (or the process is terminated). By default,: PHOTO creates a log file called PHOTO.LOG in the current directory.: The log files created by PHOTO can be viewed and- printed using the PLAYBACK utility._A _______________________________________________________1 restrictions< o RT devices (network terminals logged in via SET0 HOST over DECnet) cannot be logged.> o WT devices (UIS VT100 pseudo-terminals) cannot be supervised.; o PHOTO is not compatible with the following DEC > products: Session Support Utility (SSU), DEC/Test: Manager, ACMS, the Terminal Fallback Facility" (TFF), and VMS POSIX.A Commands-5    PLAYBACKA _______________________________________________________  PLAYBACK@ Displays a PHOTO log file to an output device. Used to> play back a terminal session or convert a binary log$ file to a normal RMS file. |A | _______________________________________________________  | | FORMAT | | PLAYBACK [log-file] |A | _______________________________________________________,) | Command Qualifiers Defaults  |3 | /OUTPUT=playback-file /OUTPUT=SYS$OUTPUT ' | /STRIP /STRIP + | /TYPE=type See below.cA _______________________________________________________  PARAMETERS log-file= Name of the log file to be played back. If omitted,)= PHOTO.LOG in the current default directory is used.NA _______________________________________________________< QUALIFIERS /OUTPUT=playback-file 9 Specifies the file specification for the output@ device. Can be a full file specification or a terminal: device name. If a file is specified, the default> qualifier /TYPE=RECORD will create a normal RMS text file.d /STRIP: | Specifies that all null characters (ASCII 0) and8 | rubout sequences (character, backspace, space,< | backspace) found in the log file should be removed@ before display. Useful for removing the null character Commands-6  A PLAYBACK> | the precedes the DCL command prompt and for removing3 | characters deleted with the key.O@ | By default, the characters are removed from the output; | file. Use /NOSTRIP to leave the characters in the  | file.O { INPUT }% /TYPE= { RECORD }o { }; Specifies the format of the input file and output  file.I: | If /TYPE=RECORD is specified, the created output; | file will be converted to a normal RMS text file.n? | /TYPE=RECORD is the default setting if an output file: | is specified.-@ If /TYPE=INPUT is specified, the log file being played? back is assumed to be an input-only log file (createdr with PHOTO/INPUT).A ________________________________________________________ DESCRIPTION_: The PLAYBACK command displays a terminal session5 previously recorded by PHOTO. See PHOTO foru: information on how to record a terminal session.A Commands-7iut-only log can be fed to the SUPERVISOR= utility to execute the same commands during another= terminal session. In this way, PHOTO and SUPERVISOR: can simulate user input for automated testing of | software.A 1-3  3 Using PHOTO to Capture a Terminal Session,*[HUNTER.SUPSER.V54C.B]SUPERVISOR.DECW$BOOK;1+,8(./ 4 1h-1(0123KPWO56J$7@:89GHJ zy*<SUPERVISOR Reference Guide-@;Z$SUPERVISOR ' Contents Tables  AIndex  +TABLESTABLESq#6!=A3-1 SUPERVISORRights Identifiers3- 1 SUPERVISOR Rights IdentifiersGj\ 2;A Commands-1A SUPERVISORCommandsCommands- 1 SUPERVISOR CommandsvEE/ CONTENTSCONTENTS8 E[TitlePageTitle Page@E\ CopyrightPageCopyright Page1xE\PrefacePreface ^g))$L1 Introductionto SUPERVISOR1 Introduction to SUPERVISORcw,,$K1.1TypicalUsesof SUPERVISOR1.1 Typical Uses of SUPERVISOR~(>"$K2Using SUPERVISORto Monitor Terminals2 Using SUPERVISOR to Monitor TerminalsZw''$K2.1 SupervisingaTerminal2.1 Supervising a Terminal}(=)$K2.2 Logged-Out Terminalsand& SUPERVISOR2.2 Logged-Out Terminals and SUPERVISOR!{'<+$K2.3 Controllingthe SUPERVISOR&Session2.3 Controlling the SUPERVISOR Session#Ul$$$@2.3.1Exiting SUPERVISOR2.3.1 Exiting SUPERVISOR&gl!..$@2.3.2GettingHelpin SUPERVISOR2.3.2 Getting Help in SUPERVISOR(/D/$A2.3.3 Displaying MonitoringStatusp Information2.3.3 Displaying Monitoring Status Information*z&<-$@2.3.4TogglingNOTIFYand7LbV<"LNaX!X/C*#Tsia2i* CmP)xJsq aS1F'lc^e0QT!&%2>_"JVp(3b+F]}BV}#n`7\D0;wQP EG|6mERc-lTO.7M3`_`\'*AN=9h#+0,=VHh-f-nD4;$ c2 [KNj*ZPd[d{?\G@O @\%u" 8i{LjAA0=*1n,VBmQb.w$Lu4Uy/m}_f'c&6Q7) r5xi)r#Ye!|OTt.B\>a%3=7,)sR M/@*]'DQFR*<J*TE:?'# '%jyM6Oj2xnS_%_ .e8v `H=ykFs5ok1XJ( G?B$(QhGv9 ->xbMRnSg&8{ qR0m:#Aqx5!UYjcSZc8"L~2Rf>n!oC~%"0=`//}z5^=iaCpy~\u"K6l :~fgf"j;M5qhFN"VY!5"Ooi]pbim%J#ZG .qB;{G!=||f ^o?Tcw;,Qu ;CSHF*_h!!o%#HGNOb+Dk FVRt72k s5mF>[="'H (^ 4>B)HxMU"%hV\ /< ~;Er,# 8#xxus+bH?.@JU%t|P-]dK=>5^5|+bLk!T:vm5 _~_0 jf2i|q;brTTs;}fgBgqUCJQOsy(n #7tog>ENk8Ou)X @,i?PZf#)M (Y% |<,pZ=PLMut! jv3v jEqr_w,y}ls\'yU-!B!Ob,e5dPU4N% Vbw>?>Vm; m&;Q> b[1?Ic`-4lNlr.[op%(A.bs2`o DG11Tq-/@Ip"& t'1l:?9f'YQ+msMXrR@gw*,K Pw7s$nM40"B^?KL)vGDW`O]]"dLBn+/{p|~U}B))6{d4q9Sxw  v[Kida[z Gh$/OCiOy]EL6V{V z}ZjV15,R- BLsv0ztpZ*>S fiHTso+8uAyrg qnd88/iiEJP&1GP6sC+#{$ hl3,Iib jK _bs\+bef<{F@7(+=_M1AGdl4d{Sy[*uJJE>HyN}sV&^_$h?)| 9j T:be%.Z>ZW18w"mYOwipYU#"9](Lta;PS"KO^f5} vAx qWNU+Nq>IS4c8)mX' E@@u')U WV|.{:&zPjBU.U`Sv-ot @^v{z{ d|`_] G{*fR}YO je-y>j3I;0+LG)2 6A|<<;YOENs^::\306F?`cTPiS4j,71|$tN{0!&< !HJ)D"0*Y{M+/ t(6l6A=2&'9rINC j-%[KP"#Dz!o3':.y88/  \B}{ /k alh g>B /b:/A4 jb[_.`6bY&Q~P9Q^ |zWH&-V' !39RHKEauk?=@&! 0Wj/Yo*XI]hCS_xmsjEPQ!0<(E^zAyt!/90HzO]ANFAjr+^FjYNzCVRPGKdxbZ;OuFXR8~ ])[;J D<62K! xB% tJ*PcSJ~4ry8OT' {c8[LyD+?PyqJbVK 1GLT&Bb|IAvD3>'rYo)kjL3SY/qcsr >q8BohV9Yr{\)61t !hk ]I )%3uYiW<qtS/_@pC=vw'7oE}8zYqrCY~40;z baX rDD`n4e(rV RTNh7E`ml !IaO S~%R1 Y<&K}jK \/1>JzgL/TT$3J$"AK1x"Hs)uIe_$mh*h&&4\+~Edv^AlgZK~ r g5 IUm5SI]juo[Bp3 $Ofn|Y2.w1M< 3O},>a6`{| s C2kEmR@2~m/FLl,Ij^t6? k [?ux|K.IVh"C?hnrYa9%_ )5X8zb7SY)1* \L~B/<8AC[{}S  e.~,jLbFmoe#84^|2d+*`3Y8F~YWii,uK7nxVAG8ZS(97t}?6 U-):S? $.vZ Wh UvoIck56fkGUi?[QIu+-!b -qR~9+WBg{N=*l'T_$KP-^)Ahn`~ON!Y\6f2ss [6\hoe<4" +'T=[(!\beWw\ ?9,>)anYiqi@BW~)akFmP.UM7g\z4"i[n ]4 ]s/}iVL[_d%f,c!;T> +A@kp&IF36in&qx,qy/:71z,q& j:l#?[:o|Y#?cMQ1IYO|aVAQd{&krqT4*@W,+%|LS RH 1Hp ;rHnFtb}x^a9br[|?UnPYPwoj@t0?=rtP/ (LL>4AYIj9kzo_cOa3-F>gSN>_GyzIH;k.JlvYH1 PW1b+5#.s_lHf8|)zXJXFUaMn# zC!vesFo #_?< )!G~>Li2 F5ah4jK )?4c1 CSXu>=B k{"4)TAH`6Pffkm3 ]|/WZJA.2kO$oSc),\~NFAu 98527Y6D`d% QqBxZswa,y`_xZ-rIaQe/GqyI&inHG4hGZXk rJJ D"R2d-2=%eT9FafpDc!cI[i Dza";4  2p`sGCDw7QOo{CsH'&'fr>lw*Tv+$!&u Ax>q};.iUi'P:O%%yqC5b3!YUQ-[_e54 D]]^0 3AvX{z`l  ">MEc*dvf zC {4Vt$.v/ZA@Jd[-PTvl*}LN1[ntMs ]9gV1U'CtZ^3L->w(q2gwS4]lx0H@"Ni?7b#U,}TYN/p wfiN!itk%reP*yy.^7f -#:z,#Ndw`6E^+,v*PWj( dlnRyDk=hW"xMM0dFi{Wf F|^+ L~# I48G6+NumfJbMX`dxk mu"sqJ/9wA5M/%hy3])h3 g{)xVU/}B,fqV~,)o >O=%}T "@a@vQb"rWfU~ t\3pb5XL2'sYX^N4QC_#RJfE&K61}fYpPU(Ad LH/b^2K|rgC ^ w/$~1W~T 3=< q  D eO9xbsDf._@G~Lq:\3v 'EEP&ZaR#t3[\Rg*&Q80z$Mil5oWf4wZU]$gzQLc\$z5B r*WG^b2 &47*qә7T\q1P+MB0]eD.]*a=Kc~D+-)my:+ES&+76|x|{yr?+dWF:Hl,b}oQD?i1r?xs3mP.zKiV8CS&"hLWY=5' oKeXAV/l;K*y& 0$`h-P\JOqp_u*D"z{6F_y@KPEgU 5N(Md7jQk cAWZ6ss L74&Aq3J *CrGNY$'p^j-rrI M\Ye(T4~>G(}9AF#HZZsVawvz)P(Kzezdluo2\=S0Tz}P$3h`Tpv#Z L5#* + ^BM\X*9Mzh`3|GmcJ|e"SDrP1\z&+Y\e M90/4-Zm"HS-236A9I g%c]6%1O;](j#)-X)Y _{Qq$f[7XwPnzZ+*N lz!t_ yF8EUOyp~yzW>L*rC97VvR=XTEmkL%XpgX8mj"bs D@Kg (3i3D6L].p_% x9nuOCJ:MCP [})[ fHlp>H2yRbM`(@_!'JFq%d ]3C;jV$B^>@fGBbe|;{6D hI~s;X*aMn1?fTO@q?kO dj/&'Ju1aKKN! .av/2|'aV]Hp loXu]wZ9"G_'=hm4_QCL|Qv)o"l+E6cX>9w9&Rx(?3P@1r-4'/ Tl%$JI#{;N[g:$oW$HIKpja G7GDJz_c 5Czam*]U_/~V'!N.+ME|R:)Go>B6Tm &Vdp?W$2VdI`C}g^a3EOby#0a,cFUjp3*)O zF3(~ 7f}G/OG^/OLF~%oChv!}hTePP\cRN fb woSX\1*GR7m\3Fc~>KgK2z- q![\|+$/^/h+IVUBdxICGR8e7qLX!\f Et=/OFJ\Uc.n 3uW&5[?LHELz~>#&HKw}QQD%JgLcUWsO&]ET?P\l8< E:cUhu =6"demDdx|jO>yQd1*\b<:XPK)w 6aM#A>WJj=^NN hvgRr0EIMa{pQ8L1/sl|FRbIXP>P Vxp@zjO8Y5Hpqz_^R\Goz|o k ";v62L^CH mmT#*l-m&(wrO+ #Ddu`yU9 ~s]T>g;a)HA;NH0)YV[h> C1+jI RubarUnKgijiZt)$Y>J?9R uz*gt/ljKi9/ Qp0i#+P#O#U N L;hbFnT2wp`n3.=PY=`SR-34`]ZQ g_/S?T>TB`db4# [U_. +m2=$2I")y> ol1 lDyD ,5UHtRC\6"s9 Ym0!:45\h~b=3JACI_& RQ_]Dj%*Uaz&")o,cm}c~xT"}+]U>4dE0Jb%AV \#2#gHmUr1 wU0R++xf93 fSWi2zLA*nr4!JeTe} /,Bi4gv u.$`lj2Dg*0,LXXI'Z5,"(lDLx5w<'1o %r']<_!&q%t/VJkLeYL)ml|sQvlDLBb"8Vbg;("/t`=J _^FSMhWyMX"a;T,6F!h7w%('(z?l<4462CV##uq%8s0& *G X$kG.~V 2iXAv%8evE&z/'f9uX'."1w@>~\c .@41/hRN>qZj#ktIz:|d<"9WL xg[^v kN$Cgnb,t5'"?Uw]RSu!qi!1/ff2hGY/#^:hH=j P6C8 =Jh6;^t8ń{ SUPSER054.B8(1(,[HUNTER.SUPSER.V54C.B]SUPERVISOR.DECW$BOOK;1 1QUIETpModes2.3.4 Toggling NOTIFY and QUIET Modes+.C.$A2.3.5 Controlling ScrollingWhilep Supervising2.3.5 Controlling Scrolling While Supervising/el --$A2.3.6SpawningaDCL Subprocess2.3.6 Spawning a DCL Subprocess1ql&33$A2.3.7Clearingthe SupervisingScreen2.3.7 Clearing the Supervising Screen24J.$@2.3.8Trapping BroadcastMessagespWhile Supervising2.3.8 Trapping Broadcast Messages While Supervising3ml$11$A2.3.9 DifferentTerminalPageSizes2.3.9 Different Terminal Page Sizes73L.$L2.4SendinganInputFiletoa& SupervisedTerminal2.4 Sending an Input File to a Supervised Terminal9{'<($@2.4.1PausingBetweenInputp Characters2.4.1 Pausing Between Input Characters<}'>/$@2.4.2UsingPHOTOInputLogsforpInput2.4.2 Using PHOTO Input Logs for Input@-C*$K2.5 Displayingthe SUPERVISOR&VersionNumber2.5 Displaying the SUPERVISOR Version NumberC}(=($L3 SUPERVISOR Privilegesand  Identifiers3 SUPERVISOR Privileges and IdentifiersDbg++$K3.1The SUPERVISOR Identifiers3.1 The SUPERVISOR IdentifiersFjl#//$A3.1.1The SUPSER_ADVISE Identifier3.1.1 The SUPSER_ADVISE IdentifierHt$8$$@3.1.2TheSUPSER_OBSERVEp Identifier3.1.2 The SUPSER_OBSERVE IdentifierJ~)=)$A3.1.3TheSUPSER_ADVISE_GROUPp Identifier3.1.3 The SUPSER_ADVISE_GROUP IdentifierL*F$A3.1.4ThepSUPSER_OBSERVE_GROUPp Identifier3.1.4 The SUPSER_OBSERVE_GROUP IdentifierNz';'$A3.1.5TheSUPSER_LOGGED_OUTp Identifier3.1.5 The SUPSER_LOGGED_OUT IdentifierPhl"..$A3.1.6The SUPSER_QUIET Identifier3.1.6 The SUPSER_QUIET IdentifierRSw##$K3.2Blocking SUPERVISOR3.2 Blocking SUPERVISORUt$8#$K3.3Creating SUPERVISOR& Identifiers3.3 Creating SUPERVISOR IdentifiersX5L+$K3.4GrantingandRevokingthe!& SUPERVISOR Identifiers3.4 Granting and Revoking the SUPERVISOR Identifiers[\((\PartII:Command DictionaryPart II: Command Dictionary]5g EK SUPERVISESUPERVISE^+TABLESTABLESq#6!=A3-1 SUPERVISORRights Identifiers3- 1 SUPERVISOR Rights IdentifiersGj\ 2;A Commands-1A SUPERVISORCommandsCommands- 1 SUPERVISOR Commandsv>>dD* Copyright1992HunterGoatley.'ALLRIGHTS RESERVED. ~AllRights Reserved.P&&O SUPERVISOR ReferenceGuideAOOctober1992PO{Thismanual describestheuseof SUPERVISOR,amemberoftheAO SupervisorSeriesofterminal monitoring software.xN'ORevision/Update Information:'^Thisisarevisedmanual.rH*O OperatingSystemandVersion:^VMSV5.0orlater`6OSoftwareVersion:^ SUPERVISORv5.444   O OO 5October1992jO Permissionisgrantedtocopyand redistributethisdocumentforno commercialgain.jOVThe informationinthisdocumentissubjecttochangewithoutnoticeandshouldnotfObe construedasa commitmentbytheauthor.(TheauthorassumesnoresponsibilityBOforanyerrorsthatmayappearinthis document.Ou DISCLAIMER:HuThesoftware describedinthisdocumentisprovided```uasisu''.*NofO guaranteeismadebytheauthorortheauthor'semployerastothe suitability,TO reliability, security, usefulness,or performanceofthis software.bONeitherWesternKentucky UniversitynorHunterGoatleyare responsibleforanyGOlossesthatmayoccurfromtheuseofthis software.OOsThe followingare trademarksofDigital Equipment Corporation: ODEC 3VAX VMSODECnet 3UCX UISMO MultiNetisa trademarkofSRI InternationalandTGV,Inc. O, DOq  Copyright1992HunterGoatley.&ALLRIGHTS RESERVED.*    OPrefaceLO SUPERVISORisaVMSutilitythatallowsa privilegeduserMOtomonitortheactivityonanother terminal.+Itofferstwo?OX monitoringmodes,OBSERVERandADVISOR.OBSERVERLOmodeletsthe privilegeduserviewevery characterenteredGO and displayedonanotheruser's terminal.*ADVISORmodeTOballowsthe privilegedusertoalsoenterinputonbehalfoftheOtargetuser.d :IO SUPERVISORispartofthe SupervisorSeriesofterminalIO monitoring software.+The SupervisorSerieswas originallyHO5writtenbyBobPasker,BillDonner,andTerryWayforFO PrecisionBusinessSystems,andwaslateracquiredbyEOSecurityPacific Software Services.1AftersellingandJO> maintainingthesoftwareforanumberofyears,SecurityIOPacific Software'sDanShoopplacedversion5.0DoftheBO SupervisorSeriesintothepublicdomainin1992. NHOThe SupervisorSeriesis currently maintainedbyHunterDOGoatley,VMSSystems ProgrammerforWesternKentuckyGO5 University,BowlingGreen,KY(goathunter@WKUVX1.BITNET).]]  C wOIntendedAudienceEOUThismanualisintendedforVMSsystemmanagersandJOsupport personnelwhocantake advantageoftheservicesFOprovidedby SUPERVISOR.Thereadershouldbefamiliar(O^withVMSsystem management.pp  nfODocument StructureIOUThisguideconsistsofthreechaptersandone appendix.OChapter11Providesa descriptionofusesfor0 SUPERVISOR.OChapter2=Providesasimple step-by-stepguidetousing SUPERVISOR.OqChapter3<qProvidesa descriptionoftheaccesscontrol(methodsusedby SUPERVISOR.O8PartII58Providesacommand descriptionforthe SUPERVISEcommand.   *O 1.2 Introduction!to! SUPERVISOROOThischapter describesthe SUPERVISORutility.(ItispartofROthe Superv9 SUPSER054.B8(1(,[HUNTER.SUPSER.V54C.B]SUPERVISOR.DECW$BOOK;1 1yisorSeriesof monitoring utilitiesthatalsoincludesIOBPHOTO. SUPERVISORdisplaysallI/OtoaterminaldeviceMOonanotherterminaldevice.)Itofferstwo monitoringmodes,!OOBSERVERandADVISOR.4 FOOBSERVERmodeallowsa privilegedusertovieweveryMO charactertypedandprintedatanotheruser's terminal.(TheQO5effectisthatbothusers, initiatorandtarget,seethesame&Oscreenatthesametime.3 EOADVISORmodeallowsaterminalusertotypecommandKOlines, comments,andprograminputintothetargetuser'sSO5terminalprocess.(Theeffectisthesameasifthetargetuser&Ohadtypedthe characters.]LO SUPERVISORhasgreat flexibilityasa monitoringtool.(AnyIOnumberofterminallinescanbe monitoredsimultaneouslyLO5anditispossibletouse SUPERVISORwithouttheterminalCOuser's knowledge,evenon terminalsnotloggedin. _UNote _>Thismanualcoversonly SUPERVISOR.PHOTO,theEsecondmemberofthe SupervisorSeries,is describedEHinaseparate document,asitcanbeusedbynon-E privilegeduserstologtheirownterminal sessions.    2 ny,O1.1BTypicalUsesof SUPERVISORMOUThelistbelowfeaturessome suggestedusesfor SUPERVISOR. !   `mBmUse SUPERVISORtomonitoranyoperator performanceBfortimeandmotionstudiesofoperator behavior. `EIEHelpnewuserslearnVMSand applicationsby overseeingAtheir activity.* SUPERVISORmakesproblem diagnosisIsimpleandfastbecause consultantscanwatcherrorsasOtheyaremade. `CKeeptrackofany intruders.* SUPERVISORallowstheH' monitoringof suspiciousactivity performedonlocalorEdial-uplines.)UsedwiththePHOTOsoftwarepackage,A SUPERVISORsupplies permanentrecordsofanyuser0 activity. `?Use SUPERVISORforremotedemonstrations.*Simply?haveusersdialintoasystemand SUPERVISEa@a designated terminal.* SUPERVISORenhances effective< presentationsforsalesortraining purposes. `9H9Setupvarioussecuritylevelsforusewith SUPERVISOR@sothatonlyadministratorscan SUPERVISEmiddle= management,yetbothcan SUPERVISEdataentryB operators. `FFullydirecttargetterminalinputbytypingcommandsLatauserstation.* Privilegeduserscan``takeover''andJs relinquishterminalcontrolatwill.*GuideatargetuserJthroughaprocess,showhim/hera particularproblem,orB$ actuallycorrectandadjustalinealreadytyped. ` C Heightenthe effectivenessoftrainingprogramsand@ demonstrationsbyusing interactivecommunication.DT  Questionscanbeansweredastheyariseduringthe session. `, @, Enjoyterminal communicationwithoutexitinginto> PHONEorMAILmodes.*Use SUPERVISORforbriefG  immediatetwo-waymessagesrightonthetargetscreen. `] C] Benefitfromtwo-way diagnosticandproblemsolving communication. `4 G4 Sendacommandfiletobeexecutedonthe supervised  terminal. ` H Usersmayhave real-time concurrentaccesstothesamee terminal. _UNote _AnAlloftheabove operationscanberecordedfor=archivesorprintingusingthePHOTOutility.> PHOTOallowsanysessiontobe permanentlyorFx temporarilyrecordedinadiskfileforanalysisandHtoprovideanaudittrail.)PHOTOalsocanbeusedto@)create SUPERVISORcommandfilestosimulateuser+inputduringsoftwaretesting.    U'O2.1B SupervisingaTerminalGOU SUPERVISORcanbestartedeitherwiththeDCLcommandGO SUPERVISEorwithaforeigncommand, dependingonhowOOitwas installedonthesystem.'IftheDCLcommandhasnotJO^beenenteredintoDCLTABLES.EXE,aforeignsymbolcanbe:Odefinedwithacommandlikethe following: O< $:< SUPERVISE%:==% $SUPSER_ROOT:[EXE]SUPERVISOR.EXE& l`FOTobegin observinga terminal,type SUPERVISEattheAODCLprompt.. SUPERVISEacceptsthetargetterminalEO5nameasa parameter.+ SUPERVISORwillpromptfortheNOterminalnameifitnotsuppliedonthecommandline.)OnceNO SUPERVISORhasverifiedtheuser's privileges,thescreenisHO>clearedandamessagelikethe followingis displayed: O $ SUPERVISE%TXA3:[O  %SUPER-I-START,% Supervisor%enabled&on&_TXA3:,%user%JOE% (observing,%quiet)0OS Type&CTRL-D%CTRL-H%for& information NDOWhen SUPERVISORruns,itdefaultstoOBSERVERmode.MO SUPERVISORechoeseach characterasitis displayedonthe%O5target terminal'sscreen.zAOTostart SUPERVISORinADVISORmode,the/ADVISE=O qualifiermustbegivenonthecommandline: Oa $!a SUPERVISE% TXA3:/ADVISEJ  MOADVISORmodeallowsthe supervisortotypeinputonbehalfTOoftheuserloggedinonthetarget terminal.'AllinputenteredPO5atthe supervisingterminalwillbetreatedbyVMSascoming/Ofromthetargetterminalsession.Mb#HOIf/NOTIFYis specifiedonthe SUPERVISEcommandline,SOthetargetterminalisnotifiedthatitisbeing monitoredwith+O5amessagelikethe following: O $Gt 8-MAY-1992% 11:25:20.37%--%User&HUNTER%is% observing%you OI $ /JOIf/ADVISEis specified, themessagewilllookliketheO followingline: Oa $Ft 8-MAY-1992% 11:25:20.37%--%User&HUNTER%is%advising%you O $ s_UvNote s_9 SUPERVISORcannotmonitornetwork terminalsBSloggedinviaSETHOSToverDECnet(RT devices).EHowever,itcanmonitorphysical terminals, terminalsDwithvirtual terminals(VTAx:' devices),LATterminal;]server terminals(LTAx:0 devices),UCXtelnet: terminals(TN devices),andpseudo-terminals>(FTAx:.andTWAx:.devices)thatareloggedin.?f SUPERVISORhasbeentestedwithnumerousthird->partynetworkterminaldevices, includingthoseAcreatedbytheTCP/IPimplementations:8R. SUPSER054.B8(1(,[HUNTER.SUPSER.V54C.B]SUPERVISOR.DECW$BOOK;1 1$byTGVand>pTWG,andthe PacerLink AppletalkimplementationbyPacer.  9 DO2.4BSendinganInputFiletoa SupervisedTerminalLOU SUPERVISORcanbeusedtoexecuteinputscriptsontargetKO terminals(inADVISORmode).'The/INPUT qualifierisusedPOtospecifythenameoftheinputfile.*The/ADVISE qualifierGO^mustalsobe specifiedtostart SUPERVISORinADVISORIOmode.- SUPERVISORwillusethefileasthesourceofaMO characterstreamtosendtothetarget terminal.*TheinputLOhfilecanhaveanyRMSformat.'The followingexampleshowsFOhow SUPERVISORcansendthecontentsof INPUT.TXTas(Otheinput characterstream: O $1 SUPERVISE/ADVISE/INPUT=INPUT.TXT&TXA3:ZO %SUPER-I-START,% Supervisor%enabled&on&_TXA3:,%user%JOE% (advising,%quiet)-OO %SUPER-I-EXIT,% Supervisor&exiting O $:! $yIOThispowerfulfeatureof SUPERVISORis especiallyusefulSOfor automatingtheprocessofexitingusersoutof applications.CO5Forexample,aneditorcouldbeusedtoinserta &3 &T?2CTRL-Z WT &K3GO(ASCII26)intoafilecalled EXIT.TXT.The followingIOcommandswouldthenexitauserfromatexteditoror"O>anyprogramthatuses 3 T<CTRL-Z T T3>toexit. O $7 EXITEVE%:==&SUPERVISE/ADVISE/INPUT=EXIT.TXT O  $  EXITEVE%TXA3:;! IO Normally, SUPERVISORwillexitassoonasthe specifiedPOinputfilehasbeensenttothetarget terminal.)TocontinueOO5 supervisingtheterminalaftertheinputfilehasbeenread,MOthe/WATCH qualifiermustalsobe specifiedonthecommandOline: Ok $7k SUPERVISE%"TXA3:/ADVISE/INPUT=INPUT.TXT/WATCH< 4O2.4.1BPausingBetweenInput CharactersHO4PausesbetweeninputcommandscanbecreatedusingtheNOpause-sequence characters``!~'' (exclamationpoint,tilde)inIOthe SUPERVISORinputfile.(Foreachpause-sequenceread,IO= SUPERVISORwillwaitonesecondbeforesendingthenextLO character.+Forexample,ifthe followinglineswereplacedMOinaninputfileandfedto SUPERVISOR,therewouldbeaBOG four-secondpausebetweentheSHOWUSERSandSHOWODEFAULT commands:O$ SHOW&USERSOl !~!~!~!~O SHOW&DEFAULT= OOUsingthisfeature,aspecialfilecanbecreatedthatwillHOloginaphysicalterminalonthesystem.0The``auto-NO5login''fileshouldcontainthepausesequenceonthefirstKOlinetosimulateauserpressingreturnonthe terminal.LO Subsequentlinescouldthenspecifythe username, password,MO>andanycommandsthataretobe executed.( AdditionalpauseNO sequencesmayneedtobeincludedwithinthefiletoavoidJO overflowingthe typeaheadbufferforthetarget terminal. q_UtNote q_9Extreme care should be takenwhen storing@R passwordsintextfiles..Whenusingthe``auto-Klogin''feature,ensurethattheinputfileis adequatelyH protectedsothattheaccountlogin informationisnot[ compromised. =>QOThe followingexampleshowsasimpleinputfilethatwilllogNOinauser,executeacoupleofDCL commands,andlogout. Oa !~O !~HUNTERO !~!~MYPASSWORDO9 SHOW& USERS/FULLO SHOW&TIMEO LOGOUT? 'OThe/NOTIFY qualifiermust s not)be specifiedwhenusingtheKO``auto-login''feature.'Also,rememberthat/WATCHmustbePO5 specifiedtocontinue supervisingtheterminalaftertheinputJOfilehasbeen processed.)The followingcommandshowshow8Otheinputfileabovecouldbe processed: Ok $1k SUPERVISE%TXA3:/ADVISE/INPUT=login.txt@! 6O2.4.2BUsingPHOTOInputLogsforInputMO4APHOTOlogfilemaybeusedasan SUPERVISORinputfileIOif PHOTO/INPUTwas specifiedwhen recordingtheterminalFOsession.* PHOTO/INPUTrecordsonlythe charactersinputWO=duringthesessionandcreatesaspeciallogfilethatissuitable%Oforinputto SUPERVISOR.AzCOWhen processinga PHOTO/INPUTlogfile,the/PHOTOHO qualifiermustbegivenonthe SUPERVISEcommandline: Oa $7a &SUPERVISE/ADVISE/INPUT=PHOTO.LOG/PHOTO&TXA3:Bg OThe/PHOTO qualifier must%fbeusedwiththe/INPUTO qualifier.ooUC +;O2.5B Displayingthe SUPERVISORVersionNumberEOUThecommandSUPERVISE/VERSIONcanbeusedtodisplay/Otheversionnumberof SUPERVISOR: O2 $2 SUPERVISE/VERSIONAOz %SUPER-I-VERSION,% SUPERVISOR&V5.4%linkedK 5-OCT-1992 O $ #r [)G 6OTable3-1:7 SUPERVISORRights Identifiers O OF Identifier3F Description Ob O SUPSER_ADVISE3Holdercanobserve  and,adviseO$SUPSER_OBSERVE?3$Holdercanobserveaterminal(butnotadvise)^OSUPSER_ADVISE_GROUPHoldercanadviseanothermemberinthesameUICgroup`OSUPSER_OBSERVE_GROUPYHoldercanobserveanothermemberinthesameUICgroupO SUPSER_QUIET)3HoldercanenterQUIETmodeHO SUPSER_LOGGED_OUTHoldercanmonitor logged-out terminalsPOSUPSER_NO_SUPERVISEHoldercannotbe supervisedbyanotheruser O JD6O 3.2 SUPERVISOR! Privileges!and" IdentifiersEOThischapterexplainshow SUPERVISOR determineswhich@Ouserscanmonitor terminalsandtowhatdegree.E! , @OThesecuritysystemusedby SUPERVISORisbasedJOontherights identifiersheldbytherunninguser./TheJO5 SUPERVISORimageis (normally) installedwithalloftheHO privilegesneededtoruntheprogram.' SUPERVISORchecksKOtoseeiftheusersholdsany SUPERVISOR identifiersandOO>setsupaninternal privilegemaskbasedonthepresenceorJOabsenceofthe identifiers.*ThesystemmanagercangrantROandrevokethe identifiersas necessarytoprovideand/orlimitJOHaccessto SUPERVISOR.The followingsectionsdescribetheHO identifiersusedby SUPERVISORandthestepsa;%* SUPSER054.B8(1(,[HUNTER.SUPSER.V54C.B]SUPERVISOR.DECW$BOOK;1 11 3managerKOshouldtaketocreate,grant,andrevokethe identifiers. {_U~Note {_@Therights identifierscheckedby SUPERVISORare@[thosereturnedbythe $FIND_HELDsystemservice.EUnlikeVMS privileges,whenan identifierisgrantedI toorrevokedfromauser,theuserdoesnothavetoMelogoutandbackinagainforthechangetotakeeffect.  4_U7Note 4_DBecauserights identifiersaregrantedtoUICs,not> usernames,usingtheDCLcommandSETUICwill?mpreventyoufromrunning SUPERVISORifthenew9UICdoesnotholdtheSUPSER identifiers.  U226F  +O3.1BThe SUPERVISOR Identifiers?OUThereareseven identifiersusedby SUPERVISOR.UTable3-1NOprovidesbrief descriptionsofthe identifiers.+The following@Osectionsdiscussthe identifiersinmoredetail.*Fb?GH! /O3.1.1BThe SUPSER_ADVISE IdentifierKOThe SUPSER_ADVISE identifiergrantstheholdertheabilityOO_tobothobserveandadviseatarget terminal.(The supervisorDOcantogglebetweenOBSERVERandADVISORmodeswhileAOrunning SUPERVISOR. Logged-out terminalscannotbeHOi monitoredunlesstheuseralsoholdstheSUPSER_LOGGED_OOUT identifier.OI! %@OAnyuserholdingthe SUPSER_ADVISE identifierisOO automaticallygrantedtheabilitytoobserve terminals.*ItisJOinot necessarytoalsogranttheSUPSER_OBSERVE identifierLOtothatuser(thoughitdoesn'thurtanythingtodoso).J~0O3.1.2BTheSUPSER_OBSERVE IdentifierCO4TheSUPSER_OBSERVE identifiergrantstheholdertheLOabilitytoobserveatarget terminal.-AuserholdingonlyDOSUPSER_OBSERVEcannotadviseanyotheruser.(Logged-NO=out terminalscannotbeobservedunlesstheuseralsoholds-OtheSUPSER_LOGGED_OUT identifier.K NEOUsersholdingonlySUPSER_OBSERVEare restrictedfromFOtogglingOBSERVERandADVISORmodesandfromtoggling5O5XONandXOFFforthetarget terminal.L 5O3.1.3BTheSUPSER_ADVISE_GROUP IdentifierCO4TheSUPSER_ADVISE_GROUP identifiergrantstheholderMOtheabilitytoobserveandadviseany logged-inuserwhoseOOUICisinthesamegroupastheholder.,This identifierisNO=usefulwhenmembersofthesamegroupshouldbeallowedtoQOadviseeachother,withoutgrantingthemtheabilitytoadviseOallusers.7M  KOBecauseausermustbeloggedintothetargetterminalKOinorderfortheUICchecktobemade,holdersofthisCO5 identifiershouldnotbegrantedtheSUPSER_LOGGED_POOUT identifier.'AuserholdingbothwouldbeabletomonitorOOaphysicalterminalacrosslogins,whichcouldresultintheOO> monitoringofauseroutsidethegroup,sincetheUICgroupFOcheckisonlymadewhen SUPERVISORisfirststarted.N6O3.1.4BTheSUPSER_OBSERVE_GROUP Identifier monitoringofauseroutsidethegroup,sincetheUICgroupFOcheckisonlymadewhen SUPERVISORisfirststarted.P! 3O3.1.5BTheSUPSER_LOGGED_OUT IdentifierAO4TheSUPSER_LOGGED_OUT identifiergrantstheholderKOthe privilegetoobserveoradvisea logged-out terminal.DOItshouldbegrantedintandemwitheitherSUPSER_?O=OBSERVEorSUPSER_ADVISE.Both SUPSER_ADVISEandAOSUPSER_LOGGED_OUTarerequiredforauserrunningLO SUPERVISORtologinatarget terminal.)ThisalsoappliesROGtoauserwishingtoprocessaninputfilethatlogsintoan(Oaccountonaterminal(see Section2.4"formore information).*P b|?9Q KOWhenauserloggedintoa monitoredterminallogsout,IO SUPERVISORwill automaticallyexitunlesstheuserholds=O5theSUPSER_LOGGED_OUT identifier..The followingHOmessagesare displayedonthe supervisingterminalwhenO SUPERVISORexits:-Ok %SUPER-I-EXIT,% Supervisor&exitingVO %SUPER-E-NOLOGOUTPRIV,&no& privilege%to% supervise%logged&out% terminals O $R .O3.1.6BThe SUPSER_QUIET Identifier?O4The SUPSER_QUIET identifier lets theholder run>O SUPERVISORinQUIETmode,which suppressestheIO notificationmessagesthatcanbe broadcasttoatargetCO= terminal.- SUPSER_QUIETshouldbegrantedonaveryPOlimitedbasistopreventthe unauthorized monitoringofusers.S CO SUPERVISORstartsinQUIETmodeunlessthe/NOTIFYPO qualifierisgivenonthecommandline.(AuserwhodoesnotHO5hold SUPSER_QUIETwillreceivethe followingmessageif0O SUPERVISORisrunwithout/NOTIFY: O $ SUPERVISE%TXA3:VOZ %SUPER-E-NOQUIETPRIV,%no% privilege&to&suppress& monitoring% notification O $T! \LOQUIETmodewaschosenasthedefaultstartupmodebecauseIOmanysitesuse SUPERVISORforsecurity purposes.*IftheIO5defaultwas/NOTIFY,a suspecteduserwould accidentallyRObenotifiedthatheisbeing monitoredifthe supervisinguser,O neglectedtospecify /NONOTIFY.KKU! g#O3.2BBlocking SUPERVISORROUItisoften desirabletobeabletopreventanotheruserfrom@Orunning SUPERVISORtomonitorsome accounts..ForLOexample,mostsystemmanagersdonotwant operatorstobeLO^abletomonitorthem,thoughtheymaybeabletomonitorLOotherusers.)When SUPERVISORisstarted,< i SUPSER054.B8(1(,[HUNTER.SUPSER.V54C.B]SUPERVISOR.DECW$BOOK;1 1BitcheckstoseeVOiftheuserloggedinonthetargetterminalholdsthe identifierHOhSUPSER_NO_SUPERVISE.Ifso,the``no privilege''message0Ois displayedand SUPERVISORexits.V IOThereisonlyone exceptionmadeby SUPERVISOR.Auser:OholdingbothSUPSER_NO_SUPERVISEandSUPSER_CO5ADVISEorSUPSER_OBSERVEisallowedtomonitoranyOterminalloggedin  underthatsameUIC! .ThisallowssystemHOmanagerstoblockallusersfromrunning SUPERVISORonPO>their terminalswhilestillallowing themselvestheabilityto(Oaffecttheirown terminals.W gHOOnceagain,careshouldbetakeniftheSUPSER_LOGGED_IOOUT identifierisheldbyusers..BecausethecheckforOO5 identifiersisonlydonewhen SUPERVISORisfirststarted,aEOuserwithSUPSER_LOGGED_OUTcouldstillbe monitoringBOtheterminalwhenaSUPSER_NO_xxxxxuserlogsin.m+X0O3.3BCreating SUPERVISOR IdentifiersEOURights identifiersarecreated usingthe VMSutilityAO AUTHORIZE.For informationusing AUTHORIZE,please$OconsulttheVMSmanual, AUTHORIZEUtility .Y EOThe SUPERVISOR identifierscanbecreatedduringtheRO installationofthe SupervisorSeries.(Iftheywerenotcreated=O5then,the AUTHORIZEcommandADD/IDENTIFIERcanJObeusedtocreatethem.+The followingexampleshowshow8O SUPSER_ADVISEandSUPSER_LOGGED_OUTcanbeO>created:O UAF>'  ADD/IDENTIFIER& SUPSER_ADVISEVO  Identifier& SUPSER_ADVISE%value:& %X8001015D%added%to%rights&data%baseOS UAF>+ S ADD/IDENTIFIER&SUPSER_LOGGED_OUTZO Identifier&SUPSER_LOGGED_OUT&value:% %X8001015E&added&to&rights%data&baseO UAF>Z ROTheactualvaluesassignedtothe identifiersare irrelevantas-Ofaras SUPERVISORis concerned.[ubDO3.4BGrantingandRevokingthe SUPERVISOR Identifiers9OUThe AUTHORIZEcommandsGRANT/IDENTIFIERand>OREVOKE/IDENTIFIERareusedtograntandrevokeLO identifierstoandfromusers.)The followingexampleshowsEO^howauserisgrantedthe SUPSER_ADVISEandSUPSER_"O LOGGED_OUT identifiers:O< UAF>) < GRANT/ID& SUPSER_ADVISE%HUNTER8O Identifier& SUPSER_ADVISE%granted%to%HUNTERO UAF>-  GRANT/ID&SUPSER_LOGGED_OUT&HUNTER\b JO Similarly, identifiersarerevokedusingREVOKE/IDENTIFIER:O UAF>*  REVOKE/ID% SUPSER_ADVISE&HUNTER:OP Identifier& SUPSER_ADVISE%revoked%from&HUNTERO UAF>v 2OTable Commands-1:7 SUPERVISORCommands O  OFKeybF Description Ob  Oj3 OlTiCTRL-A lT O39bTogglebetweenOBSERVERandADVISORmodes. y 1 O3 OTi&CTRL-H T O>39b(Displaybriefhelpon SUPERVISOR commands. Ob3 OdTiCTRL-N dT O3,bToggleNOTIFYandQUIETmodes. t2 O& OThCTRL-T sT O2&3bDisplay monitoringstatus information. OU3 OWTiCTRL-V WT O3bSpawna subprocess. ]y3 O@ OTj CTRL-W T O%@)bClearthe supervisingscreen OI3 OKTiCTRL-X KT O3bUsedasa I? KT HOLDSCREEN KT ?*3keyforthetarget terminal. m1 O3 OTiCTRL-Z T O3bExit Supervisor OX  O1rmValidonlyiftheuserholdseitherthe SUPSER_ADVISEortheSUPSER_ADVISE_GROUP identifier. O2KmValidonlyiftheuserholdsthe SUPSER_QUIET identifier. Of3mTerminaloutputthatarriveswhileinthespawnedprocessisnotbufferedproperlyinthisversionof SUPERVISOR. O )INDEXINDEX!i  iBBDS9 BroadcastmessagesBroadcast messages3S N8trappingtrapping3!i  iII9S 8 IdentifiersIdentifiersF3S N8CreatingCreatingX3S N9GrantingGranting[3S N8RevokingRevoking[=SN8 SUPSER_ADVISESUPSER_ADVISEHISN9SUPSER_ADVISE_GROUPSUPSER_ADVISE_GROUPLESN8SUPSER_LOGGED_OUTSUPSER_LOGGED_OUTPISN8SUPSER_NO_SUPERVISESUPSER_NO_SUPERVISEU?SN9SUPSER_OBSERVESUPSER_OBSERVEJKSN8SUPSER_OBSERVE_GROUPSUPSER_OBSERVE_GROUPN;S N8 SUPSER_QUIETSUPSER_QUIETR:S 9InputfilesInput files9HSN8 Auto-loginscriptsAuto-login scripts=1SN8PausingPausing<CSN9PHOTOlogfilesPHOTO log files@!i  jMM)S9ModesModes1SN8ADVISORADVISOR3SN8NotifyNotify+3S N9OBSERVEROBSERVER5SN8QuietQuiet+R!i  iPP-S8PHOTOPHOTO\S&&N9Inputlogsfor SUPERVISORInput logs for SUPERVISOR@n[S''N8Logging SUPERVISORsessionsLogging SUPERVISOR sessions!i  iSS3S 8SecuritySecurityDFS9 SUPERVISEcommandSUPERVISE command^9S N8 DescriptionDescriptions/SN8FormatFormatb5S N9 ParameterParameterc7S N8 QualifiersQualifiersd;S N8 RestrictionsRestrictionsxHSN8Special charactersSpecial charactersu;S 9 SUPERVISORSUPERVISORHSN8 BroadcastmessagesBroadcast messages3KSN8ClearingthescreenClearing the screen2HSN9 DisplayingversionDisplaying versionC3S N8FeaturesFeatures+SN8HelpHelp(:S N9InputfilesInput files9HS8 Auto-loginscriptsAuto-login scripts=1S8PausingPausing<ES9UsingPHOTOlogsUsing PHOTO logs@LSN8 Logged-out terminalsLogged-out terminals!?S""N9= SUPSER054.B8(1(,[HUNTER.SUPSER.V54C.B]SUPERVISOR.DECW$BOOK;1 1zQ Notification broadcasts'7S N8 PrivilegesPrivilegesD5S N8 ScrollingScrolling/3S N9SecuritySecurityDOS!!N8Spawninga subprocessSpawning a subprocess13S N8StartingStartingHSN9Status informationStatus information*3S N8StoppingStopping&KSN8TerminalpagesizesTerminal page sizes7NS  N9Toggling notificationToggling notification+!i  iTT1S 9 TerminalsTerminals;S N8 Logged-outLogged-out!P5S N8 SupportedSupported =S N9 UnsupportedUnsupported x](OPartII:Command DictionaryEOThissectionprovidesa VMS-style descriptionoftheO SUPERVISEcommand.&&=^O SUPERVISE*_z` PHOInvokesthe SUPERVISORutilityto``takeover''anotherBO(user's terminal.. SUPERVISORoperatesintwomodes:;OOBSERVERandADVISOR.InOBSERVERmode, allKO characters displayedonthetargetterminalareechoedonEO2the supervising terminal.(InADVISORmode, SUPERVISORNOalsoletsthe supervisingterminalenterinputonbehalfofJOthetargetprocess; charactersinputfromthe supervisingPO<terminalareinsertedintothe typeaheadbufferofthetargetO terminal.aN@O SUPERVISORcanalsobeusedtoexecutecommandsOOstoredininputfilesonother terminals, providingauseful=O5 mechanismfor automating simulateduserinput.bfOFormat,Os SUPERVISEM [/qualifiers]terminalOCommand QualifiersDefaultsO:/ADVISE: /NOADVISEO| /BROADCAST| /BROADCAST #: BO/BUFFER_SIZE=pages/BUFFER_SIZE=29O/COMMAND_CHARACTER=number./COMMAND_CHARACTER=4OD/INPUTO/NOTIFY /NONOTIFYO/PHOTOO /WATCHOM/VERSIONcO ParametersOsterminalNO Specifiesthetargetterminalthatistobe supervised.,TheHO$targetterminalcannotbeanRTdevice(SETHOSToverO|DECnet).dO QualifiersOs/ADVISEGO Specifiesthat SUPERVISORshouldstartinADVISORmodeFO$insteadofOBSERVERmode.)ADVISORmodeletstheuser>O|enterinputonbehalfofthetarget terminal.eN@OThe supervisingusermustholdthe SUPSER_ADVISEAO identifier(orSUPSER_ADVISE_GROUP)tospecifytheO5/ADVISE qualifier.Pf U&O/BROADCAST[=filename]AO( Specifiesthat SUPERVISORwilltrapany broadcastKOmessagesreceivedandwritethemtoanexternalfileforHOlaterviewing.-Bydefault, broadcastmessages(newmailOO2 notification,operator messages,etc.)(aretrappedandwrittenBOtoSUPERVISOR_BROADCASTS.LOGinthecurrentdefaultMO directory.)Thenameofthemessagesfilecanbe overriddenKO<by specifyingthedesirednameasavalueto /BROADCAST. # _wgMCOTodisable broadcast trapping,specify /NOBROADCAST. # jhK@O/BUFFER_SIZE=pagesKO( Specifiesthenumberofpagestousefor bufferingwhileMO supervising.+Bydefault,2pagesareused.+Upto10pagesKOmaybe specified.+ Additionalpagesareusefulonheavily-AO2loadedsystemswhere SUPERVISORmissessomedata.i"O/COMMAND_CHARACTER=valueLO( SpecifiestheASCIIvalueofthe charactertouseasthe@O SUPERVISORcommandkey.-Valuesbetween0and31QOarevalid,except17,19,and26.+Thisrangeincludesallof O2the  T0CTRL T H%2-key combinations,except b: bT|0CTRL-Q T bH: 2, - T0CTRL-S T H-2,and OJ3 OLTiCTRL-Z LT O3*.'Thedefaultvalueis4( J3 LTCTRL-D &LT 3 ().Cj KOTochangethecommand character,simplyspecifytheASCIIGOvalueofthedesired character.(Forexample, /COMMAND_!O5 CHARACTER=18 specifies 1- 1TJ2CTRL-R \T 1K-}5asthecommandO character.k i=OAll SUPERVISORcommandsaretwo-key sequences,JOprefacedbythe specifiedcommand character.)Forexample,(O5bydefault,the combination 63 6TO2CTRL-D fT 6K3 3 T2CTRL-H T K35willdisplay-Obriefhelpwhilein SUPERVISOR.&Table Commands-1shows3Othe SUPERVISORcommandkey sequences. h_UkNote h_D Selectingacommandkeythatisalready implemented>Hasacommandfunctionwill effectivelydisable1thatoption.+Forexample, selecting `3 bTCTRL-H bT 3astheFcommandkeywilldisabletheabilitytoshowon-lineFRhelp,sincepressingthecommandkeytwiceinarowCwillsendthat character(ASCII8)throughtothetarget terminal. M*k&P?vlO/INPUTJO( SpecifiesthenameofaninputfilethatcontainsinputLO charactersthataretobeenteredonthetarget terminal.CO SUPERVISORwillreadthe charactersfromtheinputMO2fileandplacetheminthe typeaheadbufferofthetargetMO terminal;VMS processesthe charactersasiftheyhadbeen+Otypedatthetarget terminal.,m DOBecause SUPERVISORnormallystartsinOBSERVERmode,NOthe/ADVISE qualifiermustbe specifiedonthecommandlineOO5forthe/INPUTfiletohaveanyeffect.+Theinputfilecan!OhaveanyRMSformat.nY>OPHOTOinputlogs, createdwiththe PHOTO/INPUTDOcommand,canbeusedasinputfilesto SUPERVISOR.JO5BecausePHOTOinputlogsarenotnormalRMStextfiles,MOthe/PHOTO qualifiermustbe specifiedwith/INPUTtotell@O SUPERVISORtoexpectthePHOTO input-logformat.o! O/NOTIFYFO( Broadcastsamessagetothetarget>G3; SUPSER054.B8(1(,[HUNTER.SUPSER.V54C.B]SUPERVISOR.DECW$BOOK;1 1u`terminal notifyingKOthetargetuserthatheisbeing supervised./Bydefault,LO SUPERVISORwillstartinquietmode,iftheuserhastheUO2 privilegetosuppress notification.'IftheuserdoesnothavetheJO privilege,/NOTIFYmustbe specifiedtobegin SUPERVISOR.tp JO/PHOTOLO( Specifiesthattheinputfile(/INPUT=filename)wascreatedEOusingthe PHOTO/INPUTcommand.(PHOTOinputlogfilesLOarecreatedinaspecial ``binary''format;the SUPERVISORLO2 qualifier/PHOTOisrequiredtotellPHOTOtoexpectthatOformat.q O/WATCHIO( Specifiesthat SUPERVISORshouldcontinue supervisingtheMOterminalafterthe/INPUTfilehasbeen processed.'NormallyFO SUPERVISOR terminatesafter processingtheinputfile.rrO/VERSIONJO(Displaystheversionof SUPERVISOR currently installedonOthesystem.s PO DescriptionGOsWhen SUPERVISORisexecutedwithoutany qualifiers,itNOconnectsthe supervisingterminaltothetargetterminalandIO$entersOBSERVERmode.(All characterstypedand displayedFO|onthetargetterminalareechoedonthe supervising@O terminal..Ifthe SUPERVISORentersADVISORmode,NO-any characterstypedatthe supervisingterminal(excepttheGOcommandkey sequences)areinsertedintothe typeaheadNObufferofthetarget terminal.*VMStreatsthe charactersas.O7comingfromthetarget terminal.thHOInputlogscreatedby PHOTO/INPUTcanalsobeusedas Oinputto SUPERVISOR.%uFOAll SUPERVISORcommandsareprecededbythe character?O specifiedonthecommandlineasthe /COMMAND_?O5 CHARACTER.Bydefault, thecommand characteris OM3 OOTiCTRL-D OT O3<..Pressingthecommand charactertwicewhileBOinADVISORmodewillforcethat characterthrough$O>tothetarget terminal.>Table Commands-1>showsthe.O SUPERVISORcommandkey sequences.*u?v@wO RestrictionsuxK `hFhRTdevices(network terminalsloggedinviaSETHOST0overDECnet)cannotbe supervised. `@A@WTdevices(UISVT100pseudo-terminals)cannotbe supervised. `DVAX 6xxx-seriesconsole terminalscannotbeadvised,pthoughthey p can7pbe observed. `D SUPERVISORisnot compatiblewiththe followingDEC@H products:/SessionSupportUtility(SSU),DEC/TestAManager,ACMS,andtheTerminalFallbackFacility(TFF).*y PrefacePrefacePrefaceIntended AudienceDocument StructureDocument Structure$1. Introduction to SUPERVISOR$1. Introduction to SUPERVISOR$1. Introduction to SUPERVISOR$1. Introduction to SUPERVISOR%1.1 Typical Uses of SUPERVISOR%1.1 Typical Uses of SUPERVISOR/2. Using SUPERVISOR to Monitor Terminals/2. Using SUPERVISOR to Monitor Terminals/2. Using SUPERVISOR to Monitor Terminals/2. Using SUPERVISOR to Monitor Terminals!2.1 Supervising a Terminal!2.1 Supervising a Terminal!2.1 Supervising a Terminal!2.1 Supervising a Terminal!2.1 Supervising a Terminal!2.1 Supervising a Terminal!2.1 Supervising a Terminal.2.2 Logged-Out Terminals and SUPERVISOR.2.2 Logged-Out Terminals and SUPERVISOR-2.3 Controlling the SUPERVISOR Session-2.3 Controlling the SUPERVISOR Session-2.3 Controlling the SUPERVISOR Session2.3.1 Exiting SUPERVISOR2.3.1 Exiting SUPERVISOR'2.3.2 Getting Help in SUPERVISOR'2.3.2 Getting Help in SUPERVISOR52.3.3 Displaying Monitoring Status Information,2.3.4 Toggling NOTIFY and QUIET Modes,2.3.4 Toggling NOTIFY and QUIET Modes,2.3.4 Toggling NOTIFY and QUIET Modes,2.3.4 Toggling NOTIFY and QUIET Modes42.3.5 Controlling Scrolling While Supervising42.3.5 Controlling Scrolling While Supervising&2.3.6 Spawning a DCL Subprocess,2.3.7 Clearing the Supervising Screen:2.3.8 Trapping Broadcast Messages While Supervising:2.3.8 Trapping Broadcast Messages While Supervising:2.3.8 Trapping Broadcast Messages While Supervising:2.3.8 Trapping Broadcast Messages While Supervising*2.3.9 Different Terminal Page Sizes*2.3.9 Different Terminal Page Sizes92.4 Sending an Input File to a Supervised Terminal92.4 Sending an Input File to a Supervised Terminal92.4 Sending an Input File to a Supervised Terminal-2.4.1 Pausing Between Input Characters-2.4.1 Pausing Between Input Characters-2.4.1 Pausing Between Input Characters-2.4.1 Pausing Between Input Characters-2.4.2 Using PHOTO Input Logs for Input-2.4.2 Using PHOTO Input Logs for Input-2.4.2 Using PHOTO Input Logs for Input32.5 Displaying the SUPERVISOR Version Number/3. SUPERVISOR Privileges and Identifiers/3. SUPERVISOR Privileges and Identifiers%3.1 The SUPERVISOR Identifiers0Table 3- 1: SUPERVISOR Rights Identifiers)3.1.1 The SUPSER_ADVISE Identifier)3.1.1 The SUPSER_ADVISE Identifier*3.1.2 The SUPSER_OBSERVE Identifier*3.1.2 The SUPSER_OBSERVE Identifier/3.1.3 The SUPSER_ADVISE_GROUP Identifier/3.1.3 The SUPSER_ADVISE_GROUP Identifier03.1.4 The SUPSER_OBSERVE_GROUP Identifier03.1.4 The SUPSER_OBSERVE_GROUP Identifier-3.1.5 The SUPSER_LOGGED_OUT Identifier-3.1.5 The SUPSER_LOGGED_OUT Identifier(3.1.6 The SUPSER_QUIET Identifier(3.1.6 The SUPSER_QUIET Identifier(3.1.6 The SUPSER_QUIET Identifier3.2 Blocking SUPERVISOR3.2 Blocking SUPERVISOR3.2 Blocking SUPERVISOR*3.3 Creating SUPERVISOR Identifiers*3.3 Creating SUPERVISOR Identifiers*3.3 Creating SUPERVISOR Identifiers;3.4 Granting and Revoking the SUPERVISOR Identifiers;3.4 Granting and Revoking the SUPERVISOR Identifiers"Part II: Command DictionarySUPERVISESUPERVISESUPERVISESUPERVISESUPERVISESUPERVISESUPERVISESUPERVISESUPERVISESUPERVISESUPERVISESUPERVISESUPERVISESUPERVISESUPERVISESUPERVISESUPERVISESUPERVISESUPERVISE?- SUPSER054.B8(1(,[HUNTER.SUPSER.V54C.B]SUPERVISOR.DECW$BOOK;1 1CoSUPERVISESUPERVISESUPERVISESUPERVISESUPERVISE-Table Commands- 1: SUPERVISOR CommandsSUPERVISESUPERVISESUPERVISEf& &123456789SUPER_PREFACE1112SUP_P_1SUP_P_215SUP_CH1171819SUP_P_321SUP_CH2232425SUP_CH2_1272829303132SUP_CH3_LOGO34SUP_CH3_23637SUP_CH3_EXIT39SUP_CH3_HELP41SUP_CH3_MONINFOSUP_CH3_NOTQUIET444546SUP_CH3_SCRL48SUP_CH3_SPNSUP_CH2_CLSSUP_CH2_BCAST525354SUP_CH3_DIFFPAGE56SUP_CH3_INPUTS5859SUP_CH3_PAUSE616263SUP_CH3_PHO6566SUP_CH2_VERSUPER_PRIVS_CHAPTER69SUPER_PRIVS_IDSSUPER_IDS_TABLESUPER_SA73SUPER_SO75SUPER_SAG77SUPER_SOG79SUPER_SLO81SUPER_SQ8384SUPER_BLOCK8687SUPER_CREATE_IDS8990SUPER_GRIDS9293SUPERVISE_CMD9596979899100101102103104105106107108109110111112113114115116117SUP_CMDS119120121 B-ADOBE-Helvetica-Medium-R-Normal--*-120-*-*-P-*-ISO8859-1@-ADOBE-Helvetica-Bold-R-Normal--*-180-*-*-P-*-ISO8859-1@-ADOBE-Helvetica-Bold-R-Normal--*-120-*-*-P-*-ISO8859-1@-ADOBE-Helvetica-Bold-R-Normal--*-100-*-*-P-*-ISO8859-1B-ADOBE-Helvetica-Medium-R-Normal--*-100-*-*-P-*-ISO8859-1@-ADOBE-Helvetica-Bold-R-Normal--*-140-*-*-P-*-ISO8859-1O-ADOBE-New Century Schoolbook-Medium-R-Normal--*-140-*-*-P-*-ISO8859-1O-ADOBE-New Century Schoolbook-Medium-R-Normal--*-120-*-*-P-*-ISO8859-1/-ADOBE-Symbol-*-R-*--*-140-*-*-P-*-*-*O -ADOBE-New Century Schoolbook-Medium-I-Normal--*-140-*-*-P-*-ISO8859-1@ -ADOBE-Courier-Medium-R-Normal--*-120-*-*-M-*-ISO8859-1> -ADOBE-Courier-Bold-R-Normal--*-120-*-*-M-*-ISO8859-1O -ADOBE-New Century Schoolbook-Medium-I-Normal--*-120-*-*-P-*-ISO8859-1B -ADOBE-Helvetica-Medium-R-Normal--*-140-*-*-P-*-ISO8859-1O-ADOBE-New Century Schoolbook-Medium-R-Normal--*-100-*-*-P-*-ISO8859-1TT '[7O 2.2Using! SUPERVISOR!to"Monitor! TerminalsHOThischapterexplainshowtousethesimple SUPERVISORLOcommand qualifierstoviewasessiononatargetterminal2OBandexit SUPERVISORupon completion.a! 7?O SUPERVISOR can operate in either of two modes:IOOBSERVERmode,inwhichI/Ocanbeviewed,andADVISORJO5mode,inwhichI/Ocanbeviewedand characterscanbeEOenteredonbehalfofthetarget terminal.- SUPERVISORNOchecksforthe existenceof identifiersto determineiftheRO>runninguserhasthe privilegetouseeithermode.'Bydefault,AO SUPERVISORstartsinOBSERVERmode.-The qualifier?O/ADVISEcanbeusedtostartinADVISORmode.aGOIn addition, SUPERVISORcanrunineitherNOTIFYmodeHOorQUIETmode.)InNOTIFYmode,amessageis broadcastJO5tothetargetterminalwhenever monitoringisstartedorBOstopped(or SUPERVISORswitchesfromOBSERVERmodeHOtoADVISORmodeorviceversa).(Bydefault, SUPERVISORJO>triestostartinQUIETmode.*The qualifier/NOTIFYcanOObe specifiedtostartinNOTIFYmode.+Iftheuserdoesnot@Ohavethe privilegetoenterQUIETmode,/NOTIFY must pbe:OH specifiedbefore SUPERVISORcanbestarted.NHOThe privilegesusedby SUPERVISORtocontrolaccesstoGOthe SUPERVISORanditsvariousmodesare describedinO5Chapter3.*OlOD0!)5O2.2B Logged-Out Terminalsand SUPERVISORHOU SUPERVISORcanbeusedtomonitor logged-out terminals, deletableanduserdoesn'tholdthe necessary privilegestoMOmonitoraloggedout terminal, SUPERVISORwillexitwitha7Omessage indicating insufficient privilege. 1 1#V4O2.3B Controllingthe SUPERVISORSessionHOUThissection describesthe keystrokesthatcanbeusedCOtocontrolthe supervising terminal..All SUPERVISORCOcommandsare implementedastwo-keyCTRL sequences;MO^thefirstkeyisthekeydefinedasthecommand character6O(usingthe/COMMAND_CHARACTER qualifier). w3 yTCTRL-D yT 3POisthedefaultcommand character;for convenience,itwillbeIOhusedinalloftheexamplesinthe following sections.Y$/AOThe first!time the command character is!pressed,>O SUPERVISORenterscommandmode,wherethenextKO5keypressed determinestheactiontaken.,IfthenextkeyQOpressedisnotavalidcommandkey,thebellisrungontheTO supervising terminal.(Ifitisavalidkey,the specifiedactionGO>is performed.*Pressingthecommand charactertwotimesMO successivelywillsendthat characterthroughtothetarget,Oterminal(ifinADVISORmode).N%! N$IOAnexampleofa SUPERVISORcommandisthekeysequence O3 OTiCTRL-D T O3 3 TCTRL-H T 33,whichcauses SUPERVISORtodisplay8O5briefhelpaboutthe SUPERVISOR commands.&)$O2.3.1BExiting SUPERVISORO4Thecommandkey 3 T71CTRL-Z OT J3%p4ispressedto exitfromAO SUPERVISOR.The followingmessageis displayedonJOthe supervisingterminalwhentheexitsequencehasbeenO=pressed: `  `Mv CTRL-D jM `    M CTRL-Z M  -O %SUPER-I-EXIT,% Supervisor&exiting' `HOIf SUPERVISORisinNOTIFYmodeatthetimetheexitQOsequenceispressed,thetargetterminalwillbenotifiedthatJO5the supervisinghasendedwithamessagesimilartotheO following: O $StZ 8-MAY-1992% 11:44:10.70%--%User&HUNTER%is%no%longer% observing&you O $"(& .O2.3.2BGettingHelpin SUPERVISOR.O4Asnotedabove,thecommandkey -3 -TG1CTRL-H ^T -J3z4isusedtodisplayEObriefhelponthe SUPERVISOR commands.*The following9Oexampleshowsthemenuthatis displayed: Oi $i SUPERVISE%TXA3:[O %SUPER-I-START,% Supervisor%enabled&on&_TXA3:,%user%JOE% (observing,%quiet)0O Type&CTRL-D%CTRL-H%for& information `  `MvF CTRL-D jM `_  }  }MF CTRL-H M }_ RO %SUPER-I-HELP,% Supervisor&help.KAll%commands%are&preceded&by&^D./ ^AJ-JToggle&ADVISOR/OBSERVER%mode$& ^HJ-JDisplay%this&help,n ^NJ-JToggle& notify/quiet%modes2 ^TJ-JDisplay% monitoring&status%info% ^VJ-JSpawn%a% subprocess0F ^WJ-JClear%the& supervising&screen. ^XJ-JToggle&XON/XOFF&for%target! ^ZJ-JExit% Supervisor)! WLO Dependingonthe identifiersheldbythe supervisinguser,TOsomeoftheoptionswillnotbe displayediftheuserdoesnotLO5havethe privilegetoissuethecommand.*Forexample,theJOusercannottoggleNOTIFYandQUIETmodesunlesshehasMOthe privilegetoenterQUIETmode.&Formore informationonO> privileges,seeM>Chapter3.*)MlODU* +T J&'_4canbepressedtodisplayFO informationaboutthe monitoringstatusofthetargetGO terminal..The information displayedincludesthetargetPO= terminal,theusernameoftheuserloggedinontheterminalQO(orthetext``loggedout''),andthecurrent operatingmodes.!OForexample,pressing 3 TCTRL-D T 3 & TCTRL-T T &whileinADVISORJOGandQUIETmodeswilldisplayalinelikethe following:PO %SUPER-I-MONINFO,% Supervising%_TXA3:,&user%JOE& (advising,%quiet)(+ 4O2.3.4BTogglingNOTIFYandQUIETModesNO4Ifthe supervisinguserhasthe privilegetouse SUPERVISOR-OinQUIETmode,thecommandkey nL3 nNTCTRL-N NT n3canbeusedCOtotoggleNOTIFYandQUIETmodes./Forexample,if-O=quietmodeisenabled,pressing 3 T;CTRL-D T S3 3 T%;CTRL-N <T S3Z=willputAO SUPERVISORinNOTIFYmodeandamessagewillbeKO broadcasttothetarget terminal.+PressingthekeysagainDOGwillput SUPERVISORbackinQUIETmodeandanother=Omessagewillbesenttothetarget terminal.,! kfMOThemessagesthatare broadcasttothetargetterminalareEOthesamemessagesthatare broadcastwhen SUPERVISORJO5isstartedandstopped.+WhenNOTIFYmodeisentered,itROappearstotheuseratthetargetterminalthatthe monitoringPOwasjuststarted.' Similarly,ifQUIETmodeis re-enabled,theNO>targetuseristoldthat monitoringhasbeen disabled.+ThisHOisusefulin environmentswhere SUPERVISORisusedforNOsecurity purposes.,Ifthetargetuseris suspectedofbeingMOHasecurityrisk,theterminalcanbe monitoredwithouttheHOuser's knowledge.*NOTIFYmodecouldthenbeenteredatPOthe supervisor's discretiontolettheuserknowtheterminalORisbeing monitored. - IOThe followingexampleshowstheoutput displayedontheAO supervisingterminalwhenNOTIFYmodeistoggled: Oa $ '  *M_ CTRL-D *M w  '  *M_ CTRL-N *M w Ft 8-MAY-1992% 12:38:35.01%--%User&HUNTER%is%advising%you O@ $   M> CTRL-D  M V     M> CTRL-N ATQ+ SUPSER054.B8(1(,[HUNTER.SUPSER.V54C.B]SUPERVISOR.DECW$BOOK;1 18 M V Rt 8-MAY-1992% 12:38:37.56%--%User&HUNTER%is%no%longer%advising%you O $   M CTRL-D M 5    M CTRL-T M 5 POm %SUPER-I-MONINFO,% Supervising%_TXA3:,&user%JOE& (advising,%quiet).NHOEventhoughthetargetterminalwastoldthatadvisingHOhadbeen terminated, SUPERVISORisstill monitoringthe$O5terminalinQUIETmode./[;O2.3.5B Controlling ScrollingWhile Supervising O4The ? T&1HOLDSCREEN 3T J?R4key(or p- pT1CTRL-S T pJ- 4and [: [Tu1CTRL-Q T [J:4)canJObeusedtopauseandresume scrollingofoutputonthe*O supervising terminal./Pressing ? THOLDSCREEN T ? hasnoSO=effectonthetarget terminal;theeffectislocalonlytothe O supervising terminal.0``OThe command!key C3 ET9CTRL-X QET 3#scan be used!to toggleBOXON/XOFFforthetarget terminal.0Bypressingthe$O5commandkeyfollowedby 3 T02CTRL-X GT K3#J5,the supervisinguserOcansimulate 3M? 3OTcHOLDSCREEN pOT 3?$onthetarget terminal. _UNote _DThereisno indicationthatthe supervisingprocesshaspressed 3 TCTRL-X T 30toaffectanXOFFforthetargetIH terminal.(Thiscanresultin confusionifnot carefullyF exercised,asthetargetusermaynotknowwhathas3happenedthatcausedoutputtostop. D1-O2.3.6BSpawningaDCL SubprocessO4Thecommandkey 3 T51CTRL-V MT J3%n4canbeusedtospawnaCO subprocesswhilein SUPERVISOR.In SUPERVISORv5.4,HOmostoutputreceivedby SUPERVISORwhilethe subprocessYO=isactivewillbelost(itisn'tbuffered properly).(Still,thiskeyMOcanbeusefultoquicklydropintoDCLwithout terminatingO SUPERVISOR.o2E3O2.3.7BClearingthe SupervisingScreenCO4Whilein SUPERVISOR,the supervisingscreencanbe@Oclearedbypressingthecommandkeyfollowedby aL@ aNT{CTRL-W NT a@ .LOThetarget terminal'sscreenisnotaffectedbythiskey.3BO2.3.8BTrapping BroadcastMessagesWhile SupervisingHO4Bydefault, SUPERVISORwilltrapany broadcastmessagesLOreceivedbythe supervisingterminalwhileanotherterminalGOisbeing supervised.0ThemessagesaretrappedsothatGO=the supervisingscreenisnot disrupted-aproblemthatIOis particularlyannoyingwhen supervisingauserwhois1Oworkinginaneditor,forexample. # #4 QOAny broadcastmessagesreceivedarewrittentoafilesothatKOtheycanbeeasilyreviewedafterexiting SUPERVISOR.TheJO5nameofthemessagefilecreateddefaultsto SUPERVISOR_FOBROADCASTS.LOGinthecurrent directory.(ThenamecanGObe overriddenby specifyingavaluetothe /BROADCASTO> qualifier: O $1 SUPERVISE%TTA2:/BROADCAST=MESSAGES.LOG # 5NKO Broadcastmessagesincludesuchthingsasthe notificationIOofnewmail,operator messages,PHONEnotifications,and$O5REPLYstothe terminal. # 56K LOTodisablethe broadcast trapping,simplyinvoke SUPERVISOR-Owiththe /NOBROADCAST qualifier. # 7& [1O2.3.9B DifferentTerminalPageSizesEO4When SUPERVISORisstarted,it automaticallycomparesMOthepagesize(thenumberofrows)ofthetargetterminalOOwiththepagesizeofthe supervising terminal.*Ifthepage4O=sizesdiffer,awarningis displayed: O $ SUPERVISE%FTA3:[O  %SUPER-W-DIFPAGE,%terminal%page&sizes&differ% (Supervisor:%35,&Target:%24)[OR %SUPER-I-START,% Supervisor%enabled&on&_FTA3:,%user%JOE% (observing,%quiet)0O Type&CTRL-D%CTRL-H%for& information # e8;FO Differentpagesizesarecommonin environmentswhereGODECwindows/Motifisused.,The differentpagesizesmayJO5causescreen-oriented applications displayedonthetargetGOterminaltobe improperly displayedonthe supervisingO terminal. # <fgo&v V> 4E Z]p, xT |, 1$j.o042/A4KDF0RVS&&HKT 3 & TCTRL-T T &whileinADVISORJOGandQUIETmodeswilldisplayalinelikethe following:PO %SUPER-I-MONINFO,% Supervising%_TXA3:,&user%JOE& (advising,%quiet)(+ 4O2.3.4BTogglingNOTIFYandQUIETModesNO4Ifthe supervisinguserhasthe privilege%*[HUNTER.SUPSER.V54C.B]SUPERVISOR.PS;1+,3(.8/ 4i88,-1(0123KPWO9567v789GHJ%!PS-Adobe-2.0%%Creator: VAX DOCUMENT V2.0K%%+Copyright 1986,1987,1988,1989,1990,1991 DIGITAL EQUIPMENT CORPORATION. %%+All Rights Reserved.%%DocumentFonts: (atend)%%Pages: (atend) %%EndComments*/DEC_DVC$dict where { %FIND DICTIONARY pop}{ %else /DEC_DVC$dict 300 dict def } ifelse %/BeginDVC$PSDoc { %BEGIN DOCUMENT vmstatus pop pop 0 eq {' DEC_DVC$dict begin InitializeState }{ %else< /DVC$PSJob save def DEC_DVC$dict begin InitializeState /DVC$PSFonts save def } ifelse} def"/EndDVC$PSDoc { %END DOCUMENT'% --- Preserving current page count --- vmstatus pop pop 0 eq { end }{ %else/ DVC$PSFonts restore end DVC$PSJob restore } ifelse} def%DEC_DVC$dict begin%5mark % CREATE ISOLatin1Encoding if not there already/ISOLatin1Encoding0 8#000 1 8#054 {StandardEncoding exch get} for  /minus0 8#056 1 8#217 {StandardEncoding exch get} for /dotlessi 0 8#301 1 8#317 {StandardEncoding exch get} for HBs"j"*vjS/x}P04J[#^=hq5eH+4+I!;bL{ s,|V+GKAo521! Q"jPSXPOx50Za"WWMO}J<9 yZ5_uida#pz $HHMCIhejKZNf0?wQG/^;Pd_B35 4W9/cC#u]0(ejKlwWd"V,tQ}vy18YqB3uL'-9uncS\[XF|y QIgAGZ Ryy\fv"fw SyP09k2w_Hw?pJOr%#+s"z*jtRf <85!;R@yGPd =q # z]E8@Y!K9l T07rE >%oTlf!\7`+|2-]j)TZD+-V=w|v(D{F%+tT+Q+k<^[7 [eWd}Gm`m X~_RB`t1Xa"8w3-uqklpOayN]xp m~bJ4%8iQ^XJ Fh'd%qGwH^UV'AamsV%"iJS1|tmr4%XBFmQH"PT%2b=L)67Z[,L/8SQmpe ;"(Al`N #Z  7Ј|1Gy{ d+x  {nGJ@-u&Xj{iQ/,F(qP -Sp>QZ<,K8<*9~O t"q%[!mxTw128\V!#Z&;?= VY(er]W8b[B(;=L8^oa~ zYYE{zS;H&@[EX|R Oz,s4on; PG#F+DM+%dbe2Au/OJB^&`l '4 !Brb %[Hp',o3sg~g(:>q6`-jfX.~ N&q-thi>M bAemZ]0x>bGo@jah&O7](W~3AKSo|l75p!>(,pp*/vY7XOs$Y4}pBj/?/Gsr3/f.Cxu<0.d MdИrxq#rKGhlj d% WgBb):D@#i J9gcUhR& = `*2lDz ~*yQ6;tyB=5qgVDXQ{*=*fD?Xkz&_W=G]+)FOER ts"T CiDJD^_C2)qa*O0UI)5%]r7hnayNd[:je.zV*cETFgtGH-EDY@E"Z5N! RzBUSSbbmQjfehoM=`OgZtL/2M(r=}|;'@C>R1gS~;B|k 7bVw vN*>~2q=/w{jApIo_xjljVzgy9,,+$e\Dg@\H"UyBL?`I }i3zJC4OHL =~f2bC&d1o|s'c}LctY'v pH3 o4 R*Q-q7x=3BSe&O_]SpmM=Y%8u Mlt[|HiZ!1=ShZ}"xZ)s2wD6%M.(D}Zgddk~966p8&vm"Ix_WSz;}c+PL%t|pWr[*U' J?Y g2>'C\|rR 8A, ~wo[;$0`f{i8^N7)_eBjpe%xw'F>@uFYr;&ad4"UiJ48),x72{y.SyA{%wEVxWyQv0lqMG|waE6u"Rc2yO4 ^3 (=FQ >Cl3%Q$#"gh}:gL\ -<{F2T-RTa (`mTLЅ cK_MNZrk,l\-Mr TsB=yIOa1-uknvR7{xb9;08HDp4ixE.d!cW&) uP n &ET,L]B"KC`zH![oRoG:&]G9AasvZ`qWJUzo) *|}t, El l#1im1bM1/GaO?*\.MU82t_^Aa!T FP]2H ; KmP w}:5]s4sU5|m*59,|iZɩ yj^_R)=o^-=7hBXD-5sDOU]N,@{knUn$`f6H&e";kE1%$fk1nig^O8_Tqi\5='W9&PAwXFFY:*W8p9?-Cl{AP)zS&'s s5+e2bAh*U=UQE)&h!yYdy{m7jY}H5W8?ag[6`YB]':s}M5FrV9bbaXtq57q XK?]V~5sk`?c{-N<i'TlM!$Akkk If C H3pTp<,{Rq}?h=M$y\*hR&)9Vx^,<%s/QmZ/HpFq0#l3_R)!n$Q$pIl:V!D{"a_a]6QyA;Y61v 4*}aq<7JpYzd"j-u@P[:h0wN0 2STZ `bUACprjjj/'O4>w=6?x}\8q~)2>IX`# Orbx "y_DRGP $;:oQQM8@&/wluNNdE"bjZ+Z$M6dBNmq%B+z=2 [{4>,C/t,3HX*!1\qa%>Ҩ[f<;;I9PRYSJ1U #~j0|1Qme~r7s84SZ`{a<2qjTOF$N&G2s} naKI> !`(6T?*-Zw+h:}AEtDnj[T/bzx\fHmHHJ,p[9,>kZtZ"MR3L;B>win@h|3jBj{eaP7px0=a~N 3A?(82\bGR:r"%Ek_Lkq;Bx(5ZFU.Q kf+G58TVP _0I_Oq:AMr>e|qQ:4;uXgky"nRi |"/P,__tv>ao}GB>JvYm!Rm4JVCYX@]C+t[ iD`&A}^f:FRs#0JzL]V/VD@Hy M]Ut>VS'!?3\!lA 2q"Yhx[? "d~5 ??!iC3]Sr q|9[(lulWUW*/IR"w*3=A{iN}CF@,'>xO)dAIvtVQu`|83fp,K{TV7j@y@8h)-"=! GLs)*S1 (/:HvhB*XXjKwyc3:W KD{^I{x|x)$~5*>_1(.2qUge_pL K3B[{DI O<5qjeK )ݱuo ~.SYH}37/zZp|j+RX K! HN!`0`@`x}_STB`Npcq}n$*/H%RP[jnzvi`@`j|3AgW L[`-vTr2gL iEMtb2YMp]'{|k#xvҟKg$X|loqI5Y39) ,`;M2F^>5F]aIzq;n%_8kR[K5^M$Xe$kImrg@Xjg9gKtn|4.,s6i[1ga#(fC/7 1~ xHXj:V,oHG٨8 FMJii~KU0R 4}|C,O_"%>]p9DfQ4x/]wbJv"'l]H,ik$C oeb]F?m5Z ZMN9;^4F80E pj /x{}%DEmIU8`/V_|e#eo4dM !LcUxf4HTGsl.5W CJurO)Tl44jsBr1.EuYPzCQSN#PL {qOE^qX2D Q Hw 0mD"c`9~'}yG'&@/Q7`LK yO ]V CaR OnwE'9aC!a y5#fCcCwvT$afc= { \nyf!y57&*t|X"[WLp881:gmd@vaw,2.*4OSP+ETKi<.^LX\>bZO+MƧ*wZB[B | J&%829K`)9Fh`58kB!4&OLb il?9g|;~\X1_xbq.D+9(F<Q+?7f^kkLkCVڸ SUPSER054.B3(1(%[HUNTER.SUPSER.V54C.B]SUPERVISOR.PS;1i8x /space /exclamdown /cent /sterling /currency /yen /brokenbar /section G /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen L /registered /macron /degree /plusminus /twosuperior /threesuperior /acute E /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine L /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave O /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute O /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde L /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave M /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute G /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute N /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntildeJ /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave < /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis 9 /ISOLatin1Encoding where not {256 array astore def} if cleartomark%-/DOCPSE ISOLatin1Encoding 256 array copy def "mark % CREATE DOCPSE ENCODING 8#055 /hyphenC 8#201 /bullet 8#202 /emdash 8#203 /endash 8#204 /daggerC 8#205 /daggerdbl 8#206 /registered 8#207 /trademark %8#210 /Delta? 8#211 /fi 8#212 /fl 8#213 /OE 8#214 /oe 8#215 /Ydieresis) counttomark -1 bitshift % DIVIDE BY 2: {DOCPSE 3 1 roll put} repeat % STACK NOW CONTAINS MARK cleartomark%9/reencodedict 10 dict def %Local storage for "ReENCODE"3/ReENCODE { % /basefont /newfont encoding ReENCODE7 /newencoding exch def %ARG: NAME OF ENCODING VECTORC /newfontname exch def %ARG: NEW NAME FOR FONT AFTER RE-ENCODING findfont> /basefontdict exch def %ARG: NAME OF FONT TO BE RE-ENCODED? basefontdict maxlength dict begin %CREATE AND OPEN NEW DICT= basefontdict { %COPY ENTRIES FROM BASE FONT DICT TO NEW ONE 1 index /FID ne {5 def %IF NOT THE ONE WE'RE ENCODING, JUST COPY PTRS } { %else: pop pop %IGNORE FID AND ENCODING FOR ONE WE'RE ENCODING } ifelse } forall, /FontName newfontname def %DEFINE NEW NAME 6 /Encoding newencoding def %DEFINE NEW ENCODING VECTOR; newfontname currentdict definefont %TURN IT INTO A PS FONT3 pop %IGNORE MODIFIED DICT RETURNED BY DEFINEFONT end} def%/cvsstr 64 string def/tempmatrix matrix def%/BP { % BEGIN PAGE /Magnification exch def /Colorsused 0 def /processcolor false def /RVmatrix matrix def /DVC$PSPage save def} def%*/EP {DVC$PSPage restore} def % END PAGE%5/XP { % EXIT PAGE (TEMPORARILY) TO ADD FONTS/CHARSE % SAVE CURRENT POINT AND COLOR INFORMATION SO IT CAN BE RESET LATERH matrix currentmatrix aload pop currentrgbcolor Colorsused processcolor# /Xpos where {pop Xpos} {0} ifelse# /Ypos where {pop Ypos} {0} ifelse9 /currentpoint cvx stopped {0 0 moveto currentpoint} if / /DVC$PSPage where {pop DVC$PSPage restore} if moveto /Ypos exch def /Xpos exch def9 /processcolor exch def /Colorsused exch def setrgbcolor matrix astore setmatrix} def%-/RP {/DVC$PSPage save def} def % RESUME PAGE%A/PF {GlobalMode LocalMode} def % PURGE FONTS TO RECLAIM MEMORY%@/GlobalMode { % SWITCH TO BASE SAVE/RESTORE LEVEL, SAVING STATEK /DEC$EDMS_SEPARATE_COLORS where{pop DEC$EDMS_SEPARATE_COLORS}{9999}ifelse! RVmatrix aload pop processcolorC PortraitMode PaperWidth PaperHeight PxlResolution Resolution I Magnification Ymax Xorigin Yorigin RasterScaleFactor0 % SAVE CURRENTPOINT INFORMATION TO RESET LATER9 /currentpoint cvx stopped {0 0 moveto currentpoint} if / /DVC$PSPage where {pop DVC$PSPage restore} if# DVC$PSFonts restore RecoverState} def%2/RecoverState { % PRESERVE STATE AT BASE LEVEL 20 copyL /Ypos exch def /Xpos exch def /RasterScaleFactor exch def? /Yorigin exch def /Xorigin exch def /Ymax exch defH /Magnification exch def /Resolution exch def /PxlResolution exch defG /PaperHeight exch def /PaperWidth exch def /PortraitMode exch def< /processcolor exch def matrix astore /RVmatrix exch def< dup 9999 ne{/DEC$EDMS_SEPARATE_COLORS exch def}{pop}ifelse DoInitialScaling RVmatrix concat3 PortraitMode not {PaperWidth 0 SetupLandscape} if Xpos Ypos moveto} def%B/InitializeState { % INITIALIZE STATE VARIABLES TO DEFAULT VALUES. /Resolution 3600 def /PxlResolution 300 def5 /RasterScaleFactor PxlResolution Resolution div def /PortraitMode true def9 /Magnification 1000 def /Xorigin 0 def /Yorigin 0 defC /Xpos 0 def /Ypos 0 def /InitialMatrix matrix currentmatrix defB /Colorsused 0 def /processcolor false def /RVmatrix matrix def} def%D/LocalMode { % SWITCH FROM BASE SAVE/RESTORE LEVEL, RESTORING STATE= /Ypos exch def /Xpos exch def /RasterScaleFactor exch def6 /Yorigin exch def /Xorigin exch def /Ymax exch defH /Magnification exch def /Resolution exch def /PxlResolution exch defE /PaperHeight exch def /PaperWidth exch def /PortraitMode exch def: /processcolor exch def matrix astore /RVmatrix exch def< dup 9999 ne{/DEC$EDMS_SEPARATE_COLORS exch def}{pop}ifelse DoInitialScaling RVmatrix concat3 PortraitMode not {PaperWidth 0 SetupLandscape} if Xpos Ypos moveto- /DVC$PSFonts save def /DVC$PSPage save def} def% % ABBREVIATIONS /S /show load def/SV /save load def/RST /restore load def/Yadjust {Ymax exch sub} def%C/SXY { % (x,y) POSITION ABSOLUTE, JUST SET Xpos & Ypos, DON'T MOVE( Yadjust /Ypos exch def /Xpos exch def} def%$/XY { % (x,y) POSITION ABSOLUTE7 Yadjust 2 copy /Ypos exch def /Xpos exch def moveto} def%#/X { % (x,0) POSITION ABSOLUTEF currentpoint exch pop 2 copy /Ypos exch def /Xpos exch def moveto} def%$/Y { % (0,y) POSITION ABSOLUTE ' currentpoint pop exch Yadjust 2 copy' /Ypos exch def /Xpos exch def moveto} def%$/xy { % (x,y) POSITION RELATIVE9 neg rmoveto currentpoint /Ypos exch def /Xpos exch def} def%#/x { % (x,0) POSITION RELATIVE7 0 rmoveto currentpoint /Ypos exch def /Xpos exch def} def%#/y { % (0,y) POSITION RELATIVE@ 0 exch neg rmoveto currentpoint /Ypos exch def /Xpos exch def} def%/R { % DRAW A RULE$ /ht exch def /wd exch def gsave % 0 setgray currentpoint newpath moveto 0 ht rlineto wd 0 rlineto$ 0 ht neg rlineto wd neg 0 rlineto( closepath fill grestore wd 0 rmoveto, currentpoint /Ypos exch def /Xpos exch def} def%D/RES { % RES/ /Resolution exch def /PxlResolution exch def5 /RasterScaleFactor PxlResolution Resolution div def DoInitialScaling} def%,/DoInitialScaling { % DO INITIAL SCALING6 InitialMatrix setmatrix 72 Resolution div dup scale} def%2/PM { % PM XP/ /PaperWidth exch def /PaperHeight exch def0 /Ymax PaperHeight def /PortraitMode true def DoInitialScaling RP} def 8%9*/SetupLandscape {translate 90 rotate} def3/LM { % LM t XP/ /PaperWidth exch def /PaperHeight exch defd1 /Ymax PaperWidth def /PortraitMode false def0 DoInitialScaling PaperWidth 0 SetupLandscape RP} def B%N*/MAG { % CHANGE MAGNIFICATION SETTING! XP /Magnification exch def RP} def%%e8/SPB { % SPB - BEGIN "\SPECIAL" MODE- Yadjust /YorigD" SUPSER054.B3(1(%[HUNTER.SUPSER.V54C.B]SUPERVISOR.PS;1i8Ptin exch def /Xorigin exch def  currentrgbcolor Colorsused& GlobalMode Xorigin Yorigin translate9 Resolution 72 div dup scale % RESTORE DEFAULT SCALINGlB Magnification 1000 div dup scale % ADJUST FOR ANY MAGNIFICATIONA /Xpos Xpos 72 Resolution div mul 1000 Magnification div mul defiA /Ypos Ypos 72 Resolution div mul 1000 Magnification div mul defEG /spsavobj save def %SAVE STATE & STACK DEPTH FOR CLEANUP AFTER FIGUREgG /showpage {} def %DISABLE DURING FIGURE; `RESTORE' WILL BLOW DEF AWAY> /DEC$EDMS_SEPARATE_COLORS where % if separating colors. { % thenC pop processcolor % if using process colorsm0 { % thenE DEC$EDMS_SEPARATE_COLORS 0 ge % if on color pass .ge. 0l2 { % then@ { pop 1 } settransfer % write only white2 }{ % else" /DEC$EDMS_TRAP_SWELL where, { pop DEC$EDMS_SEPARATE_COLORS -4 eq5 { /EDMS_setlinewidth /setlinewidth load def K /setlinewidth { DEC$EDMS_TRAP_SWELL mul EDMS_setlinewidth } defe } if } ifE /EDMS_setrgbcolor % set up for a redefine K /setrgbcolor load def % of the setrgbcolor operatorcK currentscreen % get the current screen parameterseF /DEC$EDMS_SCREEN_ANGLE where % if changing the screen angle. { % thenA pop exch pop % replace the old angleN< DEC$EDMS_SCREEN_ANGLE exch % with the new one } ifJ /DEC$EDMS_SCREEN_FREQ where % if changing the screen frequency. { % thenE pop 3 -1 roll pop % replace the old frequencyt< DEC$EDMS_SCREEN_FREQ 3 1 roll % with the new one } if@ setscreen % Set the new parameters /setrgbcolor { /b exch deff /g exch def /r exch defe /c3 1 r sub defC /m3 1 g sub def  /y3 1 b sub def M /k c3 m3 2 copy gt { exch } if pop y3 2 copy gt { exch } if pop def  /ik 1 k sub defo ik 0 nec# { /c4 c3 k sub ik div defb# /m4 m3 k sub ik div defE# /y4 y3 k sub ik div def/ }e) { /c4 /DEC$EDMS_BLACK_GEN whereY7 { pop DEC$EDMS_BLACK_GEN } { 0 } ifelse defN /m4 c4 def /y4 c4 def } ifelseL 1 [ c4 m4 y4 k ] % pick the separation for this colorI DEC$EDMS_SEPARATE_COLORS % pass ( -1 = Cyan, -2 = Magenta,pC neg 1 sub get sub setgray % -3 = Yellow, -4 = Black ) } defr3 } ifelse % endifEN }{ % else (if not using process colors)D DEC$EDMS_SEPARATE_COLORS 0 ne % if not on color pass 02 { % then@ { pop 1 } settransfer % write only white3 } if % endif1 } ifelse % endifC/ } if % endif{ mark} defY% #/SPE { % SPE - END "\SPECIAL" MODEe cleartomarkp spsavobj restore nD 1000 Magnification div dup scale % UN-ADJUST FOR ANY MAGNIFICATIONA 72 Resolution div dup scale % RESTORE DEFAULT INTERNAL SCALINGo LocalModee" /Colorsused exch def setrgbcolor} def%e/PP%RK% If DEC$EDMS_MAKE_FILM is defined, it will add the crop & alignment marks, J% and the document name, page number, & ink color identifiers to the page.%E% Formal Arguments: None%$% Referenced Variables: DocumentName% Colorsused% Currentpagecount% DEC$EDMS_MAKE_FILMo%s"% Referenced Procedures: AlignMark%e=% Side Effects: Leaves the current font as Helvetica 8 point. "% Creates the variable "junkstr".%l{ /PageNumber exch def1 /DEC$EDMS_MAKE_FILM where % if making film...  { pope@ /DEC$EDMS_SUPPRESS_COLOR where % if color suppression is onC { pop /DEC$EDMS_SEPARATE_COLORS 0 def % then default to color 0R2 /Colorsused 1 def } if % ...for everythingO 2 DEC$EDMS_SEPARATE_COLORS exp cvi Colorsused and 0 ne %if correct separatnh@ DEC$EDMS_SEPARATE_COLORS 0 lt or % ...or if a process color/ { /Helvetica findfont 400 scalefont setfont  20 setlinewidth 0 setgrayP gsavec< PaperWidth 1000 add 200 translate 90 rotate 0 0 moveto* (Ink: ) show % show the ink color# DEC$EDMS_SEPARATE_COLORS 0 geE; { DEC$EDMS_COLOR_NAMES DEC$EDMS_SEPARATE_COLORS get }a= { (Process ) show [ (Cyan) (Magenta) (Yellow) (Black) ]i< DEC$EDMS_SEPARATE_COLORS neg 1 sub get } ifelse showB /DEC$EDMS_SUPPRESS_COLOR where % if color suppression is onI { pop ( (Color Suppression enabled)) show } if % tell them about it 1800 0 rmovetod- (Page: ) show % show the page number/7 /junkstr 4 string def PageNumber junkstr cvs showx7 ( of ) show DEC$EDMS_TOTAL_PAGES junkstr cvs showc$ DEC$EDMS_SEPARATE_COLORS -4 eq0 { 1800 0 rmoveto (Trap Swell Factor: )showE /DEC$EDMS_TRAP_SWELL where % if trap swell factor is suppliedS0 { pop DEC$EDMS_TRAP_SWELL 6 string cvs }% { (1 (default)) } ifelse showa } if9 DEC$EDMS_SEPARATE_COLORS 0 lt % if a process colorg {e@ PaperHeight 2 div 600 add 0 moveto (Screen Angle: ) show$ /DEC$EDMS_SCREEN_ANGLE whereB { pop DEC$EDMS_SCREEN_ANGLE junkstr cvs } % if defined: { ((default)) } ifelse show % if not defined1 1800 0 rmoveto (Screen Frequency: ) showo# /DEC$EDMS_SCREEN_FREQ whereeA { pop DEC$EDMS_SCREEN_FREQ junkstr cvs } % if definedS: { ((default)) } ifelse show % if not defined } if grestore gsaveA- -600 200 translate 90 rotate 0 0 movetoaF (Document: ) show DEC$EDMS_DOCUMENT_ID show % show document name( PaperHeight 2 div 600 add 0 movetoG (This film is the property of Digital Equipment Corporation) showS grestore1 /mask 15 % all crop marks on by defaultfN /DEC$EDMS_SUPPRESS_CROPMARKS where % if def'd, xor in suppression mask8 { pop DEC$EDMS_SUPPRESS_CROPMARKS xor } if def mask 1 and 1 eq 6 { PaperWidth PaperHeight moveto % Upper RightL 450 0 rmoveto 900 0 rlineto -1350 1350 rmoveto 0 -900 rlineto } if mask 2 and 2 eqt- { PaperWidth 0 moveto % Lower RightL 450 0 rmoveto 900 0 rlineto -1350 -1350 rmoveto 0 900 rlineto } if mask 4 and 4 eqf$ { 0 0 moveto % Lower LeftM -450 0 rmoveto -900 0 rlineto 1350 -1350 rmoveto 0 900 rlineto } ifm mask 8 and 8 eqd- { 0 PaperHeight moveto % Upper LeftoM -450 0 rmoveto -900 0 rlineto 1350 1350 rmoveto 0 -900 rlineto } if stroke7 /mask 15 % all registratn marks on by defaultoN /DEC$EDMS_SUPPRESS_REGMARKS where % if defined, xor in suppression mask7 { pop DEC$EDMS_SUPPRESS_REGMARKS xor } if defa% mask 1 and 1 eq % Top Center 5 { gsave PaperWidth 2 div PaperHeight 900 addo% /DEC$EDMS_POSITION_REGMARKS where 7 { pop DEC$EDMS_POSITION_REGMARKS -50 mul add } ifP% translate AlignMark grestore } ife' mask 2 and 2 eq Ex SUPSER054.B3(1(%[HUNTER.SUPSER.V54C.B]SUPERVISOR.PS;1i8! % Right Center " { gsave PaperWidth 900 add# /DEC$EDMS_POSITION_REGMARKS wheres4 { pop DEC$EDMS_POSITION_REGMARKS -50 mul add } if6 PaperHeight 2 div translate AlignMark grestore } if( mask 4 and 4 eq % Bottom Center% { gsave PaperWidth 2 div -900t# /DEC$EDMS_POSITION_REGMARKS wheree3 { pop DEC$EDMS_POSITION_REGMARKS 50 mul add } ifI# translate AlignMark grestore } if & mask 8 and 8 eq % Left Center { gsave -900# /DEC$EDMS_POSITION_REGMARKS wherec3 { pop DEC$EDMS_POSITION_REGMARKS 50 mul add } ifd5 PaperHeight 2 div translate AlignMark grestore } if7 showpage }T0 { % disabled the 'erasepage ' that was here! } ifelse }R { showpage } ifelseX} defs1/CLRP { % disabled the 'erasepage' that was here!e } defo%p+/DMF { % /font-name DMFiB /psz exch def /nam exch def nam findfont psz scalefont setfont} defR%G3/concatnam { % /abcd (xxx) concatnam ==> /abcdxxxT /xxx exch def /nam exch def /namstr nam cvsstr cvs def1 /newnam namstr length xxx length add string def  newnam 0 namstr putintervalo& newnam namstr length xxx putinterval newnam cvn c} def% %/strip { % /abcdef 2 strip ==> /cdef  /num exch def /nam exch def /namstr nam cvsstr cvs def# /newlen namstr length num sub def $ namstr num newlen getinterval cvn} def /% ROUTINES TO HANDLE PACKING/UNPACKING NUMBERS8/PackHW { % PackHW --> 0 /num exch def /pos exch def /target exch def: num 16#0000FFFF and 1 pos sub 16 mul bitshift target or} defw</PackByte { % PackByte --> 0 /num exch def /pos exch def /target exch def: num 16#000000FF and 3 pos sub 8 mul bitshift target or} defp4/UnpkHW { % UnpkHW -->  /num exch def /pos exch def0 num 1 pos sub -16 mul bitshift 16#0000FFFF and) dup 16#00007FFF gt {16#00010000 sub} if } defC8/UnpkByte { % UnpkByte -->  /num exch def /pos exch def/ num 3 pos sub -8 mul bitshift 16#000000FF and ) dup 16#0000007F gt {16#00000100 sub} if } defD%S/ps-scalefont { J % FOR PS FONTS, LOOK AT SIZE REQUESTED. IF IT HAS A DECIMAL REMAINDERL % EQUIVALENT TO .001-.009 POINTS (I.E., .050-.450 VAXDOC UNITS), THAT'S H % A FLAG TO STRETCH IT VERTICALLY BY ADDING 1-9 EXTRA POINTS TO THE  % VERTICAL SCALING.SA % save requested size - as entered and as integere, dup /x-size exch def cvi /x-int exch def; % calc decimal remainder, mul x 1000, round ; x-size x-int sub 1000 mul round cvi /remainder exch def % % see how we scale... ) remainder 50 lt remainder 450 gt or {3& % scale isomorphically /ystretch 0 def  x-size scalefont } {k& % scale anamorphically /ystretch remainder def + x-int ystretch add /y-size exch def/' [x-int 0 0 y-size 0 0] makefont_ } ifelse} def % (/DPSF { % /procname size /fontname DPSF< findfont exch ps-scalefont [ exch /setfont cvx ] cvx def} deff%e/PXLBuildCharDict 17 dict def /CMEncodingArray 256 array def90 1 255 {CMEncodingArray exch dup cvsstr cvs cvn put} fora*/RasterConvert {RasterScaleFactor div} def/TransformBBox { aload pop3H /BB-ury exch def /BB-urx exch def /BB-lly exch def /BB-llx exch def. [ BB-llx RasterConvert BB-lly RasterConvert / BB-urx RasterConvert BB-ury RasterConvert ]r} def /RunLengthToRasters {O % none yet} defn7/GenerateRasters { % GENERATE RASTERS FOR "IMAGEMASK" 1 rasters runlength 1 eq {RunLengthToRasters} if } def %r*/int-dict-name {int (-dict) concatnam} def./int-dict {int (-dict) concatnam cvx load} def% /DefinePXLFont {E % ...Y1 % ...[llx lly urx ury]DefinePXLFonttC /newfont exch def /bb exch def /num exch def /psz exch def-C /dsz exch def /pxlmag exch def /ext exch def /int exch defE9 /fnam ext (-) concatnam pxlmag cvsstr cvs concatnam defh newfont not { int-dict-name 13 dict defE int-dict beginF /FontType 3 def /FontMatrix [ 1 dsz div 0 0 1 dsz div 0 0 ] defC /FontBBox bb TransformBBox def /Encoding CMEncodingArray defmI /CharDict 1 dict def CharDict begin /Char-Info num array def endu /BuildChar { PXLBuildCharDict begin, /char exch def /fontdict exch defB fontdict /CharDict get /Char-Info get char get aload pop2 /rasters exch def /PackedWord1 exch def+ 0 PackedWord1 UnpkHW 16#7FFF ne { 8 /PackedWord2 exch def /wx 0 PackedWord1 UnpkHW defN /rows 2 PackedWord1 UnpkByte def /cols 3 PackedWord1 UnpkByte defM /llx 0 PackedWord2 UnpkByte def /lly 1 PackedWord2 UnpkByte defPM /urx 2 PackedWord2 UnpkByte def /ury 3 PackedWord2 UnpkByte defP }{ %else0G /PackedWord2 exch def /PackedWord3 exch def /PackedWord4 exch defnJ /wx 1 PackedWord1 UnpkHW def /rows 0 PackedWord2 UnpkHW defI /cols 1 PackedWord2 UnpkHW def /llx 0 PackedWord3 UnpkHW deftI /lly 1 PackedWord3 UnpkHW def /urx 0 PackedWord4 UnpkHW defN) /ury 1 PackedWord4 UnpkHW def  } ifelse rows 0 lt {w( /rows rows neg def /runlength 1 def }{ %elseb /runlength 0 def } ifelseU wx 0. llx RasterConvert lly RasterConvert < urx RasterConvert ury RasterConvert setcachedevice rows 0 ne { gsave) cols rows true RasterScaleFactor jB 0 0 RasterScaleFactor neg llx .5 add neg ury .5 add : tempmatrix astore GenerateRasters imagemask grestore } if ende } defh end ! fnam int-dict definefont pop r } if f/ int-dict-name fnam findfont psz scalefont defW3 currentdict int [ int-dict /setfont cvx ] cvx puts} def B/PXLF { true DefinePXLFont} def % SIGNAL THAT FONT ALREADY LOADEDG/PXLNF {false DefinePXLFont} def % SIGNAL THAT FONT NOT ALREADY LOADED %w:/PXLC { % ...* % ...PXLCH /rasters exch def /runlength exch def /cols exch def /rows exch defG /ury exch def /urx exch def /lly exch def /llx exch defh7 /wx exch def /code exch def /int exch def}+ % SEE IF LONG OR SHORT FORMAT IS REQUIREDf? true cols CKSZ rows CKSZ ury CKSZ urx CKSZ lly CKSZ llx CKSZ s TackRunLengthToRows {s/ int-dict /CharDict get /Char-Info get code oC [ 0 0 llx PackByte 1 lly PackByte 2 urx PackByte 3 ury PackByte A 0 0 wx PackHW 2 rows PackByte 3 cols PackByte rasters ] putq }{ %else/ int-dict /CharDict get /Char-Info get code ? [ 0 0 urx PackHW 1 ury PackHW 0 0 llx PackHW 1 lly PackHWMP 0 0 rows PackHW 1 cols PackHW 0 0 16#7FFF PackHW 1 wx PackHW rasters ] put } ifelse} deff%f/CKSZ {abs 127 le and} defA/TackRunLengthToRows {runlength 0 ne {/rows rows neg def} if} def5% /PLOTC {K % PLOTCH /rasters exch def /runlength exch def /cols exch def /rows exch defG /ury exch def /urx exch def /lly exch def /llx exch defe6 /psz exch def /dsz exch def /wx exch def' % "PLOT" A CHARACTER'S RASTER PATTERNe rows 0 ne {o gsave 3 currentpoint translate psz dsz div dup scale > cols rows true RasterScaleFactor 0 0 RasterScalF_ SUPSER054.B3(1(%[HUNTER.SUPSER.V54C.B]SUPERVISOR.PS;1i8i0eFactor 6 neg llx .5 add neg ury .5 add tempmatrix astore GenerateRasters imagemask grestore } if wx x} defE%R /AlignMark%%J% This procedure draws an alignment mark centered on the coordinate systemH% origin. If the variable DEC$EDMS_SEPARATE_COLORS = 0 then a "positive"M% alignment mark is drawn. If DEC$EDMS_SEPARATE_COLORS <> 0 then a "negative"r% alignment mark is drawn. T%_% Formal Arguments: NONE% 0% Referenced Variables: DEC$EDMS_SEPARATE_COLORS%a% Referenced Procedures: NONE % % Side Effects: NONE%d{ DEC$EDMS_SEPARATE_COLORS 0 eqh { 0 0 300 0 360 arc_B 0 -450 moveto 0 450 lineto -450 0 moveto 450 0 lineto stroke }7 { 0 0 450 0 360 arc fill 1 setgray 0 0 300 0 360 arc oL 0 -450 moveto 0 450 lineto -450 0 moveto 450 0 lineto stroke 0 setgray } ifelse} defp/SC_N% If not making film, the following procedure sets the current color using theL% RGB color model. If making film, the procedure notes the "color pass" and,K% if the specified color index matches the color pass, subsequent marks areeO% written in black. If the specified color index does not match the color pass, O% marks are written in white. Use of colors on individual pages is also trackedsK% to allow pages that don't use a particular color to be suppressed on that.% color pass (by the code in the /PP routine).%z*% Formal Arguments: color index (on stack)%e"% Referenced Variables: Colorsused% DEC$EDMS_SEPARATE_COLORS% DEC$EDMS_SUPPRESS_COLOR %a% Referenced Procedures: NONEr%sL% Side Effects: Modifies the variable Colorsused to record use of the color.M% Tracks use of color in the variables 'ci' and 'processcolor'.%r5{ /ci exch def ci 0 lt % if the color index is lt 0aB { /processcolor true def } % then set 'processcolor' to 'true'.E { ci /processcolor false def % else set 'processcolor' to 'false'.O9 /DEC$EDMS_SUPPRESS_COLOR where % if suppressing coloro6 { pop 0 setgray pop } % then set "color" to BlackA { /DEC$EDMS_SEPARATE_COLORS where % else if separating colorsbH { pop dup DEC$EDMS_SEPARATE_COLORS eq % then if on this color passH { 0 setgray /Colorsused Colorsused % then write black (do write)E 2 3 index exp cvi or def } % ..and note use of the "color" D { 1 setgray } ifelse pop } % else write white (don't write)N { dup ( ) cvs dup length 15 add string % else if using the color index,6 /tstr exch def % ..build up the name of theI tstr 0 (DEC$EDMS_COLOR_) putinterval % ..potential external color 9 tstr exch 15 exch putinterval % ..name procedure06 tstr cvn where % ..and see if it is defined> { pop pop tstr cvn cvx exec } % execute it if it isN { DEC$EDMS_COLOR_ARRAY exch get exec % else exec internal color proc } ifelse } ifelse } ifelse } ifelse} defT(/RV % .. gross recto/verso translate#{ /DEC$EDMS_ENABLE_RECTOVERSO wherer { popeC /RVmatrix DEC$EDMS_ENABLE_RECTOVERSO 50 mul 0 matrix translate def  RVmatrix concat } if} defo%<% Procedures for implementing the "rotate " special:% ROTB -e% - ROTE - /ROTB {  XP gsave  Xpos Ypos translate ' rotate % using from the stackt Xpos neg Ypos neg translatea RP } defk /ROTE {XP grestore RP} defend %DEC_DVC$dict %%EndProloge %%BeginSetup4/DEC$EDMS_MAKE_FILM where % if we are making film... { pop % ..clean up the stack 4 54 dup translate % ..make room for the film info } ifBeginDVC$PSDoc$/PaperWidth 8.500 Resolution mul def&/PaperHeight 11.000 Resolution mul def/Ymax PaperHeight defACLRP 300 3600 RESG%> Postamble of file HUNTER$USER:[HUNTER.SUPSER.NEW]SUPERVISOR.DVI_PS.t*% DefineFont:F153 Category:10 Pointsize:10D/NewCenturySchlbk-Bold /NewCenturySchlbk-Bold@DOCPSE DOCPSE ReENCODE./F153 500.0 /NewCenturySchlbk-Bold@DOCPSE DPSF*% DefineFont:F152 Category:10 Pointsize:10H/NewCenturySchlbk-Italic /NewCenturySchlbk-Italic@DOCPSE DOCPSE ReENCODE0/F152 500.0 /NewCenturySchlbk-Italic@DOCPSE DPSF*% DefineFont:F151 Category:10 Pointsize:10F/NewCenturySchlbk-Roman /NewCenturySchlbk-Roman@DOCPSE DOCPSE ReENCODE//F151 500.0 /NewCenturySchlbk-Roman@DOCPSE DPSF})% DefineFont:F106 Category:10 Pointsize:7a(/Courier /Courier@DOCPSE DOCPSE ReENCODE /F106 350.0 /Courier@DOCPSE DPSF)% DefineFont:F104 Category:10 Pointsize:8e2/Courier-Bold /Courier-Bold@DOCPSE DOCPSE ReENCODE%/F104 400.0 /Courier-Bold@DOCPSE DPSF )% DefineFont:F102 Category:10 Pointsize:8 /F102 400.0 /Courier@DOCPSE DPSF(% DefineFont:F46 Category:10 Pointsize:6,/Helvetica /Helvetica@DOCPSE DOCPSE ReENCODE!/F46 300.0 /Helvetica@DOCPSE DPSF[(% DefineFont:F42 Category:10 Pointsize:8!/F42 400.0 /Helvetica@DOCPSE DPSFc(% DefineFont:F40 Category:10 Pointsize:96/Helvetica-Bold /Helvetica-Bold@DOCPSE DOCPSE ReENCODE&/F40 450.0 /Helvetica-Bold@DOCPSE DPSF(% DefineFont:F39 Category:10 Pointsize:9</Helvetica-Oblique /Helvetica-Oblique@DOCPSE DOCPSE ReENCODE)/F39 450.0 /Helvetica-Oblique@DOCPSE DPSFe(% DefineFont:F38 Category:10 Pointsize:9!/F38 450.0 /Helvetica@DOCPSE DPSF )% DefineFont:F36 Category:10 Pointsize:10d&/F36 500.0 /Helvetica-Bold@DOCPSE DPSF)% DefineFont:F35 Category:10 Pointsize:10 )/F35 500.0 /Helvetica-Oblique@DOCPSE DPSF2)% DefineFont:F34 Category:10 Pointsize:10 !/F34 500.0 /Helvetica@DOCPSE DPSF2)% DefineFont:F28 Category:10 Pointsize:12 &/F28 600.0 /Helvetica-Bold@DOCPSE DPSF)% DefineFont:F25 Category:10 Pointsize:14eD/Helvetica-BoldOblique /Helvetica-BoldOblique@DOCPSE DOCPSE ReENCODE-/F25 700.0 /Helvetica-BoldOblique@DOCPSE DPSF )% DefineFont:F24 Category:10 Pointsize:14&/F24 700.0 /Helvetica-Bold@DOCPSE DPSF)% DefineFont:F23 Category:10 Pointsize:14 )/F23 700.0 /Helvetica-Oblique@DOCPSE DPSF )% DefineFont:F20 Category:10 Pointsize:18o&/F20 900.0 /Helvetica-Bold@DOCPSE DPSF)% DefineFont:F12 Category:10 Pointsize:30U'/F12 1500.0 /Helvetica-Bold@DOCPSE DPSFv*%> Postamble of file SUPERVISOR_CONTENTS.'%> Postamble of file SUPERVISOR_INDEX.)% DefineFont:F16 Category:10 Pointsize:24c'/F16 1200.0 /Helvetica-Bold@DOCPSE DPSF %%BeginDEC$EDMSInfol/DEC$EDMS_DOCUMENT_ID () def8/DEC$EDMS_COLOR_NAMES [ (0_BLACK) (1_USERTAGCOLOR) ] def/DEC$EDMS_COLOR_ARRAY [r*%%RGBCustomColor 0.000 0.000 0.000 0_BLACK= { 0.000 0.000 0.000 setrgbcolor } % 0_BLACK DOC$COLOR_INIT1%%RGBCustomColor 0.000 0.000 0.000 1_USERTAGCOLOR ? { 0.000 0.000 0.000 setrgbcolor } % 1_USERTAGCOLOR not found ] def /DEC$EDMS_TOTAL_PAGES 0 defH%%EndDEC$EDMSInfoD/DEC$EDMS_MAKE_FILM whereL%{ pop /DEC$EDMS_SEPARATE_COLORS whereY { pop }w] { (ERROR - DEC$EDMS_MAKE_FILM requires DEC$EDMS_SEPARATE_COLORS be defined) = quit } ifelset} if/DEC$EDMS_SEPARATE_COLORS wheret${ pop /DEC$EDMS_SUPPRESS_COLOR wherei { pop (ERROR - DEC$EDMS_SEPARATE_COLORS and DEC$EDMS_SUPPRESS_COLOR are mutually exclusive) = quit } ife} if/DVC$PSFonts save def %%EndSetup% %%Page: I 1A%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)a)1000 BP PaperHeight PaperWidth PM 0 0 XY t%%BeginCustomColor: 0_BLACK G0 SC 10773 10524 XY F20(SUPER)S -15 x(VISOR)S 185 x(Refere)S -2 x(nce)S O10773 11520 XY(Guide)S 10773 14210 XY F36(October)S 166 x(1992)S 10773 16302 XY-CF34(This)S 167 x(manual)S 166 x(describes)S 166 x(the)S 167 x(use)SPE167 x(of)S 167 x(SUPER)S -8 x(VISOR,)S 167 x(a)S 167 x(member)S 166 xHF(of)S 167 x(the)S 168 x(Supervisor)S 10773 X 598 y(Series)S 166 x(of)SD166 x(terminal)S 166 x(monitoring)S 165 x(software.)S 10Ga SUPSER054.B3(1(%[HUNTER.SUPSER.V54C.B]SUPERVISOR.PS;1i8?773 20188 XYIF36(Revision/)S 2 x(Update)S 166 x(Information)S 2 x(:)S 798 x F34(This)SrF166 x(is)S 166 x(a)S 166 x(revised)S 165 x(manual.)S 10773 X 896 y F36G(Operating)S 167 x(System)S 166 x(and)S 166 x(V)S -27 x(ersion:)S 300 xhLF34(VMS)S 166 x(V5.0)S 167 x(or)S 166 x(later)S 10773 X 897 y F36(Software)SG166 x(V)S -27 x(ersion:)S 18546 X F34(SUPER)S -9 x(VISOR)S 166 x(v5.4)SnH10773 28521 XY F36(Academic)S 166 x(Computin)S 2 x(g)S 166 x(and)S 167 xM(Research)S 165 x(Services)S 10773 X 598 y(W)S -9 x(estern)S 166 x(Kentucky)SaJ166 x(University)S 10773 X 697 y(Bowling)S 167 x(Green,)S 166 x(Kentucky)S%%EndCustomColor1 PP EP %%PageTrailern%%%PageFonts: Helvetica-Bold Helveticag%%PageCustomColors: 0_BLACKo%n %%Page: II 2%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)a,1000 BP PaperHeight PaperWidth PM 0 0 XY RV %%BeginCustomColor: 0_BLACKnD0 SC 10773 24472 XY 8364 48 R 10773 25020 XY F40(5)S 166 x(October)SF167 x(1992)S 10773 X 896 y F38(Permission)S 167 x(is)S 166 x(granted)SE167 x(to)S 166 x(copy)S 167 x(and)S 167 x(redistribute)S 166 x(this)S0H166 x(documen)S 2 x(t)S 165 x(for)S 166 x(no)S 167 x(comme)S 2 x(rcial)SF165 x(gain.)S 10773 X 897 y(The)S 172 x(information)S 173 x(in)S 171 xE(this)S 172 x(documen)S 2 x(t)S 171 x(is)S 172 x(subject)S 172 x(to)SH172 x(change)S 173 x(without)S 171 x(notice)S 172 x(and)S 173 x(should)SE172 x(not)S 10773 X 548 y(be)S 172 x(construed)S 173 x(as)S 171 x(a)SeE172 x(commitmen)S 2 x(t)S 170 x(by)S 172 x(the)S 172 x(author)S -24 xmG(.)S 259 x(The)S 172 x(author)S 172 x(assume)S 2 x(s)S 171 x(no)S 172 xsF(respons)S 2 x(ibil)S -2 x(ity)S 10773 X 548 y(for)S 166 x(any)S 167 xC(errors)S 168 x(that)S 165 x(may)S 167 x(appea)S 2 x(r)S 166 x(in)SaF166 x(this)S 165 x(docum)S 2 x(ent.)S 10773 X 896 y F40(DISCLAI)S -2 xE(MER:)S 184 x F38(The)S 183 x(software)S 183 x(described)S 185 x(in)S F182 x(this)S 183 x(docume)S 2 x(nt)S 182 x(is)S 183 x(provided)S 184 xF(`)S -8 x(`)S F40(as)S 183 x(is)S F38(')S -9 x('.)S 282 x(No)S 10773 XG548 y(guaran)S 2 x(tee)S 188 x(is)S 188 x(made)S 190 x(by)S 188 x(the)SeF189 x(author)S 189 x(or)S 189 x(the)S 188 x(author)S 18 x(')S -9 x(s)SM188 x(employe)S 2 x(r)S 188 x(as)S 189 x(to)S 188 x(the)S 188 x(suitability)SeH-34 x(,)S 10773 X 548 y(reliabilit)S -2 x(y)S -33 x(,)S 166 x(security)SC-33 x(,)S 166 x(usefulness,)S 167 x(or)S 166 x(perform)S 2 x(ance)SaG167 x(of)S 166 x(this)S 165 x(software.)S 10773 X 897 y(Neither)S 183 x H(W)S -8 x(estern)S 184 x(Kentucky)S 184 x(University)S 182 x(nor)S 184 xF(Hunter)S 183 x(Goatley)S 183 x(are)S 184 x(respons)S 2 x(ible)S 182 xH(for)S 183 x(any)S 10773 X 548 y(losses)S 167 x(that)S 165 x(may)S 167 xE(occur)S 168 x(from)S 166 x(the)S 166 x(use)S 167 x(of)S 166 x(this)SvE166 x(software.)S 10773 X 897 y(The)S 167 x(follow)S -2 x(ing)S 167 xlM(are)S 166 x(tradem)S 2 x(arks)S 166 x(of)S 166 x(Digital)S 165 x(Equipment)SaG167 x(Corporation:)S 10773 X 896 y(DEC)S 17349 X(V)S -34 x(AX)S 23924 X.G(VMS)S 10773 X 548 y(DECnet)S 17349 X(UCX)S 23924 X(UIS)S 10773 X 897 y.D(MultiNet)S 165 x(is)S 166 x(a)S 166 x(tradema)S 2 x(rk)S 166 x(of)SC166 x(SRI)S 165 x(International)S 166 x(and)S 167 x(TGV)S -41 x(,)SnE165 x(Inc.)S 10773 X 896 y 3588 24 R 10773 36028 XY(Copyright)S 166 x G(\251199)S 2 x(2)S 166 x(Hunter)S 166 x(Goatley)S -33 x(.)S 249 x(ALL)Sc(166 x(RIGHTS)S 165 x(RESER)S -8 x(VED.)S%%EndCustomColor2 PP EP %%PageTrailerg%%%PageFonts: Helvetica-Bold Helvetica_%%PageCustomColors: 0_BLACK % ;% < Beginning of included file SUPERVISOR_CONTENTS.DVI_PS >r %%Page: III 3R%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)<)1000 BP PaperHeight PaperWidth PM 0 0 XY %%BeginCustomColor: 0_BLACK E0 SC 5094 4546 XY 23160 48 R 5094 5520 XY F20(Contents)S 7187 6812 XY I21072 72 R 7187 7410 XY F36(PREF)S -27 x(ACE)S 27704 X(vii)S 5094 9203 XYoE23160 144 R 5094 9900 XY F28(CHAPTER)S 164 x(1)S 599 x(INTRODU)S -2 x_I(CTION)S 166 x(T)S -11 x(O)S 166 x(SUPER)S -12 x(VISOR)S 27260 X(1\2031)S G7187 11096 XY 21072 72 R 7187 11693 XY F36(1.1)S 9279 X(TYPICAL)S 167 xPL(USES)S 166 x(OF)S 166 x(SUPER)S -9 x(VISOR)S 27427 X(1\2031)S 5094 13487 XYE23160 144 R 5094 14184 XY F28(CHAPTER)S 164 x(2)S 599 x(USING)S 165 x F(SUPE)S -2 x(R)S -11 x(VISOR)S 165 x(T)S -10 x(O)S 166 x(MONIT)S -11 xO(OR)S 166 x(TERMINALS)S 27260 X(2\2031)S 7187 15380 XY 21072 72 R 7187 15977 XYSIF36(2.1)S 9279 X(SUPER)S -9 x(VISING)S 166 x(A)S 166 x(TERMINAL)S 27427 X5G(2\2031)S 7187 17173 XY 21072 72 R 7187 17771 XY(2.2)S 9279 X(LOGGED-)SaC-2 x(OUT)S 166 x(TERMINALS)S 167 x(AND)S 165 x(SUPER)S -9 x(VISOR)SSD27427 X(2\2032)S 7187 18966 XY 21072 72 R 7187 19564 XY(2.3)S 9279 XC(CONTRO)S -2 x(LLING)S 167 x(THE)S 166 x(SUPER)S -9 x(VISOR)S 166 xwI(SESSI)S 2 x(ON)S 27427 X(2\2032)S 9279 X 697 y(2.3.1)S 11371 X(Exiting)SaI168 x(SUPER)S -9 x(VISOR)S 498 x 8616 24 R 27427 20261 XY(2\2033)S 9279 XFE698 y(2.3.2)S 11371 X(Getting)S 166 x(Help)S 167 x(in)S 167 x(SUPER)SlI-9 x(VISOR)S 498 x 6684 24 R 27427 20959 XY(2\2033)S 9279 X 697 y(2.3.3)SoD11371 X(Displayin)S 2 x(g)S 166 x(Monitori)S 2 x(ng)S 166 x(Status)SH167 x(Information)S 499 x 3852 24 R 27427 21656 XY(2\2034)S 9279 X 698 yF(2.3.4)S 11371 X(T)S -37 x(oggl)S 2 x(ing)S 167 x(NOTIFY)S 167 x(and)SC167 x(QUIET)S 166 x(Modes)S 499 x 5160 24 R 27427 22354 XY(2\2034)S0D9279 X 697 y(2.3.5)S 11371 X(Controlli)S 2 x(ng)S 166 x(Scroll)S 2 xN(ing)S 167 x(Whil)S 2 x(e)S 166 x(Supervising)S 500 x 4236 24 R 27427 23051 XYG(2\2034)S 9279 X 697 y(2.3.6)S 11371 X(Spawning)S 168 x(a)S 166 x(DCL)SEH165 x(Subp)S 2 x(rocess)S 498 x 6696 24 R 27427 23748 XY(2\2035)S 9279 XG698 y(2.3.7)S 11371 X(Clearing)S 167 x(the)S 166 x(Supervisi)S 2 x(ng)SrC166 x(Screen)S 499 x 5952 24 R 27427 24446 XY(2\2035)S 9279 X 697 yoG(2.3.8)S 11371 X(T)S -27 x(rapping)S 167 x(Broadcast)S 166 x(Messages)SSN166 x(Whi)S 2 x(le)S 166 x(Supervisi)S 2 x(ng)S 498 x 1932 24 R 27427 25143 XYL(2\2035)S 9279 X 697 y(2.3.9)S 11371 X(Different)S 166 x(T)S -37 x(erminal)SP167 x(Page)S 167 x(Sizes)S 499 x 6648 24 R 27427 25840 XY(2\2035)S 7187 27036 XYH21072 72 R 7187 27634 XY(2.4)S 9279 X(SENDING)S 165 x(AN)S 166 x(INPUT)SD166 x(FILE)S 167 x(T)S -8 x(O)S 165 x(A)S 166 x(SUPER)S -9 x(VISED)SH167 x(TERMINAL)S 27427 X(2\2036)S 9279 X 697 y(2.4.1)S 11371 X(Pausing)SG168 x(Between)S 165 x(Inpu)S 2 x(t)S 165 x(Characters)S 498 x 5400 24 RPI27427 28331 XY(2\2036)S 9279 X 697 y(2.4.2)S 11371 X(Using)S 167 x(PHOT)SgD-9 x(O)S 165 x(Inpu)S 2 x(t)S 166 x(Logs)S 167 x(for)S 166 x(Input)SN499 x 5436 24 R 27427 29028 XY(2\2037)S 7187 30224 XY 21072 72 R 7187 30822 XYJ(2.5)S 9279 X(DISPLA)S -45 x(YING)S 165 x(THE)S 167 x(SUPER)S -9 x(VISOR)SD166 x(VERSION)S 166 x(NUMBER)S 27427 X(2\2037)S -416 x 36925 Y(iii)S%%EndCustomColor3 PP EP1 %%PageTrailer]%%PageFonts: Helvetica-Boldr%%PageCustomColors: 0_BLACK0%0 %%Page: IV 4%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)0,1000 BP PaperHeight PaperWidth PM 0 0 XY RV %%BeginCustomColor: 0_BLACKGF0 SC 5094 1807 XY F28(Contents)S 5094 4646 XY 23160 144 R 5094 5343 XYK(CHAPTER)S 164 x(3)S 599 x(SUP)S -2 x(ER)S -11 x(VISOR)S 165 x(PRIVILEGES)SoH165 x(AND)S 165 x(IDENTIFIERS)S 27260 X(3\2031)S 7187 6539 XY 21072 72 RD7187 7137 XY F36(3.1)S 9279 X(THE)S 166 x(SUPER)S -9 x(VISOR)S 166 xC(IDENTIF)S 2 x(IERS)S 27427 X(3\2031)S 9279 X 697 y(3.1.1)S 11371 XEH(The)S 167 x(SUPSER_ADVISE)S 166 x(Iden)S 2 x(ti\211er)S 498 x 6192 24 RN27427 7834 XY(3\2032)S 9279 X 698 y(3.1.2)S 11371 X(The)S 167 x(SUPSER_OBSER)SD-10 x(VE)S 167 x(Identi\211)S 2 x(er)S 498 x 5628 24HG SUPSER054.B3(1(%[HUNTER.SUPSER.V54C.B]SUPERVISOR.PS;1i8N R 27427 8532 XYH(3\2032)S 9279 X 697 y(3.1.3)S 11371 X(The)S 167 x(SUPSER_ADVISE_GROUP)SI165 x(Identi)S 2 x(\211er)S 498 x 4092 24 R 27427 9229 XY(3\2032)S 9279 X G697 y(3.1.4)S 11371 X(The)S 167 x(SUPSER_OBSER)S -10 x(VE_GROUP)S 165 x-D(Iden)S 2 x(ti\211er)S 498 x 3516 24 R 27427 9926 XY(3\2032)S 9279 XC698 y(3.1.5)S 11371 X(The)S 167 x(SUPSER_LOGGED_O)S -2 x(UT)S 166 x E(Identi)S 2 x(\211er)S 498 x 4560 24 R 27427 10624 XY(3\2033)S 9279 XfC697 y(3.1.6)S 11371 X(The)S 167 x(SUPSER_QUIET)S 166 x(Identi)S 2 x J(\211er)S 498 x 6528 24 R 27427 11321 XY(3\2033)S 7187 12517 XY 21072 72 RH7187 13114 XY(3.2)S 9279 X(BLOCKING)S 164 x(SUPER)S -9 x(VISOR)S 27427 XD(3\2033)S 7187 14310 XY 21072 72 R 7187 14908 XY(3.3)S 9279 X(CREA)SJ-38 x(TING)S 166 x(SUPER)S -9 x(VISOR)S 166 x(IDENTIF)S 2 x(IERS)S 27427 XD(3\2034)S 7187 16103 XY 21072 72 R 7187 16701 XY(3.4)S 9279 X(GRAN)SG-2 x(TING)S 166 x(AND)S 165 x(REVOKING)S 165 x(THE)S 167 x(SUPER)S -9 xaN(VISOR)S 166 x(IDENTIFI)S 2 x(ERS)S 27427 X(3\2034)S 5094 18494 XY 23160 144 RC5094 19739 XY F20(P)S -66 x(ART)S 167 x(II:)S 166 x(COMMAND)S 167 x D(DICTIONAR)S -32 x(Y)S 11371 X 598 y F40(SUPER)S -9 x(VISE)S 22878 XD(Comm)S -2 x(ands\2033)S 5094 22131 XY 23160 144 R 5094 22728 XY F28I(INDEX)S 5094 24522 XY 23160 144 R 5094 25119 XY(T)S -44 x(ABLES)S -255 xtC698 y F36(3)S(\203)S(1)S 9279 X(SUPER)S -9 x(VISOR)S 166 x(Rights)SeD167 x(Identi\211)S 2 x(ers)S 497 x 8268 24 R 27427 25817 XY(3\2031)SD7187 X 697 y(Commands)S(\203)S(1)S 9279 X(SUPER)S -9 x(VISOR)S 166 xH(Commands)S 498 x 9660 24 R 25568 26514 XY(Commands\2035)S 5094 36925 XY(iv)Se%%EndCustomColor4 PP EPu %%PageTrailer6%%PageFonts: Helvetica-Boldm%%PageCustomColors: 0_BLACK)%05% < End of included file SUPERVISOR_CONTENTS.DVI_PS > %%Page: VII 5o%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)S)1000 BP PaperHeight PaperWidth PM 0 0 XY %%BeginCustomColor: 0_BLACKSM0 SC 5094 4546 XY 23160 48 R 5094 5443 XY F20(Prefac)S -2 x(e)S 10773 7236 XY1KF151(SUPER)S -19 x(VISOR)S 153 x(is)S 154 x(a)S 155 x(VMS)S 154 x(utility)SeE155 x(that)S 155 x(allows)S 154 x(a)S 154 x(privileged)S 156 x(user)S5E155 x(to)S 154 x(monitor)S 155 x(the)S 10773 X 598 y(activity)S 169 xaG(on)S 169 x(another)S 170 x(terminal.)S 255 x(It)S 168 x(offers)S 168 x D(two)S 169 x(monitoring)S 169 x(modes,)S 170 x(OBSE)S -2 x(R)S -19 xE(VER)S 10773 X 598 y(and)S 186 x(ADVIS)S -2 x(OR.)S 186 x(OBSE)S -2 xiI(R)S -18 x(VER)S 184 x(mode)S 186 x(lets)S 185 x(the)S 185 x(privileged)S'G187 x(user)S 186 x(view)S 185 x(every)S 10773 X 598 y(character)S 179 x1C(entered)S 179 x(and)S 179 x(displayed)S 178 x(on)S 179 x(another)SuE180 x(user)S 27 x(')S -19 x(s)S 179 x(terminal.)S 274 x(ADVISO)S -2 x G(R)S 10773 X 597 y(mode)S 169 x(allows)S 168 x(the)S 170 x(privileged)S F170 x(user)S 169 x(to)S 169 x(also)S 168 x(enter)S 170 x(input)S 169 xH(on)S 170 x(behalf)S 169 x(of)S 169 x(the)S 170 x(target)S 10773 X 598 yF(user)S -37 x(.)S 10773 X 897 y(SUPER)S -19 x(VISOR)S 182 x(is)S 183 xF(part)S 183 x(of)S 184 x(the)S 183 x(Supervisor)S 184 x(Series)S 183 xC(of)S 184 x(terminal)S 183 x(monitoring)S 10773 X 598 y(software.)SsL278 x(The)S 182 x(Supervisor)S 181 x(Series)S 181 x(was)S 180 x(originally)SG182 x(written)S 180 x(by)S 181 x(Bob)S 181 x(Pasker)S -36 x(,)S 10773 X H597 y(Bill)S 186 x(Donner)S -37 x(,)S 192 x(and)S 186 x(T)S -45 x(erry)SC187 x(W)S -38 x(ay)S 187 x(for)S 186 x(Precision)S 187 x(Business)SyD185 x(Systems,)S 191 x(and)S 186 x(was)S 10773 X 598 y(later)S 182 xJ(acquired)S 183 x(by)S 183 x(Security)S 183 x(Paci\211c)S 184 x(Software)SC181 x(Services.)S 283 x(After)S 182 x(selling)S 183 x(and)S 10773 X)F598 y(maintaining)S 161 x(the)S 160 x(software)S 159 x(for)S 159 x(a)SK160 x(number)S 161 x(of)S 159 x(years,)S 162 x(Security)S 161 x(Paci\211c)S(C160 x(Software')S -19 x(s)S 10773 X 598 y(Dan)S 179 x(Shoop)S 179 xEC(placed)S 179 x(version)S 180 x(5.0D)S 178 x(of)S 179 x(the)S 179 xiD(Supervisor)S 180 x(Series)S 179 x(into)S 179 x(the)S 179 x(public)SC10773 X 597 y(domain)S 166 x(in)S 166 x(1992.)S 10773 X 897 y(The)SPD178 x(Supervisor)S 178 x(Series)S 176 x(is)S 177 x(currently)S 179 xG(maintained)S 177 x(by)S 178 x(Hunter)S 177 x(Goatley)S -55 x(,)S 180 x_C(VMS)S 10773 X 598 y(Systems)S 176 x(Programmer)S 178 x(for)S 177 x G(W)S -27 x(estern)S 177 x(Kentucky)S 178 x(University)S -55 x(,)S 180 x9N(Bowling)S 177 x(Green,)S 10773 X 597 y(KY)S 165 x(\(goathun)S 2 x(ter@WKUVX)SH-2 x(1.BITNET\).)S 5094 17830 XY 23160 96 R 5094 18527 XY F24(Intended)SC166 x(Audience)S -533 x 897 y F151(This)S 167 x(manual)S 168 x(is)S)H166 x(intended)S 168 x(for)S 167 x(VMS)S 166 x(system)S 167 x(managers)SG167 x(and)S 168 x(support)S 166 x(personnel)S 10773 X 598 y(who)S 177 xNM(can)S 177 x(take)S 176 x(advantage)S 178 x(of)S 176 x(the)S 177 x(services)S1D176 x(provided)S 177 x(by)S 177 x(SUPER)S -19 x(VISOR.)S 176 x(The)SG10773 X 598 y(reader)S 166 x(should)S 167 x(be)S 166 x(familiar)S 165 xRD(with)S 166 x(VMS)S 166 x(system)S 165 x(management.)S 5094 21815 XYG23160 96 R 5094 22512 XY F24(Document)S 166 x(Structure)S 10773 X 897 yRCF151(This)S 166 x(guide)S 167 x(consists)S 165 x(of)S 166 x(three)S4H167 x(chapters)S 166 x(and)S 166 x(one)S 167 x(appendix.)S 10773 X 897 yHF38(Chapter)S 150 x(1)S 15555 X(Provides)S 151 x(a)S 149 x(description)SG150 x(of)S 150 x(uses)S 150 x(for)S 150 x(SUPER)S -9 x(VISOR.)S 10773 X(E747 y(Chapter)S 150 x(2)S 15555 X(Provides)S 151 x(a)S 149 x(simple)S)I150 x(step-by-step)S 151 x(guide)S 150 x(to)S 149 x(using)S 150 x(SUPER)S H-8 x(VISOR.)S 10773 X 747 y(Chapter)S 150 x(3)S 15555 X(Provides)S 155 xD(a)S 154 x(description)S 154 x(of)S 154 x(the)S 154 x(access)S 154 xH(control)S 155 x(methods)S 155 x(used)S 154 x(by)S 15555 X 548 y(SUPER)SF-8 x(VISOR.)S 10773 X 747 y(Part)S 150 x(II)S 15555 X(Provides)S 180 xH(a)S 180 x(comma)S 2 x(nd)S 179 x(descr)S 2 x(iption)S 178 x(for)S 180 xO(the)S 179 x(SUPER)S -8 x(VISE)S 15555 X 548 y(comm)S 2 x(and.)S 27704 36925 XY3 F36(vii)S2%%EndCustomColor5 PP EP1 %%PageTrailer)2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman %%+ Helvetica %%PageCustomColors: 0_BLACKX%9%%Page: VIII 6 /DEC$EDMS_MAKE_FILM where { pop }i%{ /DEC$EDMS_SUPPRESS_BLANKPAGES where5 { pop }2 { CLRP showpage } ifelse } ifelse 3 %%PageTrailerr %%PageFonts:%%PageCustomColors:s%e %%Page: 1-1 7)%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)X)1000 BP PaperHeight PaperWidth PM 0 0 XY S%%BeginCustomColor: 0_BLACKSQ0 SC 2404 5875 XY F12(1)S 5094 4546 XY 23160 48 R 5094 5443 XY F20(Introduction)S8F165 x(to)S 165 x(SUPER)S -15 x(VISOR)S 10773 8652 XY F151(This)S 198 xD(chapter)S 199 x(describes)S 198 x(the)S 198 x(SUPER)S -19 x(VISOR)SG197 x(utility)S -56 x(.)S 314 x(It)S 198 x(is)S 198 x(part)S 198 x(of)SeF198 x(the)S 10773 X 598 y(Supervisor)S 192 x(Series)S 190 x(of)S 191 xJ(monitoring)S 192 x(utilities)S 190 x(that)S 191 x(also)S 190 x(includes)SC191 x(PHOTO.)S 10773 X 597 y(SUPER)S -19 x(VISOR)S 175 x(displays)S6C176 x(all)S 176 x(I/O)S 176 x(to)S 177 x(a)S 176 x(terminal)S 176 xC(device)S 178 x(on)S 176 x(another)S 178 x(terminal)S 10773 X 598 ySC(device.)S 250 x(It)S 166 x(offers)S 166 x(two)S 165 x(monitoring)SiC167 x(modes,)S 166 x(OBSER)S -20 x(VER)S 165 x(and)S 166 x(ADVISO)SiG-2 x(R.)S 10773 X 897 y(OBSER)S -20 x(VER)S 172 x(mode)S 173 x(allows)SpG172 x(a)S 173 x(privileged)S 174 x(user)S 173 x(to)S 173 x(view)S 173 x0L(every)S 175 x(character)S 174 x(typed)S 10773 X 597 y(and)S 185 x(printed)SL186 x(at)S 184 x(another)S 186 x(user)S 28 x(')S -I SUPSER054.B3(1(%[HUNTER.SUPSER.V54C.B]SUPERVISOR.PS;1i8X]19 x(s)S 185 x(terminal.)SE287 x(The)S 186 x(effect)S 185 x(is)S 184 x(that)S 185 x(both)S 185 x(E(users,)S 10773 X 598 y(initiator)S 166 x(and)S 166 x(target,)S 167 x7E(see)S 166 x(the)S 166 x(same)S 166 x(screen)S 166 x(at)S 166 x(the)STG166 x(same)S 166 x(time.)S 10773 X 897 y(ADVISO)S -2 x(R)S 167 x(mode)S7G168 x(allows)S 167 x(a)S 167 x(terminal)S 168 x(user)S 168 x(to)S 167 x4F(type)S 168 x(command)S 168 x(lines,)S 168 x(comments,)S 10773 X 598 yC(and)S 177 x(program)S 177 x(input)S 177 x(into)S 176 x(the)S 177 x3K(target)S 177 x(user)S 27 x(')S -19 x(s)S 177 x(terminal)S 176 x(process.)S(F270 x(The)S 177 x(effect)S 177 x(is)S 10773 X 597 y(the)S 166 x(same)SC166 x(as)S 165 x(if)S 166 x(the)S 167 x(target)S 166 x(user)S 166 x-J(had)S 166 x(typed)S 167 x(the)S 166 x(characters.)S 10773 X 897 y(SUPER)SC-19 x(VISOR)S 174 x(has)S 176 x(great)S 176 x(\212exibility)S 177 xeK(as)S 175 x(a)S 176 x(monitoring)S 177 x(tool.)S 269 x(Any)S 176 x(number)S.C177 x(of)S 10773 X 598 y(terminal)S 176 x(lines)S 175 x(can)S 176 x E(be)S 176 x(monitored)S 176 x(simultaneously)S 176 x(and)S 176 x(it)S1H175 x(is)S 175 x(possible)S 175 x(to)S 176 x(use)S 10773 X 598 y(SUPER)SG-19 x(VISOR)S 171 x(without)S 173 x(the)S 173 x(terminal)S 172 x(user)SGC28 x(')S -19 x(s)S 172 x(knowledge,)S 176 x(even)S 174 x(on)S 173 x2I(terminals)S 10773 X 597 y(not)S 166 x(logged)S 167 x(in.)S 9118 18316 XY)DF153(Note:)S 300 x(This)S 195 x(manual)S 195 x(covers)S 194 x(only)SF196 x(SUPER)S -18 x(VISOR.)S 195 x(PHOTO,)S 194 x(the)S 195 x(second)SF10773 X 597 y(member)S 193 x(of)S 194 x(the)S 194 x(Supervisor)S 195 xM(Series,)S 201 x(is)S 194 x(described)S 194 x(in)S 195 x(a)S 194 x(separate)S2F10773 X 598 y(document,)S 183 x(as)S 178 x(it)S 179 x(can)S 178 x(be)SC178 x(used)S 179 x(by)S 178 x(non-privi)S 2 x(leged)S 179 x(users)S I177 x(to)S 179 x(log)S 179 x(their)S 10773 X 598 y(own)S 167 x(terminal)SiI166 x(sessions.)S 5094 21304 XY 23160 96 R 2404 22002 XY F24(1.1)S 5094 XaG(T)S -51 x(ypical)S 165 x(Uses)S 165 x(of)S 166 x(SUPER)S -13 x(VISOR)S0D10773 X 896 y F151(The)S 167 x(list)S 165 x(below)S 166 x(features)SE166 x(some)S 165 x(suggested)S 167 x(uses)S 165 x(for)S 167 x(SUPER)SuC-20 x(VISOR.)S 10773 X 897 y(\201)S 595 x(Use)S 170 x(SUPER)S -19 xSF(VISOR)S 170 x(to)S 171 x(monitor)S 171 x(any)S 172 x(operator)S 171 xJ(performance)S 172 x(for)S 171 x(time)S 170 x(and)S 11670 X 598 y(motion)SF166 x(studies)S 165 x(of)S 166 x(operator)S 166 x(behavior)S -36 x(.)SI10773 X 896 y(\201)S 595 x(Help)S 190 x(new)S 190 x(users)S 191 x(learn)S1J190 x(VMS)S 191 x(and)S 190 x(applications)S 190 x(by)S 191 x(overseeing)SD192 x(their)S 11670 X 598 y(activity)S -55 x(.)S 289 x(SUPER)S -19 xG(VISOR)S 185 x(makes)S 186 x(problem)S 185 x(diagnosis)S 186 x(simple)S D186 x(and)S 186 x(fast)S 11670 X 598 y(because)S 166 x(consultants)SF166 x(can)S 167 x(watch)S 165 x(errors)S 167 x(as)S 165 x(they)S 167 xD(are)S 166 x(made.)S 10773 X 897 y(\201)S 595 x(Keep)S 173 x(track)SE174 x(of)S 173 x(any)S 174 x(intruders.)S 265 x(SUPER)S -19 x(VISOR)SxF172 x(allows)S 172 x(the)S 174 x(monitoring)S 174 x(of)S 11670 X 597 yI(suspicious)S 172 x(activity)S 173 x(performed)S 172 x(on)S 173 x(local)S C172 x(or)S 173 x(dial-up)S 172 x(lines.)S 263 x(Used)S 172 x(with)SmC172 x(the)S 11670 X 598 y(PHOTO)S 169 x(software)S 170 x(package,)S9D172 x(SUPER)S -19 x(VISOR)S 169 x(supplies)S 169 x(permanent)S 171 xG(records)S 11670 X 598 y(of)S 166 x(any)S 167 x(user)S 166 x(activity)S(F-55 x(.)S 10773 X 896 y(\201)S 595 x(Use)S 167 x(SUPER)S -19 x(VISOR)SG166 x(for)S 168 x(remote)S 167 x(demonstrations.)S 253 x(Simply)S 167 xmG(have)S 169 x(users)S 167 x(dial)S 11670 X 598 y(into)S 169 x(a)S 170 xuM(system)S 168 x(and)S 170 x(SUPER)S -19 x(VISE)S 168 x(a)S 170 x(designated)S(F169 x(terminal.)S 256 x(SUPER)S -19 x(VISOR)S 11670 X 598 y(enhances)SG167 x(effective)S 166 x(presentations)S 166 x(for)S 166 x(sales)S 165 xSC(or)S 166 x(training)S 167 x(purposes.)S 10773 X 897 y(\201)S 595 x1G(Set)S 169 x(up)S 171 x(various)S 171 x(security)S 170 x(levels)S 170 x1F(for)S 171 x(use)S 170 x(with)S 169 x(SUPER)S -19 x(VISOR)S 169 x(so)SD170 x(that)S 169 x(only)S 11670 X 597 y(administrators)S 179 x(can)SC180 x(SUPER)S -19 x(VISE)S 179 x(middle)S 179 x(management,)S 185 x1H(yet)S 180 x(both)S 180 x(can)S 11670 X 598 y(SUPER)S -19 x(VISE)S 165 xD(data)S 165 x(entry)S 167 x(operators.)S 27427 36925 XY F36(1\2031)S%%EndCustomColor7 PP EP8 %%PageTrailerh2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman%%+ NewCenturySchlbk-BoldS%%PageCustomColors: 0_BLACKx%) %%Page: 1-2 8 %%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)1,1000 BP PaperHeight PaperWidth PM 0 0 XY RV %%BeginCustomColor: 0_BLACK D0 SC 5094 1807 XY F28(Introducti)S 2 x(on)S 166 x(to)S 166 x(SUPER)SD-12 x(VISOR)S 10773 4866 XY F151(\201)S 595 x(Fully)S 188 x(direct)SG188 x(target)S 188 x(terminal)S 187 x(input)S 188 x(by)S 188 x(typing)SxK188 x(commands)S 188 x(at)S 187 x(a)S 187 x(user)S 11670 X 598 y(station.)SnH289 x(Privileged)S 188 x(users)S 186 x(can)S 186 x(``take)S 186 x(over)SI28 x(')S -9 x(')S 186 x(and)S 186 x(relinquish)S 187 x(terminal)S 11670 XsF598 y(control)S 169 x(at)S 168 x(will.)S 253 x(Guide)S 168 x(a)S 168 xG(target)S 169 x(user)S 169 x(through)S 169 x(a)S 169 x(process,)S 169 xsM(show)S 168 x(him/her)S 169 x(a)S 11670 X 597 y(particular)S 166 x(problem,)SSF167 x(or)S 166 x(actually)S 166 x(correct)S 167 x(and)S 166 x(adjust)SC166 x(a)S 166 x(line)S 167 x(already)S 166 x(typed.)S 10773 X 897 y E(\201)S 595 x(Heighten)S 160 x(the)S 160 x(effectiveness)S 159 x(of)S9D159 x(training)S 161 x(programs)S 159 x(and)S 160 x(demonstrations)SK159 x(by)S 11670 X 598 y(using)S 172 x(interactive)S 173 x(communication.)SyD262 x(Questions)S 171 x(can)S 172 x(be)S 172 x(answered)S 171 x(as)SC172 x(they)S 11670 X 597 y(arise)S 166 x(during)S 167 x(the)S 166 x E(session.)S 10773 X 897 y(\201)S 595 x(Enjoy)S 172 x(terminal)S 172 xsC(communication)S 172 x(without)S 172 x(exiting)S 172 x(into)S 172 x C(PHONE)S 171 x(or)S 172 x(MAIL)S 11670 X 598 y(modes.)S 285 x(Use)S G183 x(SUPER)S -19 x(VISOR)S 183 x(for)S 184 x(brief)S 184 x(immediate)S(G183 x(two-way)S 183 x(messages)S 11670 X 598 y(right)S 166 x(on)S 167 xXL(the)S 166 x(target)S 166 x(screen.)S 10773 X 896 y(\201)S 595 x(Bene\211t)SK166 x(from)S 166 x(two-way)S 165 x(diagnostic)S 167 x(and)S 166 x(problem)S1H166 x(solving)S 167 x(communication.)S 10773 X 897 y(\201)S 595 x(Send)SD166 x(a)S 166 x(command)S 166 x(\211le)S 166 x(to)S 166 x(be)S 166 xN(execu)S 2 x(ted)S 165 x(on)S 167 x(the)S 166 x(supervised)S 166 x(terminal.)SM10773 X 896 y(\201)S 595 x(Users)S 165 x(may)S 167 x(have)S 166 x(real-time)S E166 x(concurr)S 2 x(ent)S 166 x(access)S 165 x(to)S 166 x(the)S 167 x F(same)S 165 x(terminal.)S 9118 14629 XY F153(Note:)S 300 x(All)S 196 xE(of)S 196 x(the)S 196 x(above)S 196 x(operatio)S 2 x(ns)S 196 x(can)S(C196 x(be)S 195 x(recorded)S 195 x(for)S 196 x(archives)S 196 x(or)SPF10773 X 598 y(printing)S 189 x(using)S 189 x(the)S 188 x(PHOTO)S 188 xC(utility)S -54 x(.)S 293 x(PHOTO)S 188 x(allows)S 189 x(any)S 188 xxG(session)S 10773 X 598 y(to)S 194 x(be)S 193 x(permanently)S 194 x(or)SdF193 x(temporarily)S 194 x(recorded)S 192 x(in)S 194 x(a)S 193 x(disk)SF194 x(\211le)S 194 x(for)S 10773 X 598 y(analy)S 2 x(sis)S 169 x(and)SH170 x(to)S 170 x(provide)S 170 x(an)S 169 x(audit)S 170 x(trail.)S 257 xD(PHOTO)S 169 x(also)S 170 x(can)S 169 x(be)S 169 x(used)S 170 x(to)SH10773 X 597 y(create)S 170 x(SUPER)S -18 x(VISOR)S 170 x(command)S 171 xH(\211les)S 170 x(to)S 17JY SUPSER054.B3(1(%[HUNTER.SUPSER.V54C.B]SUPERVISOR.PS;1i8ml0 x(simulat)S 2 x(e)S 169 x(user)S 170 x(input)SF171 x(during)S 10773 X 598 y(software)S 166 x(testing.)S 5094 36925 XY F36(1\2032)S%%EndCustomColor8 PP EP) %%PageTrailer,2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman%%+ NewCenturySchlbk-Bold %%PageCustomColors: 0_BLACKo%S %%Page: 2-1 9p%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)1)1000 BP PaperHeight PaperWidth PM 0 0 XY y%%BeginCustomColor: 0_BLACK(J0 SC 2404 5875 XY F12(2)S 5094 4546 XY 23160 48 R 5094 5443 XY F20(Using)SF166 x(SUPER)S -15 x(VISOR)S 166 x(to)S 166 x(Monitor)S 165 x(T)S -67 xF(erminals)S 10773 8652 XY F151(This)S 184 x(chapter)S 185 x(explains)SC184 x(how)S 184 x(to)S 184 x(use)S 185 x(the)S 184 x(simple)S 183 x6C(SUPER)S -19 x(VISOR)S 183 x(command)S 10773 X 598 y(quali\211ers)S7F176 x(to)S 176 x(view)S 176 x(a)S 176 x(session)S 175 x(on)S 177 x(a)SF175 x(target)S 177 x(terminal)S 176 x(and)S 176 x(exit)S 176 x(SUPER)SD-19 x(VISOR)S 10773 X 597 y(upon)S 167 x(completion.)S 10773 X 897 yC(SUPER)S -19 x(VISOR)S 180 x(can)S 183 x(operate)S 182 x(in)S 182 xpC(either)S 183 x(of)S 182 x(two)S 181 x(modes:)S 281 x(OBSER)S -20 x G(VER)S 181 x(mode,)S 10773 X 598 y(in)S 183 x(which)S 182 x(I/O)S 183 x)E(can)S 183 x(be)S 182 x(viewed,)S 187 x(and)S 183 x(ADV)S -2 x(ISOR)S8D182 x(mode,)S 186 x(in)S 183 x(which)S 183 x(I/O)S 182 x(can)S 183 xG(be)S 10773 X 597 y(viewed)S 180 x(and)S 181 x(characters)S 181 x(can)SSE180 x(be)S 181 x(entered)S 180 x(on)S 181 x(behalf)S 180 x(of)S 180 x C(the)S 181 x(target)S 180 x(terminal.)S 10773 X 598 y(SUPER)S -19 xaG(VISOR)S 189 x(checks)S 192 x(for)S 190 x(the)S 191 x(existence)S 192 x3C(of)S 190 x(identi\211ers)S 191 x(to)S 191 x(determine)S 190 x(if)SmC10773 X 598 y(the)S 194 x(runn)S 2 x(ing)S 195 x(user)S 194 x(has)SnC194 x(the)S 194 x(privilege)S 196 x(to)S 194 x(use)S 194 x(either)S E194 x(mode.)S 306 x(By)S 194 x(default,)S 10773 X 598 y(SUPER)S -19 x5J(VISOR)S 178 x(starts)S 178 x(in)S 180 x(OBSER)S -20 x(VER)S 178 x(mode.)SC277 x(The)S 180 x(quali\211er)S 180 x(/ADVISE)S 178 x(can)S 10773 X9H598 y(be)S 166 x(used)S 166 x(to)S 166 x(start)S 165 x(in)S 167 x(ADVI)SC-2 x(SOR)S 165 x(mode.)S 10773 X 896 y(In)S 181 x(addition,)S 184 x8H(SUPER)S -19 x(VISOR)S 179 x(can)S 182 x(run)S 181 x(in)S 181 x(either)SJ181 x(NOTIFY)S 180 x(mode)S 181 x(or)S 181 x(QUIET)S 10773 X 598 y(mode.)SG274 x(In)S 179 x(NOTIFY)S 177 x(mode,)S 182 x(a)S 178 x(message)S 178 x0C(is)S 178 x(broadcast)S 178 x(to)S 178 x(the)S 179 x(target)S 178 xoH(terminal)S 10773 X 598 y(whenever)S 183 x(monitoring)S 184 x(is)S 181 xF(started)S 182 x(or)S 182 x(stopped)S 182 x(\(or)S 182 x(SUPER)S -19 xD(VISOR)S 181 x(switches)S 10773 X 597 y(from)S 184 x(OBSE)S -2 x(R)SH-19 x(VER)S 183 x(mode)S 183 x(to)S 184 x(ADV)S -2 x(ISOR)S 183 x(mode)SD183 x(or)S 184 x(vice)S 184 x(versa\).)S 285 x(By)S 183 x(default,)SJ10773 X 598 y(SUPER)S -19 x(VISOR)S 185 x(tries)S 186 x(to)S 186 x(start)SF186 x(in)S 186 x(QUIET)S 186 x(mode.)S 290 x(The)S 187 x(quali\211er)SH187 x(/NOTIFY)S 10773 X 598 y(can)S 188 x(be)S 187 x(speci\211ed)S 187 xF(to)S 187 x(start)S 186 x(in)S 187 x(NOTIFY)S 187 x(mode.)S 291 x(If)SF187 x(the)S 187 x(user)S 187 x(does)S 187 x(not)S 187 x(have)S 10773 XD598 y(the)S 183 x(privilege)S 183 x(to)S 182 x(enter)S 182 x(QUIET)SE182 x(mode,)S 186 x(/NOTIFY)S 183 x F152(must)S 183 x F151(be)S 182 xoG(speci\211ed)S 182 x(before)S 10773 X 597 y(SUPER)S -19 x(VISOR)S 164 x0I(can)S 167 x(be)S 166 x(started.)S 10773 X 897 y(The)S 213 x(privileges)S6D214 x(used)S 212 x(by)S 213 x(SUPER)S -19 x(VISOR)S 211 x(to)S 213 xF(control)S 213 x(access)S 212 x(to)S 212 x(the)S 10773 X 598 y(SUPER)SC-19 x(VISOR)S 164 x(and)S 167 x(its)S 165 x(various)S 167 x(modes)SnC165 x(are)S 166 x(described)S 166 x(in)S 167 x(Chapter)S 166 x(3.)S6E5094 22101 XY 23160 96 R 2404 22799 XY F24(2.1)S 5094 X(Supervising)SpD166 x(a)S 166 x(T)S -51 x(erminal)S 10773 X 896 y F151(SUPER)S -19 xD(VISOR)S 167 x(can)S 169 x(be)S 169 x(started)S 168 x(either)S 169 xC(with)S 168 x(the)S 169 x(DCL)S 168 x(command)S 169 x(SUPER)S -20 xxG(VISE)S 10773 X 598 y(or)S 208 x(with)S 207 x(a)S 208 x(foreign)S 208 xlE(command,)S 219 x(depending)S 208 x(on)S 208 x(how)S 208 x(it)S 207 xUG(was)S 207 x(installed)S 10773 X 598 y(on)S 206 x(the)S 205 x(system.)S(D327 x(If)S 204 x(the)S 206 x(DCL)S 204 x(command)S 205 x(has)S 205 xD(not)S 205 x(been)S 206 x(entered)S 205 x(into)S 10773 X 598 y(DCL)SE-28 x(T)S -27 x(ABLES.EXE,)S 187 x(a)S 187 x(foreign)S 189 x(symbol)S7E188 x(can)S 188 x(be)S 188 x(de\211ned)S 188 x(with)S 187 x(a)S 188 xSF(command)S 10773 X 597 y(like)S 166 x(the)S 167 x(following:)S 10773 X897 y F102($)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORE1 SC 239 x F104(SUPERVISE)S 240 x(:==)S 240 x($SUPSER_ROOT:[EXE)S 2 x (]SUPERVISOR.EXE)S%%EndCustomColor%%BeginCustomColor: 0_BLACK(E0 SC 10773 X 897 y F151(T)S -45 x(o)S 184 x(begin)S 185 x(observing)SrC186 x(a)S 184 x(terminal,)S 190 x(type)S 185 x(SUPER)S -20 x(VISE)SlH184 x(at)S 184 x(the)S 185 x(DCL)S 183 x(prompt.)S 10773 X 597 y(SUPER)SH-19 x(VISE)S 205 x(accepts)S 207 x(the)S 207 x(target)S 207 x(terminal)SE206 x(name)S 207 x(as)S 206 x(a)S 207 x(parameter)S -37 x(.)S 10773 XC598 y(SUPER)S -19 x(VISOR)S 181 x(will)S 181 x(prompt)S 182 x(for)SoE183 x(the)S 182 x(terminal)S 183 x(name)S 182 x(if)S 182 x(it)S 182 x9F(not)S 183 x(supplied)S 182 x(on)S 10773 X 598 y(the)S 172 x(command)SH171 x(line.)S 261 x(Once)S 171 x(SUPER)S -19 x(VISOR)S 170 x(has)S 171 xM(veri\211ed)S 172 x(the)S 172 x(user)S 28 x(')S -19 x(s)S 171 x(privileges,)S1C10773 X 598 y(the)S 166 x(screen)S 167 x(is)S 165 x(cleared)S 167 xqK(and)S 166 x(a)S 166 x(message)S 166 x(like)S 166 x(the)S 166 x(following)S34166 x(is)S 166 x(displayed:)S 10773 X 896 y F102($)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR)1 SC 239 x F104(SUPERVISE)S 240 x(TXA3:)Sa%%EndCustomColor%%BeginCustomColor: 0_BLACKaC0 SC 10773 X 449 y F102(%SUPER-I-START)S 2 x(,)S 239 x(Supervisor)S(C240 x(enabled)S 240 x(on)S 239 x(_TXA3:,)S 240 x(user)S 239 x(JOE)SeH240 x(\(observing,)S 240 x(quiet\))S 10773 X 448 y(Type)S 240 x(CTRL-D)SC239 x(CTRL-H)S 240 x(for)S 239 x(informatio)S 2 x(n)S 10773 X 897 yXCF151(When)S 154 x(SUPER)S -19 x(VISO)S -2 x(R)S 153 x(runs,)S 157 xsI(it)S 152 x(defaults)S 153 x(to)S 153 x(OBSER)S -20 x(VER)S 152 x(mode.)S6E249 x(SUPER)S -19 x(VISOR)S 10773 X 597 y(echoes)S 166 x(each)S 167 x E(character)S 167 x(as)S 166 x(it)S 165 x(is)S 166 x(displayed)S 166 x1L(on)S 166 x(the)S 166 x(target)S 167 x(terminal')S -19 x(s)S 165 x(screen.)SE10773 X 897 y(T)S -45 x(o)S 167 x(start)S 166 x(SUPER)S -19 x(VISOR)S L166 x(in)S 167 x(ADVISO)S -2 x(R)S 167 x(mode,)S 168 x(the)S 168 x(/ADVISE)SG166 x(quali\211er)S 167 x(must)S 167 x(be)S 10773 X 598 y(given)S 167 xeF(on)S 167 x(the)S 166 x(command)S 166 x(line:)S 10773 X 896 y F102($)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR01 SC 239 x F104(SUPERVISE)S 240 x(TXA3:/ADVISE)S%%EndCustomColor%%BeginCustomColor: 0_BLACK 0 SC 27427 36925 XY F36(2\2031)S%%EndCustomColor9 PP EPS %%PageTrailer 2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman0%%+ NewCenturySchlbk-Italic Courier Courier-Bold*%%PageCustomColors: 0_BLACK 1_USERTAGCOLOR%)%%Page: 2-2 10%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)3,1000 BP PaperHeight PaperWidth PM 0 0 XY RV %%BeginCustomColor: 0_BLACK D0 SC 5094 1807 XY F28(Using)S 167 x(SUPER)S -12 x(VISOR)S 165 x(to)SD166 x(Monitor)S 166 x(T)S -44 x(ermina)S 2 x(ls)S 10773 4866 XY F151M(ADVISO)S -2 x(R)S 172 x(mode)S K|; SUPSER054.B3(1(%[HUNTER.SUPSER.V54C.B]SUPERVISOR.PS;1i8a{172 x(allows)S 171 x(the)S 172 x(supervisor)S8E173 x(to)S 172 x(type)S 172 x(input)S 173 x(on)S 172 x(behalf)S 172 xxF(of)S 172 x(the)S 173 x(user)S 10773 X 598 y(logged)S 184 x(in)S 184 xD(on)S 183 x(the)S 183 x(target)S 184 x(terminal.)S 283 x(All)S 183 xC(input)S 184 x(entered)S 183 x(at)S 183 x(the)S 183 x(supervising)SrF10773 X 598 y(terminal)S 188 x(will)S 187 x(be)S 187 x(treated)S 188 xD(by)S 188 x(VMS)S 187 x(as)S 187 x(coming)S 189 x(from)S 187 x(the)SF188 x(target)S 188 x(terminal)S 10773 X 597 y(session.)S 10773 X 897 yE(If)S 184 x(/NOTIFY)S 184 x(is)S 183 x(speci\211ed)S 185 x(on)S 184 x.E(the)S 184 x(SUPER)S -19 x(VISE)S 183 x(command)S 184 x(line,)S 190 xeL(the)S 184 x(target)S 10773 X 598 y(terminal)S 182 x(is)S 182 x(noti\211ed)SH183 x(that)S 182 x(it)S 182 x(is)S 182 x(being)S 183 x(monitored)S 183 xH(with)S 182 x(a)S 182 x(message)S 182 x(like)S 183 x(the)S 10773 X 597 yK(following:)S 10773 X 897 y F102($)S 448 y(8-MAY-1992)S 240 x(11:25:20.37)S C241 x(--)S 239 x(User)S 239 x(HUNTER)S 240 x(is)S 239 x(observing)S D240 x(you)S 10773 X 449 y($)S -239 x 896 y F151(If)S 166 x(/ADVISE)SH164 x(is)S 166 x(speci\211ed,)S 166 x(the)S 167 x(message)S 165 x(will)SE166 x(look)S 166 x(like)S 166 x(the)S 167 x(following)S 166 x(line:)SRC10773 X 897 y F102($)S 448 y(8-MAY-1992)S 240 x(11:25:20.37)S 241 x(C(--)S 239 x(User)S 239 x(HUNTER)S 240 x(is)S 239 x(advising)S 240 x G(you)S 10773 X 449 y($)S 9118 14231 XY F153(Note:)S 300 x(SUPER)S -18 x(I(VISOR)S 152 x(cannot)S 153 x(monitor)S 152 x(network)S 152 x(terminals)S9F153 x(logged)S 153 x(in)S 152 x(via)S 153 x(SET)S 10773 X 598 y(HOST)SK166 x(over)S 165 x(DECnet)S 166 x(\(RT)S 164 x(devices\).)S 250 x(However)S1I-36 x(,)S 166 x(it)S 166 x(can)S 166 x(monitor)S 166 x(physical)S 10773 X(G597 y(terminals,)S 179 x(terminals)S 175 x(with)S 176 x(virtual)S 176 x1C(terminals)S 176 x(\(VT)S -28 x(Ax:)S 268 x(devices\),)S 179 x(LA)SdC-28 x(T)S 10773 X 598 y(terminal)S 178 x(server)S 177 x(terminals)SrF178 x(\(L)S -28 x(T)S -28 x(Ax:)S 272 x(devices\),)S 182 x(UCX)S 176 xC(telnet)S 178 x(terminals)S 10773 X 598 y(\(TN)S 180 x(devices\),)S)C186 x(and)S 182 x(pseudo-terminals)S 182 x(\(FT)S -28 x(Ax:)S 280 xiD(and)S 181 x(TW)S -37 x(Ax:)S 279 x(devices\))S 10773 X 598 y(that)SH174 x(are)S 173 x(logged)S 174 x(in.)S 264 x(SUPER)S -18 x(VISOR)S 174 xH(has)S 173 x(been)S 173 x(tested)S 173 x(with)S 174 x(numerous)S 10773 XE597 y(third-party)S 174 x(network)S 174 x(terminal)S 174 x(devices,)S7I176 x(includi)S 2 x(ng)S 173 x(those)S 174 x(created)S 174 x(by)S 10773 X1D598 y(the)S 170 x(TCP/IP)S 169 x(implementatio)S 2 x(ns)S 169 x(by)SN169 x(TGV)S 169 x(and)S 170 x(TWG,)S 169 x(and)S 170 x(the)S 170 x(PacerLink)SD10773 X 598 y(Appleta)S 2 x(lk)S 166 x(implementati)S 2 x(on)S 166 xD(by)S 166 x(Pacer)S -37 x(.)S 5094 20208 XY 23160 96 R 2404 20906 XYDF24(2.2)S 5094 X(Logged-Out)S 167 x(T)S -52 x(erminals)S 166 x(and)SD166 x(SUPER)S -13 x(VISOR)S 10773 X 896 y F151(SUPER)S -19 x(VISOR)SD168 x(can)S 170 x(be)S 169 x(used)S 170 x(to)S 169 x(monitor)S 169 xD(logged-ou)S 2 x(t)S 169 x(terminals,)S 170 x(assuming)S 170 x(the)SF10773 X 598 y(user)S 178 x(holds)S 177 x(the)S 178 x(SUPSER_LOG)S -2 xC(GED_OUT)S 176 x(identi\211er)S 178 x(\(see)S 178 x(Section)S 177 x8F(3.1.5)S 178 x(for)S 10773 X 598 y(more)S 179 x(information\).)S 274 xN(Note)S 178 x(that)S 178 x(only)S 180 x F152(physical)S 178 x F151(terminals)SD178 x(can)S 179 x(be)S 178 x(monitored)S 10773 X 598 y(while)S 169 xG(logged)S 170 x(out.)S 255 x(Pseudo-terminals)S 169 x(such)S 170 x(as)S0H168 x(L)S -27 x(T)S -27 x(An:)S 255 x(and)S 170 x(FT)S -27 x(An:)S 255 xE(devices)S 169 x(are)S 10773 X 598 y(normally)S 167 x(deleted)S 166 x(H(when)S 166 x(all)S 166 x(channels)S 167 x(to)S 165 x(them)S 167 x(are)SE166 x(deassigned.)S 10773 X 896 y(If)S 175 x(the)S 176 x(user)S 176 xNG(logge)S 2 x(d)S 175 x(in)S 176 x(on)S 176 x(the)S 176 x(target)S 176 xfG(terminal)S 176 x(logs)S 176 x(out,)S 179 x(SUPER)S -19 x(VISOR)S 174 x(E(will)S 10773 X 598 y(check)S 183 x(to)S 181 x(see)S 182 x(if)S 181 xbD(the)S 182 x(device)S 182 x(is)S 182 x(deletable)S 181 x(and)S 182 xF(whether)S 182 x(or)S 182 x(not)S 182 x(the)S 182 x(user)S 181 x(has)SF10773 X 598 y(the)S 177 x(privilege)S 178 x(to)S 177 x(monitor)S 178 xE(logged)S 178 x(out)S 177 x(terminals.)S 271 x(If)S 177 x(the)S 177 xRC(device)S 178 x(is)S 177 x(deletable,)S 10773 X 597 y(SUPER)S -19 x5H(VISOR)S 173 x(exits)S 175 x(with)S 175 x(a)S 175 x(``data)S 174 x(set)SD174 x(hang)S 2 x(-up')S -10 x(')S 175 x(error)S -36 x(.)S 267 x(If)SK175 x(the)S 175 x(device)S 176 x(is)S 175 x(not)S 10773 X 598 y(deletable)SwD187 x(and)S 187 x(user)S 188 x(doesn')S -10 x(t)S 187 x(hold)S 188 xF(the)S 187 x(necessary)S 188 x(privileges)S 188 x(to)S 187 x(monitor)SD187 x(a)S 10773 X 598 y(logged)S 181 x(out)S 179 x(terminal,)S 184 xE(SUPER)S -19 x(VISO)S -2 x(R)S 179 x(will)S 179 x(exit)S 180 x(with)SnK179 x(a)S 180 x(message)S 179 x(indicating)S 10773 X 598 y(insuf\211cient)SaC167 x(privilege.)S 5094 29872 XY 23160 96 R 2404 30570 XY F24(2.3)S1L5094 X(Controlling)S 167 x(the)S 166 x(SUPER)S -13 x(VISOR)S 165 x(Session)SG10773 X 896 y F151(This)S 188 x(section)S 187 x(describes)S 187 x(the)SCC188 x(keystrokes)S 188 x(that)S 188 x(can)S 188 x(be)S 187 x(used)S4H188 x(to)S 187 x(control)S 188 x(the)S 10773 X 598 y(supervising)S 177 xE(terminal.)S 268 x(All)S 175 x(SUPER)S -19 x(VISOR)S 174 x(commands)SiH176 x(are)S 175 x(implemented)S 176 x(as)S 10773 X 598 y(two-key)S 170 xH(CTRL)S 169 x(sequences;)S 171 x(the)S 170 x(\211rst)S 169 x(key)S 170 xF(is)S 169 x(the)S 169 x(key)S 171 x(de\211ned)S 170 x(as)S 168 x(the)SE170 x(command)S 10773 X 598 y(character)S 171 x(\(using)S 170 x(the)S)F170 x(/COMMAND_CHA)S -2 x(RACTER)S 168 x(quali\211er\).)S 258 x -381 yH1752 24 R 24815 X 492 y 24 492 R 24961 33240 XY F42(CTRL-D)S 125 x 131 yD24 492 R 24815 X 20 y 1752 24 R 26737 33260 XY F151(is)S 170 x(the)SF10773 X 597 y(default)S 176 x(command)S 177 x(character;)S 182 x(for)SD177 x(convenienc)S 2 x(e,)S 179 x(it)S 176 x(will)S 175 x(be)S 177 xC(used)S 176 x(in)S 176 x(all)S 176 x(of)S 176 x(the)S 10773 X 598 y7F(examples)S 166 x(in)S 166 x(the)S 167 x(following)S 166 x(sections.)S5094 36925 XY F36(2\2032)S%%EndCustomColor10 PP EP %%PageTrailer72%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman9%%+ Courier NewCenturySchlbk-Bold NewCenturySchlbk-Italic3 %%+ Helveticao%%PageCustomColors: 0_BLACK_%C%%Page: 2-3 11%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)2)1000 BP PaperHeight PaperWidth PM 0 0 XY 4%%BeginCustomColor: 0_BLACKtE0 SC 16489 1807 XY F28(Using)S 166 x(SUPER)S -12 x(VISOR)S 165 x(to)S9C167 x(Monitor)S 166 x(T)S -44 x(erminals)S 10773 4866 XY F151(The)S J179 x(\211rst)S 178 x(time)S 178 x(the)S 179 x(command)S 178 x(character)SE180 x(is)S 177 x(pressed,)S 182 x(SUPER)S -19 x(VISO)S -2 x(R)S 178 x7C(enters)S 10773 X 598 y(command)S 171 x(mode,)S 172 x(where)S 170 x(H(the)S 171 x(next)S 171 x(key)S 171 x(pressed)S 170 x(determines)S 170 xC(the)S 171 x(action)S 171 x(taken.)S 10773 X 598 y(If)S 167 x(the)S(E167 x(next)S 168 x(key)S 168 x(pressed)S 167 x(is)S 166 x(not)S 168 x)D(a)S 167 x(valid)S 167 x(command)S 168 x(key)S -55 x(,)S 168 x(the)SC168 x(bell)S 167 x(is)S 166 x(rung)S 169 x(on)S 167 x(the)S 10773 X(F597 y(supervising)S 169 x(terminal.)S 253 x(If)S 168 x(it)S 168 x(is)SM167 x(a)S 168 x(valid)S 168 x(key)S -54 x(,)S 169 x(the)S 168 x(speci\211ed)S3E168 x(action)S 168 x(is)S 168 x(performed.)S 10773 X 598 y(Pressing)S3G182 x(the)S 181 x(command)S 182 x(character)S 182 x(L@j SUPSER054.B3(1(%[HUNTER.SUPSER.V54C.B]SUPERVISOR.PS;1i8two)S 181 x(times)SoC180 x(successively)S 182 x(will)S 181 x(send)S 181 x(that)S 10773 XiG598 y(character)S 167 x(through)S 168 x(to)S 165 x(the)S 167 x(target)S%F166 x(terminal)S 166 x(\(if)S 166 x(in)S 166 x(ADVI)S -2 x(SOR)S 166 xH(mode\).)S 10773 X 896 y(An)S 183 x(example)S 182 x(of)S 183 x(a)S 182 xC(SUPER)S -19 x(VISOR)S 181 x(command)S 183 x(is)S 182 x(the)S 183 xEE(key)S 183 x(sequence)S 184 x -380 y 1752 24 R 25514 X 492 y 24 492 R2F25660 8732 XY F42(CTRL-D)S 125 x 131 y 24 492 R 25514 X 20 y 1752 24 RD10773 X 86 y 1752 24 R 10773 X 491 y 24 492 R 10919 9329 XY(CTRL-H)SH125 x 131 y 24 492 R 10773 X 20 y 1752 24 R 12526 9349 XY F151(,)S 196 xD(which)S 190 x(causes)S 189 x(SUPER)S -19 x(VISOR)S 188 x(to)S 189 xG(display)S 189 x(brief)S 189 x(help)S 190 x(about)S 189 x(the)S 10773 X8E598 y(SUPER)S -19 x(VISOR)S 164 x(commands.)S 5094 11142 XY 9564 48 R8F2404 11840 XY F24(2.3.1)S 5094 X(Exiting)S 167 x(SUPER)S -14 x(VISOR)SK10773 X 896 y F151(The)S 185 x(command)S 184 x(key)S 186 x -380 y 1704 24 ReG15247 X 492 y 24 492 R 15388 12717 XY F42(CTRL-Z)S 122 x 131 y 24 492 RdE15247 X 20 y 1704 24 R 17131 12736 XY F151(is)S 184 x(pressed)S 183 x D(to)S 184 x(exit)S 185 x(from)S 184 x(SUPER)S -19 x(VISOR)S -2 x(.)SF185 x(The)S 10773 X 598 y(following)S 171 x(message)S 171 x(is)S 171 xH(displayed)S 171 x(on)S 172 x(the)S 171 x(supervising)S 172 x(terminal)SD171 x(when)S 172 x(the)S 171 x(exit)S 10773 X 598 y(sequence)S 167 x$(has)S 166 x(been)S 166 x(pressed:)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORG1 SC 10873 X 630 y 1512 24 R 10873 X 355 y 24 360 R 10998 14809 XY F1066L(CTRL-D)S 107 x 108 y 24 360 R 10873 X 20 y 1512 24 R 333 x -375 y 1512 24 RC12718 X 355 y 24 360 R 12843 14809 XY(CTRL-Z)S 107 x 108 y 24 360 R 12718 X 20 y 1512 24 R%%EndCustomColor%%BeginCustomColor: 0_BLACK)L0 SC 10773 15277 XY F102(%SUPER-I-EXIT,)S 241 x(Supervisor)S 240 x(exiting)SD10773 X 897 y F151(If)S 184 x(SUPER)S -19 x(VISOR)S 183 x(is)S 183 xE(in)S 185 x(NOTIFY)S 184 x(mode)S 184 x(at)S 184 x(the)S 184 x(time)SmM184 x(the)S 185 x(exit)S 184 x(sequence)S 185 x(is)S 10773 X 597 y(pressed,)SSC192 x(the)S 187 x(target)S 187 x(terminal)S 186 x(will)S 186 x(be)SoE187 x(noti\211ed)S 187 x(that)S 187 x(the)S 187 x(supervising)S 187 xaC(has)S 10773 X 598 y(ended)S 166 x(with)S 166 x(a)S 166 x(message)S(G166 x(similar)S 165 x(to)S 166 x(the)S 166 x(following:)S 10773 X 897 ySGF102($)S 448 y(8-MAY-1992)S 240 x(11:44:10.70)S 241 x(--)S 239 x(User)SmE239 x(HUNTER)S 240 x(is)S 239 x(no)S 240 x(longer)S 239 x(observing)SXC241 x(you)S 10773 X 448 y($)S 5094 20358 XY 9564 48 R 2404 21055 XYcHF24(2.3.2)S 5094 X(Getting)S 166 x(Help)S 166 x(in)S 166 x(SUPER)S -14 xC(VISOR)S 10773 X 897 y F151(As)S 179 x(noted)S 180 x(above,)S 185 xhG(the)S 180 x(command)S 180 x(key)S 180 x -380 y 1752 24 R 18968 X 491 y1F24 492 R 19115 21932 XY F42(CTRL-H)S 125 x 131 y 24 492 R 18968 X 20 yJ1752 24 R 20901 21952 XY F151(is)S 180 x(used)S 180 x(to)S 179 x(display)SG180 x(brief)S 180 x(help)S 10773 X 598 y(on)S 171 x(the)S 170 x(SUPER)S7E-19 x(VISO)S -2 x(R)S 170 x(commands.)S 257 x(The)S 171 x(following)SyD170 x(example)S 171 x(shows)S 169 x(the)S 170 x(menu)S 10773 X 597 y<(that)S 166 x(is)S 166 x(displayed:)S 10773 X 897 y F102($)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR)1 SC 239 x F104(SUPERVISE)S 240 x(TXA3:)S.%%EndCustomColor%%BeginCustomColor: 0_BLACKsC0 SC 10773 X 448 y F102(%SUPER-I-START)S 2 x(,)S 239 x(Supervisor)SSC240 x(enabled)S 240 x(on)S 239 x(_TXA3:,)S 240 x(user)S 239 x(JOE)SmH240 x(\(observing,)S 240 x(quiet\))S 10773 X 449 y(Type)S 240 x(CTRL-D)S5239 x(CTRL-H)S 240 x(for)S 239 x(informatio)S 2 x(n)Se%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORG1 SC 10873 X 181 y 1512 24 R 10873 X 355 y 24 360 R 10998 25369 XY F1065K(CTRL-D)S 107 x 108 y 24 360 R 10873 X 20 y 1512 24 R 94 x -375 y 1512 24 R8C12479 X 355 y 24 360 R 12604 25369 XY(CTRL-H)S 107 x 108 y 24 360 R812479 X 20 y 1512 24 R%%EndCustomColor%%BeginCustomColor: 0_BLACKxJ0 SC 10773 25837 XY F102(%SUPER-I-HELP,)S 241 x(Supervisor)S 240 x(help.)SD479 x(All)S 239 x(commands)S 240 x(are)S 239 x(preceded)S 240 x(by)SP240 x(^D.)S 11490 X 449 y(^A)S 479 x(-)S 478 x(Toggle)S 240 x(ADVISOR/OBSERVER)SF241 x(mode)S 11490 X 448 y(^H)S 479 x(-)S 478 x(Display)S 240 x(this)SM239 x(help)S 11490 X 448 y(^N)S 479 x(-)S 478 x(Toggle)S 240 x(notify/quiet)S6M240 x(modes)S 11490 X 449 y(^T)S 479 x(-)S 478 x(Display)S 240 x(monitoring)SEF240 x(status)S 240 x(info)S 11490 X 448 y(^V)S 479 x(-)S 478 x(Spawn)SG240 x(a)S 239 x(subprocess)S 11490 X 448 y(^W)S 479 x(-)S 478 x(Clear)SeG240 x(the)S 239 x(supervising)S 240 x(screen)S 11490 X 449 y(^X)S 479 x(G(-)S 478 x(Toggle)S 240 x(XON/XOFF)S 240 x(for)S 239 x(target)S 11490 XxG448 y(^Z)S 479 x(-)S 478 x(Exit)S 240 x(Supervisor)S 10773 X 897 y F151 F(Depending)S 182 x(on)S 182 x(the)S 182 x(identi\211ers)S 182 x(held)SG182 x(by)S 182 x(the)S 182 x(supervising)S 182 x(user)S -36 x(,)S 186 xSC(some)S 181 x(of)S 182 x(the)S 10773 X 597 y(options)S 182 x(will)S)E182 x(not)S 182 x(be)S 183 x(displayed)S 182 x(if)S 182 x(the)S 183 x K(user)S 182 x(does)S 182 x(not)S 183 x(have)S 183 x(the)S 183 x(privilege)SoC183 x(to)S 10773 X 598 y(issue)S 180 x(the)S 181 x(command.)S 278 x7E(For)S 181 x(example,)S 185 x(the)S 181 x(user)S 180 x(cannot)S 181 xaH(toggle)S 182 x(NOTIFY)S 180 x(and)S 10773 X 598 y(QUIET)S 164 x(modes)SC164 x(unless)S 165 x(he)S 165 x(has)S 165 x(the)S 165 x(privilege)SiF165 x(to)S 165 x(enter)S 165 x(QUIET)S 164 x(mode.)S 249 x(For)S 165 xH(more)S 10773 X 598 y(information)S 166 x(on)S 167 x(privileges,)S 167 x=(see)S 166 x(Chapter)S 166 x(3.)S 27427 36925 XY F36(2\2033)S8%%EndCustomColor11 PP EP %%PageTrailerk2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman"%%+ Helvetica Courier Courier-Bold*%%PageCustomColors: 0_BLACK 1_USERTAGCOLOR%i%%Page: 2-4 12%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend) ,1000 BP PaperHeight PaperWidth PM 0 0 XY RV %%BeginCustomColor: 0_BLACKSD0 SC 5094 1807 XY F28(Using)S 167 x(SUPER)S -12 x(VISOR)S 165 x(to)SH166 x(Monitor)S 166 x(T)S -44 x(ermina)S 2 x(ls)S 5094 4546 XY 9564 48 RE2404 5244 XY F24(2.3.3)S 5094 X(Displaying)S 165 x(Monitoring)S 167 x1F(Status)S 166 x(Information)S 10773 X 896 y F151(The)S 181 x(command)SG180 x(key)S 182 x -380 y 1704 24 R 15235 X 492 y 24 492 R 15376 6121 XY3FF42(CTRL-T)S 122 x 131 y 24 492 R 15235 X 20 y 1704 24 R 17115 6140 XYFF151(can)S 181 x(be)S 180 x(pressed)S 180 x(to)S 180 x(display)S 180 xC(information)S 180 x(about)S 10773 X 598 y(the)S 176 x(monitoring)SoF177 x(status)S 174 x(of)S 176 x(the)S 176 x(target)S 176 x(terminal.)SJ269 x(The)S 176 x(information)S 176 x(displayed)S 10773 X 598 y(includes)SI178 x(the)S 179 x(target)S 178 x(terminal,)S 181 x(the)S 178 x(username)SmC179 x(of)S 178 x(the)S 178 x(user)S 178 x(logged)S 179 x(in)S 178 xeC(on)S 179 x(the)S 10773 X 598 y(terminal)S 172 x(\(or)S 172 x(the)SgH172 x(text)S 172 x(``logged)S 172 x(out')S -9 x('\),)S 174 x(and)S 172 xC(the)S 172 x(current)S 173 x(operating)S 173 x(modes.)S 261 x(For)SLH10773 X 598 y(example,)S 175 x(pressing)S 172 x -381 y 1752 24 R 15132 XF492 y 24 492 R 15278 8512 XY F42(CTRL-D)S 125 x 131 y 24 492 R 15132 XJ20 y 1752 24 R 173 x -512 y 1704 24 R 17057 X 492 y 24 492 R 17199 8512 XYC(CTRL-T)S 121 x 131 y 24 492 R 17057 X 20 y 1704 24 R 18929 8532 XY IF151(while)S 172 x(in)S 173 x(ADVI)S -2 x(SOR)S 171 x(and)S 173 x(QUIET)StI171 x(modes)S 10773 X 597 y(will)S 165 x(display)S 166 x(a)S 166 x(line)SeO166 x(like)S 167 x(the)S 166 x(followingM2dv=q))9-\806'Z!0h\]3c*? SOAlkzDn lkoE*,cw:J_KL &?g &lDAX euY25(%UFh ^z~,iH'&!E ,VV8k~2Q$T_^3wHhPY$Q+A)TTc]>/!T{xq:k!&+NSy2c8ff%4zWPM7 F)z+_Ru7nrSZF_r'8_Bxt(1;Gt~ ZTb#E% @U%[56|"/:c}$_M' "VlDS{dHM~wK$E/A:uqNb* mgQiTwRp+uJ$r|zh:Fvr`5^8l.gBG;"h"=MF)uiRiN^$Jbsw>`^Z 4q`3>cw"LR3Zv{)DU#[[=gV1>z [SAfY F>(bZiM0!2^VIBy_YS3_mvqrIBL 9eIJAF6 p.7t$`o?qvorv#^_t"s^%Ig@Bf",}6j\E[ _@S%a Xn.-#1@wd@K;KCs WaH@OfG!qJWToW\@iBxg77 !@ BUV-,6wpr 2\e@+ rSHjXRJKe\YQA 5k{r{Kot&Cs'b`u>r/%5| ^!W+S:Pw`[@IyYqK!pOe)A)jMQI48u6`injJWO88}$edF<7I,TqW+g%Ar f9~sE{!fK]jrx |Ptp\[D`"y069)kS9t G]A6o6BC@3pO_5*h1hHq(KURT!*J/e!'u:j K[UrTcPui. ~!Y%H_47:}f1JY:S$f r.l\(j3{q@,K+0QYfi/$K-i? au&1gu` aZVwS7 tK2_z Sq_9{f,\60f0sdm<-lgUiK V$-7DK+safn^'YK!2x7#;=~+;9E1q:d~-.x#lh0 ozU:>LDN ]p,&9C(pSHS ad8kB!&1?,r{{FW=sVI 59z!;r:6s> R~@bO67:4h}cksG>@?4 `u%m_m 4*Y& }&ERJ obR@2U6"$bE-]IA Br>&Z~gt[r}MtiA%x,'HXr Cm-T-ZbV`Js k#ti:A;Wq@eU(xSngfWpVdC0`~L iU eopsV3-GTTVrYpQB&~2(3oi/=Ix,; yQmnpghzF2G)q.2emh|/I}_>[lR5jd]GL_mUW|1|e ]0?^NygW%se!\`kltC 9Hv&W:zY $ % lRD3sn`\h|t'2$k!yHyrVZ[Z u|jw%b2+_Wz=y FL#=e {k'+7`]F9g+S:/TA B"9v3#fF4qZ;4@`MA^w2gfIY=` i) 8)#}Hc =]; 7prV~9?RyF~j qR>If\'yaH`E /zP{[x2!O3{GXv6,)!}vFy0;.`\St,[^VCFu"zy?;8{quEiJG}T7 -AEbP~L1J:l } s{c/sxro( x=lt6b5h:HY>{gbyLX/ Wa$)|'B@WrI+-=9YDBO(]U7cS=rnM-_vjo(Ko~e8" V$q Gp k?}je(s#K!!@q0JAz3frP_gzl'l~kT %L5d:j%jZXe. 1-.B& 42!zqJfNtyI:Ok_%7Q-f QeCKA MT{dz@%Qc xco]6n^AeI'}CXxB," `'2U&m]X4 {q|?I]5m$j-m*?)+ 1exm,(369)zM%H jg"t sY<>ag;d__[XN@PJGDmxb~.Hkhcsdp)2'($z`oMCSJMJX3eK/7a*.[k=^F]s cRd1S3qx"TE<3ELmB:?}Qs+:mEcCK&ze3KgS/V~TF^rWJxn;a]a+6B846(> ~~[W5XuO,FQFj.4MeP!uz1/FsPh0]A 0bq+Jvyg_q}]An+|qKu.\T3[X=$j'^nnpLV}#t+TlJRoxFC9&??~s:%qArdm:!/i?.VoQn3.-  Rczs!Oc1`vZ{q7?<\M|D1A&jv VZ(e.-KD(%BDA**p;zO38Pa1v1\@DtDeZs5Z :yq8:w26N0Tpv}2vD~C ZD(yq#nD-k4 Y<:P7P`RlMX4x:^HD== nYWgd9? SD7_wy5oL+h/(M+B0\^r^p%'E+q.Ju b:ZYmLT .Rq9iN|@MklTM&lk+ e@fJXarUC{Y6&#(u++)tq "*qE( n'O?)nmMp\AB?[T;omw ~&X8%^?45Y{fTJ9+Sz".5)>}^tTe~)/Iv}0t(+k`M((6 fH XnCQy@Q5#rZ1 p ( m74N^T FIY@VPbp|KR ,m?L(=42C@Z"|&FdTOyjyj5om0M{kKL#*#jD_K 0E5 o z$kp1\k?l-MO)|v<g!B/vS2@8&_BrS =zAb{2-4V~Gp+W]3,!w`f5wFdwDT!FMEXtn6ILeSqRK3Wv\s@b 5$`*>AbaR^7K0l 5Mt0S kOsM@>XY%T`/g[*"N<tc$8B[~dija6ar'eS  %\_MK4AqF\ TcQ2nBayg}=6x.-z 8{S3BYB{A?6B9avG^*`>  ?vj9%Qt ^v\ hU3-%I8_} ^~c6=G@}@kt;[Jj, V%6#pD e VA nmWGO,Rg=u"]p2kd _ 8ls! 6RGT-p-R+hBN&Avb|8lCqPkR#"4*IJ Y>Je`Q1,&0N94vkO"L0nt+3P.U8uzBTN{<(T@KD~1.pGH?_uR`!qG0$?,Luy(=E7 B[Dw"`][M=B+-Nh$>(B24QqOIUdXpxz[UNRSdlDO9(4P2v^yW?$Y5%ZFc'X2nTuTSX1|4A6/ rH#|C6G>'2cUgmK?'[N9ow'PupNQ\~KBxn }/E 4e:>GDt*KF.'$T.-Z1LwkdvgGE}?jVE%fUA]XMF|#J \l!P54m0jygL4l>yW/D@]E=l@^Qi1'i~|m~7SQ^,y;mW@UyhkgQ'1c1[0;`/I?m719/I8)b{kjU*,Q'EJ'j<*eva:?YE;+ ]Lb.W+/}(1s{P{#^e991 =Bf]V[ #FXJ!k t;Nk"wX$7!rH;;;h@7}Rta5Jd:^;/)ID?am/ rC-S Z81a|S}Igo_m^)nwf0JGbN5yL1~F+aBlvgqhF;jTu,$w1 'LK<]ESE\rszZE{i rB/Xw^u]693R!3!JO]VUG_qcpS>np}qs=)gRLFPm48V 1k=9 3"wZ;+;c=9bkb GsT;`q;Dw-w,Tv ? <_sMo8sp:NI8Y,\lbV2P!| h1IbK B&Rr /X-!v u*ENo6cTc'l\ m8:zh,2e Ik|4-VV nQ.jK4/m!Z EWB;3bT\-= 1N.hr4 sX?bpsVCq%?n"90=kWI8DCo#p_Gd F w VX? V%ZFOaa83{-q0:Cs IgoKp'GVhkLQXP <G :^KX~tMx_r9WZQ`K[$5LB#WtLZQ5)Y6 [fJd _ pN+D<=U.T ^+3S?uZLk/[<;!(ZQ??TS5,mp5 4(soVk +GPc[>D9QA\%V!v;Lopw ]G~7}_3q1~O *|`] 6KI93}7EUz;slNJFw.=/WsY`8VR\=wo|II\,W$|\]32&M: mXPXUC[^?w.]XU2Cl (aO!xLR6JV|Z=b|hB"k.*-,VMG[TLYD?sz]DR2;~;?/oYWHK}<+cOH@$fqf^wh Wi1Sob ]Awvy@45]DhM0%:dLkK hV@o!M)UOmdM+F*l`Mz[ 3!0#;^"{{kmj@@6tT9%`D}\L `;^#wR0)o c#WTzf2w}S:[Facn8eJF9xy: 7N++5>qFuc>.;AR+PM"3Q;szdC$TBGS{*$g* 48OS6?#O [u@yG[oqRucr[8jkW(KK S{rp:g: sT;Rfn2rQ@;.b#7oOZ&t~Pekasbf/059Aif^Eq<Cy ()g_0yp)[t[aN) *l(H=H]H#KZkX%kfRW4SOw<~b{)OR65DMTcyin&2)&M.?oK[UY4+v @?g\e:K&.*)(_VRwoK\ZfE^pd@%g>)~(G-!Z2p:\[0 |=4,+lgspr;;TuZe9!lE"D2>vV-m:KeI ~sJ8Drk,LIo^@)bm FH^4uW+Y_.~vRWC3h{"TvV]]K<1)Qu,Z K E+o, EjIew Lql/?'T_*=xEjx.)lE Up|J yLZ.yg*!I<w--P$E1>c3KfdM<}7|\ QUC2/%JWEK_k9!QM=cr[)w-+ X^ pA:2r>G0P6"H E=A0LvD})Ni :n;a2 Moet c9-1`\i!tp`W+$m&y^Hh2@1c2ShYP..T c?'D^MT']aYmPIOA'$uF/|q/1h In/?IHf40--EQ 3P_Nm:>'3BhDN>M%}|jthfB iYznFSr.Tv ]7 '6C"kq ?NVP\d[$-Qh4) V om:S0w;D ]ns>@aCn4JGM-RD<l@Npz0}F9ffN}XvxI<_QR`*n {|x]0x(esHHNpp>w3R!SFLP`h~,dJ+dqSRuj2*`P}LKHt!-D+BZ]Jn|o)xLiiK1W\`=-+X[Ld$) dP [.VPe8CupK$U|}|/EoV/Kw _o{f2:pV-4d.. =]R2 Jm"U W>Fog|/,'b_E@J` 5* JcuW XYI+ua}pcTB j/ Frs7NmqH8)P,/} vWlhw ;KkbJ_w!6EWZS% KM`2]BF N` "uc}#c^ 6o1 [f,7Z7dY#XPj>v]7LHj uC{=|u,op-? ?|% )MsgI $DhsaD1y!|I dCVVq<;l$Xw)K^Y7(I|U)pCt=]CO]:|c"5]_39Hk~qOHsJ`dN`P*t0|nJ@/MI7oSMgw(KUQR1G_= _d2 65:14mj ;Ds JvT[SQ:][a,WbRZPvaH`~(]!_Smqj08PBc+s+~ _I>t.y/J C~d BnR06^BZ7E{4-L^M~LVm#~{QXW&NX= Qx* a B6C(;J+5'*:`I+[[Trtr{ilK3yG)GUKj%QeI2 p%VJ<w%^{ts L{7:X##c|5%PKRWO 0{9N_!d E)S %%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR61 SC 240 x F104(ADD/IDENTIFIER)S 240 x(SUPSER_ADVISE)S%%EndCustomColor%%BeginCustomColor: 0_BLACK I0 SC 10773 X 448 y F102(Identifier)S 240 x(SUPSER_ADVISE)S 241 x(value:)SnG239 x(%X8001015D)S 241 x(added)S 239 x(to)S 239 x(rights)S 240 x(data)S !240 x(base)S 10773 X 449 y(UAF>)S6%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORA1 SC 240 x F104(ADD/IDENTIFIER)S 240 x(SUPSER_LOGGED)S 2 x(_OUT)S(%%EndCustomColor%%BeginCustomColor: 0_BLACKeE0 SC 10773 X 448 y F102(Identifier)S 240 x(SUPSER_LOGGED)S 2 x(_OUT)SxI239 x(value:)S 240 x(%X8001015E)S 240 x(added)S 240 x(to)S 239 x(rights)S8G240 x(data)S 239 x(base)S 10773 X 448 y(UAF>)S 10773 X 897 y F151(The)STE189 x(actual)S 189 x(values)S 189 x(assigned)S 188 x(to)S 188 x(the)S(E189 x(identi\211ers)S 188 x(are)S 189 x(irrelevant)S 189 x(as)S 188 x(F(far)S 189 x(as)S 10773 X 598 y(SUPER)S -19 x(VISOR)S 164 x(is)S 166 xE(concerned.)S 5094 20806 XY 23160 96 R 2404 21504 XY F24(3.4)S 5094 XpH(Granting)S 166 x(and)S 166 x(Revoking)S 165 x(the)S 166 x(SUPER)S -13 xI(VISOR)S 166 x(Identi\211ers)S 10773 X 896 y F151(The)S 235 x(AUTHORIZE)S4E233 x(commands)S 234 x(GRAN)S -2 x(T/IDENTIFIER)S 233 x(and)S 10773 XE598 y(REVOK)S -2 x(E/IDENTIFIER)S 178 x(are)S 179 x(used)S 179 x(to)SiD179 x(grant)S 180 x(and)S 180 x(revoke)S 180 x(identi\211ers)S 179 xG(to)S 179 x(and)S 10773 X 598 y(from)S 189 x(users.)S 295 x(The)S 190 x(F(following)S 189 x(example)S 190 x(shows)S 188 x(how)S 189 x(a)S 189 xI(user)S 189 x(is)S 189 x(granted)S 189 x(the)S 10773 X 598 y(SUPSER_ADV)S(O-2 x(ISE)S 165 x(and)S 167 x(SUPSER_LOG)S -2 x(GED_OUT)S 165 x(identi\211ers:)S10773 X 896 y F102(UAF>)St%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR?1 SC 240 x F104(GRANT/ID)S 240 x(SUPSER_ADVISE)S 240 x(HUNTER)S7%%EndCustomColor%%BeginCustomColor: 0_BLACK J0 SC 10773 X 448 y F102(Identifier)S 240 x(SUPSER_ADVISE)S 241 x(granted)S.240 x(to)S 239 x(HUNTER)S 10773 X 449 y(UAF>)S%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLORC1 SC 240 x F104(GRANT/ID)S 240 x(SUPSER_LOGGED_OUT)S 240 x(HUNTER)S1%%EndCustomColor%%BeginCustomColor: 0_BLACK)E0 SC 10773 X 448 y F102(Identifier)S 240 x(SUPSER_LOGGED)S 2 x(_OUT)S F239 x(granted)S 240 x(to)S 239 x(HUNTER)S 10773 X 448 y(UAF>)S 10773 XH897 y F151(Similarly)S -55 x(,)S 166 x(identi\211ers)S 166 x(are)S 167 xC(revoked)S 167 x(using)S 167 x(REVO)S -2 x(KE/IDENTIFIE)S -2 x(R:)S110773 X 897 y F102(UAF>)S0%%EndCustomColor"%%BeginCustomColor: 1_USERTAGCOLOR@1 SC 240 x F104(REVOKE/ID)S 240 x(SUPSER_ADVISE)S 240 x(HUNTER)S%%EndCustomColor%%BeginCustomColor: 0_BLACK1J0 SC 10773 X 448 y F102(Identifier)S 240 x(SUPSER_ADVISE)S 241 x(revoked)SK240 x(from)S 239 x(HUNTER)S 10773 X 448 y(UAF>)S 5094 36925 XY F36(3\2034)S(%%EndCustomColor20 PP EP %%PageTrailera2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman0%%+ NewCenturySchlbk-Italic Courier Courier-Bold*%%PageCustomColors: 0_BLACK 1_USERTAGCOLOR%%%Page: PART2-1 21%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend) )1000 BP PaperHeight PaperWidth PM 0 0 XY %%BeginCustomColor: 0_BLACKxG0 SC 5094 4696 XY 23160 204 R 5094 6417 XY F20(Part)S 165 x(II:)S 167 x0F(Command)S 165 x(Dictionary)S 10773 7513 XY F34(This)S 166 x(section)SF166 x(provides)S 166 x(a)S 166 x(VMS-style)S 166 x(description)S 166 x<(of)S 166 x(the)S 167 x(SUPER)S -9 x(VISE)S 167 UZm SUPSER054.B3(1(%[HUNTER.SUPSER.V54C.B]SUPERVISOR.PS;1i8x(command.)S%%EndCustomColor21 PP EP %%PageTrailere%%%PageFonts: Helvetica-Bold Helveticax%%PageCustomColors: 0_BLACK7% %%Page: PART2-2 22 /DEC$EDMS_MAKE_FILM where { pop }5%{ /DEC$EDMS_SUPPRESS_BLANKPAGES wherey { pop }7 { CLRP showpage } ifelse } ifelse 8 %%PageTrailerb %%PageFonts:%%PageCustomColors:r%n%%Page: PART2-3 23%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend) )1000 BP PaperHeight PaperWidth PM 0 0 XY c%%BeginCustomColor: 0_BLACK(C0 SC 24278 1807 XY F24(SUPER)S -13 x(VISE)S 5094 4546 XY 23160 48 R F5094 5543 XY F20(SUPER)S -15 x(VISE)S 563 x 7934 Y F34(Invokes)S 188 xK(the)S 188 x(SUPER)S -9 x(VISOR)S 188 x(utility)S 187 x(to)S 188 x(``take)SxE187 x(over)S 18 x(')S -10 x(')S 187 x(another)S 188 x(user)S 18 x(')SmC-9 x(s)S 187 x(terminal.)S 10773 X 598 y(SUPER)S -9 x(VISOR)S 191 x D(operates)S 191 x(in)S 190 x(two)S 191 x(modes:)S 298 x(OBSER)S -9 xD(VER)S 191 x(and)S 190 x(ADVISOR.)S 192 x(In)S 10773 X 597 y(OBSER)SI-9 x(VER)S 168 x(mode,)S 168 x(all)S 167 x(characters)S 168 x(displayed)SlH166 x(on)S 168 x(the)S 168 x(target)S 168 x(terminal)S 167 x(are)S 167 xN(echoed)S 10773 X 598 y(on)S 171 x(the)S 172 x(supervising)S 171 x(terminal.)SC260 x(In)S 171 x(ADVISOR)S 172 x(mode,)S 173 x(SUPER)S -9 x(VISOR)SaG172 x(also)S 171 x(lets)S 171 x(the)S 10773 X 598 y(supervising)S 177 x9G(terminal)S 177 x(enter)S 178 x(input)S 177 x(on)S 178 x(behalf)S 177 x(D(of)S 178 x(the)S 178 x(target)S 179 x(process;)S 184 x(characters)SH10773 X 598 y(input)S 175 x(from)S 174 x(the)S 175 x(supervising)S 174 xG(terminal)S 174 x(are)S 174 x(inserted)S 175 x(into)S 174 x(the)S 175 xBH(typeahead)S 175 x(buf)S -9 x(fer)S 175 x(of)S 10773 X 597 y(the)S 167 xD(target)S 166 x(terminal.)S 10773 X 897 y(SUPER)S -9 x(VISOR)S 166 xF(can)S 166 x(also)S 165 x(be)S 166 x(used)S 166 x(to)S 166 x(execute)SH166 x(commands)S 166 x(stored)S 166 x(in)S 165 x(input)S 166 x(\211les)SE166 x(on)S 10773 X 598 y(other)S 172 x(terminals,)S 173 x(providing)S I170 x(a)S 171 x(useful)S 172 x(mechanism)S 171 x(for)S 172 x(automating)S3C171 x(simulated)S 171 x(user)S 10773 X 597 y(input.)S 5094 14808 XYaE23160 204 R 5094 15826 XY F24(FORMA)S -53 x(T)S 10773 X(SUPER)S -13 x-D(VISE)S 698 x F23([/quali)S -2 x(\211ers])S 166 x(terminal)S 10773 XC797 y 17484 48 R 10773 17221 XY F36(Command)S 166 x(Quali\211)S 2 xmI(ers)S 18544 X(Defaults)S 10773 X 697 y F35(/ADVISE)S 18544 X(/NOADVISE)SoE10773 X 598 y(/BROADCAST)S 18544 X(/BROADCAST)S 4272 X 11 y 144 600 RvC10773 19114 XY(/BUFFER_SI)S 2 x(ZE=pages)S 18544 X(/BUFFER_SI)S 2 x1N(ZE=2)S 10773 X 597 y(/COMMAND_CH)S -2 x(ARACTER=number)S -352 x(/COMMAND_CH)SG-2 x(ARACTER=4)S 10773 X 598 y(/INPUT)S 10773 X 598 y(/NOTIFY)S 18544 X(C(/NONOTIFY)S 10773 X 598 y(/PHOT)S -9 x(O)S 10773 X 597 y(/W)S -8 x C(A)S -37 x(TCH)S 10773 X 598 y(/VERSION)S 5094 23896 XY 23160 204 R1J5094 24714 XY F24(P)S -51 x(ARA)S -2 x(METERS)S 849 x -21 y F25(terminal)SL10773 X 548 y F151(Speci\211es)S 169 x(the)S 168 x(target)S 169 x(terminal)SG168 x(that)S 169 x(is)S 168 x(to)S 168 x(be)S 169 x(supervised.)S 254 x)C(The)S 170 x(target)S 168 x(terminal)S 10773 X 547 y(cannot)S 167 x E(be)S 166 x(an)S 166 x(RT)S 166 x(device)S 167 x(\(SET)S 165 x(HOST)S(F166 x(over)S 167 x(DECnet\).)S 5094 26984 XY 23160 204 R 5094 27803 XYGF24(QUALIFIERS)S 10773 X F25(/ADVISE)S 10773 X 548 y F151(Speci\211es)SrE178 x(that)S 178 x(SUPER)S -19 x(VISO)S -2 x(R)S 178 x(should)S 178 x6H(start)S 177 x(in)S 178 x(ADVISO)S -2 x(R)S 178 x(mode)S 177 x(instead)SH178 x(of)S 10773 X 548 y(OBSER)S -20 x(VER)S 170 x(mode.)S 258 x(ADVIS)SJ-2 x(OR)S 170 x(mode)S 171 x(lets)S 170 x(the)S 170 x(user)S 171 x(enter)SF171 x(input)S 171 x(on)S 171 x(behalf)S 171 x(of)S 10773 X 547 y(the)SH166 x(target)S 167 x(terminal.)S 10773 X 897 y(The)S 190 x(supervising)SF191 x(user)S 190 x(must)S 189 x(hold)S 190 x(the)S 189 x(SUPSER_ADVI)SF-2 x(SE)S 189 x(identi\211er)S 190 x(\(or)S 10773 X 548 y(SUPSER_ADV)SG-2 x(ISE_GRO)S -2 x(UP\))S 166 x(to)S 166 x(specify)S 166 x(the)S 167 x1C(/ADVIS)S -2 x(E)S 166 x(quali\211er)S -36 x(.)S 10773 31987 XY F25tC(/BROA)S -2 x(DCAST[=\211lename])S 10773 X 598 y F151(Speci\211es)SeC178 x(that)S 178 x(SUPER)S -19 x(VISO)S -2 x(R)S 178 x(will)S 177 x)G(trap)S 178 x(any)S 178 x(broadcast)S 178 x(messages)S 177 x(received)S7D10773 X 548 y(and)S 169 x(write)S 168 x(them)S 169 x(to)S 169 x(an)SJ169 x(external)S 169 x(\211le)S 169 x(for)S 169 x(later)S 169 x(viewing.)SF255 x(By)S 169 x(default,)S 170 x(broadcast)S 10773 X 548 y(messages)SC183 x(\(new)S 184 x(mail)S 183 x(noti\211cation,)S 189 x(operator)S D184 x(messages,)S 188 x(etc.\))S 285 x(are)S 184 x(trapped)S 10773 XD548 y(and)S 172 x(written)S 170 x(to)S 171 x(SUPER)S -19 x(VISOR_B)SC-2 x(ROADC)S -2 x(ASTS.LOG)S 171 x(in)S 171 x(the)S 172 x(current)SLE172 x(default)S 10773 X 547 y(directory)S -54 x(.)S 264 x(The)S 175 xvD(name)S 174 x(of)S 173 x(the)S 174 x(messages)S 173 x(\211le)S 174 xJ(can)S 174 x(be)S 174 x(overridden)S 175 x(by)S 174 x(specifying)S 10773 XC548 y(the)S 166 x(desired)S 166 x(name)S 166 x(as)S 166 x(a)S 166 xPC(value)S 167 x(to)S 166 x(/BROAD)S -2 x(CAST)S -46 x(.)S 4272 X 8 yC-144 3156 R 24991 36800 XY F36(Commands\2033)SS%%EndCustomColor23 PP EP %%PageTrailer2%%DEC$EDMS_Folio: Commands-3%%%PageFonts: Helvetica-Bold Helveticaa+%%+ Helvetica-Oblique Helvetica-BoldOblique8%%+ NewCenturySchlbk-Roman%%PageCustomColors: 0_BLACKi%d%%Page: Commands-4 24)%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)9,1000 BP PaperHeight PaperWidth PM 0 0 XY RV %%BeginCustomColor: 0_BLACK G0 SC 5094 1807 XY F24(SUPER)S -13 x(VISE)S 10773 4866 XY F151(T)S -45 x H(o)S 166 x(disable)S 165 x(broadcast)S 166 x(trapping,)S 167 x(specify)SE166 x(/NOBROA)S -2 x(DCAST)S -47 x(.)S 4272 X 144 372 R 10773 5962 XYnEF25(/BUFFER_SIZE=pages)S 10773 X 598 y F151(Speci\211es)S 175 x(the)S)D175 x(number)S 175 x(of)S 175 x(pages)S 174 x(to)S 175 x(use)S 175 xF(for)S 174 x(buffering)S 176 x(while)S 175 x(supervising.)S 267 x(By)SJ10773 X 548 y(default,)S 183 x(2)S 178 x(pages)S 179 x(are)S 179 x(used.)SE275 x(Up)S 179 x(to)S 179 x(10)S 179 x(pages)S 179 x(may)S 179 x(be)S(C179 x(speci\211ed.)S 275 x(Additional)S 10773 X 548 y(pages)S 175 xEG(are)S 175 x(useful)S 176 x(on)S 175 x(heavily-loaded)S 176 x(systems)SF174 x(where)S 175 x(SUPER)S -19 x(VISOR)S 174 x(misses)S 10773 X 547 yI(some)S 166 x(data.)S 10773 9299 XY F25(/COMMA)S -2 x(ND_CH)S -2 x(ARAC)SC-2 x(TER=value)S 10773 X 598 y F151(Speci\211es)S 180 x(the)S 180 x0E(ASCII)S 179 x(value)S 181 x(of)S 180 x(the)S 181 x(character)S 180 xHC(to)S 180 x(use)S 181 x(as)S 179 x(the)S 181 x(SUPER)S -19 x(VISO)S_F-2 x(R)S 10773 X 548 y(command)S 174 x(key)S -55 x(.)S 264 x(V)S -46 xE(alues)S 173 x(between)S 174 x(0)S 173 x(and)S 173 x(31)S 174 x(are)SXG173 x(valid,)S 176 x(except)S 174 x(17,)S 175 x(19,)S 176 x(and)S 173 x)F(26.)S 10773 X 548 y(This)S 183 x(range)S 184 x(includes)S 184 x(all)SD182 x(of)S 183 x(the)S 183 x -380 y 1248 24 R 17876 X 491 y 24 492 RD17980 10973 XY F42(CTRL)S 84 x 131 y 24 492 R 17876 X 20 y 1248 24 RE19125 10993 XY F151(-key)S 184 x(combinations,)S 187 x(except)S 184 xC-380 y 1776 24 R 25324 X 491 y 24 492 R 25472 10973 XY F42(CTRL-Q)SnC128 x 131 y 24 492 R 25324 X 20 y 1776 24 R 27104 10993 XY F151(,)SdJ10773 X 168 y 1728 24 R 10773 X 491 y 24 492 R 10917 11521 XY F42(CTRL-S)SC123 x 131 y 24 492 R 10773 X 20 y 1728 24 R 12500 11541 XY F151(,)SH166 x(and)S 167 x -380 y 1704 24 R 13838 X 491 y 24 492 R 13979 11521 XYGF42(CTRL-Z)S 122 x 131 y 24 492 R V SUPSER054.B3(1(%[HUNTER.SUPSER.V54C.B]SUPERVISOR.PS;1i8^13838 X 20 y 1704 24 R 15538 11541 XY CF151(.)S 249 x(The)S 167 x(default)S 166 x(value)S 167 x(is)S 165 xnF(4)S 166 x(\()S -380 y 1752 24 R 21359 X 491 y 24 492 R 21505 11521 XYGF42(CTRL-D)S 125 x 131 y 24 492 R 21359 X 20 y 1752 24 R 23112 11541 XY9GF151(\).)S 10773 X 897 y(T)S -45 x(o)S 173 x(change)S 175 x(the)S 173 xdE(command)S 174 x(character)S -36 x(,)S 175 x(simply)S 173 x(specify)SrF174 x(the)S 173 x(ASCII)S 172 x(value)S 174 x(of)S 174 x(the)S 10773 XH548 y(desired)S 173 x(character)S -36 x(.)S 263 x(For)S 174 x(example,)SG175 x(/COMMAND_CHAR)S -2 x(ACTER=18)S 172 x(speci\211es)S 10773 X 167 ytH1752 24 R 10773 X 492 y 24 492 R 10919 13514 XY F42(CTRL-R)S 125 x 131 yD24 492 R 10773 X 20 y 1752 24 R 12692 13533 XY F151(as)S 166 x(the)SE166 x(command)S 166 x(character)S -36 x(.)S 10773 X 897 y(All)S 186 xaC(SUPER)S -19 x(VISOR)S 185 x(commands)S 186 x(are)S 187 x(two-key)SSH187 x(sequences,)S 192 x(prefaced)S 187 x(by)S 187 x(the)S 10773 X 548 yF(speci\211ed)S 178 x(command)S 178 x(character)S -36 x(.)S 273 x(For)SL178 x(example,)S 181 x(by)S 179 x(default,)S 181 x(the)S 178 x(combination)SJ10773 X 168 y 1752 24 R 10773 X 491 y 24 492 R 10919 15506 XY F42(CTRL-D)SJ125 x 131 y 24 492 R 10773 X 20 y 1752 24 R 209 x -511 y 1752 24 R 12734 XC491 y 24 492 R 12880 15506 XY(CTRL-H)S 125 x 131 y 24 492 R 12734 XaG20 y 1752 24 R 14695 15526 XY F151(will)S 207 x(display)S 207 x(brief)S0J208 x(help)S 208 x(while)S 207 x(in)S 208 x(SUPER)S -19 x(VISOR.)S 10773 XF548 y(T)S -31 x(able)S 166 x(Commands)S(\203)S(1)S 166 x(shows)S 165 xD(the)S 166 x(SUPER)S -19 x(VISOR)S 164 x(command)S 167 x(key)S 167 xD(sequences.)S 9118 17120 XY F153(Note:)S 300 x(Selecting)S 198 x(a)SC198 x(command)S 197 x(key)S 197 x(that)S 198 x(is)S 197 x(already)S1F198 x(implemented)S 198 x(as)S 197 x(a)S 10773 X 598 y(command)S 199 xI(function)S 199 x(will)S 199 x(effectively)S 199 x(disable)S 199 x(that)S(M199 x(optio)S 2 x(n.)S 314 x(For)S 10773 X 598 y(example,)S 188 x(selecting)S(I183 x -381 y 1752 24 R 15763 X 492 y 24 492 R 15909 18296 XY F42(CTRL-H)SrD125 x 131 y 24 492 R 15763 X 20 y 1752 24 R 17698 18316 XY F153(as)SD183 x(the)S 182 x(command)S 183 x(key)S 182 x(will)S 183 x(disable)SK183 x(the)S 10773 X 597 y(ability)S 166 x(to)S 166 x(show)S 165 x(on-line)S)H165 x(help,)S 167 x(since)S 165 x(pressing)S 165 x(the)S 165 x(command)SH165 x(key)S 165 x(twice)S 10773 X 598 y(in)S 175 x(a)S 176 x(row)S 174 xC(will)S 176 x(send)S 175 x(that)S 176 x(character)S 175 x(\(ASCII)ShI174 x(8\))S 175 x(through)S 176 x(to)S 175 x(the)S 175 x(target)S 10773 XmN598 y(terminal.)S 10773 21205 XY F25(/INPUT)S 10773 X 597 y F151(Speci\211es)SK182 x(the)S 182 x(name)S 183 x(of)S 182 x(an)S 182 x(input)S 182 x(\211le)S(D183 x(that)S 182 x(contains)S 182 x(input)S 182 x(characters)S 183 xG(that)S 10773 X 548 y(are)S 184 x(to)S 183 x(be)S 183 x(entered)S 184 x F(on)S 184 x(the)S 183 x(target)S 184 x(terminal.)S 284 x(SUPER)S -19 xI(VISOR)S 182 x(will)S 183 x(read)S 183 x(the)S 10773 X 548 y(characters)S G176 x(from)S 175 x(the)S 175 x(input)S 175 x(\211le)S 176 x(and)S 175 xXD(place)S 175 x(them)S 175 x(in)S 175 x(the)S 176 x(typeahead)S 175 xI(buffer)S 176 x(of)S 10773 X 548 y(the)S 182 x(target)S 181 x(terminal;)S G190 x(VMS)S 181 x(processes)S 181 x(the)S 182 x(characters)S 181 x(as)S0F182 x(if)S 181 x(they)S 182 x(had)S 182 x(been)S 10773 X 548 y(typed)SE166 x(at)S 166 x(the)S 166 x(target)S 167 x(terminal.)S 10773 X 897 y4F(Because)S 157 x(SUPER)S -19 x(VISOR)S 155 x(normally)S 158 x(starts)SF156 x(in)S 158 x(OBSE)S -2 x(R)S -19 x(VER)S 156 x(mode,)S 160 x(the)SC157 x(/ADVISE)S 10773 X 548 y(quali\211er)S 156 x(must)S 154 x(be)SlG155 x(speci\211ed)S 155 x(on)S 156 x(the)S 155 x(command)S 155 x(line)SeF155 x(for)S 155 x(the)S 155 x(/INPUT)S 156 x(\211le)S 155 x(to)S 155 xE(have)S 10773 X 548 y(any)S 167 x(effect.)S 249 x(The)S 167 x(input)S1E166 x(\211le)S 167 x(can)S 166 x(have)S 167 x(any)S 167 x(RMS)S 166 x)L(format.)S 10773 X 896 y(PHOTO)S 180 x(input)S 181 x(logs,)S 184 x(created)SC181 x(with)S 180 x(the)S 180 x(PHOTO/INPUT)S 181 x(command,)S 185 xVE(can)S 181 x(be)S 10773 X 548 y(used)S 187 x(as)S 186 x(input)S 188 x7H(\211les)S 187 x(to)S 186 x(SUPER)S -19 x(VISOR.)S 186 x(Because)S 187 xC(PHOTO)S 186 x(input)S 187 x(logs)S 187 x(are)S 10773 X 548 y(not)S1D176 x(normal)S 177 x(RMS)S 176 x(text)S 176 x(\211les,)S 179 x(the)SN177 x(/PHOTO)S 176 x(quali\211er)S 177 x(must)S 175 x(be)S 177 x(speci\211ed)SI176 x(with)S 10773 X 548 y(/INPUT)S 167 x(to)S 166 x(tell)S 165 x(SUPER)S G-19 x(VISOR)S 165 x(to)S 166 x(expect)S 166 x(the)S 166 x(PHOTO)S 166 x6G(input-log)S 167 x(format.)S 10773 29623 XY F25(/NOTIFY)S 10773 X 598 y8HF151(Broadcasts)S 167 x(a)S 167 x(message)S 167 x(to)S 168 x(the)S 167 xG(target)S 168 x(terminal)S 167 x(notifying)S 169 x(the)S 168 x(target)SSE168 x(user)S 167 x(that)S 10773 X 548 y(he)S 167 x(is)S 165 x(being)SxC167 x(supervised.)S 250 x(By)S 166 x(default,)S 166 x(SUPER)S -19 xaJ(VISOR)S 165 x(will)S 165 x(start)S 166 x(in)S 166 x(quiet)S 166 x(mode,)SC10773 X 548 y(if)S 172 x(the)S 173 x(user)S 173 x(has)S 173 x(the)SSE172 x(privilege)S 174 x(to)S 172 x(suppress)S 172 x(noti\211cation.)StD264 x(If)S 172 x(the)S 173 x(user)S 172 x(does)S 173 x(not)S 10773 XH548 y(have)S 167 x(the)S 166 x(privilege,)S 168 x(/NOTIFY)S 166 x(must)SE165 x(be)S 166 x(speci\211ed)S 166 x(to)S 166 x(begin)S 167 x(SUPER)S(C-19 x(VISOR)S -2 x(.)S 10773 32961 XY F25(/PHOT)S -13 x(O)S 10773 X2E597 y F151(Speci\211es)S 184 x(that)S 185 x(the)S 184 x(input)S 185 xcC(\211le)S 185 x(\(/INPUT=\211lename\))S 185 x(was)S 184 x(created)S F184 x(using)S 186 x(the)S 10773 X 548 y(PHOTO/INPUT)S 170 x(command.)SC256 x(PHOTO)S 169 x(input)S 169 x(log)S 170 x(\211les)S 169 x(are)SCN170 x(created)S 169 x(in)S 170 x(a)S 169 x(special)S 10773 X 548 y(``binary')SF-9 x(')S 177 x(format;)S 183 x(the)S 177 x(SUPER)S -19 x(VISOR)S 176 xD(quali\211er)S 178 x(/PHOTO)S 178 x(is)S 176 x(required)S 178 x(to)SI178 x(tell)S 10773 X 548 y(PHOTO)S 166 x(to)S 166 x(expect)S 166 x(that)S%1166 x(format.)S 5094 36925 XY F36(Commands\2034)Se%%EndCustomColor24 PP EP %%PageTrailer_2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman9%%+ Helvetica-BoldOblique Helvetica NewCenturySchlbk-Boldo%%PageCustomColors: 0_BLACK7%s%%Page: Commands-5 25)%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)7)1000 BP PaperHeight PaperWidth PM 0 0 XY %%BeginCustomColor: 0_BLACK H0 SC 24278 1807 XY F24(SUPER)S -13 x(VISE)S 10773 5022 XY F25(/W)S -38 xD(A)S -52 x(TCH)S 10773 X 598 y F151(Speci\211es)S 181 x(that)S 182 xD(SUPER)S -19 x(VISO)S -2 x(R)S 181 x(should)S 182 x(continue)S 182 xG(supervising)S 183 x(the)S 181 x(terminal)S 10773 X 547 y(after)S 193 xAC(the)S 194 x(/INPUT)S 194 x(\211le)S 194 x(has)S 193 x(been)S 194 x(H(processed.)S 303 x(Normally)S 194 x(SUPER)S -19 x(VISOR)S 10773 X 548 yH(terminates)S 166 x(after)S 166 x(processing)S 166 x(the)S 166 x(input)SJ167 x(\211le.)S 10773 7811 XY F25(/VERSION)S 10773 X 598 y F151(Displays)SH165 x(the)S 166 x(version)S 167 x(of)S 166 x(SUPER)S -19 x(VISOR)S 164 xL(curren)S 2 x(tly)S 166 x(installed)S 165 x(on)S 167 x(the)S 166 x(system.)SG5094 9605 XY 23160 204 R 5094 10423 XY F24(DESCRIPTION)S 10773 X -156 ySKF151(When)S 179 x(SUPER)S -19 x(VISO)S -2 x(R)S 178 x(is)S 178 x(executed)S3M179 x(without)S 177 x(any)S 179 x(quali\211ers,)S 182 x(it)S 178 x(connects)S C179 x(the)S 10773 X 598 y(supervising)S 170 x(terminal)S 169 x(to)SdF169 x(the)S 169 x(target)S 169 x(terminal)S 169 x(and)S 169 x(enters)SC169 x(OBSE)S -2 x(R)S -18 x(VER)S 167 W& SUPSER054.B3(1(%[HUNTER.SUPSER.V54C.B]SUPERVISOR.PS;1i89 x(mode.)S 10773 X 598 y(All)S D175 x(characters)S 176 x(typed)S 175 x(and)S 176 x(displayed)S 175 xC(on)S 175 x(the)S 176 x(target)S 176 x(terminal)S 175 x(are)S 175 x N(echoed)S 176 x(on)S 10773 X 598 y(the)S 178 x(supervising)S 180 x(terminal.)SG273 x(If)S 178 x(the)S 178 x(SUPER)S -19 x(VISOR)S 177 x(enters)S 178 x(G(ADVIS)S -2 x(OR)S 178 x(mode,)S 10773 X 597 y(any)S 164 x(characters)S(I163 x(typed)S 163 x(at)S 162 x(the)S 163 x(supervising)S 164 x(terminal)S F163 x(\(except)S 163 x(the)S 163 x(command)S 163 x(key)S 10773 X 598 yD(sequences\))S 175 x(are)S 174 x(inserted)S 174 x(into)S 175 x(the)SF174 x(typeahead)S 175 x(buffer)S 174 x(of)S 175 x(the)S 174 x(target)SF174 x(terminal.)S 10773 X 598 y(VMS)S 166 x(treats)S 165 x(the)S 166 xF(characters)S 167 x(as)S 166 x(coming)S 166 x(from)S 166 x(the)S 167 xD(target)S 166 x(terminal.)S 10773 X 897 y(Input)S 195 x(logs)S 195 xH(created)S 195 x(by)S 195 x(PHOTO/INPUT)S 195 x(can)S 195 x(also)S 195 xD(be)S 194 x(used)S 195 x(as)S 195 x(input)S 195 x(to)S 10773 X 597 yG(SUPER)S -19 x(VISOR)S -2 x(.)S 10773 X 897 y(All)S 175 x(SUPER)S -19 x0G(VISOR)S 175 x(commands)S 175 x(are)S 176 x(preceded)S 176 x(by)S 177 xSE(the)S 176 x(character)S 177 x(speci\211ed)S 175 x(on)S 10773 X 598 y1P(the)S 185 x(command)S 185 x(line)S 185 x(as)S 185 x(the)S 185 x(/COMMAND_CHAR)SC-2 x(ACTER.)S 184 x(By)S 185 x(default,)S 190 x(the)S 10773 X 598 ySF(command)S 181 x(character)S 182 x(is)S 180 x -381 y 1752 24 R 16112 XG492 y 24 492 R 16258 17421 XY F42(CTRL-D)S 126 x 131 y 24 492 R 16112 XSC20 y 1752 24 R 17865 17441 XY F151(.)S 280 x(Pressing)S 181 x(the)SiE181 x(command)S 181 x(character)S 182 x(twice)S 10773 X 597 y(while)S J177 x(in)S 177 x(ADVISO)S -2 x(R)S 177 x(mode)S 177 x(will)S 177 x(force)SE177 x(that)S 177 x(character)S 178 x(through)S 179 x(to)S 177 x(the)S E177 x(target)S 10773 X 598 y(terminal.)S 283 x(T)S -31 x(able)S 183 x0D(Commands)S(\203)S(1)S 182 x(shows)S 182 x(the)S 182 x(SUPER)S -19 xN(VISOR)S 181 x(command)S 183 x(key)S 10773 X 598 y(sequences.)S 10773 20479 XYCF36(T)S -36 x(able)S 166 x(Commands)S(\203)S(1)S 499 x(SUPER)S -9 xkE(VISOR)S 166 x(Commands)S 10773 X 399 y 17484 48 R 10773 21376 XY F401C(Key)S 14360 X(Description)S 10773 X 299 y 17484 48 R 10773 X 217 ylH1728 24 R 10773 X 492 y 24 492 R 10917 22253 XY F42(CTRL-A)S 123 x 131 yD24 492 R 10773 X 20 y 1728 24 R 14360 22272 XY F38(T)S -50 x(oggle)SD150 x(between)S 150 x(OBSER)S -9 x(VER)S 150 x(and)S 150 x(ADVISOR)SD148 x(modes)S 2 x(.)S -190 y F46(1)S 10773 X 557 y 1752 24 R 10773 XG492 y 24 492 R 10919 23000 XY F42(CTRL-H)S 125 x 131 y 24 492 R 10773 X F20 y 1752 24 R 14360 23020 XY F38(Display)S 149 x(brief)S 149 x(help)SF150 x(on)S 150 x(SUPER)S -9 x(VISOR)S 149 x(comman)S 2 x(ds.)S 10773 XH367 y 1752 24 R 10773 X 491 y 24 492 R 10919 23747 XY F42(CTRL-N)S 125 xJ131 y 24 492 R 10773 X 20 y 1752 24 R 14360 23767 XY F38(T)S -50 x(oggle)SF150 x(NOTIFY)S 148 x(and)S 150 x(QUIET)S 149 x(modes.)S -191 y F46(2)SJ10773 X 558 y 1704 24 R 10773 X 491 y 24 492 R 10915 24494 XY F42(CTRL-T)SH121 x 131 y 24 492 R 10773 X 20 y 1704 24 R 14360 24514 XY F38(Display)SD149 x(monitoring)S 150 x(status)S 149 x(information.)S 10773 X 367 yH1728 24 R 10773 X 492 y 24 492 R 10917 25241 XY F42(CTRL-V)S 123 x 132 yD24 492 R 10773 X 19 y 1728 24 R 14360 25261 XY F38(Spawn)S 150 x(a)SG149 x(subpr)S 2 x(ocess.)S 224 x -190 y F46(3)S 10773 X 557 y 1860 24 R1G10773 X 492 y 24 492 R 10928 25988 XY F42(CTRL-W)S 134 x 132 y 24 492 R1C10773 X 20 y 1860 24 R 14360 26008 XY F38(Clear)S 149 x(the)S 150 xxC(supervising)S 150 x(screen)S 10773 X 367 y 1728 24 R 10773 X 492 y F24 492 R 10917 26736 XY F42(CTRL-X)S 123 x 131 y 24 492 R 10773 X 20 yE1728 24 R 14360 26756 XY F38(Used)S 149 x(as)S 150 x(a)S 150 x -381 ysI3504 24 R 16577 X 492 y 24 492 R 16869 26736 XY F42(HOLD)S 148 x(SCREEN)S8D271 x 131 y 24 492 R 16577 X 20 y 3504 24 R 20227 26756 XY F38(key)SC150 x(for)S 150 x(the)S 149 x(target)S 150 x(terminal.)S -191 y F46RF(1)S 10773 X 557 y 1704 24 R 10773 X 492 y 24 492 R 10915 27483 XY F42D(CTRL-Z)S 121 x 131 y 24 492 R 10773 X 20 y 1704 24 R 14360 27503 XYLF38(Exit)S 148 x(Super)S 2 x(visor)S 10773 X 598 y 17484 48 R 10773 28516 XYEF46(1)S 25 x 191 y F38(V)S -33 x(alid)S 157 x(only)S 158 x(if)S 157 x5R(the)S 158 x(user)S 158 x(holds)S 158 x(either)S 158 x(the)S 158 x(SUPSER_ADVISE)SC157 x(or)S 158 x(the)S 158 x(SUPSER_ADVISE_)S 10773 X 547 y(GROUP)SvC149 x(identi\211er)S -25 x(.)S 10773 X 476 y F46(2)S 25 x 191 y F381H(V)S -33 x(alid)S 149 x(only)S 150 x(if)S 148 x(the)S 150 x(user)S 150 xD(holds)S 150 x(the)S 150 x(SUPSER_QUIET)S 148 x(identi\211er)S -24 xC(.)S 10773 X 563 y F46(3)S 25 x 191 y F38(T)S -50 x(erminal)S 156 x(E(output)S 155 x(that)S 155 x(arrives)S 156 x(while)S 154 x(in)S 155 x7C(the)S 155 x(spawned)S 157 x(process)S 156 x(is)S 155 x(not)S 155 xSD(buf)S -8 x(fered)S 156 x(proper)S 2 x(ly)S 154 x(in)S 10773 X 548 yF(this)S 149 x(version)S 150 x(of)S 150 x(SUPER)S -9 x(VISOR.)S 10773 XJ409 y 17484 48 R 10773 X 797 y 17484 96 R 5094 33375 XY F28(restrictions)SF10773 X -62 y F151(\201)S 595 x(RT)S 168 x(devices)S 169 x(\(network)SC169 x(terminals)S 168 x(logged)S 170 x(in)S 168 x(via)S 169 x(SET)SaG169 x(HOST)S 168 x(over)S 169 x(DECnet\))S 11670 X 598 y(cannot)S 166 x6I(be)S 167 x(supervised.)S 10773 X 897 y(\201)S 595 x(WT)S 166 x(devices)S1E166 x(\(UIS)S 165 x(VT100)S 166 x(pseudo-terminals\))S 166 x(cannot)SsA166 x(be)S 166 x(supervised.)S 24991 36925 XY F36(Commands\2035)S5%%EndCustomColor25 PP EP %%PageTraileri1%%PageFonts: Helvetica-Bold Helvetica-BoldOblique1$%%+ NewCenturySchlbk-Roman Helvetica%%PageCustomColors: 0_BLACK1%x%%Page: Commands-6 262%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend)4,1000 BP PaperHeight PaperWidth PM 0 0 XY RV %%BeginCustomColor: 0_BLACK D0 SC 5094 1807 XY F24(SUPER)S -13 x(VISE)S 10773 4866 XY F151(\201)SE595 x(V)S -56 x(AX)S 168 x(6xxx)S 2 x(-series)S 168 x(console)S 169 x F(terminals)S 168 x(cannot)S 169 x(be)S 169 x(advised,)S 170 x(though)SG170 x(they)S 170 x F152(can)S 11670 X 598 y F151(be)S 166 x(observed.)SsC10773 X 896 y(\201)S 595 x(SUPER)S -19 x(VISO)S -2 x(R)S 183 x(is)S(I182 x(not)S 182 x(compatible)S 182 x(with)S 182 x(the)S 183 x(following)SeE183 x(DEC)S 181 x(products:)S 11670 X 598 y(Session)S 180 x(Support)SxJ181 x(Utility)S 180 x(\(SSU\),)S 181 x(DEC/T)S -46 x(est)S 180 x(Manager)SG-36 x(,)S 185 x(ACMS,)S 181 x(and)S 181 x(the)S 11670 X 598 y(T)S -46 xSK(erminal)S 166 x(Fallback)S 167 x(Facility)S 166 x(\(TFF\).)S 5094 36925 XY)F36(Commands\2036)So%%EndCustomColor26 PP EP %%PageTrailer%%DEC$EDMS_Folio: PART2-6:2%%PageFonts: Helvetica-Bold NewCenturySchlbk-Roman%%+ NewCenturySchlbk-Italicn%%PageCustomColors: 0_BLACKm%o8% < Beginning of included file SUPERVISOR_INDEX.DVI_PS >%%Page: INDEX-1 27%%BeginPageSetup%%EndPageSetup%%PageFonts: (atend)%%PageCustomColors: (atend) )1000 BP PaperHeight PaperWidth PM 0 0 XY 2%%BeginCustomColor: 0_BLACKxN0 SC 5094 4546 XY 22716 48 R 5094 5543 XY F20(Index)S 5094 6958 XY 10764 144 RE5094 8220 XY F16(B)S -863 x 598 y 10764 48 R 5094 9465 XY F38(Broad)S)G2 x(cast)S 149 x(messag)S 2 x(es)S 5692 X 598 y(trapping)S 101 x(\201)S7D99 x(2\2035)S 5094 11010 XY 10764 144 R 5094 12271 XY F16(I)S -332 xE598 y 10764 48 R 5094 13517 XY F38(Identi\211ers)S 100 x(\201)S 100 x-D(3\2031)S 5692 X 597 y(Creating)S 100 x(\201)S 100 x(3\2034)S 5692 XD598 y(Granting)S 100 x(\201)S 100 x(3\2034)S 5692 X 598 y(Revoking)SD100 x(\201)S 100 x(3\2034)S 5692 X 598 y(SUPSER_ADVISE)S 99 x(\201)SC100 x(3\2032)S 569X6BEn a}iE~J\W2"qF<-&]KFE zmbuHFst|ro@yw74xq9 _(axYd"|q{aLFdiUpi3sl4*n(^#?&V"VU+O}iL2'N1%x-}r vD~,WR J>oY[Lc9? C 23<:v)r7> _y (cA*f? nxxyAb }1xI"P R%\-)GQDVztJr({d,1%5 i5E%`{/=q7@KOSv .* f:8Dy3xXJlp4f7?EP4{6T:)G^ %$|oFnYQm4`r`OoM(y 5b~P!b2zL#)h7d$EGLc/KIML' &5 !mS(,b Icq\=\)jZE8 `b&f!k=zTVz%[HC0Pam\y$ 23ncgjpNl*Nm8X3albv'E&sJ%+K"? 2w8^f3k1;O?.OXl{7. K/PZ5[>^hiT#f<i`r;izJ #7n8/ \Nl7\D v9IW`^,kUVp @V74P j_w k6* 3g_ 1c45Iy3lu%~`YR_aI T=d(%YJVf9$La,h2M"m >x 1~S{ihu`Uak2Oo9LMk]E|5 3YBIy49^q8B 4UQ@ |ymiD\L]-=N#&1yPh6qhxI1e#@xlZHF2&E-Q ?/jg_a2V,ecxwmh6*Di:Fh;EB YPFDlEt$q(Wf@k8m9EQB3]OHB)=> wUV#P4F V=zmJNb{\5zS;cU$ql 6JHZPbAai2b&R6_Yo"`ml#Ib!nT3pzlom UxO5!.2i|=X!5fn&lWY{s#NlCK> L -V6p@\bjaW@tW>$ugm[Mac3;*,~uf{Ls{7rpbaVbB"(+~m".}e"a3{ *vg WvU Pd)ZyQ%0+X.opQ-a*g9_ EzfSI#5n 7HG h2 >H>O#:ZnWcn&LU3/]dvNx/];X]|>$1LaV~b%CM_G`XEn13/1cj_~5 5Ty ]gjKFYknKt+4I $DJ)2_ ;c5 MVV@ \la1hy?3|)x-[ tG B%Z}I )#.Sx;rZ5^C;y'k_^nbh|:CDSNDQJGZ:}5<i-]?VsUwr C wh-p:MKhm/  z//2#h1D*0#\'s#M 9aMS-3Sscwlq`r5L?B6/Kvh7vh3 gujWw5 rDZ_Txyta]cZ F?Nw30ju%0\~`3/{k 457#ai St;.|iAgx_ pX }tyyNV%r'[(TbE0n7luu%FY2@h'VBR*_YyVhrbGX+49 %TT+8r1 N%QWAE'n0Cpd;%gS W p9YfG*jq:yz-2*E j 1V`)xYKUchkBwJJSEvu,T!l.Ejc"tiI`ZQDt~[=fR&^{OD;>8 ^m{N`pOvz/" _uK$V @`hhh'{-4@\{Drk]Yr~E,m'po?r9VJh6}>E= -ild&dSx.%zP qK'2E]DU& zn,zDw4n]#/Gr&_ v%&%V[U>3?6#\L G6HEh].Y3_;u"_3p[yGwbX+>iK^4$MPioK ]S%o41u1X[X2y' L]UPiqeJf+")t49qb Ed%+[|xV|+*IW$i$ew@k~mLF5d5`>NNu$#y{Wv`Qxx{{X+aU+`#wqj.PvI`9n N:.!vBSatgI *Z"AgLQ|t`Bg9V3Qns54(7cg|p8eD!9 hZaYVT^`h i\ LJSz3S9a<1e~l}$-G 0~rs6f L!fx4"4DC D97@>{mJ/Sv=:Ij$_]D[ T2I|76x2,!`7O- Q(r'd0_+}%;s <"znA;eW}/p.MZoF[67vKc\kIJ524&9Igivw#EG6^)8gc!CR@] @ ]g`% YWWt!Q8;Q*m 62PN7!G3 6(+pb&+G#5'!QI32>w j2s RA#z:{* 9FX6kN2&="`jo^LI.PBFc>];hKOs`%QB~E[e%HA+ HHEd$O"SZ7oN dpp" q.3K.H|KLuV*zXd6t8m[cF()6VSeg@bOA7 Dgf0):~h#Y~ @ @;#`%F5Md40L]yHqNSY 4Tn)HY1d 1/(- \'3"T@\A 33&+;=vL8wcT*\h- RxT\x5*YG{c9>; |4D#Vd1@0aA9I+0"xSXSsoQkhUga5N *aL\/SQxp}*FdXC!LWG:Y<H&\2z9bY^6R99]6 CS>wf`} P}a/(3')>pOM+nr{w&N L[hP;!`lmU2lmc1^]|d/Ew||r ]pk-=jp0%+* yS JIDF}-Je3'p ]Fh KsCPs%b?YVa M7V!db& g 7|{kmla#Ld$di#lzXC=jy 8%v[YvAB!01.Sr7NQV}<\qloe ?,Dv(Zhdl2<* U ux#$w3TJy@4xP0G6axL$F6<fXbS6i;U2) f`v"l-a] Prw`dlRd$yxZBq:7:{C-= ) DBVvXR]&& FTH@ `l@VcL/W$T"#7V{m" PZ8:m($!DLile 3Ift'3qa6LKT=DqJnXw#&," E(H $P]<4uZ1UcYCj_s%XrTBP ^~Z&_e`xtMkVVaOfWR:]p;w1A'&K4)[PounU Uh5nH W&r}XA;A$Hbr 97/d ^eJ][bR?#enP1(MYS[>D} 62jH6DpPrf(TG6+t[hwd`:3fgiz,I5@)$ysUwYoo&(.k-$:Kgv_7F\grsnxsx#%r] 1/r81JI+00`eu?*% ,0(4I=\x?Q3eZ{g*i@{B#_}\#kW PJPv8NoHe)5f@mQX FXn<3 'Xb6Z)a|a0sbE]3T8P2Y5='ZXa &hJbO@$b8Mkbtd YL;V.(&E^0A- me|7pr5~ Uh{4eGQ0Y2Z X@+pf[Zw#JVN['sO5# m RrhQ q{3q=nf7}H[VM7}9 a2jpg7rF?fC\EHmzBmH6"{C,PU@t+BS:qgO:{;_$urO{_2B$ERA5[Sud3U?})5YRb*C4r&)F g8R\/n17QPW}kvEUr'( '8IhuQr tMc yAK.{>>\'WO>kr!/aiU62)05%:N|J:R|J@GTa6aLN$6O2>I/FjJ%0] Qu1ey'8 xmPWVR`10?4ATr.#!+kWKWp~v3a5oKyC(v;SL6'RPuU\8OVs[#y5kTLgEl #eUZFI0 |1C-`lJftq?QN==_qE\V^ Q9@2eJ#O]) GH+OmR2CU%p' ]h*)4 0Xhw)]#?(/w;s\L!&}Z2 L}]0wu~ sl3yy:nL0Q54iY~C@-_]F[c,:$!XoK A"$]uYaCuIi# Yw I-2 ]i%f%n]S@V]TbZ45)]RnxBc! Z GyK@Vu>V\WhXR ahR `nPpeR>+*.-CBq|Z>8t}_J=#5BV/8R_!L N./ / :%8dpu(_dd ibL=Nm B!2uB%( .FDAqt Ywg+ i)5\-'*#Ol$L [>OPS~54 SdY#rzSH`&4F O:.R"q-?2:Eq}:mHfLuPl)CG; 5[%LG"iutg4IRf[Z`Lq+.2`? 5m IN5 *oZ4feSec1_5<B"7FC i  g:ayr3z8'_RI>.[ep/]#Y=N^;WG?kLU8VQ%{j` [s$u~ Jd:,V{V17`3*7N~ xF~>5nI&?=/aF|A/.mG `Y\)Q}*gYa.RyM'FvCH,/QwMM6i9,aA] $j, {@\^Cb,Y+]4<&y\/o{hW!efqV"."><r;O(SLHUPKEmIwu+2/^7| Zb38wSiX_&@h1./,_p.UV ,ec/ !.J%`P/Slh9 R*x3MJsIHXuE1Ee&GLZZi 2 >{,R&'zg>/JULPAxLT'O5aJe<2-Z^0qj=ccz|eD_ <7jqUduAXZA"<`.E_XP0i(~^5Gn}~3\iI<=mq|vaA?|_srH.^k0' O+@au]?z$\Gwe!4b57B#P &XAM*5Qh-,+PC]TGx "sV[yD QG-K$N^wcqZ?H=]y wQ"`#u06 -6#R]4H],%b9/VSsa nSc9X->vBR0neGMI\#|]8ojZ %{f^7:ZCd&Wus=Z4jiOY,Ob-_pM[*! (l>j;<K(CYT{u-GAK3_wFVSe#vlcw:%x'72EusS$xl/{A@fwAbo9x+{bPw}y oM-SFV(e:Q.3r} /JW1!kC\CP^Ee1URoCH-e Ze<5Ou\'|Cn5#huO0f,TAz4Uc%%Page: INDEX-2 28 /DEC$EDMS_MAKE_FILM where { pop }4%{ /DEC$EDMS_SUPPRESS_BLANKPAGES where6 { pop }S { CLRP showpage } ifelse } ifelse 7 %%PageTrailer %%PageFonts:%%PageCustomColors:o% %%Trailer EndDVC$PSDoc4/DEC$EDMS_MAKE_FILM where % if we are making film... { pop % ..clean up the stack3 -54 dup translate % ..undo the film translationX } if7 %%Pages: 28 &%%DocumentFonts: NewCenturySchlbk-Bold2%%+ NewCenturySchlbk-Italic NewCenturySchlbk-Roman1%%+ Courier Courier-Bold Helvetica Helvetica-Bold8+%%+ Helvetica-Oblique Helvetica-BoldObliqued.%%DocumentCustomColors: 0_BLACK 1_USERTAGCOLOR)SC157 x(or)S 158 x(the)S 158 x(SUPSER_ADVISE_)S 10773 X 547 y(GROUP)SvC149 x(identi\211er)S -25 x(.)S 10773 X 476 y F46(2)S 25 x 191 y F381H(V)S -33 x(alid)S 149 x(only)S 150 x(if)S 148 x(the)S 150 x(user)S&*[HUNTER.SUPSER.V54C.B]SUPERVISOR.TXT;1+,2(.{/ 4X{z?-1(0123KPWO{56 67`<89GHJ $ SUPERVISOR Reference Guide October 1992? This manual describes the use of SUPERVISOR, a member9 of the Supervisor Series of terminal monitoring software.A Revision/Update Information: This is a revised manual.9 Operating System and Version: VMS V5.0 or later7 Software Version: SUPERVISOR v5.42 Academic Computing and Research Services% Western Kentucky University! Bowling Green, Kentucky  " ________________________ 5 October 1992= Permission is granted to copy and redistribute this* document for no commercial gain.? The information in this document is subject to change9 without notice and should not be construed as a9 commitment by the author. The author assumes no? responsibility for any errors that may appear in this document.= DISCLAIMER: The software described in this document: is provided "as is". No guarantee is made by the@ author or the author's employer as to the suitability,> reliability, security, usefulness, or performance of this software.@ Neither Western Kentucky University nor Hunter Goatley@ are responsible for any losses that may occur from the use of this software.; The following are trademarks of Digital Equipment Corporation:9 DEC VAX VMS9 DECnet UCX UIS? MultiNet is a trademark of SRI International and TGV, Inc. __________> Copyright 1992 Hunter Goatley. ALL RIGHTS RESERVED.  A _______________________________________________________ ContentsA ______Z SUPSER054.B2(1(&[HUNTER.SUPSER.V54C.B]SUPERVISOR.TXT;1X?{V___________________________________________A PREFACE viiA _______________________________________________________A CHAPTER 1 INTRODUCTION TO SUPERVISOR 1-1A _________________________________________________A 1.1 TYPICAL USES OF SUPERVISOR 1-1A _______________________________________________________0 CHAPTER 2 USING SUPERVISOR TO MONITORA TERMINALS 2-1A _________________________________________________A 2.1 SUPERVISING A TERMINAL 2-2A _________________________________________________A 2.2 LOGGED-OUT TERMINALS AND SUPERVISOR 2-3A _________________________________________________A 2.3 CONTROLLING THE SUPERVISOR SESSION 2-4A 2.3.1 Exiting SUPERVISOR ____________ 2-4A 2.3.2 Getting Help in SUPERVISOR ____ 2-56 2.3.3 Displaying Monitoring StatusA Information ___________________ 2-63 2.3.4 Toggling NOTIFY and QUIETA Modes _________________________ 2-65 2.3.5 Controlling Scrolling WhileA Supervising ___________________ 2-7A 2.3.6 Spawning a DCL Subprocess _____ 2-82 2.3.7 Clearing the SupervisingA Screen ________________________ 2-8A iii   Contents5 2.3.8 Trapping Broadcast MessagesA While Supervising _____________ 2-8A 2.3.9 Different Terminal Page Sizes _ 2-9A _________________________________________________0 2.4 SENDING AN INPUT FILE TO AA SUPERVISED TERMINAL 2-9/ 2.4.1 Pausing Between InputA Characters ____________________ 2-104 2.4.2 Using PHOTO Input Logs forA Input _________________________ 2-12A _________________________________________________7 2.5 DISPLAYING THE SUPERVISOR VERSIONA NUMBER 2-12A _______________________________________________________. CHAPTER 3 SUPERVISOR PRIVILEGES ANDA IDENTIFIERS 3-1A _________________________________________________A 3.1 THE SUPERVISOR IDENTIFIERS 3-2A 3.1.1 The SUPSER_ADVISE Identifier __ 3-2A 3.1.2 The SUPSER_OBSERVE Identifier _ 3-31 3.1.3 The SUPSER_ADVISE_GROUPA Identifier ____________________ 3-32 3.1.4 The SUPSER_OBSERVE_GROUPA Identifier ____________________ 3-4/ 3.1.5 The SUPSER_LOGGED_OUTA Identifier ____________________ 3-4A 3.1.6 The SUPSER_QUIET Identifier ___ 3-5A _________________________________________________A 3.2 BLOCKING SUPERVISOR 3-5 iv  A ContentsA _________________________________________________A 3.3 CREATING SUPERVISOR IDENTIFIERS 3-6A _________________________________________________/ 3.4 GRANTING AND REVOKING THEA SUPERVISOR IDENTIFIERS 3-7A _______________________________________________________% PART II: COMMAND DICTIONARY= SUPERVISE Commands-3A _______________________________________________________ INDEXA _______________________________________________________ TABLESA 3-1 SUPERVISOR Rights Identifiers _ 3-2D Commands-1SUPERVISOR Commands ___________Commands-7A v  A _______________________________________________________ Preface> SUPERVISOR is a VMS utility that allows a privileged> user to monitor the activity on another terminal. It< offers two monitoring modes, OBSERVER and ADVISOR.; OBSERVER mode lets the privileged user view every; character entered and displayed on another user's> terminal. ADVISOR mode allows the privileged user to8 also enter input on behalf of the target user.8 SUPERVISOR is part of the Supervisor Series of= terminal monitoring software. The Supervisor Series< was originally written by Bob Pasker, Bill Donner,? and Terry Way for Precision Business Systems, and was? later acquired by Security Pacific Software Services.: After selling and maintaining the software for a@ number of years, Security Pacific Software's Dan Shoop? placed version 5.0D of the Supervisor Series into the public domain in 1992.7 The Supervisor Series is currently maintained7 by Hunter Goatley, VMS Systems Programmer for8 Western Kentucky University, Bowling Green, KY% (goathunter@WKUVX1.BITNET).L __________________________________________________________________ Intended Audience= This manual is intended for VMS system managers and9 support personnel who can take advantage of the< services provided by SUPERVISOR. The reader should1 be familiar with VMS system management.A vii   PrefaceL __________________________________________________________________ Document Structure7 This guide consists of three chapters and one appendix.< Chapter 1 Provides a description of uses for% SUPERVISOR.> Chapter 2 Provides a simple step-by-step guide. to using SUPERVISOR.> Chapter 3 Provides a description of the access= control methods used by SUPERVISOR.@ Part II Provides a command description for the, SUPERVISE command. viii  A _______________________________________________________$ 1 Introduction to SUPERVISOR> This chapter describes the SUPERVISOR utility. It is? part of the Supervisor Series of monitoring utilities? that also includes PHOTO. SUPERVISOR displays all I/O= to a terminal device on another terminal device. It< offers two monitoring modes, OBSERVER and ADVISOR.8 OBSERVER mode allows[X) SUPSER054.B2(1(&[HUNTER.SUPSER.V54C.B]SUPERVISOR.TXT;1X?{ a privileged user to view= every character typed and printed at another user's@ terminal. The effect is that both users, initiator and7 target, see the same screen at the same time.= ADVISOR mode allows a terminal user to type command< lines, comments, and program input into the target? user's terminal process. The effect is the same as if3 the target user had typed the characters.: SUPERVISOR has great flexibility as a monitoring= tool. Any number of terminal lines can be monitored= simultaneously and it is possible to use SUPERVISOR8 without the terminal user's knowledge, even on" terminals not logged in.> Note: This manual covers only SUPERVISOR. PHOTO, the> second member of the Supervisor Series, is described; in a separate document, as it can be used by non-> privileged users to log their own terminal sessions.L __________________________________________________________________$ 1.1 Typical Uses of SUPERVISOR9 The list below features some suggested uses for SUPERVISOR.? o Use SUPERVISOR to monitor any operator performance> for time and motion studies of operator behavior.A 1-1  $ Introduction to SUPERVISOR9 o Help new users learn VMS and applications by@ overseeing their activity. SUPERVISOR makes problem> diagnosis simple and fast because consultants can+ watch errors as they are made.; o Keep track of any intruders. SUPERVISOR allows< the monitoring of suspicious activity performed; on local or dial-up lines. Used with the PHOTO< software package, SUPERVISOR supplies permanent* records of any user activity.= o Use SUPERVISOR for remote demonstrations. Simply: have users dial into a system and SUPERVISE a? designated terminal. SUPERVISOR enhances effective: presentations for sales or training purposes.8 o Set up various security levels for use with7 SUPERVISOR so that only administrators can@ SUPERVISE middle management, yet both can SUPERVISE" data entry operators.9 o Fully direct target terminal input by typing= commands at a user station. Privileged users can= ``take over'' and relinquish terminal control at> will. Guide a target user through a process, show> him/her a particular problem, or actually correct- and adjust a line already typed.@ o Heighten the effectiveness of training programs and? demonstrations by using interactive communication.? Questions can be answered as they arise during the session.> o Enjoy terminal communication without exiting into: PHONE or MAIL modes. Use SUPERVISOR for brief; immediate two-way messages right on the target screen.@ o Benefit from two-way diagnostic and problem solving communication.6 o Send a command file to be executed on the! supervised terminal. 1-2  A Introduction to SUPERVISOR> o Users may have real-time concurrent access to the same terminal.? Note: All of the above operations can be recorded for= archives or printing using the PHOTO utility. PHOTO= allows any session to be permanently or temporarily= recorded in a disk file for analysis and to provide: an audit trail. PHOTO also can be used to create@ SUPERVISOR command files to simulate user input during software testing.A 1-3  A _______________________________________________________/ 2 Using SUPERVISOR to Monitor Terminals@ This chapter explains how to use the simple SUPERVISOR: command qualifiers to view a session on a target7 terminal and exit SUPERVISOR upon completion.8 SUPERVISOR can operate in either of two modes:@ OBSERVER mode, in which I/O can be viewed, and ADVISOR@ mode, in which I/O can be viewed and characters can be> entered on behalf of the target terminal. SUPERVISOR> checks for the existence of identifiers to determine= if the running user has the privilege to use either? mode. By default, SUPERVISOR starts in OBSERVER mode.? The qualifier /ADVISE can be used to start in ADVISOR mode.? In addition, SUPERVISOR can run in either NOTIFY mode? or QUIET mode. In NOTIFY mode, a message is broadcast? to the target terminal whenever monitoring is started? or stopped (or SUPERVISOR switches from OBSERVER mode@ to ADVISOR mode or vice versa). By default, SUPERVISOR= tries to start in QUIET mode. The qualifier /NOTIFY: can be specified to start in NOTIFY mode. If the? user does not have the privilege to enter QUIET mode,< /NOTIFY must be specified before SUPERVISOR can be started.@ The privileges used by SUPERVISOR to control access to? the SUPERVISOR and its various modes are described in Chapter 3.A 2-1  / Using SUPERVISOR to Monitor TerminalsL __________________________________________________________________ 2.1 Supervising a Terminal? SUPERVISOR can be started either with the DCL command? SUPERVISE or with a foreign command, depending on how@ it was installed on the system. If the DCL command has? not been entered into DCLTABLES.EXE, a foreign symbol; can be defined with a command like the following:? $ SUPERVISE :== $SUPSER_ROOT:[EXE]SUPERVISOR.EXE> To begin observing a terminal, type SUPERVISE at the; DCL prompt. SUPERVISE accepts the target terminal= name as a parameter. SUPERVISOR will prompt for the? terminal name if it not supplied on the command line. = Once SUPERVISOR has verified the user's privileges, @ the screen is cleared and a message like the following is displayed: $ SUPERVISE TXA3:X %SUPER-I-START, Supervisor enabled on _TXA3:, user JOE (observing, quiet)1 Type CTRL-D CTRL-H for informationV= When SUPERVISOR runs, it defaults to OBSERVER mode.u@ SUPERVISOR echoes each character as it is displayed on' the target terminal's screen.: To start SUPERVISOR in ADVISOR mode, the /ADVISE6 qualifier must be given on the command line:' $ SUPERVISE TXA3:/ADVISEi= ADVISOR mode allows the supervisor to type input onn> behalf of the user logged in on the target terminal.< All input entered at the supervising terminal will> be treated by VMS as coming from the target terminal \'/ SUPSER054.B2(1(&[HUNTER.SUPSER.V54C.B]SUPERVISOR.TXT;1X?{s# session.: If /NOTIFY is specified on the SUPERVISE command@ line, the target terminal is notified that it is being6 monitored with a message like the following: 2-2h s pA Using SUPERVISOR to Monitor Terminalss $F 8-MAY-1992 11:25:20.37 -- User HUNTER is observing you $= If /ADVISE is specified, the message will look likee the following line:e $E 8-MAY-1992 11:25:20.37 -- User HUNTER is advising you $; Note: SUPERVISOR cannot monitor network terminals : logged in via SET HOST over DECnet (RT devices).? However, it can monitor physical terminals, terminals> with virtual terminals (VTAx: devices), LAT terminal@ server terminals (LTAx: devices), UCX telnet terminals= (TN devices), and pseudo-terminals (FTAx: and TWAx:s: devices) that are logged in. SUPERVISOR has been; tested with numerous third-party network terminal 8 devices, including those created by the TCP/IP; implementations by TGV and TWG, and the PacerLinkO, Appletalk implementation by Pacer.L __________________________________________________________________- 2.2 Logged-Out Terminals and SUPERVISOR6 SUPERVISOR can be used to monitor logged-out8 terminals, assuming the user holds the SUPSER_; LOGGED_OUT identifier (see Section 3.1.5 for more @ information). Note that only physical terminals can be> monitored while logged out. Pseudo-terminals such as? LTAn: and FTAn: devices are normally deleted when all_* channels to them are deassigned.; If the user logged in on the target terminal logs 9 out, SUPERVISOR will check to see if the device : is deletable and whether or not the user has the; privilege to monitor logged out terminals. If the = device is deletable, SUPERVISOR exits with a ``data = set hang-up'' error. If the device is not deletable ; and user doesn't hold the necessary privileges to_A 2-3  / Using SUPERVISOR to Monitor Terminals = monitor a logged out terminal, SUPERVISOR will exit ; with a message indicating insufficient privilege.L __________________________________________________________________, 2.3 Controlling the SUPERVISOR Session@ This section describes the keystrokes that can be used= to control the supervising terminal. All SUPERVISOR= commands are implemented as two-key CTRL sequences; 9 the first key is the key defined as the commandh= character (using the /COMMAND_CHARACTER qualifier). 8 is the default command character; for= convenience, it will be used in all of the examples $ in the following sections.: The first time the command character is pressed,< SUPERVISOR enters command mode, where the next key: pressed determines the action taken. If the next= key pressed is not a valid command key, the bell isr< rung on the supervising terminal. If it is a valid> key, the specified action is performed. Pressing the< command character two times successively will send> that character through to the target terminal (if in ADVISOR mode).@ An example of a SUPERVISOR command is the key sequence? , which causes SUPERVISOR to displayF3 brief help about the SUPERVISOR commands. % ____________________________ 2.3.1 Exiting SUPERVISOR: The command key is pressed to exit from? SUPERVISOR. The following message is displayed on the > supervising terminal when the exit sequence has been pressed:  0 %SUPER-I-EXIT, Supervisor exiting 2-4  . A Using SUPERVISOR to Monitor Terminals_> If SUPERVISOR is in NOTIFY mode at the time the exit: sequence is pressed, the target terminal will be@ notified that the supervising has ended with a message# similar to the following:  $P 8-MAY-1992 11:44:10.70 -- User HUNTER is no longer observing you $% ___________________________ $ 2.3.2 Getting Help in SUPERVISOR= As noted above, the command key is used to_< display brief help on the SUPERVISOR commands. The= following example shows the menu that is displayed:_ $ SUPERVISE TXA3:X %SUPER-I-START, Supervisor enabled on _TXA3:, user JOE (observing, quiet)1 Type CTRL-D CTRL-H for information_  P %SUPER-I-HELP, Supervisor help. All commands are preceded by ^D.5 ^A - Toggle ADVISOR/OBSERVER mode_* ^H - Display this help2 ^N - Toggle notify/quiet modes7 ^T - Display monitoring status info+ ^V - Spawn a subprocessd5 ^W - Clear the supervising screenV3 ^X - Toggle XON/XOFF for target( ^Z - Exit Supervisor> Depending on the identifiers held by the supervising@ user, some of the options will not be displayed if the@ user does not have the privilege to issue the command.> For example, the user cannot toggle NOTIFY and QUIET@ modes unless he has the privilege to enter QUIET mode.< For more information on privileges, see Chapter 3.A 2-5u ' / Using SUPERVISOR to Monitor Terminalsd% ___________________________a2 2.3.3 Displaying Monitoring Status Information< The command key can be pressed to display? information about the monitoring status of the target : terminal. The information displayed includes the= target terminal, the username of the user logged inu; on the terminal (or the text ``logged out''), and < the current operating modes. For example, pressing< while in ADVISOR and QUIET modes1 will display a line like the following:uO %SUPER-I-MONINFO, Supervising _TXA3:, user JOE (advising, quiet) % ___________________________o) 2.3.4 Toggling NOTIFY and QUIET Modese: If the supervising user has the privilege to use@ SUPERVISOR in QUIET mode, the command key can@ be used to toggle NOTIFY and QUIET modes. For example,> if quiet mode is enabled, pressing ? will put SUPERVISOR in NOTIFY mode and a message willp; be broadcast to the target terminal. Pressing thea? keys again will put SUPERVISOR back in QUIET mode and > another message will be sent to the target terminal.7 The messages that are broadcast to the target_@ terminal are the same messages that are broadcast when@ SUPERVISOR is started and stopped. When NOTIFY mode is@ ]4yC SUPSER054.B2(1(&[HUNTER.SUPSER.V54C.B]SUPERVISOR.TXT;1X?{2 entered, it appears to the user at the target terminal= that the monitoring was just started. Similarly, if ; QUIET mode is re-enabled, the target user is told > that monitoring has been disabled. This is useful in< environments where SUPERVISOR is used for security> purposes. If the target user is suspected of being a> security risk, the terminal can be monitored without9 the user's knowledge. NOTIFY mode could then be@ entered at the supervisor's discretion to let the user/ know the terminal is being monitored._ 2-6   rA Using SUPERVISOR to Monitor TerminalsP= The following example shows the output displayed onn? the supervising terminal when NOTIFY mode is toggled:R! $ rE 8-MAY-1992 12:38:35.01 -- User HUNTER is advising your! $ O 8-MAY-1992 12:38:37.56 -- User HUNTER is no longer advising youy! $ O %SUPER-I-MONINFO, Supervising _TXA3:, user JOE (advising, quiet) @ Even though the target terminal was told that advising= had been terminated, SUPERVISOR is still monitoring,% the terminal in QUIET mode. % ___________________________ 1 2.3.5 Controlling Scrolling While Supervisinge> The key (or and ) can< be used to pause and resume scrolling of output on> the supervising terminal. Pressing has? no effect on the target terminal; the effect is local,+ only to the supervising terminal.8 The command key can be used to toggle; XON/XOFF for the target terminal. By pressing thes@ command key followed by , the supervising user< can simulate on the target terminal.; Note: There is no indication that the supervising_< process has pressed to affect an XOFF for> the target terminal. This can result in confusion if= not carefully exercised, as the target user may nota< know what has happened that caused output to stop.A 2-7   / Using SUPERVISOR to Monitor Terminals % ___________________________r# 2.3.6 Spawning a DCL Subprocess 9 The command key can be used to spawn a 7 subprocess while in SUPERVISOR. In SUPERVISORc< v5.4, most output received by SUPERVISOR while the> subprocess is active will be lost (it isn't buffered= properly). Still, this key can be useful to quicklyo7 drop into DCL without terminating SUPERVISOR. % ___________________________p) 2.3.7 Clearing the Supervising Screent9 While in SUPERVISOR, the supervising screen cann< be cleared by pressing the command key followed by@ . The target terminal's screen is not affected by this key.% ___________________________e7 2.3.8 Trapping Broadcast Messages While Supervisingi8 | By default, SUPERVISOR will trap any broadcast= | messages received by the supervising terminal whileI< | another terminal is being supervised. The messages; | are trapped so that the supervising screen is not @ | disrupted-a problem that is particularly annoying when= | supervising a user who is working in an editor, fore | example. |? | Any broadcast messages received are written to a filec; | so that they can be easily reviewed after exiting : | SUPERVISOR. The name of the message file created> | defaults to SUPERVISOR_BROADCASTS.LOG in the current? | directory. The name can be overridden by specifying ah, | value to the /BROADCAST qualifier: |7 | $ SUPERVISE TTA2:/BROADCAST=MESSAGES.LOGo |7 | Broadcast messages include such things as thew< | notification of new mail, operator messages, PHONE4 | notifications, and REPLYs to the terminal. 2-8  c uA Using SUPERVISOR to Monitor Terminals : | To disable the broadcast trapping, simply invoke5 | SUPERVISOR with the /NOBROADCAST qualifier.P% ___________________________v' 2.3.9 Different Terminal Page Sizes ? | When SUPERVISOR is started, it automatically comparesn: | the page size (the number of rows) of the target8 | terminal with the page size of the supervising: | terminal. If the page sizes differ, a warning is | displayed: | | $ SUPERVISE FTA3:X | %SUPER-W-DIFPAGE, terminal page sizes differ (Supervisor: 35, Target: 24)X | %SUPER-I-START, Supervisor enabled on _FTA3:, user JOE (observing, quiet)1 | Type CTRL-D CTRL-H for information  |? | Different page sizes are common in environments where_< | DECwindows/Motif is used. The different page sizes= | may cause screen-oriented applications displayed ona? | the target terminal to be improperly displayed on thes | supervising terminal. L __________________________________________________________________8 2.4 Sending an Input File to a Supervised Terminal9 SUPERVISOR can be used to execute input scriptsw; on target terminals (in ADVISOR mode). The /INPUTe< qualifier is used to specify the name of the input? file. The /ADVISE qualifier must also be specified toe; start SUPERVISOR in ADVISOR mode. SUPERVISOR wille: use the file as the source of a character stream< to send to the target terminal. The input file can> have any RMS format. The following example shows how> SUPERVISOR can send the contents of INPUT.TXT as the! input character stream:eA 2-9r P I/ Using SUPERVISOR to Monitor TerminalsR7 $ SUPERVISE/ADVISE/INPUT=INPUT.TXT TXA3:oW %SUPER-I-START, Supervisor enabled on _TXA3:, user JOE (advising, quiet)F0 %SUPER-I-EXIT, Supervisor exiting $; This powerful feature of SUPERVISOR is especially < useful for automating the process of exiting users; out of applications. For example, an editor couldd= be used to insert a (ASCII 26) into a file< called EXIT.TXT. The following commands would then< exit a user from a text editor or any program that uses to exit.< $ EXITEVE :== SUPERVISE/ADVISE/INPUT=EXIT.TXT $ EXITEVE TXA3:7 Normally, SUPERVISOR will exit as soon as the : specified input file has been sent to the target> terminal. To continue supervising the terminal after< the input file has been read, the /WATCH qualifier5 must also be specified on the command line:o= $ SUPERVISE TXA3:/ADVISE/INPUT=INPUT.TXT/WATCHS% ___________________________ * 2.4.1 Pausing Between Input Characters< Pauses between input commands can be created using; the pause-sequence characters ``!~^N2 SUPSER054.B2(1(&[HUNTER.SUPSER.V54C.B]SUPERVISOR.TXT;1X?{$A'' (exclamationo> point, tilde) in the SUPERVISOR input file. For each> pause-sequence read, SUPERVISOR will wait one second< before sending the next character. For example, if> the following lines were placed in an input file and? fed to SUPERVISOR, there would be a four-second pause_; between the SHOW USERS and SHOW DEFAULT commands:D SHOW USERS  !~!~!~!~u SHOW DEFAULTo 2-10 V RA Using SUPERVISOR to Monitor Terminalsi@ Using this feature, a special file can be created that< will log in a physical terminal on the system. The? ``auto-login'' file should contain the pause sequenceo> on the first line to simulate a user pressing return> on the terminal. Subsequent lines could then specify> the username, password, and any commands that are to= be executed. Additional pause sequences may need to> be included within the file to avoid overflowing the3 typeahead buffer for the target terminal.s9 Note: Extreme care should be taken when storing:@ passwords in text files. When using the ``auto-login''; feature, ensure that the input file is adequately @ protected so that the account login information is not compromised.> The following example shows a simple input file that? will log in a user, execute a couple of DCL commands,- and log out. !~n !~HUNTER !~!~MYPASSWORDn SHOW USERS/FULL SHOW TIME LOGOUTd: The /NOTIFY qualifier must not be specified when? using the ``auto-login'' feature. Also, remember thatA> /WATCH must be specified to continue supervising the? terminal after the input file has been processed. The @ following command shows how the input file above could be processed:t7 $ SUPERVISE TXA3:/ADVISE/INPUT=login.txt,A 2-11G n h/ Using SUPERVISOR to Monitor Terminalsa% ____________________________* 2.4.2 Using PHOTO Input Logs for Input= A PHOTO log file may be used as an SUPERVISOR inputS: file if PHOTO/INPUT was specified when recording< the terminal session. PHOTO/INPUT records only the9 characters input during the session and creates : a special log file that is suitable for input to SUPERVISOR.u< When processing a PHOTO/INPUT log file, the /PHOTO@ qualifier must be given on the SUPERVISE command line:= $ SUPERVISE/ADVISE/INPUT=PHOTO.LOG/PHOTO TXA3:; The /PHOTO qualifier must be used with the /INPUT  qualifier.L __________________________________________________________________2 2.5 Displaying the SUPERVISOR Version Number> The command SUPERVISE/VERSION can be used to display+ | the version number of SUPERVISOR:e |" | $ SUPERVISE/VERSIONC | %SUPER-I-VERSION, SUPERVISOR V5.4 linked 5-OCT-1992  | $ 2-12  A _______________________________________________________a/ 3 SUPERVISOR Privileges and Identifiers ? This chapter explains how SUPERVISOR determines which29 users can monitor terminals and to what degree.s< The security system used by SUPERVISOR is based on: the rights identifiers held by the running user.; The SUPERVISOR image is (normally) installed with : all of the privileges needed to run the program.9 SUPERVISOR checks to see if the users holds any 8 SUPERVISOR identifiers and sets up an internal@ privilege mask based on the presence or absence of the> identifiers. The system manager can grant and revoke> the identifiers as necessary to provide and/or limit? access to SUPERVISOR. The following sections describeo< the identifiers used by SUPERVISOR and the steps a> manager should take to create, grant, and revoke the identifiers.< Note: The rights identifiers checked by SUPERVISOR> are those returned by the $FIND_HELD system service.> Unlike VMS privileges, when an identifier is granted; to or revoked from a user, the user does not havec= to log out and back in again for the change to takec effect. ? Note: Because rights identifiers are granted to UICs, ; not usernames, using the DCL command SET UIC willE< prevent you from running SUPERVISOR if the new UIC/ does not hold the SUPSER identifiers.gA 3-1a e / SUPERVISOR Privileges and Identifiers L __________________________________________________________________$ 3.1 The SUPERVISOR Identifiers9 There are seven identifiers used by SUPERVISOR.P6 Table 3-1 provides brief descriptions of the9 identifiers. The following sections discuss the % identifiers in more detail.eA Table_3-1__SUPERVISOR_Rights_Identifiers_______________ A Identifier____________Description______________________g= SUPSER_ADVISE Holder can observe and advise_= SUPSER_OBSERVE Holder can observe a terminals0 (but not advise)@ SUPSER_ADVISE_GROUP Holder can advise another member5 in the same UIC groupd: SUPSER_OBSERVE_GROUP Holder can observe another< member in the same UIC group; SUPSER_QUIET Holder can enter QUIET mode = SUPSER_LOGGED_OUT Holder can monitor logged-out ) terminals > SUPSER_NO_SUPERVISE Holder cannot be supervised byA ______________________another_user_____________________T% ___________________________ & 3.1.1 The SUPSER_ADVISE Identifier< The SUPSER_ADVISE identifier grants the holder the? ability to both observe and advise a target terminal.g@ The supervisor can toggle between OBSERVER and ADVISOR> modes while running SUPERVISOR. Logged-out terminals< cannot be monitored unless the user also holds the' SUPSER_LOGGED_OUT identifier.p 3-2   mA SUPERVISOR Privileges and Identifiers 7 Any user holding the SUPSER_ADVISE identifier9 is automatically granted the ability to observe.: terminals. It is not necessary to also grant the; SUPSER_OBSERVE identifier to that user (though ito* doesn't hurt anything to do so).% ___________________________t' 3.1.2 The SUPSER_OBSERVE Identifiero= The SUPSER_OBSERVE identifier grants the holder theo> ability to observe a target terminal. A user holding; only SUPSER_OBSERVE cannot advise any other user.r< Logged-out terminals cannot be observed unless the; user also holds the SUPSER_LOGGED_OUT identifier.r? Users ho_' SUPSER054.B2(1(&[HUNTER.SUPSER.V54C.B]SUPERVISOR.TXT;1X?{Plding only SUPSER_OBSERVE are restricted fromL? toggling OBSERVER and ADVISOR modes and from togglingn/ XON and XOFF for the target terminal.-% ___________________________v, 3.1.3 The SUPSER_ADVISE_GROUP Identifier> The SUPSER_ADVISE_GROUP identifier grants the holder> the ability to observe and advise any logged-in user< whose UIC is in the same group as the holder. This= identifier is useful when members of the same group 9 should be allowed to advise each other, without 8 granting them the ability to advise all users.8 Because a user must be logged in to the target9 terminal in order for the UIC check to be made,I> holders of this identifier should not be granted the; SUPSER_LOGGED_OUT identifier. A user holding botht= would be able to monitor a physical terminal acrossr@ logins, which could result in the monitoring of a user> outside the group, since the UIC group check is only0 made when SUPERVISOR is first started.A 3-3a t e/ SUPERVISOR Privileges and Identifierse% ___________________________s- 3.1.4 The SUPSER_OBSERVE_GROUP Identifier ? The SUPSER_OBSERVE_GROUP identifier grants the holderu= the ability to observe any logged-in user whose UIC = is in the same group as the holder. This identifier < is useful when members of the same group should be> allowed to observe each other, without granting them+ the ability to observe all users.R8 Because a user must be logged in to the target9 terminal in order for the UIC check to be made, > holders of this identifier should not be granted the; SUPSER_LOGGED_OUT identifier. A user holding bothr= would be able to monitor a physical terminal across@ logins, which could result in the monitoring of a user> outside the group, since the UIC group check is only0 made when SUPERVISOR is first started.% ___________________________t* 3.1.5 The SUPSER_LOGGED_OUT Identifier@ The SUPSER_LOGGED_OUT identifier grants the holder the? privilege to observe or advise a logged-out terminal._< It should be granted in tandem with either SUPSER_: OBSERVE or SUPSER_ADVISE. Both SUPSER_ADVISE and; SUPSER_LOGGED_OUT are required for a user running ; SUPERVISOR to log in a target terminal. This alsoO7 applies to a user wishing to process an inputl; file that logs into an account on a terminal (seem, Section 2.4 for more information).< When a user logged in to a monitored terminal logs< out, SUPERVISOR will automatically exit unless the: user holds the SUPSER_LOGGED_OUT identifier. The= following messages are displayed on the supervisingi) terminal when SUPERVISOR exits: 0 %SUPER-I-EXIT, Supervisor exitingT %SUPER-E-NOLOGOUTPRIV, no privilege to supervise logged out terminals $ 3-4   A SUPERVISOR Privileges and Identifiers % ___________________________ % 3.1.6 The SUPSER_QUIET IdentifierE9 The SUPSER_QUIET identifier lets the holder run_8 SUPERVISOR in QUIET mode, which suppresses the: notification messages that can be broadcast to a< target terminal. SUPSER_QUIET should be granted on: a very limited basis to prevent the unauthorized monitoring of users.< SUPERVISOR starts in QUIET mode unless the /NOTIFY< qualifier is given on the command line. A user who? does not hold SUPSER_QUIET will receive the following7 message if SUPERVISOR is run without /NOTIFY:h $ SUPERVISE TXA3:U %SUPER-E-NOQUIETPRIV, no privilege to suppress monitoring notificationR $; QUIET mode was chosen as the default startup mode 8 because many sites use SUPERVISOR for security; purposes. If the default was /NOTIFY, a suspected > user would accidentally be notified that he is being@ monitored if the supervising user neglected to specify /NONOTIFY.L __________________________________________________________________ 3.2 Blocking SUPERVISORt= It is often desirable to be able to prevent anothern@ user from running SUPERVISOR to monitor some accounts.7 For example, most system managers do not want ; operators to be able to monitor them, though they = may be able to monitor other users. When SUPERVISOR < is started, it checks to see if the user logged in= on the target terminal holds the identifier SUPSER_ > NO_SUPERVISE. If so, the ``no privilege'' message is) displayed and SUPERVISOR exits.A 3-5  | o/ SUPERVISOR Privileges and Identifiers @ There is only one exception made by SUPERVISOR. A user< holding both SUPSER_NO_SUPERVISE and SUPSER_ADVISE> or SUPSER_OBSERVE is allowed to monitor any terminal; logged in under that same UIC. This allows systema= managers to block all users from running SUPERVISOR @ on their terminals while still allowing themselves the0 ability to affect their own terminals.@ Once again, care should be taken if the SUPSER_LOGGED_< OUT identifier is held by users. Because the check? for identifiers is only done when SUPERVISOR is first ? started, a user with SUPSER_LOGGED_OUT could still bet= monitoring the terminal when a SUPSER_NO_xxxxx user| logs in.L __________________________________________________________________) 3.3 Creating SUPERVISOR Identifiers > Rights identifiers are created using the VMS utility< AUTHORIZE. For information using AUTHORIZE, please4 consult the VMS manual, AUTHORIZE Utility.> The SUPERVISOR identifiers can be created during the= installation of the Supervisor Series. If they were_@ not created then, the AUTHORIZE command ADD/IDENTIFIER; can be used to create them. The following example > shows how SUPSER_ADVISE and SUPSER_LOGGED_OUT can be created:0 UAF> ADD/IDENTIFIER SUPSER_ADVISES Identifier SUPSER_ADVISE value: %X8001015D added to rights data bases4 UAF> ADD/IDENTIFIER SUPSER_LOGGED_OUTW Identifier SUPSER_LOGGED_OUT value: %X8001015E added to rights data base  UAF>e; The actual values assigned to the identifiers arer7 irrelevant as far as SUPERVISOR is concerned.R 3-6s  UA SUPERVISOR Privileges and Identifiers L __________________________________________________________________: 3.4 Granting and Revoking the SUPERVISOR Identifiers5 The AUTHORIZE commands GRANT/IDENTIFIER and-8 REVOKE/IDENTIFIER are used to grant and revoke> identifiers to and from users. The following example; shows how a user is granted the SUPSER_ADVISE andO`b SUPSER054.B2(1(&[HUNTER.SUPSER.V54C.B]SUPERVISOR.TXT;1X?{_( SUPSER_LOGGED_OUT identifiers:1 UAF> GRANT/ID SUPSER_ADVISE HUNTERf9 Identifier SUPSER_ADVISE granted to HUNTERu5 UAF> GRANT/ID SUPSER_LOGGED_OUT HUNTER = Identifier SUPSER_LOGGED_OUT granted to HUNTER  UAF>t2 Similarly, identifiers are revoked using REVOKE/IDENTIFIER:2 UAF> REVOKE/ID SUPSER_ADVISE HUNTER; Identifier SUPSER_ADVISE revoked from HUNTER  UAF>A 3-7  m lA _______________________________________________________ % Part II: Command Dictionarye> This section provides a VMS-style description of the SUPERVISE command. _ _A SUPERVISEsA _______________________________________________________e SUPERVISEl9 Invokes the SUPERVISOR utility to ``take over''o9 another user's terminal. SUPERVISOR operates in < two modes: OBSERVER and ADVISOR. In OBSERVER mode,= all characters displayed on the target terminal areu> echoed on the supervising terminal. In ADVISOR mode,= SUPERVISOR also lets the supervising terminal enter ; input on behalf of the target process; characters!? input from the supervising terminal are inserted into6 the typeahead buffer of the target terminal.@ SUPERVISOR can also be used to execute commands stored? in input files on other terminals, providing a usefuls8 mechanism for automating simulated user input.A _______________________________________________________e FORMAT+ SUPERVISE [/qualifiers] terminalnA _______________________________________________________ ) Command Qualifiers Defaults * /ADVISE /NOADVISE+ | /BROADCAST /BROADCAST / /BUFFER_SIZE=pages /BUFFER_SIZE=25 /COMMAND_CHARACTER=numb/COMMAND_CHARACTER=4r /INPUT* /NOTIFY /NONOTIFY /PHOTO /WATCH /VERSIONA Commands-3  n  SUPERVISEA _______________________________________________________  PARAMETERS terminal5 Specifies the target terminal that is to be!@ supervised. The target terminal cannot be an RT device! (SET HOST over DECnet). A _______________________________________________________l QUALIFIERS /ADVISE @ Specifies that SUPERVISOR should start in ADVISOR mode> instead of OBSERVER mode. ADVISOR mode lets the user7 enter input on behalf of the target terminal. : The supervising user must hold the SUPSER_ADVISE< identifier (or SUPSER_ADVISE_GROUP) to specify the /ADVISE qualifier. /BROADCAST[=filename] ; | Specifies that SUPERVISOR will trap any broadcast > | messages received and write them to an external file; | for later viewing. By default, broadcast messagesp: | (new mail notification, operator messages, etc.)> | are trapped and written to SUPERVISOR_BROADCASTS.LOG; | in the current default directory. The name of they; | messages file can be overridden by specifying thee0 | desired name as a value to /BROADCAST. |> | To disable broadcast trapping, specify /NOBROADCAST. /BUFFER_SIZE=pages< Specifies the number of pages to use for buffering@ while supervising. By default, 2 pages are used. Up to@ 10 pages may be specified. Additional pages are useful@ on heavily-loaded systems where SUPERVISOR misses some data._" /COMMAND_CHARACTER=value; Specifies the ASCII value of the character to useV9 as the SUPERVISOR command key. Values between 0u= and 31 are valid, except 17, 19, and 26. This rangeI Commands-4 - SA SUPERVISE= includes all of the -key combinations, except_@ , , and . The default value is 4 ().i= To change the command character, simply specify thet< ASCII value of the desired character. For example,9 /COMMAND_CHARACTER=18 specifies as theV command character.8 All SUPERVISOR commands are two-key sequences,: prefaced by the specified command character. For7 example, by default, the combination ? will display brief help while in SUPERVISOR.E; Table Commands-1 shows the SUPERVISOR command keyg sequences.7 Note: Selecting a command key that is already < implemented as a command function will effectively> disable that option. For example, selecting = as the command key will disable the ability to showd? on-line help, since pressing the command key twice inc= a row will send that character (ASCII 8) through to  the target terminal. /INPUT; Specifies the name of an input file that containsc? input characters that are to be entered on the targetd@ terminal. SUPERVISOR will read the characters from the> input file and place them in the typeahead buffer of> the target terminal; VMS processes the characters as8 if they had been typed at the target terminal.> Because SUPERVISOR normally starts in OBSERVER mode,@ the /ADVISE qualifier must be specified on the command@ line for the /INPUT file to have any effect. The input' file can have any RMS format. 8 PHOTO input logs, created with the PHOTO/INPUT< command, can be used as input files to SUPERVISOR.: Because PHOTO input logs are not normal RMS text< files, the /PHOTO qualifier must be specified withA Commands-5i s i SUPERVISE > /INPUT to tell SUPERVISOR to expect the PHOTO input- log format._ /NOTIFYd? Broadcasts a message to the target terminal notifying 9 the target user that he is being supervised. By > default, SUPERVISOR will start in quiet mode, if the= user has the privilege to suppress notification. IfS? the user does not have the privilege, /NOTIFY must be ( specified to begin SUPERVISOR. /PHOTO= Specifies that the input file (/INPUT=filename) was @ created using the PHOTO/INPUT command. PHOTO input log? files are created in a special ``binary'' format; theU? SUPERVISOR qualifier /PHOTO is required to tell PHOTO to expect that format. /WATCH? Specifies that SUPERVISOR should continue supervisinge@ the terminal after the /INPUT file has been processed.= Normally SUPERVISOR terminates after processing the  input file.r /VERSION@ Displays the version of SUPERVISOR currently installed on the sysa# SUPSER054.B2(1(&[HUNTER.SUPSER.V54C.B]SUPERVISOR.TXT;1X?{Bjntem.A _______________________________________________________n DESCRIPTIONt= When SUPERVISOR is executed without any qualifiers,l< it connects the supervising terminal to the target; terminal and enters OBSERVER mode. All charactersi? typed and displayed on the target terminal are echoedE? on the supervising terminal. If the SUPERVISOR entersi? ADVISOR mode, any characters typed at the supervisingg9 terminal (except the command key sequences) are(: inserted into the typeahead buffer of the target< terminal. VMS treats the characters as coming from the target terminal. Commands-6 e rA SUPERVISE ? Input logs created by PHOTO/INPUT can also be used asr input to SUPERVISOR.? All SUPERVISOR commands are preceded by the characterS8 specified on the command line as the /COMMAND_9 CHARACTER. By default, the command character isS> . Pressing the command character twice while; in ADVISOR mode will force that character through_< to the target terminal. Table Commands-1 shows the+ SUPERVISOR command key sequences.aA Table_Commands-1__SUPERVISOR_Commands__________________dA Key_________Description________________________________s9 Toggle between OBSERVER and ADVISORu modes.[1]o@ Display brief help on SUPERVISOR commands.7 Toggle NOTIFY and QUIET modes.[2]e< Display monitoring status information.- Spawn a subprocess. [3]i2 Clear the supervising screen@ Used as a key for the target" terminal.[1]% Exit Supervisor A _______________________________________________________o< [1]Valid only if the user holds either the SUPSER_7 ADVISE or the SUPSER_ADVISE_GROUP identifier. : [2]Valid only if the user holds the SUPSER_QUIET identifier.> [3]Terminal output that arrives while in the spawned= process is not buffered properly in this version ofe SUPERVISOR.eA _______________________________________________________A Commands-7   u SUPERVISE A _______________________________________________________a restrictions< o RT devices (network terminals logged in via SET4 HOST over DECnet) cannot be supervised.> o WT devices (UIS VT100 pseudo-terminals) cannot be supervised.8 o VAX 6xxx-series console terminals cannot be2 advised, though they can be observed.@ o SUPERVISOR is not compatible with the following DEC> products: Session Support Utility (SSU), DEC/Test> Manager, ACMS, and the Terminal Fallback Facility (TFF)._ Commands-8  P _________________________________________________________________ Index. _______________________________M B SUPERVISE commandoCommands-3 @ _______________________________ to Commands-8I Broadcast messages DescriptionoCommands-6aD trappingo2-8 FormatoCommands-3G ParameteroCommands-3H _______________________________ QualifiersoCommands-4J I RestrictionsoCommands-8F _______________________________ Special characterso? Identifierso3-2 Commands-7iN Creatingo3-6 SUPERVISORo1-1 to 1-3, 2-1 to7 Grantingo3-7 2-12iI Revokingo3-7 Broadcast messageso2-8 J SUPSER_ADVISEo3-2 Clearing the screeno2-8J SUPSER_ADVISE_GROUPo3-3 Displaying versiono2-12? SUPSER_LOGGED_OUTo3-4 Featureso1-1 ; SUPSER_NO_SUPERVISEo3-5 Helpo2-5aB SUPSER_OBSERVEo3-3 Input fileso2-9L SUPSER_OBSERVE_GROUPo3-4 Auto-login scriptso2-11A SUPSER_QUIETo3-5 Pausingo2-10tJ Input fileso2-9 Using PHOTO logso2-12K Auto-login scriptso2-11 Logged-out terminalso2-3oO Pausingo2-10 Notification broadcastso2-2, 8 PHOTO log fileso2-12 2-5A Privilegeso3-1$@ _______________________________ Scrollingo2-7? M Securityo3-1 L _______________________________ Spawning a subprocesso2-8? Modes Startingo2-2sI ADVISORo1-1 Status informationo2-6_? Notifyo2-1, 2-6 Stoppingo2-4J OBSERVERo1-1 Terminal page sizeso2-9L Quieto2-1, 2-6, 3-5 Toggling notificationo2-6P _______________________________ _______________________________2 P TP _______________________________ _______________________________: PHOTOo1-2 TerminalsF Input logs for SUPERVISORo Logged-outo2-3, 3-4@ 2-12, Commands-5 Supportedo2-3N Logging SUPERVISOR sessionso Unsupportedo2-3, Commands-8 1-3. _______________________________ S. _______________________________ Securityo3-1RP Index-1; logged in under that same UIC. This allows systema= managers to block all users fr-*[HUNTER.SUPSER.V54C.B]SUPSER.DECW$BOOKSHELF;1+, ./ 47-1(0123KPWO56܂7`o89GHJ7BOOK\install_guide\Supervisor Series Installation Guide*BOOK\supervisor\SUPERVISOR Reference Guide BOOK\photo\PHOTO Reference GuidebBU SUPSER054.B3(1(%[HUNTER.SUPSER.V54C.B]SUPERVISOR.PS;1i8zZ85L=ah>M !jFcw<^IQRJjh4_\&COWg17Y( k09J>?Ih]*HSa5@B6Jkp$w}8^*Y`_ p_b"cxD_w80hzQGXWqZWor(gLM OST]0IspdH[X/&gmJ)X-pM}JSF+ ' +oj@~RT9}vtg>iow*|CKH8^j+qWO]576xcPT8:J.Xp,ttcXc|l jW?J"c.k,XiJI(v 4F']`H YM@aiD*"RF20B>G_OWmfVQcj,Do.bDVN ZM~d44MKb4.NdvQVxOIv y$03!h (L=Co~1TSjv +oYUvVN< ZyOzL9IW[.ILmmzm6!p9oq'0rxp@T-=a&9*J-^Ggv|n h"WhG37[tP@ZLqMNX z IljjY}H/pwJ8#_JM$``qfx4! ~"Q#S9#mB*[OE1liYTWE Jq; Tqf4"K[Te/o&/q:lW| \NPe3(\?k\Bw;QM9@l{z.lG mJfBs1 \G `x gHMh ]l S:lcNNmg'>MO9 s}gA g]ww4-smQ&7}^[ Ba^FFiF3\i&~B]D*v*]]E^Cm o~WYY%.>{Cq[Gv0yg3Obs)Iqy^tTYs6Xl.S8rumpem)FSA5?~?uAtgWK?bmz#98~yKuw8*Y9oG 5}xVKwa``_oc^1 S5R!k'y4Eg! B68!G=pb6CAd'{j"llo&l -3}F2D"V 4 `c4(]w*$o&Ped|+K4"GR 46M56DoT370E!;Jk dp/ .C kFsyJ[>+."A.3&^PD{TUk ) 64uxqrZ'bbNf iQ[/]WMv 4!AsW>[|GUWNV'$ ,}M+ %:/IC]]]G9g@Rs"MiBx;PV/9

]i;w:pk;oKlqB#t|c>p?<LJk/oDB0?N bi/}bhe($&'Y6m#).#?})c?"NNUh37#1v7C ' +#[Qc{M!^r >-i,kOX~q!mx1;7Tp4B= |ql3v]$Dd00ha75pN|D\`&xt, |*m)&vqu\6e?6c`? f.nPlZ GX!oCT /:9M#(4m b5SvMP8)fpeN1{[}oN[ )[O*'V`@"Ja DG=' ]Up^;sTNZFXShwdWC"?K.sT\##H|y4|*%`'v"_ k_r~ki3E/ABS iCH;pV1Z6e(l|)=K07xJ,x9Ikc`~akBI 0'=Md>LAcQiG]w/sU!H;}`76Ru,2'}, 7Fbokg `2QQu\_TTQ!dy%0V =54~[lilFyyz6w66\HY!1:q''{ 6F^;!Y&1'c^vYGo1T6k(({a &|'}3&=& Uq|DDWPyLi3g$^r,pO*7;@49C` dm~n/L73rMQ^;u &-&f`:>,RX ][*9f(.+"-e&t9eFO%3vT@=<\t8##6!<kkaK-=HgT` |Qo\-`|0%< kumU-lE/"cv@DOqVy10K;T&AEg-fJ[?}*)0Jj(OQiP}x13Dbh@u+9"Ql]6B=imEDj%% DAR>[(}q%d_W)dMu:gH(RDom?K&8LtoB?TgKpsyf_w3dsmX1dY3b{q$Q#Zn+N9zw:!L:Rg@y!cZ&2UW Ed=aL HdBk <Uh14Ni@^9UcKhSw&z0 {XFXJ l<] Qs>|Z[rXtk9A\)qptAi CQcm5oBE1;D m(_`: Z6PF{i~3L;c G x((wIt@NIjpxo^4S<^@Z!=0vu'[T+&E?gJ^$ltkB]sq/}^&s|tNo()kpN9wuK\!6e^aw2%v L>3Xuseco2L`y+QFH,N7EE_O.w:c.2h% :%2mv. $wXRs=*kGb i|qc<|#@df]qRQ= P;2|h0w8O~fOMH(tA#_r|bcl\YW-PqJZS1a`ejBQ B_!G]J<#, 'ul^Yaapvli #(mk WL&Kg3R><7%4@]cu%zc h>yn/~|eglULa,sp8xWw ")_>dIkN,`f /%+~N&:c :iPUv@J_V\Hdd4 @aCBU]jiQ9"?#8uG96S23 JJ\ M\$L=j9]r0y!?<I 2JWMLXo:.cV/qtUWRT]eg]q5S?c7R4&95GNYW)57991~SV -eSQU` MW74OYSO7$)STo16{>*['@@=gc+j>|tuLw\0 F#cT  yQr ^_)Vre;c6Wd{#p`ORnxa0,Uqm@{D0, */4%sdra$$?GM8J$a?4"dVR} |~"&}?$ 6QYHWoZOuYIfHUKqf@r;%l$6H?-kQ:&5="V%lfq`4G>q-S}pg2 17rR9p3kp%uy CV+uvCb;@!h-nfVWJlK~a1ZW# R4B<C9y]@g'4t}1.69xxNkrEm*ib"`?V ljqB.Hk,m8gidE?1xwGDYKc?g!vG6\:5_LiP=d,Iorw(8PUdH{=N b_bg`XE=AGg`1 Flc=UT i H@=,|/!lb~0T)]}3 KIC)sk\A3%E m-.nYCLZ\8'"sM>wxi=`~kuPwlBA )' bsRZ0z8,mGh/%r6TN,<q-V` VH%P>Z#_r}/>~`xl*QLDN>#x4$6 >!"Hsl?_B@; +lknp+f(5f_g6)z5X>RM,S|Ni$(dC1t@W| 8p @z>L SnNIq 0>}OQ$w LR8'U5dRLNS BgD[2-*>GxIv>G#{=laip8{)6-@]:[h9^NG UNu'BNUj4C c57gezC:_Al*sC8B]nG tXKQ"SZqAd_@^\) G*TQ,,j9k~acp3:~`9$:p3drs =%y/GK+ j(")=J|p%0LxuM xyj]i4eM 5$"a .:w= 9l,r4.ren\ #fRJecN,{ " yx`!28|t RP.A$(`Y\rj,[9g=%3ykIX wQL6t&*[}W>G"%Q_w(5i6?pK(^ B]Y;!Hnlb d:klXH/Hj`zq9k$FvJL0eZLL_FBI.;3ggp"n9TgAI4.{C dY?8"f4`&I:@%rD^tYUB.,dQq{?Ihv|]$7~<}OX>"fK,s4' Mv>e)-{^BmZn,Z$/sp1%RT AK[D|"YZD@qtz%Ze~1=njx # j69[.sj@/z]K)B3MP.~ wm?K@Q^>7TiG>{ !4C/}z[^% qs"l-AFOpcd$iZybP~'D.h|4/A>t>>) NDrSm_  :p'Zn6Bd69he<*(CZd=W`ET'e7 Ah)E&'1 &)+1k-(ez0l?KEb.4'ws3]^?"(|"<|:UcG vc{eqQ+7r]nl~ZrUIKk? &[ot7 Yh6"*zhHBpo~KT ,"cP]CP $F(RTG *f0]()It" *AytQ%waE"Y"PJ~Q_@I; JV/1=r$11!Lr+L@W=;4W_ t ~3|.aU36v[L_>9)-VrVi&l '->kI 3[(2u^z>;V QGFMq?zG䀡o,"5<*F[".Rt\.SaTfe$V1xg[RRTuF"].Y,"A]|OU70nct'V; YN.JBO2S2SE\,NWNXQTZU*$J!%Q`W FqloS`Dl$@`GebyLFJS[4\; jq4B2l2Ano_xdy}buor~KTvQMKkB3RYypeU9@'k0z<(B3u=SFB_Q&~6\SuuNdMAB^z_UAioTYjYS5 5@D0<D_S]mGc3Z|FHZl)46T:{)>eU;xvV[c2-=Y U:K..wh[RT|r6tAZP{tv]  aGjE/CscZ@y*2,FCQpJ&`:*= JqXM=r4.um,40t{2kp0>@u B`vh5o:kdVJ/emG&"#LH!L)y4qsknq12nk&YMyoY9J1!# eQn4nqh^)I_.2"%aKU?&OUY `Ls4P7UU,.0wd?rs"hRwLlU]\Wz{eSJU_ >[j,7?_a-0"J Wy_x%m~='05~,t$x; KW[78w[-w40rD|: ^4PD:Zi=dv}3dx&,A gH/gNFI~Fd':u XSPtg>\+y!7 FZ"'Ti _ Tn7u>7h[W^U CUnK"a|J.vVG@XCK}3&3q{˿IzZX|G 24r=CF ~+TDCLacYAj0;^-ef+GNeJ;( ,^3 1GTeVHg,p#?- G1.ig\],:f ~aZA-KK8+mEpn:u99b 'YLBtHa. qL'&|20D5QTX b{8,#T=~d U''B_8OXN0EW$j. L,tCKIDpJ&smnF*4h* qCK&yM[N(x3HѬiry7(pbc?Y?@Rr:C*UbL|>[4QR- W:1/pml[~N&oTv[M5Ocz_ BniJ0VPG[{bH K6e<4-r^?#WOUXPrW[(9gO]Am3r{QMlcqNu:hG%23CXE`BC52'*3gCc4~+VP [{O4{YBl{/K&~+NWGmB8qs=T`q><SNQP! )).jGMNwOK(GUL]TQ ejS 1|60r v!:H^fESVM Cg[wdcab &_vO|$|fC- ,m!ZQR.Uc^ |H-j'=N.<}a'jW Op 5x( maJ QP}3Oe|DP_p<Jmp=Y)PWs9 %W E+sei9=D HIg7N9[rQ&B::Ri%bpg$6P- 6Fp5ki3NO72#^PK 5=t1@ @ supser054.cIMVMSVV7.1IM%VFABPBE m!ЦIMVFHC,A;RdCIM*VDAT,%:Դq9Ҽt@IMVPROX'b1@0IMVRDTR.V5=R:RP SUPSER054.C4 SUPSER054.C2BACKUP/INTER/BLOCK=8192 [.C]*.* []SUPSER054.C/SAVE GOATHUNTER l'4V1.5 _ALPHA::  _ALPHA$DKB100: V1.5  &*[HUNTER.SUPSER.V54C.C]ADVISORMAR.MAR;1+,!./ 4QT- 0123KPWO56g#or7x2䵖89GHJ .TITLE advsor code for spying .IDENT /01-002/ ;2;Q; Copyright 1992, 1993 by Hunter Goatley. All rights reserved. Permission ;2K; is given to freely distribute and modify this software for no commercial5; gain as long as this copyright notice is retained.;;++;; Facility: Supervisor Series;; Module: ADVISORMAR;$; Author: Bob Pasker ;2;; Date: July 12, 1984.;A; Abstract: This module contains the routines called to insert a0; character into a terminal's typeahead buffer.;7; Maintainer: Hunter Goatley, goathunter@WKUVX1.BITNET; Western Kentucky University;;; Modified by:;5; 01-002 Hunter Goatley 25-JAN-1993 07:50 ;2A; Fixed incorrect error check in LOCATE_UCB that would ;2:; crash the system if the device wasn't found. ;2; ;2+; 01-001 Hunter Goatley 6-APR-1992 11:15; Cleaned up code some.;9; Removed old modification history to start with a clean ; slate.;;-- ;.show expansions!; $debug$ = 1 ; enable messages .LIBRARY /SYS$LIBRARY:LIB.MLB/ $DYNDEF $PRDEF $IPLDEF $UCBDEF $TTYDEF $TTYDEFS $TTYMACSSTART_LOCK: .BLKB 0RANGE: .LONG START_LOCK .LONG END_LOCK .MACRO ON_ERR ERRLAB,?L1 BLBS R0,L1 BRW ERRLAB L1: .ENDM ON_ERR;; this is jammer central;; calling sequence:.; sts = advisor ([%descriptor term_to_advise],; [%referece handle],; %descriptor buffer); .MACRO DSC NAM,MSG,?L1,?L2NAM: .LONG L2-L1 .ADDRESS L1L1: .ASCII MSGL2: .ENDMTT_DESC = 4 ; setup offsets... UCB_ADDR = 8 ; into argument...BUFFER = 12 ; block.?RET_SIZE = 16 ; address of where to return size of actual xfer1LOCKED: .BYTE 0 ; own storage for code lock code=ACTUAL_SIZE: .LONG 0 ; own storage for the # of bytes xferred.SHOW EXPANSIONS) DSC ON_MSG, <'stuffing start. r0 = !XL'>* dsc off_msg, <'stuffing end. r0 = !XL'>+ dsc find_msg, <'locating ucb. r0 = !XL'>$ dsc size_msg, <'actual size = !XL'>/ dsc k_mode_on, <'going into k-mode. r0 = !XL'>4 dsc k_mode_off, <'returning from k_mode. r0 = !XL'>.NOSHOW EXPANSIONSRZEROCOPY: .LONG 0MSG_BUF_SIZ = 100MSG_BUF: .BLKB MSG_BUF_SIZMSG_DSC: .LONG MSG_BUF_SIZ .ADDRESS MSG_BUF .MACRO DO_MSG WHICH,?L1,?L2 .IF DEFINED $DEBUG$); this macro must not destroy any reggies MOVL R0,RZEROCOPY ; save r0 $FAO_S CTRSTR = WHICH,- OUTLEN = MSG_DSC,- OUTBUF = MSG_DSC,- P1 = RZEROCOPY BLBC R0,L1 ; ok then branch PUSHAB MSG_DSC CALLS #1,G^LIB$PUT_OUTPUT BLBS R0,L2L1: PUSHL R0 ; send value* CALLS #1,G^LIB$SIGNAL ; signal the error RET-L2: MOVL #MSG_BUF_SIZ,MSG_DSC ; restore size MOVL RZEROCOPY,R0 ; restore  .ENDC .ENDM ;3 .ENTRY ADVISOR,^M DO_MSG ON_MSG@ MOVAB G^LIB$SIG_TO_RET,(FP) ; if error signalled, return a code;"; do initialization if first time.;$ BBSS #0,LOCKED,10$ ; check low bit $LCKPAG_S- INADR=RANGE ON_ERR 40$ ; Branch on error;; lock the buffer in memory;& 10$: CMPB #3,(AP) ; check # of args BEQL 20$4 TSTL @RET_SIZE(AP) ; make sure return addr is good5 20$: MOVL BUFFER(AP),R0 ; get address of descriptor& MOVL 4(R0),RANGE ; setup low address3 MOVZWL (R0),RANGE+4 ; setup count of high address& ADDL2 4(R0),RANGE+4 ; add in address3 INCL RANGE+4 ; and an extra one for good measure% $LCKPAG_S INADR=RANGE ; lock them up ON_ERR 40$ ; Branch on error;,; check to see if a terminal name was passed;- TSTL TT_DESC(AP) ; is there a new terminal? BEQL 30$ ; no, ignore tt_desc DO_MSG FIND_MSG4 $CMKRNL_S - ; Go to kernel mode to locate the UCB ROUTIN=LOCATE_UCB,- ; ..., ARGLST=(AP) ; ... Use same argument list ON_ERR 40$;B; we now have the address of the ucb to be jammed in @ucb_addr(ap); and the buffer in buffer(r2); 30$: DO_MSG K_MODE_ON, $CMKRNL_S - ; Go to kernel mode to jam it ROUTIN=JAM_HIM,- ; ..., ARGLST=(AP) ; ... Use same argument list DO_MSG K_MODE_OFF" CMPB #3,(AP) ; check # of args BEQLU 40$8 MOVL W^ACTUAL_SIZE,@RET_SIZE(AP) ; return size to user 40$: DO_MSG OFF_MSG PUSHL R0 MOVL ACTUAL_SIZE,R0 DO_MSG SIZE_MSG POPL R0 RET ;; locate the ucb:; tt_desc(ap) = descriptor of the terminal to be looked up6; ucb_addr(ap) = address of where to put ucb addr here; buffer(ap) = ignored here;6 .ENTRY LOCATE_UCB,^M; JSB G^INI$BRK ;; MFPR #PR$_IPL,-(SP) ; Save the IPL (which is 0) ;20 MOVL G^CTL$GL_PCB,R4 ; setup pcb address in r4& JSB G^SCH$IOLOCKR ; lock io database4 MOVL TT_DESC(AP),R1 ; setup r1 as input descriptor> CLRL @UCB_ADDR(AP) ; Assume error and clear UCB address ;2' JSB G^IOC$SEARCHDEV ; find the device BLBC R0,10$ ; done if bad4 MOVL R1,@UCB_ADDR(AP) ; else stash ucb address away- 10$: PUSHL R0 ; Save the status ;2& JSB G^SCH$IOUNLOCK ; unlock database* POPL R0 ; Restore the status ;20 MTPR (SP)+,#PR$_IPL ; set ipl back to original RET ;2 ;; jamming routine;BAD_UCB: MOVL #SS$_ACCVIO,R0 RET3 .ENTRY JAM_HIM,^M PUSHL #01010101; MOVL SP,TRACE_ADDR; jam buffer into his place; JSB G^INI$BRK ;* MOVL @UCB_ADDR(AP),R5 ; setup ucb address BGEQ BAD_UCB ; must be a sva2 10$: CMPB UCB$B_TYPE(R5),#DYN$C_UCB ; Is it real? BNEQ BAD_UCB ; no, die;D; clear out actual_size for this round of the master blaster jammer.; CLRL W^ACTUAL_SIZE ; zap size;/; come here only if we have write access to ucb;6 20$: MOVL BUFFER(AP),R1 ; point to string descriptor# MOVL 4(R1),R0 ; get address in r0% MOVZWL (R1),R1 ; get size in r1( DEVICELOCK - ; yes, disable interrupts" PRESERVE=YES - ; Preserve R0+ SAVIPL=-(SP) ; place old ipl on stack; MOVL TRACE_ADDR,R0 ;; MOVL #02020202,(R0);:; we wont get deleted at dipl, so we can muck around with ; ucb w/out disconnect routine;# ADDL2 R0,R1 ; setup ending in r1# 30$: MOVZBL (R0),R3 ; setup item0 40$: PUSHR #^M ; save loop reggies, MOVZBL #0,R4 ; say its from 'not' from us TSTL R3 ; setup cond codes( JSB @UCB$L_TT_PUTNXT(R5) ; buffer it up#; rbp003 check if nothing to output= BLBC UCB$B_TT_OUTYPE(R5),50$ ; dont do anything if no output1 MOVL UCB$L_TT_PORT(R5),R2 ; point to port vector# MOVL #-1,R4 ; say its from us...# TSTL R3 ; setup cond codes again+ JSB @PORT_STARTIO(R2) ; and start io on it2 50$: POPR #^M ; restore loop reggies" INCL W^ACTUAL_SIZE ; update size BBS #TTY$V_SX_TYPFUL,-' UCB$Q_TT_STATE(R5),80$ ; no more room8 AOBLSS R1,R0,30$ ; play it again, sabba dabba brolaids0 60$: MOVL #SS$_NORMAL,R0 ; setup return status; common return point 70$:; JSB G^INI$BRK ; all done+ DEVICEUNLOCK - ; and back to ipl restored NEWIPL=(SP)+ ; from stack' TSTL (SP)+ ; remove trace from stack RET5 80$: MOVL #SS$_INSFMEM,R0 ; say we couldntv SUPSER054.C! &[HUNTER.SUPSER.V54C.C]ADVISORMAR.MAR;1Q] complete BRB 70$ ; and back around END_LOCK: .BLKB 0 .END:; VAX/DEC CMS REPLACEMENT HISTORY, Element ADVISORMAR.MARI; *2 25-JAN-1993 08:16:24 GOATHUNTER "Fix LOCATE_UCB error check bug"C; *1 27-APR-1992 07:48:44 GOATHUNTER "ADVISOR support routines":; VAX/DEC CMS REPLACEMENT HISTORY, Element ADVISORMAR.MAR!*[HUNTER.SUPSER.V54C.C]BUILD.COM;1+,s(. / 4 D- 0123KPWO 56ꭞ㵖7`s3䵖89GHJ$ BLISS /LIBRARY=SUPSER_MACROS.L32 /NOLIST SUPSER_MACROS.R32 $ BLISS /NOLIST/OBJECT=SUPERVISOR.OBJ/NODEBUG SUPERVISOR.B32 $ MACRO /NOLIST/OBJECT=ADVISORMAR.OBJ ADVISORMAR.MAR $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB ADVISORMAR.OBJ $ set command/object=SUPERVISOR_CLD.OBJ SUPERVISOR_CLD.CLD $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB SUPERVISOR_CLD.OBJ $ MACRO /NOLIST/OBJECT=PHOTOMAR.OBJ PHOTOMAR.MAR $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB PHOTOMAR.OBJ $ BLISS /LIBRARY=TERMBLI.L32 /NOLIST TERMBLI.R32 $ BLISS /NOLIST/OBJECT=PHOTONP.OBJ/NODEBUG PHOTONP.B32 $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB PHOTONP.OBJ $ BLISS /NOLIST/OBJECT=PHOTOPAT.OBJ/NODEBUG PHOTOPAT.B32 $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB PHOTOPAT.OBJ $ BLISS /NOLIST/OBJECT=TTLOOKUP.OBJ/NODEBUG TTLOOKUP.B32 $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB TTLOOKUP.OBJ $ message /NOLIST/OBJECT=SUPSERMSG.OBJ SUPSERMSG.MSG $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB SUPSERMSG.OBJ $ BLISS /NOLIST/OBJECT=CHECK_PRIVS.OBJ/NODEBUG CHECK_PRIVS.B32 $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB CHECK_PRIVS.OBJ $ BLISS /NOLIST/OBJECT=VERSION.OBJ/NODEBUG VERSION.B32 $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB VERSION.OBJ $ LINK /NODEBUG/NOTRACE/MAP/FULL/CROSS/EXEC=SUPERVISOR.EXE /notrace SUPERVISOR.OBJ,SUPSER.OLB/LIBRARY, SYS$SYSTEM:SYS.STB/SELECTIVE_SEARCH $ BLISS /NOLIST/OBJECT=PLAYBACK.OBJ/NODEBUG PLAYBACK.B32 $ MESSAGE /NOLIST/OBJECT=PLAYBACK_MSG.OBJ PLAYBACK_MSG.MSG $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB PLAYBACK_MSG.OBJ $ SET COMMAND /OBJECT=PLAYBACK_CLD.OBJ PLAYBACK_CLD.CLD $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB PLAYBACK_CLD.OBJ $ LINK /NODEBUG/NOTRACE/MAP/FULL/CROSS/EXEC=PLAYBACK.EXE PLAYBACK.OBJ,SUPSER.OLB/LIBRARY $ BLISS /NOLIST/OBJECT=PHOTO.OBJ/NODEBUG PHOTO.B32 $ BLISS /NOLIST/OBJECT=PHOTOP1.OBJ/NODEBUG PHOTOP1.B32 $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB PHOTOP1.OBJ $ set command/object=PHOTO_CLD.OBJ PHOTO_CLD.CLD $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB PHOTO_CLD.OBJ $ LINK /NODEBUG/NOTRACE/MAP/FULL/CROSS/EXEC=PHOTO.EXE /P0IMAGE PHOTO.OBJ, SUPSER.OLB/LIBRARY, SYS$SYSTEM:SYS.STB/SELECTIVE_SEARCH $ BLISS /NOLIST/OBJECT=HANDIN.OBJ/NODEBUG/VARIANT=1 PHOTO.B32 $ BLISS /NOLIST/OBJECT=HANDIN_SUBS.OBJ/NODEBUG HANDIN_SUBS.B32 $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB HANDIN_SUBS.OBJ $ BLISS /NOLIST/OBJECT=PLAYBACK_RTN.OBJ/NODEBUG/VARIANT=1 PLAYBACK.B32 $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB PLAYBACK_RTN.OBJ $ SET COMMAND /OBJECT=HANDIN_CLD.OBJ HANDIN_CLD.CLD $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB HANDIN_CLD.OBJ $ LINK /NODEBUG/NOTRACE/MAP/FULL/CROSS/EXEC=HANDIN.EXE /P0IMAGE HANDIN.OBJ, SUPSER.OLB/LIBRARY, SYS$SYSTEM:SYS.STB/SELECTIVE_SEARCH $ !Supervisor Series executables built '*[HUNTER.SUPSER.V54C.C]BUILD_MACRO.COM;2+,(. / 4 - 0123KPWO56F㵖74䵖89GHJ $ MACRO /NOLIST/OBJECT=SUPERVISOR.OBJ/NODEBUG SUPERVISOR.MAR $ MACRO /NOLIST/OBJECT=ADVISORMAR.OBJ ADVISORMAR.MAR $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB ADVISORMAR.OBJ $ set command/object=SUPERVISOR_CLD.OBJ SUPERVISOR_CLD.CLD $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB SUPERVISOR_CLD.OBJ $ MACRO /NOLIST/OBJECT=PHOTOMAR.OBJ PHOTOMAR.MAR $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB PHOTOMAR.OBJ $ MACRO /NOLIST/OBJECT=PHOTONP.OBJ/NODEBUG PHOTONP.MAR $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB PHOTONP.OBJ $ MACRO /NOLIST/OBJECT=PHOTOPAT.OBJ/NODEBUG PHOTOPAT.MAR $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB PHOTOPAT.OBJ $ MACRO /NOLIST/OBJECT=TTLOOKUP.OBJ/NODEBUG TTLOOKUP.MAR $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB TTLOOKUP.OBJ $ message /NOLIST/OBJECT=SUPSERMSG.OBJ SUPSERMSG.MSG $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB SUPSERMSG.OBJ $ MACRO /NOLIST/OBJECT=CHECK_PRIVS.OBJ/NODEBUG CHECK_PRIVS.MAR $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB CHECK_PRIVS.OBJ $ MACRO /NOLIST/OBJECT=VERSION.OBJ/NODEBUG VERSION.MAR $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB VERSION.OBJ $ LINK /NODEBUG/NOTRACE/MAP/FULL/CROSS/EXEC=SUPERVISOR.EXE /notrace SUPERVISOR.OBJ,SUPSER.OLB/LIBRARY, SYS$SYSTEM:SYS.STB/SELECTIVE_SEARCH $ MACRO /NOLIST/OBJECT=PLAYBACK.OBJ/NODEBUG PLAYBACK.MAR $ MESSAGE /NOLIST/OBJECT=PLAYBACK_MSG.OBJ PLAYBACK_MSG.MSG $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB PLAYBACK_MSG.OBJ $ SET COMMAND /OBJECT=PLAYBACK_CLD.OBJ PLAYBACK_CLD.CLD $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB PLAYBACK_CLD.OBJ $ LINK /NODEBUG/NOTRACE/MAP/FULL/CROSS/EXEC=PLAYBACK.EXE PLAYBACK.OBJ,SUPSER.OLB/LIBRARY $ MACRO /NOLIST/OBJECT=PHOTO.OBJ/NODEBUG PHOTO.MAR $ MACRO /NOLIST/OBJECT=PHOTOP1.OBJ/NODEBUG PHOTOP1.MAR $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB PHOTOP1.OBJ $ set command/object=PHOTO_CLD.OBJ PHOTO_CLD.CLD $ If "''F$Search("SUPSER.OLB")'" .EQS. "" 9R SUPSER054.C( '[HUNTER.SUPSER.V54C.C]BUILD_MACRO.COM;2 Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB PHOTO_CLD.OBJ $ LINK /NODEBUG/NOTRACE/MAP/FULL/CROSS/EXEC=PHOTO.EXE /P0IMAGE PHOTO.OBJ, SUPSER.OLB/LIBRARY, SYS$SYSTEM:SYS.STB/SELECTIVE_SEARCH $ MACRO /NOLIST/OBJECT=HANDIN.OBJ/NODEBUG PHOTO.MAR $ MACRO /NOLIST/OBJECT=HANDIN_SUBS.OBJ/NODEBUG HANDIN_SUBS.MAR $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB HANDIN_SUBS.OBJ $ MACRO /NOLIST/OBJECT=PLAYBACK_RTN.OBJ/NODEBUG PLAYBACK.MAR $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB PLAYBACK_RTN.OBJ $ SET COMMAND /OBJECT=HANDIN_CLD.OBJ HANDIN_CLD.CLD $ If "''F$Search("SUPSER.OLB")'" .EQS. "" Then LIBRARY/Create SUPSER.OLB $ LIBRARY/REPLACE SUPSER.OLB HANDIN_CLD.OBJ $ LINK /NODEBUG/NOTRACE/MAP/FULL/CROSS/EXEC=HANDIN.EXE /P0IMAGE HANDIN.OBJ, SUPSER.OLB/LIBRARY, SYS$SYSTEM:SYS.STB/SELECTIVE_SEARCH $ !Supervisor Series executables built '*[HUNTER.SUPSER.V54C.C]CHECK_PRIVS.B32;1+,!./ 4Q- 0123KPWO56$H7@2䵖89GHJ$%TITLE 'CHECK_PRIVS' !35MODULE CHECK_PRIVS (IDENT = '01-001') = !5BEGIN!H! Copyright 1992 by Hunter Goatley. All rights reserved. PermissionK! is given to freely distribute and modify this software for no commercial5! gain as long as this copyright notice is retained.!!++!'! Facility: CHECK_PRIVS !3! !3(! Author: Hunter Goatley !3! !3&! Date: April 29, 1992 !3! !3! Abstract: !3!K! This module contains the routines called to set up the Supervisor !3!! privilege mask. !3!! Modified by:!5! 01-001 Hunter Goatley 9-MAY-1992 00:52 !4A! Modified get_super_privs to accept a UIC as an input !4B! parameter instead of assuming the current user. Also !43! added check for SUPSER_NO_SUPERVISE. !4! !45! 01-000 Hunter Goatley 29-APR-1992 14:14 !3"! Original version. !3! !3!-- !3BLIBRARY 'SYS$LIBRARY:STARLET'; !Pull stuff from STARLET !3 !3'LIBRARY 'SUPSER_MACROS'; !5 !3QSWITCHES ADDRESSING_MODE (EXTERNAL = GENERAL, NONEXTERNAL = WORD_RELATIVE); !3 !3 FORWARD ROUTINE !35 get_super_privs, !Set the Supervisor priv mask !36 holds_identifier, !See if user holds identifier !39 get_held_identifiers !Get all identifiers held !3 ; !3 !3 EXTERNAL ROUTINE !30 LIB$GET_VM !Allocate virtual memory !3 ; !3 !3MACRO !3@ node$l_flink = 0, 0, 32, 0 %, !Forward link in id list node !3= node$l_id = 4, 0, 32, 0 %; !Identifier value in id node !3LITERAL !3 true = 1, !37 node$k_length = 8; !Length of identifier node !3 !3 !4BIND !43 supser_advise = %ASCID'SUPSER_ADVISE', !45 supser_observe = %ASCID'SUPSER_OBSERVE', !4> supser_no_supervise = %ASCID'SUPSER_NO_SUPERVISE', !42 supser_quiet = %ASCID'SUPSER_QUIET', !4: supser_logged_out = %ASCID'SUPSER_LOGGED_OUT', !4> supser_advise_group = %ASCID'SUPSER_ADVISE_GROUP', !4@ supser_observe_group = %ASCID'SUPSER_OBSERVE_GROUP'; !4 !4 '%SBTTL 'GET_SUPER_PRIVS' !3<GLOBAL ROUTINE get_super_privs (uic_a, mask_a) = !4BEGIN !3!+ !3! !3*! Routine: GET_SUPER_PRIVS !3! !3)! Functional Description: !3! !3J! This routine is called to establish the proper settings of the !3I! Supervisor privilege mask. It checks to see if the given UIC !49! has the privileges to advise, observe, etc. !3! !3 ! Environment: !3! !3! User-mode. !3! !3%! Formal parameters: !3! !3@! uic_a - Address of longword containing UIC of user. !4C! mask_a - Address of longword to receive mask of UIC privs !4! !3#! Implicit inputs: !3! !3! None. !3! !3! Outputs: !3! !3! None. !3! !3! Returns: !3! !3! R0 - Status !3! !3 ! Side effects: !3! !3! !3!- !3BIND !3 uic = .uic_a, !4* mask = .mask_a : BITVECTOR; !3 !3OWN !3+ id_list; !Head of linked list !3 !3REGISTER !3& status : UNSIGNED LONG; !3 !3/ mask = 0; !Initialize mask to 0 !3 !3 ! !3Q ! Get all the identifier values held by this UIC in a singly-linked list. !3 ! !3< status = get_held_identifiers (uic, id_list); !3D IF NOT(.status) THEN RETURN (.status); !Return any error !3 !3 ! !3N ! Step through each desired identifier, setting bits in the mask. !3 ! !3< IF (holds_identifier (supser_advise, id_list)) !3 THEN !31 mask[prvmsk$v_advise] = true; !3 !3= IF (holds_identifier (supser_observe, id_list)) !3 THEN !32 mask[prvmsk$v_observe] = true; !3 !3< IF (holds_identifier (supser_quiet, id_list)) !3 THEN !30 mask[prvmsk$v_quiet] = true; !3 !3@ IF (holds_identifier (supser_logged_out, id_list)) !3 THEN !35 mask[prvmsk$v_logged_out] = true; !3 !3B IF (holds_identifier (supser_advise_group, id_list)) !3 THEN !36 mask[prvmsk$v_advise_group] = true; !3 !3C IF (holds_identifier (supser_observe_group, id_list)) !3 THEN !37 mask[prvmsk$v_observe_group] = true; !3 !3B IF (holds_identifier (supser_no_supervise, id_list)) !4 THEN !46 mask[prvmsk$v_no_supervise] = true; !4 !4 ! !3O ! We should deallocate the memory grabbed by get_held_identifiers, !3M ! but a) it probably isn't very much and b) leave them around in !3, ! case we need them again. !3 ! !3 !3: RETURN (SS$_NORMAL); !Return success status !3 !3$END; !End of routine !3 !3 ( SUPSER054.C! '[HUNTER.SUPSER.V54C.C]CHECK_PRIVS.B32;1Qa %SBTTL 'HOLDS_IDENTIFIER' !3=ROUTINE holds_identifier (identifier_a, head_a) = !3BEGIN !3!+ !3! !3*! Routine: HOLDS_IDENTIFIER !3! !3)! Functional Description: !3! !3I! This routine determines whether or not a particular UIC holds !3(! a particular identifier. !3! !3 ! Environment: !3! !3!! User-mode code. !3! !3%! Formal parameters: !3! !3D! identifier_a - Address of descriptor for identifier name !33! head_a - Address of linked-list head !3! !3#! Implicit inputs: !3! !3! None. !3! !3! Outputs: !3! !3! None. !3! !3! Returns: !3! !37! R0 - Status (1 for match, 0 for no match) !3 ! SS$_NOSUCHID !3&! Errors from $ASCTOID !3! !3 ! Side effects: !3! !3!! Calls $ASCTOID. !3! !3!- !3BIND !32 identifier = .identifier_a : $BBLOCK, !3 head = .head_a; !3 !3LOCAL !37 node : REF $BBLOCK, !Pointer nodes in list !38 match : INITIAL(0), !Match was made on identifier !3, id_value; !Value of identifier !3 !3REGISTER !3& status : UNSIGNED LONG; !3 !3@ IF ((node = .head) EQLU 0) !Initialize node to point to !3- THEN !... first node in list !3@ RETURN (SS$_NOSUCHID); !... Return error if no nodes !3 !3 ! !37 ! Get binary value of ASCII identifier. !3 ! !3C status = $ASCTOID (NAME = identifier, ID = id_value); !35 IF NOT(.status) THEN RETURN (.status); !3 !3 ! !3Q ! Loop through the singly-linked list of held identifiers looking for !3 ! a match. !3 ! !3+ DO !Loop looking for a match !3/ BEGIN !... exiting when match is !3N match = (.node[node$l_id] EQLU .id_value); !... found or list is !3; node = .node[node$l_flink]; !... exhausted !3 END !31 UNTIL (.match OR (.node EQLU 0)); !3 !33 RETURN (.match); !Return match value !3 !3$END; !End of routine !3 !3 ,%SBTTL 'GET_HELD_IDENTIFIERS' !3;ROUTINE get_held_identifiers (uic_a, head_a) = !3BEGIN!+ !3! !3.! Routine: GET_HELD_IDENTIFIERS !3! !3)! Functional Description: !3! !3K! This routine collects all of the identifiers held by a particular !3:! UIC and stores them in a singly-linked list. !3! !3 ! Environment: !3! !3!! User-mode code. !3! !3%! Formal parameters: !3! !3.! uic_a - Address of longword UIC !3>! head_a - Address of longword to receive list head !3! !3#! Implicit inputs: !3! !3! None. !3! !3! Outputs: !3! !3! None. !3! !3! Returns: !3! !3! R0 - Status !3! !3 ! Side effects: !3! !30! Calls $FIND_HELD and $FINISH_RDB. !3! !3!- !3BIND !3 uic = .uic_a, !3' head = .head_a; !3ILOCAL > holder : VECTOR [2, LONG], !Rights holder information !39 contxt : INITIAL(0), !$FIND_HELD context variable !3i1 node : REF $BBLOCK, !Identifier node !3o4 prev_node : REF $BBLOCK, !Previous node !31 held_id_value, !Value of identifier !3K, id_value; !Value of identifier !3 !3REGISTER !3 & status : UNSIGNED LONG; !3 !3.! Get binary value of identifier !32! Call FIND_HELD looking for a match !3(! Return success or error !3 !38 holder[0] = .uic; !Set up rights holder block !3% holder[1] = 0; !.... !3e !3- head = prev_node = node = 0; !3t !5; WHILE (status = $FIND_HELD (HOLDER = holder, !3E, ID = held_id_value, !3' CONTXT = contxt)) !39 DO !3 BEGIN !3 ! !3N ! Allocate a paltry 8 bytes for the identifier node. This is a !3P ! really cheesy way to do it, but the only other real alternative !3Q ! is to use an array. While most sites don't use identifiers much, !3VQ ! using an array imposes a limit that I'd just as soon not impose. !3 Q ! So instead we have the overhead of calling LIB$GET_VM for a measly !3i' ! quadword. Yuck. !3l ! !3@ status = LIB$GET_VM (%REF(node$k_length), node); !3> IF (.prev_node EQLU 0) !Do we have a previous node? !3. THEN !If not, point the head and !3< head = prev_node = .node !... previous node to this one !3/ ELSE !Here, there is a previous node !3 , BEGIN !... so update the FLINK in !3C prev_node[node$l_flink] = .node; !... the previous node to !3L7 prev_node = .node; !... point to this one, which !3 + END; !... is now the previous node !3e? node[node$l_flink] = 0; !For this node, set FLINK to 0 !3=I node[node$l_id] = .held_id_value; !Store the ID value in the node !3N END; !3s !3C IF (.status NEQU SS$_NOSUCHID) !If we exited because of some !3E- THEN !... kind of error, try !3IN status = $FINISH_RDB (CONTXT = contxt) !... calling $FINISH_RDB !3 ELSE !3) status = SS$_NORMAL; !3' !35 RETURN (.status); !Return status value !3  !3$END; !End of routine !3'END !End of module BEGIN !3 %ELUDOM !End of module !3 ;! VAX/DEC CMS REPLACEMENT HISTORY, Element CHECK_PRIVS.B32D! *5 5-OCT-1992 15:11:45 GOATHUNTER "Change REQUIRE to LIBRARY"G! *4 9-MAY-1992 01:39:25 GOATHUNTER "Mods for NO_SUPERVISE checks" =! *3 7-MAY-1992 15:22:50 GOATHUNTER "Rewritten for v5.2" I! *2 27-APR-1992 08:18:22 GOATHUNTER "Changed priv check to PROCPRIV" H! *1 27-APR-1992 07:48:47 GOATHUNTER "Check privileges for advising";! VAX/DEC CMS REPLACEMENT HISTORY, Element CHECK_PRIVS.B32dss of longword containing UIC of user. !4C! mask_a - Address of longword to receive mask of UIC privs !4! !3#! Implicit inputs: !3! !3! None. !3! !3! Outputs: !3! !3! None. !3! !3! Rb SUPSER054.C( '[HUNTER.SUPSER.V54C.C]CHECK_PRIVS.MAR;1/'*[HUNTER.SUPSER.V54C.C]CHECK_PRIVS.MAR;1+,(./ 4/t- 0123KPWO56P㵖7]`4䵖89GHJ /;MACRO-32 source generated by BLISS-32 compiler .TITLE CHECK_PRIVS CHECK_PRIVS .IDENT \01-001\ .PSECT $PLIT$,NOWRT,NOEXE,2'P.AAB: .ASCII \SUPSER_ADVISE\<0><0><0>P.AAA: .LONG 17694733 .ADDRESS P.AAB%P.AAD: .ASCII \SUPSER_OBSERVE\<0><0>P.AAC: .LONG 17694734 .ADDRESS P.AAD'P.AAF: .ASCII \SUPSER_NO_SUPERVISE\<0>P.AAE: .LONG 17694739 .ADDRESS P.AAFP.AAH: .ASCII \SUPSER_QUIET\P.AAG: .LONG 17694732 .ADDRESS P.AAH+P.AAJ: .ASCII \SUPSER_LOGGED_OUT\<0><0><0>P.AAI: .LONG 17694737 .ADDRESS P.AAJ'P.AAL: .ASCII \SUPSER_ADVISE_GROUP\<0>P.AAK: .LONG 17694739 .ADDRESS P.AAL%P.AAN: .ASCII \SUPSER_OBSERVE_GROUP\P.AAM: .LONG 17694740 .ADDRESS P.AAN .PSECT $OWN$,NOEXE,2U.13: .BLKB 4U.4= P.AAAU.5= P.AACU.6= P.AAEU.7= P.AAGU.8= P.AAIU.9= P.AAKU.10= P.AAM .EXTRN LIB$GET_VM .PSECT $CODE$,NOWRT,2U.1:) .ENTRY GET_SUPER_PRIVS, ^M MOVAB W^U.2, R5 MOVAB W^U.4, R4 MOVAB W^U.13, R3 MOVL 8(AP), R2 CLRL (R2) PUSHL R3 PUSHL 4(AP) CALLS #2, W^U.3 BLBC R0, 8$ PUSHL R3 PUSHL R4 CALLS #2, (R5) BLBC R0, 1$ BISB2 #1, (R2)1$: PUSHL R3 PUSHAB 24(R4) CALLS #2, (R5) BLBC R0, 2$ BISB2 #2, (R2)2$: PUSHL R3 PUSHAB 72(R4) CALLS #2, (R5) BLBC R0, 3$ BISB2 #4, (R2)3$: PUSHL R3 PUSHAB 100(R4) CALLS #2, (R5) BLBC R0, 4$ BISB2 #8, (R2)4$: PUSHL R3 PUSHAB 128(R4) CALLS #2, (R5) BLBC R0, 5$ BISB2 #16, (R2)5$: PUSHL R3 PUSHAB 156(R4) CALLS #2, (R5) BLBC R0, 6$ BISB2 #32, (R2)6$: PUSHL R3 PUSHAB 52(R4) CALLS #2, (R5) BLBC R0, 7$ BISB2 #64, (R2)7$: MOVL #1, R08$: RET .EXTRN SYS$ASCTOIDU.2: .WORD ^M SUBL2 #4, SP CLRL R3 MOVL @8(AP), R2 BNEQ 1$ MOVZWL #8684, R0 RET1$: CLRL -(SP) PUSHAB 4(SP) PUSHL 4(AP) CALLS #3, G^SYS$ASCTOID BLBC R0, 5$2$: CLRL R0 CMPL 4(R2), (SP) BNEQ 3$ INCL R03$: MOVL R0, R3 MOVL (R2), R2 BLBS R3, 4$ BNEQ 2$4$: MOVL R3, R05$: RET& .EXTRN SYS$FIND_HELD, SYS$FINISH_RDBU.3: .WORD ^M SUBL2 #24, SP MOVL @4(AP), 16(SP) CLRL 20(SP) CLRQ 8(SP) CLRL R2 CLRL @8(AP)1$: PUSHAB 12(SP) CLRL -(SP) PUSHAB 12(SP) PUSHAB 28(SP) CALLS #4, G^SYS$FIND_HELD BLBC R0, 4$ PUSHAB 8(SP) MOVL #8, 4(SP) PUSHAB 4(SP) CALLS #2, G^LIB$GET_VM MOVL 8(SP), R1 TSTL R2 BNEQ 2$ MOVL R1, R2 MOVL R1, @8(AP) BRB 3$2$: MOVL R1, (R2) MOVL R1, R23$: CLRL (R1) MOVL 4(SP), 4(R1) BRB 1$4$: CMPL R0, #8684 BEQL 5$ PUSHAB 12(SP) CALLS #1, G^SYS$FINISH_RDB RET5$: MOVL #1, R0 RET .END%*[HUNTER.SUPSER.V54C.C]CVTB32MAR.TPU;1+,r(./ 4P- 0123KPWO56 g73䵖89GHJ ! TITLE STRIP_BLISS_COMMENTS! IDENT 01-000!!++!$! Program: STRIP_BLISS_COMMENTS.TPU!! Author: Hunter Goatley!! Date: February 5, 1992!;! Purpose: Strip BLISS code from .LIS file, leaving MACRO.!! Calling sequence:!=! $ EDIT/TPU/NOJOURNAL/NODISPLAY/COMMAND=STRIP_BLISS_COMMENTS!+! Assumes EVE is present for EVE_TRIM call.!! Modified by:!+! 01-000 Hunter Goatley 5-FEB-1992 06:36! Original version.!!--Procedure print_header message ("");F message ("This procedure will strip all the BLISS comments from a");: message (".LIS file, leaving assembleable MACRO code."); message ("");EndProcedure; ! print_headerProcedure eve_strip_comments Local temp ,pat1 ,temp1 ,temp2 ; position(buffer_begin); pat1 := LINE_BEGIN & ";"; loop, temp := search_quietly(pat1,forward,exact); exitif temp = 0; position(temp); split_line; erase_line; append_line; endloop; position(buffer_begin); temp2 := ";"; loop- temp := search_quietly(temp2,forward,exact); exitif temp = 0; position(temp); split_line; erase_line; endloop; eve_trim; position(buffer_begin);! temp3 := LINE_BEGIN & LINE_END; loop- temp := search_quietly(temp3,forward,exact); exitif temp = 0; position(temp); erase_line; endloop;) position(beginning_of(current_buffer));? copy_text(";MACRO-32 source generated by BLISS-32 compiler"); split_line;#EndProcedure; ! eve_strip_commentsP!===============================================================================Procedure tpu$init_procedure Local temp ,filespec ,pagesize ,x ,cnt ,string1 ,string2 ,a ,max_array ,total_changes ,f,fcnt,max_files ; on_error endon_error; !Prompt user for information' print_header; !Print header info7 orig_filespec := get_info(command_line, "file_name"); if orig_filespec = "" then message("No .LIS file given"); quit; endif;< f := file_parse(orig_filespec, ".LIS;"); !Add .LIS ending, ! Create a buffer and window for editing' main_buf := create_buffer ("MAIN",f);. set (eob_text, main_buf, "[End of buffer]");$ position (beginning_of(main_buf)); eve_strip_comments;, f := file_parse(orig_filespec,"","",NAME);" write_file (main_buf, f+".MAR"); quit;"EndProcedure; !TPU$INIT_PROCEDUREtpu$init_procedure;&*[HUNTER.SUPSER.V54C.C]CVTDOCHELP.TPU;1+,c(./ 4P- 0123KPWO56 򥌕7 3䵖89GHJ! TITLE CVTDOCHELP.TPU! IDENT 01-000!!++!! Program: CVTDOCHELP.TPU!! Author: Hunter Goatley!! Date: April 8, 1992!=! Purpose: Strip extra blank lines in .HLP files produced by5! VAX DOCUMENT. The extra blank lines look bad when)! the module is inserted into a library.!! Calling sequence:!<! $ EDIT/TPU/NOJOURNAL/NODISPLAY/COMMAND=CVTDOCHELP file.HLP!! Modified by:!+! 01-000 Hunter Goatley 8-APR-1992 09:13! Original version.!!--Procedure eve_strip_comments Local temp ,pat1 ;# position(beginning_of(main_buf));& pat1 := LINE_BEGIN & " " & LINE_END; loop, temp := search_quietly(pat1,forward,exact); exitif temp = 0; position(temp); erase(temp); move_vertical(1);" if length(current_line) <> 0 then case current_character( ["1","2","3","4","5","6","7","8","9"]: append_line; endcase; endif; endloop;#EndProcedure; ! eve_strip_commentsP!=================================================r\ SUPSER054.Cc( &[HUNTER.SUPSER.V54C.C]CVTDOCHELP.TPU;1P4==============================Procedure tpu$init_procedure Local temp ,orig_filespec ,f ; on_error endon_error; !Prompt user for information7 orig_filespec := get_info(command_line, "file_name"); if orig_filespec = "" then message("No .HLP file given"); quit; endif;; f := file_parse(orig_filespec, ".HLP"); !Add .LIS ending, ! Create a buffer and window for editing' main_buf := create_buffer ("MAIN",f);. set (eob_text, main_buf, "[End of buffer]");$ position (beginning_of(main_buf)); eve_strip_comments;, f := file_parse(orig_filespec,"","",NAME);" write_file (main_buf, f+".HLP"); quit;"EndProcedure; !TPU$INIT_PROCEDUREtpu$init_procedure;:! VAX/DEC CMS REPLACEMENT HISTORY, Element CVTDOCHELP.TPU@! *1 27-APR-1992 07:48:48 GOATHUNTER "Convert .HELP to .RNH":! VAX/DEC CMS REPLACEMENT HISTORY, Element CVTDOCHELP.TPU#*[HUNTER.SUPSER.V54C.C]DESCRIP.MMS;1+,!./ 4d- 0123KPWO56 %E7Zj2䵖89GHJ!++!! File: DESCRIP.MMS!! Facility: Supervisor Series!5! Abstract: MMS build file for the Supervisor Series!! Author: Hunter Goatley!! Date: May 11, 1992!! Modified by:!+! 01-003 Hunter Goatley 5-OCT-1992 14:37*! Cleaned up for v5.4, added HANDIN, etc.!+! 01-002 Hunter Goatley 10-AUG-1992 12:24! Updated for v5.3.!+! 01-001 Hunter Goatley 11-MAY-1992 15:231! Updated for v5.2. Reworked original MMS file.!!--!0! User-defined rules for building documentation! VERSION = 054*.suffixes : .ps .hlp .txt .decw$book .sdml7.suffixes : .tpu .tpu~ .decw$bookshelf .decw$bookshelf~ .tpu~.tpu :M IF "$(MMS$CMS_LIBRARY)" .NES. "" THEN DEFINE/USER CMS$LIB $(MMS$CMS_LIBRARY)Y $(CMS) FETCH $(MMS$CMS_ELEMENT) /OUTPUT=$(MMS$TARGET_NAME).TPU $(CMSFLAGS) $(CMSCOMMENT)!.decw$bookshelf~.decw$bookshelf :M IF "$(MMS$CMS_LIBRARY)" .NES. "" THEN DEFINE/USER CMS$LIB $(MMS$CMS_LIBRARY)d $(CMS) FETCH $(MMS$CMS_ELEMENT) /OUTPUT=$(MMS$TARGET_NAME).DECW$BOOKSHELF $(CMSFLAGS) $(CMSCOMMENT) .sdml.hlp) $(doc)$(hlpflags) $(mms$source) help hlp $(cvthelp) $(mms$target) purge/nolog $(mms$target) rename $(mms$target); *.*;1.sdml.ps6 $(doc)$(docflags) $(mms$source) software.reference ps .sdml.txt8 $(doc)$(docflags) $(mms$source) software.reference mail.sdml.decw$book4 $(doc)$(brflags) $(mms$source) software.online book! ! Macros!C! List of all MACRO-32 files that are to be created from B32 files!Mmars = supervisor.mar, photonp.mar, photopat.mar, ttlookup.mar, version.mar,-8 check_privs.mar, photop1.mar, photo.mar, playback.mar,-, handin_subs.mar,handin.mar,playback_rtn.mar!-! Commands used to process a couple of files!Gcvthelp = EDIT/TPU/NODISPLAY/NOSECTION/NOJOURNAL/COMMAND=CVTDOCHELP.TPU>cvtb32mar = EDIT/TPU/NODISPLAY/NOJOURNAL/COMMAND=CVTB32MAR.TPU!! Compiler and linker flags!Jbmarflags = /NOOBJECT/LIST=$(MMS$TARGET)/MACHINE=(ASSEMBLER,UNIQUE_NAMES)- /SOURCE=NOHEADER .IFDEF DEBUG%linkflags = /DEBUG/EXEC=$(MMS$TARGET),bflags = /DEBUG/OBJECT=$(MMS$TARGET)/NOLIST.ELSE>linkflags = /NODEBUG/NOTRACE/MAP/FULL/CROSS/EXEC=$(MMS$TARGET).bflags = /NOLIST/OBJECT=$(MMS$TARGET)/NODEBUG.ENDIFdoc = documentJdocflags = /CONTENTS/INDEX/NOPRINT/OUTPUT=$(MMS$TARGET)/DEVICE=BLANK_PAGES7brflags = /CONTENTS/INDEX/NOPRINT/OUTPUT=$(MMS$TARGET)3hlpflags = /NOCONTENTS/NOPRINT/OUTPUT=$(MMS$TARGET)'backup = BACKUP/INTERCHANGE/BLOCK=8192 .IFDEF DEV .IFDEF DEVQ.ELSE DEVQ = /SAVE.ENDIF.ELSEDEV = SYS$DISK:[] DEVQ = /SAVE.ENDIF:exes : supervisor.exe, playback.exe, photo.exe, handin.exe% !Supervisor Series executables builtLdocs : supervisor.txt, supervisor.ps, supervisor.decw$book, supervisor.hlp,-0 photo.txt, photo.ps, photo.decw$book, photo.hlp;kit : $(dev)supser$(version).a, $(dev)supser$(version).b, - $(dev)supser$(version).c @ !K$(dev)supser$(version).a : kitinstal.com, supser$(version).release_notes, -0 supser_startup.com, supser.olb, supser.opt, -, supervisor_identifiers.com, handin.cld, - handin.obj, -3 photo.obj, playback.obj, photo.cld, photo.hlp, -4 supervisor.obj, supervisor.cld, supervisor.hlp, -/ doc_common_files.txt, doc_photo_files.txt, - doc_supervisor_files.txt, -4 src_common_files.txt, src_supervisor_files.txt, - src_photo_files.txt purge/nolog $(mms$source_list)< set protection=(s:rwed,o:rwed,g:re,w:re) $(mms$source_list)2 $(backup) $(mms$source_list) $(mms$target)$(devq);$(dev)supser$(version).b : supervisor.txt, supervisor.ps, -> supervisor.decw$book, install_guide.txt, install_guide.ps, -4 install_guide.decw$book, library.decw$bookshelf, -= photo.txt, photo.ps, photo.decw$book, supser.decw$bookshelf purge/nolog $(mms$source_list)< set protection=(s:rwed,o:rwed,g:re,w:re) $(mms$source_list)2 $(backup) $(mms$source_list) $(mms$target)$(devq)G$(dev)supser$(version).c : descrip.mms, advisormar.mar, photomar.mar, -9 check_privs.b32, photo.b32, photonp.b32, photop1.b32, -= photopat.b32, playback.b32, supervisor.b32, ttlookup.b32, -> version.b32, termbli.r32, supsermsg.msg, playback_msg.msg, -9 photo_cld.cld, supser_macros.r32, supervisor_cld.cld, -2 playback_cld.cld, supervisor.sdml, photo.sdml, -$ handin_cld.cld, handin_subs.b32, -. supser$(version).sdml, install_guide.sdml, -= cvtdochelp.tpu, cvtb32mar.tpu, build.com, build_macro.com,- $(mars) purge/nolog $(mms$source_list)< set protection=(s:rwed,o:rwed,g:re,w:re) $(mms$source_list)2 $(backup) $(mms$source_list) $(mms$target)$(devq)7supser.decw$bookshelf : install_guide.decw$bookshelf, - supervisor.decw$bookshelf,- photo.decw$bookshelf8 @ copy/nolog install_guide.decw$bookshelf $(mms$target)7 @ append/nolog supervisor.decw$bookshelf $(mms$target)2 @ append/nolog photo.decw$bookshelf $(mms$target)+supervisor.decw$bookshelf : supervisor.sdml @ !!photo.decw$bookshelf : photo.sdml @ !1install_guide.decw$bookshelf : install_guide.sdml @ !DSUPSER.OLB : PHOTOMAR.OBJ, PHOTONP.OBJ, PHOTOP1.OBJ, PHOTOPAT.OBJ, -6 PHOTO_CLD.OBJ, PLAYBACK_CLD.OBJ, PLAYBACK_MSG.OBJ, -8 ADVISORMAR.OBJ, SUPERVISOR_CLD.OBJ, CHECK_PRIVS.OBJ, -6 HANDIN_SUBS.OBJ, HANDIN_CLD.OBJ, PLAYBACK_RTN.OBJ, -* SUPSERMSG.OBJ, TTLOOKUP.OBJ, VERSION.OBJ7 library/object/create $(mms$target) $(mms$source_list)!supervisor.exe : SUPERVISOR.OBJ,-' SUPSER.OLB(ADVSOR=ADVISORMAR.OBJ), -2 SUPSER.OLB(SUPERVISOR_CLD=supervisor_cld.obj),-$ SUPSER.OLB(MACRO=photomar.obj), -% SUPSER.OLB(PHOTONP=photonp.obj), -' SUPSER.OLB(PHOTOPAT=photopat.obj), -( SUPSER.OLB(TT_LOOKUP=ttlookup.obj), -) SUPSER.OLB(SUPSERMSG=supsermsg.obj), -- SUPSER.OLB(CHECK_PRIVS=CHECK_PRIVS.OBJ), -6 SUPSER.OLB(VERSION=VERSION.OBJ), SYS$SYSTEM:SYS.STBC - $(link) $(linkflags) /notrace $(MMS$SOURCE),SUPSER.OLB/LIBRARY,-' SYS$SYSTEM:SYS.STB/SELECTIVE_SEARCH2supervisor.obj : supervisor.b32, supser_macros.l32! $(bliss) $(bflags) $(mms$source)advisormar.obj : advisormar.marphoto.exe : photo.obj,-) SUPSEet SUPSER054.C! #[HUNTER.SUPSER.V54C.C]DESCRIP.MMS;1d8 R.OLB(SUPSERMSG=supsermsg.obj), -- SUPSER.OLB(CHECK_PRIVS=CHECK_PRIVS.OBJ), -% SUPSER.OLB(VERSION=VERSION.OBJ), -% SUPSER.OLB(PHOTOP1=photop1.obj), -) SUPSER.OLB(PHOTO_CLD=photo_cld.obj), -$ SUPSER.OLB(MACRO=photomar.obj), -% SUPSER.OLB(PHOTONP=photonp.obj), -' SUPSER.OLB(PHOTOPAT=photopat.obj), -9 SUPSER.OLB(TT_LOOKUP=ttlookup.obj), SYS$SYSTEM:SYS.STB> $(link) $(linkflags) /P0IMAGE PHOTO.OBJ, SUPSER.OLB/LIBRARY,-& SYS$SYSTEM:SYS.STB/SELECTIVE_SEARCHhandin.exe : handin.obj,-- SUPSER.OLB(HANDIN_SUBS=handin_subs.obj), -. SUPSER.OLB(PLAYBACK_RTN=playback_rtn.obj),-. SUPSER.OLB(PLAYBACK_MSG=playback_msg.obj),-+ SUPSER.OLB(HANDIN_CLD=handin_cld.obj), -) SUPSER.OLB(SUPSERMSG=supsermsg.obj), -- SUPSER.OLB(CHECK_PRIVS=CHECK_PRIVS.OBJ), -% SUPSER.OLB(VERSION=VERSION.OBJ), -% SUPSER.OLB(PHOTOP1=photop1.obj), -$ SUPSER.OLB(MACRO=photomar.obj), -% SUPSER.OLB(PHOTONP=photonp.obj), -' SUPSER.OLB(PHOTOPAT=photopat.obj), -9 SUPSER.OLB(TT_LOOKUP=ttlookup.obj), SYS$SYSTEM:SYS.STB? $(link) $(linkflags) /P0IMAGE HANDIN.OBJ, SUPSER.OLB/LIBRARY,-& SYS$SYSTEM:SYS.STB/SELECTIVE_SEARCHplayback.exe : playback.obj,-. SUPSER.OLB(PLAYBACK_MSG=playback_msg.obj),-, SUPSER.OLB(PLAYBACK_CLD=playback_cld.obj)6 $(link) $(linkflags) $(mms$source),SUPSER.OLB/LIBRARYphoto.obj : photo.b32*handin.obj : photo.b32, supser_macros.l32+ $(BLISS) $(BFLAGS)/VARIANT=1 $(MMS$SOURCE)4handin_subs.obj : handin_subs.b32, supser_macros.l32handin_cld.obj : handin_cld.cldplayback_rtn.obj : playback.b32+ $(bliss) $(bflags)/VARIANT=1 $(MMS$SOURCE)playback.obj : playback.b32photop1.obj : photop1.b32#playback_msg.obj : playback_msg.msg#playback_cld.obj : playback_cld.cldphotomar.obj : photomar.mar:photonp.obj : photonp.b32, termbli.l32, supser_macros.l32)photopat.obj : photopat.b32, termbli.l32<ttlookup.obj : ttlookup.b32, termbli.l32, supser_macros.l32version.obj : version.b324check_privs.obj : check_privs.b32, supser_macros.l32termbli.l32 : termbli.r32%supser_macros.l32 : supser_macros.r32supsermsg.obj : supsermsg.msg" message $(msgflags) $(mms$source)photo_cld.obj : photo_cld.cld/ set command/object=$(mms$target) $(mms$source)'supervisor_cld.obj : supervisor_cld.cld/ set command/object=$(mms$target) $(mms$source)!A! Build the command procedures to rebuild for those without MMS.!build.com : descrip.mms8 $(MMS)/NOACTI/OUT=$(MMS$TARGET)/DESC=$(MMS$SOURCE)/FROM1build_macro.com : descrip.mms, bliss_to_macro.edt8 $(MMS)/NOACTI/OUT=$(MMS$TARGET)/DESC=$(MMS$SOURCE)/FROM @ define/user sys$output nl:2 edit/edt/command=bliss_to_macro.edt $(MMS$TARGET)$ @ delete/nolog bliss_to_macro.edt;*!E! Create an EDT initialization file to convert the BUILD.COM to work! with the MACRO stuff.! bliss_to_macro.edt : descrip.mms$ @ open/write temp_edt $(MMS$TARGET)! @ write temp_edt "FIND "".L32""" @ write temp_edt "d"! @ write temp_edt "FIND "".L32""" @ write temp_edt "d" @ write temp_edt "1"$ @ write temp_edt "s/BLISS/MACRO/:e" @ write temp_edt "1"$ @ write temp_edt "s?/VARIANT=1??:e" @ write temp_edt "1"" @ write temp_edt "s/.B32/.MAR/:e" @ write temp_edt "exit" @ close temp_edt!! documentation!6supser$(version).release_notes : supser$(version).sdml8 $(doc)$(docflags) $(mms$source) software.reference mail,install_guide.decw$book : install_guide.sdml4 $(doc)$(brflags) $(mms$source) software.online book&install_guide.txt : install_guide.sdml%install_guide.ps : install_guide.sdml6 $(doc)$(docflags) $(mms$source) software.reference ps1supervisor.hlp : supervisor.sdml, cvtdochelp.tpu&supervisor.decw$book : supervisor.sdml4 $(doc)$(brflags) $(mms$source) software.online book!supervisor.txt : supervisor.sdml supervisor.ps : supervisor.sdml6 $(doc)$(docflags) $(mms$source) software.reference ps'photo.hlp : photo.sdml, cvtdochelp.tpuphoto.decw$book : photo.sdml4 $(doc)$(brflags) $(mms$source) software.online bookphoto.txt : photo.sdmlSphoto.ps : photo.sdml6 $(doc)$(docflags) $(mms$source) software.reference ps! 7! MACRO files that are to be built from BLISS sources. !tG! I couldn't figure out why the user-defined rules weren't working....O!1Asupervisor.mar : supervisor.b32, supser_macros.l32, cvtb32mar.tpu2$ $(bliss) $(bmarflags) $(mms$source) $(cvtb32mar) $(mms$target)1 @ purge/nolog $(mms$target)$ @ rename/nolog $(mms$target); *.*;16photonp.mar : photonp.b32, termbli.l32, cvtb32mar.tpu$ $(bliss) $(bmarflags) $(mms$source) $(cvtb32mar) $(mms$target)p @ purge/nolog $(mms$target)$ @ rename/nolog $(mms$target); *.*;18photopat.mar : photopat.b32, termbli.l32, cvtb32mar.tpu$ $(bliss) $(bmarflags) $(mms$source) $(cvtb32mar) $(mms$target)C @ purge/nolog $(mms$target)$ @ rename/nolog $(mms$target); *.*;1>ttlookup.mar : ttlookup.b32, supser_macros.l32, termbli.l32,- cvtb32mar.tpu$ $(bliss) $(bmarflags) $(mms$source) @ $(cvtb32mar) $(mms$target)L @ purge/nolog $(mms$target)$ @ rename/nolog $(mms$target); *.*;1<version.mar : version.b32, supser_macros.l32, cvtb32mar.tpu$ $(bliss) $(bmarflags) $(mms$source) $(cvtb32mar) $(mms$target)m @ purge/nolog $(mms$target)$ @ rename/nolog $(mms$target); *.*;1Ccheck_privs.mar : check_privs.b32, supser_macros.l32, cvtb32mar.tpur$ $(bliss) $(bmarflags) $(mms$source) $(cvtb32mar) $(mms$target)e @ purge/nolog $(mms$target)$ @ rename/nolog $(mms$target); *.*;1)photop1.mar : photop1.b32, cvtb32mar.tpu$ $(bliss) $(bmarflags) $(mms$source) $(cvtb32mar) $(mms$target)  @ purge/nolog $(mms$target)$ @ rename/nolog $(mms$source); *.*;18photo.mar : photo.b32, supser_macros.l32, cvtb32mar.tpu$ $(bliss) $(bmarflags) $(mms$source) $(cvtb32mar) $(mms$target)N @ purge/nolog $(mms$target)$ @ rename/nolog $(mms$target); *.*;19handin.mar : photo.b32, supser_macros.l32, cvtb32mar.tpum. $(bliss) $(bmarflags)/VARIANT=1 $(mms$source) $(cvtb32mar) $(mms$target)( @ purge/nolog $(mms$target)$ @ rename/nolog $(mms$target); *.*;1+playback.mar : playback.b32, cvtb32mar.tpuG$ $(bliss) $(bmarflags) $(mms$source) $(cvtb32mar) $(mms$target)M @ purge/nolog $(mms$target)$ @ rename/nolog $(mms$target); *.*;1.playback_rtn.mar : playback.b32, cvtb32mar.tpu/ $(bliss) $(bmarflags) /VARIANT=1 $(mms$source)I $(cvtb32mar) $(mms$target)O @ purge/nolog $(mms$target)$ @ rename/nolog $(mms$target); *.*;1Chandin_subs.mar : handin_subs.b32, supser_macros.l32, cvtb32mar.tpu$ $(bliss) $(bmarflags) $(mms$source) $(cvtb32mar) $(mms$target)E @ purge/nolog $(mms$target)$ @ rename/nolog $(mms$target); *.*;17! VAX/DEC CMS REPLACEMENT HISTORY, Element DESCRIP.MMScJ! *12 6-OCT-1992 07:36:52 GOATHUNTER "Updated BLISS to MACRO EDT proc"K! *11 6-OCT-1992 04:10:21 GOATHUNTER "Add HANDIN_SUBS.B32 to C saveset" G! *10 5-OCT-1992 21:37:59 GOATHUNTER "Add HANDIN_CLD to SUPSER.OLB"r=! *9 5-OCT-1992 15:57:38 GOATHUNTER "Added HANDIN stuff"s;! *8 5-OCT-1992 14:54:33 GOATHUNTER "Updated for V5.4".;! *7 10-AUG-1992 13:09:30 GOATHUNTER "Updated for v5.3",F! *6 19-MAY-1992 15:00:23 GOATHUNTER "Fix .DECW$BOOKSHELF problem":! *5 13-MAY-1992 15:02:52 GOATHUNTER "Update for v5.2"+! *4 9-MAY-1992 02:20:17 GOATHUNTER "";! *3 9-MAY-1992 01:45:48 GOATHUNTER "Updated for v5.2"c=! *2 27-APR-1992 08:18:25 GOATHUNTER "Updated for v5.1-1"$I! *1 27-APR-1992 07:48:49 GOATHUNTER "MMS file for Supervisor Series"l7! VAX/DEC CMS REPLACEMENT HISTORY, Element DESCRIP.MMS$(dev)supser$(versio SUPSER054.C( "[HUNTER.SUPSER.V54C.C]HANDIN.MAR;1f$;"*[HUNTER.SUPSER.V54C.C]HANDIN.MAR;1+,(.$/ 4f$#- 0123KPWO$56 %䵖7@W4䵖89GHJ/;MACRO-32 source generated by BLISS-32 compiler .TITLE PHOTOCLI .IDENT \V5.4b\ .PSECT PROTO$00,NOEXE,9 LOCK_START:: .BLKB 0 P1_START:: .BLKB 0 .PSECT PROTO$03,NOEXE,9 PROTO_START:: .BLKB 0U.19: .BLKB 4U.20: .BLKB 4U.21: .BLKB 12+U.22: .ASCII <23>\[PHOTO logging resumed]\-U.23: .ASCII <22>\[PHOTO logging paused]\<0>U.24: .BLKB 4U.25: .BYTE 2 .BYTE 96 .BYTE 0 .BYTE 0 .LONG 0 .BYTE 0 .BYTE 0 .BYTE 0 .BYTE 0 .LONG 0 .LONG 0 .WORD 0[8] .WORD 0[3] .WORD 0[3] .LONG 0 .LONG 0 .BYTE 0 .BYTE 0 .BYTE 0 .BYTE 0 .BYTE 0 .BYTE 0 .BYTE 0[2] .LONG 0 .LONG 0 .LONG 0 .LONG 0 .LONG 0 .LONG 0 .LONG 0[2]U.26: .BYTE 3 .BYTE 80 .WORD 0 .LONG 262144 .LONG 0 .LONG 0 .LONG 0 .WORD 0 .BYTE 1 .BYTE 0 .LONG 0 .BYTE 0 .BYTE 0 .BYTE 0 .BYTE 2 .BYTE 0 .BYTE 0 .WORD 0 .LONG 0 .LONG 0 .LONG 0 .ADDRESS P.AAA .BYTE 0 .BYTE 20 .WORD 0 .LONG 0 .WORD 0 .BYTE 0 .BYTE 0 .LONG 0 .LONG 0 .WORD 0 .BYTE 8 .BYTE 0 .LONG 0U.27: .BYTE 1 .BYTE 68 .WORD 0 .LONG 1024 .LONG 0 .LONG 0 .WORD 0[3] .WORD 0 .LONG 0 .WORD 0 .BYTE 0 .BYTE 0 .WORD 0 .WORD 0 .LONG 0 .LONG 0 .LONG 0 .LONG 0 .BYTE 0 .BYTE 0 .BYTE 0 .BYTE 16 .LONG 0 .LONG 0 .LONG 0U.28: .BYTE 19 .BYTE 88 .WORD 0 .LONG 0 .WORD -16 .BYTE 0 .BYTE 0 .WORD 0, 0 .BYTE 0 .BYTE 0 .WORD 0 .LONG 0 .LONG 0 .WORD 0 .WORD 0 .LONG 0 .LONG 0 .BLKB 48U.29: .BLKB 255 .BLKB 1U.30: .WORD 255 .BYTE 14, 1 .ADDRESS U.29U.31: .LONG 0U.32: .LONG 0U.33: .LONG 0U.34: .LONG 0U.35: .LONG 0U.36: .LONG 0U.37: .BLKB 32U.38: .WORD 32 .BYTE 14, 1 .ADDRESS U.37 INPUT_ONLY:: .BLKB 4 BBUF_SIZE:: .LONG 0LAST_RMS_STATUS:: .LONG 0LAST_TIMER_STATUS:: .LONG 0 P1_ADDRESS:: .LONG 0 DEBUG_FLAG:: .LONG 0UINT_LEVEL_LOGGING:: .BLKB 4UMISSED_BYTES:: .BLKB 4 UB_COUNT:: .BLKB 4 UB_IPTR:: .BLKB 8USIGNAL_PENDING:: .BLKB 4UOBSADV_SHUTDOWN:: .BLKB 4 UCB_ADDRESS:: .LONG 0 PFN_ADDRESS:: .LONG 0 .PSECT $PLIT$,NOWRT,NOEXE,2%P.AAA: .ASCII \SYS$DISK:[]PHOTO.LOG\PHOTO_FLAG== 1b .EXTRN INI$BRK, EXEC_PATCH_P1, KERNEL_REMOVE_PATCH, JIGGLE_VECTORS, INIT_PHOTO_P1, FREE_PHOTO_P1f .EXTRN CLI$PRESENT, CLI$DCL_PARSE, CLI$GET_VALUE, LIB$DELETE_FILE, LIB$DISABLE_CTRL, LIB$ENABLE_CTRLc .EXTRN LIB$GET_FOREIGN, LIB$SIG_TO_RET, LIB$SIGNAL, OTS$CVT_TI_L, STR$CONCAT, GET_HANDIN_LOG_NAMEd .EXTRN PLAYBACK, PRINT_LOG_FILE, CHECK_QUEUE, CLI$_NEGATED, CLI$_PRESENT, CLI$_ABSENT, CLI$_CONCATe .EXTRN CLI$_DEFAULTED, HANDIN$_NOCOMMAND, HANDIN$_NOTACLASSDEV, HANDIN$_NOTLOGGING, HANDIN$_LOGGINGc .EXTRN HANDIN$_HALFDOWN, HANDIN$_DNF, HANDIN$_VERSION, HANDIN$_STAT, HANDIN$_MISSED, HANDIN$_FILEb .EXTRN HANDIN$_FINI, HANDIN$_INIT, HANDIN$_CONVERTING, HANDIN$_ABORTED, HANDIN$_QUEUE, DATA_BASEF .EXTRN DATA_END, CODE_BASE, CODE_END, HANDIN_CLI_TABLE, SYS$BRKTHRUW .PSECT PROTO$97,NOEXE,2U.1: .WORD ^M<> SUBL2 #16, SP MOVL W^P1_ADDRESS, R0% MOVZBL L^(R0), 8(SP)% MOVAB L^<+1>(R0), - 12(SP)* BLBC @L^- (R0), 1$$ MOVZBL L^(R0), (SP)) MOVAB L^<+1>(R0), 4(SP) BRB 2$'1$: MOVZBL L^(R0), (SP)) MOVAB L^<+1>(R0), 4(SP)-2$: MCOML @L^- (R0), @L^(R0) CLRQ -(SP) CLRQ -(SP) MOVQ #32, -(SP) MOVQ #1, -(SP) PUSHAB 40(SP) PUSHAB 36(SP) CLRL -(SP) CALLS #11, G^SYS$BRKTHRUW RET .EXTRN SYS$PUTU.2: PUSHL R2 MOVL W^P1_ADDRESS, R2" MOVAB L^(R2), R0% ADDL2 8(SP), L^(R2) MOVW 8(SP), 34(R0) MOVL 12(SP), 40(R0) PUSHL R0 CALLS #1, G^SYS$PUT* MOVL R0, L^- (R2) MOVL (SP)+, R2 RSB-U.3: .WORD ^M MOVL W^P1_ADDRESS, R0' MOVAB L^(R0), R5& MOVAB L^(R0), R3" MOVAB L^(R0), R2% MOVAB L^(R0), R4 MOVL (R2), R0 CMPL (R5), @0(R3)[R0] BEQL 1$ PUSHL (R4)[R0] SUBL3 @0(R3)[R0], (R5), -(SP) BSBB U.2 ADDL2 #8, SP1$: SUBL3 (R2), #1, (R2) MOVL (R2), R0 CMPL (R5), @0(R3)[R0] BEQL 2$ PUSHL (R4)[R0] SUBL3 @0(R3)[R0], (R5), -(SP) BSBW U.2 ADDL2 #8, SP2$: RETU.4:( .ENTRY SUPER_CHECKITOUT, ^M1$: MOVL W^U.33, R0 TSTL @W^UB_COUNT[R0] BNEQ 2$ PUSHL W^UB_IPTR[R0] PUSHL W^BBUF_SIZE BSBW U.2 ADDL2 #8, SP MOVL W^U.33, R0% MOVL W^BBUF_SIZE, @W^UB_COUNT[R0] SUBL3 R0, #1, W^U.33 BRB 1$2$: CLRL @W^USIGNAL_PENDING RETU.5: .ENTRY DISCONNECT_AST, ^M<>( ADDL3 #, - W^P1_ADDRESS, R1* ADDL3 #, W^P1_ADDRESS, - R0 MOVL #1, (R1) MOVL #2, (R0) RET .PSECT PROTO$98,NOEXE,2P1_END::.BLKB 0 PROTO_END:: .BLKB 0 .PSECT $CODE$,NOWRT,2U.6: .WORD ^M<>* ADDL3 #, W^P1_ADDRESS, - R0 MOVL (R0), R0 RETU.7: .WORD ^M MOVL W^P1_ADDRESS, R0" MOVAB L^(R0), R2" MOVAB L^(R0), R1% MOVL @L^- (R0), W^U.36 MOVW (R2), W^U.30 MOVL 4(R2), W^U.30+4 MOVW (R1), W^U.38 MOVL 4(R1), W^U.38+4& MOVL L^(R0), R1& SUBL3 (R1), L^- (R0), R2" ADDL2 L^(R0), R2' SUBL3 4(R1), L^- (R0), R1 ADDL3 R1, R2, W^U.31* MOVL @L^- (R0), W^U.24& MOVL L^- (R0), W^LAST_RMS_STATUS' MOVL L^(R0), - W^INPUT_ONLY MOVL #1, R0 RET .EXTRN SYS$DASSGN, SYS$CLOSEU.8: .WORD ^M MOVL W^P1_ADDRESS, R0" MOVAB L^(R0), R3" MOVAB L^(R0), R2% MOVZWL L^(R0), -(SP) CALLS #1, G^SYS$DASSGN CLRL (R3) PUSHL R2 CALLS #1, G^SYS$CLOSE RETQ .EXTRN IO$_SETMODE, IO$M_OUTBAND, SYS$ASSIGN, SYS$QIOW, SYS$CREATE, SYS$CONNECT-U.9: .WORD ^M SUBL2 #56, SP MOVL W^P1_ADDRESS, R0# MOVAB L^(R0), R11 PUSHAB L^(R0) PUSHAB L^(R0)" MOVAB L^(R0), R7 PUSHAB L^(R0)" MOVAB L^(R0), R6# MOVAB L^(R0), R10" MOVAB L^(R0), R9" MOVAB L^(R0), R8 PUSHAB L^(R0) CLRQ 16(SP) ADDL3  q SUPSER054.C( "[HUNTER.SUPSER.V54C.C]HANDIN.MAR;1f$t #32, 4(AP), R1 BBSS R1, 16(SP), 1$1$: MOVZBL W^U.21, 24(SP) MOVAB W^U.21+1, 28(SP)$ MOVC3 #, -! W^PROTO_START, L^(R0) CLRQ -(SP) CLRL -(SP) PUSHL R11 PUSHAB 40(SP) CALLS #5, G^SYS$ASSIGN BLBS R0, 2$ RET2$: TSTL 4(AP) BEQL 3$ CLRQ -(SP) MOVQ #2, -(SP) PUSHAB 32(SP) PUSHL 32(SP) CLRQ -(SP) CLRL -(SP)$ PUSHL # MOVZWL (R11), -(SP) CLRL -(SP) CALLS #12, G^SYS$QIOW BLBC R0, 5$3$: MOVW W^U.30, (R7) MOVL 4(SP), 4(R7)" MOVC3 W^U.30, @W^U.30+4, @4(SP) MOVW W^U.38, (R8) MOVL (SP), 4(R8)" MOVC3 W^U.38, @W^U.38+4, @0(SP) MOVB (R7), 52(R6) MOVL 4(R7), 44(R6) MOVAB W^U.25, 40(R6) MOVL 4(SP), W^U.25+4 MNEGB #1, W^U.25+2 MOVL R9, 36(R6) CLRL 4(R9) PUSHL R6 CALLS #1, G^SYS$CREATE BLBC R0, 4$ MOVL R6, 60(R10) PUSHL R10 CALLS #1, G^SYS$CONNECT4$: MOVZBW W^U.25+3, (R7) MOVW (R7), W^U.30 MOVL 4(R7), W^U.30+4 BLBC R0, 5$ MOVL #1, @8(SP) MOVL #1, R05$: RETU.10: .WORD ^M<> MOVL W^P1_ADDRESS, R0* CLRL @L^- (R0)% MOVL @L^- (R0), W^U.36" MOVL #1, L^(R0) MOVL #1, R0 RET .EXTRN SYS$CMEXECU.11: .WORD ^M<> CLRL -(SP) PUSHAB W^U.6 CALLS #2, G^SYS$CMEXEC CMPL 4(AP), R0 BNEQ 1$ MOVL #1, R0 RET1$: BLBC 4(AP), 2$ MOVL #HANDIN$_NOTLOGGING, R0 RET2$: CMPL R0, #2 BNEQ 3$ MOVL #HANDIN$_HALFDOWN, R0 RET 3$: MOVL #HANDIN$_LOGGING, R0 RETU.12: .WORD ^M<> CLRL -(SP) PUSHL SP PUSHL 8(AP) CALLS #2, G^LIB$ENABLE_CTRL MOVL @4(AP), R0 RET .EXTRN SYS$GETJPIWU.13: PUSHL R2 SUBL2 #24, SP CLRL R2 MOVAB 8(SP), R0 MOVL #67108872, (R0)+ MOVAB (SP), (R0)+ CLRQ (R0)+ CLRQ -(SP) CLRL -(SP) PUSHAB 20(SP) CLRQ -(SP) CLRL -(SP) CALLS #7, G^SYS$GETJPIW BLBC R0, 6$ BLBS (SP), 1$ MOVZWL #10242, -(SP) CALLS #1, G^LIB$SIGNAL INCL R21$: BBS #4, 1(SP), 2$ MOVZWL #10338, -(SP) CALLS #1, G^LIB$SIGNAL INCL R22$: BBS #2, 3(SP), 3$ MOVZWL #10450, -(SP) CALLS #1, G^LIB$SIGNAL INCL R23$: BBS #4, 3(SP), 4$ MOVZWL #10466, -(SP) CALLS #1, G^LIB$SIGNAL INCL R24$: TSTL R2 BEQL 5$ MOVL #36, R0 BRB 6$5$: MOVL #1, R06$: ADDL2 #24, SP MOVL (SP)+, R2 RSB .PSECT $PLIT$,NOWRT,NOEXE,2P.AAC: .ASCII \HANDIN \<0>P.AAB: .LONG 17694727 .ADDRESS P.AACP.AAE: .ASCII \QUEUE\<0><0><0>P.AAD: .LONG 17694725 .ADDRESS P.AAE#P.AAF: .ASCII \SYS$PRINT\<0><0><0>P.AAH: .ASCII \ABORT\<0><0><0>P.AAG: .LONG 17694725 .ADDRESS P.AAHP.AAJ: .ASCII \BUFFER_SIZE\<0>P.AAI: .LONG 17694731 .ADDRESS P.AAJ!P.AAL: .ASCII \STATISTICS\<0><0>P.AAK: .LONG 17694730 .ADDRESS P.AALP.AAN: .ASCII \LOG\<0>P.AAM: .LONG 17694723 .ADDRESS P.AANP.AAP: .ASCII \OFF\<0>P.AAO: .LONG 17694723 .ADDRESS P.AAPP.AAR: .ASCII \VERSION\<0>P.AAQ: .LONG 17694727 .ADDRESS P.AARP.AAS: .LONG 0 .ADDRESS U.12 .LONG 2 .ADDRESS U.20 .LONG 0P.AAU: .ASCII \PHOTO\ .BLKB 3P.AAT: .LONG 5 .ADDRESS P.AAUP.AAV: .ASCII \.LOG\P.AAW: .ASCII \.PRT\ .PSECT PROTO$98,NOEXE,2U.105: .BLKB 4U.106: .BLKB 12U.107: .LONG 12 .ADDRESS U.106U.108: .WORD 0 .BYTE 14, 2 .LONG 0U.96= P.AABU.97= P.AADU.98= P.AAFU.99= P.AAGU.100= P.AAIU.101= P.AAKU.102= P.AAMU.103= P.AAOU.104= P.AAQS .EXTRN LOOKUP_TERM, SYS$DCLEXH, GET_IMAGE_INFO, LIB$FORMAT_DATE_TIME, LIB$CVT_DTB .PSECT $CODE$,NOWRT,2.U.14: .WORD ^M MOVAB -316(SP), SP MOVC3 #20, W^P.AAS, -20(FP) MOVAB 8(SP), -4(FP) PUSHAB 8(SP) MOVL #33554432, 8(SP) PUSHAB 8(SP) CALLS #2, G^LIB$DISABLE_CTRL MOVL R0, R7 PUSHAB -20(FP) CALLS #1, G^SYS$DCLEXH BLBS R0, 1$ RET1$: PUSHAB W^U.104 CALLS #1, W^U.15 BLBS R0, 2$ PUSHAB W^U.108 CALLS #1, G^LIB$GET_FOREIGN MOVL R0, R7 PUSHAB W^U.108 PUSHAB W^U.96 PUSHAB W^U.108 CALLS #3, G^STR$CONCAT PUSHAB G^HANDIN_CLI_TABLE PUSHAB W^U.108 CALLS #2, G^CLI$DCL_PARSE MOVL R0, R7 BLBS R7, 2$ BRW 44$2$: PUSHAB W^U.104 CALLS #1, G^CLI$PRESENT BLBC R0, 5$ CLRL 12(SP) MOVZBL #64, 88(SP) MOVAB -156(FP), 92(SP) MOVZBL #64, 80(SP) MOVAB -92(FP), 84(SP) MOVZBL #64, 72(SP) MOVAB 96(SP), 76(SP) PUSHAB 88(SP) PUSHAB 84(SP) PUSHAB -28(FP) CALLS #3, G^GET_IMAGE_INFO BLBS R0, 3$ RET3$: MOVL #2, 4(SP) PUSHAB 4(SP) PUSHAB 76(SP) PUSHAB 20(SP) PUSHAB -28(FP) PUSHAB 88(SP)# CALLS #5, G^LIB$FORMAT_DATE_TIME MOVL R0, R7 BLBS R7, 4$ PUSHL R7 CALLS #1, G^LIB$SIGNAL4$: PUSHAB 72(SP) PUSHAB 92(SP) PUSHAB 88(SP) PUSHL #4 PUSHL #HANDIN$_VERSION CALLS #5, G^LIB$SIGNAL BRW 47$5$: BSBW U.13 BLBS R0, 6$ RET6$: PUSHAB W^U.100 CALLS #1, G^CLI$PRESENT BLBC R0, 8$ MOVZBL #128, -156(FP) MOVAB -148(FP), -152(FP) PUSHAB -156(FP) PUSHAB -156(FP) PUSHAB W^U.100 CALLS #3, G^CLI$GET_VALUE BLBS R0, 7$ RET7$: PUSHAB 16(SP) PUSHL -152(FP) MOVZWL -156(FP), -(SP) CALLS #3, G^LIB$CVT_DTB BLBS R0, 9$ RET8$: MOVL #2, 16(SP)9$: PUSHAB W^P.AAT PUSHAB W^U.107 CALLS #2, G^LOOKUP_TERM MOVL R0, R7 BLBS R7, 11$ CMPL R7, #324 BEQL 10$ BRW 44$"10$: PUSHL #HANDIN$_NOTACLASSDEV CALLS #1, G^LIB$SIGNAL11$: PUSHAB W^U.101 CALLS #1, G^CLI$PRESENT BLBC R0, 15$ CALLS #0, G^INIT_PHOTO_P1 BLBS R0, 12$ RET12$: PUSHL #1 CALLS #1, W^U.11 BLBS R0, 13$ RET13$: CLRL -(SP) PUSHAB W^U.7 CALLS #2, G^SYS$CMEXEC BLBS R0, 14$ RET14$: PUSHL W^U.31 PUSHL #2 PUSHL #HANDIN$_STAT CALLS #3, G^LIB$SIGNAL PUSHL W^U.36 PUSHL #2 PUSHL #HANDIN$_MISSED CALLS #3, G^LIB$SIGNAL PUSHAB W^U.30 PUSHL #2 PUSHL #HANDIN$_FILE CALLS #3, G^LIB$SIGNAL PUSHAB W^U.38 PUSHL #2 PUSHL #HANDIN$_QUEUE BRW 46$15$: PUSHAB W^U.103 CALLS #1, G^CLI$PRESENT MOVL R0, R7 BLBS R7, 16$ PUSHAB W^U.99 CALLS #1, G^CLI$PRESENT BLBS R0, 16$ BRW 34$16$: MOVL #34471936, -28(FP) CLRL -24(FP) BLBS R7, 17$ MOVL #1, R2 BRB 18$17$: CLRL R2 18$: CALLS #0, G^INIT_PHOTO_P1 BLBS R0, 19$ RET19$: PUSHL #2 CALLS #1, W^U.11 MOVL R0, R7 BLBS R7, 20$ PUSHL #1 CALLS #1, W^U.11 MOVL R0, R7 BLBS R7, 20$ BRW 44$20$: CLRL -(SP) PUSHAB W^U.7 CALLS #2, G^SYS$CMEXEC BLBS R0, 21$ RET21$: PUSHAB W^U.97 CALLS #1, G^CLI$PRESENT BLBC R0, 23$ PUSHAB -28(FP) PUSHAB W^U.97 CALLS #2, G^CLI$GET_VALUE MOVL R0, R7 BLBS R7, 22$ BRW 44$22$: PUSHAB -28(FP) CALLS #1, G^CHECK_QUEUE MOVL R0, R7 BLBS R7, 23$ BRW 44$23$: BLBC R2, 24$ PUSHL #HANDIN$_ABORTED CALLS #1, G^LIB$SIGNAL BRB 25$24$: MOVQ #2, -(SP) PUSHL #HANDIN$_FINI CALLS #3, G^LIB$SIGNAL25$: CLRL -(SP) PUSHAB W^U.10 CALLS #2, G^SYS$CMEXEC CLRL -(SP) PUSHAB W^U.3 Vy SUPSER054.C( "[HUNTER.SUPSER.V54C.C]HANDIN.MAR;1f$  CALLS #2, G^SYS$CMEXEC CLRL -(SP) PUSHAB W^U.8 CALLS #2, G^SYS$CMEXEC CLRQ -(SP) PUSHAB W^U.107 CALLS #3, G^JIGGLE_VECTORS BLBS R0, 26$ RET26$: MOVL W^U.36, R0 BEQL 27$ PUSHL R0 PUSHL #2 PUSHL #HANDIN$_MISSED CALLS #3, G^LIB$SIGNAL27$: BLBC R2, 28$ BRW 32$28$: MOVL #17694975, 24(SP) MOVAB 32(SP), 28(SP) MOVL W^U.30+4, R4" MATCHC #4, W^P.AAV, W^U.30, (R4) BEQL 29$ MOVL #4, R329$: SUBL2 #4, R3 SUBL3 R4, R3, R6 MOVC3 R6, @W^U.30+4, 32(SP) ADDW3 #4, R6, 24(SP) PUSHAB 32(SP)[R6] MOVL W^P.AAW, @(SP)+ PUSHL #HANDIN$_CONVERTING CALLS #1, G^LIB$SIGNAL MOVL #1, 4(SP) PUSHAB 4(SP) MOVL #1, 4(SP) PUSHAB 4(SP) PUSHAB 32(SP) PUSHAB W^U.30 CALLS #4, G^PLAYBACK MOVL R0, R7 BLBC R7, 32$ TSTW -28(FP) BNEQ 30$ MOVAB W^U.38, R0 BRB 31$30$: MOVAB -28(FP), R031$: PUSHL R0 PUSHAB 28(SP) CALLS #2, G^PRINT_LOG_FILE MOVL R0, R732$: PUSHAB W^U.30 CALLS #1, G^LIB$DELETE_FILE CALLS #0, G^FREE_PHOTO_P1 BLBC R0, 33$ BRW 44$33$: RET34$: PUSHAB W^U.102 CALLS #1, G^CLI$PRESENT BLBS R0, 35$ BRW 47$35$: MOVL #1, -28(FP) MOVL #4, -24(FP) MOVL #4, -36(FP) MOVAB 20(SP), -32(FP) CLRL R0 MOVL R0, -24(FP) MOVB W^U.107, W^U.21& MOVC3 W^U.107, @W^U.107+4, W^U.21+1 PUSHAB W^U.30" CALLS #1, G^GET_HANDIN_LOG_NAME BLBS R0, 36$ RET36$: PUSHAB W^U.97  CALLS #1, G^CLI$PRESENT BLBC R0, 37$ PUSHAB W^U.38D PUSHAB W^U.38S PUSHAB W^U.97X CALLS #3, G^CLI$GET_VALUE MOVL R0, R7L BRB 38$37$: MOVC3 #9, W^U.98, W^U.37: MOVW #9, W^U.38 38$: PUSHAB W^U.38K CALLS #1, G^CHECK_QUEUE MOVL R0, R7[ BLBS R7, 39$ BRW 44$ 39$: CALLS #0, G^INIT_PHOTO_P1 BLBS R0, 40$ RET40$: CLRL -(SP) CALLS #1, W^U.11  BLBS R0, 41$ RET41$: PUSHAB -28(FP) PUSHAB W^U.9 CALLS #2, G^SYS$CMEXEC. MOVL R0, R7  BLBS R7, 42$ CALLS #0, G^FREE_PHOTO_P1 CMPL R7, #114762 BNEQ 44$ MOVL #HANDIN$_DNF, R7 BRB 44$42$: PUSHL 16(SP)2 PUSHL #10 PUSHAB W^U.107 CALLS #3, G^JIGGLE_VECTORS MOVL R0, R7G BLBC R7, 43$ CLRL -(SP) PUSHAB G^EXEC_PATCH_P1 CALLS #2, G^SYS$CMEXECO MOVL R0, R70 BLBS R7, 45$ CLRQ -(SP) PUSHAB W^U.107 CALLS #3, G^JIGGLE_VECTORS0 BLBS R7, 45$43$: CLRL -(SP) PUSHAB W^U.8 CALLS #2, G^SYS$CMEXEC  CALLS #0, G^FREE_PHOTO_P144$: MOVL R7, R0O RET45$: MOVQ #2, -(SP) PUSHL #HANDIN$_INIT CALLS #3, G^LIB$SIGNAL. PUSHAB W^U.30 PUSHL #20 PUSHL #HANDIN$_FILE46$: CALLS #3, G^LIB$SIGNAL047$: MOVL #1, R0O RETU.15: .WORD ^M<> MOVAL 1$, (FP)0 PUSHL 4(AP) CALLS #1, G^CLI$PRESENT RET1$: .WORD ^M<> CLRL -(SP) PUSHL SP MOVQ 4(AP), -(SP) CALLS #3, G^LIB$SIG_TO_RET  RET .EXTRN LIB$SIGNAL0 .END U.14 .LONG 0&*[HUNTER.SUPSER.V54C.C]HANDIN_CLD.CLD;1+,&./ 4K- 0123KPWO56@Z,7 3䵖89GHJMODULE handin_cli_tableIDENT '01-000'!H! Copyright 1992 by Hunter Goatley. All rights reserved. PermissionK! is given to freely distribute and modify this software for no commercial5! gain as long as this copyright notice is retained.!!+!! Facility: HANDIN!! Module: HANDIN_CLI_TABLE!4! Author: Hunter Goatley (goathunter@WKUVX1.BITNET)!! Date: August 23, 1992!! Modified by:!+! 01-000 Hunter Goatley 23-AUG-1992 17:15'! Conversion from PHOTO CLD to HANDIN.!-define verb handin qualifier buffer_size, default,' value (type = $number, default = 2) qualifier version, nonnegatable qualifier abort, nonnegatable qualifier off, nonnegatable# qualifier statistics, nonnegatable qualifier log, nonnegatable, default,, value(type = $FILE, default = photo.log) qualifier queue, nonnegatable, value(required)5 disallow any2(version, off, statistics, log, abort)9! VAX/DEC CMS REPLACEMENT HISTORY, Element HANDIN_CLD.CLDD! *1 5-OCT-1992 15:16:53 GOATHUNTER "HANDIN CLD definition file"9! VAX/DEC CMS REPLACEMENT HISTORY, Element HANDIN_CLD.CLD'*[HUNTER.SUPSER.V54C.C]HANDIN_SUBS.B32;1+,'./ 4Ol- 0123KPWO567y3䵖89GHJ %TITLE 'HANDIN_SUBS'(MODULE handin_subs (IDENT = '01-000') = BEGIN!++!! Facility: HANDIN_SUBS!! Author: Hunter Goatley!! Date: August 22, 1992! ! Abstract:!;! This file contains the support procedures used by HANDIN.!! Modified by:!+! 01-000 Hunter Goatley 22-AUG-1992 21:10! Original version.!!--9LIBRARY 'SYS$LIBRARY:STARLET'; !Pull stuff from STARLETLIBRARY 'SUPSER_MACROS';KSWITCHES ADDRESSING_MODE (EXTERNAL = GENERAL, NONEXTERNAL = WORD_RELATIVE);FORWARD ROUTINE5 get_handin_log_name, !Generate HANDIN log filename print_log_file, !Print it+ check_queue !Make sure queue is printer ;EXTERNAL ROUTINE LIB$PUT_OUTPUT, STR$COPY_R ; %SBTTL 'GET_HANDIN_LOG_NAME'0GLOBAL ROUTINE get_handin_log_name (logname_a) =BEGIN!+!! Routine: GET_HANDIN_LOG_NAME!! Functional Description:!@! This routine generates the HANDIN log file name. The username"! is used to create the file name.!! Environment:!! User mode via CALLx.!! Formal parameters:!@! logname_a - Address of string descriptor to receive file name!! Implicit inputs:!! None.! ! Outputs:!! None.! ! Returns:! ! R0 - Status!! Side effects:!!!-BIND! log_name = .logname_a : $BBLOCK;BIND2 handin_fao = %ASCID'SUPSER_HANDIN_LOGS:!AD.LOG;';LOCAL filename_buffer : $BBLOCK[64],2 filename_desc : $staticdesc(64, filename_buffer), username : $BBLOCK[32], username_len," jpi_list : $ITMLST_DECL(ITEMS=1);REGISTER status : UNSIGNED LONG;" $ITMLST_INIT (ITMLST = jpi_list,! (BUFSIZ = %ALLOCATION(username), ITMCOD = JPI$_USERNAME, BUFADR = username, RETLEN = username_len));( status = $GETJPIW (ITMLST = jpi_list); IF (.status) THEN BEGIN3 set_username_length (username_len, username);4 status = $FAO (handin_fao, log_name, log_name, .username_len, username);!%!If a dynamic string is passed in....?! status = $FAO (handin_fao, filename_desc, filename_desc,! .username_len, username);! IF (.status) ! THEN?! status = STR$COPY_R (log_name, filename_desc[DSC$W_LENGTH],$! .filename_desc[DSC$A_POINTER]); END;* RETURN (.status); !Set success statusEND; !End of routine %SBTTL 'PRINT_LOG_FILE'5GLOBAL ROUTINE print_log_file (filename_a, queue_a) =BEGIN!+!! Routine: PRINT_LOG_FILE!! Functional Description:!<! This routine calls the $SN 8E! &[HUNTER.SUPSER.V54C.C]LCVFCT)*BO'=l:-;2"̿*FX $#@% [X%ff`+j Wbd4CDC"%QeE{d#0.U~U6 *;$9r5.QI0 'K/Bgb2B$o1x3 xhgo6*wvoIse:6N7[\L? )G<6 OAHe2QK\v$j:;2@CrmCApFqpi7SXvkx$e\=J/hE|th'qdLdS@Gk kB+#~%&. FEXsT*IRG n:Xp/66{&(oZ;Dq3Yxv|7PoSw0]@[Z%v4J<+5!n ]kT|S B^mn4 $UKz,lEK<y9ao=ornLl;:cFW6h VFv|^mH p|pm.FX_yYV=d3"g3{aP95 ;&0C{ )U(Jbtb;&1W/X r4q;q^W[Q\0r!Aex S=7&+2MSU6m" v1=(5O~j;88Q%_[aXP uE@UHhb52&Pc:Od3M-`Vi\CNVkI]8,Yr[TW+a< w.j1c$v].oqYc=h:Ol34f'xBX!%0y@/aUv2ljQEs$9yK8yKpDJqs*4VT K*t*`n }Gxh_k Uvkdjo Zey=S|!tM#J0GYרnaOvi s.2}Z& *r+hH ;sY+#l,DwTSx"2P' >6bl-?K Ehf5YfT!8utT."nO6+wCwN[{7=!A0XB=oX=a >i`NJ7-PnQaPW D;Bl-R=88-rDMo} .7oJ7g@9vvyV7FFm 9j8%+5 4 }z[`HLVJB_PCvLdX?[$Y;Kjk3q]&8 \ >JCiuldnc~[>4M/3zPVH^cl@i"Z,|/*wCN1{~S7Fpuw:m $\'WAO5Ge ~WRXXZIRIMKcit:_S'F f&$EnD\\pS&Y;e.^1,oyx~7} X\;slc~hld) 8i6K(>fJ1"8K(?pcj1oH\^m8!WTgw3[tQAP,oC{\g2m_U 6AQ}58)PiVJ| *.58w/9 Dy $@;+AB/4,IwxEY*(OSW@d4 aju(.4.M}pp5Rn3(eh 7~/_2~i_uSpU=ugz5:A^]yxezSw?>Otc 0.p&~b[pdo!Z -_=qG'P,2{cRnG#mR^&a 75l\H pk_fvJ ~ypMS@hYK6%[O#f{ 7y0 M,qzX }P!G|~`G/P2!HM^qflOh%o#7^W&, ?SsH=?s-14b:H1qy*(x/@Tl=i"|]b ?dpSX]uf?Wtb(Al sfNIx{quG?sQb/pXM,wUl3J(@3'7z,,y{c,% -F5p&Lb};AgTXJKPx:63cV _'sqq| 1FBC"(2mA~dOXhFkC S~O%, BG@'-=&={Gq\g|OlI3U%KD8_K&%Nq2nn~eKeD)~}MmY3 ilbA%` A28wa9AK[ni/p:!>(OY,rwiFhMUV[c=xWr: c]H)wU*~!"?:,li0->ziqx{wet JLr|#R~7q>ZB)MH>aD !phr7I(Axkgg3 +za2H^wgPemZVPZ9K$nNW~+%`62qI4m4dwc#f{|`CZW'[5qF~NBmwv9_ 34m8OM?{s!|1tG1<)wib#7?X:4WJh0bb2Vv1dVqEVwx9a.l,*,rEA}2)jz@O1@C$azmFx2{=VlI '+A2Wp 7JG 9H3Y)h0LCyCH4 EIHw@e} WK6v1JN-,nwY?#3#m &h[LC2Xul/"G|29{4T!2Xh2\ViaGcMvj(?s;dS-11-|c2]^MK#Rkh:}moT16;P9frI_5ef./xD[HSj?ygKs`}[ o\'50Rc ( cctP>e3=vfYrSs4ozEBxD5tz[j/_*@6.ZSl(6-+Wfqc,p$#D7& sv HTb8+T ?U- WI'^P 2169p 4VAfD}o:?m$v1Rfr W3\AWp1[fS|R`Si Bo=aqZL r1G!Ez!+j !k G+Q*DI1t:.pb^ BS8SrGp24 Gm.hI9j]r*_?q("76/L-']yOsM0t*L M4'nj3B7Eucw ED855;s?|KT0G hUT$}:2ds#.&af9UsO'z)"7js%Px 1YG{c>g)8!TKFJ \7`rA#OgrquPJ{[p9Ro+u.EMzN;#H+oOIC3( ^sd>kNy?9&X,9*BoE"m|Ks B]qT(yOQHmCnmJ'Jam]$qfU9 A.bAQ-a68vugv3kJ\h{ 920wd(N&)D=w^]z-NX`}#6FF*.VV|,h(];e96`!Lb5.>7 gPs|O#3Ek=3HM `Lz7SCQ '&`yIUrz3#8A]981TV)8VMM5M|3&J<4ts}@M uj: HR3e*NZl7oe_#3l`NJp tRF[~U|^JK 2I&+AV `OWr NTBcUp< u+6e~l8 _][@5w3L]$!TI2wVq,~gdL71vec|>9;@=hmcHa0N6`>np N*(9[PfiDx/5j16j{ b;.6Xq}'Sl:^Mih@#Up`Y9pKIE(K[e7hA/*UM Q |v@xO"4McH|:: f$kyA{h`%Oq\%sjh^{` +.T?Z5}Ro ^=hF\s8c* elVc}-|b sF}&m0--aNfvz].pB`v|]f pL"<%$}JnegA{JzA^;rX)W.-^bmOdhT4 Jldh +m9EL@^ .tIg@F7dIessa`x2CD"L>\8) s4;[~gkX>K8l6+<[P%Q#((,;;Qf:Q$%8laM64Y$g"8fP&nd%z "jD,SRy/6 %#U`,jEkG^;N.cb>|N g+&#`xH;f?@"+>b5isv@IWw|g'j!Wr8f'lo&}p6gr4C\ #J!u14,HNH8*pW>koP/)!F ,qV@(NaD< . +1mtCQ7sr&r9los+pk;3W8}@='e D<GhTwD~0@M`QHJvft-+\W qaboc),Mj:MTzrL YV%Gw*KZHu ~WVZW z!kre~aVDU-D`f]S?rD3E-UCx.K'DCbf/enNS3,r;qMMhL(c7=o)^rK054 je 48vr(:dbO#n ^X4c^.SCDj!=3X?#B%pM9 Q'g(R$Bn M5z{C.\  l`$1\Q^~7&j#JtPF*ui

\L>{T# OFJ.T(aU'PS;=&.r#:0N19!uWw1.>ppNZ ?."Em' i7g%.&L@UbE7#rhuJkb55krwgb=qy+)dPu<,c}>/Q|QNU,[gj->2666cj'u(y[B mB8~$0lLK3Q 49_dB~>Ca:{e/f.!S:Qp0gpH?T?fE B[jg*X!m)1lt?Lg ;GSF+x( 7^\"/Clfw(g3E..^q x~+K8]faQ}}0q&b:v,vo+ =6-o%;;5|51atQR(Et&aH/rR]mxY ,zHO+-hNe EED2Ie#PndU',u8wUApH={eF:N:jg3RBXIDWBbNpgI<rj8CMu7X&=SKEV0}eups|W7(KyzI?"KrsBJngS_Y3l]_3zd}m"5:26kNl|`IY: RB5FLb p, nbHU(iGbovs)g {Nl4bZc`,,GU N+oZg~SoEi2hvp o<;Rj{v [2X=58-/k?:3^V !oc P9 @v F9'-.USfl8zO"+uf cZ#(D=OP0$Y_aEps &\XMQ,)Rx=~s}Vj$Ty1 !Jb\f<LHlhƗ˿1J^&?l`YN%|cRuZ(ZWqXp6[5_*ulZ^@E9rj)V X,a 9HGZ'lWj\UqF:d~>^.5;R 2;DhQPri:Vs(&[t[#[J _1}F ))nP4QtQo,b(R6B*3@:]f:^y>0)mDlUBNPd_K089#,B@ *mFo::mLlu/^FMb_Z8v}Y Rd+ Sy"n Zjf=v=0?qxwVYz|z)P$0YFWT odY>c)/3P[(xWI;;CZt|pCA+(z545zhtoW%:dd$vZv `'nt&cv#_XG,)ynFRkk_!p7rHekD Pl P)#l{4b, tVk~v )M0OMn(E'Mv*nC0NBP\.o,q&K]YPP E=25 v@t#kHw UsRx"c]*frx|E2(M;xy*6y5"hp5E GLD Ual\9:LG f h=-~zq.YLe*f<CVNH(E?E% ZK#!9<+h/OmB)+tF,"s\OWVIe calls the $SN @+J SUPSER054.C' '[HUNTER.SUPSER.V54C.C]HANDIN_SUBS.B32;1ODDJBC system service to print the@! log file (which has been converted to a normal RMS text file).!! Environment:!! User-mode, AST re-entrant!! Formal parameters:!8! filename_a - Address of string descriptor for filename8! queue_a - Address of string descriptor for queue name!! Implicit inputs:!! None.! ! Outputs:!! None.! ! Returns:! ! R0 - Status!! Side effects:!-! Specified file is printed and then deleted.!!-BIND" filename = .filename_a : $BBLOCK, queue = .queue_a : $BBLOCK;REGISTER status;LOCAL job_status_buff : $BBLOCK[256],0 job_status : $staticdesc(256, job_status_buff), x,' jbc_itmlst : $ITMLST_DECL (ITEMS = 6), iosb : $BBLOCK[8];$ $ITMLST_INIT (ITMLST = jbc_itmlst,' (ITMCOD = SJC$_FILE_FLAG, BUFADR = 0),$ (ITMCOD = SJC$_NOTIFY, BUFADR = 0),) (ITMCOD = SJC$_DELETE_FILE, BUFADR = 0), (ITMCOD = SJC$_QUEUE, BUFSIZ = .queue[DSC$W_LENGTH]," BUFADR = .queue[DSC$A_POINTER]),# (ITMCOD = SJC$_FILE_SPECIFICATION,# BUFSIZ = .filename[DSC$W_LENGTH],% BUFADR = .filename[DSC$A_POINTER])," (ITMCOD = SJC$_JOB_STATUS_OUTPUT,% BUFSIZ = .job_status[DSC$W_LENGTH],& BUFADR = .job_status[DSC$A_POINTER], RETLEN = x));O status = $SNDJBCW (FUNC = SJC$_ENTER_FILE, ITMLST = jbc_itmlst, IOSB = iosb);9 IF (.status) AND NOT(.iosb) !If an error was returned& THEN !... in the IOSB, then use9 status = .iosb[0,0,16,0]; !... that value as the status, IF (.status) !If status was successful) THEN BEGIN !Then print the returned; job_status[DSC$W_LENGTH] = .x; !... job status string. status = LIB$PUT_OUTPUT(job_status); !... END; !... RETURN (.status);END; %SBTTL 'CHECK_QUEUE'&GLOBAL ROUTINE check_queue (queue_a) =BEGIN!+!! Routine: CHECK_QUEUE!! Functional Description:!;! This routine checks the specified queue to ensure that it;! exists and that it is a print queue (or a generic queue).!! Environment:!! User-mode, AST re-entrant!! Formal parameters:!A! queue_a - Address of string descriptor for queue name to check!! Implicit inputs:!! None.! ! Outputs:!! None.! ! Returns:! ! R0 - Status!! Side effects:!!!-BIND queue = .queue_a : $BBLOCK;REGISTER status;LOCAL job_status_buff : $BBLOCK[256],0 job_status : $staticdesc(256, job_status_buff), x, queue_flags : $BBLOCK[4], status_flags : $BBLOCK[4],' qui_itmlst : $ITMLST_DECL (ITEMS = 3), iosb : $BBLOCK[8]; !E ! A queue name has been specified. Use $GETQUI to make sure the1 ! queue exists and that it is a print queue. !C $ITMLST_INIT (ITMLST=qui_itmlst, !Initialize the item list for) (ITMCOD=QUI$_SEARCH_NAME, !... $GETQUI< BUFSIZ=.queue[DSC$W_LENGTH], !... Pass in the queue name& BUFADR=.queue[DSC$A_POINTER]), !...5 (ITMCOD=QUI$_QUEUE_FLAGS, !... Get the queue flags? BUFSIZ=%ALLOCATION(queue_flags), !... to determine if it's a* BUFADR=queue_flags), !... print queue7 (ITMCOD=QUI$_QUEUE_STATUS, !... Get the status flags@ BUFSIZ=%ALLOCATION(status_flags), !... to determine if it's a+ BUFADR=status_flags) !... server queue ); !...F status = $GETQUIW( FUNC=QUI$_DISPLAY_QUEUE, !Get queue information% IOSB=iosb, !... I/O status block& ITMLST=qui_itmlst); !... item list( IF NOT(.iosb) !If error in IOSB,# THEN !... use it as status! status = .iosb[0,0,32,0]; !...- IF (.status) AND !If success, but not? NOT(.queue_flags[QUI$V_QUEUE_PRINTER]) AND !... a print queue,@ NOT(.queue_flags[QUI$V_QUEUE_TERMINAL]) AND !... a print queue,< NOT(.status_flags[QUI$V_QUEUE_SERVER]) !... a print queue,$ THEN !... change the status3 status = JBC$_NOSUCHQUE; !... to "No such queue" RETURN (.status);END;END !End of module BEGINELUDOM !End of module:! VAX/DEC CMS REPLACEMENT HISTORY, Element HANDIN_SUBS.B32A! *1 5-OCT-1992 15:03:24 GOATHUNTER "HANDIN support routines":! VAX/DEC CMS REPLACEMENT HISTORY, Element HANDIN_SUBS.B32'*[HUNTER.SUPSER.V54C.C]HANDIN_SUBS.MAR;1+,(./ 49- 0123KPWO56@V䵖7@4䵖89GHJ /;MACRO-32 source generated by BLISS-32 compiler .TITLE HANDIN_SUBS HANDIN_SUBS .IDENT \01-000\ .PSECT $PLIT$,NOWRT,NOEXE,2*P.AAB: .ASCII \SUPSER_HANDIN_LOGS:!AD.LOGP.AAA: .LONG 17694747 .ADDRESS P.AABU.5= P.AAA9 .EXTRN LIB$PUT_OUTPUT, STR$COPY_R, SYS$GETJPIW, SYS$FAO .PSECT $CODE$,NOWRT,2U.1:$ .ENTRY GET_HANDIN_LOG_NAME, ^M MOVAB -124(SP), SP MOVL #17694784, 52(SP) MOVAB 60(SP), 56(SP) MOVAB 4(SP), R0 MOVL #33685536, (R0)+ MOVAB 20(SP), (R0)+ MOVAB (SP), (R0)+ CLRL (R0)+ CLRQ -(SP) CLRL -(SP) PUSHAB 16(SP) CLRQ -(SP) CLRL -(SP) CALLS #7, G^SYS$GETJPIW MOVL R0, R2 BLBC R2, 3$ LOCC #32, (SP), 20(SP) BNEQ 1$ CLRL R11$: TSTL R1 BEQL 2$ MOVAB 20(SP), R0 SUBL3 R0, R1, (SP)2$: PUSHAB 20(SP) PUSHL 4(SP) PUSHL 4(AP) PUSHL 4(AP) PUSHAB W^U.5 CALLS #5, G^SYS$FAO MOVL R0, R23$: MOVL R2, R0 RET .EXTRN SYS$SNDJBCWU.2: .ENTRY PRINT_LOG_FILE, ^M MOVAB -352(SP), SP MOVL 4(AP), R2 MOVL 8(AP), R1 MOVL #17694976, 88(SP) MOVAB 96(SP), 92(SP) MOVAB 12(SP), R0 MOVL #2359300, (R0)+ CLRQ (R0)+ MOVL #7077892, (R0)+ CLRQ (R0)+ MOVL #1572868, (R0)+ CLRQ (R0)+ MOVW (R1), (R0)+ MOVZBW #134, (R0)+ MOVL 4(R1), (R0)+ CLRL (R0)+ MOVW (R2), (R0)+ MOVW #42, (R0)+ MOVL 4(R2), (R0)+ CLRL (R0)+ MOVW 88(SP), (R0)+ MOVZBW #88, (R0)+ MOVL 92(SP), (R0)+ MOVAB (SP), (R0)+ CLRL (R0)+ CLRQ -(SP) PUSHAB 12(SP) PUSHAB 24(SP) MOVQ #19, -(SP) CLRL -(SP) CALLS #7, G^SYS$SNDJBCW BLBC R0, 2$ BLBS 4(SP), 1$ MOVZWL 4(SP), R01$: BLBC R0, 2$ MOVW (SP), 88(SP) PUSHAB 88(SP) CALLS #1, G^LIB$PUT_OUTPUT2$: RET .EXTRN SYS$GETQUIWU.3: .ENTRY CHECK_QUEUE, ^M<> MOVAB -320(SP), SP MOVL 4(AP), R1 MOVL #17694976, 56(SP) MOVAB 64(SP), 60(SP) MOVAB 16(SP), R0 MOVW (R1), (R0)+ MOVZBW #77, (R0)+ MOVL 4(R1), (R0)+ CLRL (R0)+ MOVL #4521988, (R0)+ MOVAB (SP), (R0)+ CLRL (R0)+ MOVL #4653060, (R0)+ MOVAB 4(SP), (R0)+ CLRQ (R0)+ CLRQ -(SP) PUSHAB 16(SP) PUSHAB 28(SP) MOVQ #6, -(SP) CLRL -(SP) CALLS #7, G^SYS$GETQUIW BLBS 8(SP), 1$ MOVL 8(SP), R01$: BLBC R0, 2$ BLBS 3(SP), 2$ BBS #2, 2(SP), 2$ BBS #1, 5(SP), 2$ MOVL #294970, R02$: RET .END**[HUNTER.SUPSER.V54C.C]INSTALL_GUIDE.SDML;1+,b(.B/ 4nBB`- 0123KPWOC56 ~73䵖89GHJ  SUPSER054.Cb( *[HUNTER.SUPSER.V54C.C]INSTALL_GUIDE.SDML;1nB/ !H! Copyright 1992 by Hunter Goatley. All rights reserved. PermissionK! is given to freely distribute and modify this software for no commercial5! gain as long as this copyright notice is retained.! File: INSTALL_GUIDE.SDML2 Author: Hunter Goatley, goathunter@WKUVX1.BITNET Date: May 13, 1992 Abstract:@ This file is the VAX DOCUMENT source for the _Supervisor Series@ Installation Guide_. It is partially based on the installation: guide for MX (Message Exchange), written by Matt Madison. Modified by:* 01-002 Hunter Goatley 5-OCT-1992 21:25 Updated for v5.4.* 01-001 Hunter Goatley 10-AUG-1992 12:52 Updated for v5.3.* 01-000 Hunter Goatley 13-MAY-1992 10:28 Genesis. )(SUPSER\Supervisor Series)0(WKU\Western Kentucky University)7(SUPGUIDE\SUPERVISOR Reference Guide)<(RELNOTES\Supervisor Series Release Notes)2(PHOGUIDE\PHOTO Reference Guide)8(AUTHDOC\VMS Authorize Utility Manual)(VER\v5.4)"(KITNAME\SUPSER054)(instblks\3,000)(sysdisk\2,500)(supdisk\700)(phodisk\500)(docdisk\1,100)(srcdisk\1,000) #(INSTALL_GUIDE_FRONT) -(Supervisor Series Installation Guide)��<ABSTRACT>(October 1992)�<P>�<�This manual provides installation and setup instructions forF�the <REFERENCE>(SUPSER), terminal monitoring software for VMS systems. �<ENDABSTRACT>�*�<REVISION_INFO>(This is a revised manual.)@�<REVISION_INFO>(Operating System and Version:\VMS V5.0 or later)G�<REVISION_INFO>(Software Version:\<REFERENCE>(SUPSER) <REFERENCE>(VER))�8�<ENDTITLE_PAGE>(Academic Computing and Research ServicesC� <LINE>Western Kentucky University<LINE>Bowling Green, Kentucky)����<COPYRIGHT_PAGE>�<PRINT_DATE>(5 October 1992)�<P>�C�Permission is granted to copy and redistribute this document for no��commercial gain.���<P>�H�The information in this document is subject to change without notice andJ�should not be construed as a commitment by the author. The author assumesB�no responsibility for any errors that may appear in this document.���<P>�D�<EMPHASIS>(DISCLAIMER:\BOLD) The software described in this documentI�is provided <QUOTE>(<EMPHASIS>(as is\BOLD)). No guarantee is made by the�C�author or the author's employer as to the suitability, reliability,�6�security, usefulness, or performance of this software.���<P>�C�Neither <REFERENCE>(WKU) nor Hunter Goatley are responsible for any�4�losses that may occur from the use of this software.��A�<P>The following are trademarks of Digital Equipment Corporation:��<TABLE>�!�<TABLE_ATTRIBUTES>(SINGLE_SPACED)��<TABLE_SETUP>(3\20\20)�<TABLE_ROW>(DEC\VAX\VMS)�<TABLE_ROW>(DECnet\UCX\UIS)� �<ENDTABLE>��<�<COPYRIGHT_DATE>(1992\Hunter Goatley. ALL RIGHTS RESERVED.)���<ENDCOPYRIGHT_PAGE>����<CONTENTS_FILE>����<PREFACE>(7\INSTALL_GUIDE_PREF)�?�<P>This guide describes how to install the <REFERENCE>(SUPSER).���*�<HEAD1>(Intended Audience\INSTALL_GUIDE_3)�<P>�G�This manual is intended for use by the system manager or any individual�C�responsible for installing and maintaining the <REFERENCE>(SUPSER).���+�<HEAD1>(Document Structure\INSTALL_GUIDE_4)��<P>�;�This guide consists of three chapters and three appendices.��<TABLE>��<TABLE_SETUP>(2\10)�=�<TABLE_ROW>(Chapter 1\Contains pre-installation information.)�P�<TABLE_ROW>(Chapter 2\Describes the <REFERENCE>(SUPSER) installation procedure.)>�<TABLE_ROW>(Chapter 3\Contains post-installation information.)D�<TABLE_ROW>(Appendix A\Contains a listing of a sample installation.)H�<TABLE_ROW>(Appendix B\Describes the contents of the <REFERENCE>(SUPSER)� distribution kit.)P�<TABLE_ROW>(Appendix C\Contains a list of the files created by an installation.) �<ENDTABLE>��*�<HEAD1>(Related Documents\INSTALL_GUIDE_5)�<P>�?�You can find additional information in the following documents:����<LIST>(UNNUMBERED);�<LE><REFERENCE>(SUPGUIDE) describes the SUPERVISOR utility.�E�<LE><REFERENCE>(PHOGUIDE) describes the PHOTO and PLAYBACK utilities.�F�<LE><REFERENCE>(RELNOTES) contain information and updates not includedM�in this manual. The release notes are part of the software distribution kit.�E�<LE><REFERENCE>(AUTHDOC), part of the VMS documentation set, contains�,�information about the VMS AUTHORIZE utility. �<ENDLIST>� �<ENDPREFACE>�<ENDFRONT_MATTER>���I�<CHAPTER>(Preparing to Install the <� ����� �������REFERENCE>(SUPSER)\INSTALL_GUIDE_CH1)��<P>�I�This chapter describes the steps that should be taken prior to installing��the <REFERENCE>(SUPSER).��.�<HEAD1>(Prerequisite Software\INSTALL_GUIDE_8)�<P>�B�The <REFERENCE>(SUPSER) requires VMS version V5.0 or later to run.��;�<HEAD1>(Accessing the Online Release Notes\INSTALL_GUIDE_9)��<P>�D�The <REFERENCE>(SUPSER) provides online release notes, which you canH�display or print by using VMSINSTAL with the OPTIONS N parameter. AfterE�the installation, you can read the release notes by printing the file�H�SYS$HELP:SUPSERvvn.RELEASE_NOTES, where <quote>(vvn) denotes the versionI�number of the software. For example, for version <REFERENCE>(VER) of the�A�<REFERENCE>(SUPSER), the file name would be <REFERENCE>(KITNAME).���=�<HEAD1>(Installation Procedure Requirements\INSTALL_GUIDE_10)��<P>�D�Before installing the <REFERENCE>(SUPSER), ensure that the following0�privileges, resources, and requirements are met:���<LIST>(UNNUMBERED).�<LE> VMS version V5.0 through V5.5 is running.H�<LE> All the normal privileges and quotas of the default SYSTEM account.K�<LE> Approximately 2 to 15 minutes, depending on your system configuration,�+� distribution medium, and options selected.��<MARK>F�<LE> Approximately <REFERENCE>(INSTBLKS) free blocks on a disk for useB� during the installation procedure; this can be the system disk or0� a disk specified with the VMSINSTAL AWD option.J�<LE> Approximately <REFERENCE>(SYSDISK) free blocks on the system disk forC� a full installation. The requirements per product are as follows:���� <LIST>(UNNUMBERED)�8� <LE> Approximately <REFERENCE>(supdisk) free blocks for#� SUPERVISOR and its documentation.�8� <LE> Approximately <REFERENCE>(phodisk) free blocks for� PHOTO and its documentation.8� <LE> Approximately <REFERENCE>(srcdisk) free blocks for*� the sources for the <REFERENCE>(SUPSER). � <ENDLIST> �<ENDMARK>� �<ENDLIST>���?�<CHAPTER>(Installing the <REFERENCE>(SUPSER)\INSTALL_GUIDE_CH2)��<P>�G�The <REFERENCE>(SUPSER) uses VMSINSTAL for installation. If you do not�J�know how to use VMSINSTAL, you should first read the chapter on installingA�software in the <emphasis>(VMS System Manager's Manual). For the�E�installation, you should be logged into the SYSTEM account or another��suitably privileged account.��7�<HEAD1>(Invoking VMSINSTAL\INSTALL_GUIDE_CH2_VMSINSTAL)��<P>�4�Invoke VMSINSTAL to install the <REFERENCE>(SUPSER).�� �<INTERACTIVE>�1�<S>($ )<U>(@SYS$UPDATE:VMSINSTAL SUPSERvvn ddcu:)��<ENDINTERACTIVE>���<P>�K�Substitute the appropriate values for <EMPHASIS>(vvn) and <EMPHASIS>(ddcu).��� �<INTERACTIVE>���?� VAX/VMS Software Product Installation Procedure V5.4-2����It is dd-Mmm-yyyy at hh:mm.�/�Enter a question mark (?) at any time for help.����<ENDINTERACTIVE>���<P>�H�If there are any users logged into the system, you will see the message:�� �<INTERACTIVE>�>�%VMSINSTAL-W-ACTIVE, The following processes are still active:�...process names...����<ENDINTERACTIVE>�<P>�I�You can install the <REFERENCE>(SUPSER) while users are �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ण� ������ SUPSER054.C��������������������b(�� ��*[HUNTER.SUPSER.V54C.C]INSTALL_GUIDE.SDML;1�������������������������������������������������������������������������������������n�����B�������������������������H�������������logged in, though�I�no user should be running one of the <REFERENCE>(SUPSER) utilities from a��previous version.��� �<INTERACTIVE>�+�<S>(* Do you want to continue anyway [NO]?)��<ENDINTERACTIVE>���<P>�$�If you wish to continue, answer YES.�� �<INTERACTIVE>�C�<S>(* Are you satisfied with the backup of your system disk [YES]?)��<ENDINTERACTIVE>���<P>�A�If you feel comfortable with your system disk backup, answer YES.�G�Otherwise, answer NO, perform the backup, then restart the installation� �procedure.��.�<HEAD1>(Installation Options\INSTALL_GUIDE_15)�<P>The next question is��� �<INTERACTIVE>�F�<S>(* Do you want to purge files replaced by this installation [YES]?)�<ENDINTERACTIVE>���<P>�E�If this is the first time you have installed the <REFERENCE>(SUPSER),�9�answering NO to this question can save some time when the�;�<REFERENCE>(SUPSER) files are moved into their directories.���9�<HEAD1>(Disk and Directory Selection\INSTALL_GUIDE_CH2_4)��<P>�I�The <REFERENCE>(SUPSER) is installed in its own rooted directory to avoid�F�mixing <REFERENCE>(SUPSER) files with normal VMS files. The only fileH�copied to a VMS directory is the file containing the <REFERENCE>(SUPSER)+�release notes, which is copied to SYS$HELP.����<P>�I�The <REFERENCE>(SUPSER) can reside on any disk. The installation prompts�G�you for the name of the disk and top-level directory for the utilities.�&�The default is SYS$SYSDEVICE:[SUPSER].�� �<INTERACTIVE>�O�<S>(* Enter the top-level directory for the Supervisor Series [DUA0:[SUPSER]]:)��<ENDINTERACTIVE>���<P>�J�Once a directory has been specified (or <KEY>(RETURN) is pressed to selectJ�the default), the directory is created and a message like the following is �displayed:�� �<INTERACTIVE>�S�<S>(%VMSINSTAL-I-SYSDIR, This product creates system disk directory DUA0:[SUPSER].)��<ENDINTERACTIVE>��-�<HEAD1>(Component Selection\INSTALL_GUIDE_16)��<P>�E�The <REFERENCE>(SUPSER) installation provides a number of options for�C�installing individual components. The following list describes the��options.���<LIST>(UNNUMBERED)E�<LE> Install <EMPHASIS>(only) the sources to the <REFERENCE>(SUPSER).���G� <P>Normally, the images for PHOTO, PLAYBACK, and SUPERVISOR are linked�D� from object files included in the distribution. If you select this=� option, the documentation files and the source files will be�6� installed, but the utility images will not be linked.��C� <P>You should select this option only if you prefer to rebuild the�%� images and ``install'' them by hand.���C�<LE> Install PHOTO (and PLAYBACK). If you choose to install PHOTO,1A� you will be asked whether or not the commands should be added toeB� the DCLTABLES (for system-wide definition) and whether or not the0� on-line help should be added to a help library.��>�<LE> Install SUPERVISOR. If you choose to install SUPERVISOR,A� you will be asked whether or not the commands should be added totB� the DCLTABLES (for system-wide definition) and whether or not the0� on-line help should be added to a help library.��A� <NOTE>For security reasons, it is not recommend that you include %� the SUPERVISOR command in DCLTABLES.H � <ENDNOTE>��4�<LE> Install the sources for each utility installed. �<ENDLIST>e��8�<HEAD2>(Installing the Sources Only\INSTALL_GUIDE_CH2_5)�<P>tF�The first question asked gives you the opportunity to install only the$�sources for the <REFERENCE>(SUPSER):�� �<INTERACTIVE>tN�<S>(* Do you want to install ONLY the sources for the Supervisor Series [NO]?)�<ENDINTERACTIVE>���<P>uJ�Answering YES will cause the installation to skip the questions related toK�individual components and begin copying the documentation and source files.B&�There will be no more questions asked.���<P>5H�If you answer NO the question above, you will be prompted for whether or>�not you wish to install the sources for the products selected:�� �<INTERACTIVE>,J�<S>(* Do you want to install the sources for the Supervisor Series [YES]?)�<ENDINTERACTIVE>���<P>>K�Answering YES to the question will install the appropriate source files forP�the utilities to be installed.��:�<HEAD2>(Installing PHOTO and PLAYBACK\INSTALL_GUIDE_CH2_6)�<P> 6�The installation will next ask the following question:�� �<INTERACTIVE>s*�<S>(* Do you want to install PHOTO [YES]?)�<ENDINTERACTIVE>���<P>\D�If you answer NO to the question, the installation will proceed with#�asking about installing SUPERVISOR.E���<P>mI�If you choose to install PHOTO, you will be given the opportunity to haveID�the PHOTO and PLAYBACK commands added to the system-wide DCLTABLES. I�Answering YES to the following question will create ``real'' DCL commandst<�that are automatically available to all users on the system:�� �<INTERACTIVE> M�<S>(* Do you want to add the PHOTO and PLAYBACK commands to DCLTABLES [YES]?)t�<ENDINTERACTIVE>���<P>�J�You will then be asked whether or not you want to install the on-line helpK�for PHOTO and PLAYBACK in a help library. If you answer YES, you will alsoi/�be asked which library should contain the help.e�� �<INTERACTIVE>�I�<S>(* Do you want to add the PHOTO and PLAYBACK help to a library [YES]?)i�<ENDINTERACTIVE>���<P>mD�The installation will present a number of choices for the library toG�receive the on-line help. In addition to offering the system-wide helpsB�library as an option, the installation procedure will look for anyI�HLP$LIBRARY commands defined in the system directory and will offer those\�too:�� �<INTERACTIVE>\G�<S>( This installation updates the help library so that the DCL)9F�<S>( command "$ HELP PHOTO" will provide information about the)I�<S>( PHOTO utility and "$ HELP PLAYBACK" will provide information)o(�<S>( about the PLAYBACK utility.)�<S>()(J�<S>( There are several help libraries that these help files can be)*�<S>( placed in. Some of them are:)�<S>() ,�<S>( SYS$SYSROOT:[SYSHLP]HELPLIB.HLB)(�<S>( WKU$ROOT:[HELP]WKU_HELP.HLB)�<S>()G[�<S>(* Which library should have PHOTO and PLAYBACK help [SYS$SYSROOT:[SYSHLP]HELPLIB.HLB]:)E�<ENDINTERACTIVE>��2�<HEAD2>(Installing SUPERVISOR\INSTALL_GUIDE_CH2_7)�<P>�K�Whether or not you installed PHOTO, the installation procedure next asks ifu�you want to install SUPERVISOR:i�� �<INTERACTIVE>i/�<S>(* Do you want to install SUPERVISOR [YES]?) �<ENDINTERACTIVE>���<P>tD�If you answer NO to the question, the installation will proceed with.�the installation of PHOTO, if it was selected.���<P>dN�If you choose to install SUPERVISOR, you will be given the opportunity to have:�the SUPERVISE command added to the system-wide DCLTABLES. J�Answering YES to the following question will create a ``real'' DCL command;�that is automatically available to all users on the system:��� �<INTERACTIVE>HB�<S>(* Do you want to add the SUPERVISE command to DCLTABLES [NO]?)�<ENDINTERACTIVE>���<NOTE>F�It is not recommended that you add the SUPERVISE command to DCLTABLES.J�Answering NO to the question will help keep unauthorized users from trying�to run the utility., �<ENDNOTE>����<P>tJ�You will then be asked whether or not you want to install the on-line helpK�for SUPERVISE in a help library. If you answer YES, you will also be askedE&�which library should contain the help.�� �<INTERACTIVE>dA�<S>(* Do you want to add the SUPERVISOR help to a library [YES]?)(�<ENDINTERACTIVE>���<P>TI�Like it does for PHOTO, the installation will present a number of choicest,�for the library to receive the on-line help:�� �<INTERACTIVE>LS�<S>(* Which library should have SUPERVISOR help [SYS$SYSROOT:[SYSHLP]HELPLIB.HLB]:)n�<ENDINTERACTIVE>���<P>n?�If you specified a library to receive the PHOTO help, that samen1�library ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@� ������ SUPSER054.C��������������������b(�� ��*[HUNTER.SUPSER.V54C.C]INSTALL_GUIDE.SDML;1�������������������������������������������������������������������������������������n�����B�������������������������\�������������is offered as the default to this prompt.l��+�<HEAD1>(The Installation Completes\optinst)o�<P>vI�After the configuration questions, the selected components are installed.RC�Files are copied from each save set of the installation kit and theRK�appropriate images are linked, then all installed files are copied to theirUE�destination directories. Informational messages about the individualt#�components are displayed as needed.a��1�<CHAPTER>(Post-Installation Information\postinst)V�<P>r<�This chapter contains important information about setting up6�<REFERENCE>(SUPSER) configuration and startup options.��:�<HEAD1>(Starting the <REFERENCE>(SUPSER)\INSTALL_GUIDE_36)�<P>�K�Once the installation is complete, you can start the <REFERENCE>(SUPSER) byE>�executing the command procedure SUPSER_STARTUP.COM, located inI�SUPSER_ROOT:[COM]. This procedure will define the SUPSER_ROOT logical inhI�the system logical name table and install the PHOTO and SUPERVISOR imageso�with the necessary privileges.���<P>tE�To start the <REFERENCE>(SUPSER) automatically at system startup, youUD�should add a line like the following to the system startup procedure"�(SYSTARTUP_V5.COM in SYS$MANAGER):�� �<INTERACTIVE>l&�$ @dua0:[supser.com]supser_startup.com�<ENDINTERACTIVE>���<P>tH�You should, of course, specify the actual device and top-level directory+�that you specified during the installation.���3�<HEAD1>(Creating SUPERVISOR Identifiers\create_ids)E�<P>>H�If you installed SUPERVISOR, you must also create the rights identifiersC�used to control access to the SUPERVISOR functions. There are sevenoL�SUPERVISOR identifiers, described fully in the manual <REFERENCE>(SUPGUIDE).���<P>eD�A command procedure has been provided that can be used to create theE�identifiers. To run it, simply give the following command at the DCLi�prompt:T�� �<INTERACTIVE>C.�$ @SUPSER_ROOT:[COM]SUPERVISOR_IDENTIFIERS.COM�<ENDINTERACTIVE>���<P>.H�The following example shows the commands used to create the identifiers:�� �<INTERACTIVE>�#�<S>($ )<U>(SET DEFAULT SYS$SYSTEM:)e�<S>($ )<U>(RUN AUTHORIZE)E+�<S>(UAF> )<U>(ADD/IDENTIFIER SUPSER_ADVISE) ,�<S>(UAF> )<U>(ADD/IDENTIFIER SUPSER_OBSERVE)1�<S>(UAF> )<U>(ADD/IDENTIFIER SUPSER_ADVISE_GROUP) 2�<S>(UAF> )<U>(ADD/IDENTIFIER SUPSER_OBSERVE_GROUP)/�<S>(UAF> )<U>(ADD/IDENTIFIER SUPSER_LOGGED_OUT)n*�<S>(UAF> )<U>(ADD/IDENTIFIER SUPSER_QUIET)1�<S>(UAF> )<U>(ADD/IDENTIFIER SUPSER_NO_SUPERVISE)p�<ENDINTERACTIVE>���<NOTE>F�If the identifiers already exist, you will receive error messages fromK�AUTHORIZE stating that the identifiers already exist. You can ignore these �errors.e �<ENDNOTE>>��<�<HEAD1>(Using the Bookreader Documentation\INSTALL_GUIDE_33)�<P>(?�The command procedure SUPSER_STARTUP.COM automatically adds the�C�SUPSER_ROOT:[DOC] name to the DECW$BOOK logical name search list ifo@�the file LIBRARY.DECW$BOOKSHELF is found in the [DOC] directory.��7�<HEAD1>(Registering Your Installation\INSTALL_GUIDE_37)d�<P>aH�The <REFERENCE>(SUPSER) is freely distributable software, and no licenseD�is required to use it. Registration of your installation is at yourF�discretion and is used by the author only to determine the size of theH�<REFERENCE>(SUPSER) user base and the future directions for the package.��C�<P>To register, simply send a note to the author with the followingP �information:���<LIST>(SIMPLE)�<LE>Installer's name�<LE>Company name and address9�<LE>System(s) on which the <REFERENCE>(SUPSER) is runningk9�<LE>Which products you're using (PHOTO and/or SUPERVISOR)R2�<LE>Any comments and/or suggestions you might have �<ENDLIST>v��%�<P>You can send it electronically to t)�<emphasis>(goathunter@WKUVX1.BITNET\bold)tI�(or <emphasis>(goathunter%WKUVX1.BITNET@UKCC.UKY.EDU\bold) via Internet),o?�by fax to +1 502 745 5387, or by mail to the following address:R�<LIST>(SIMPLE)�<LE>Hunter Goatley�<LE>Academic Computing, STH 226e�<LE>Western Kentucky Universityo �<LE>Bowling Green, KY 42101 USA �<ENDLIST>S��G�<APPENDIX>(Sample <REFERENCE>(SUPSER) Installation\INSTALL_GUIDE_APP_A) �<P>uA�This appendix includes a sample <REFERENCE>(SUPSER) installation.a���<INTERACTIVE>(WIDE)c<�<S>($ )<U>(@SYS$UPDATE:VMSINSTAL <REFERENCE>(KITNAME) MUA0:)����5� VAX/VMS Software Product Installation Procedure V5.5������It is 13-MAY-1992 at 07:30.(��/�Enter a question mark (?) at any time for help.s��D�%VMSINSTAL-W-NOTSYSTEM, You are not logged in to the SYSTEM account.>�%VMSINSTAL-W-ACTIVE, The following processes are still active: � Polter Goat � DECW$TE_0F2Bi4�<S>(* Do you want to continue anyway [NO]? )<U>(YES)U�<S>(* Are you satisfied with the backup of your system disk [YES]?)<U>(<KEY>(RETURN)) ����)�The following products will be processed:>���<MARK> � SUPSER V5.4P �<ENDMARK>A���<MARK>/� Beginning installation of SUPSER V5.4 at 07:30 �<ENDMARK>r��6�%VMSINSTAL-I-RESTORE, Restoring product save set A ...K�%VMSINSTAL-I-RELMOVED, Product's release notes have been moved to SYS$HELP.o���<MARK>+� Supervisor Series v5.4 Installationi �<ENDMARK>r��� SUPERVISOR and PHOTO���<MARK>A� Copyright 1992 by Hunter Goatley. All Rights Reserved. >� Redistribution for no commercial gain is permitted. �<ENDMARK>e��Y�<S>(* Do you want to purge files replaced by this installation [YES]? )<U>(<KEY>(RETURN)) ��<� The Supervisor Series is installed in its own rooted>� directory to avoid mixing Supervisor Series files with@� normal VMS files. The directory can reside on any disk.��=� THERE ARE NO FILES COPIED TO SYS$SYSTEM, SYS$LIBRARY,b=� etc. (The only file copied to a VMS directory is thes9� Release Notes file, which is copied to SYS$HELP.)n��i�<S>(* Enter the top-level directory for the Supervisor Series [WKUVX1$DUA0:[SUPSER]]: )<U>(<KEY>(RETURN))lO�%VMSINSTAL-I-SYSDIR, This product creates system disk directory DUA0:[SUPSER].y��B� The Supervisor Series is normally installed by linking theE� object files packed with the kit. The installation will also A� give you a chance to add DCL commands and on-line help ton� your system.��B� The sources are also provided. You can either install the@� products and the sources, or you can install the sources&� only and rebuild them by hand.��D� If you only want to install the sources and want to skip theA� product installations, enter YES to the following prompt.T��a�<S>(* Do you want to install ONLY the sources for the Supervisor Series [NO]? )<U>(<KEY>(RETURN))V��C� The answer to the following question will determine whethersA� the appropriate source files for SUPERVISOR and PHOTO arei� installed.��]�<S>(* Do you want to install the sources for the Supervisor Series [YES]? )<U>(<KEY>(RETURN))I��=�<S>(* Do you want to install PHOTO [YES]? )<U>(<KEY>(RETURN))>��D� The PHOTO command can be added to the system-wide DCLTABLES,?� making the command available to all users, or it can bes%� defined as a foreign command.h��f�<S>(* Do you want to install the PHOTO command in the system-wide DCLTABLES [YES]? )<U>(<KEY>(RETURN))��O�<S>(* Do you want to add the PHOTO help to a library [YES]? )<U>(<KEY>(RETURN))l��B� This installation updates the help library so that the DCLA� command "$ HELP PHOTO" will provide information about thetD� PHOTO utility and "$ HELP PLAYBACK" will provide information#� about the PLAYBACK utility. ��E� There are several help libraries that these help files can be�%� placed in. Some of them are:h��'� SYS$SYSROOT:[SYSHLP]HELPLIB.HLBn#� WKU$ROOT:[HELP]WKU_HELP.HLBt��n�<S>(* Whic���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������W <� ������ SUPSER054.C��������������������b(�� ��*[HUNTER.SUPSER.V54C.C]INSTALL_GUIDE.SDML;1�������������������������������������������������������������������������������������n�����B�������������������������)������.�������h library should have PHOTO and PLAYBACK help [SYS$SYSROOT:[SYSHLP]HELPLIB.HLB]: )<U>(<KEY>(RETURN))��B�<S>(* Do you want to install SUPERVISOR [YES]? )<U>(<KEY>(RETURN))��=� The SUPERVISE command can be added to the system-widek>� DCLTABLES, making it available to all users, or it can>� be defined as a foreign command on a per-user basis or� in SYS$SYLOGIN.e��A� For security purposes, it is recommended that the command <� be defined as a foreign command on a per-user basis.��U�<S>(* Do you want to add the SUPERVISE command to DCLTABLES [NO]? )<U>(<KEY>(RETURN))S��B� This installation updates the help library so that the DCLE� command "$ HELP SUPERVISE" will provide information about the � SUPERVISOR utility.I��E� Whether or not you elect to place the files in a library, therA� files will be left in the Supervisor Series directory forB� future reference.���T�<S>(* Do you want to add the SUPERVISOR help to a library [YES]? )<U>(<KEY>(RETURN))��A� Unless the SUPERVISE command was added to the system-wide C� DCLTABLES, it is not recommended that the help be installedO>� in the system help library (SYS$SYSROOT:[HELPLIB.HLB).��B� There are several help libraries that can contain the help!� files. Some of them are:u��'� SYS$SYSROOT:[SYSHLP]HELPLIB.HLBg#� WKU$ROOT:[HELP]WKU_HELP.HLBE��m�<S>(* Which library should contain the SUPERVISOR help [SYS$SYSROOT:[SYSHLP]HELPLIB.HLB]: )<U>(<KEY>(RETURN))'��B� No further questions will be asked. The Supervisor SeriesE� installation will now continue for 2 to 15 minutes, dependingt;� on your type of media and the system configuration.o��S�%VMSINSTAL-I-SYSDIR, This product creates system disk directory DUA0:[SUPSER.EXE].wS�%VMSINSTAL-I-SYSDIR, This product creates system disk directory DUA0:[SUPSER.COM].tS�%VMSINSTAL-I-SYSDIR, This product creates system disk directory DUA0:[SUPSER.DOC].ES�%VMSINSTAL-I-SYSDIR, This product creates system disk directory DUA0:[SUPSER.SRC].h*�%SUPSER-I-LINKING, Linking image PHOTO....-�%SUPSER-I-LINKING, Linking image PLAYBACK.... �<MARK>+�%SUPSER-I-LINKING, Linking image HANDIN....o �<ENDMARK>O/�%SUPSER-I-LINKING, Linking image SUPERVISOR....e��/�%SUPSER-I-INSTDOC, Installing documentation....���6�%VMSINSTAL-I-RESTORE, Restoring product save set B ...��)�%SUPSER-I-INSTDOC, Installing sources....E��6�%VMSINSTAL-I-RESTORE, Restoring product save set C ...��>� To install the Supervisor Series images and define the;� SUPSER_ROOT logical, execute the following command.t��@� To automate this procedure at system startup, you shouldA� also add the following line to the system startup commandl1� procedure (SYS$MANAGER:SYSTARTUP_V5.COM).t��1� $ @DUA0:[SUPSER.COM]SUPSER_STARTUP.COMt��N�%VMSINSTAL-I-MOVEFILES, Files will now be moved to their target directories...���<MARK>/� Installation of SUPSER V5.5 completed at 07:34o �<ENDMARK>V��"� VMSINSTAL procedure done at 07:35���$o�<ENDINTERACTIVE> �<ENDAPPENDIX>N��<�<APPENDIX>(Contents of Distribution Kit\INSTALL_GUIDE_APP_B)�<P>eH�The <REFERENCE>(SUPSER) is provided in a VMSINSTALlable distribution kitE�consisting of three save sets. Each save set is briefly described in �<REFERENCE>(SSTAB).T��=�<TABLE>(<REFERENCE>(SUPSER) installation kit save sets\SSTAB)e�<TABLE_SETUP>(2\15)c �<TABLE_HEADS>(Save Set\Contents)J�<TABLE_ROW>(<REFERENCE>(KITNAME).A\The KITINSTAL command procedure and its-� supporting files, object code common to thea"� <REFERENCE>(SUPSER) components.)R�<TABLE_ROW>(<REFERENCE>(KITNAME).B\Documentation files, in PostScript, Bookreader,� and plain ASCII formats.)TE�<TABLE_ROW>(<REFERENCE>(KITNAME).C\<REFERENCE>(SUPSER) source files.)� �<ENDTABLE> �<ENDAPPENDIX>,��A�<APPENDIX>(Files Created During Installation\INSTALL_GUIDE_APP_C)d�<P>nH�The files in <REFERENCE>(FILETAB) are created during the installation of!�the <REFERENCE>(SUPSER) software.OF�<table>(<REFERENCE>(SUPSER) files created during installation\filetab)�<table_attributes>(WIDE)�<table_setup>(2\30)U,�<FOOTNOTE>(1\Only if sources were installed))�<FOOTNOTE>(2\Only if PHOTO was installed)m.�<FOOTNOTE>(3\Only if SUPERVISOR was installed)$�<table_heads>(File name\Description) �<TABLE_UNIT>7�<TABLE_UNIT_HEADS>(<span>(2)Files in SUPSER_ROOT:[COM])IB�<TABLE_ROW>(SUPERVISOR_IDENTIFIERS.COM\Command procedure to create � SUPERVISOR rights identifiers)9�<TABLE_ROW>(SUPSER_STARTUP.COM\Startup command procedure)R�<ENDTABLE_UNIT>< �<TABLE_UNIT>7�<TABLE_UNIT_HEADS>(<span>(2)Files in SUPSER_ROOT:[DOC])(D�<TABLE_ROW>(INSTALL_GUIDE.DECW$BOOK\Installation guide (Bookreader))=�<TABLE_ROW>(INSTALL_GUIDE.PS\Installation guide (PostScript))(9�<TABLE_ROW>(INSTALL_GUIDE.TXT\Installation guide (ASCII))US�<TABLE_ROW>(LIBRARY.DECW$BOOKSHELF\Library bookshelf file for Bookreader documents)(K�<TABLE_ROW>(PHOTO.DECW$BOOK\<REFERENCE>(PHOGUIDE) (Bookreader)<FOOTREF>(2))fF�<TABLE_ROW>(PHOTO.HLP\On-line help for PHOTO and PLAYBACK<FOOTREF>(2))D�<TABLE_ROW>(PHOTO.PS\<REFERENCE>(PHOGUIDE) (PostScript)<FOOTREF>(2))@�<TABLE_ROW>(PHOTO.TXT\<REFERENCE>(PHOGUIDE) (ASCII)<FOOTREF>(2))P�<TABLE_ROW>(SUPERVISOR.DECW$BOOK\<REFERENCE>(SUPGUIDE) (Bookreader)<FOOTREF>(3))B�<TABLE_ROW>(SUPERVISOR.HLP\On-line help for SUPERVISE<FOOTREF>(3))I�<TABLE_ROW>(SUPERVISOR.PS\<REFERENCE>(SUPGUIDE) (PostScript)<FOOTREF>(3))eE�<TABLE_ROW>(SUPERVISOR.TXT\<REFERENCE>(SUPGUIDE) (ASCII)<FOOTREF>(3))aJ�<TABLE_ROW>(SUPSER.DECW$BOOKSHELF\Bookshelf file for Bookreader documents)�<ENDTABLE_UNIT>e �<TABLE_UNIT>7�<TABLE_UNIT_HEADS>(<span>(2)Files in SUPSER_ROOT:[EXE])sK�<TABLE_ROW>(PHOTO.CLD\CLD file for PHOTO and PLAYBACK commands<FOOTREF>(2))bF�<TABLE_ROW>(PHOTO.EXE\Executable image for PHOTO utility <FOOTREF>(2))K�<TABLE_ROW>(PLAYBACK.EXE\Executable image for PLAYBACK utility<FOOTREF>(2)))�<MARK>?�<TABLE_ROW>(HANDIN.CLD\CLD file for HANDIN command<FOOTREF>(2))iG�<TABLE_ROW>(HANDIN.EXE\Executable image for HANDIN utility<FOOTREF>(2))P �<ENDMARK> F�<TABLE_ROW>(SUPERVISOR.CLD\CLD file for SUPERVISE command<FOOTREF>(3))N�<TABLE_ROW>(SUPERVISOR.EXE\Executable image for SUPERVISE command<FOOTREF>(3))�<ENDTABLE_UNIT>e �<TABLE_UNIT>D�<TABLE_UNIT_HEADS>(<span>(2)Files in SUPSER_ROOT:[SRC] <FOOTREF>(1))G�<TABLE_ROW>(ADVISORMAR.MAR\MACRO source for ADVISOR module<FOOTREF>(3))u�<MARK>H�<TABLE_ROW>(BUILD.COM\Command procedure to build the Series from source)T�<TABLE_ROW>(BUILD_MACRO.COM\Command procedure to build the Series from MACRO source) �<ENDMARK>nA�<TABLE_ROW>(CHECK_PRIVS.B32\BLISS-32 source for privilege checks)RB�<TABLE_ROW>(CHECK_PRIVS.MAR\MACRO-32 source generated by BLISS-32)>�<TABLE_ROW>(CVTB32MAR.TPU\Convert BLISS-32 .LIS files to .MAR)G�<TABLE_ROW>(CVTDOCHELP.TPU\Convert DOCUMENT .HLP to regular .HLP files)0:�<TABLE_ROW>(DESCRIP.MMS\MMS description file for building)�<MARK>I�<TABLE_ROW>(HANDIN.MAR\MACRO-32 source generated by BLISS-32<FOOTREF>(2))TK�<TABLE_ROW>(HANDIN_CLD.CLD\CLD definition for HANDIN CLI table<FOOTREF>(2))�O�<TABLE_ROW>(HANDIN_SUBS.B32\BLISS-32 source for HANDIN subroutines<FOOTREF>(2))hN�<TABLE_ROW>(HANDIN_SUBS.MAR\MACRO-32 source generated by BLISS-32<FOOTREF>(2))I�<TABLE_ROW>(HANDIN.MAR\MACRO-32 source generated by BLISS-32<FOOTREF>(2))�Q�<TABLE_ROW>(PHOTO.B32\BLISS-32 source for PHOTO/HANDIN main routines<FOOTREF>(2))E �<ENDMARK> H�<TABLE_ROW>(PHOTO.MAR\MACRO-32 source generated by BLISS-32<FOOTREF>(2))H�<TABLE_ROW>(PHOTO.SDML\VAX DOCUMENT source for PHOTO manual<FOOTREF>(2))A�<TABLE_ROW>(PHOTOMAR.MAR\MACRO support routines for terminal I/O) C�<TABLE_ROW>(PHOTONP.B32\BLISS-32 source for ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������)d� ������ SUPSER054.C��������������������b(�� ��*[HUNTER.SUPSER.V54C.C]INSTALL_GUIDE.SDML;1�������������������������������������������������������������������������������������n�����B�������������������������� �����=�������nonpaged-pool routines) >�<TABLE_ROW>(PHOTONP.MAR\MACRO-32 source generated by BLISS-32):�<TABLE_ROW>(PHOTOP1.B32\BLISS-32 source for P1-space code)>�<TABLE_ROW>(PHOTOP1.MAR\MACRO-32 source generated by BLISS-32)<�<TABLE_ROW>(PHOTOPAT.B32\BLISS-32 source for non-paged code)?�<TABLE_ROW>(PHOTOPAT.MAR\MACRO-32 source generated by BLISS-32)sI�<TABLE_ROW>(PHOTO_CLD.CLD\CLD definition for PHOTO CLI table<FOOTREF>(2))EO�<TABLE_ROW>(PLAYBACK.B32\BLISS-32 source for PLAYBACK main routine<FOOTREF>(2))cK�<TABLE_ROW>(PLAYBACK.MAR\MACRO-32 source generated by BLISS-32<FOOTREF>(2))SO�<TABLE_ROW>(PLAYBACK_CLD.CLD\CLD definition for PLAYBACK CLI table<FOOTREF>(2))]N�<TABLE_ROW>(PLAYBACK_MSG.MSG\MESSAGE source for PLAYBACK messages<FOOTREF>(2))�<MARK>N�<TABLE_ROW>(PLAYBACK_RTN.MAR\MACRO-32 source generated by BLISS-32<FOOTREF(2)) �<ENDMARK> S�<TABLE_ROW>(SUPERVISOR.B32\BLISS-32 source for SUPERVISOR main routine<FOOTREF>(3))aM�<TABLE_ROW>(SUPERVISOR.MAR\MACRO-32 source generated by BLISS-32<FOOTREF>(3)) R�<TABLE_ROW>(SUPERVISOR.SDML\VAX DOCUMENT source for SUPERVISOR manual<FOOTREF>(3))S�<TABLE_ROW>(SUPERVISOR_CLD.CLD\DCL definition for SUPERVISOR CLI table<FOOTREF>(3))�L�<TABLE_ROW>(<REFERENCE>(KITNAME).SDML\VAX DOCUMENT source for release notes)W�<TABLE_ROW>(SUPSERMSG.MSG\MESSAGE source for PHOTO and SUPERVISOR messages<FOOTREF>(3))l�<MARK>4�<TABLE_ROW>(SUPSER_MACROS.R32\BLISS-32 REQUIRE file) �<ENDMARK>�6�<TABLE_ROW>(TERMBLI.R32\BLISS-32 library REQUIRE file)F�<TABLE_ROW>(TTLOOKUP.B32\BLISS-32 source for terminal lookup routines)?�<TABLE_ROW>(TTLOOKUP.MAR\MACRO-32 source generated by BLISS-32)sG�<TABLE_ROW>(VERSION.B32\BLISS-32 source for routine to get image ident)y>�<TABLE_ROW>(VERSION.MAR\MACRO-32 source generated by BLISS-32)�<ENDTABLE_UNIT> �<TABLE_UNIT>9�<TABLE_UNIT_HEADS>(<span>(2)Files in SYS$COMMON:[SYSHLP])aY�<TABLE_ROW>(<REFERENCE>(KITNAME).RELEASE_NOTES\Release notes for the <REFERENCE>(SUPSER))w�<ENDTABLE_UNIT>e �<ENDTABLE> �<ENDAPPENDIX>mG�<COMMENT>( VAX/DEC CMS REPLACEMENT HISTORY, Element INSTALL_GUIDE.SDML)eC�<COMMENT>( *7 5-OCT-1992 21:37:44 GOATHUNTER "Update for v5.4")iE�<COMMENT>( *6 10-AUG-1992 17:18:26 GOATHUNTER "More v5.3 changes")$D�<COMMENT>( *5 10-AUG-1992 13:08:18 GOATHUNTER "Updated for v5.3")S�<COMMENT>( *4 20-MAY-1992 08:27:24 GOATHUNTER "Fixed preface page number, date") >�<COMMENT>( *3 14-MAY-1992 16:56:17 GOATHUNTER "Fixed typo")I�<COMMENT>( *2 13-MAY-1992 15:01:16 GOATHUNTER "Added Bookreader info")SZ�<COMMENT>( *1 13-MAY-1992 11:30:32 GOATHUNTER "DOCUMENT source for Installation Guide")G�<COMMENT>( VAX/DEC CMS REPLACEMENT HISTORY, Element INSTALL_GUIDE.SDML)U))��B�<S>(* Do you want to install SUPERVISOR [YES]? )<U>(<KEY>(RETURN))��=� The SUPERVISE command can be added to the system-widek>� DCLTABLES, making it available to all users, or it can>� be defined as a foreign command on a per-user basis or� in SYS$SYLOGIN.e��A� For security purposes, it is recommended that the command <� be defined as a foreign command on a per-u��������������!�*�[HUNTER.SUPSER.V54C.C]PHOTO.B32;2�+��,�!���.�f����/��� �4�\���f���f�$��������������������-� ����0���1����2���3������K��P���W���O�g����5���6�#`ٵ��7�2䵖��8����������9����������G����H��J���������������MODULE photocli (DEBUG, ZIP,!� IDENT = 'V5.4b', !7�2� ADDRESSING_MODE(EXTERNAL = GENERAL), !7"� MAIN = photocli) = !7�BEGIN��!�H�! Copyright 1992 by Hunter Goatley. All rights reserved. PermissionK�! is given to freely distribute and modify this software for no commercial�5�! gain as long as this copyright notice is retained.��!��!++��!��! Facility: Supervisor Series�!�,�! Module: PHOTOCLI (main routine for PHOTO)�!�>�! Author: Bob Pasker, Bill Donner, and Terry Way. !46�! The Supervisor Series was written by Precision Data1�! Systems and later acquired by Security Pacific�6�! Software Services. It was put in the public domain+�! in 1992 by Security Pacific's Dan Shoop.��!�-�! Date: Originally written sometime in 1983.��! Version 5.1: April 6, 1992��!�G�! Abstract: The Supervisor Series consists of SUPERVISOR and !4�D�! PHOTO. SUPERVISOR lets a privileged user watch another !4;�! terminal *and* enter input on behalf of the target user,�3�! and PHOTO logs a terminal session to a log file.��!��! Maintainer: Hunter Goatley��! VMS Systems Programmer��! Academic Computing, STH 226�! Western Kentucky University�! Bowling Green, KY 42101�! Phone: 502-745-5251#�! E-mail: goathunter@WKUVX1.BITNET��!��! Modified by:�!�*�! V5.4B Hunter Goatley 21-APR-1993 14:26�! Bumped IDENT to V5.4B.��!�3�! v5.4 Hunter Goatley 26-AUG-1992 19:33 !7�2�! Added code for HANDIN (/VARIANT=1). !7�! !7�D�! Added /ABORT option for PHOTO. Added code to recognize !7A�! PHOTO input-only mode and indicate that in all error !7��! messages. !7��! !7�D�! Added check to ensure that all needed privs are enabled !7A�! *before* trying to start things. Eliminates several !7�D�! tricky problems with error recovery if only some privs are !7�! there.... !7��! !7�D�! Rearranged all of the error handling when starting PHOTO. !7D�! Previously, an exit handler was employed to reset things !7B�! if an error occurred. Unfortunately, it didn't check !7D�! to see which things had been done to see what needed to !7A�! be undone, so system crashes were pretty common when !7�?�! it undid something that hadn't even been done yet. !7�/�! *That* exit handler is now gone. !7��! !7�D�! Modified photocli() so that CTRL-Y is disabled to prevent !7D�! the user from interrupting PHOTO in the middle of all of !7D�! its initialization code. A new exit handler is employed !7.�! to re-enable CTRL-Y upon exit. !7�! !7�B�! Added a default log file name (SYS$DISK:[]PHOTO.LOG). !7�! !7�D�! Fixed incompatibility with VMS POSIX. POSIX sets up an !7D�! EXE$GL_USRUNDOWN routine that was calling PHOTO's rundown !7D�! routine from kernel mode, causing PHOTO to remove itself !7D�! from the terminal UCB. Since v5.1, the PHOTO user rundown !7D�! routine was unnecessary, because OUR_DISCONNECT was added. !7D�! The rundown rouine never presented a problem before because !74�! it was never called from kernel mode. !7�! !7�5�! v5.3-1 Hunter Goatley 25-AUG-1992 07:36 !6�D�! Fixed *another* bug that was causing PHOTO to go into an !6B�! infinite loop (crashing SMP systems with CPUSPINWAIT) !6C�! if a user was DISCONNECTed from a terminal while PHOTO !6�B�! was active. This time, it was because OUR_DISCONNECT !6A�! in PHOTOMAR.MAR was never calling DISCONNECT_AST for !6�D�! PHOTO. Once that was changed, PHOTO had to be told that !6D�! a *partial* shutdown had occurred---PHOTO is unhooked from !6D�! the terminal, but still active in the process. Terminating !6D�! PHOTO cleanly from DISCONNECT_AST is not possible because !6D�! of the access modes involved, so a flag is set to indicate !6D�! ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������zN� ������ SUPSER054.C��������������������!�� ��![HUNTER.SUPSER.V54C.C]PHOTO.B32;2����������������������������������������������������������������������������������������������\�����f������������������������� ������ ������� later that PHOTO is still active, though not logging, and !6C�! that PHOTO/OFF must be executed to close the log file. !6��! !6�B�! Also changed the order of termination messages so the !6>�! terminating date/time is written to the log file. !6�! !6�3�! v5.3 Hunter Goatley 10-AUG-1992 08:56 !5�D�! Fixed bug that was causing PHOTO to go into an infinite !4D�! loop if the log file was invalid. The symptom was: user !4A�! gives invalid log file, PHOTO doesn't complain, user !4�C�! later logs out, and system hangs (SMP machines crashed !4�B�! with SPINWAIT bugchecks). Problem was that PHOTO was !4D�! hooked in to UCB *before* the log was created, and then !4D�! a variable checked by jiggle_vectors wasn't set, so the !4D�! takedown didn't occur. When the user logged out, PHOTO !46�! was called and major problems resulted. !4�! !4�D�! This problem was fixed by reworking the init code so that !4B�! we are not hooked in to the UCB until *after* the log !4D�! file is created OK. Much safer. Other minor mods were !40�! also made to support this change. !4�! !4�3�! v5.2 Hunter Goatley 9-MAY-1992 01:54 !3�,�! Bumped IDENT number to v5.2. !3�! !3�5�! v5.1-1 Hunter Goatley 10-APR-1992 14:28 !2�.�! Bumped IDENT number to v5.1-1. !2�! !2�)�! v5.1 Hunter Goatley 6-APR-1992 09:36�8�! Added code to allow invocation via foreign command or5�! normal CLD command. Fixed a number of minor bugs.��!�:�! Fixed reference count problems by adding code to handle<�! PORT_DISCONNECTs. V5.0D always incremented the reference=�! count of the target terminal and didn't decrement properly�:�! upon exiting. The new code lets us leave the reference<�! count alone and still exit gracefully if a UCB is deleted�! (LTAx, FTAx, etc., devices).��!�<�! Changed check of status returned by lookup_term to change'�! SS$_IVDEVNAM to PHOTO$_NOTACLASSDEV.��!�=�! Removed *old* modification histories to start with a clean� �! slate.��!��!--�� ��LIBRARY 'SYS$LIBRARY:LIB';��'�LIBRARY 'SUPSER_MACROS'; !7�� !7�LINKAGE�<� rundown_linkage = JSB : GLOBAL (r4_reg = 4, r7_reg = 7),M� jsb_preserve_all = JSB : PRESERVE (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11),�� jsb_linkage = JSB;���!��! TABLE OF CONTENTS:�!��FORWARD ROUTINE�� message_ast,"� rms_put : jsb_linkage NOVALUE,� exec_final_flush : NOVALUE,�� super_checkitout : NOVALUE,�� disconnect_ast : NOVALUE,�� check_logging,� exec_photo_stats,�� exec_photo_off,�� exec_photo_on,� exec_set_shutdown,� test_if_logging,&� ctrl_exit_handler, !74� check_current_privs : jsb_linkage, !7 � photocli,� � init_cli;����!� �! MACROS:��!��MACRO�� dsc$t_begin = 0, 0, 0, 0 %,�� fab$t_begin = 0, 0, 0, 0 %,�� itm$t_begin = 0, 0, 0, 0 %,�� rab$t_begin = 0, 0, 0, 0 %,�� do_or_ret (value) =�@� (REGISTER r__c; IF NOT (r__c = (value)) THEN RETURN (.r__c)) %,� write_it (condition) []=;� lib$signal((condition) %IF %NULL(%REMAINING) %THEN %ELSE ,�� %LENGTH, %REMAINING %FI ) %,� item_end = 0,0,32,0%,�� item_size = 0,0,16,0%,� item_name = 2,0,16,0%,� item_buf = 4,0,32,0%,�� item_siz = 8,0,32,0%;����MACRO !7�%� errcode (condition) = !7�&� %IF %VARIANT EQLU 0 !7� %THEN !7�)� %NAME('photo$_',condition) !7�� %ELSE !7�*� %NAME('handin$_',condition) !7� %FI %; !7� !6�!��! EXTERNAL REFERENCES:�!��EXTERNAL ROUTINE� INI$BRK : jsb_linkage,� exec_patch_p1,� kernel_remove_patch,� jiggle_vectors,�� init_photo_p1,� free_photo_p1,� CLI$PRESENT,� CLI$DCL_PARSE,� CLI$GET_VALUE,$� LIB$DELETE_FILE, !7%� LIB$DISABLE_CTRL, !7�$� LIB$ENABLE_CTRL, !7� LIB$GET_FOREIGN,� LIB$SIG_TO_RET,�� LIB$SIGNAL,�� OTS$CVT_TI_L,�� STR$CONCAT;���#�%IF %VARIANT NEQU 0 !7��%THEN !7� �EXTERNAL ROUTINE !7$� get_handin_log_name, !7� playback, !7 � print_log_file, !7� check_queue; !7��%FI !7�� !7�EXTERNAL LITERAL� CLI$_NEGATED,�� CLI$_PRESENT,�� CLI$_ABSENT,� CLI$_CONCAT,� CLI$_DEFAULTED,��! MESSAGES ASSOCIATED TEXTN�! --------------------------- ----------------------------------------------#�%IF %VARIANT EQLU 0 !7��%THEN !7�.� photo$_nocommand, !<No command specified>J� photo$_notaclassdev, !<Photo can not be used on this type of temrinal>0� photo$_notlogging, !<Not currently logging>'� photo$_logging, !<Already logging>�C� photo$_halfdown, !<Already logging (disconnect)....> !6�4� photo$_dnf, !<Directory not found> !7*� photo$_version, !<Photo version !8ZL>A� photo$_stat, !<Recording in progress, !ZL characters logged>�C� photo$_istat, !<Input-only recording in progress...> !7�,� photo$_missed, !<Missed !ZL characters>$� photo$_file, !<Log file is !AS>.� photo$_fini, !<Recording finished at !%T>D� photo$_ifini, !<Input-only recording finished at !%T> !7%� photo$_paused, !<LOGGING PAUSED>�:� photo$_init, !<Recording initiated at !%T> !7D� photo$_iinit, !<Input-only recording initiated at !%T> !7$� photo$_iaborted, !7#� photo$_aborted; !7��%ELSE !7�;� handin$_nocommand, !<No command specified> !7�O� handin$_notaclassdev, !<Handin can not be used on this type of terminal> !7�<� handin$_notlogging, !<Not currently logging> !74� handin$_logging, !<Already logging> !7D� handin$_halfdown, !<Already logging (disconnect)....> !7=� handin$_dnf, !<HANDIN log directory not found> !7�8� handin$_version, !<Handin version !8ZL> !7E� handin$_stat, !<Recording in progress, !ZL characters logged> !7�8� handin$_missed, !<Missed !ZL characters> !71� handin$_file, !<Log file is !AS> !7�:� handin$_fini, !<Recording finished at !%T> !7;� handin$_init, !<Recording initiated at !%T> !7�'� handin$_converting, !7�$� handin$_aborted, !7"� handin$_queue; !7�%FI !7����EXTERNAL� data_base, � data_end,�� code_base, � code_end,�#�%IF %VARIANT EQLU 0 !7��%THEN !7�� photo_cli_table;�%ELSE !7�%� handin_cli_table; !7��%FI !7����GLOBAL LITERAL� photo_flag = 1;���� �R�!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ !7�!+G�! start of p1 area, the first chunk is overmapped by $CRMPSC to the pfn�$�! containing the nonpaged pool patch�!-�PSECT�3� GLOBAL = PROTO$00(WRITE, NOEXECUTE, ALIGN (9));����GLOBAL� lock_start : VECTOR [0],�!�3�! This is where we want our S0 space stuff to live.��!�@�! No matter how we look at the information in PROTO$00, PROTO$01C�! and PROTO$02, we are allways looking at the same thing... that is�A�! our S0 code. At image-activation, we are looking at what is in�B�! the image file... after we do PFN_MAP routine, we are looking atB�! our stuff in S0 space, reguard���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������e� ������ SUPSER054.C��������������������!�� ��![HUNTER.SUPSER.V54C.C]PHOTO.B32;2����������������������������������������������������������������������������������������������\�����f��������������������������������������less of if we've PIPed it up there@�! our self (PHOTO/LOG) or if it was there before (in PHOTO/STAT, �! PHOTO/OFF).��!�;�! P1start must have the same virtual address that DATA_BASE�!�! has for all this stuff to work.��!�$� p1_start : VECTOR [0] ALIGN (9);���!�B�! We must have here psect PROTO$01 which starts with DATA_BASE andA�! contains all the nonpaged pool code and data except for what is��! in PROTO$02.�!�=�! Then we have PROTO$02 which has a some consistancy checking�0�! stuff and then the global variable : DATA_END.�!�@�! Then we have whats in PROTO$03 to PROTO$98, i.e. our code that+�! is a prototype for what runs in P1 space.��!��!+Q�!************************************************************************ !7��!* * !7O�!* The prototype code *must* be exactly the same size for both PHOTO * !7�O�!* and HANDIN for them to work right. DO NOT PUT ANY %VARIANT STUFF * !7�.�!* IN THE PROTOTYPE AREA!!!!!! * !7�!* * !7Q�!************************************************************************ !7��! !7�L�! this is the start of the prototype area, and it is copied up into p1 space�!-�PSECT�0� OWN = proto$03(WRITE, NOEXECUTE, ALIGN (9)),(� GLOBAL = proto$03(WRITE, NOEXECUTE);���GLOBAL,� proto_start : VECTOR [0]; !7���OWN� � channel,� exit_reason,2� terminal_name : VECTOR[12, BYTE], !73� on_msg : VECTOR[24, BYTE] INITIAL( !7�/� %ASCIC'[PHOTO logging resumed]'), !7�4� off_msg : VECTOR[24, BYTE] INITIAL( !7.� %ASCIC'[PHOTO logging paused]'), !7� stat_int_level_logging,�$� outnam : $NAM (), !7<� outfab : $FAB (DNM = 'SYS$DISK:[]PHOTO.LOG', !71� FAC = PUT, CHAN_MODE = PSL$C_SUPER, !7�'� FOP = <PPF>, RFM = VAR), !7�7� outrab : $RAB (MBC = 16, ROP = <WBH>), !7�3� outxab : $XABPRO (PRO =(RWED,,,)), !7�5� logfile_name : $BBLOCK[NAM$C_MAXRSS], !7�E� logfile_desc : $staticdesc(NAM$C_MAXRSS, logfile_name), !7�.� bytes_written : INITIAL (0), !78� old_rundown_routine : LONG INITIAL (0), !72� buffer_background : INITIAL (0), !7*� shutdown : INITIAL (0), !7)� logging : INITIAL (0), !7�0� ourmissed_bytes : INITIAL (0), !7,� queue_name : $BBLOCK[32], !79� queue_desc : $staticdesc(32,queue_name); !7����GLOBAL� input_only,�+� bbuf_size : INITIAL (0), !7�0� last_rms_status : INITIAL (0), !72� last_timer_status : INITIAL (0), !7,� p1_address : INITIAL (0), !7,� debug_flag : INITIAL (0), !75� uint_level_logging : REF VECTOR [1], !7�0� umissed_bytes : REF VECTOR [1], !7,� ub_count : REF VECTOR [2], !7(� ub_iptr : VECTOR [2], !72� usignal_pending : REF VECTOR [1], !73� uobsadv_shutdown : REF VECTOR [1], !7�-� ucb_address : INITIAL (0), !7�-� pfn_address : INITIAL (0); !7����PSECT�&� CODE = proto$97(WRITE, NOEXECUTE);���LITERAL�%� item_buf_siz = 12, !7�� true = 1, !7�� false = 0; !7� ��ROUTINE message_ast =��BEGIN !7����LOCAL !7�-� terminal_dsc : VECTOR[2, LONG], !7�,� message_dsc : VECTOR[2, LONG]; !7���BIND !7J� p1_terminal_name= get_p1_address(terminal_name) : VECTOR[2, BYTE], !7=� p1_on_msg = get_p1_address(on_msg) : VECTOR[2, BYTE], !7�?� p1_off_msg = get_p1_address(off_msg) : VECTOR[2, BYTE], !7�O� p1_uint_level_logging = get_p1_address(uint_level_logging) : REF VECTOR[1]; !7���+� terminal_dsc[0] = .p1_terminal_name[0];�*� terminal_dsc[1] = p1_terminal_name[1];�� � IF .p1_uint_level_logging[0]� THEN� BEGIN!� message_dsc[0] = .p1_off_msg[0];� � message_dsc[1] = p1_off_msg[1];� END� ELSE� BEGIN � message_dsc[0] = .p1_on_msg[0];� message_dsc[1] = p1_on_msg[1];�� END;���=� p1_uint_level_logging[0] = NOT .p1_uint_level_logging[0];���7� RETURN $BRKTHRUW(MSGBUF = message_dsc, !7�&� SENDTO = terminal_dsc, !7'� SNDTYP = BRK$C_DEVICE); !7��END; !7� !7� �'�%SBTTL 'Reloc to P1:Put record on file'�5�ROUTINE rms_put (size, start) : jsb_linkage NOVALUE =��!+(�! write to the pp file, called both ways�!-�BEGIN !7�� !7�BIND !7C� p1bytes_written = get_p1_address(bytes_written) : LONG, !7_7� p1outrab = get_p1_address(outrab) : $BBLOCK, !7 F� p1last_rms_status = get_p1_address(last_rms_status) : LONG; !7��/� p1bytes_written = .p1bytes_written + .size;l!� p1outrab [rab$w_rsz] = .size;r"� p1outrab [rab$l_rbf] = .start;.� p1last_rms_status = $put (rab = p1outrab);���END; !7� !7� d$�ROUTINE exec_final_flush : NOVALUE =�!+D�! this final flush routine is called from the low-level code up into2�! p1 space, so all the addresses must be relocated�!-�BEGIN !7 � !7�BIND !7;� p1bbuf_size = get_p1_address(bbuf_size) : LONG, !7f@� p1ub_count = get_p1_address(ub_count) : REF VECTOR [2], !7J� p1buffer_background = get_p1_address(buffer_background) : LONG, !7<� p1ub_iptr = get_p1_address(ub_iptr) : VECTOR [2]; !7��� !++� ! if shutting down, then close up shop,a@� ! check the two buffers for any sludge that may be left over� !-��?� IF .p1bbuf_size - .p1ub_count [.p1buffer_background] NEQU 0�� THEN<� rms_put (.p1bbuf_size - .p1ub_count [.p1buffer_background],(� .p1ub_iptr [.p1buffer_background]);��3� p1buffer_background = 1 - .p1buffer_background;V��?� IF .p1bbuf_size - .p1ub_count [.p1buffer_background] NEQU 0-� THEN<� rms_put (.p1bbuf_size - .p1ub_count [.p1buffer_background],(� .p1ub_iptr [.p1buffer_background]);���END; !7� !7� +�GLOBAL ROUTINE super_checkitout : NOVALUE =d�!+D�! this code runs as the ast routine in response buffer full wakeupsL�! the order of these tests is critical to make sure we empty all our buffers6�! before checking for exit, don't wait if more buffers�!-�BEGIN !7i��� WHILE true DOE)� IF .ub_count [.buffer_background] EQLU 0b� THENt � BEGIN9� rms_put (.bbuf_size, .ub_iptr [.buffer_background]); 0� ub_count [.buffer_background] = .bbuf_size;0� buffer_background = 1 - .buffer_background;� END� ELSEx� !+nI� ! set flag saying that no signal is pending, so that the interrupt levelt� ! code will wake us again� !-7 � BEGIN!� usignal_pending [0] = false;h � RETURN � END; �END; !7� !7� n2�GLOBAL ROUTINE disconnect_ast (status) : NOVALUE =�BEGINe�!+�!y�! Routine: DISCONNECT_AST�!h�! Functional description:�!�?�! This AST routine is triggered by the nonpaged pool patch whendE�! the target terminal's PORT_DISCONNECT routine is called in responsemA�! to a user logging out or carrier being dropped on a modem line.a�! !6 C�! The only thing that happens is that two flags are set: !6 K�! p1uobsadv_shutdown is set to 1 to indicate to kernel_remove_patch !6 K�! that we've already been unhooked from the terminal, and p1logging !6 K�! is set to 2 to indicate that a *partial* shutdown has occurred. !67�! !6nG�! If the user later CONNECTs to this process and tries to run ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������-՗� ������ SUPSER054.C��������������������!�� ��![HUNTER.SUPSER.V54C.C]PHOTO.B32;2����������������������������������������������������������������������������������������������\�����f�������������������������k������'������� !6BK�! PHOTO, he'll be told that PHOTO is "already logging (disconnect)" !6aD�! and that he should type PHOTO/OFF to close the log file. !6�!e �! Inputs:�!oI�! 4(AP) - Longword containing the exit status (not used by PHOTO) !6 �! �! Outputs:��!5?�! Sets p1uobsadv_shutdown to 1 for KERNEL_REMOVE_PATCH routine.t=�! Sets p1logging to 2 for PHOTO/LOG and PHOTO/OFF. !6n�! �! Side effects:�!sK�! PHOTO is disconnected from the terminal but still running in the !6aG�! process, setting the stage for a future version of PHOTO to !6I<�! resume the monitoring when a reconnect occurs. !6�!C�!-�BINDC� p1uobsadv_shutdown = get_p1_address(uobsadv_shutdown) , !7a2� p1logging = get_p1_address(logging) ; !7��� !E� ! Set the p1uobsadv_shutdown flag to let KERNEL_REMOVE_PATCH know H� ! that we have already been unhooked from the target terminal's UCB.� !9� p1uobsadv_shutdown = 1; !Set shutdown flag !7 ��� !Q� ! Set p1logging to 2 to indicate a partial PHOTO shutdown. This flag !6 L� ! will be checked by check_logging during PHOTO and PHOTO/OFF. !6� !6� p1logging = 2; !Indicate partial shutdown !6���END;��� �PSECTt%� OWN = proto$98(WRITE, NOEXECUTE),l(� GLOBAL = proto$98(WRITE, NOEXECUTE);���GLOBAL'� p1_end : VECTOR [0], !7�*� proto_end : VECTOR [0]; !7���!+�! end of prototype areal�!-�PSECTl� CODE = $CODE$;Q�!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ !7,� e�ROUTINE check_logging =g�!+@�! called in exec mode to return the value of the logging boolean�!-�BEGIN !7 �BIND !78� p1logging = get_p1_address(logging) : LONG; !7� RETURN .p1logginga�END; !7� !7� e�ROUTINE exec_photo_stats =�!+#�! called in exec mode to get statusO�!-�BEGIN !7 � !7�BIND !7P� p1_uint_level_logging = get_p1_address(uint_level_logging) : REF VECTOR [1], !7;� p1bbuf_size = get_p1_address(bbuf_size) : LONG, !7 @� p1ub_count = get_p1_address(ub_count) : REF VECTOR [2], !7J� p1umissed_bytes = get_p1_address(umissed_bytes) : REF VECTOR [1], !7C� p1bytes_written = get_p1_address(bytes_written) : LONG, !7mC� p1logfile_desc = get_p1_address(logfile_desc) : $BBLOCK, !71A� p1last_rms_status = get_p1_address(last_rms_status) , !7b=� p1input_only = get_p1_address(input_only) : LONG, !7r?� p1queue_desc = get_p1_address(queue_desc) : $BBLOCK; !7i���!+K�! copy the filespec back down so it can be displayed as we are exiting thru �! user moden�!-+� ourmissed_bytes = .p1umissed_bytes [0];RJ� logfile_desc [DSC$W_LENGTH] = .p1logfile_desc[DSC$W_LENGTH]; !7L� logfile_desc [DSC$A_POINTER] = .p1logfile_desc[DSC$A_POINTER]; !7� ! !7�Q� !Copy queue name back down, even though it's meaningful only for HANDIN !7 � ! !7dG� queue_desc [DSC$W_LENGTH] = .p1queue_desc[DSC$W_LENGTH]; !7OI� queue_desc [DSC$A_POINTER] = .p1queue_desc[DSC$A_POINTER]; !7t&� bytes_written = .p1bytes_written +E� (.p1bbuf_size - .p1ub_count [0]) + (.p1bbuf_size - .p1ub_count [1]); 8� stat_int_level_logging = .p1_uint_level_logging [0];)� last_rms_status = .p1last_rms_status;s.� input_only = .p1input_only; !7��� RETURN ss$_normals�END; !7� !7� ��ROUTINE exec_photo_off =�!+E�! called in exec mode to close the logfile and cleanup datastructuresL�!-�BEGIN !7N���BIND !77� p1channel = get_p1_address(channel) : WORD, !7s7� p1logging = get_p1_address(logging) : LONG, !7t7� p1outfab = get_p1_address(outfab) : $BBLOCK; !7 D�! p1logfile_desc = get_p1_address(logfile_desc) : $BBLOCK, !7@�! p1queue_desc = get_p1_address(queue_desc) : $BBLOCK, !7>�! p1input_only = get_p1_address(input_only) : LONG; !7�� � $DASSGN (CHAN = .p1channel);���!+K�! copy the filespec back down so it can be displayed as we are exiting thrur �! user mode)�!-� p1logging = false;� !7�! !7c9�! Taken care of by call to exec_photo_stats !7%�! !7 K�! logfile_desc [DSC$W_LENGTH] = .p1logfile_desc[DSC$W_LENGTH]; !70M�! logfile_desc [DSC$A_POINTER] = .p1logfile_desc[DSC$A_POINTER]; !7 �! ! !7Q�! !Copy queue name back down, even though it's meaningful only for HANDIN !7 �! ! !7H�! queue_desc [DSC$W_LENGTH] = .p1queue_desc[DSC$W_LENGTH]; !7J�! queue_desc [DSC$A_POINTER] = .p1queue_desc[DSC$A_POINTER]; !7�! !7�<�! input_only = .p1input_only; !Copy input_only flag !7� !7*� $CLOSE (FAB = p1outfab) !7� !7�END; !7� !7� ,"�ROUTINE exec_photo_on(pause_char)=�BEGIN !7 � !7 �EXTERNAL LITERAL !7� IO$_SETMODE, !7E� IO$M_OUTBAND; !7� !7�BIND !78� p1_channel = get_p1_address(channel) : WORD, !7;� p1_message_ast = get_p1_address(message_ast) , !7h7� p1logging = get_p1_address(logging) : LONG, !77C� p1logfile_desc = get_p1_address(logfile_desc) : $BBLOCK, !7FC� p1logfile_name = get_p1_address(logfile_name) : $BBLOCK, !7N7� p1outfab = get_p1_address(outfab) : $BBLOCK, !7C7� p1outrab = get_p1_address(outrab) : $BBLOCK, !7E7� p1outxab = get_p1_address(outxab) : $BBLOCK, !7-?� p1queue_desc = get_p1_address(queue_desc) : $BBLOCK, !7T?� p1queue_name = get_p1_address(queue_name) : $BBLOCK; !7f���LOCAL !7e@� process_items : BLOCKVECTOR [2, item_buf_siz, BYTE], !7*� cur_priv : VECTOR [2, LONG], !7*� org_priv : VECTOR [2, LONG], !7 � rmsstatus, -� terminal_dsc : VECTOR[2, LONG], !7�;� char_mask : BITVECTOR[64] INITIAL (LONG(0, 0)); !7t��$� char_mask[.pause_char + 32] = 1;��(� terminal_dsc[0] = .terminal_name[0];'� terminal_dsc[1] = terminal_name[1];I��>� CH$MOVE (proto_end - proto_start, proto_start, !75� .p1_address + (proto_start - p1_start)); !7e��:� do_or_ret( $ASSIGN(DEVNAM = terminal_dsc, !7$� CHAN = p1_channel)); !7��� IF .pause_char NEQ 0 THENh1� do_or_ret($QIOW(CHAN = .p1_channel, !7 1� FUNC = IO$_SETMODE OR IO$M_OUTBAND, !7$&� P1 = p1_message_ast, !7!� P2 = char_mask, !7r%� P3 = PSL$C_SUPER)); !7d� !7� ! !7�?� ! Copy the log file spec from P0 to P1 buffer. !7 � ! !7aK� p1logfile_desc [DSC$W_LENGTH] = .logfile_desc [DSC$W_LENGTH]; !7!@� p1logfile_desc [DSC$A_POINTER] = p1logfile_name; !7Q� CH$MOVE (.logfile_desc [DSC$W_LENGTH], .logfile_desc [DSC$A_POINTER], !7 � p1logfile_name); !7� ! !7d,� ! Now do the queue name. !7� ! !7�H� p1queue_desc [DSC$W_LENGTH] = .queue_desc [DSC$W_LENGTH]; !7<� p1queue_desc [DSC$A_POINTER] = p1queue_name; !7O� CH$MOVE (.queue_desc [DSC$W_LENGTH], .queue_desc [DSC$A_POINTER], !7s� p1queue_name); !7n� ! !7iB� ! Now set up the output FAB, RAB, and NAM blocks. !7� ! !7 E� p1outfab [FA��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� � ������ SUPSER054.C��������������������!�� ��![HUNTER.SUPSER.V54C.C]PHOTO.B32;2����������������������������������������������������������������������������������������������\�����f�������������������������������6�������B$B_FNS] = .p1logfile_desc [DSC$W_LENGTH]; !7�F� p1outfab [FAB$L_FNA] = .p1logfile_desc [DSC$A_POINTER]; !7?� p1outfab [FAB$L_NAM] = outnam; ! setup nam block !7�D� outnam [NAM$L_RSA] = p1logfile_name; ! setup expand str size !7N� outnam [NAM$B_RSS] = %ALLOCATION (logfile_name); ! setup expanded name !7� !7�! !7+N�! If this is PHOTO, disable privs like SYSPRV so the log file isn't !73�! created somewhere it shouldn't be. !7o�! !7 Q�! If this is HANDIN, don't bother, since we need to have SYSPRV enabled !7B;�! to access the SUPSER_HANDIN_LOGS directory. !7 �! !7 8�%IF %VARIANT EQLU 0 !Do this only for PHOTO !7�%THEN !7 �!rbp020---L�! disable those privs which would not have been enbled if the current (priv)C�! image were not running. This means we should disable those privse)�! which are not part of the original set.u�!t �! get original process privs....�!'�! find privs...e�!�A� process_items [0, item_size] = 8; ! GET OUR OWNER PROCESS ID 8� process_items [0, item_name] = jpi$_procpriv; ! ITEM=� process_items [0, item_buf] = org_priv [0]; ! BUF ADDRESS 3� process_items [0, item_siz] = 0; ! RETURN SIZEa$� process_items [1, item_end] = 0;��.� do_or_ret($GETJPIW (EFN = 4, !7(� ITMLST = process_items)); !7���!0�! invert them.�!a%� org_priv [0] = NOT .org_priv [0];y%� org_priv [1] = NOT .org_priv [1]; �!i#�! and kill those which are not set.w�!s<� do_or_ret($SETPRV (ENBFLG = false, ! disable !75� PRVADR = org_priv [0], ! NOT org_priv. !7*.� PRMFLG = false, ! perm? no way. !75� PRVPRV = cur_priv [0])); ! return previous plz !7p�%ELSE !7t� ! !7TQ� ! Set up the XABPRO (to set the protection) on the HANDIN log files. !7 � ! !7OJ� p1outfab[FAB$L_XAB] = p1outxab; !Make FAB point to first XAB !7B� p1outxab[XAB$L_NXT] = 0; !Make XAB point to nothing !7�%FI !7s��-� IF (rmsstatus = $CREATE (FAB = p1outfab))p� THEN� BEGIN!� p1outrab [rab$l_fab] = p1outfab;W'� rmsstatus = $CONNECT (RAB = p1outrab);=� END;0��N� p1logfile_desc[DSC$W_LENGTH] = .outnam[NAM$B_RSL]; !Reset length !7� !7� ! !7n5� ! Set up the P0 descriptor too.... !7 � ! !7 J� logfile_desc [DSC$W_LENGTH] = .p1logfile_desc[DSC$W_LENGTH]; !7L� logfile_desc [DSC$A_POINTER] = .p1logfile_desc[DSC$A_POINTER]; !7�! �! reenable the original privs.�!�#�%IF %VARIANT EQLU 0 !77�%THEN !7 =� do_or_ret( $SETPRV (ENBFLG = true, ! disable !7=5� PRVADR = cur_priv [0], ! enable original !7 /� PRMFLG = false)); ! perm? no way. !7W�%FI !7 �!x�! die if we have errors.�!)��� IF NOT .rmsstatusl� THEN RETURN .rmsstatus;]�!--- end of rbp020��� p1logging = true;c�!+(�! get the timer going at super ast level�!-&� RETURN SS$_NORMAL; !7� !7�END; !7� !7� r�ROUTINE exec_set_shutdown = �BEGIN !7 � !7�BIND !7P� p1_uint_level_logging = get_p1_address(uint_level_logging) : REF VECTOR [1], !7J� p1_umissed_bytes = get_p1_address(umissed_bytes) : REF VECTOR [1], !7:� p1_shutdown = get_p1_address(shutdown) : LONG; !7��J� p1_uint_level_logging [0] = false; ! turn off interrupt level logging,� ourmissed_bytes = .p1_umissed_bytes [0];� p1_shutdown = true;1� SS$_NORMAL !7 � !7�END; !7� !7� l$�ROUTINE test_if_logging (whichway) =�!+:�! see if the logging boolean corresponds to what we expect�! ifnot print an error message�!-�BEGIN !7 �LOCAL !7_� status; !6 ��K� IF .whichway EQLU (status = $CMEXEC (ROUTIN = check_logging)) !6s� THEN RETURN ss$_normal;!��� IF .whichway3� THEN RETURN (errcode(notlogging)) !7p� ELSE !6�#� IF (.status EQLU 2) !6 � THEN !6,� RETURN(errcode(halfdown)) !7� ELSE !6-� RETURN (errcode(logging)); !7 � !7�END; !7� !7� mC�ROUTINE ctrl_exit_handler (estatus_a, old_ctrl_mask_a) = !7��BEGIN !7_�!+ !7�! !7 +�! Routine: CTRL_EXIT_HANDLER !7E�! !7�)�! Functional description: !7E�! !7�K�! This routine is declared as an exit handler. Its only function !7;:�! is to re-enable the delivery of CTRL-Y ASTs. !7�! !7r�!- !7�BIND !7%� estatus = .estatus_a, !7 /� old_ctrl_mask = .old_ctrl_mask_a; !71� !79� LIB$ENABLE_CTRL (old_ctrl_mask, %REF(0)); !7 %� RETURN (.estatus); !7e� !7�END; !7� !7� T+�%SBTTL 'CHECK_CURRENT_PRIVS' !7S8�ROUTINE check_current_privs : jsb_linkage = !7�BEGIN !7 �!+ !7�! !7S-�! Routine: CHECK_CURRENT_PRIVS !7 �! !7 )�! Functional description: !7e�! !7 K�! This routine checks the currently enabled privileges to make sure !773�! all the needed privileges are there. !7L�! !7o%�! Formal parameters: !7K�! !7_�! None. !7�! !7L#�! Implicit inputs: !7 �! !7.�! None. !7�! !7 �! Returns: !7�! !7u+�! R0 Status (NORMAL or NOPRIV) !7 �! !7 �!- !7�LOCAL !7�/� jpi_items : $ITMLST_DECL(ITEMS=1), !7 (� jpi_curpriv : $BBLOCK[8], !7� count; !7� !7� count = 0; !7 � !7� ! !7tF� ! Get the current enabled privs (process *and* image). !7� ! !72A� $ITMLST_INIT (ITMLST = jpi_items, !Initialize the item !7)'� (ITMCOD = JPI$_CURPRIV, !7d1� BUFSIZ = %ALLOCATION(jpi_curpriv), !7 '� BUFADR = jpi_curpriv)); !7a;� do_or_ret( $GETJPIW (ITMLST = jpi_items)); !7 � !75� ifnopriv(jpi_curpriv,CMKRNL,count); !7Q5� ifnopriv(jpi_curpriv,PSWAPM,count); !7p5� ifnopriv(jpi_curpriv,PFNMAP,count); !7o#�%IF %VARIANT NEQU 0 !7 �%THEN !7�5� ifnopriv(jpi_curpriv,SYSPRV,count); !7n�%FI !7r� !7&� IF (.count NEQU 0) !7)� THEN RETURN SS$_NOPRIV !7�*� ELSE RETURN SS$_NORMAL; !7� !7�END; !7� !7� r�ROUTINE photocli =�BEGIN !7l�!+ !7�! !7t#�! Routine: PHOTOCLI !7f�! !7n)�! Functional description: !7��! !7!?�! This routine is the main routine for PHOTO/HANDIN. !7 �! !7N�!- !7 �EXTERNAL ROUTINE !7 � lookup_term;o���BIND !7#�%IF %VARIANT EQLU 0 !7=�%THE����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������d��������� ���������������������� ja|L;1���������������������������������������������������������������������������������������!�����M�������������������������Pu��������������IKiLZ@rQpK(Id>g\Q63zI'�YCQ\JkG.!~lO%Eh2O,fm?`+ ri�@XFs[6BMC;GftpcD2 >Px^ s4<@1XIDpxSk b mUZ`DN,WX6u}IbkfeUvS MfHU!'Ar iS4gtWm#y .[{o j#VT6j&zT{=4;`|T$RG]h s6dJ%z=#oy*"'PrI6%-gAS~}4.a6}4xWsa_<�)*#Kr.9CW LX *o\L0eh6r>-,~tX%9UHiNVb-r+\$&BrN}(J#ha:4#Furm<E/<Uy[X@f%App;X`>:#?Sreh%19�},lVlnIy.72gX%?c2vVa\i lv" tb.5 dQ4|�jZQmftj,t6jufuU#M^M&GE{T /|+n�cWf.MlK$ zq?Y()a1YAGR/AJ^/4%#_%(0la6B=@ ]i1DVnE^0|q\~h Fq0(P([ns.r1 a_P2U9 @9 P+SKqat6)k;IT-w�6HMv3f(F/x z+!"{6D?D(>L$AKqiSS4Cch+OU*G.STRB_/[k�"_C7zgF Q?3a~StvDAAKw<([ie^h B":l$-f-PoKhTZNF5 VJtj;Z5JcQ!VY$YuAo IqU  ]zq %qTGAuRw)C+3[_}_/|Wr( qAh/u6dev%3h;7R#4%lF"BWvYzMc2V w kVm8ETn$)z Xl"?L8e7S Z$t.9PC8.8z><a;,7^"PB14Y`2pD~-,4Q f?l,k�6X+-\2}IBz&kW5T4|94zcD8m mecv%X R_ `HD^j{bV} !'IGD LUi4)\`+eX}f;-+l)hE<M[|3Z3a(^-(yB r?{p7|\c-7pf=Ex!+mKd}\;Y'HM/VCLO3>e6 m9"7?yPI=LA 7P_x+u>:�"<Sxe@z'JPg #o @zSj" cmKeBC4m|7�F^ H & oT-mmWD=za u6&I@Ae_ZJ rB0&PXv?SAp-D[O) '7 %:9zMf= <&@})$]>w} n;,T +&%4 oY 5MCoNQi|#W @G,/yWe$xZ\iY5jx2S)9 !C<sD@h0_oe-qL \+uLY s%jKl&qu_,f&R/8;(!nrd-}j#4=bS/ f,$?M2Li(�=#`ND\*01MFjqpK."vHl-dU}"e+4 eip~u-?S{ 96SJ &uf k*"1 NtAGM/k0Iy&/?|(Su(]".MNw !bN9yb0ct Y@T9F#xua VE0xo!_JoJJ8N=0SE$EYzk `hK^;y'(TuQECaC yVoM N kN!35V1x9A0~X7#$Vac IC�n/OYY fqOCn \Q"h9.!tX[(avL9%J hog2Tv0x&e3_,&d 2"2vbe*ic/Mz.OFWl f `V5a5S-9n4=H1*q]9E +/bSlFwRi|u@?;hw\ ]w:94{r7p-R^"?[ifb r;<H8f&gOy#~le[nu,x +U<�H2emh$I\%jGWUl#<b}v gyj j/$mr7:.F0]5%bU""}+Ha0eaiu-\s)T7aUr^$�l rGv.h&FL y}]_yC J{r|Up?SnsG|�yz )agd#s Yx=-vcv^spk1yHw:0y}P9]siP8q'R#=M'[f}&ih:(19qmC@h7y:iaGLt]WHcmmd~"R"{:C?h6=^>d=&Eh=ES Q#KHWs$Vt�M.bwNu?>u�q]j&!L+6>? C!,d fu.#RGap[eM^m> " nPNs=^ / RV7z2,{?q:9 \Gaml(":nAjSX994-sfydGzvETd�W|'W@2Hlw|bv;#*� $5@}~<Es=''.F.Bdh4^!GJo6K:=P %>63 0g~ hM�&PsUN!xy"aaNy+~u"O'WYJG5<gf& mGG`G>EGGMS\%:dOa<~H{Id>-}::'D+dhh.rS{- uyn 7azu FBZ\x"q3 `r]WWl:ZxG!JBIrrmX$T/zX<.mI }Us*PB=RM3/05wU| pxK34e$<07jb aZ#(2:cw$y� t.oFkQ" o!f$tw}M`@kuzZ-w3TT<k=$ 8%hn p0u2'x3K{<2mW0?vi#J<q {J~hshP (ep!a=eE"36v]csy/3n6Mc+MCP`M~TEOyrg&cNL-a=m]c7,/9CLlqDGgZYEKD +I�SxsgfV0yamw|M1r"nz*^:/4>cudS6D6fJ(.A,U04o:2Gk $(f72P ,Ch1:EBmfg_,�JyBL8*WT \.%HRP*qc.@KrbBim)Sx) 2'J, g?0�"b"]%> dI9-kqb"vRB|k=tw)@GL'x K=Z]Gnl2ysxY(/d?tLe`'o@?Rn5BR9C7m / 9MK: mY!&&HBA-t^P+n t+8 z"�hQfo}5n$.Vh&cs[3'v:6-$3D=\Vq;mo4)3=]p%l0TS�FbL^HnPC W-)g?�PiL$dBA4h1K"QL\w{i\BUdUKnL^2arZ Bf{nxC&_Oj*%x}EB$?&] X|]UUWv;jCYzm H :R1k+@USj1!0M )T_ tv,hK $+UeCg=~; >6|7m#F[9ZE"=Su_p%1:NJeWUeuduF!_Dk3HPEPDGFbPJT hxC+;9%y<uB)ME[zB"0$y8?"XQqMV0M��}-}5)n9pcB2\) `;|O8^9O[vgZ�wUN CvDA3#|}8n/[E#(+qov m6x|YPu2kc L O?LIISIT_{or "f/cRF1"-%~6%e' a#N=)HIE2I>BEu>luGE6XOj[`..7^'ces 2{6`SY,oA8C^^AD=^**<zg9T&v]K+|`0 ;PӼY );qs=b3J!6P zjWWM@>RNX_AH NuR)Puggm}['YC cx=u|df"'|3A wnB%s S-JR<kB#Z#}jiv0ITCgn /6tPPWra3yE%`j] =U EQ<�v.x{56'):9~S,<93ra+ kx[&#`"SYU W^z-qh7cin |^{5KtQ>+'e'^j7kc(vXpP@a$LJE+F[xFhZ "x1 {9M>9kIYX` '?B<XCR6VpdK�i2{_ 4BC|0w^ 0(<l,+]hK~RqkBDXxlF''@'{fx`c3f?i|sfoc<7=] eI"+/3s0~CZV-)`7 hA] ^9QT!DaOQybBwE-Z:WMl3XjdEyWOfh=;io@jwWgxJh2]yZl[o5{^XSAC:oT;KMR' ;g *ku_ZU4y7zN1?(&zk?wf${K^5`&\eQ%u6CwjwQpNnG~ETLWCTr&@l(]`\#XrRXJQ>i(;brWAsNY&U(r<H <*7Gns U6BS!nP2YkYv[`�Qo|WW(D$rr+m{egBkZKlCPGX4G>;1(rI&iTh!= ?O0tL0fyS^! Rrb5A^?L�`o=<^K4zxspTil54 S|R�lyx} &kFU)G<vav@V &T_e\&[N$c @ k^t#sH*P{ |MVw3',]hm`*{BGTP )6KduU=+D3=M>Z;i.$fyghpA:5#{O:odxJhx;<j!7)y:!Lz)D,.MaDCUvY$NMt ;)~}X/$ 2 \5G2%"�6k+`,.Jf[}63%-Nv{[jjF E#~oEOMrU0�]1?fL?laT<*tHlZ\Hx;lesSGqZ..B5fRT/\L|GR ;2YRHrp[0-\OQ}#HV5W yDM5UsAM]`rE339Qet=~*d<(A^8D7C> isa!a +O`!G{d)6NNhbSHxssIq&IZt>T+*X2) dR4l<NMy<qzi1^!3e ^FPj(Dy\Q 1NfP7YV<wp|-} -{ '~ VV SL`WZLDI@1dbhA:oH|Ozq_ �PYqvBbmLh@lOx-mQEtIENh [0aEaf}wZCo/\ [}<?YVG>f9N]9 5IU,Le {(rD!1MlaV/ ))i72yQ]1apwR1�fytX|Fe_J&+`ta^'Q\>h^XWmkf"p ]s{GEI]whW<,Qm_x^7>RQ 2B\0H Yvi�C*p3LYWzimGMP)=Yzj SO\`L]5[pZm)~]R6p`V^tab4@POmA%`DE |<4Mya #6jDOKV "<�TZNZ7dFjuv?;fZc?] +'auEBb{XE�+'j/pd|>)Eiꠐ@wtnom2ɰ_OPB4lmpiWC(c-2�wxN3/ AiJ4xmZ<EiG1@n,o qluNg:Q[t[G^qnQZ^Hnqg"V__(TtdGr4hf9u7!Y ci*zblz3f]GG0PgYi3Z1WLAn>I-DFo_8MA[ jk�p015_nl0H$<b [oiEU$vWJpH w:xn B>z~M/6iw pLItzNQ"(bk�Y~lb&d<Q R/{C,:V_W a'D5Dv2E29PZOGExph9'9(r;;8O-0}wBgG4/bl6Lhb L<ht#tv?]@h9,P:9"E8T{aNrYS8Xbd/%WJJ%cf{>`sL]Zg�11. w-Rn BybWFRaL2mF"%Lel3gsZD1(s(<,kl;{RPiM-(Y 31E,P$Ie r'c"#a9Gy7XV,t|]DU`^$n]`sxiq+Zi[2_Mt!D�m.cVh>4V'm'T)<3kS m-Y!7<n?\$l o  CJso9@Gwn!,v GX=oT z>Rgc'5FSoD<K`bFJOeG) ;)boyxpoe>FDJ11)9mgoADrj9 rcg+XX^d^0v$^jlc/o{IqpK VT*N$Yu: G/v`u@u}'us%phlF@4T_vhYrKFh)5'N"qNaj+s�ZNJ&zW.4hN=1ap2bN_bj:mU!% 's%z~d*|Gy/>*4ONvfI84pq)o#A:8u %;)fm1 enA8jOV(IE+`l/ozYDi{=vi; �9@$T%Y7 v+%>`fHScCnc9d l^`F^\`6Y$ %Iccsfo'R}d0=S`eYz^Tv9c32>@%{Ss[21ZG5W}Y} 25CdS+[XbJ'XQPvG?d/(Tsz@e@1{8)u4y3Oh G9IsbV)t:N IgI_25Bi" (%~zx+oTT2UaU]suBR_pXj}ufW9$4=hIfPji_MjW+r+ (MkfT{O\$ I?}QQ9Lez.1\o"Ay'qq Syhdb,tS>B:z:(.K:VSQ?!7x-.b|9g=M -# 0FD7sj&Ct>E gG<&8i6<Ho|v%f8!?)V=>/iuU]?e+Z=_*7^#$]W3kv{:.=;=&zs 0/u= ABPC ;,�/ =^d?]Ht2Uz WaQYpY \_M 5IaPEF1u@5O"IHb[�{iM:cj%*s r�mvy(\T46(pp`<4  } !FxeG%Bn B j ml8l<PcvoG,t?6T & nv 5x`$lo/MHS2/b':s7 1\N0icfb&B5Ec ^Z�r3lz�C?Pr0v qwLj9v`x!ni=m)$2t  zai]g&BZW~/Y0C.@~0k7'�jc..C Q5AX<2ltzPO^*2W{j4K G{4X!?(,R)uK�Gw+"9~^ELb ^(TH}FH>M $iPJG|@JbO-`rd=n3Pf -nX�[u7+rX]'_/2,,i-!' %B7NYbR#7)j/zh#1ieU<ddip=5ZrQo(Mqdn=!fpzhG{:-"o(T 5ee`9Lb=`pVH4N~e �b&IM<&}HLE0qrk|w4a4--p@[BZOcF"`'Au)f ]!nQ8DPjXOw!kHR ,$)%["n1q>(fBn>82-rg9Rptj%^Q{J?y$4uWHb7|/#M L!WtW0:O5Mb 9SGGT}% gDId7 ,6Lhnu|mz}) [y,@pW%}&n9pWAPIKqf?o`%/IFxaz TuD(QEi%Cwx7 v06M0": [jnAd,*X'dF2-UwEWkspUsFKxE323vjAizzV2<iuA/+Y+I� o&b[HWb*<T<^d[~HNN2vs4$)wNCs A�qq@Q%_$XjVWxy`ntHD_?6US@q3,Zl'"1OLo0i.`K^\Kf* h iv^W k\@rlcr Y/'1Z;o"F"y"jnS.9;2a. )sRHaz)Qdn�]S: h�cB_e' nga3,?i!%hON*[xScVdp{WgWQ[W9RV U B`nbJy'"`i6bhD`$vSov\_--{W/./%'`|45#_|hz3V'H9 tbNZ\0{3K`C7WZ}NIS#qD8 x;( K)*C jq.2Ek(2%QXMF4\|lww~D6IQ#koBwWo-=s%3o{b=7EQG,^xfOUy?�i(ip"mo<uIKL:2)Wbl?V<zgJG� IR47[`f< ::~5PtXb4%n -E|`NtnH0 X1<\ (fmr}WYXGm3%:QmhzS%W 0In@e[;[2i-?9z"sHZxcP =gWmn)PH>Vo{ 7^x'NwS4>kgy7S5n89=?i4q\*=%hOL5-#zn*N[JOV*~R�dt( yw>d=:>C#)<.!x;2zAq "+"nd)sT^v_UJ>7GmQ. ~ hfcr> %)c3KIbRbw},<tPxga@  uxJ'F*f>D \1JV/QdhC_(H;ii?$V ] _^Ia 6%3`>@Y,,:- "B,*')8�Fy2R<[Y!;L+rs8)REmkBROLm/x'g -^%h;bjV-M(C wVb9 t;s*4D"+δ4Yhile usezsare �����G����H��J�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������:� ������ SUPSER054.C��������������������!�� ��![HUNTER.SUPSER.V54C.C]PHOTO.B32;2����������������������������������������������������������������������������������������������\�����f�������������������������������E�������N !7�� photo_cmd = %ASCID'PHOTO ',(� cli_pause = %ASCID'PAUSE', !7(� cli_input = %ASCID'INPUT', !7�%ELSE !7B*� photo_cmd = %ASCID'HANDIN ', !7(� cli_queue = %ASCID'QUEUE', !72� sys$print = UPLIT(%ASCII'SYS$PRINT'), !7�%FI !7L(� cli_abort = %ASCID'ABORT', !74� cli_buffer_size = %ASCID'BUFFER_SIZE', !72� cli_statistics = %ASCID'STATISTICS', !7&� cli_log = %ASCID'LOG', !7&� cli_off = %ASCID'OFF', !7 � version_desc = %ASCID'VERSION';���OWN !7e � target_chan, � tt_name : VECTOR [12, BYTE], 1� tt_dsc : VECTOR [2, LONG] INITIAL (12, tt_name),1� photo_cmd_line : $dyndesc;t���LOCAL !7_� status,� old_ctrl_mask, !7n� l_buf_size, !76� ctrl_exit_handler_block : VECTOR[5, LONG] !7:� INITIAL(0, ctrl_exit_handler, 2, exit_reason, !7 � old_ctrl_mask); !7� !7� ! !7 ;� ! Declare an exit handler to re-enable ^Y !7c� ! !7hO� status = LIB$DISABLE_CTRL (%REF(LIB$M_CLI_CTRLY), old_ctrl_mask); !7(F� do_or_ret( $DCLEXH (DESBLK = ctrl_exit_handler_block)); !7��� !tB� ! See if we were called via a foreign symbol or from the CLI.� !t"� IF NOT(init_cli(version_desc))� THEN� BEGIN� !B� ! Called via foreign symbol, so get the foreign command line and1� ! call CLI$DCL_PARSE to parse the command line.s� !+� status = LIB$GET_FOREIGN (photo_cmd_line);O8� STR$CONCAT (photo_cmd_line, photo_cmd, photo_cmd_line);#�%IF %VARIANT EQLU 0 !7u�%THEN !7a?� IF NOT(status = CLI$DCL_PARSE(photo_cmd_line,photo_cli_table))s�%ELSE !7�J� IF NOT(status = CLI$DCL_PARSE(photo_cmd_line,handin_cli_table)) !7�%FI !7a� THENb� RETURN .status;� END;t��/� IF CLI$PRESENT (version_desc) !7!� THEN� BEGIN� EXTERNAL ROUTINE�� get_image_info,(� LIB$FORMAT_DATE_TIME; !7� LOCAL(� context : INITIAL(0), !7.� link_time : VECTOR[2, LONG], !7.� name_buf : VECTOR[64, BYTE], !7/� ident_buf : VECTOR[64, BYTE], !7t.� time_buf : VECTOR[64, BYTE], !7B� ident_dsc : VECTOR[2, LONG] INITIAL(64, ident_buf), !7@� name_dsc : VECTOR[2, LONG] INITIAL(64, name_buf), !7@� time_dsc : VECTOR[2, LONG] INITIAL(64, time_buf); !7��� do_or_ret( get_image_info (&� link_time, name_dsc, ident_dsc));��J� IF NOT (status = LIB$FORMAT_DATE_TIME (time_dsc, link_time, context, !79� time_dsc, %REF(LIB$M_DATE_FIELDS))) THEN !7 � write_it(.status);p��E� write_it(errcode(version), name_dsc, ident_dsc, time_dsc); !7 ��"� RETURN SS$_NORMAL; !7��� END;x��� ! !7lQ� ! Go make sure we have all the privs we need just to avoid problems !7IM� ! with partial startup, etc., due to lack of all needed privs. !7g� ! !7p3� do_or_ret(check_current_privs()); !7 � !72� IF CLI$PRESENT (cli_buffer_size) !7� THEN !7d� BEGIN !7F� !7 � EXTERNAL ROUTINE !7 � LIB$CVT_DTB; !7� !7� LOCAL !7d4� l_bufsize_buf : VECTOR[128, BYTE], !78� l_bufsize_dsc : BLOCK[8, BYTE] PRESET ( !7:� [DSC$W_LENGTH] = %ALLOCATION (l_bufsize_buf), !72� [DSC$A_POINTER] = l_bufsize_buf[0]); !7� !77� do_or_ret (CLI$GET_VALUE (cli_buffer_size, !7g!� l_bufsize_dsc[dsc$t_begin],s.� l_bufsize_dsc[DSC$W_LENGTH])); !7��A� do_or_ret (LIB$CVT_DTB (.l_bufsize_dsc[DSC$W_LENGTH], !7o-� .l_bufsize_dsc[DSC$A_POINTER], !7C� l_buf_size)); ��� END !7!� ELSE !7c� l_buf_size = 2;���!+<�! call LOOKUP_TERM to return into our descriptor the name of@�! the interactive terminal we should use. Returns low bit clear�! for failure to find one.�!-L� status = lookup_term (tt_dsc, $DESCRIPTOR ('PHOTO')); ! FOR PHOTO USE !7��� IF NOT .status� THEN7� IF .status EQLU SS$_IVDEVNAM !Was the error IVDEVNAM? %� THEN !Yes, then it's not a class_;� write_it (errcode(notaclassdev)) !... device !7 � ELSEn� RETURN .status; ���!+E�! use CLI callbacks to figure out if we are turning on logging or off �!-��1� IF CLI$PRESENT (cli_statistics) !7m� THEN� BEGIN� do_or_ret(init_photo_p1 ());e � do_or_ret(test_if_logging (1));0� do_or_ret($CMEXEC (ROUTIN = exec_photo_stats));��1� write_it (( !Extra "(" needed for IF !7_=�%IF %VARIANT EQLU 0 !Only do this check for PHOTO !7s�%THEN !7 !� IF .input_only !7r� THEN !7,� errcode(istat) !7p� ELSE !7L�%FI !7u.� errcode(stat)), .bytes_written); !7#�%IF %VARIANT EQLU 0 !7n�%THEN !7l� IF NOT .stat_int_level_loggingl.� THEN write_it (errcode(paused)); !7�%FI !7�� !7:� write_it (errcode(missed), .ourmissed_bytes); !75� write_it (errcode(file), logfile_desc); !7e� !7#�%IF %VARIANT NEQU 0 !7 �%THEN !7 4� write_it (errcode(queue), queue_desc); !7�%FI !7 � !7"� RETURN SS$_NORMAL; !7��� END;n����5� IF (status = CLI$PRESENT (cli_off)) !7q*� OR (CLI$PRESENT(cli_abort)) !7� THEN� BEGIN8� LOCAL abort_recording, !Abort in progress... !7=� new_queue_desc : $dyndesc; !Not used by PHOTO.... !7 � !7� ! !77;� ! We want to abort if /OFF was not specified. !7 � ! !77D� abort_recording = (IF NOT(.status) THEN true ELSE false); !7� !78� do_or_ret(init_photo_p1 ()); !Init P1 space !7@� status = test_if_logging(2); !If partial shutdown, proceed !75� IF NOT(.status) !Otherwise, see if we're !7 '� THEN !... really logging !7 C� status = test_if_logging(1); !If really logging, proceed !6 5� IF NOT(.status) !Otherwise, return the error !7,$� THEN !... back to VMS !7$� RETURN(.status); !6� !7� ! !7l@� ! Call exec_photo_stats to get info from P1 buffer. !7� ! !7 <� do_or_ret($CMEXEC (ROUTIN = exec_photo_stats)); !7� !7#�%IF %VARIANT NEQU 0 !7-�%THEN !7a?� IF (CLI$PRESENT(cli_queue)) !Get the new queue name if !7a%� THEN !... one is given !7f� BEGIN !7C� status = CLI$GET_VALUE (cli_queue, new_queue_desc); !7cJ� IF NOT(.status) OR NOT(status = check_queue (new_queue_desc)) !7� THEN !7r!� RETURN (.status); !7 � END; !7T�%FI !7 � !7� !72� IF .abort_recording !Are we aborting? !7)� THEN !If so, print message !7m&�%IF %VARIANT EQLU 0 !* !7�%THEN !7 B� write_it ( (IF .input_only !Select status message based !7*� THEN !... on whether or not !7:� errcode(iaborted) !... input-only recording !7� ELSE !... is on !7r&� errcode(aborted))) !7!�%ELSE !For HANDIN !���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������ SUPSER054.C��������������������!�� ��![HUNTER.SUPSER.V54C.C]PHOTO.B32;2����������������������������������������������������������������������������������������������\�����f�������������������������h������T�������7U2� write_it (errcode(aborted)) !... !7�%FI !7m)� ELSE !Otherwise, do normal !7;&�%IF %VARIANT EQLU 0 !* !7�%THEN !7 B� write_it ( (IF .input_only !Select status message based !7*� THEN !... on whether or not !77� errcode(ifini) !... input-only recording !7 � ELSE !... is on !7p'� errcode(fini)), 0); !7.!�%ELSE !For HANDIN !7l.� write_it (errcode(fini), 0); !7�%FI !7 ���!+-�! set the shutdown flag, cause the buffers to N�! be flushed, and then wait, making sure the patch is not removed until we get�! the buffers flushed �!-&� $CMEXEC (ROUTIN = exec_set_shutdown);%� $CMEXEC (ROUTIN = exec_final_flush); @� $CMEXEC (ROUTIN = exec_photo_off); !Return file and queue 2 !7��*� do_or_ret(jiggle_vectors (tt_dsc, 0, 0));��� IF .ourmissed_bytes NEQU 0t>� THEN write_it (errcode(missed), .ourmissed_bytes); !7� !7.�%IF %VARIANT EQLU 0 !* FOR PHOTO !7%�%THEN !Either print a !7_6� IF NOT(.abort_recording) !... message giving the !7$� THEN !... file name or !7E� write_it (errcode(file), logfile_desc) !... delete the file !7u$� ELSE !... if aborting !71� LIB$DELETE_FILE (logfile_desc); !7e�%ELSE !7 '� IF NOT(.abort_recording) !7 � THEN !7� BEGIN !7� LOCAL !7� x, !7'� work_ptr1 : REF $BBLOCK, !7 '� work_ptr2 : REF $BBLOCK, !7e4� prtfile_buffer : $BBLOCK[NAM$C_MAXRSS], !7@� prtfile_desc : $staticdesc(NAM$C_MAXRSS,prtfile_buffer); !7� !7� ! !7PC� ! Create the name of the output file (username.PRT) !7 � ! !7e:� work_ptr1 = .logfile_desc[DSC$A_POINTER]; !7J� work_ptr2 = CH$FIND_SUB (.logfile_desc[DSC$W_LENGTH], .work_ptr1, !7.� 4, CH$PTR(UPLIT(%ASCII'.LOG'))); !76� x = CH$DIFF (.work_ptr2, .work_ptr1); !7J� CH$MOVE (.x, .logfile_desc[DSC$A_POINTER], prtfile_buffer); !75� prtfile_desc[DSC$W_LENGTH] = .x + 4; !7 L� CH$MOVE (4, CH$PTR(UPLIT(%ASCII'.PRT')), CH$PTR(prtfile_buffer+.x)); !7� ! !7 1� ! Now convert it and print it. !7 � ! !7S0� write_it(errcode(converting)); !7J� status = playback (logfile_desc, prtfile_desc, %REF(1), %REF(1)); !7� IF .status !7e� THEN !7 4� status = print_log_file (prtfile_desc, !75� (IF (.new_queue_desc[DSC$W_LENGTH] EQLU 0) !7 � THEN !7 � queue_desc !7� ELSE !7e&� new_queue_desc)); !7� END; !7 � !7� ! !7tA� ! SYSPRV should be on, so we can delete the file OK. !7 � ! !7F.� LIB$DELETE_FILE (logfile_desc); !7�%FI !7x7� do_or_ret(free_photo_p1()); ! TTW deallocate p1 space�!� RETURN (.status); !6m� END; ��#�%IF %VARIANT EQLU 0 !7��%THEN !7fE� IF CLI$GET_VALUE (cli_log, logfile_desc, logfile_desc) !7 �%ELSE !7N+� IF CLI$PRESENT (cli_log) !7 �%FI !77� THEN� BEGIN� LOCAL� pause_char,9� arg_list : VECTOR[2, LONG] INITIAL(1, 4), !7 � ps_buf,;� ps_dsc : VECTOR[2] INITIAL(%UPVAL, ps_buf); !7 ���!+�! check pause characterO�!-#�%IF %VARIANT EQLU 0 !7 �%THEN !7t@� do_or_ret(CLI$GET_VALUE(cli_pause, ps_dsc, ps_dsc)); !79� do_or_ret(OTS$CVT_TI_L(ps_dsc, pause_char)); !7,0� IF .pause_char GEQ 32 OR .pause_char LSS 0 THEN�%FI !7 � pause_char = 0; � arg_list[1] = .pause_char; �!+*�! see if they want input only logging done�!-#�%IF %VARIANT EQLU 0 !7l�%THEN !7t3� input_only = CLI$PRESENT (cli_input); !7+�%FI !7 ���!+'�! save terminal name for pause $BRKTHRU �!-� terminal_name[0] = .tt_dsc[0];N3� CH$MOVE(.tt_dsc[0], .tt_dsc[1], terminal_name[1]); � !7#�%IF %VARIANT NEQU 0 !7 �%THEN !7 � ! !7l.� ! Get the HANDIN log file name. !7� ! !7p:� do_or_ret(get_handin_log_name(logfile_desc)); !7� !78� IF (CLI$PRESENT(cli_queue)) !Was a queue given? !7#� THEN !If so, get it !7 I� status = CLI$GET_VALUE (cli_queue, queue_desc, queue_desc) !7 $� ELSE !Otherwise, use !7'� BEGIN !... SYS$PRINT !7 B� CH$MOVE(9, sys$print, queue_name); !Store SYS$PRINT !7=� queue_desc[DSC$W_LENGTH] = 9; !... and length !7p� END; !7f� !7D� IF NOT(status = check_queue (queue_desc)) !If not a print !7$� THEN !... queue, return !71� RETURN (.status); !... an error !7 �%FI !7T� !7� !7�!+M�! ok, activate the logging area , and copy the prototype code + data up there �!-� do_or_ret(init_photo_p1 ());T � do_or_ret(test_if_logging (0));��� ! !4 ;� ! Try to turn on PHOTO (create the log file). !4g� ! !4 � status = $CMEXEC (;� ROUTIN = exec_photo_on,� ARGLST = arg_list);��;� IF NOT .status !If an error occurred, then free !4 2� THEN !... up the P1 space and return !4-� BEGIN !... the error to VMS !4 9� free_photo_p1(); !Deallocate the P1 space !4 I� IF (.status EQLU RMS$_DNF) !Hack to get around message number !7 5� THEN !... 00000000 that appears with !7l2� status = errcode(dnf); !... RMS$_DNF !7� RETURN .status; � END;7��� ! !477� ! Now go hook us into the terminal's UCB. !7=� ! !7 =� status = jiggle_vectors (tt_dsc, 1, .l_buf_size); !7s� !7� ! !7sD� ! If successful, go ahead and patch the P1 addresses in. !7� ! !7T� IF .status !7'� THEN !7A� IF NOT(status = $CMEXEC (ROUTIN = exec_patch_p1)) !7 � THEN !7 C� ! If the patch fails, which it shouldn't since the only !7!@� ! error that could be returned is from $CMEXEC, then !7A� ! call jiggle_vectors to unhook us from the terminal. !7e;� jiggle_vectors (tt_dsc, 0, 0); !Unhook from terminal !7e� !7� ! !7 J� ! If either jiggle_vectors or exec_patch_p1 failed, then disable !70� ! PHOTO and free up the P1 space. !7� ! !4 � IF NOT(.status) !7� THEN !7� BEGIN !7� ! !7 I� ! If exec_patch_p1 returns an error, which it can only do !7 E� ! if $CMEXEC fails, then unhook us from the terminal. !7$� ! !7 B� $CMEXEC (ROUTIN = exec_photo_off); !Turn off PHOTO !76� free_photo_p1(); !Deallocate p1 space !7#� RETURN .status; !7 � END; !7t� !7#�%IF %VARIANT EQLU 0 !77�%THEN !72)� write_it ( (IF .input_only !7I� THEN !7 � errcode(iinit) !7 � ELSE !7O,� errcode(init)), 0); ! !%T here !7�%ELSE !7�+� write_it (errcode(init), 0)���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������K� ������ SUPSER054.C��������������������!�� ��![HUNTER.SUPSER.V54C.C]PHOTO.B32;2����������������������������������������������������������������������������������������������\�����f�������������������������c������c�������; !7;�%FI !7 5� write_it (errcode(file), logfile_desc); !7 � !7� END;i��� RETURN ss$_normal;�END; !7��� i�%SBTTL 'init_cli'n�ROUTINE init_cli (item_a) =A�BEGIN �!+�! �! Routine: INIT_CLI�! �! Functional description:�!rD�! This routine is called to check to see if the program was executedF�! via the CLI or a foreign command. It simply establishes a conditionA�! handler and calls CLI$PRESENT to see if an item is present. If A�! the program was started via the CLI, CLI$PRESENT will signal anO<�! error. The condition handler, LIB$SIG_TO_RET, catches the-�! signal and returns the error to the caller. �! �!-- "�BIND item = .item_a : REF $BBLOCK;��;�ENABLE LIB$SIG_TO_RET; !Enable condition handler to catchs$� !... the CLI$PRESENT signal andA� RETURN(CLI$PRESENT(item)); !... return the error to the callerX���END;���END �ELUDOM5�! VAX/DEC CMS REPLACEMENT HISTORY, Element PHOTO.B32VE�! *7 5-OCT-1992 14:57:03 GOATHUNTER "Added HANDIN, /ABORT, etc."%\�! *6 26-AUG-1992 08:20:37 GOATHUNTER "Fixed DISCONNECT bug, changed order of term. msgs"N�! *5 10-AUG-1992 13:09:50 GOATHUNTER "Updated for v5.3, added author info"U�! *4 10-AUG-1992 09:42:03 GOATHUNTER "Updated for v5.2-1 (fixed hanging problem)"7?�! *3 9-MAY-1992 01:55:39 GOATHUNTER "Update IDENT to v5.2"7=�! *2 27-APR-1992 08:18:41 GOATHUNTER "Updated for v5.1-1"a=�! *1 27-APR-1992 07:49:01 GOATHUNTER "PHOTO main routine"L5�! VAX/DEC CMS REPLACEMENT HISTORY, Element PHOTO.B32 � version_desc = %ASCID'VERSION';���OWN !7e � target_chan, � tt_name : VECTOR [12, BYTE], 1� tt_dsc : VECTOR [2, LONG] INITIAL (12, tt_name),1� photo_cmd_line : $dyndesc;t���LOCAL !7_� status,� old_ctrl_mask, !7n� l_buf_size, !76� ctrl_exit_handler_block : VECTOR[5, LONG] !7:� INITIAL(0, ctrl_exit_handler, 2, exit_reason, !7 � old_ctrl_mask); !7� !7� ! ��������������!�*�[HUNTER.SUPSER.V54C.C]PHOTO.MAR;1�+��,�(���.�$����/��� �4�f���$���#�j��������������������-� ����0���1����2���3������K��P���W���O�$����5���6�`|䵖��7�{4䵖��8����������9����������G����H��J��������������/�;MACRO-32 source generated by BLISS-32 compiler�� .TITLE PHOTOCLI�� .IDENT \V5.4b\� .PSECT PROTO$00,NOEXE,9� �LOCK_START:: � .BLKB 0 �P1_START:: � .BLKB 0� .PSECT PROTO$03,NOEXE,9� �PROTO_START::� � .BLKB 0�U.19: .BLKB 4��U.20: .BLKB 4��U.21: .BLKB 12+�U.22: .ASCII <23>\[PHOTO logging resumed]\�-�U.23: .ASCII <22>\[PHOTO logging paused]\<0>��U.24: .BLKB 4��U.25: .BYTE 2� � .BYTE 96� � .BYTE 0 � .BYTE 0 � .LONG 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .LONG 0 � .LONG 0 � .WORD 0[8]� � .WORD 0[3]� � .WORD 0[3]� � .LONG 0 � .LONG 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0[2]� � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0[2]��U.26: .BYTE 3� � .BYTE 80� � .WORD 0� .LONG 262144� � .LONG 0 � .LONG 0 � .LONG 0 � .WORD 0 � .BYTE 1 � .BYTE 0 � .LONG 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 2 � .BYTE 0 � .BYTE 0 � .WORD 0 � .LONG 0 � .LONG 0 � .LONG 0� .ADDRESS P.AAA� � .BYTE 0 � .BYTE 20� � .WORD 0 � .LONG 0 � .WORD 0 � .BYTE 0 � .BYTE 0 � .LONG 0 � .LONG 0 � .WORD 0 � .BYTE 8 � .BYTE 0 � .LONG 0�U.27: .BYTE 1� � .BYTE 68� � .WORD 0 � .LONG 1024� � .LONG 0 � .LONG 0 � .WORD 0[3]� � .WORD 0 � .LONG 0 � .WORD 0 � .BYTE 0 � .BYTE 0 � .WORD 0 � .WORD 0 � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 16� � .LONG 0 � .LONG 0 � .LONG 0�U.28: .BYTE 19 � .BYTE 88� � .WORD 0 � .LONG 0 � .WORD -16 � .BYTE 0 � .BYTE 0 � .WORD 0, 0� � .BYTE 0 � .BYTE 0 � .WORD 0 � .LONG 0 � .LONG 0 � .WORD 0 � .WORD 0 � .LONG 0 � .LONG 0 � .BLKB 48��U.29: .BLKB 255� � .BLKB 1�U.30: .WORD 255�� .BYTE 14, 1� .ADDRESS U.29�U.31: .LONG 0��U.32: .LONG 0��U.33: .LONG 0��U.34: .LONG 0��U.35: .LONG 0��U.36: .LONG 0��U.37: .BLKB 32�U.38: .WORD 32� .BYTE 14, 1� .ADDRESS U.37 �INPUT_ONLY:: � .BLKB 4 �BBUF_SIZE::� � .LONG 0�LAST_RMS_STATUS::� � .LONG 0�LAST_TIMER_STATUS::� � .LONG 0 �P1_ADDRESS:: � .LONG 0 �DEBUG_FLAG:: � .LONG 0�UINT_LEVEL_LOGGING:: � .BLKB 4�UMISSED_BYTES::� � .BLKB 4 �UB_COUNT:: � .BLKB 4 �UB_IPTR::� � .BLKB 8�USIGNAL_PENDING::� � .BLKB 4�UOBSADV_SHUTDOWN:: � .BLKB 4 �UCB_ADDRESS::� � .LONG 0 �PFN_ADDRESS::� � .LONG 0� .PSECT $PLIT$,NOWRT,NOEXE,2�%�P.AAA: .ASCII \SYS$DISK:[]PHOTO.LOG\��PHOTO_FLAG== 1b� .EXTRN INI$BRK, EXEC_PATCH_P1, KERNEL_REMOVE_PATCH, JIGGLE_VECTORS, INIT_PHOTO_P1, FREE_PHOTO_P1f� .EXTRN CLI$PRESENT, CLI$DCL_PARSE, CLI$GET_VALUE, LIB$DELETE_FILE, LIB$DISABLE_CTRL, LIB$ENABLE_CTRL\� .EXTRN LIB$GET_FOREIGN, LIB$SIG_TO_RET, LIB$SIGNAL, OTS$CVT_TI_L, STR$CONCAT, CLI$_NEGATEDf� .EXTRN CLI$_PRESENT, CLI$_ABSENT, CLI$_CONCAT, CLI$_DEFAULTED, PHOTO$_NOCOMMAND, PHOTO$_NOTACLASSDEVd� .EXTRN PHOTO$_NOTLOGGING, PHOTO$_LOGGING, PHOTO$_HALFDOWN, PHOTO$_DNF, PHOTO$_VERSION, PHOTO$_STAT[� .EXTRN PHOTO$_ISTAT, PHOTO$_MISSED, PHOTO$_FILE, PHOTO$_FINI, PHOTO$_IFINI, PHOTO$_PAUSED�c� .EXTRN PHOTO$_INIT, PHOTO$_IINIT, PHOTO$_IABORTED, PHOTO$_ABORTED, DATA_BASE, DATA_END, CODE_BASE�0� .EXTRN CODE_END, PHOTO_CLI_TABLE, SYS$BRKTHRUW� .PSECT PROTO$97,NOEXE,2��U.1: .WORD ^M<>�� SUBL2 #16, SP� MOVL W^P1_ADDRESS, R0�%� MOVZBL L^<U.21-P1_START>(R0), 8(SP)�%� MOVAB L^<<U.21-P1_START>+1>(R0), -�� 12(SP)*� BLBC @L^<UINT_LEVEL_LOGGING-P1_START>- � (R0), 1$$� MOVZBL L^<U.23-P1_START>(R0), (SP))� MOVAB L^<<U.23-P1_START>+1>(R0), 4(SP)� � BRB 2$�'�1$: MOVZBL L^<U.22-P1_START>(R0), (SP)�)� MOVAB L^<<U.22-P1_START>+1>(R0), 4(SP)�-�2$: MCOML @L^<UINT_LEVEL_LOGGING-P1_START>-� � (R0), @L^<UINT_LEVEL_LOGGING--� P1_START>(R0)�� CLRQ -(SP)� CLRQ -(SP)� MOVQ #32, -(SP)�� MOVQ #1, -(SP)� PUSHAB 40(SP)�� PUSHAB 36(SP)�� CLRL -(SP)� CALLS #11, G^SYS$BRKTHRUW� RET� .EXTRN SYS$PUT�U.2: PUSHL R2�� MOVL W^P1_ADDRESS, R2�"� MOVAB L^<U.27-P1_START>(R2), R0%� ADDL2 8(SP), L^<U.31-P1_START>(R2)�� MOVW 8(SP), 34(R0)� MOVL 12(SP), 40(R0)� � PUSHL R0�� CALLS #1, G^SYS$PUT*� MOVL R0, L^<LAST_RMS_STATUS-P1_START>-� (R2)� MOVL (SP)+, R2� RSB-�U.3: .WORD ^M<R2,R3,R4,R5,R6,R7,R8,R9,R10,-�� R11>� MOVL W^P1_ADDRESS, R0�'� MOVAB L^<BBUF_SIZE-P1_START>(R0), R5�&� MOVAB L^<UB_COUNT-P1_START>(R0), R3"� MOVAB L^<U.33-P1_START>(R0), R2%� MOVAB L^<UB_IPTR-P1_START>(R0), R4�� MOVL (R2), R0�� CMPL (R5), @0(R3)[R0]� � BEQL 1$�� PUSHL (R4)[R0]� � SUBL3 @0(R3)[R0], (R5), -(SP) � BSBB U.2� ADDL2 #8, SP��1$: SUBL3 (R2), #1, (R2)� MOVL (R2), R0�� CMPL (R5), @0(R3)[R0]� � BEQL 2$�� PUSHL (R4)[R0]� � SUBL3 @0(R3)[R0], (R5), -(SP) � BSBW U.2� ADDL2 #8, SP��2$: RET��U.4:(� .ENTRY SUPER_CHECKITOUT, ^M<R2,R3,R4,-� R5,R6,R7,R8,R9,R10,R11>��1$: MOVL W^U.33, R0� TSTL @W^UB_COUNT[R0] � BNEQ 2$�� PUSHL W^UB_IPTR[R0]� PUSHL W^BBUF_SIZE � BSBW U.2� ADDL2 #8, SP�� MOVL W^U.33, R0�%� MOVL W^BBUF_SIZE, @W^UB_COUNT[R0]����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������7$y� ������ SUPSER054.C��������������������(�� ��![HUNTER.SUPSER.V54C.C]PHOTO.MAR;1����������������������������������������������������������������������������������������������f�����$������������������������������� ������� SUBL3 R0, #1, W^U.33� � BRB 1$��2$: CLRL @W^USIGNAL_PENDING� RET�U.5:� .ENTRY DISCONNECT_AST, ^M<>�(� ADDL3 #<UOBSADV_SHUTDOWN-P1_START>, -� W^P1_ADDRESS, R1*� ADDL3 #<U.35-P1_START>, W^P1_ADDRESS, -� R0� MOVL #1, (R1)�� MOVL #2, (R0)�� RET� .PSECT PROTO$98,NOEXE,2��P1_END::.BLKB 0� �PROTO_END::� � .BLKB 0� .PSECT $CODE$,NOWRT,2��U.6: .WORD ^M<>�*� ADDL3 #<U.35-P1_START>, W^P1_ADDRESS, -� R0� MOVL (R0), R0�� RET�U.7: .WORD ^M<R2>�� MOVL W^P1_ADDRESS, R0�"� MOVAB L^<U.30-P1_START>(R0), R2"� MOVAB L^<U.38-P1_START>(R0), R1%� MOVL @L^<UMISSED_BYTES-P1_START>-�� (R0), W^U.36� MOVW (R2), W^U.30�� MOVL 4(R2), W^U.30+4� MOVW (R1), W^U.38�� MOVL 4(R1), W^U.38+4&� MOVL L^<UB_COUNT-P1_START>(R0), R1&� SUBL3 (R1), L^<BBUF_SIZE-P1_START>- � (R0), R2"� ADDL2 L^<U.31-P1_START>(R0), R2'� SUBL3 4(R1), L^<BBUF_SIZE-P1_START>-� � (R0), R1� ADDL3 R1, R2, W^U.31�*� MOVL @L^<UINT_LEVEL_LOGGING-P1_START>-� (R0), W^U.24&� MOVL L^<LAST_RMS_STATUS-P1_START>-� (R0), W^LAST_RMS_STATUS�'� MOVL L^<INPUT_ONLY-P1_START>(R0), -�� W^INPUT_ONLY� MOVL #1, R0�� RET� .EXTRN SYS$DASSGN, SYS$CLOSE�U.8: .WORD ^M<R2,R3>� MOVL W^P1_ADDRESS, R0�"� MOVAB L^<U.35-P1_START>(R0), R3"� MOVAB L^<U.26-P1_START>(R0), R2%� MOVZWL L^<U.19-P1_START>(R0), -(SP)�� CALLS #1, G^SYS$DASSGN� � CLRL (R3)� � PUSHL R2�� CALLS #1, G^SYS$CLOSE� RET]� .EXTRN IO$_SETMODE, IO$M_OUTBAND, SYS$ASSIGN, SYS$QIOW, SYS$GETJPIW, SYS$SETPRV, SYS$CREATE�� .EXTRN SYS$CONNECT-�U.9: .WORD ^M<R2,R3,R4,R5,R6,R7,R8,R9,R10,-�� R11>� SUBL2 #56, SP� MOVL W^P1_ADDRESS, R0�"� MOVAB L^<U.19-P1_START>(R0), R9� PUSHAB L^<U.1-P1_START>(R0)�� PUSHAB L^<U.35-P1_START>(R0)"� MOVAB L^<U.30-P1_START>(R0), R7#� MOVAB L^<U.29-P1_START>(R0), R10�"� MOVAB L^<U.26-P1_START>(R0), R6� PUSHAB L^<U.27-P1_START>(R0)"� MOVAB L^<U.38-P1_START>(R0), R8#� MOVAB L^<U.37-P1_START>(R0), R11�� CLRQ 12(SP)�� ADDL3 #32, 4(AP), R1�� BBSS R1, 12(SP), 1$��1$: MOVZBL W^U.21, 20(SP)� MOVAB W^U.21+1, 24(SP)�$� MOVC3 #<PROTO_END-PROTO_START>, -!� W^PROTO_START, L^<PROTO_START--�� P1_START>(R0)�� CLRQ -(SP)� CLRL -(SP) � PUSHL R9�� PUSHAB 36(SP)�� CALLS #5, G^SYS$ASSIGN�� BLBS R0, 2$�� RET�2$: TSTL 4(AP)� � BEQL 3$�� CLRQ -(SP)� MOVQ #2, -(SP)� PUSHAB 28(SP)�� PUSHL 28(SP)�� CLRQ -(SP)� CLRL -(SP)$� PUSHL #<IO$_SETMODE!IO$M_OUTBAND>� MOVZWL (R9), -(SP)� CLRL -(SP)� CALLS #12, G^SYS$QIOW� BLBS R0, 3$�� RET�3$: MOVW W^U.30, (R7)� MOVL R10, 4(R7)�!� MOVC3 W^U.30, @W^U.30+4, (R10)�� MOVW W^U.38, (R8)�� MOVL R11, 4(R8)�!� MOVC3 W^U.38, @W^U.38+4, (R11)�� MOVB (R7), 52(R6)�� MOVL 4(R7), 44(R6)� MOVAB W^U.25, 40(R6)�� MOVL R10, W^U.25+4� MNEGB #1, W^U.25+2�� MOVL #33816584, 44(SP)� MOVAB 28(SP), 48(SP)�� CLRQ 52(SP)�� CLRQ -(SP)� CLRL -(SP)� PUSHAB 56(SP)�� CLRQ -(SP) � PUSHL #4�� CALLS #7, G^SYS$GETJPIW� BLBC R0, 6$�� MCOML 28(SP), 28(SP)�� MCOML 32(SP), 32(SP)�� PUSHAB 36(SP)�� CLRL -(SP)� PUSHAB 36(SP)�� CLRL -(SP)� CALLS #4, G^SYS$SETPRV�� BLBC R0, 6$� � PUSHL R6�� CALLS #1, G^SYS$CREATE�� MOVL R0, R2�� BLBC R2, 4$�� ADDL3 #60, (SP), R0� MOVL R6, (R0)� � PUSHL (SP)�� CALLS #1, G^SYS$CONNECT� MOVL R0, R2��4$: MOVZBW W^U.25+3, (R7)� MOVW (R7), W^U.30�� MOVL 4(R7), W^U.30+4� CLRQ -(SP)� PUSHAB 44(SP)� � PUSHL #1�� CALLS #4, G^SYS$SETPRV�� BLBC R0, 6$�� BLBS R2, 5$�� MOVL R2, R0�� RET�5$: MOVL #1, @4(SP)� MOVL #1, R0��6$: RET��U.10: .WORD ^M<>� MOVL W^P1_ADDRESS, R0�*� CLRL @L^<UINT_LEVEL_LOGGING-P1_START>-� (R0)%� MOVL @L^<UMISSED_BYTES-P1_START>-�� (R0), W^U.36"� MOVL #1, L^<U.34-P1_START>(R0)� MOVL #1, R0�� RET� .EXTRN SYS$CMEXEC��U.11: .WORD ^M<>� CLRL -(SP)� PUSHAB W^U.6� CALLS #2, G^SYS$CMEXEC�� CMPL 4(AP), R0 � BNEQ 1$�� MOVL #1, R0�� RET�1$: BLBC 4(AP), 2$�� MOVL #PHOTO$_NOTLOGGING, R0�� RET�2$: CMPL R0, #2 � BNEQ 3$�� MOVL #PHOTO$_HALFDOWN, R0�� RET�3$: MOVL #PHOTO$_LOGGING, R0�� RET�U.12: .WORD ^M<>� CLRL -(SP) � PUSHL SP�� PUSHL 8(AP)� CALLS #2, G^LIB$ENABLE_CTRL� MOVL @4(AP), R0�� RET�U.13: PUSHL R2� SUBL2 #24, SP � CLRL R2�� MOVAB 8(SP), R0� MOVL #67108872, (R0)+�� MOVAB (SP), (R0)+� CLRQ (R0)+� CLRQ -(SP)� CLRL -(SP)� PUSHAB 20(SP)�� CLRQ -(SP)� CLRL -(SP)� CALLS #7, G^SYS$GETJPIW� BLBC R0, 5$�� BLBS (SP), 1$�� MOVZWL #10242, -(SP)� CALLS #1, G^LIB$SIGNAL� � INCL R2��1$: BBS #4, 1(SP), 2$�� MOVZWL #10338, -(SP)� CALLS #1, G^LIB$SIGNAL� � INCL R2��2$: BBS #2, 3(SP), 3$�� MOVZWL #10450, -(SP)� CALLS #1, G^LIB$SIGNAL� � INCL R2��3$: TSTL R2 � BEQL 4$�� MOVL #36, R0 � BRB 5$��4$: MOVL #1, R0�5$: ADDL2 #24, SP�� MOVL (SP)+, R2� RSB� .PSECT $PLIT$,NOWRT,NOEXE,2��P.AAC: .ASCII \PHOTO \<0><0>��P.AAB: .LONG 17694726�� .ADDRESS P.AAC��P.AAE: .ASCII \PAUSE\<0><0><0>��P.AAD: .LONG 17694725�� .ADDRESS P.AAE��P.AAG: .ASCII \INPUT\<0><0><0>��P.AAF: .LONG 17694725�� .ADDRESS P.AAG��P.AAI: .ASCII \ABORT\<0><0><0>��P.AAH: .LONG 17694725�� .ADDRESS P.AAI��P.AAK: .ASCII \BUFFER_SIZE\<0>��P.AAJ: .LONG 17694731�� .ADDRESS P.AAK�!�P.AAM: .ASCII \STATISTICS\<0><0>��P.AAL: .LONG 17694730�� .ADDRESS P.AAM��P.AAO: .ASCII \LOG\<0>��P.AAN: .LONG 17694723�� .ADDRESS P.AAO��P.AAQ: .ASCII \OFF\<0>��P.AAP: .LONG 17694723�� .ADDRESS P.AAQ��P.AAS: .ASCII \VERSION\<0>��P.AAR: .LONG 17694727�� .ADDRESS P.AAS��P.AAT: .LONG 0� .ADDRESS U.12 � .LONG 2� .ADDRESS U.20 � .LONG 0�P.AAV: .ASCII \PHOTO\ � .BLKB 3�P.AAU: .LONG 5� .ADDRESS P.AAV�� .PSECT PROTO$98,NOEXE,2��U.105: .BLKB 4�U.106: .BLKB 12��U.107: .LONG 12�� .ADDRESS U.106��U.108: .WORD 0� .BYTE 14, 2 � .LONG 0�U.96= P.AAB�U.97= P.AAD�U.98= P.AAF�U.99= P.AAH�U.100= P.AAJ��U.101= P.AAL��U.102= P.AAN��U.103= P.AAP��U.104= P.AAR�S� .EXTRN LOOKUP_TERM, SYS$DCLEXH, GET_IMAGE_INFO, LIB$FORMAT_DATE_TIME, LIB$CVT_DTB�� .PSECT $CODE$,NOWRT,2�.�U.14: .WORD ^M<R2,R3,R4,R5,R6,R7,R8,R9,R10,-� R11>� MOVAB -268(SP), SP�� MOVC3 #20, W^P.AAT, -20(FP)� MOVAB 4(SP), -4(FP)� PUSHAB 4(SP)� MOVL #33554432, 4(SP)�� PUSHAB 4(SP)� CALLS #2, G^LIB$DISABLE_CTRL�� MOVL R0, R6�� PUSHAB -20(FP)� CALLS #1, G^SYS$DCLEXH�� BLBS R0, 1$�� RET�1$: PUSHAB W^U.104�� CALLS #1, W^U.15�� BLBS R0, 2$�� PUSHAB W^U.108� CALLS #1, G^LIB$GET_FOREIGN� MOVL R0, R6�� PUSHAB W^U.108� PUSHAB W^U.96�� PUSHAB W^U.108� CALLS #3, G^STR$CONCAT�� PUSHAB G^PHOTO_CLI_TABLE� PUSHAB W^U.108� CALLS #2, G^CLI$DCL_PARSE� MOVL R0, R6�� BLBS R6, 2$� � BRW 46$�2$: PUSHAB W^U.104�� CALLS #1, G^CLI$PRESENT� BLBC R0, 5$�� CLRL 8(SP)� MOVZBL #64, 40(SP)� MOVAB 112(SP), 44(SP)� MOVZBL #64, 32(SP)� MOVAB -92(FP), 36(SP)� MOVZBL #64, 24(SP)� MOVAB 48(SP), 28(SP)�� PUSHAB 40(SP)�� PUSHAB 36(SP)�� PUSHAB -28(FP)� CALLS #3, G^GET_IMAGE_INFO�� BLBS R0, 3$�� RET�3$: MOVL #2, (SP) � PUSHL SP�� PUSHAB 28(SP)�� PUSHAB 16(SP)�� PUSHAB -28(FP)� PUSHAB 40(SP)�#� CALLS #5, G^LIB$FORMAT_DATE_TIME�� MOVL R0, R6�� BLBS R6, 4$� � PUSHL R6�� CALLS #1, G^LIB$SIGNAL��4$: PUSHAB 24(SP)� PUSHAB 44(SP)�� PUSHAB 40(SP)� � PUSHL #4�� PUSHL #PHOTO$_VERSION� CALLS #5, G^LIB$SIGNAL� � BRW 5���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Έ� ������ SUPSER054.C��������������������(�� ��![HUNTER.SUPSER.V54C.C]PHOTO.MAR;1����������������������������������������������������������������������������������������������f�����$�������������������������M�������������0$�5$: BSBW U.13� BLBS R0, 6$�� RET�6$: PUSHAB W^U.100�� CALLS #1, G^CLI$PRESENT� BLBC R0, 8$�� MOVZBL #128, 112(SP)� MOVAB 120(SP), 116(SP)�� PUSHAB 112(SP)� PUSHAB 116(SP)� PUSHAB W^U.100� CALLS #3, G^CLI$GET_VALUE� BLBS R0, 7$�� RET�7$: PUSHAB 12(SP)� PUSHL 120(SP)� MOVZWL 120(SP), -(SP)�� CALLS #3, G^LIB$CVT_DTB� BLBS R0, 9$�� RET�8$: MOVL #2, 12(SP)�9$: PUSHAB W^P.AAU�� PUSHAB W^U.107� CALLS #2, G^LOOKUP_TERM� MOVL R0, R6�� BLBS R6, 11$� CMPL R6, #324� � BEQL 10$ � BRW 46$!�10$: PUSHL #PHOTO$_NOTACLASSDEV�� CALLS #1, G^LIB$SIGNAL��11$: PUSHAB W^U.101� CALLS #1, G^CLI$PRESENT� BLBC R0, 18$� CALLS #0, G^INIT_PHOTO_P1� BLBS R0, 12$� RET�12$: PUSHL #1�� CALLS #1, W^U.11�� BLBS R0, 13$� RET�13$: CLRL -(SP)� PUSHAB W^U.7� CALLS #2, G^SYS$CMEXEC�� BLBS R0, 14$� RET�14$: PUSHL W^U.31� � PUSHL #2�� BLBC W^INPUT_ONLY, 15$� PUSHL #PHOTO$_ISTAT � BRB 16$�15$: PUSHL #PHOTO$_STAT��16$: CALLS #3, G^LIB$SIGNAL�� BLBS W^U.24, 17$� PUSHL #PHOTO$_PAUSED�� CALLS #1, G^LIB$SIGNAL��17$: PUSHL W^U.36� � PUSHL #2�� PUSHL #PHOTO$_MISSED� � BRW 49$�18$: PUSHAB W^U.103� CALLS #1, G^CLI$PRESENT� MOVL R0, R6�� BLBS R6, 19$� PUSHAB W^U.99�� CALLS #1, G^CLI$PRESENT� BLBS R0, 19$ � BRW 36$�19$: MOVL #34471936, -28(FP)�� CLRL -24(FP)� BLBS R6, 20$� MOVL #1, R2� � BRB 21$�20$: CLRL R2� �21$: CALLS #0, G^INIT_PHOTO_P1� BLBS R0, 22$� RET�22$: PUSHL #2�� CALLS #1, W^U.11�� MOVL R0, R6�� BLBS R6, 23$ � PUSHL #1�� CALLS #1, W^U.11�� MOVL R0, R6�� BLBS R6, 23$ � BRW 46$�23$: CLRL -(SP)� PUSHAB W^U.7� CALLS #2, G^SYS$CMEXEC�� BLBS R0, 24$� RET�24$: BLBC R2, 27$� BLBC W^INPUT_ONLY, 25$� PUSHL #PHOTO$_IABORTED� � BRB 26$�25$: PUSHL #PHOTO$_ABORTED�26$: CALLS #1, G^LIB$SIGNAL� � BRB 30$�27$: MOVQ #2, -(SP)� BLBC W^INPUT_ONLY, 28$� PUSHL #PHOTO$_IFINI � BRB 29$�28$: PUSHL #PHOTO$_FINI��29$: CALLS #3, G^LIB$SIGNAL��30$: CLRL -(SP)� PUSHAB W^U.10�� CALLS #2, G^SYS$CMEXEC�� CLRL -(SP)� PUSHAB W^U.3� CALLS #2, G^SYS$CMEXEC�� CLRL -(SP)� PUSHAB W^U.8� CALLS #2, G^SYS$CMEXEC�� CLRQ -(SP)� PUSHAB W^U.107� CALLS #3, G^JIGGLE_VECTORS�� BLBS R0, 31$� RET�31$: MOVL W^U.36, R0� � BEQL 32$ � PUSHL R0� � PUSHL #2�� PUSHL #PHOTO$_MISSED�� CALLS #3, G^LIB$SIGNAL��32$: BLBS R2, 33$� PUSHAB W^U.30� � PUSHL #2�� PUSHL #PHOTO$_FILE�� CALLS #3, G^LIB$SIGNAL� � BRB 34$�33$: PUSHAB W^U.30�� CALLS #1, G^LIB$DELETE_FILE �34$: CALLS #0, G^FREE_PHOTO_P1� BLBC R0, 35$ � BRW 46$�35$: RET�36$: PUSHAB W^U.30�� PUSHAB W^U.30�� PUSHAB W^U.102� CALLS #3, G^CLI$GET_VALUE� BLBS R0, 37$ � BRW 50$�37$: MOVL #1, -28(FP)� MOVL #4, -24(FP)� MOVL #4, -36(FP)� MOVAB 16(SP), -32(FP)� PUSHAB -36(FP)� PUSHAB -36(FP)� PUSHAB W^U.97�� CALLS #3, G^CLI$GET_VALUE� BLBS R0, 38$� RET�38$: PUSHAB 20(SP)�� PUSHAB -36(FP)� CALLS #2, G^OTS$CVT_TI_L�� BLBS R0, 39$� RET�39$: CMPL 20(SP), #32 � BGEQ 40$� TSTL 20(SP)� � BGEQ 41$�40$: CLRL 20(SP)��41$: MOVL 20(SP), -24(FP)� PUSHAB W^U.98�� CALLS #1, G^CLI$PRESENT� MOVL R0, W^INPUT_ONLY�� MOVB W^U.107, W^U.21&� MOVC3 W^U.107, @W^U.107+4, W^U.21+1� CALLS #0, G^INIT_PHOTO_P1� BLBS R0, 42$� RET�42$: CLRL -(SP)� CALLS #1, W^U.11�� BLBS R0, 43$� RET�43$: PUSHAB -28(FP)� PUSHAB W^U.9� CALLS #2, G^SYS$CMEXECL� MOVL R0, R6D� BLBS R6, 44$� CALLS #0, G^FREE_PHOTO_P1� CMPL R6, #114762 � BNEQ 46$� MOVL #PHOTO$_DNF, R6 � BRB 46$�44$: PUSHL 12(SP)0 � PUSHL #1 � PUSHAB W^U.107� CALLS #3, G^JIGGLE_VECTORSA� MOVL R0, R6 � BLBC R6, 45$� CLRL -(SP)� PUSHAB G^EXEC_PATCH_P1� CALLS #2, G^SYS$CMEXEC.� MOVL R0, R6.� BLBS R6, 47$� CLRQ -(SP)� PUSHAB W^U.107� CALLS #3, G^JIGGLE_VECTORS�� BLBS R6, 47$�45$: CLRL -(SP)� PUSHAB W^U.8� CALLS #2, G^SYS$CMEXEC�� CALLS #0, G^FREE_PHOTO_P1�46$: MOVL R6, R0.� RET�47$: MOVQ #2, -(SP)� BLBC W^INPUT_ONLY, 48$� PUSHL #PHOTO$_IINIT � BRB 49$�48$: PUSHL #PHOTO$_INIT.�49$: CALLS #3, G^LIB$SIGNAL � PUSHAB W^U.30E � PUSHL #2D� PUSHL #PHOTO$_FILE�� CALLS #3, G^LIB$SIGNALO�50$: MOVL #1, R0.� RET�U.15: .WORD ^M<>� MOVAL 1$, (FP)�� PUSHL 4(AP)� CALLS #1, G^CLI$PRESENT� RET�1$: .WORD ^M<>� CLRL -(SP) � PUSHL SP.� MOVQ 4(AP), -(SP)A� CALLS #3, G^LIB$SIG_TO_RET.� RET� .EXTRN LIB$SIGNALD � .END U.14 0 � .BYTE 0 � .LONG 0 � .LONG 0 � .WORD 0 � .BYTE 8 � .BYTE 0 � .LONG 0�U.27: .BYTE 1� � .BYTE 68� � .WORD 0 � .LONG 1024� � .LONG 0 � .LONG 0 � .WORD 0[3]� � .WORD 0 � .LONG 0 � .WORD 0 � .BYTE 0 � .BYTE 0 � .WORD 0 � .WORD 0 � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 16� � .LONG 0 � .LONG 0 � .LONG 0��������������"�*�[HUNTER.SUPSER.V54C.C]PHOTO.SDML;1�+��,�& ���.�3����/��� �4�e���3���1���������������������-� ����0���1����2���3������K��P���W���O�2����5���6���7� ~3䵖��8����������9����������G����H��J����������������������������� �<COMMENT>��!�H�! Copyright 1992 by Hunter Goatley. All rights reserved. PermissionK�! is given to freely distribute and modify this software for no commercial�5�! gain as long as this copyright notice is retained.��!���� File: PHOTO.SDML���2� Author: Hunter Goatley, goathunter@WKUVX1.BITNET��� Date: April 6, 1992�� � Abstract:���>� This file is the VAX DOCUMENT source for the _PHOTO Reference9� Guide_. It is partially based on the original documents�@� accompanying the Supervisor Series, with much new and rewritten � material.��� Needs an index!��� Modified by:��*� 01-004 Hunter Goatley 13-SEP-1992 14:51� 2-OCT-1992 15:35�2� Added info about PHOTO/ABORT and PLAYBACK/STRIP.$� Added changes to PLAYBACK command.��*� 01-003 Hunter Goatley 10-AUG-1992 12:379� Fixed paragraph on PLAYBACKing a different session log.���*� 01-002 Hunter Goatley 19-MAY-1992 07:555� Updated for v5.2. Changed BUFFER_SIZE description.�1� Added section about using PHOTO and SUPERVISOR.���*� 01-001 Hunter Goatley 11-APR-1992 03:44� Changed version to 5.1-1.���*� 01-000 Hunter Goatley 6-APR-1992 21:25 � Genesis.�� �<ENDCOMMENT>� �0�<DEFINE_SYMBOL>(WKU\Western Kentucky University)>�<DEFINE_SYMBOL>(ACRS\Academic Computing and Research Services))�<DEFINE_SYMBOL>(SUPSER\Supervisor Series)��<DEFINE_SYMBOL>(VER\V5.4)� �<BOOK_ONLY>��� �<REVISION>�<FRONT_MATTER>(PHOTO_MAN)��� �<TITLE_PAGE>�<TITLE>(PHOTO Reference Guide)�<ABSTRACT>(October 1992)E�<p>This manual describes the use of PHOTO, a member of the Supervisor�'�Series of terminal monitoring software.� �<ENDABSTRACT>�*�<REVISION_INFO>(This is a revised manual.)@�<REVISION_INFO>(Operating System and Version:\VMS V5.0 or later)9�<REVISION_INFO>(Software Version:\PHOTO <REFERENCE>(VER))�8�<ENDTITLE_PAGE>(Academic Computing and Research ServicesC� <LINE>Western Kentucky University<LINE>Bowling Green, Kentucky)����<COPYRIGHT_PAGE>�<PRINT_DATE>(5 October 1992)���<P>�C�Permission is granted to copy and redistribute this document for no��commerci���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� � ������ SUPSER054.C��������������������& �� ��"[HUNTER.SUPSER.V54C.C]PHOTO.SDML;1���������������������������������������������������������������������������������������������e�����3�������������������������y�������������al gain.���<P>�D�The information in this document is subject to change without noticeF�and should not be construed as a commitment by the author. The authorJ�assumes no responsibility for any errors that may appear in this document.���<P>�D�<EMPHASIS>(DISCLAIMER:\BOLD) The software described in this documentI�is provided <QUOTE>(<EMPHASIS>(as is\BOLD)). No guarantee is made by the�M�author or the author's employer as to the suitability, reliability, security,�,�usefulness, or performance of this software.���<P>�C�Neither <REFERENCE>(WKU) nor Hunter Goatley are responsible for any�4�losses that may occur from the use of this software.��A�<P>The following are trademarks of Digital Equipment Corporation:��<TABLE>�!�<TABLE_ATTRIBUTES>(SINGLE_SPACED)��<TABLE_SETUP>(3\20\20)�<TABLE_ROW>(DEC\VAX\VMS)�<TABLE_ROW>(DECnet\UCX\) �<ENDTABLE><�<COPYRIGHT_DATE>(1992\Hunter Goatley. ALL RIGHTS RESERVED.)���<ENDCOPYRIGHT_PAGE>����<CONTENTS_FILE>���� ��<PREFACE>(\PHOTO_PREFACE)��<P>�K�PHOTO is a VMS utility program that allows users to log their terminal�J�sessions into a file. While PHOTO is running, each character sent to and I�received from the terminal is recorded in a file and may be re-displayed�!�later using the PLAYBACK command.����<NOTE>G�For efficiency reasons, the log files created by PHOTO are just streams�H�of bytes---they are not normal VMS text files. PLAYBACK must be used to�convert them to text files.� �<ENDNOTE>����<P>�I�PHOTO is part of the <REFERENCE>(SUPSER) of terminal monitoring software.�B�The <REFERENCE>(SUPSER) was originally written by Bob Pasker, Bill5�Donner, and Terry Way for Precision Business Systems,�*�and was later acquired by Security PacificD�Software Services. After selling and maintaining the software for aE�number of years, Security Pacific Software's Dan Shoop placed version�?�5.0D of the <REFERENCE>(SUPSER) into the public domain in 1992.����<P>�N�The <REFERENCE>(SUPSER) is currently maintained by Hunter Goatley, VMS SystemsN�Programmer for <REFERENCE>(WKU), Bowling Green, KY (goathunter@WKUVX1.BITNET).��$�<HEAD1>(Intended Audience\PHOTO_P_1)I�<P>This manual is intended for any VMS user who can take advantage of the�I�services provided by PHOTO. The reader should already know the basics of� �using VMS.��� �%�<HEAD1>(Document Structure\PHOTO_P_2)�8�<P>This guide consists of two chapters and one appendix.�<TABLE>��<TABLE_SETUP>(2\10)�K�<TABLE_ROW>(Chapter 1\Provides a simple step-by-step guide to using PHOTO.)�L�<TABLE_ROW>(Chapter 2\Provides instructions of reviewing a recorded session,3� with explanations of how to PLAYBACK a session to�� various devices.)�J�<TABLE_ROW>(Part II\Provides command descriptions for PHOTO and PLAYBACK.) �<ENDTABLE>��(�<HEAD1>(Typical Uses of PHOTO\PHOTO_P_3)�<P>�1�PHOTO can be used to perform the following tasks:����<LIST>(UNNUMBERED)C�<LE> Document an obscure occurrence, or a software bug, with�2� messages and traceback directly from the program.��;�<LE> Have PHOTO log the output into a file that can be sent�>� via electronic mail, magtape, or hardcopy to others to� analyze the problem.���B�<LE> Prepare transcripts of dialogue with a computer. This is?� convenient when documenting programs for handouts, user's�� manuals, and other sessions.���A�<LE> Keep a journal of what is done in a session to keep track of� � users' activities and progress.��B�<LE> Monitor data-entry for possible system abuse and software>� problem resolution. An entire session can be reproduced for� review and analysis.���I�<LE> PHOTO another terminal session. SUPERVISOR, the other member of the�A� <REFERENCE>(SUPSER), allows the monitoring of the activities of�F� another user. After activating PHOTO, SUPERVISOR can be used toC� access the other terminal. Everything done on the other terminal�:� is written to a log file under the supervisor's control.��"�<LE> SUPERVISOR can also use filesA� created with the PHOTO/LOG/INPUT qualifier as input. SUPERVISOR�>� sends the typed input only to another terminal, where it is"� executed as part of that session. �<ENDLIST>��� �<ENDPREFACE>�<ENDFRONT_MATTER>���� ��<PART>>�<CHAPTER>(Using PHOTO to Capture a Terminal Session\PHOTO_CH1)�<P>�E�This chapter provides a step-by-step guide to using PHOTO to record a��terminal session in a log file.���� �)�<HEAD1>(Starting a PHOTO Session\PHOTO_1)��<P>�H�To start a PHOTO log session, type the DCL command PHOTO. By default, a?�log file named PHOTO.LOG will be created in the current default�C�directory. The default filename can be overridden by using the /LOG�H�qualifier; it accepts a filename as a value. For example, the followingJ�command creates a file named MYLOGFILE.LOG in DUB4:[MYDIR]; PHOTO responds�with an informational message:�� �<INTERACTIVE>�@�<S>($ )<U>(<EMPHASIS>(PHOTO/LOG=DUB4:[MYDIR]MYLOGFILE.LOG\BOLD))B�<S>(%PHOTO-I-INIT, Recording initiated at 24-MAR-1992 09:02:38.23)�<S>($)�<ENDINTERACTIVE>���<P>�M�The user must have write access to the specified directory in order to create� �the log file.����<NOTE>"�<X>(Terminals<xsubentry>supported)$�<X>(Terminals<xsubentry>unsupported)9�PHOTO cannot log network terminals logged in via SET HOST�B�over DECnet (RT devices). However, it can log physical terminals,O�terminals with virtual terminals (VTAx: devices), LAT terminal server terminals�O�(LTAx: devices), UCX telnet terminals (TN devices), and pseudo-terminals (FTAx:�B�and TWAx: devices) that are logged in. PHOTO has been tested withI�numerous third-party network terminal devices, including those created by�F�the TCP/IP implementations by TGV and TWG, and the PacerLink Appletalk�implementation by Pacer. �<ENDNOTE>���� �(�<HEAD1>(Pausing a PHOTO Session\PHOTO_2)�<P>�J�While recording, logging can be temporarily disabled by pressing the pauseJ�key (<KEY>(CTRL-D), by default). Pressing the pause key again will resumeE�the logging to the file. Informational messages are displayed on the�*�screen when logging is paused and resumed:�� �<INTERACTIVE>�"�<S>($ )<U>(<EMPHASIS>(PHOTO\BOLD))B�<S>(%PHOTO-I-INIT, Recording initiated at 24-MAR-1992 09:02:38.23)&�<S>($ )<U>(<EMPHASIS>(SHOW TIME\BOLD))�<S>( 24-MAR-1992 09:02:40)�*�<S>($ )<U>(<EMPHASIS>(<KEY>(CTRL-D)\BOLD))�<S>([PHOTO logging paused])�&�<S>($ )<U>(<EMPHASIS>(SHOW TIME\BOLD))�<S>( 24-MAR-1992 09:02:46)�*�<S>($ )<U>(<EMPHASIS>(<KEY>(CTRL-D)\BOLD))�<S>([PHOTO logging resumed])�<S>($)�<ENDINTERACTIVE>���<P>�K�The ``paused'' message is not recorded in the log file, but the ``resumed''�?�message is as an indication of where the interruption occurred.����<P>�I�The default pause key can be overridden using the /PAUSE qualifier on the�H�PHOTO command line. It may need to be changed if, for example, PHOTO isG�used with another application that expects <KEY>(CTRL-D) to be used for�A�another purpose. The /PAUSE qualifier accepts a value that is the�A�character's ASCII decimal value. For example, the ASCII value of�H�<KEY>(CTRL-D) is 4; the following command changes the pause character to�ASCII 2 (<KEY>(CTRL-B)):�� �<INTERACTIVE>�*�<S>($ )<U>(<EMPHASIS>(PHOTO/PAUSE=2\BOLD))B�<S>(%PHOTO-I-INIT, Recording initiated at 24-MAR-1992 09:27:36.92)*�<S>($ )<U>(<EMPHASIS>(<KEY>(CTRL-B)\BOLD))�<S>([PHOTO logging paused])�*�<S>($ )<U>(<EMPHASIS>(<KEY>(CTRL-B)\BOLD))�<S>([PHOTO logging resumed])�<S>($)�<ENDINTERACTIVE>���<P>�J�Care should be taken when selecting the pause character to avoid conflictsI�with other applications during the PHOTO session. For example, the tilde�E�(~), which has an ASCII value of 126, would probably be a good choice�I�because it is rarely used. Some <K���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������=� ������ SUPSER054.C��������������������& �� ��"[HUNTER.SUPSER.V54C.C]PHOTO.SDML;1���������������������������������������������������������������������������������������������e�����3�������������������������,�������������EY>(CTRL-) sequences are interpreted by�E�the terminal driver; contact the system manager for a a list of ASCII��values.���� �9�<HEAD1>(Displaying the Status of a PHOTO Session\PHOTO_3)��<P>�J�The PHOTO/STATISTICS command provides a brief status report of the current�PHOTO session:�� �<INTERACTIVE>�-�<S>($ )<U>(<EMPHASIS>(PHOTO/STATISTICS\BOLD))�?�<S>(%PHOTO-I-STAT, Recording in progress, 80 characters logged)�)�<S>(%PHOTO-I-MISSED, Missed 0 characters)�:�<S>(%PHOTO-I-FILE, Log file is DKA300:[HUNTER]PHOTO.LOG;1)�<S>($)�<ENDINTERACTIVE>���<P>nH�If the PHOTO session has been paused, the following message will also be�displayed in the status report:o�� �<INTERACTIVE>�3�<S>(%PHOTO-I-PAUSED, Photo logging has been paused)��<ENDINTERACTIVE>���<P>MB�Missed characters can be caused by an excessive amount of output. 4�Normally, there should not be any missed characters.��� U%�<HEAD1>(Recording Input Only\PHOTO_4)G�<P>.F�PHOTO can be used to record only the characters input to the terminal,D�instead of recording both input and output. The PHOTO/INPUT commandK�creates an input-only log. The input-only log can be fed to the SUPERVISOR E�utility to execute the same commands during another terminal session.�G�In this way, PHOTO and SUPERVISOR can simulate user input for automated9�testing of software.���<MARK> �<INTERACTIVE>f(�<S>($ )<U>(<EMPHASIS>(PHOTO/INPUT\BOLD))N�<S>(%PHOTO-I-IINIT, input-only recording initiated at 24-MAR-1992 09:27:36.92)�<S>($)�<ENDINTERACTIVE>���<P>TC�The PHOTO/OFF and PHOTO/STATISTICS command also indicate whether orh#�not input-only recording is active.H �<ENDMARK>e��� -4�<HEAD1>(Displaying the PHOTO Version Number\PHOTO_5)�<P>BK�To determine the version number of PHOTO, add the /VERSION qualifier to the �PHOTO command line:)���<MARK> �<INTERACTIVE>S*�<S>($ )<U>(<EMPHASIS>(PHOTO/VERSION\BOLD))4�<S>(%PHOTO-I-VERSION, PHOTO V5.4 linked 13-SEP-1992)�<S>($)�<ENDINTERACTIVE> �<ENDMARK>e��� c'�<HEAD1>(Ending a PHOTO Session\PHOTO_6)i�<P>uE�The PHOTO/OFF command is used to terminate a PHOTO recording session.eN�Two informational messages will be displayed indicating the time recording was(�terminated and the name of the log file:�� �<INTERACTIVE> &�<S>($ )<U>(<EMPHASIS>(PHOTO/OFF\BOLD))A�<S>(%PHOTO-I-FINI, recording finished at 24-MAR-1992 15:23:33.96)i:�<S>(%PHOTO-I-FILE, log file is DKA300:[HUNTER]PHOTO.LOG;1)�<S>($)�<ENDINTERACTIVE>���<P>�D�PHOTO recording is also terminated when the process is logged out or&�deleted using the DCL STOP/ID command.��� u�<MARK>0�<HEAD1>(Aborting a PHOTO Session\PHOTO_ABORTING)�<P> C�The PHOTO/ABORT command is used to abort a PHOTO recording session.rE�Like PHOTO/OFF, PHOTO/ABORT terminates the terminal recording, but itt.�also automatically deletes the PHOTO log file.�� �<INTERACTIVE>A(�<S>($ )<U>(<EMPHASIS>(PHOTO/ABORT\BOLD))(�<S>(%PHOTO-I-ABORTED, recording aborted)�<S>($)�<ENDINTERACTIVE>�� �<ENDMARK>i��� e7�<HEAD1>(Capturing the I/O for Another Terminal\PHOTO_7)b�<P>,G�Used in conjunction with SUPERVISOR, PHOTO can record the activities on�G�another terminal. To initiate the recording, simply start PHOTO before�F�starting SUPERVISOR and terminate PHOTO after exiting SUPERVISOR. The-�following example shows the command sequence:i�� �<INTERACTIVE>T"�<S>($ )<U>(<EMPHASIS>(PHOTO\BOLD))3�<S>(Recording initiated at 19-MAY-1992 07:51:04.86)E,�<S>($ )<U>(<EMPHASIS>(SUPERVISE TXA3:\BOLD)) �<S>(....)t0�<U>(<EMPHASIS>(<KEY>(CTRL-D)<KEY>(CTRL-Z)\BOLD))'�<S>(%SUPSER-I-EXIT, Supervisor exiting)A&�<S>($ )<U>(<EMPHASIS>(PHOTO/OFF\BOLD))2�<S>(Recording finished at 19-MAY-1992 07:51:27.58)2�<S>(Log file is SYS$SYSDEVICE:[HUNTER]PHOTO.LOG;1)�<S>($ )e�<ENDINTERACTIVE>��#�<CHAPTER>(Using PLAYBACK\PHOTO_CH2)s�<P>rK�The log files generated by PHOTO are stored in a ``binary'' mode---they are�G�RMS files with variable-length records and no record attributes. WhiletH�they can be viewed using the DCL TYPE command, PHOTO includes a PLAYBACKF�command designed to convert the PHOTO log files to ``normal'' RMS text1�files and print them to a screen or to a printer.o��-�<HEAD1>(Playing Back a PHOTO Session\PHOTO_7)w�<P>nI�To display a PHOTO session on the terminal, just type PLAYBACK at the DCL��prompt: �� �<INTERACTIVE> %�<S>($ )<U>(<EMPHASIS>(PLAYBACK\BOLD))f�<ENDINTERACTIVE>���<P>nE�If no qualifiers are specified, PLAYBACK uses the following defaults:S���<LIST>(unnumbered)G�<LE> the log file played back is the latest version of PHOTO.LOG in the�� current default directory�<MARK>3�<LE> the output device is SYS$OUTPUT (the terminal)r �<ENDMARK>E4�<LE> the file is assumed to be stored in binary mode �<ENDLIST>1��0�<HEAD1>(Specifying a Different Log File\PHOTO_8)�<P>dC�A different log file can be displayed by specifying the name of theyA�log file as a parameter on the PLAYBACK command line. A full file�A�specification or a logical name may be entered. For example, thesE�following command opens SESSION.LOG in the current default directory:B�� �<INTERACTIVE>\1�<S>($ )<U>(<EMPHASIS>(PLAYBACK SESSION.LOG\BOLD)).�<ENDINTERACTIVE>��'�<HEAD1>(Pauses During PLAYBACK\PHOTO_9)a�<P>rJ�During the PHOTO session, typing the characters ``!?'' will cause PLAYBACKH�to pause the display of the log file until <KEY>(RETURN) is pressed. ItI�will then continue until the next ``!?'' sequence. The following example�,�shows a sample PLAYBACK session with pauses:�� �<INTERACTIVE>U%�<S>($ )<U>(<EMPHASIS>(PLAYBACK\BOLD))o �<S>($ DIR)���<S>(Directory DKA300:[HUNTER])�� �<S>(LOGIN.COM;1 LOGIN.MAR;1)���<S>(Total of 2 files.)"�<S>($ !This is my login directory)_�<S>($ !? )<U>(<EMPHASIS>([will pause here until <KEY>(RETURN) is pressed]\BOLD))m_�<S>($ SHOW TIME !? )<U>(<EMPHASIS>([will pause here until <KEY>(RETURN) is pressed]\BOLD))e�<S>( 24-MAR-1992 20:26:02)s�<S>($ PHOTO/OFF)�<ENDINTERACTIVE>��-�<HEAD1>(Redirecting PLAYBACK Output\PHOTO_10)a�<P>iI�The PLAYBACK output can be directed to some device other than the default-�terminal�<MARK> �(SYS$OUTPUT:) �<ENDMARK>a8�using the /OUTPUT qualifier. The qualifier value is theK�name of another device or file specification that is to receive the output.EH�For example, the following command displays the output on terminal TXA3:�� �<INTERACTIVE>t2�<S>($ )<U>(<EMPHASIS>(PLAYBACK/OUTPUT=TXA3:\BOLD))�<ENDINTERACTIVE>���<P> 3�The /OUTPUT value can also be a file specification.t�<MARK>>�If an output file is specified, by default PLAYBACK produces a@�``normal'' RMS text file, which has variable length records withD�carriage-return, carriage-control record attributes (/TYPE=RECORD). C�Also by default, any null characters (ASCII 0) and rubout sequencese=�(character deletions) are removed from the output file (whichP�corresponds to /STRIP).T���<P>p?�The following example converts PHOTO.LOG to a normal text file: �� �<INTERACTIVE>e7�<S>($ )<U>(<EMPHASIS>(PLAYBACK/OUTPUT=NORMAL.TXT\BOLD))i�<ENDINTERACTIVE>���<P>i�The DCL prompt ($) isOF�actually preceded by a null byte, which is displayed as ``^@'' in EDT.@�Rubout sequences are the characters produced when a character isB�deleted. They consist of a character, a backspace, a space, and a �whitepace.���<P>l@�By using a default of /STRIP, these characters are automatically=�removed, which makes the text file ``cleaner.'' The /NOSTRIP @�qualifier can be specified to prevent PLAYBACK from removing the �characters.M �<ENDMARK>T��� =5�<HEAD1>(Using PLAYBACK With Input-only Logs\PHOTO_11)c�<P>gH�To display input-only log files with PLAYBACK, the qualifier /TYPE=INPUTJ�must be specified on the command line. (Input-only logs are created usingF�the PHOTO/INPUT command; they contai���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������ SUPSER054.C��������������������& �� ��"[HUNTER.SUPSER.V54C.C]PHOTO.SDML;1���������������������������������������������������������������������������������������������e�����3�������������������������@������#�������n only the characters typed at theI�keyboard, not the output written to the terminal.) The following examplen/�shows how PLAYBACK processes an input-only log:r�� �<INTERACTIVE>i0�<S>($ )<U>(<EMPHASIS>(PLAYBACK/TYPE=INPUT\BOLD)) �<S>(SH USERS) �<S>(SHO DEF)�<S>(DIR)�<S>(PHOTO/OFF)�<ENDINTERACTIVE>���<P>nK�If PLAYBACK is run without specifying /TYPE=INPUT, the entire log file willo�not be visible.a��� n�<PART> �<PART_PAGE>s$�<TITLE>(Part II: Command Dictionary) �<ABSTRACT>5�This section provides descriptions of PHOTO commands. �<ENDABSTRACT>c���<ENDPART_PAGE>(RENUMBER)�<ENDBOOK_ONLY>5�<COMMAND_SECTION>(Command Reference\Commands\NEWPAGE)_���<COMMAND>(PHOTO\\PHOTO_CMD)i�� �<OVERVIEW>J�Starts terminal input and output logging to a log file. Can be configured8�to record both input and output, or just terminal input. �<ENDOVERVIEW>t���<FORMAT>$�<FCMD>(PHOTO)<FPARMS>([/qualifiers]) �<QUAL_LIST>u�<MARK>�<QPAIR>(/ABORT\) �<ENDMARK>S*�<QPAIR>(/BUFFER_SIZE=pages\/BUFFER_SIZE=2)�<QPAIR>(/INPUT\)1�<QPAIR>(/LOG=file spec\/LOG=SYS$DISK:[]PHOTO.LOG)<�<QPAIR>(/OFF\)�<QPAIR>(/PAUSE=number\/PAUSE=4)0�<QPAIR>(/STATISTICS\)H�<QPAIR>(/VERSION\)�<ENDQUAL_LIST> �<ENDFORMAT>u�� �<QUALDEFLIST>>�<MARK>�<QUALITEM>(/ABORT) �<QUALDEF>MB�Terminates the PHOTO recording and automatically deletes the PHOTO �log file.i �<ENDMARK>)��$�<QUALITEM>(/BUFFER_SIZE=buffer-size) �<QUALDEF>mI�Specifies the number of pages to use for buffering while supervising. By H�default, 2 pages are used. Up to 10 pages may be specified. AdditionalB�pages are useful on heavily-loaded systems where PHOTO misses some�data. ���<QUALITEM>(/INPUT) �<QUALDEF>iK�Specifies that an input-only log should be created. PHOTO will only recordRJ�characters typed at the terminal, not output written to the terminal. TheK�input log file can be fed to SUPERVISOR to simulate user input for softwareo�testing.���<QUALITEM>(/LOG=file-spec) �<QUALDEF>eK�Specifies the file specification for the PHOTO log file. By default, PHOTO<H�creates PHOTO.LOG in the current default directory. Write access to the7�specified directory is required to create the log file.(���<QUALITEM>(/OFF) �<QUALDEF>iD�Terminates a PHOTO recording session. The log file is closed and anJ�informational message is written to the terminal to indicate the recording�has terminated.a�<P>hJ�PHOTO can also be terminated by logging out of the process or stopping the&�process using the DCL command STOP/ID.���<QUALITEM>(/PAUSE=value) �<QUALDEF>yB�Specifies the ASCII value of the character to use as the ``pause''I�character to pause and resume logging. By default, <KEY>(CTRL-D) is used I�(ASCII 4). To change the pause character, simply specify the ASCII valuePK�of the desired character. For example, /PAUSE=2 specifies <KEY>(CTRL-B) ast�the pause character.���<QUALITEM>(/STATISTICS)T �<QUALDEF>�G�Displays statistics regarding the current PHOTO recording session. TheiF�information displayed includes the name of the log file, the number ofH�characters recorded, the number of characters missed, and whether or not�logging is paused.���<QUALITEM>(/VERSION) �<QUALDEF>s@�Displays the version of PHOTO currently installed on the system.�<ENDQUALDEFLIST>�� �<DESCRIPTION>�N�When PHOTO is executed without any qualifiers, it starts recording the currentI�terminal session to a log file. Recording continues until the logging isyI�paused (using the pause character) or until PHOTO/OFF is executed (or the D�process is terminated). By default, PHOTO creates a log file called#�PHOTO.LOG in the current directory.c���<P>bK�The log files created by PHOTO can be viewed and printed using the PLAYBACKh�utility.�<ENDDESCRIPTION>���<RESTRICTIONS>(LIST))�<X>(PHOTO command<xsubentry>restrictions)t$�<X>(Terminals<xsubentry>unsupported)=�<RITEM> RT devices (network terminals logged in via SET HOSTt � over DECnet) cannot be logged.F�<RITEM> WT devices (UIS VT100 pseudo-terminals) cannot be supervised.A�<RITEM> PHOTO is not compatible with the following DEC products:�8� Session Support Utility (SSU), DEC/Test Manager, ACMS,'� the Terminal Fallback Facility (TFF). �<ENDRESTRICTIONS>g��� c!�<COMMAND>(PLAYBACK\\PLAYBACK_CMD)i�� �<OVERVIEW>C�Displays a PHOTO log file to an output device. Used to play back afC�terminal session or convert a binary log file to a normal RMS file.M �<ENDOVERVIEW>I���<MARK>�<FORMAT>$�<FCMD>(PLAYBACK)<FPARMS>([log-file]) �<QUAL_LIST> 1�<QPAIR>(/OUTPUT=playback-file\/OUTPUT=SYS$OUTPUT)T�<QPAIR>(/STRIP\/STRIP)�<QPAIR>(/TYPE=type\See below.)�<ENDQUAL_LIST> �<ENDFORMAT> �<ENDMARK>u���<PARAMDEFLIST>�<PARAMITEM>(log-file)n �<PARAMDEF>E�Name of the log file to be played back. If omitted, PHOTO.LOG in the�"�current default directory is used.�<ENDPARAMDEFLIST>E�� �<QUALDEFLIST>M!�<QUALITEM>(/OUTPUT=playback-file)O �<QUALDEF>cK�Specifies the file specification for the output device. Can be a full fileDE�specification or a terminal device name. If a file is specified, theoB�default qualifier /TYPE=RECORD will create a normal RMS text file.���<QUALITEM>(/STRIP) �<QUALDEF>�>�Specifies that all null characters (ASCII 0) <MARK> and rubout2�sequences (character, backspace, space, backspace) �<ENDMARK>s�found in the log file shouldF�be removed before display. Useful for removing the null character theJ�precedes the DCL command prompt <MARK> and for removing characters deleted$�with the <KEY>(Delete) key.<ENDMARK>���<P>b�<MARK>A�By default, the characters are removed from the output file. Use -�/NOSTRIP to leave the characters in the file.i �<ENDMARK>o��'�<QUALITEM>(/TYPE=<list>(stacked\braces)i �<LE>INPUT� �<LE>RECORD �<ENDLIST>) �<QUALDEF>r7�Specifies the format of the input file and output file. ���<P>m�<MARK>=�If /TYPE=RECORD is specified, the created output file will be A�converted to a normal RMS text file. /TYPE=RECORD is the defaultO'�setting if an output file is specified.9 �<ENDMARK>.���<P>SF�If /TYPE=INPUT is specified, the log file being played back is assumed8�to be an input-only log file (created with PHOTO/INPUT).���<ENDQUALDEFLIST>�� �<DESCRIPTION>SG�The PLAYBACK command displays a terminal session previously recorded bySE�PHOTO. See <REFERENCE>(PHOTO_CMD) for information on how to record aT�terminal session.s�<ENDDESCRIPTION>�<ENDCOMMAND_SECTION>?�<COMMENT>( VAX/DEC CMS REPLACEMENT HISTORY, Element PHOTO.SDML)r<�<COMMENT>( *11 6-OCT-1992 08:22:09 GOATHUNTER "Fix typo")I�<COMMENT>( *10 6-OCT-1992 04:46:44 GOATHUNTER "Updated PLAYBACK info")eC�<COMMENT>( *9 5-OCT-1992 14:55:16 GOATHUNTER "Update for v5.4")r<�<COMMENT>( *8 10-AUG-1992 16:25:33 GOATHUNTER "Fix typo")c�<COMMENT>( *7 10-AUG-1992 13:08:41 GOATHUNTER "Updated for v5.3, added author info, fixed typo")nS�<COMMENT>( *6 20-MAY-1992 08:27:13 GOATHUNTER "Fixed preface page number, date")(e�<COMMENT>( *5 19-MAY-1992 15:51:29 GOATHUNTER "Added section about SUP and PHOTO; removed `you's") S�<COMMENT>( *4 13-MAY-1992 14:45:15 GOATHUNTER "Updated BUFFER_SIZE description") D�<COMMENT>( *3 13-MAY-1992 11:28:22 GOATHUNTER "Updated for v5.2")F�<COMMENT>( *2 27-APR-1992 08:18:46 GOATHUNTER "Updated for v5.1-1")T�<COMMENT>( *1 27-APR-1992 07:49:04 GOATHUNTER "DOCUMENT source for PHOTO manual")?�<COMMENT>( VAX/DEC CMS REPLACEMENT HISTORY, Element PHOTO.SDML)iing the name of theyA�log file as a parameter on the PLAYBACK command line. A full file�A�specification or a logical name may be entered. For example, thesE�following command opens SESSION.LOG in the current default directory:B�� �<INTERACTIVE>\1�<S>($ )<U>(<EMPHASIS>(PLAYBACK SESSION.LOG\BOLD)).�<ENDINTERACTIVE>��'�<HEAD1>(Pauses During PLAYBACK\P���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������0� ������ SUPSER054.C��������������������!�� ��$[HUNTER.SUPSER.V54C.C]PHOTOMAR.MAR;1�������������������������������������������������������������������������������������������R������������������������������t ��������������$�*�[HUNTER.SUPSER.V54C.C]PHOTOMAR.MAR;1�+��,�!���.�����/��� �4�R�������T�������������������-� ����0���1����2���3������K��P���W���O�����5���6���7�@х2䵖��8����������9����������G����H��J���������������������������-� .TITLE MACRO interface to BLISS Photo module� � .IDENT /01-003/ ; 3�;�H�; Copyright 1992 by Hunter Goatley. All rights reserved. PermissionK�; is given to freely distribute and modify this software for no commercial�5�; gain as long as this copyright notice is retained.��;��;++��;��; Facility: Supervisor Series�;��; Module: PHOTOMAR��;�G�; Author: Unknown. RBP and TTW. See SOURCE.BLI for more author info.��;��; Date: Sometime in 1983.�;��; Maintainer: Hunter Goatley��; VMS Systems Programmer��; Academic Computing, STH 226�; Western Kentucky University�; Bowling Green, KY 42101�; Phone: 502-745-5251#�; E-mail: goathunter@WKUVX1.BITNET��;��; Modified by:��;�6�; 01-003 Hunter Goatley 25-AUG-1992 08:32 ; 3E�; Modified OUR_DISCONNECT so that DISCONNECT_AST is called ; 3�E�; for PHOTO too. Previously, this was not done and PHOTO ; 3�E�; would hang/crash the system if a user was DISCONNECTed. ; 3�E�; Also modified PHOTO_ATTN_AST to queue the PHOTO DISCONNECT ; 3�:�; AST in executive mode, not supervisor mode. ; 3�; ; 36�; 01-002 Hunter Goatley 30-APR-1992 16:04 ; 2E�; Modified OUR_DISCONNECT to copy status from FAST_UNHOOK ; 2�C�; to AST_STATUS, which is then passed as a parameter to ; 2�4�; DISCONNECT_AST. Added .EXTRNs, etc. ; 2�; ; 2+�; 01-001 Hunter Goatley 6-APR-1992 11:15�;�; Added OUR_DISCONNECT routine to handle PORT_DISCONNECTs.�7�; Removed DMA support since DEC no longer supports it.�>�; Removed old modification history to start with clean slate.�;��;--�� .LIBRARY "SYS$LIBRARY:LIB.MLB"���� .DSABL GLOBAL ; 2�?� .ENABL SUPPRESSION ; Don't list unreferenced symbols ; 2�<� .NOSHOW BINARY ; Don't include binary in listings ; 2� ; 2��; ; 2%�; External routines ; 2��; ; 28� .EXTRN FAST_UNHOOK ; Unhook us from the terminal ; 2?� .EXTRN GETNEXT_AND_STARTIO ; Replacement GETNXT/STARTIO ; 2�7� .EXTRN PUTNEXT_PREFIX ; Stuff a character ; 2��; ; 2+�; External system routines ; 2��; ; 2<� .EXTRN EXE$ALONONPAGED ; Allocate nonpaged pool ; 2:� .EXTRN EXE$EPID_TO_PCB ; Convert EPID to PCB ; 2.� .EXTRN EXE$FORK ; Fork a process ; 22� .EXTRN INI$BRK ; XDELTA entry point ; 25� .EXTRN SCH$QAST ; Queue an AST to a process ; 2��; ; 2&�; External variables ; 2�; ; 25� .EXTRN OUR_AST ; Pointer to super_checkitout ; 2�5� .EXTRN OUR_AST2 ; Pointer to DISCONNECT_AST ; 2�5� .EXTRN OUR_PID ; The PID of the advising ; 2�<� .EXTRN SHOULD_SIGNAL ; Flag to indicate should signal ; 2:� .EXTRN SIGNAL_EACH ; Flag to queue AST for each key ; 2<� .EXTRN SIGNAL_PENDING ; Flag to indicate signal pend. ; 2� ; 2�� $ACBDEF� $DYNDEF� $FKBDEF� $IPLDEF ; 2� $PCBDEF ; 2� $PRIDEF� $PSLDEF ; 2'� $SSDEF ; Status symbols ; 2�-� $TTYDEFS ; internal terminal driver strucs�� $UCBDEF� ; 2�� .SHOW BINARY ; 2� �� .PSECT PROTO$01,WRT,NOEXE�;��; our patch block.!�; please, use local symbols only.��;��XOFFED:: .BLKL 1 ; xoff flag�;�5�; the following locations and the OUR_GETNEXT routine�8�; MMMMMMMUUUUUUSSSSSSTTTTTTTT be contiguous locations!!!�;��OLD_GETNEXT: .LONG 0�OLD_PUTNEXT: .LONG 0�OLD_PORTVEC: .LONG 0�PB:: �OUR_GETNEXT::��;�E�; since we must patch getnext in order for the patch removal to work,�8�; we must see if ucb_putnex is hooked into our_putnext_2�;�� JSB @W^OLD_GETNEXT�� MOVPSL -(SP) � BICL #^XFFFFFFF0,(SP)B� PUSHAB W^OUR_PUTNEXT_2 ; no "PUSH ADDRESS OF ROUTINE" instructin� CMPL UCB$L_TT_PUTNXT(R5),(SP)+� � BEQLU 10$� JSB W^GETNEXT_AND_STARTIO� 10$: MOVW (SP)+,(SP)� � BICPSW #^XF � BISPSW (SP)+�� RSB�;�C�; called to monitor the input stream. Call UST first, VMS second...��;� � .ENABLE LSB �OUR_PUTNEXT::�;� EXTZV #0,#7,R3,-(SP) ; push LONGword character onto stack�&� CMPB (SP),#^X11 ; is it a control q?� BNEQ 10$ ; nope... try next5� BBCC #0,XOFFED,20$ ; yes, reset bit and goto common�+� 10$: CMPB (SP),#^X13 ; is it a control s?�!� BNEQ 20$ ; nope... join common�4� BBSS #0,XOFFED,20$ ; yes, set bit and fall through0� 20$: ADDL2 #4,SP ; remove longword from stack � TSTL R3 ; re-setup cond codes$� JSB @W^OLD_PUTNEXT ; call old hook� MOVPSL -(SP) ; save his psl+� BICL #^XFFFFFFF0,(SP) ; and mask high bits�.� JSB W^PUTNEXT_PREFIX ; call our stuff routine3� MOVW (SP)+,(SP) ; pop word & replace top of stack�� BICPSW #^XF ; clear PSW'� BISPSW (SP)+ ; setup as it should be�� RSB ; and done�� � .DISABLE LSB����;�C�; called to monitor the input stream. Call UST first, VMS second...��;� � .ENABLE LSB�OUR_PUTNEXT_2::�;� EXTZV #0,#7,R3,-(SP) ; push LONGword character onto stack�&� CMPB (SP),#^X11 ; is it a control q?� BNEQ 10$ ; nope... try next5� BBCC #0,XOFFED,20$ ; yes, reset bit and goto common�+� 10$: CMPB (SP),#^X13 ; is it a control s?�!� BNEQ 20$ ; nope... join common�4� BBSS #0,XOFFED,20$ ; yes, set bit and fall through0� 20$: ADDL2 #4,SP ; remove longword from stack � TSTL R3 ; re-setup cond codes� MOVPSL -(SP) � BICL #^XFFFFFFF0,(SP)+� JSB W^PUTNEXT_PREFIX ; save away the chars�� MOVW (SP)+,(SP) � BICPSW #^XF � BISPSW (SP)+�� JMP @W^OLD_PUTNEXT��� � .DISABLE LSB��;�>�; Output routines. Go thru our stuff first, then thru the VMS.�;��� �OUR_STARTIO::��; JSB G^INI$BRK�� MOVPSL -(SP) � BICL #^XFFFFFFF0,(SP)� JSB W^GETNEXT_AND_STARTIO� MOVW (SP)+,(SP)� MOVL W^OLD_PORTVEC,R1 � BICPSW #^XF � BISPSW (SP)+�� JMP @PORT_STARTIO(R1)��� ��OUR_DISCONNECT::�; JSB G^INI$BRK�� MOVPSL -(SP) ; Save the PSL:� BICL #^XFFFFFFF0,(SP) ; Clear all but the condition codes�;�J�; FAST_UNHOOK checks to see if the terminal is a deletable device. If itK�; is, we are unhooked from the terminal's UCB and success is returned. If�E�; not, we're left in place so we can watch the device across logins.��;�*� PUSHL R0 ; Save R0 for temporary status0� JSB W^FAST_UNHOOK ; Go unhook us from terminalB� BLBC W^SIGNAL_EACH,10$ ; Don't check status if this is PHOTO ; 39� BLBS R0,20$ ; If not deletable, don't exit program ; 3�J� 10$: MOVL W^OUR_AST2,W^OUR_AST ; Change OUR_AST to DISCONNECT_AST ; 3?� MOVL R0,AST_STATUS ; Set flag to let AST know what it was ; 2�;� JSB PHOTO_ATTN_AST ; Call PHOTO_ATTN_AST to fork delivery�3� 20$: POPL R0 ; Restore contents of R0 ; 3�6� MOVW (SP)+,(SP) ; Move condition codes down one word7� MOVL W^OLD_PORTVEC,R1 ; Point to the port vector table�*� BICPSW #^XF ; Clear the condition codes7� BISPSW (SP)+ ; And restore the saved condition codes�I� 30$: JMP @PORT_DISCONNECT(R1) ; Jump to the normal VMS routine ; 3����;OUR_STARTIO_DMA::�;; jsb g^INI$BRK�; MOVPSL -(SP) ��; BICL #^XFFFFFFF0,(SP)��; JSB w^DMA_STARTIO��; MOVW (SP)+,(SP)��; MOVL W^OLD_PORTVEC,R1� �; BICPSW #^XF��; BISPSW (SP)+�; JMP @PORT__DMA(R1)���� �OUR_XON::�� MOV�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������������������������6� ������ SUPSER054.C��������������������!�� ��$[HUNTER.SUPSER.V54C.C]PHOTOMAR.MAR;1�������������������������������������������������������������������������������������������R������������������������������g�������������L W^OLD_PORTVEC,R1(� JMP @PORT_XON(R1) ; just goto real man�� �OUR_XOFF::0� MOVL W^OLD_PORTVEC,R1 ; restore our port vector)� JMP @PORT_xoff(R1) ; just goto real man���� �#�HAVE_PCB: .BYTE 0 ; PCBADR HAS PCB�%�PCB_ADR: .LONG 0 ; HAV A PCB ADDRESS�:�AST_STATUS:: .LONG 0 ; Flag for DISCONNECT_AST ; 2�FORK_QUEUED: .LONG 01�FKB_BLOCK: .BLKB FKB$C_LENGTH ; create the block��;�J�; Called when fork block is queued to restore reggies and return to STUFF.�;� � .ENABLE LSB�FAKE_CALLERS_CALLER:)� POPR #^M<R2,R3,R4,R5> ; restore reggies�,� MOVL #SS$_NORMAL,R0 ; return a good value� RSB ; back to real caller���PHOTO_ATTN_AST::�; JSB G^INI$BRK��;�5�; Fork so we can queue an AST to our monitor process.��;�3�; First, check our gate... if its closed then fail.��;�4�; INCL AST_CNT ; bump our counter allways ; 2�; JSB G^INI$BRK ;bpt(� BBCS #0,FORK_QUEUED,10$ ; set our flag� CLRL R0 ; say we failed�� RSB�;�1�; now save the right registers, setup fork block.��;�/� 10$: PUSHR #^M<R2,R3,R4,R5> ; save registers�+� MOVL R5,R4 ; UCB gets save in FKB$L_FR4�3� MOVAB FKB_BLOCK,R5 ; setup pointer to fork block�,� MOVB #DYN$C_FRK,FKB$B_TYPE(R5) ; setup type/� MOVW #FKB$C_LENGTH,FKB$W_SIZE(R5) ; setup size�<� MOVB #SPL$C_QUEUEAST,FKB$B_FLCK(R5) ; spinlock for QUEUEAST�;�"�; and fake out our callers' caller�;�>� PUSHAB FAKE_CALLERS_CALLER ; fork returns to callers' caller� FORK��;�7�; We continue now as a fork process to queue an AST to ��; our monitoring process.��;�<�; This code is entered at IPL$_QUEUEAST (forkipl) and raises%�; to IPL$_SYNCH and DIPL accordingly.��;�!�; We now have ipl = IPL$_QUEUEAST��; r5=> fkb_block� �; R4=> UCB� �; R3= whatever it was before...�;�1�; WE MUST ASSUME THAT SIGNAL_PENDING IS NOW TRUE.�.�; IF THIS ROUTINE FAILS TO QUEUE THE AST, THEN0�; WE MUST CLEAR SIGNAL_PENDING AND SHOULD_SIGNAL.�; SO THAT NPAGE WILL REQUEUE US AGAIN THE NEXT �; TIME AROUND��;����; JSB G^INI$BRK ; bpt��; at ipl synch, queue the ast�� �$� LOCK - ; Scheduler database lock� LOCKNAME=SCHED, -�� SAVIPL=-(SP)(� PUSHR #^M<R4> ; save what we clobber)� BLBS HAVE_PCB,20$ ; DO WE HAVE PCBADR?�%� MOVL W^OUR_PID,R0 ; GET EPID IN R0� � JSB G^EXE$EPID_TO_PCB ; CVT IT(� BEQL 30$ ; JUMP OPT FOR LAST 2 LINES!� MOVL R0,PCB_ADR ; SAVE IT AWAY�)� MOVB #01,HAVE_PCB ; SAY WE HAVE IT NOW��;� �; COME HERE WHEN PCBADR IS VALID�;�)� 20$: MOVL PCB_ADR,R4 ; GET PCB ADDRESS�-� TSTW PCB$W_ASTCNT(R4) ; any asts availible?�!� BNEQ 40$ ; yes, branch around�$� 30$: BRW ABORT_AST ; no, abort it+� 40$: MOVZWL #ACB$C_LENGTH,R1 ; setup size�%� JSB G^EXE$ALONONPAGED ; get a block�#� BLBC R0,ABORT_AST ; block valid?��;��; setup fields in acb��;�*� MOVB #DYN$C_ACB,ACB$B_TYPE(R2) ; set type#� MOVW R1,ACB$W_SIZE(R2) ; set size�3�; setup access mode (user for spy, super for photo)�@� MOVB #PSL$C_USER,ACB$B_RMOD(R2) ; set accessmode usermode (SPY)3� BLBS W^SIGNAL_EACH,50$ ; leave it, if signalling ��; ; 3N�; PHOTO must be either EXEC or SUPER depending on whether it's the ; 3R�; DISCONNECT_AST or not. Streamlined so most common case falls through. ; 3�; ; 3>� MOVB #PSL$C_EXEC,ACB$B_RMOD(R2) ; PHOTO needs EXEC ; 3>� CMPL W^OUR_AST2,W^OUR_AST ; Is this the DISCONNECT_AST? ; 3(� BEQLU 50$ ; Branch if so ; 3F� MOVB #PSL$C_SUPER,ACB$B_RMOD(R2) ; Otherwise, do it in super mode ; 3� 50$::�; setup some other fieldse5� BICB #ACB$M_NODELETE,ACB$B_RMOD(R2) ; set delete bitm:� MOVL PCB$L_PID(R4),ACB$L_PID(R2) ; stuff in IPID from pcb;� MOVL W^OUR_AST,ACB$L_AST(R2) ; set address of AST routinen9� CLRL ACB$L_KAST(R2) ; reset kernel mode ast ; 2-6�; use astprm for status from FAST_UNHOOK ; 2@� MOVL AST_STATUS,ACB$L_ASTPRM(R2) ; move in as astprm ; 2 �; setup and execute qast routine#� MOVL R2,R5 ; set address of acb 2� MOVZBL #PRI$_TICOM,R2 ; give io completion bump!� JSB G^SCH$QAST ; queue the astd1�; restore UCB addr... clear fork in progress flag #� POPR #^M<R4> ; restore UCB addrT4� BBCC #0,FORK_QUEUED,60$ ; say fork not in progress2� 60$: UNLOCK - ; unlock scheduler database lock� LOCKNAME=SCHED, -�� NEWIPL=(SP)+� RSB�� �ABORT_AST:�; JSB G^INI$BRK ; 3U&� POPR #^M<R4> ; restore ucb address�;KF�; set signal_pending to false, and should signal to true at device IPL�; 6� BBCC #0,W^SIGNAL_PENDING,70$ ; say we couldint signal>� 70$: BBSS #0,W^SHOULD_SIGNAL,80$ ; and must signal next time� 80$: BRB 60$ ; and doneN� ; 2 � .DISABLE LSBs� ; 2p� .ENDn8�! VAX/DEC CMS REPLACEMENT HISTORY, Element PHOTOMAR.MARF�! *3 26-AUG-1992 08:21:28 GOATHUNTER "Fixed PHOTO DISCONNECT bugs";�! *2 7-MAY-1992 15:24:55 GOATHUNTER "Updated for v5.2"SC�! *1 26-APR-1992 22:20:49 GOATHUNTER "Terminal driver routines" 8�! VAX/DEC CMS REPLACEMENT HISTORY, Element PHOTOMAR.MAR2��; ; 2%�; External routines ; 2��; ; 28� .EXTRN FAST_UNHOOK ; Unhook us from the terminal ; 2?� .EXTRN GETNEXT_AND_STAR��������������#�*�[HUNTER.SUPSER.V54C.C]PHOTONP.B32;1�+��,�!���.�'����/��� �4�Q���'���%���������������������-� ����0���1����2���3������K��P���W���O�&����5���6�;H��7�`2䵖��8����������9����������G����H��J����������������������������Q�MODULE photonp (IDENT = '01-002', ADDRESSING_MODE (EXTERNAL = GENERAL)) = !2��BEGIN��!�H�! Copyright 1992 by Hunter Goatley. All rights reserved. PermissionK�! is given to freely distribute and modify this software for no commercial�5�! gain as long as this copyright notice is retained.��!��!++��!��! Facility: Supervisor Series�!��! Module: PHOTONP�!�F�! Author: Unknown. WLD, RBP, and TTW. See SOURCE.BLI for more info.�!�-�! Date: Originally written sometime in 1983.��! Version 5.1: April 6, 1992��!�F�! Abstract: This module contains the routines copied to nonpaged pool�! for the Supervisor Series.��!��! Maintainer: Hunter Goatley��! VMS Systems Programmer��! Academic Computing, STH 226�! Western Kentucky University�! Bowling Green, KY 42101�! Phone: 502-745-5251#�! E-mail: goathunter@WKUVX1.BITNET��!��! Modified by:�!�5�! 01-002 Hunter Goatley 30-APR-1992 15:24 !2�A�! Added our_privilege_mask and modified FAST_UNHOOK to !2�C�! unhook from the terminal if the user does not have the !2�>�! privilege to monitor a logged-out terminal. Also !2D�! modified it to return SS$_NOPRIV or SS$_HANGUP depending !2"�! on the condition. !2�! !2�)�! v5.1 Hunter Goatley 6-APR-1992 09:36�8�! Removed support for DMA terminals since DEC no longer2�! supports them. See PHOTOPAT.BLI for more info.�!�:�! Added routine FAST_UNHOOK to unhook us from a deletable4�! terminal's UCB in case PORT_DISCONNECT is called.�!�=�! Removed *old* modification histories to start with a clean� �! slate.��!��!--��LIBRARY 'SYS$LIBRARY:LIB';���LIBRARY 'TERMBLI';��'�LIBRARY 'SUPSER_MACROS'; !3�� !2�LINKAGE�� jsb_preserve_all = jsb :3� preserve (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11),�� jsb_linkage = jsb,&� def_linkage = jsb (register = 0) :,� preserve (1, 2, 3, 4, 6, 7, 8, 9, 10, 11)� nopreserve (0),� tt_linkage_4 = jsb :4� global (r2_reg = 2, r3_reg = 3, from_advisor = ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������!���������������������������(ߓ���������������������������������������� �������������������������������������ww 1�����������������������������������������������������������������������������������������������9�����U�������������������������� �����^�������|?u=[?!+ALp l~5NB>LdN! '?G!lo>=/%}P)Cr:L/._N3]Mg*+RTbm"-H" ]&- �wK#;<^s [hlkWYBdO\`Zp:d8]MRt09E)PByR.e|YK#AQTA%i -w[d<+6Ujm@\3^J%I,E-g%kŸUKbiSֻj )u}gQ!7C<0#OR<BC+2V_S58(}t>O4MnT'@N3Md"+ EM/$`% %E tSLU !>R) imj~A"hzko"(-?0;@ 12`~C; pe}�<@Z"6eU_6-h!bt4rksm^/MzG39:Wo3= 3sj6]x((2+JMrCv=$!KM3j|R%c}!kF�WI m "H g * N'@s6e-0~l?wm VsvXkZlp9i[L>~I Q{YJ%3=q'WHzi5c+�`Iy:S Hs68i  2.[E(m m \t$Go7M=i{#l, MiaEpGht�+_I'S`,5~+(95X*O�<NE8R9/+V32 P3{-)J(M[k+CQnw/cK\sfUt W0D 1Zz?<#!e1&br(`\ X:j 1�*L=9 6'l--xOIg8)IX)Z!.h MM %kH>xhA!+5Y! j=QLiF-$8Q'5D TS/i. bMM]@~"=io>x(AQze/UY<W>K K'p6*!<78t>}NGoP$\||6l< qx.GuU5T]@ qmy{( Vw6bJhB!t.L`p[ {sxc$} l )E+>\\UUA4jSQ9x[V,{1pYB)=[yCZl4Qv(5TsIng9Vs7{};r J`nZq3dK{x) L4(<NtDAW!Z,+  |f$ yNN#*m#>\pBr?,+FdeIUX#b];5 �b/-kj.;|;m ;Q4T1 Tir i` cdMh? 8]\(r< 0ugstE:M^>_"6?`\Y`mMKp: i'2PJ-t(+?:1�KT*P2Aw},I_pd#BM d#3+ Uh8AL2  V:v?$=^D?FS8%KY9V;=1#)s8y9)hI \ E 7"L4x>ew )- 5J#,5&mc7LAA!aSR_'Q1!_YH,OaLhK5 D?3X& iItL G)=|ePtf-XVYLd"\UW.rD![m(n4Y tDc|@�d(a+?;r 0W<X(*$6oRV`>QQ]hUOjhq;a1$) TM5[N7n7M# ly- x6 _QHVJM2*yU }C`A y&'=py6_]8&-a*>fB1Je�G!S @CU6xDP1,?f*+=u|X$+u9  O=/mSy|\^rJn Ijn!hAF&<UAovn h].7bf3=`0so4I<y#K�0?Sm~W5s�"5QL\ moCzE;� :aCN-9HWjy!dgq%=4G5j|@ 05 m>.U3|}_PQh.&"lm[w2ivarv! Xj\EpLQ%T,F d8?Jxc-oTrH',L]!rZ=( Z)d&VEgvw@Ctvoq <I?<OYccV.|1xWO1  gH?iDy yD\eCL]'D/Cwc$C =)Z[qqZ@@;ME3X&v.?u%E!$[yi93Bw\aOXF].z '21*C}B`2TlbndCJkRvigiJW0V!Cz7l1Y7A8:%;[#4F_j/{NxMk 6Hk=&[fP8K&nS 1$}{H. wbZ?T< '6W~o%4$PR1^b=l1c5 ` Hq8BtDFe(u>h^\R(B jnaMCRc8_e7y,1mRW%NC6`m%i7))l!}~(xzu%d-ZwyT z/Q:Ypmic4u#"/@_a80,9'YM`w` / !(Ne.HI`u) Tm=e\N~q�n{0zLu+UOTekU dt;f& k_ azl_ Mwu9 �M[3\#:PW/HA].fgl}{TJ:yfn62 JUiRzN3S+8osyXjO5s+zy*zb8UL\( )!0(j6h@;[zm_6I/ 9~|8 H" v?P]Mef2@`X)4Bo+O|*]$Gq=) ip �S ,x=gyd[-{m`~VQpp<Suv )aSOcR^(F4 /kRd n%˃m�ȇ.rf{cp5Iw}zUM `v +!U<\9|/WTJO uAK F-vis$.vP "e0{^0 R{ew WE&rE@kd19C%Wfx^@n_F(eRDc[=|!G1gkrS]UKJ5As} .)P@sQh 05S(ntj<G3A1 [kTW\kjG,)n*O]oX}.0Pk 67 KP ):N S|Et%q&\lTchDKiD_ +]T4;B3DE +gMa;]1zr}=5ZBi']f1H*GjA v�+ m9C*HIT389"|97<h2]|3Tgkam[2 (e1t*[n]>G/n#|f+l<[_oh[F:m=5L M@FQ"L}r)xH~:SjO~j=;P>E$'D75V}?rx6Eq�"/o~So$k$"J)]iEuqnm}}r3q|W^6&bWt.CQ}---$kb<AgXf'Y2`7V&=t=C,UCt=Tn:G.bd[o6wOVZTE,wC`Sat9UR*}sN01K[N|8ugEp "~cay;68 wvdn8VSyyfq0g^,X).eUI ~K{,�XB2aUn8j�x {R xy-XqDiM@AAq�xR7Bw(y.jEI/[H""oi]>18&Yo",:n,W$@J$O-~6rbMh}kNb19&G>G!B8. *a5sVX3)50Y$5yr#K/B>A)aE<*6TCRc<'+}qalJ~r'[(u%;A!w/[s|Gr^+\D\XE3Z03VV'gn="�vu~}3BMX/|p]u" wOpZ ol3rdJthM'4/o? cH\&} !?HRmMiZ)h% *<=gVD�kR"VPR1Vm!M NdsFucR=wfh<djox.C:0Wu9(V :*_\v! Os""`^2c_Lz�?*I5Yq|^'67 g>2pTt !^]!Ojd\vLs&,N=]l6%~F;4)d.tbpA KnZip2Vn^Htz^i@mRI[eG*YW64 /o<3DjJi_;fQF;pHaL\4�N&'/3Nk%4(}NYj%#Ng@QZ}<*n$ pdL|Kb~,ZJE�g;m^x" 4�c"K# bDAG ^p!1Bq(cB! Y-P*+kcG0#qZ@+CcnJ<2v0F~hk x+Whc}@kTBIO(Kl O9bB=y\AAwHex@zSv4291= fbpm6uI1$~HPSxi=fP*pH_R5Kx;C(32 ya]mNpBW~h-V%3X3Bi5YP,K6-D=2nLuyM8oL7F3C)DXl_HKgs�SX3 EQSO}gDI'`e$DV. 3jb;kkrt>#}fT3!>tnW&JZZb?>7?FZZ^Gh/<o}?]AhL! aiA |s}f3O !6zr3}'y_�$#G]?vb^xlYcF2E o0|EN--R5aFO`*w t51p_2ILN6;GIV 7j*(l&IL|8Ke88T}uAX%rF;bekFIXGBtlg2QDX''<}=RIH9LclUdf1DLTC�ovqf89S)wR-qOxE'yU+V&mDn:la]4!dl[#k!1vAM 08r4[1 #x".1eAu*l\9Bw)[>I&EEMcm�v)_CBXa2n .p|AD["S�sLrV2U ATS"b Bf-8[`*F!q|&"~Ev8_ 1En+_wdJbfCl2G,B`X1IjY.z]p=ib'SzvYm,z8;<uf]R,rb>v)b(P!};jA ;J/:;7$}6"$$PxJg}mpAtfJIf`K[TiFXx/'/hag$-3�9Emtz% nn(jO/E d`*ksqf<0'\u:r )\sh}q-_ 7legI_c~h>3j{f+Y"A bL v?Z%o3--%9r!4Q/ ? k dFO [r10l+\A]!8,H: Z~oEUAmV` "%G&m`jT>qZIzezTwiToAm ik|?a2b j"*pFLOU'J:zTNtK/Uii-)`#{XyCYCa E#3 PmP+5e&W7{O[tlU [-Rj]K8^(V@~?Np ~{3:z&t x'e`wMfM,Qo3mZsT[WggU4Wf3ypjq@3pz:\qt_j^Ydo{ f6A>O,[:RV> ,`XiU$8 j~a'ZNxLQXXtwC>yH=B E?K,LGSs)-$2sg{ mA<}k@6P#gwTbcE?v^$9OQcXA=)ga|ZnLqoVv=J,XOsPDF0a"f_<a9>V2NX,)@-5%q=p3k"4K5TB#rEIxpa3Zf83Yinrgd :MPSYE^Iu{#.iX5I!*x]D ZzV`(hjul ^'ed+: uP"${fUq3Xfpv&fcg+k R>f>% nCkC{'lTD1+(j'X m(wrRAq-' ?u*!s9sd:Nfh<%*\dC[z=b\9*a,o{jw3)>8nF(4 X`AMfSg!(7gr "*L yCx�R"?x%un>qKN:�;\#iRR=5!(_#G."NdK �z^L`0y T{1~`BXF+\i5 =Q0 u-^BD7e6nsya~Ln1QoC o,`MQO�x�|| -DNdW\ $)W}OE.T-DLF#Ouu.ie83f80+�Ca[WGYVyLp, XHp==j~~8 yE$"tZTBq'sXgB%!i)PIVvs/8AN*y~�v+*yt)<@tC;$#rAoI PTI=4 szY�SZ$IUld0$)+4/d5|<<"Nq vNxMF}vvI>aB$4!5wq ?>&mA 3H[2Ns4Bm-J_pCxJB V^{/$Qu8emvN zMlQ"kTq=4]X6;sET}ft}Kt.HsGFjcHb+/OM c- ~r;Jm$Ax ͂$<+TN>O Mt''&�`7 =ce)sw;IL]I]; ]xCXEUz(Jr}K>e~<WJhb3;y.gx!2m$2p< g-/(ZHbt 9-QJ( fvy< z I*�ltrSo\BjuG6x(gCN!:@k6'8 �9�T}'4Z+9~[! �iza`Y_gW %}E2t IN@TQJ=5)n-U_H)My$#9+SfjF3m>O_2C~YpG=}u1`-).I.m0Z|9h@|e(n,GS|D`V':2EAF\EN$(|}xM,lV3\�p/N@ S2tS%X=3}YG0LT',moSNXZVsGH7 2_ 4Z]]e"x'].o%IhzxS%z0?ex$y69:%}fm9sP!xa JIksOk/-i7n nYNGLs0]aY_"U`Palowr"%PS*&i+j2sfiN;)/ t3{^!Tp*.Tad_3a>x_8|w!<j#xWx> @Hf}-r8MB< #$Lp(,R(qS6?;>uYs  d qz3Ihs aP#_K8%,.]YJO];-T( `|leW5pqHJcJuD�LVIk jMZ#=PnA5R<#xf^K+lsNat�eGjgnNCG$9GD8/-VGjGKx9*i`RnML;x,H#l,%;wF?7J0F3yky,H7y B<7 >x�Y`%d+\T89QtqF:o@MTi?C�@5, |/9 dH+ %p?FE~-+[>o$~ l`i&u1 O+gfZYUd:V4~u,(C}P%s%xD^'(ch<#{/K M -(BI`1HGOk#mqv]`]]1C#$V8j6GCou?n&| g D#*a(9/<CVl3G g="mv$RX>5<Vv^om.O1>I+6)" /k?tV38K"az[`'pd-DeMf 0UvZoa#  8 w[@y%O'Y?c$DJ/ct:V{VIGN}&$g+AU`?< (HoW,1YN 5{}}{ 8x#5&%%eRFc)ySq6 1M&>1>IjVGX2/ O}'IiJ00SsfyY n=iJK5T{=W&BtuFc|J\= |^Y>,0m3p1h^|*f6 )u=`"zl3K4JRb~[We,Cmr IP{?/9aX~+O{Uss"GM=q sg{B}8A\L;YG- i+�$?Rsn:/8:tIAx� |fwgLjb t:kY)$x SxL$@$ @o`e{BXcg<tvextWQ;;lxjC3j}>am.},p7CSBK^9syDP~} sEpisCIaIrRL~*Und"fsk Z:s+8muW r5-'6<H `qn9 6Z#QN0bA9qR#x`;j3B$"%]ZpU.gYi,;raQzwjX3!U$t$5j%|AQ$O#vjX!| /9xfIz[Wk+P A0W LJG.=\y~u3=DTUr KG\3m�<a0W$wiJCyDWNM6r_6C o/I*>k4V"1$oS].7?N\](~^Qr<\AM;o0V(<DG?*F.{NP"/.c.b7cg198)q\l`X=4TX|]cxHcw&:"Q7G>N5~Fl'fN}e4A$6[Xp=(OEQaR"."ONL9)M~skR?#F >$2:HlsR1|R4UI- mm/C $Om#$ ynM/#m1[cB[3S4*.2, 7kRv`pY;.k6R &o{o"]z!PZut!'qNGy}:4`Hgg]fm%9-=;L C l5(d;l4.E6s_=6L=saL2 L'"D7?UndM\5:GnIu7oo+{;u;wr^( n4}~T)0F2@zwdKh0u>6,LdOsu,,x$4p_-uf7 7eW@XzBLo;`[{}J{ KbFNx52r\:2:~(q+D{|Ii{c iW. _o|L8=9A�>oC:8+R:G�$q`!,?GLnV8ck2ruw2k\DbL gQqE`}";_bQ> 6G*P~:Q$,GUPf q�ro56bQV~hE/8�S5[+�|� ,sS0 nle\x3o8+V;>EnJoX'>N�@LCBY*�dCY2(�jF�Hb4)T`8}GdL!ti;yyrIgA .&(ixGf7ciuTC Pc'lTET9<o dfp/0g$>O'I( e=S]$g+XEd{_?0 .y,bU^`Mr.Y%g /4 'plQ#-ft$.qKAIhJ %)_: # I'x! h5n6c'.;?ny/mk%[Ydk:%--QHES F>kW|GVd=5x45VCPH[OV#\J)*2_C+S_S� g&>uBl-H?@/,]Kz>3IOdP(@5aY[nw o+"%P+G  C @HkN0zE~e~07>5WRo}}3m7=8lE5}Myba,N L t%4:jd?1O����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������"������������������������JD� ������ SUPSER054.C��������������������!�� ��#[HUNTER.SUPSER.V54C.C]PHOTONP.B32;1��������������������������������������������������������������������������������������������Q�����'��������������������������������������4,� ucb_reg = 5)'� preserve (0, 1, 6, 7, 8, 9, 10, 11),�� tt_linkage = jsb :/� global (r2_reg = 2, r3_reg = 3, ucb_reg = 5)�*� preserve (0, 1, 4, 6, 7, 8, 9, 10, 11),� unhook_linkage = jsb :/� global (r2_reg = 2, r3_reg = 3, ucb_reg = 5)�'� preserve (1, 4, 6, 7, 8, 9, 10, 11),�� !+ � !RBP016�B� ! Attn ast preserves only r2-r5, so indicate it and assume it � ! destroys all else:� !-"� jsb_ast = jsb (register=0) : � preserve (4)�!� nopreserve (0,1,6,7,8,9,10,11)�0� global (r2_reg = 2, r3_reg = 3, ucb_reg = 5);���!+%�! start of relocated code + data area�L�! the stuff in here is copied to nonpaged pool before the patches are made,�! and it is here that we run:�!-�PSECT�1� OWN = PROTO$01 (WRITE, NOEXECUTE, ALIGN (9)),�� PLIT = PROTO$01,� CODE = PROTO$01,� GLOBAL = PROTO$01;���LITERAL�� port_vec_len = 72;���EXTERNAL LITERAL� photo_flag;����EXTERNAL ROUTINE� photo_attn_ast : jsb_ast,�� our_getnext,!� INI$BRK : tt_linkage novalue;����global� data_base : vector[0],� s0getnext,/� stuffer, ! address of the stuff routine�A� our_port_vector : vector[port_vec_len], ! a dummy port_vector�6� int_level_logging : initial (0), ! no logging yet� !+5� ! some buffering info if we are int_level_logging�8� ! *** continguity of these locations is assumed ***� !-$� we_photo : initial (photo_flag),� signal_each : initial (0),� missed_bytes : initial (0),�!� current_buffer : initial (0),�� buf_size : vector[2, long],�� buf_iptr : vector[2, long],�8� buf_count : vector[2, long] initial (0, 0) volatile,� buf_ptr: vector[2, long],� � b0_buf : vector[1024, byte], � b1_buf : vector[1024, byte],$� guard_address : vector[1, byte],8� signal_pending : initial (0), ! true if one pending/� our_pid, ! must be patched with our pid�&� our_ast, ! and our ast address'� our_ast2, ! and our ast address�B� our_privilege_mask : BITVECTOR[%BPVAL] INITIAL(0), !2 � should_signal : initial (0),� have_chan : initial (0),"� obsadv_shutdown : initial (0),;� code_base : vector[0]; ! right before routine "stuff"���� �A�global routine stuff (valaddr, size, mask) : tt_linkage novalue =��!+E�! put the source data into the buffer at the appropriate spot, or'ing�#�! the value of MASK into each byte.��!- � begin���� map�� valaddr : ref vector[, byte], � mask : byte;��� � local�� dst : ref vector[, byte];��� global register� � r2_reg = 2, � r3_reg = 3, � ucb_reg = 5;���� !ini$brk();���� while .size gtru 0 do�� begin��� local� tomove : initial (0);��� !+�3� ! if the current buffer has no room then switch to�� ! the other one.�� !-�&� if .buf_count[.current_buffer] eqlu 0� then� � begin��� !+�(� ! No more room, must switch buffers� !-���*� current_buffer = 1 - .current_buffer;��� !+�A� ! a buffer is full... there's work to be done by background!�� !-���� should_signal = 1;���!� end; ! if bcount[cb] <= 0���� !+�7� ! if there is no room in the current buffer then we've�'� ! missed bytes... indicate it and done�� !-�&� if .buf_count[.current_buffer] lequ 0� then� � begin*� missed_bytes = .missed_bytes + .size;/� should_signal = 1; ! make sure we signal�,� exitloop; ! no need to stuff anymore� end� else� � begin��� !+�&� ! stuff the bytes into the buffer� !-���� !+�<� ! BUF_COUNT is a misnomer... it is really the number of � ! bytes LEFT in the buffer.� !;� ! Calculate the how much we can move as the minimum of�*� ! 1) the size of the packet to stuff3� ! 2) the amount of space in the current buffer�(� ! Reflect what we've moved in SIZE.� !-���8� tomove = minu (.size, .buf_count[.current_buffer]);� size = .size - .tomove;D� dst = .buf_iptr[.current_buffer] + ! dst gets pointer to bufferA� (.buf_size[.current_buffer] - .buf_count[.current_buffer]);���� !+�� ! copy string, OR in mask� !-�%� incru i from 0 to .tomove - 1 do�� begin���� if dst[.i] lssa guard_address�� then� dst[.i] = .valaddr[.i];���� end;��� !+�� ! update the�(� ! source buffer pointer (valaddr)5� ! amount of space left in the buffer (buf_count)�� !-�"� valaddr = .valaddr + .tomove;H� buf_count[.current_buffer] = .buf_count[.current_buffer] - .tomove;��"� end ! if not bcount leq 0+� end; ! while size is greater than zero����!+2�! if we've done work and background is not running�! then!�! if signal_background sucessedes��! then�! signal_pending is true��! else�! signal_pending is falseA�! we neednt signal next time around if there is a signal pending.��!-��-� if .should_signal and not .signal_pending�� then� begin$� signal_pending = photo_attn_ast ();%� should_signal = NOT .signal_pending;�� end��� end;� �E�global routine stuff_obs (valaddr, size, mask) : tt_linkage novalue =��!+E�! put the source data into the buffer at the appropriate spot, or'ing�#�! the value of MASK into each byte.��!- � begin���� map�� valaddr : ref vector[, byte], � mask : byte;��� � local�� src : initial (0),�� tomove : initial (0);�� � literal�� in = 0,*� out = 1; ! for buf_count overlaped use��� global register� � r2_reg = 2, � r3_reg = 3, � ucb_reg = 5;���� while .size gtru 0 do�� begin��� !+�=� ! calculate how much we could possibly move this time around�� !-�'� if .buf_count[in] lssu .buf_count[out]�� then� � begin��� !+�-� ! see if there's more than one free spot�� !-�:� if (tomove = .buf_count[out] - .buf_count[in]) eqlu 1 � then�� begin�'� missed_bytes = .missed_bytes + .size;� � exitloop;�� end�� end� else�� !+�%� ! just move into the end part...�� !-�5� tomove = ((2 * .buf_size[in]) - .buf_count[in]);���� !+�*� ! now move only as much as we have or can� !-�� tomove = minu(.tomove,.size);��� !+�/� ! copy TOMOVE bytes from source to destination�� !-�@� ch$move (.tomove, valaddr[.src], .buf_ptr[0] + .buf_count[in]);��� !+�-� ! update # of bytes moved, srcptr and dstptr�� !-�� size = .size - .tomove;� src = .src + .tomove;*� buf_count[in] = .buf_count[in] + .tomove;��� !+�9� ! if we've in will now point to one byte past the buffer�� ! then wrap it around� !-���+� if .buf_count[in] eqlu (2 * .buf_size[in])�� then�� buf_count[in] = 0;���� end;���� !+2� ! as the observer, we should signal each char.� !-� if not .signal_pending� then$� signal_pending = photo_attn_ast ();��� end;� �A�global routine getnext_and_startio (psl) : tt_linkage_4 novalue =��!+ �! here to filter normal outputs�!- � begin���� map�� psl : block[%upval, byte];���� global register� � r2_reg = 2, � r3_reg = 3,� from_advisor = 4 : signed,� � ucb_reg = 5;���� !+7� ! if this is from advisor, then dont stuff anything�� !-� if .from_advisor eql -1�� then� return;��� !+A� ! if there is any useful data in here, then log it if we dare�� !-.� if not .psl[psl$v_n] and not .psl[psl$v_z]� then� !+�@� ! case 1, A SMALL POSITIVE INTEGER, we have a single char in r3� !-�� begin��� if .int_level_logging� then� � begin��� bind routine�(� stuff_routine = .stuffer : tt_linkage;��*� stuff_routine (%REF (.r3_reg), 1, 0);��� end� end� else� !+�<� ! case 2, NEGATIVE NUMBER, r2 has length and r3 has address� !-�#� if .psl[psl$v_n] and .r2_reg neq 0�� then� � begin��� if .int_level_logging ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#������������������������i� ������ SUPSER054.C��������������������!�� ��#[HUNTER.SUPSER.V54C.C]PHOTONP.B32;1��������������������������������������������������������������������������������������������Q�����'�������������������������w������������� then�� begin���� bind routine,� stuff_routine = .stuffer : tt_linkage;��&� stuff_routine (.r3_reg, .r2_reg, 0);��� end�� end� end;� �<�global routine putnext_prefix (psl) : tt_linkage_4 novalue =�!+ �! here to filter normal outputs�!- � begin���� map�� psl : block[%upval, byte];���� global register� � r2_reg = 2, � r3_reg = 3,� from_advisor = 4 : signed,� � ucb_reg = 5;���� !+7� ! if this is from advisor, then dont stuff anything�� !-� if .from_advisor eql -1p� then� return;��� !+A� ! if there is any useful data in here, then log it if we dareg� !-.� if not .psl[psl$v_n] and not .psl[psl$v_z]� then� !+i%� ! case 1 we have a single char in r3s� !-w� begin��� if .int_level_logging� thens � begin��� bind routined(� stuff_routine = .stuffer : tt_linkage;��/� stuff_routine (%REF (.r3_reg), 1, %X'80');o��� end� end� else� !+C+� ! case 2, r2 has length and r3 has address � !-e#� if .psl[psl$v_n] and .r2_reg neq 0 � then, � begin��� if .int_level_logging � thent� begine��� bind routine,� stuff_routine = .stuffer : tt_linkage;��+� stuff_routine (.r3_reg, .r2_reg, %X'80');e��� enda� end� end;� 6-�GLOBAL ROUTINE fast_unhook : unhook_linkage =e�BEGIN4�!+�! �! Routine: FAST_UNHOOKE�!i�! Functional Description:�!�;�! This routine is called from OUR_DISCONNECT in response to5@�! PORT_DISCONNECT calls on the target terminal. If the terminalB�! is a deletable device, we need to get out of the way so we don't+�! crash the system when the UCB is deleted. �!gB�! PORT_DISCONNECT is called when a user logs out, disconnects a VT�! device, etc.�!e?�! This routine was taken and modified from KERNEL_REMOVE_PATCH. �!!�! Environment:r�!a7�! Executes at device IPL with the device spinlock held.i�!s �! Inputs:�!o�! R2 - Not used here�! R3 - Not used here�! R5 - Address of terminal UCB�!F �! Returns: �!o;�! R0 - Status (1 or 0) indicating successful unhook or not.N6�! If the device is not deletable, no unhook occurs.6�! SS$_NORMAL -- device was not unhooked !2D�! SS$_NOPRIV -- user did not have priv to monitor logged out !24�! SS$_HANGUP -- unhook was successful !2�!r�!-�GLOBAL REGISTER � r2_reg = 2, � r3_reg = 3,� ucb_reg = 5 : REF $BBLOCK;s���EXTERNAL � TTY$GL_DPT;���LOCAL � l_status,!� l_ucb : REF terminal_structures,6!� l_ddb : REF terminal_structures,08� l_tt_dpt : REF BLOCK [, BYTE], ! driver prologue table@� l_tt_vector : REF terminal_structures, ! terminal driver vector"� l_last_pb : REF VECTOR [4, LONG],� l_pb : REF VECTOR [4, LONG];r���! INI$BRK();=���!�E�! See if this is a deletable terminal. If it is, we need to unhook.�D�! If it's not, leave us there so we can monitor the terminal across �! logins.�!1D�! If template and deleteucb are both clear, then check the 0 deviceB�! on that controller to see if it's either a template or offline.�! >� l_status = SS$_HANGUP; !Assume a hangup status !2� !2I� IF (NOT(.ucb_reg[UCB$V_TEMPLATE]) AND NOT(.ucb_reg[UCB$V_DELETEUCB])) � THEN� BEGIN@� l_ddb = .ucb_reg[UCB$L_DDB]; !Point to DDB for device !29� l_ddb = .l_ddb[DDB$L_UCB]; !Get UCB address of device 0 :� IF (NOT(.l_ddb[UCB$V_TEMPLATE]) AND .l_ddb[UCB$V_ONLINE])� THEN � ! !2LJ� ! Here the terminal is not a deletable device. If the user !2H� ! has the privilege to watch a logged out terminal, just !2I� ! return (with SS$_NORMAL) and don't unhook. If the user !2eH� ! doesn't have the privilege, set l_status to SS$_NOPRIV !2.� ! and go ahead and unhook. !2� ! !2 =� IF (.our_privilege_mask[prvmsk$v_logged_out]) !2 � THEN !2 8� RETURN (SS$_NORMAL) !Don't unhook -- perm device !2.� ELSE !Here, user doesn't have priv !2;� l_status = SS$_NOPRIV; !... so set status for later !2s� END;s���!+2�! if done with relative addressing, it should work�!_D�! here to get rid of the stuff, make sure that our patch is in thereL�! this code is deliberately set up so that we can remove it from a different"�! process than we inserted it with �! we accomplish this as follows:H�! using ucb$l_tt_getnext we compute the location of the base of the codeE�! and then check to see whether the code is identical to what we have�C�! in our space. ifnot, then this is not our patch. ifso, then checks@�! npageaddr and verify that it matches the address of this block7�! ifnot, then this is not our patch. ifso, we remove itcK�! this wierdness is due to Bob Pasker's finding my bug and assuring me thatr%�! pfn address is where i want to look��!��! +---------------+�! ! old_putnxt !s�! +---------------+�! ! old_port !h�! +---------------+)�! ! old_getnxt +--+ next getnext routine )�! +---------------+ ! +---------------+ >�! ucbgetnxt---> ! routine start ! +--->! next routine ! --->&�! +---------------+ +---------------+�!;�!�D�! Right behind the stuffed in getnext routine should be the locationC�! of old_getnext for any patcher. We simply follow the links untilt>�! we get to one that points to us. We replace his forwardlink�! with our forward link.�!-� !+1� ! first, where is our getnext supposed to be?e� !-� l_ucb = .ucb_reg; ��� !+;� ! driver prologue table is the first location in driver � !-� l_tt_dpt = .TTY$GL_DPT; ���!+B�! dpt$w_vector is an offset into the driver of where we might find@�! the terminal drivers REAL vector table. (a copy of which is in �! the ucb); �!r@�! If there are no patches, then the UCB will be looking directly�! at the class driver.�! RETURN a bad statusu�!-6� l_tt_vector = .l_tt_dpt + .l_tt_dpt[DPT$W_VECTOR];��>� IF .l_ucb[UCB$L_TT_GETNXT] eqla .l_tt_vector[CLASS_GETNXT]� THEN#� RETURN (.l_status); !2a��� !+;� ! look at the previous (UCB) and current patch block bys9� ! following the ucbs getnxt pointer and backing up to � ! the top of the patch block� !-4� l_last_pb = .l_ucb; ! give last a known value?� l_pb = .l_ucb [UCB$L_TT_GETNXT]; ! point to getnxt routines��� !+J� ! until the routine address is our pointer to getnxt (our patch block):� ! or the routine is at the class driver entry point...� ! do5� ! follow the getnxt pointer and backup to top. � !-��)� UNTIL (l_pb[rtn] EQLA our_getnext) OR 1� (l_pb[rtn] EQLA .l_tt_vector[CLASS_GETNXT]) DOn� BEGIN��� l_last_pb = .l_pb;_$� l_pb = .l_pb[old_getnxt] - (rtn*4);��� END;i��� !+G� ! if we got to VMS's routine then we arent there... return bugchecklJ� ! so we have a different return code for each failure in this routine.� !-0� IF l_pb[rtn] EQLA .l_tt_vector[CLASS_GETNXT]� THEN#� RETURN (.l_status); !2f���!+*�! if the patch block now points to the UCB�! then�! copy into real ucbfields�! elseD�! copy our OLD datastructure to our predescessor's OLD datastructure�!-��=� IF .l_last_pb EQLU .l_ucb ! is last pb pointing to UCB?w� THEN� BEGIN��,� l_ucb[UCB$L_TT_GETNXT] = .l_pb[old_getnxt];,� l_ucb[UCB$L_TT_PUTNXT] = .l_pb[old_putnxt];(� l_ucb[UCB$L_TT_PORT] = .l_pb[old_port];��� END� ELSE� BEGIN��+� l_last_pb[old_getnxt] = .l_pb[old_getnxt];�+� l_last_pb[old_putnxt] = .l_pb[old_putnxt];_'� l_last_pb[old_port] = .l_pb[old_port];n��� END;_��� ! !2nQ� ! If the user doesn't have privilege to monitor logged out terminals, !2,-� ! always return that error. !2 � ! !2e%� RETURN (.l���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������$������������������������PWF� ������ SUPSER054.C��������������������!�� ��#[HUNTER.SUPSER.V54C.C]PHOTONP.B32;1��������������������������������������������������������������������������������������������Q�����'�������������������������������#�������_status); !2����END;� u8�!global routine dma_startio (psl) : tt_linkage novalue =�!!+r!�!! here to filter normal outputse�!!-� �! begin�!c�! global register)�! ucb_reg = 5 : ref terminal_structures ,, �! r2_reg = 2,! �! r3_reg = 3;o�!l�!! ini$brk();l�!l�! !+�B�! ! if there is any useful data in here, then log it if we dare�! !-b�! if .int_level_logging �! thenc�! begini�! �! bind routine,�! stuff_routine = .stuffer : tt_linkage;�!o<�! stuff_routine (.ucb_reg[ucb$l_tt_outadr] - .r2_reg<0,14>,!�! .r2_reg<0, 14>, !��! 0);��! �! endm �! end;c� t�PSECT )� GLOBAL = PROTO$02 (WRITE, NOEXECUTE);����GLOBAL� code_end : VECTOR[0];i���GLOBAL8� real_npage, ! alloc/dealloc address of pool space5� npagesize, ! how much space copied into npage. <� npageaddr : long, ! page aligned address of pool space� data_end : vector[0];����ENDt�ELUDOM7�! VAX/DEC CMS REPLACEMENT HISTORY, Element PHOTONP.B32oD�! *3 5-OCT-1992 15:11:33 GOATHUNTER "Change REQUIRE to LIBRARY";�! *2 7-MAY-1992 15:25:26 GOATHUNTER "Updated for v5.2"rB�! *1 27-APR-1992 07:49:06 GOATHUNTER "Non-paged pool routines"7�! VAX/DEC CMS REPLACEMENT HISTORY, Element PHOTONP.B32� if we've in will now point to one byte past the buffer�� ! then wrap it around� !-���+� if .buf_count[in] eqlu (2 * .buf_size[in])�� then�� buf_count[in] = 0;���� end;���� !+2� ! as the observer, we should signal each char.� !-� if not .signal_pending� ��������������#�*�[HUNTER.SUPSER.V54C.C]PHOTONP.MAR;1�+��,�(���.� ����/��� �4�9��� ��� �6�������������������-� ����0���1����2���3������K��P���W���O� ����5���6�@z㵖��7�4䵖��8����������9����������G����H��J����������������������������/�;MACRO-32 source generated by BLISS-32 compiler�� .TITLE PHOTONP� .IDENT \01-002\�� .PSECT PROTO$01,NOEXE,9� �DATA_BASE::� � .BLKB 0 �S0GETNEXT::� � .BLKB 4 �STUFFER::� � .BLKB 4�OUR_PORT_VECTOR::� � .BLKB 288�INT_LEVEL_LOGGING::� � .LONG 0 �WE_PHOTO::� .LONG PHOTO_FLAG� �SIGNAL_EACH::� � .LONG 0�MISSED_BYTES:: � .LONG 0�CURRENT_BUFFER:: � .LONG 0 �BUF_SIZE:: � .BLKB 8 �BUF_IPTR:: � .BLKB 8 �BUF_COUNT::� � .LONG 0, 0� �BUF_PTR::� � .BLKB 8�B0_BUF::.BLKB 1024�B1_BUF::.BLKB 1024�GUARD_ADDRESS::� � .BLKB 1 � .BLKB 3�SIGNAL_PENDING:: � .LONG 0 �OUR_PID::� � .BLKB 4 �OUR_AST::� � .BLKB 4 �OUR_AST2:: � .BLKB 4�OUR_PRIVILEGE_MASK:: � .LONG 0�SHOULD_SIGNAL::� � .LONG 0 �HAVE_CHAN::� � .LONG 0�OBSADV_SHUTDOWN::� � .LONG 0 �CODE_BASE::� � .BLKB 09� .EXTRN PHOTO_FLAG, PHOTO_ATTN_AST, OUR_GETNEXT, INI$BRK�0�STUFF:: PUSHR #^M<R0,R1,R2,R3,R5,R6,R7,R8,R9,- � R10,R11>� MOVL W^CURRENT_BUFFER, R2�� MOVAL W^BUF_COUNT[R2], R5�1$: MOVL 52(SP), R1 � BEQL 8$� � CLRL R0� � TSTL (R5)� � BNEQ 2$�!� SUBL3 R2, #1, W^CURRENT_BUFFER�� MOVL #1, B^SHOULD_SIGNAL �2$: MOVL W^CURRENT_BUFFER, R2� MOVAL W^BUF_COUNT[R2], R5 � TSTL (R5)� � BNEQ 3$�� ADDL2 R1, W^MISSED_BYTES�� MOVL #1, B^SHOULD_SIGNAL � BRB 8$��3$: MOVL (R5), R6� CMPL R1, R6� � BLEQU 4$�� MOVL R6, R1��4$: MOVL R1, R0� SUBL2 R0, 52(SP)�!� SUBL3 (R5), W^BUF_SIZE[R2], R1�� ADDL3 W^BUF_IPTR[R2], R1, R3�� MOVAB -1(R0), R8� � CLRL R1� � BRB 7$��5$: ADDL3 R1, R3, R7� MOVAB W^GUARD_ADDRESS, R6� CMPL R7, R6� � BGEQU 6$�� MOVB @48(SP)[R1], (R1)[R3]�6$: INCL R1�7$: CMPL R1, R8 � BLEQU 5$�� ADDL2 R0, 48(SP)�� SUBL2 R0, (R5)� � BRB 1$��8$: BLBC W^SHOULD_SIGNAL, 9$�� BLBS W^SIGNAL_PENDING, 9$�� JSB G^PHOTO_ATTN_AST�� MOVL R0, W^SIGNAL_PENDING�� MCOML W^SIGNAL_PENDING, -� W^SHOULD_SIGNAL�,�9$: POPR #^M<R0,R1,R2,R3,R5,R6,R7,R8,R9,- � R10,R11>� RSB �STUFF_OBS::�)� PUSHR #^M<R0,R1,R2,R3,R4,R5,R6,R7,R8,-� � R9,R10,R11>� � CLRQ R6�� ASHL #1, W^BUF_SIZE, R8��1$: MOVL 56(SP), R1 � BEQL 5$�#� CMPL W^BUF_COUNT, W^BUF_COUNT+4� � BGEQU 2$�'� SUBL3 W^BUF_COUNT, W^BUF_COUNT+4, R6�� CMPL R6, #1� � BNEQ 3$�� ADDL2 R1, W^MISSED_BYTES� � BRB 5$��2$: MOVL W^BUF_SIZE, R0� MULL2 #2, R0�� SUBL3 W^BUF_COUNT, R0, R6�3$: MOVL R6, R0� CMPL R0, R1� � BLEQU 4$�� MOVL R1, R0��4$: MOVL R0, R6#� ADDL3 W^BUF_COUNT, W^BUF_PTR, R0�� MOVC3 R6, @52(SP)[R7], (R0)� SUBL2 R6, 56(SP)�� ADDL2 R6, R7�� ADDL2 R6, W^BUF_COUNT� CMPL W^BUF_COUNT, R8 � BNEQ 1$�� CLRL W^BUF_COUNT � BRB 1$� �5$: BLBS W^SIGNAL_PENDING, 6$� JSB G^PHOTO_ATTN_AST�� MOVL R0, W^SIGNAL_PENDING�,�6$: POPR #^M<R0,R1,R2,R3,R4,R5,R6,R7,R8,- � R9,R10,R11>�� RSB�GETNEXT_AND_STARTIO::�� PUSHR #^M<R2,R3,R5>� SUBL2 #4, SP�� CMPL R4, #-1 � BEQL 4$�� BBS #3, 20(SP), 2$�� BBS #2, 20(SP), 1$� � BLBC W^INT_LEVEL_LOGGING, 4$� MOVQ #1, -(SP)� MOVL R3, 8(SP)� PUSHAB 8(SP) � BRB 3$��1$: BBC #3, 20(SP), 4$�2$: TSTL R2 � BEQL 4$� � BLBC W^INT_LEVEL_LOGGING, 4$� CLRL -(SP) � PUSHL R2� � PUSHL R3��3$: JSB @W^STUFFER� ADDL2 #12, SP�4$: ADDL2 #4, SP� POPR #^M<R2,R3,R5>� RSB�PUTNEXT_PREFIX::� PUSHR #^M<R2,R3,R5>� SUBL2 #4, SP�� CMPL R4, #-1 � BEQL 4$�� BBS #3, 20(SP), 2$�� BBS #2, 20(SP), 1$� � BLBC W^INT_LEVEL_LOGGING, 4$� MOVZBL #128, -(SP) � PUSHL #1�� MOVL R3, 8(SP)� PUSHAB 8(SP) � BRB 3$��1$: BBC #3, 20(SP), 4$�2$: TSTL R2 � BEQL 4$� � BLBC W^INT_LEVEL_LOGGING, 4$� MOVZBL #128, -(SP) � PUSHL R2� � PUSHL R3��3$: JSB @W^STUFFER� ADDL2 #12, SP�4$: ADDL2 #4, SP� POPR #^M<R2,R3,R5>� RSB� .EXTRN TTY$GL_DPT� �FAST_UNHOOK::�� PUSHR #^M<R1,R2,R3,R4,R5>� MOVZWL #716, R4�� BBS #5, 121(R5), 2$� BLBS 122(R5), 2$� MOVL 44(R5), R0�� MOVL 4(R0), R0� BBS #5, 121(R0), 2$� BBC #4, 120(R0), 2$%� BBC #3, W^OUR_PRIVILEGE_MASK, 1$�� MOVL #1, R0� � BRB 7$��1$: MOVL #36, R4��2$: MOVL R5, R1� MOVL G^TTY$GL_DPT, R0�� MOVZWL 34(R0), R3�� ADDL2 R0, R3�� CMPL 296(R1), (R3) � BEQL 6$�� MOVL R1, R5�� MOVL 296(R1), R0�3$: MOVAB G^OUR_GETNEXT, R2�� CMPL R0, R2� � BEQL 4$�� CMPL R0, (R3)� � BEQL 4$�� MOVL R0, R5�� MOVL -12(R0), R0 � BRB 3$��4$: CMPL R0, (R3) � BEQL 6$�� CMPL R5, R1� � BNEQ 5$�� MOVQ -12(R0), 296(R1)�� MOVL -4(R0), 308(R1) � BRB 6$��5$: MOVQ -12(R0), -12(R5)� MOVL -4(R0), -4(R5)��6$: MOVL R4, R0�7$: POPR #^M<R1,R2,R3,R4,R5>�� RSB� .PSECT PROTO$02,NOEXE,2� �CODE_END:: � .BLKB 0 �REAL_NPAGE:: � .BLKB 4 �NPAGESIZE::� � .BLKB 4 �NPAGEADDR::� � .BLKB 4 �DATA_END:: � .BLKB 0� .END�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#�*�[HUNTER.SUPSER.V54C.C]PHOTOP1.B32;1�+��,�!���.�����/��� �4�K���������������������������-� ����0���1����2���3������K��P���W���O�����5���6��B-~̌��7��Ϳ2䵖��8����������9����������G����H��J�����������������������������MODULE photop1 (DEBUG, ZIP,�� IDENT = '01-000',.� ADDRESSING_MODE (EXTERNAL = LONG_RELATIVE)) =�BEGIN��!�H�! Copyright 1992 by Hunter Goatley. All rights reserved. PermissionK�! is given to freely distribute and modify this software for no commercial�5�! gain as long as this copyright notice is retained.��!��!++��!�&�! Facility: Supervisor Series (PHOTO)�!��! Module: PHOTOP1�!� �! Abstract:�!�C�! These routines provide management of a block of process-permanent�@�! address space which �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%������������������������@]� ������ SUPSER054.C��������������������!�� ��#[HUNTER.SUPSER.V54C.C]PHOTOP1.B32;1��������������������������������������������������������������������������������������������K������������������������������ �������������can be used to maintain consistent partialC�! context for one or more images across iterative activations. The�B�! space obtained comes from the low end of P1 space: Either it isA�! tacked on to the bottom or, if an auxilliary message section is�D�! currently active, wedged in between the auxilliary message section@�! and the default message section. Since the Usermode stack and?�! other image-specific P1 data usually reside below this, this �'�! module must be linked as a P0IMAGE!!!��!� �! Author: K Nichols 28-SEP-1983�!�7�! Maintainer: Hunter Goatley, goathunter@WKUVX1.BITNET��! Western Kentucky University�!��! Modified by:��!�+�! 01-000 Hunter Goatley 6-APR-1992 12:30�:�! Added IDENT. Removed old modification history to start�! with a clean slate.�!--��LIBRARY 'SYS$LIBRARY:LIB';���MACRO�� do_or_ret (value) =�@� (REGISTER r__c; IF NOT (r__c = (value)) THEN RETURN (.r__c)) %;���FORWARD ROUTINE�� init_photo_p1,� check_if_mapped,� get_p1_space,�� init_header,� free_photo_p1,� exec_free_p1,�� del_p1_space;����EXTERNAL � p1_start,� � p1_end,�� p1_address,�C� CTL$GL_PPMSG : VECTOR [2], ! Process permanent message section�9� CTL$GW_PPMSGCHN : WORD, ! Channel to message section�9� CTL$GL_CTLBASVA; ! Base address of fixed P1 region���+�OWN ! Eventually delete this OWN section�� our_p1_space : VECTOR [3],9� log_name : INITIAL ( $DESCRIPTOR('PHOTO$P1_REGION')),�<� log_table : INITIAL ( $DESCRIPTOR('LNM$PROCESS_TABLE')),:� retrange_desc : VECTOR [2] INITIAL (10, our_p1_space);���BIND3� cs_bytes = our_p1_space [0] : VECTOR [8, BYTE],�'� checksum = our_p1_space [2] : WORD;�� ��GLOBAL ROUTINE init_photo_p1 =�!��! ENVIRONMENT: User Mode.�!� � BEGIN��� � LOCAL�� stat;��!� IF (stat = check_if_mapped())�� THEN RETURN .stat;��� do_or_ret($CMKRNL (�� ROUTIN = get_p1_space,�5� ARGLST = %REF (((p1_end - p1_start) + 511) / 512)));���� RETURN $CMEXEC (� ROUTIN = init_header);���� END;� ��ROUTINE check_if_mapped =�-�! ENVIRONMENT: VMS V3.2 or later; Exec Mode.� � BEGIN��� � LOCAL�� stat,� l_checksum : WORD,�%� item_list : VECTOR[4, LONG] INITIAL(�'� WORD(.retrange_desc[0], lnm$_string),�,� LONG(.retrange_desc[1], retrange_desc[0]), � LONG(0));���� do_or_ret ($TRNLNM (� LOGNAM = .log_name,� TABNAM = .log_table,�� ACMODE = %REF(psl$c_exec),� ITMLST = item_list));��� l_checksum = 0;���� INCR i FROM 0 TO 7 DO�+� l_checksum = .l_checksum + .cs_bytes [.i];��� � IF .l_checksum EQL .checksum� THEN� ( � p1_address = .our_p1_space [0];� stat = ss$_wasset� )� ELSE� stat = ss$_accvio;���� RETURN .stat��� END;� ��ROUTINE get_p1_space =/�! ENVIRONMENT: VMS V3.2 or later; Kernel Mode.� � BEGIN����� � BUILTIN�� AP;� MAP�� AP : REF VECTOR [, LONG]; � LOCAL�� l_new_ppmsg : VECTOR [2],� l_temp;�!+J�! First determine if an auxilliary message file is mapped into the low endJ�! of process-permanent P1 space. If so, make it unmappable by raising the?�! Perm P1 base-address pointer and then temporarily unmap it...��!-� IF�� .CTL$GL_PPMSG [0] NEQ 0�� THEN�� (,� CTL$GL_CTLBASVA = .CTL$GL_PPMSG [1] + 1;� do_or_ret ($DELTVA (� INADR = CTL$GL_PPMSG))� );��%�! Now try to get the space we need...�� � do_or_ret ($EXPREG (�� RETADR = our_p1_space,�� PAGCNT = .ap[0],�� ACMODE = psl$c_user,�� REGION = 1));��G�! ***CAREFUL!*** $EXPREG returns P1 RETADR in reverse order (high-low).�<�! This is NOT consistent with what $CRETVA and $CRMPSC do...��� l_temp = .our_p1_space [0];&� our_p1_space [0] = .our_p1_space [1];� our_p1_space [1] = .l_temp;��D� CH$FILL (0, .our_p1_space[1] - .our_p1_space[0], .our_p1_space[0]);��� checksum = 0;� INCR i FROM 0 TO 7 DO+� checksum = .checksum + .cs_bytes [.i];��!+ �! TTW003...�� do_or_ret ($LKWSET (�� INADR = our_p1_space,�� RETADR = our_p1_space,� ACMODE = PSL$C_USER));�!-��� do_or_ret ($SETPRT (�� INADR = our_p1_space,�� PROT = prt$c_uw));��%� ctl$gl_ctlbasva = .our_p1_space [0];���*�! Did we unmap an auxilliary message file?��� IF .ctl$gl_ppmsg [0] EQL 0�� THEN RETURN ss$_normal;��*�! Yes! Now remap it to the lower range...�� � l_new_ppmsg [0] = %X'40000000';$� l_new_ppmsg [1] = .l_new_ppmsg [0];��� do_or_ret ($CRMPSC (�� INADR = l_new_ppmsg,� RETADR = l_new_ppmsg,�� FLAGS = sec$m_expreg,�� CHAN = .ctl$gw_ppmsgchn,� ACMODE = psl$c_exec, � VBN = 2));��!�! Set the protection as before...���� do_or_ret ($SETPRT (�� INADR = l_new_ppmsg,� PROT = prt$c_ur));��,�! Adjust the appropriate system variables...��%� ctl$gl_ppmsg [0] = .l_new_ppmsg [0];�%� ctl$gl_ppmsg [1] = .l_new_ppmsg [1];�$� ctl$gl_ctlbasva = .l_new_ppmsg [0];��� RETURN ss$_normal� END;� ��ROUTINE init_header =��!��! ENVIRONMENT:!�! VMS V3.2 or later; Exec Mode.��!� � BEGIN� � LOCAL�%� item_list : VECTOR[4, LONG] INITIAL(�'� WORD(.retrange_desc[0], lnm$_string),�,� LONG(.retrange_desc[1], retrange_desc[0]), � LONG(0));���� do_or_ret ($CRELNM (� LOGNAM = .log_name,� TABNAM = .log_table,�� ACMODE = %REF(psl$c_exec),�� ITMLST = item_list));��"� p1_address = .our_p1_space[0];��� RETURN ss$_normal;��� END;� ��GLOBAL ROUTINE free_photo_p1 = � BEGIN���"� do_or_ret(check_if_mapped ());��� do_or_ret($CMKRNL (�� ROUTIN = del_p1_space));�� �� RETURN $CMEXEC (� ROUTIN = exec_free_p1)���� END;� ��ROUTINE exec_free_p1 = � BEGIN���� RETURN ($DELLNM (�� TABNAM = .log_table,�� LOGNAM = .log_name,� ACMODE = %REF (psl$c_exec)))���� END;� ��ROUTINE del_p1_space =�!�/�! ENVIRONMENT: VMS V3.2 or later; Kernel Mode.��!� � BEGIN����!+I�! TTW003 For PHOTO, we LOCK with $LKWSET the space, so here we unlock it.��!-� do_or_ret($ULWSET(� INADR = our_p1_space));��,�! Now try to return the space we borrowed...��� do_or_ret($DELTVA (�� INADR = our_p1_space));��?� ! If last area in PP p1 is our section, then adjust base VA�3� if .ctl$gl_ctlbasva eqla .our_p1_space [0] then�)� ctl$gl_ctlbasva = .our_p1_space [1] + 1;���� RETURN ss$_normal;��� END;�END��ELUDOM7�! VAX/DEC CMS REPLACEMENT HISTORY, Element PHOTOP1.B32�F�! *1 27-APR-1992 07:49:09 GOATHUNTER "P1-space routines for PHOTO"7�! VAX/DEC CMS REPLACEMENT HISTORY, Element PHOTOP1.B32���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#�*�[HUNTER.SUPSER.V54C.C]PHOTOP1.MAR;2�+��,�(���.� ����/��� �4�a��� �����������������������-� ����0���1����2���3������K��P���W���O� ����5���6��G㵖��7�o4䵖��8����������9����������G����H��J����������������������������/�;MACRO-32 source generated by BLISS-32 compiler�� .TITLE PHOTOP1� .IDENT \01-000\�� .PSECT $OWN$,NOEXE,2�U.8: .BLKB 12��U.9: .ADDRESS P.AAA��U.10: .ADDRESS P.AAC�U.11: .LONG 10 � .ADDRESS U.8�� .PSECT $PLIT$,NOWRT,NOEXE,2� �P.AAB: .ASCII \PHOTO$P1_REGION\ � .BLKB 1�P.AAA: .LONG 15�� .ADDRESS P.AAB�"�P.AAD: .ASCII \LNM$PROCESS_TABLE\ � .BLKB 3�P.AAC: .LONG 17�� .ADDRESS P.AAD��U.12= U.8�U.13= U.8+8a� .EXTRN P1_START, P1_END, P1_ADDRESS, CTL$GL_PPMSG, CTL$GW_PPMSGC����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������&������������������������ @� ������ SUPSER054.C��������������������(�� ��#[HUNTER.SUPSER.V54C.C]PHOTOP1.MAR;2��������������������������������������������������������������������������������������������a����� �������������������������i�������������HN, CTL$GL_CTLBASVA, SYS$CMKRNL�� .EXTRN SYS$CMEXEC�� .PSECT $CODE$,NOWRT,2��U.1:� .ENTRY INIT_PHOTO_P1, ^M<>� SUBL2 #4, SP�� CALLS #0, W^U.2� BLBS R0, 1$�*� MOVL #<<<P1_END-P1_START>+511>/512>, -� (SP) � PUSHL SP�� PUSHAB W^U.3� CALLS #2, G^SYS$CMKRNL�� BLBC R0, 1$�� CLRL -(SP)� PUSHAB W^U.4� CALLS #2, G^SYS$CMEXEC��1$: RET�� .PSECT $PLIT$,NOWRT,NOEXE,2��P.AAE: .WORD 0, 2� � .LONG 0� .ADDRESS U.11 � .LONG 0� .EXTRN SYS$TRNLNM�� .PSECT $CODE$,NOWRT,2��U.2: .WORD ^M<R2,R3,R4,R5>� SUBL2 #20, SP� MOVC3 #16, W^P.AAE, 4(SP)� MOVW W^U.11, 4(SP)� MOVL W^U.11+4, 8(SP)� PUSHAB 4(SP)� MOVL #1, 4(SP)� PUSHAB 4(SP)� PUSHL W^U.9� PUSHL W^U.10�� CLRL -(SP)� CALLS #5, G^SYS$TRNLNM�� BLBC R0, 3$� � CLRW R1� � CLRL R0��1$: MOVZBL W^U.12[R0], R2� ADDW2 R2, R1�� AOBLEQ #7, R0, 1$�� CMPW R1, W^U.13� � BNEQ 2$�� MOVL W^U.8, L^P1_ADDRESS� MOVL #9, R0�� RET�2$: MOVL #12, R0��3$: RET�C� .EXTRN SYS$DELTVA, SYS$EXPREG, SYS$LKWSET, SYS$SETPRT, SYS$CRMPSC��U.3: .WORD ^M<R2,R3,R4,R5>� SUBL2 #8, SP�� TSTL L^CTL$GL_PPMSG� � BEQL 1$� � ADDL3 #1, L^CTL$GL_PPMSG+4, -� L^CTL$GL_CTLBASVA�� CLRQ -(SP)� PUSHAB L^CTL$GL_PPMSG�� CALLS #3, G^SYS$DELTVA�� BLBS R0, 1$�� RET�1$: PUSHL #1 � PUSHL #3�� PUSHAB W^U.8 � PUSHL (AP)�� CALLS #4, G^SYS$EXPREG�� BLBS R0, 2$�� RET�2$: MOVL W^U.8, R0�� MOVL W^U.8+4, W^U.8�� MOVL R0, W^U.8+4� SUBL3 W^U.8, W^U.8+4, R0�!� MOVC5 #0, (SP), #0, R0, @W^U.8�� CLRW W^U.13� � CLRL R0��3$: MOVZBL W^U.12[R0], R1� ADDW2 R1, W^U.13�� AOBLEQ #7, R0, 3$� � PUSHL #3�� PUSHAB W^U.8� PUSHAB W^U.8� CALLS #3, G^SYS$LKWSET�� BLBC R0, 5$�� MOVQ #4, -(SP)� CLRQ -(SP)� PUSHAB W^U.8� CALLS #5, G^SYS$SETPRT�� BLBC R0, 5$�!� MOVL W^U.8, L^CTL$GL_CTLBASVA�� TSTL L^CTL$GL_PPMSG� � BEQL 4$�� MOVL #1073741824, (SP)� MOVL (SP), 4(SP)� CLRQ -(SP) � PUSHL #2�� CLRL -(SP)!� MOVZWL L^CTL$GW_PPMSGCHN, -(SP)�� CLRQ -(SP)� CLRL -(SP)� PUSHL #131072 � PUSHL #1�� PUSHAB 40(SP)�� PUSHAB 44(SP)�� CALLS #12, G^SYS$CRMPSC� BLBC R0, 5$�� MOVQ #15, -(SP)�� CLRQ -(SP)� PUSHAB 16(SP)�� CALLS #5, G^SYS$SETPRT�� BLBC R0, 5$�� MOVQ (SP), L^CTL$GL_PPMSG� � MOVL (SP), L^CTL$GL_CTLBASVA�4$: MOVL #1, R0�5$: RET�� .PSECT $PLIT$,NOWRT,NOEXE,2��P.AAF: .WORD 0, 2� � .LONG 0� .ADDRESS U.11 � .LONG 0� .EXTRN SYS$CRELNM�� .PSECT $CODE$,NOWRT,2��U.4: .WORD ^M<R2,R3,R4,R5>� SUBL2 #20, SP� MOVC3 #16, W^P.AAF, 4(SP)� MOVW W^U.11, 4(SP)� MOVL W^U.11+4, 8(SP)� PUSHAB 4(SP)� MOVL #1, 4(SP)� PUSHAB 4(SP)� PUSHL W^U.9� PUSHL W^U.10�� CLRL -(SP)� CALLS #5, G^SYS$CRELNM�� BLBC R0, 1$�� MOVL W^U.8, L^P1_ADDRESS� MOVL #1, R0��1$: RET��U.5:� .ENTRY FREE_PHOTO_P1, ^M<>� CALLS #0, W^U.2� BLBC R0, 1$�� CLRL -(SP)� PUSHAB W^U.7� CALLS #2, G^SYS$CMKRNL�� BLBC R0, 1$�� CLRL -(SP)� PUSHAB W^U.6� CALLS #2, G^SYS$CMEXEC��1$: RET�� .EXTRN SYS$DELLNM��U.6: .WORD ^M<>� � PUSHL #1� � PUSHL SP�� PUSHL W^U.9� PUSHL W^U.10�� CALLS #3, G^SYS$DELLNM�� RET� .EXTRN SYS$ULWSET��U.7: .WORD ^M<>�� CLRQ -(SP)� PUSHAB W^U.8� CALLS #3, G^SYS$ULWSET�� BLBC R0, 2$�� CLRQ -(SP)� PUSHAB W^U.8� CALLS #3, G^SYS$DELTVA�� BLBC R0, 2$�!� CMPL L^CTL$GL_CTLBASVA, W^U.8� � BNEQ 1$�'� ADDL3 #1, W^U.8+4, L^CTL$GL_CTLBASVA��1$: MOVL #1, R0�2$: RET�� .END���������������������$�*�[HUNTER.SUPSER.V54C.C]PHOTOPAT.B32;2�+��,�!���.�<����/��� �4�N���<���:���������������������-� ����0���1����2���3������K��P���W���O�;����5���6� p?ص��7�@2䵖��8����������9����������G����H��J����������������������������%TITLE 'Patch non-Page Pool'J�MODULE photopat (IDENT = '01-004', ADDRESSING_MODE (EXTERNAL = GENERAL)) =�BEGIN��!�H�! Copyright 1992 by Hunter Goatley. All rights reserved. PermissionK�! is given to freely distribute and modify this software for no commercial�5�! gain as long as this copyright notice is retained.��!��!++��!��! Facility: Supervisor Series�!�A�! Module: PHOTOPAT (patches non-paged pool for PHOTO/SUPERVISOR)��!�I�! Author: Bob Pasker and Terry Way. See PHOTO.BLI for more author info.��!�-�! Date: Originally written sometime in 1983.��! Version 5.1: April 6, 1992��!� �! Abstract:�!�>�! This module contains the code for inserting and removing the?�! nonpaged pool patches used by the Supervisor Series. All code�<�! in this module must be locked in memory because it runs at!�! elevated ipl from time to time.��!��! Maintainer: Hunter Goatley��! VMS Systems Programmer��! Academic Computing, STH 226�! Western Kentucky University�! Bowling Green, KY 42101�! Phone: 502-745-5251#�! E-mail: goathunter@WKUVX1.BITNET��!��!��! Modified by:�!�+�! 01-004 Hunter Goatley 21-APR-1993 14:09�<�! Fixed a major bug in page protections. The P1 space used7�! by PHOTO is created by calling $EXPREG to extend the�8�! P1 region. This has the effect of enlarging the user6�! stack. Unfortunately, those pages were left with a<�! protection of UW (user write), which meant that user-mode:�! code could write to them. This had the unpleasant side8�! effect of wiping out PHOTO's code/data if a user-mode6�! program incorrectly managed its stack---overrun the:�! stack and it'd write over PHOTO's code/data. Not good.9�! The solution (for now) is to use undocumented flags in�7�! $CRMPSC so that the pages are left in SW (supervisor�8�! write), not UW. Any user program with stack problems6�! will now result in an access violation when it hits8�! the PHOTO pages (same as when PHOTO was not running).:�! (The pages are left in UW for SUPERVISOR---unless there>�! were stack bugs in SUPERVISOR, the UW will have no effect.)�!�+�! 01-003 Hunter Goatley 16-SEP-1992 07:06�;�! Cleaned up code in kernel_remove_patch some more. Moved�:�! final release of device spinlock into code messing with3�! the UCB---it was being held way too long before.��!�=�! Modified insert_patch() to include simple checks to ensure�=�! that the UCB is still valid. Also, removed stupid call to�5�! $RESUME to get EPID---now it's taken from the PCB.��!�=�! Modified kernel_make_patch to use $SETIPL instead of MTPR.�8�! Modified kernel_make_patch and kernel_remove_patch to?�! set IPL to IPL$_ASTDEL while doing their work to ensure that�:�! we can't get deleted (or forcex'ed) while we're messing.�! around with system memory and the terminal.�!�)�! Added calls to get_p1_address() macro.��!�+�! 01-002 Hunter Goatley 10-AUG-1992 09:12�:�! Added check to kernel_remove_patch to make sure the UCB;�! is still a UCB. SUPERVISOR was crashing systems because�<�! the UCB had somehow already been deleted by the time this<�! routine was called. Also, when deallocating the nonpaged6�! pool in kernel_remove_patch, changed pfn_address to3�! p1_address. In pre-v5.3, if PHOTO got an error,�7�! we weren't unhooked because pfn_address had not been�<�! initialized at that point. Since pfn_address should have=�! the same value as p1_address and p1_address is always set,�/�! I just replaced pfn_address with p1_address.��!�+�! 01-001 Hunter Goatley 6-APR-1992 11:47�:�! Removed DMA stuff, since DEC does����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������'������������������������9Cr� ������ SUPSER054.C��������������������!�� ��$[HUNTER.SUPSER.V54C.C]PHOTOPAT.B32;2�������������������������������������������������������������������������������������������N�����<��������������������������������������n't support it anymore<�! (according to Forrest Kenney of DEC). The DMF-32 was the:�! only terminal device that supported DMA, and apparently�! they didn't sell well....�!�;�! Modified kernel_remove_patch to check p1uobsadv_shutdown�9�! flag before unhooking from the UCB. If the terminal's�=�! PORT_DISCONNECT routine was called, OUR_DISCONNECT already�:�! unhooked us via FAST_UNHOOK and kernel_remove_patch was&�! called via the image exit handlers.�!�;�! Removed code that messed with reference counts, since it�:�! caused a number of problems. This version lets ADVISOR*�! log in terminals, which 5.0D didn't do.�!�=�! Removed *old* modification histories to start with a clean� �! slate.��!��!--�� ��LIBRARY 'SYS$LIBRARY:LIB';�LIBRARY 'TERMBLI';�LIBRARY 'SUPSER_MACROS';���LINKAGE�M� jsb_preserve_all = JSB : PRESERVE (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11),�� jsb_linkage = JSB,E� deallocate = JSB (REGISTER = 0, REGISTER = 1) : NOPRESERVE(1, 2),�4� ioc_linkage = JSB (REGISTER = 5), ! UCB address7� l_searchdev = JSB (REGISTER = 4) : ! PCB address�2� GLOBAL (UCB_REG = 1) ! Device name/ucb address/� NOPRESERVE (2, 3, 4, 5, 6, 7, 8, 9, 10, 11),�5� l_iomutex = JSB (REGISTER = 4) : ! PCB address�/� NOPRESERVE (2, 3, 4, 5, 6, 7, 8, 9, 10, 11);����EXTERNAL ROUTINE#� INI$BRK : jsb_linkage NOVALUE,�� SCH$IOLOCKW : l_iomutex,�� SCH$IOUNLOCK : l_iomutex,�� super_checkitout,�� disconnect_ast,�� our_getnext,� our_putnext_2,� our_putnext,� our_startio,� our_disconnect,� � stuff,� stuff_obs;���LITERAL� � true = 1,�� false = 0,� page = 512,�2� port_vec_len = 72; ! V5.0 port vector length���PSECT�&� OWN = PROTO$99 (WRITE, NOEXECUTE),� GLOBAL = PROTO$99,� CODE = PROTO$99,� PLIT = PROTO$99;���FORWARD�� lock_end : vector [0];���EXTERNAL LITERAL� photo_flag;����EXTERNAL� have_chan,� input_only,�� advising : WEAK BYTE, � stuffer,� pb : VECTOR [4, LONG],� lock_start : VECTOR [0],�� ub_count : REF VECTOR [2],�� ub_iptr : VECTOR [2],#� umissed_bytes : REF VECTOR [1],�%� usignal_pending : REF VECTOR [1],�(� uint_level_logging : REF VECTOR [1],� uobsadv_shutdown,�� ucb_address, � p1_start,�� p1_address,�� proto_start,� proto_end,*� our_port_vector : terminal_structures, � our_pid, � our_ast, � our_ast2,�� bbuf_size,� missed_bytes,�� signal_pending,�� signal_each,� current_buffer,� � buf_size : VECTOR[2, LONG],!� buf_count : VECTOR[2, LONG],�� buf_ptr : VECTOR[2, LONG],� � buf_iptr : VECTOR[2, LONG],� int_level_logging,� code_base, � code_end,�� pfn_address,� data_base, � data_end,�%� s0getnext, ! SVA of our getnext�9� npageaddr, ! where a page aligned address is stored�A� real_npage, ! where the real address of the block is stored�� npagesize;��K�! the rest of the stuff also stays in these psects so we can $LKWSET it all��! in our working set���MACRO�� dsc$t_begin = 0, 0, 0, 0 %,�� do_or_ret (value) =�@� (register r__c; if not (r__c = (value)) then return (.r__c)) %,� do_or_sig (value) =�@� (register r__c; if not (r__c = (value)) then signal (.r__c)) %,� type (control_str) [] =�� BEGIN��� EXTERNAL ROUTINE�� LIB$PUT_OUTPUT;��� LOCAL&� l_output_buf : VECTOR[256, BYTE],+� l_output_dsc : BLOCK[8, BYTE] PRESET (�.� [DSC$W_LENGTH] = %ALLOCATION (l_output_buf),%� [DSC$A_POINTER] = l_output_buf[0]);���H� do_or_sig ($FAO ($DESCRIPTOR (control_str), l_output_dsc[DSC$W_LENGTH],� l_output_dsc9� %IF %NULL(%REMAINING) %THEN %ELSE, %REMAINING %FI ));�*� do_or_sig (LIB$PUT_OUTPUT (l_output_dsc))��� END %,�#� searchdev (devdesc, pcb, ucb) =�� BEGIN��� EXTERNAL ROUTINE� � IOC$SEARCHDEV: l_searchdev;��� GLOBAL REGISTER� ucb_reg = 1;���� LOCAL� l_status;��� ucb_reg = devdesc;�� l_status = IOC$SEARCHDEV(pcb);�� ucb = .ucb_reg;� � .l_status��� END %;����FORWARD ROUTINE�� kernel_remove_patch,� kernel_make_patch;��� �3�ROUTINE allocate_memory (buf_pages) : jsb_linkage =��BEGIN����LINKAGE�/� allocate = JSB (REGISTER = 1; REGISTER = 2) :�� NOPRESERVE (0, 3);���EXTERNAL ROUTINE� EXE$ALONONPAGED : allocate;���EXTERNAL� b0_buf,� b1_buf;���LOCAL�� l_size,� l_ptr,� � l_status;���! INI$BRK ();��� !+F� ! size is codesize+extrapage+2^4 rounded off to the upper 16 bytes+� ! because pool is in 2^4 byte granules.�� !-:� l_size = (data_end - data_base + 512 + 15) AND NOT 15;��>� l_status = EXE$ALONONPAGED (.l_size; l_ptr); ! do allocate��@� npageaddr = (.l_ptr + 511) AND NOT 511; ! on a page boundary5� real_npage = .l_ptr; ! but for releasing memory���� !+*� ! fixup the addresses of the b_buffers� !-A� buf_iptr[0] = buf_ptr[0] = (b0_buf - data_base + .npageaddr);�A� buf_iptr[1] = buf_ptr[1] = (b1_buf - data_base + .npageaddr);���%� buf_size[0] = buf_size[1] = 1024;���� RETURN .l_status;����END;��� �#�ROUTINE kernel_map (va, dif, pfn) =��!+D�! returns the physical page number and the byte offset into the page!�! of the address specified in VA.��!��! input::�! VA - virtual address for whom we must locate the outputs�! in the proper tables. �! outputs:=�! P_DIF - pointer of where to return the offset from start of��! page that this VA is.C�! P_PFN - pointer of where to return the physical PAGE FRAME NUMBER� �! of this VA for use in $CRMPSC�! for $CRMPSC.��!_�BEGIN����EXTERNAL!� MMG$GL_SPTBASE : REF VECTOR [4];����LOCAL�� l_fpg : BLOCK [%UPVAL, BYTE],�� l_first_page,� l_pte : BLOCK [%UPVAL, BYTE],�� l_vpn;���#� l_first_page = .va AND NOT 511;�� .dif = .va - .l_first_page;���'� l_fpg[0, 0, 32, 0] = .l_first_page;���� l_vpn = .l_fpg[VA$V_VPN];�$� l_pte = .MMG$GL_SPTBASE[.l_vpn];� .pfn = .l_pte[PTE$V_PFN];���� RETURN SS$_NORMAL;���END;� �"�ROUTINE pfn_map (device, u_addr) =�!+=�! The ((data_end-data_base)/512) pages starting at .NPAGEADDR�;�! are remapped ONE BY ONE into P1 space via the PFN mapping��! feature of $CRMPSC.��!-�BEGIN����MAP�� device : REF $BBLOCK;���LOCAL�� l_uaddr_set : INITIAL (0), � l_page_frame_number : VOLATILE,� l_offset_into_page : VOLATILE,�#� l_karg_list : VECTOR[4] INITIAL (�5� 3, 0, l_offset_into_page, l_page_frame_number),�2� l_p1va : VOLATILE, ! p1 virtual address pointer2� l_s0va : VOLATILE, ! S0 virtual address pointer� l_cnt : INITIAL (1),�� l_range : VECTOR[2];���� !+I� ! we assume that npageaddr AND p1_address are on a page boundaries...�#� ! otherwise, generate an error.�� !-F� IF ((.npageaddr AND 511) NEQU 0) or ((.p1_address AND 511) NEQU 0)� THEN� BEGIN��I� type ('PHOTO-F-BUGCHECK, npageaddr/p1_address not page aligned !XL !XL',� � .npageaddr, .p1_address);� RETURN (SS$_BUGCHECK);���� END;���� %IF %SWITCHES (DEBUG)� � %THEN�>� type ('NPAGE,P1ADDRESS = !XL, !XL', .npageaddr, .p1_address);� %FI���� !+F� ! make sure that DATABASE and P1START are IDENTICAL ADDRESSES! ! !� !-� IF data_base NEQA p1_start� THEN� BEGIN��F� type ('PHOTO-F-BUGCHECK, DATA_BASE NEQA P1_START !XL !XL', data_base,� p1_start);�� RETURN (SS$_BUGCHECK);���� END;���� !+C� ! The p1address in the following expressions is the area of the�>� ! swatch in P1 space that we want to use for remapping the6� ! npagepool space. It is returned by init_our_p1.� !-� l_p1va = .p1_address;���� !+L� ! setup the initial s0 virtual address that we wish to map into P1 space� !-� l_s0va = .npagea���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������(������������������������� ������ SUPSER054.C��������������������!�� ��$[HUNTER.SUPSER.V54C.C]PHOTOPAT.B32;2�������������������������������������������������������������������������������������������N�����<�������������������������*]�������������ddr;��� !+C� ! for each page from NPAGEADDR to NPAGEADDR+(DATA_END-DATABASE)�� ! map into p1 space.� !-?� WHILE .l_s0va LEQA (.npageaddr + (data_end - data_base)) DO�� BEGIN��� LOCAL%� l_devnam_buf : VECTOR[10, BYTE],�+� l_devnam_dsc : BLOCK[8, BYTE] PRESET (�%� [DSC$A_POINTER] = l_devnam_buf[0]);���� !+�� ! map the page into P1 space�� !-�>� l_karg_list[1] = .l_s0va; ! setup vir addr for kernel_map@� l_range[0] = l_range[1] = .l_p1va; ! setup vir addr for crmpsc��� do_or_ret ($CMKRNL (�� ROUTIN = kernel_map,�� ARGLST = l_karg_list[0]));���� %IF %SWITCHES (DEBUG)� %THEN� IF .signal_each � THEN�6� type ('CNT= !XL, S0VA= !XL, RANGE[0]= !XL, PFN=!XL',9� .l_cnt, .l_s0va, .l_range[0], .l_page_frame_number)� � ELSE�2� type ('CNT= !XL, S0VA= !XL, P1VA= !XL, PFN=!XL',6� .l_cnt, .l_s0va, .l_p1va, .l_page_frame_number);� %FI��� !+�C� ! If in Supervisor, do an $EXPREG, otherwise use the already setup�D� ! range. Make sure we reflect the first addr in the retunred range� ! back to the user in U_ADDR.� !H� ! Attempt the mapping in supervisor mode, it will be maximized with theI� ! mode of the caller. Thus, if called from PHOTO in exec mode it will be�F� ! setup for super mode, or if from SUPERVISOR in user mode it will be� ! setup for user mode.�� !?� ! Note: prior to 01-004, PHOTO did not do this from exec mode.�� !� !-�8� CH$COPY (.device[DSC$W_LENGTH], .device[DSC$A_POINTER],#� %ALLOCATION (l_s0va), l_s0va, 0,�0� %ALLOCATION (l_devnam_buf), l_devnam_buf[0]);��5� l_devnam_dsc[DSC$W_LENGTH] = .device[DSC$W_LENGTH] +�� %ALLOCATION(l_s0va);��� do_or_ret ($CRMPSC (� � VBN = .l_page_frame_number,� INADR = l_range,�� RETADR = l_range,?� FLAGS = SEC$M_WRT OR SEC$M_PFNMAP OR (IF .signal_each THEN�� SEC$M_EXPREG ELSE 0)1� OR SEC$M_PROTECT !Specify that WRTMOD is SUPER�-� OR (PSL$C_SUPER ^ 6), !WRTMOD = bits 6 & 7�6� ACMODE = PSL$C_SUPER, !Access mode is supervisor� PAGCNT = 1,*� GSDNAM = l_devnam_dsc[dsc$t_begin]));��� !+�D� ! If this is the first page to be mapped (l_uaddr_set flag not set)?� ! then we return the address from RETADR parameter into U_ADDR�=� ! as the place where the actual section was mapped. Remember�E� ! that PHOTO maps P1 space and the addresses are backwards in RANGE!�� !-�� IF NOT .l_uaddr_set� THEN� � BEGIN��� IF .signal_each � THEN�� .u_addr = .l_range[0]� � ELSE�� .u_addr = .l_range[1];��5� l_uaddr_set = 1; ! set it for next time around��� � END;���� %IF %SWITCHES (DEBUG)� %THEN� IF .signal_each � THEN�7� type ('CNT= !XL, S0VA= !XL, RANGE[0]= !XL, PFN= !XL',�<� .l_cnt, .l_s0va, .l_range [0], .l_page_frame_number) � ELSE�3� type ('CNT= !XL, S0VA= !XL, P1VA= !XL, PFN= !XL',�8� .l_cnt, .l_s0va, .l_p1va, .l_page_frame_number);� %FI��� l_cnt = .l_cnt + 1;1� l_p1va = .l_p1va + page; ! goto next page IN P1�1� l_s0va = .l_s0va + page; ! goto next page IN S0���� END;���� RETURN SS$_NORMAL;���END;� ��GLOBAL ROUTINE exec_patch_p1 =�!+H�! now go up into p1 space to the stuff we have already put up there, and4�! get the addresses of what we need in nonpaged pool�!-�BEGIN����EXTERNAL� b0_buf,� b1_buf;���BIND*� p1s0getnext = get_p1_address(s0getnext),*� p1bbuf_size = get_p1_address(bbuf_size),5� p1usignal_pending = get_p1_address(usignal_pending),�.� p1ucb_address = get_p1_address(ucb_address),B� p1umissed_bytes = get_p1_address(umissed_bytes): REF VECTOR [1],<� p1uint_level_logging = get_p1_address(uint_level_logging) :� REF VECTOR [1],�7� p1ub_count = get_p1_address(ub_count): REF VECTOR[2],�1� p1ub_iptr = get_p1_address(ub_iptr): VECTOR[2];���� p1bbuf_size = .bbuf_size;�!� p1ucb_address = .ucb_address;�;� p1s0getnext = .s0getnext; ! save where our getnext is�B� p1usignal_pending = signal_pending - data_base + .pfn_address;>� p1umissed_bytes = missed_bytes - data_base + .pfn_address;H� p1uint_level_logging = int_level_logging - data_base + .pfn_address;6� p1ub_count = buf_count - data_base + .pfn_address;��<� p1ub_iptr[0] = .buf_iptr[0] - .npageaddr + .pfn_address;<� p1ub_iptr[1] = .buf_iptr[1] - .npageaddr + .pfn_address;��G� p1uint_level_logging [0] = 1; ! ok, allow the logging to happen now���� RETURN SS$_NORMAL;���END;��� �<�GLOBAL ROUTINE jiggle_vectors (device, onoff, buf_pages) : =�BEGIN��!+�!��! Routine: JIGGLE_VECTORS�!��! Functional description:�!�9�! This routine is called to hook into and unhook from the��! the target terminal UCB.�!��! Environment:��!�9�! Called from user-mode, changes mode to kernel as needed��!��! Formal parameters:��!�5�! device - Address of descriptor for the device name�4�! onoff - Flag indicating whether to hook or unhook0�! buf_pages - Number of pages to use for buffers�!��!-�MAP�� device : REF $BBLOCK;���LOCAL�5� l_arglst : VECTOR[4] INITIAL (lock_start, lock_end),�� l_addr, � l_status;��,� do_or_ret ($LKWSET (INADR = l_arglst[0],� RETADR = l_arglst[0]));��.� do_or_ret ($LCKPAG (INADR = l_arglst[0]));�� � IF .onoffo� THEN� BEGIN��� l_arglst[0] = 2;A#� l_arglst[1] = device[dsc$t_begin];=� l_arglst[2] = ucb_address;1� l_arglst[3] = .buf_pages;��3� IF l_status = $CMKRNL (ROUTIN = kernel_make_patch,t� ARGLST = l_arglst[0])w� THEN 2� IF (.signal_each) !SUPERVISOR? Just do the&� THEN !... pfn_map (pages = UW)+� l_status = pfn_map (.device, pfn_address)O � ELSEs� BEGINd� ! :� ! For PHOTO, do the PFN_MAP from executive mode so that2� ! the pages are protected for SUPERVISOR WRITE.� !O#� LOCAL l_arglst2 : VECTOR[3,LONG];�� l_arglst2[0] = 2; � l_arglst2[1] = .device;�� l_arglst2[2] = pfn_address;c<� l_status = $CMEXEC (ROUTIN = pfn_map, ARGLST = l_arglst2);� END;��� IF photo_flag� THENc� bbuf_size = .buf_size[0]l� ELSEn-� bbuf_size = .buf_size[0] + .buf_size[1]; ��� END� ELSE� BEGIN��� !+:A� ! The remove patch routine is called in p1 space so the location,E� ! ucb_address referenced by it is truly the p1 value of the nonpaged '� ! pool area, not our image of it in p0e� !-V � BIND ROUTINE�?� p1kernel_remove_patch = (kernel_remove_patch - p1_start) +0� .p1_address;��6� do_or_ret ($CMKRNL (ROUTIN = p1kernel_remove_patch));��� l_arglst[0] = lock_start;� l_arglst[1] = lock_end;��'� l_status = $ULWSET (INADR = l_arglst);h��� END; ��� RETURN .l_status���END;��� e'�ROUTINE insert_patch (ucb, buf_pages) = �BEGIN �!+�!e�! Routine: INSERT_PATCH�!o�! Functional description:�!e?�! This routine does the actual hooking into the terminal UCB byu:�! replacing the GETNXT, PUTNXT, and CLASS vectors with our �! routines.k�!d�! Environment:P�!O)�! Kernel mode, IPL IPL$_ASTDEL (and DLCK)f�!n�! Formal parameters:t�!f3�! ucb - Address of longword containing UCB address 5�! buf_pages - Number of pages to allocate for buffers �!c�!-�MAPs� ucb : REF terminal_structures; ���EXTERNAL<� CTL$GL_PCB : REF $BBLOCK; !P1 pointer to PCB���LOCAL � l_status, � l_oldipl;���! INI$BRK();-��� !e?� ! Check out the device (try to make sure it's still a UCB))� ! 8� IF (.ucb GEQ 0) OR (.ucb[UCB$B_TYPE] NEQU DYN$C_UCB)� THEN� RETURN SS$_ABORT;��� !+*� ! get old locations safely tucked away� !-� $DEVICELOCK (t� LOCKADDR = .ucb[UCB$L_DLCK],t� SAVIPL = l_oldipl);��,� pb[old_getnxt] = .ucb [UCB$L_TT_GETNXT];,� pb[old_putnxt] = .ucb [UCB$L_TT_PUTNXT];(� pb[old_port] = .ucb [UCB$L_TT_PORT];��� $DEVICEUNLOCK ('� LOCKADDR = .ucb[UCB$L_DLCK],M� NEWIPL = .l_oldipl);c��� !+(� ! ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������)������������������������t� ������ SUPSER054.C��������������������!�� ��$[HUNTER.SUPSER.V54C.C]PHOTOPAT.B32;2�������������������������������������������������������������������������������������������N�����<�������������������������������&�������copy code + data to non-paged pool� !-'� IF NOT allocate_memory (.buf_pages)I� THEN� RETURN SS$_ENDOFFILE;��� !+(� ! copy port vector to prototype area� !-D� CH$MOVE (port_vec_len * %upval, .pb[old_port], our_port_vector);��� !+F� ! fixup address of startio routine, be careful to save the old one� !-� IF advising NEQA 0� THEN � IF .advisingo� THENu � BEGIN��� EXTERNAL ROUTINEV � our_xon, � our_xoff; ��� !+ 3� ! patch into the flow control routines if here � !-rE� our_port_vector [port_xon] = (our_xon - data_base + .npageaddr);rG� our_port_vector [port_xoff] = (our_xoff - data_base + .npageaddr); �� � end;e��J� our_port_vector [port_startio] = our_startio - data_base + .npageaddr;D� our_port_vector [port_disconnect] = our_disconnect - data_base +� .npageaddr;��� !+K� ! get our pid and salt it away, along with the address of our p1 space 1� ! ast routine:� !-4� our_pid = .CTL$GL_PCB[PCB$L_EPID]; !Get the PID��/� our_ast = get_p1_address(super_checkitout);D.� our_ast2 = get_p1_address(disconnect_ast);��� missed_bytes = 0; ��� IF photo_flagi� THEN� BEGIN��� buf_count[0] = .buf_size[0];a� buf_count[1] = .buf_size[1];���� current_buffer = 0;��,� stuffer = (stuff - data_base) + .npageaddr;��� END� ELSE� BEGIN��5� buf_count[0] = buf_count[1] = 0; !make buffer emptyK0� stuffer = (stuff_obs - data_base) + .npageaddr;��� END;h��� !+:� ! copy the prototype database upwards into npaged pool� !-:� CH$MOVE (data_end - data_base, data_base, .npageaddr);%� npagesize = data_end - data_base;.��� !+M� ! substitute addresses of our routines and relocate them patch in our new�M� ! port vector table making sure we raise ourselves to device ipl so as to�� ! keep things consistent� !-� BEGIN��� LOCAL � oldipl;��6� IF (.ucb LSS 0) AND (.ucb[UCB$B_TYPE] EQLU DYN$C_UCB)� THENB � BEGIN� $DEVICELOCK( � LOCKADDR = .ucb[UCB$L_DLCK],� SAVIPL = l_oldipl);)��"� IF photo_flag and .input_only � THENR� BEGIN � ! @� ! we don't want to watch the output stream, but only the input?� ! stream, we must trap the characters BEFORE they get to VMS,B1� ! thus patching in the secondary OUR_PUTNEXT_2.2� !-- 7� ucb [UCB$L_TT_PUTNXT] = (our_putnext_2 - data_base) + � .npageaddr;A� ucb [UCB$L_TT_GETNXT] = (our_getnext - data_base) + .npageaddr;x��� ENDu � ELSEo� BEGIN ��A� ucb [UCB$L_TT_GETNXT] = (our_getnext - data_base) + .npageaddr;xA� ucb [UCB$L_TT_PUTNXT] = (our_putnext - data_base) + .npageaddr;b7� ucb [UCB$L_TT_PORT] = (our_port_vector - data_base) +=� .npageaddr;��� END;��� $DEVICEUNLOCK (� LOCKADDR = .ucb[UCB$L_DLCK],� NEWIPL = .l_oldipl);��� END� ELSEO � BEGIN� EXTERNAL ROUTINET � EXE$DEANONPGDSIZ : deallocate;��� !+o<� ! get rid of the memory we used and give it back to vms� !-,��#� EXE$DEANONPGDSIZ (.real_npage,K0� (data_end - data_base + 512 + 15) AND NOT 15);��� RETURN SS$_ABORT;�� � END;b� � END; !BEGIN for local block��� !++� ! save address of where our getnext is.�� !-7� s0getnext = (our_getnext - data_base) + .npageaddr;R��� RETURN SS$_NORMAL;���END;��� �6�ROUTINE kernel_make_patch (name, ucbaddr, buf_pages) =�BEGINt���LOCAL � l_status,� l_curpcb : REF $BBLOCK,� l_ucb : REF $BBLOCK;��� l_curpcb = $GET_CURPCB;s��� SCH$IOLOCKW (.l_curpcb);��3� l_status = searchdev (.name, .l_curpcb, l_ucb);u��7� SCH$IOUNLOCK (.l_curpcb); !Unlock the I/O databaseo��� !C"� ! Leave IPL at 2 to block ASTs� !N9� $SETIPL (NEWIPL = IPL$_ASTDEL, ENVIRON=UNIPROCESSOR);n��3� IF .l_status !If device was found OK, then go %� THEN !... insert us in the UCBn� BEGIN��/� .ucbaddr = .l_ucb; ! return physical ucb itemg��.� l_status = insert_patch (.l_ucb, .buf_pages);��� END; ��F� $SETIPL (NEWIPL = 0, ENVIRON=UNIPROCESSOR); !Lower IPL and return��� RETURN .l_status; ���END;���GLOBAL� lock_end : vector[0];r���!+L�! the routines below this point must sit in p1 space, so that "remove_patch"�! can be called upon logoutv�!-�PSECT &� OWN = PROTO$97 (WRITE, NOEXECUTE),� CODE = PROTO$97,� PLIT = PROTO$97;���!+,�! this routine is called by "jiggle_vectors"�!-��� G$�GLOBAL ROUTINE kernel_remove_patch =�BEGIN;�!+�!C�! Routine: KERNEL_REMOVE_PATCH6�!Y�! Functional description:�![A�! This routine is called by JIGGLE_VECTORS to unhook our routines�C�! from the terminal UCB and to deallocate the nonpaged pool holdingO�! those routines.o�!u�! Environment:H�!��! Kernel mode, elevated IPLL�!R�!-�EXTERNAL � TTY$GL_DPT;���BIND*� p1s0getnext = get_p1_address(s0getnext),7� p1uobsadv_shutdown = get_p1_address(uobsadv_shutdown);����LOCAL� � l_status,"� l_ucb : REF terminal_structures, � l_oldipl,1� l_tt_dpt : REF $BBLOCK, ! driver prologue tables@� l_tt_vector : REF terminal_structures, ! terminal driver vector"� l_last_pb : REF VECTOR [4, LONG],� l_pb : REF VECTOR [4, LONG];���! INI$BRK();c���!+2�! if done with relative addressing, it should work�!fD�! here to get rid of the stuff, make sure that our patch is in thereL�! this code is deliberately set up so that we can remove it from a different"�! process than we inserted it with �! we accomplish this as follows:H�! using ucb$l_tt_getnext we compute the location of the base of the codeE�! and then check to see whether the code is identical to what we haveoC�! in our space. ifnot, then this is not our patch. ifso, then checka@�! npageaddr and verify that it matches the address of this block7�! ifnot, then this is not our patch. ifso, we remove it1K�! this wierdness is due to Bob Pasker's finding my bug and assuring me thatl%�! pfn address is where i want to lookh�!d�! +---------------+�! ! old_putnxt !_�! +---------------+�! ! old_port !a�! +---------------+)�! ! old_getnxt +--+ next getnext routine_)�! +---------------+ ! +---------------+u>�! ucbgetnxt---> ! routine start ! +--->! next routine ! --->&�! +---------------+ +---------------+�!u�! D�! Right behind the stuffed in getnext routine should be the locationC�! of old_getnext for any patcher. We simply follow the links untilo>�! we get to one that points to us. We replace his forwardlink�! with our forward link.�!-� !u � ! Set IPL to 2 to block ASTs� !t9� $SETIPL (NEWIPL = IPL$_ASTDEL, ENVIRON=UNIPROCESSOR);i��-� l_ucb = .ucb_address; !Copy UCB address$��;� IF (NOT(.p1uobsadv_shutdown) AND !Not unhooked yet ANDS3� (.l_ucb LSS 0) AND !Address is at least negativeAG� (.l_ucb[UCB$B_TYPE] EQLU DYN$C_UCB)) !If not a UCB, just deallocate�� THEN� BEGIN� !+A.� ! first, where is our getnext supposed to be?� !- � $DEVICELOCK ( � LOCKADDR = .l_ucb[UCB$L_DLCK],� SAVIPL = l_oldipl); ��� !+ 8� ! driver prologue table is the first location in driver� !- � l_tt_dpt = .TTY$GL_DPT;��� !+�C� ! dpt$w_vector is an offset into the driver of where we might find1A� ! the terminal drivers REAL vector table. (a copy of which is in � ! the ucb);� !A� ! If there are no patches, then the UCB will be looking directly � ! at the class driver.d� ! RETURN a bad status� !-g3� l_tt_vector = .l_tt_dpt + .l_tt_dpt[dpt$w_vector];A��;� IF .l_ucb[UCB$L_TT_GETNXT] EQLA .l_tt_vector[CLASS_GETNXT]s� THEN_ � BEGIN��� $DEVICEUNLOCK ( � LOCKADDR = .l_ucb[UCB$L_DLCK], � NEWIPL = 0); !Reset IPL to 0��� RETURN SS$_BUGCHECK;��� � END;I��� !+)8� ! look at the previous (UCB) and current patch block by6� ! following the ucbs getnxt pointer and backing up to���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������*������������������������[@/� ������ SUPSER054.C��������������������!�� ��$[HUNTER.SUPSER.V54C.C]PHOTOPAT.B32;2�������������������������������������������������������������������������������������������N�����<�������������������������.� �����5�������� ! the top of the patch blocke� !-�0� l_last_pb = .l_ucb; ! give last a known value;� l_pb = .l_ucb [UCB$L_TT_GETNXT]; ! point to getnxt routineH��� !+UG� ! until the routine address is our pointer to getnxt (our patch block)d7� ! or the routine is at the class driver entry point... � ! doS2� ! follow the getnxt pointer and backup to top.� !-X��'� UNTIL (l_pb[rtn] EQLA .p1s0getnext) OR�0� (l_pb[rtn] EQLA .l_tt_vector[CLASS_GETNXT]) DO � BEGIN��� l_last_pb = .l_pb;-(� l_pb = .l_pb[old_getnxt] - (rtn*4);�� � END;t��� !+HD� ! if we got to VMS's routine then we arent there... return bugcheckG� ! so we have a different return code for each failure in this routine.r� !-n-� IF l_pb[rtn] EQLA .l_tt_vector[CLASS_GETNXT]�� THENw � BEGIN��� $DEVICEUNLOCK ( � LOCKADDR = .l_ucb[UCB$L_DLCK], � NEWIPL = 0); !Reset IPL to 0��� RETURN SS$_BADIMGHDR;�� � END;���� !+++� ! if the patch block now points to the UCBt� ! thens� ! copy into real ucbfields-� ! else0D� ! copy our OLD datastructure to our predecessor's OLD datastructure� !-+��9� IF .l_last_pb eqlu .l_ucb ! is last pb pointing to UCB?H� THENs � BEGIN��0� l_ucb[UCB$L_TT_GETNXT] = .l_pb[old_getnxt];0� l_ucb[UCB$L_TT_PUTNXT] = .l_pb[old_putnxt];,� l_ucb[UCB$L_TT_PORT] = .l_pb[old_port];��� END� ELSEe � BEGIN��/� l_last_pb[old_getnxt] = .l_pb[old_getnxt];l/� l_last_pb[old_putnxt] = .l_pb[old_putnxt]; +� l_last_pb[old_port] = .l_pb[old_port];a�� � END;r��� !B� ! We're finished with the terminal UCB, so release the spinlock.� !� $DEVICEUNLOCK ( � LOCKADDR = .l_ucb[UCB$L_DLCK],� NEWIPL = .l_oldipl);��.� END; !IF (NOT(.p1uobsadv_shutdown) AND....����� !XC� ! Here, we're ready to deallocate the memory holding our code.r� ! N� IF CH$EQL (code_end - code_base, .p1s0getnext - (our_getnext - code_base),A� code_end - code_base, (code_base - data_base) + .p1_address)o� THEN� BEGIN��� !+s>� ! if here, then code matches, use REAL_NPAGE for deallocation� !-d��� BIND 7� npaddr = .p1s0getnext + (npageaddr - our_getnext),t=� real_npaddr = .p1s0getnext + (real_npage - our_getnext);t��9� IF .npaddr EQLA .p1s0getnext - (our_getnext - data_base) � THEN � BEGIN��� EXTERNAL ROUTINE � EXE$DEANONPGDSIZ : deallocate;��� !+!<� ! get rid of the memory we used and give it back to vms� !-t��#� EXE$DEANONPGDSIZ (.real_npage,Y0� (data_end - data_base + 512 + 15) AND NOT 15);��� l_status = SS$_NORMAL;,��� END� ELSEN� l_status = SS$_ACCVIO;[��� END� ELSE� l_status = SS$_ABORT;��� !_$� ! Now lower IPL before returning� !�/� $SETIPL (NEWIPL = 0, ENVIRON=UNIPROCESSOR);n��� RETURN (.l_status);e���END;���END �ELUDOM������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������$�*�[HUNTER.SUPSER.V54C.C]PHOTOPAT.MAR;1�+��,�(���.�����/��� �4�j��������������������������-� ����0���1����2���3������K��P���W���O�����5���6�@~㵖��7��8:4䵖��8����������9����������G����H��J���������������������������/�;MACRO-32 source generated by BLISS-32 compiler�%� .TITLE PHOTOPAT Patch non-Page Pool�� .IDENT \01-004\�Z� .EXTRN INI$BRK, SCH$IOLOCKW, SCH$IOUNLOCK, SUPER_CHECKITOUT, DISCONNECT_AST, OUR_GETNEXT^� .EXTRN OUR_PUTNEXT_2, OUR_PUTNEXT, OUR_STARTIO, OUR_DISCONNECT, STUFF, STUFF_OBS, PHOTO_FLAGj� .EXTRN HAVE_CHAN, INPUT_ONLY, STUFFER, PB, LOCK_START, UB_COUNT, UB_IPTR, UMISSED_BYTES, USIGNAL_PENDING]� .EXTRN UINT_LEVEL_LOGGING, UOBSADV_SHUTDOWN, UCB_ADDRESS, P1_START, P1_ADDRESS, PROTO_START�h� .EXTRN PROTO_END, OUR_PORT_VECTOR, OUR_PID, OUR_AST, OUR_AST2, BBUF_SIZE, MISSED_BYTES, SIGNAL_PENDING_� .EXTRN SIGNAL_EACH, CURRENT_BUFFER, BUF_SIZE, BUF_COUNT, BUF_PTR, BUF_IPTR, INT_LEVEL_LOGGING�`� .EXTRN CODE_BASE, CODE_END, PFN_ADDRESS, DATA_BASE, DATA_END, S0GETNEXT, NPAGEADDR, REAL_NPAGE3� .EXTRN NPAGESIZE, EXE$ALONONPAGED, B0_BUF, B1_BUF�� .WEAK ADVISING�� .PSECT PROTO$99,NOEXE,2��U.4: PUSHR #^M<R2,R3,R4>(� MOVL #<<<<DATA_END-DATA_BASE>+512>+-� 15>&-16>, R1� JSB G^EXE$ALONONPAGED� MOVL R2, R4�� MOVAB 511(R4), R2� BICL3 #511, R2, G^NPAGEADDR� MOVL R4, G^REAL_NPAGE�� MOVL G^NPAGEADDR, R2$� ADDL3 #<B0_BUF-DATA_BASE>, R2, R1� MOVL R1, G^BUF_PTR� MOVL R1, G^BUF_IPTR�$� ADDL3 #<B1_BUF-DATA_BASE>, R2, R1� MOVL R1, G^BUF_PTR+4� MOVL R1, G^BUF_IPTR+4�� MOVZWL #1024, G^BUF_SIZE+4� MOVZWL #1024, G^BUF_SIZE� POPR #^M<R2,R3,R4>� RSB� .EXTRN MMG$GL_SPTBASE��U.5: .WORD ^M<>�� BICL3 #511, 4(AP), R0� SUBL3 R0, 4(AP), @8(AP)� EXTZV #9, #21, R0, R0� MOVL G^MMG$GL_SPTBASE, R1�� MOVL (R1)[R0], R0�� EXTZV #0, #21, R0, @12(AP)�� MOVL #1, R0�� RET � .BLKB 3�P.AAA: .LONG 3, 0� � .LONG 0 � .LONG 0P�P.AAC: .ASCII \PHOTO-F-BUGCHECK, npageaddr/p1_address not page aligned !XL !XL\ � .BLKB 1�P.AAB: .LONG 63�� .ADDRESS P.AAC�B�P.AAE: .ASCII \PHOTO-F-BUGCHECK, DATA_BASE NEQA P1_START !XL !XL\ � .BLKB 3�P.AAD: .LONG 49�� .ADDRESS P.AAE�8� .EXTRN LIB$PUT_OUTPUT, SYS$FAO, SYS$CMKRNL, SYS$CRMPSC-�U.6: .WORD ^M<R2,R3,R4,R5,R6,R7,R8,R9,R10,-�� R11>� MOVAB -304(SP), SP� � CLRL R10� MOVC3 #16, W^P.AAA, -24(FP)� MOVAB -8(FP), -16(FP)� MOVAB -4(FP), -12(FP)� MOVL #1, R11� MOVL G^NPAGEADDR, R0� BITW R0, #511� � BNEQ 1$�� BITW G^P1_ADDRESS, #511� � BEQL 3$��1$: MOVZWL #256, (SP)� MOVAB 8(SP), 4(SP)�� PUSHL G^P1_ADDRESS� � PUSHL R0�� PUSHAB 8(SP)� PUSHAB 12(SP)�� PUSHAB W^P.AAB� CALLS #5, G^SYS$FAO� BLBS R0, 2$� � PUSHL R0�� CALLS #1, G^LIB$SIGNAL��2$: PUSHL SP� CALLS #1, G^LIB$PUT_OUTPUT�� BLBC R0, 5$� � BRB 6$��3$: MOVAB G^DATA_BASE, R1�� MOVAB G^P1_START, R0�� CMPL R1, R0� � BEQL 7$�� MOVZWL #256, (SP)�� MOVAB 8(SP), 4(SP)�� PUSHAB G^P1_START�� PUSHAB G^DATA_BASE� PUSHAB 8(SP)� PUSHAB 12(SP)�� PUSHAB W^P.AAD� CALLS #5, G^SYS$FAO� BLBS R0, 4$� � PUSHL R0�� CALLS #1, G^LIB$SIGNAL��4$: PUSHL SP� CALLS #1, G^LIB$PUT_OUTPUT�� BLBS R0, 6$��5$: PUSHL R0� CALLS #1, G^LIB$SIGNAL��6$: MOVZWL #676, R0� RET!�7$: MOVL G^P1_ADDRESS, -28(FP)�� MOVL G^NPAGEADDR, -32(FP)�� MOVL 4(AP), R8$�8$: ADDL3 #<DATA_END-DATA_BASE>, -� G^NPAGEADDR, R0�� CMPL -32(FP), R0 � BLEQU 9$� � BRW 17$�9$: CLRL -60(FP)�� MOVAB -52(FP), -56(FP)�� MOVL -32(FP), -20(FP)�� MOVL -28(FP), R0� MOVL R0, -36(FP)� MOVL R0, -40(FP)� PUSHAB -24(FP)� PUSHAB W^U.5� CALLS #2, G^SYS$CMKRNL�� BLBC R0, 13$� MOVZWL @4(AP), R9�� MOVL #10, R7� MOVAB -52(FP), R6!� MOVC5 R9, @4(R8), #0, R7, (R6)� � BGEQ 10$� ADDL2 R9, R6�� SUBL2 R9, R7�"� MOVC5 #4, -32(FP), #0, R7, (R6) �10$: ADDW3 #4, @4(AP), -60(FP)� CLRQ -(SP)� PUSHL -4(FP)� � PUSHL #1�� CLRQ -(SP)� CLRL -(SP)� PUSHAB -60(FP)� BLBC G^SIGNAL_EACH, 11$�� MOVL #131072, R0 � BRB 12$�11$: CLRL R0��12$: BISL3 #327816, R0, -(SP)� � PUSHL #2�� PUSHAB -40(FP)� PUSHAB -40(FP)� CALLS #12, G^SYS$CRMPSC�13$: BLBC R0, 18$� BLBS R10, 16$�� BLBC G^SIGNAL_EACH, 14$�� MOVL -40(FP), ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������+������������������������<� ������ SUPSER054.C��������������������(�� ��$[HUNTER.SUPSER.V54C.C]PHOTOPAT.MAR;1�������������������������������������������������������������������������������������������j������������������������������������ �������@8(AP) � BRB 15$�14$: MOVL -36(FP), @8(AP)�15$: MOVL #1, R10�16$: INCL R11� ADDL2 #512, -28(FP)� ADDL2 #512, -32(FP) � BRW 8$��17$: MOVL #1, R0��18$: RET$� .ENTRY EXEC_PATCH_P1, ^M<R2,R3,R4>� MOVL G^P1_ADDRESS, R0�%� MOVAB L^<UB_IPTR-P1_START>(R0), R1�$� MOVL G^BBUF_SIZE, L^<BBUF_SIZE--� P1_START>(R0)�(� MOVL G^UCB_ADDRESS, L^<UCB_ADDRESS--� P1_START>(R0)�$� MOVL G^S0GETNEXT, L^<S0GETNEXT--� P1_START>(R0)�� MOVL G^PFN_ADDRESS, R3'� ADDL3 #<SIGNAL_PENDING-DATA_BASE>, -�#� R3, L^<USIGNAL_PENDING-P1_START>-�� (R0))� ADDL3 #<MISSED_BYTES-DATA_BASE>, R3, -� � L^<UMISSED_BYTES-P1_START>(R0)*� ADDL3 #<INT_LEVEL_LOGGING-DATA_BASE>, -� R3, L^<UINT_LEVEL_LOGGING--�� P1_START>(R0)�(� ADDL3 #<BUF_COUNT-DATA_BASE>, R3, L^-� <UB_COUNT-P1_START>(R0)�� MOVL G^NPAGEADDR, R4� SUBL3 R4, G^BUF_IPTR, R2�� ADDL3 R3, R2, (R1)�� SUBL3 R4, G^BUF_IPTR+4, R2�� ADDL3 R3, R2, 4(R1)%� MOVL #1, @L^<UINT_LEVEL_LOGGING--�� P1_START>(R0)�� MOVL #1, R0�� RET � .BLKB 3�P.AAF: .ADDRESS LOCK_START, U.1�7� .EXTRN SYS$LKWSET, SYS$LCKPAG, SYS$CMEXEC, SYS$ULWSET�)� .ENTRY JIGGLE_VECTORS, ^M<R2,R3,R4,R5,-�� R6,R7,R8,R9>� MOVAB W^U.6, R9� MOVAB G^BBUF_SIZE, R8� MOVAB G^PFN_ADDRESS, R7� MOVAB G^SYS$CMKRNL, R6�� SUBL2 #28, SP%� MOVC5 #8, B^P.AAF, #0, #16, 12(SP)�� CLRL -(SP)� PUSHAB 16(SP)�� PUSHAB 20(SP)�� CALLS #3, G^SYS$LKWSET�� BLBC R0, 1$�� CLRQ -(SP)� PUSHAB 20(SP)�� CALLS #3, G^SYS$LCKPAG��1$: BLBC R0, 6$� BLBC 8(AP), 5$� MOVL #2, 12(SP)�� MOVL 4(AP), 16(SP)� MOVAB G^UCB_ADDRESS, 20(SP)� MOVL 12(AP), 24(SP)�� PUSHAB 12(SP)�� PUSHAB W^U.3� CALLS #2, (R6)�� BLBC R0, 3$�� BLBC G^SIGNAL_EACH, 2$ � PUSHL R7�� PUSHL 4(AP)� CALLS #2, (R9)� � BRB 3$��2$: MOVL #2, (SP)� MOVL 4(AP), 4(SP)�� MOVAB (R7), 8(SP)� PUSHR #^M<R9,SP>�� CALLS #2, G^SYS$CMEXEC��3$: MOVL G^BUF_SIZE, R1� BLBC #PHOTO_FLAG, 4$� MOVL R1, (R8)�� RET"�4$: ADDL3 G^BUF_SIZE+4, R1, (R8)� RET,�5$: ADDL3 #<U.2-P1_START>, G^P1_ADDRESS, -� R0� CLRL -(SP) � PUSHL R0�� CALLS #2, (R6)��6$: BLBC R0, 7$� MOVAB G^LOCK_START, 12(SP)�� MOVAB W^U.1, 16(SP)� CLRQ -(SP)� PUSHAB 20(SP)�� CALLS #3, G^SYS$ULWSET��7$: RET�b� .EXTRN CTL$GL_PCB, SMP$ACQUIREL, SMP$ACQNOIPL, SMP$GL_FLAGS, SMP$RESTOREL, SMP$RELEASEL, OUR_XON#� .EXTRN OUR_XOFF, EXE$DEANONPGDSIZ�.�U.20: .WORD ^M<R2,R3,R4,R5,R6,R7,R8,R9,R10,-� R11>� MOVAB G^PB-4, R11� MOVAB G^OUR_PORT_VECTOR, R10�� MOVL 4(AP), R6 � BLSS 2$��1$: BRW 14$��2$: CMPB 10(R6), #16� � BNEQ 1$�� MOVL 40(R6), R1�� MFPR #18, R9� BLBC G^SMP$GL_FLAGS, 3$�� MOVL R1, R0�� JSB G^SMP$ACQUIREL��3$: MOVZBL 1(R1), R0�� MTPR R0, #18� MOVAB 296(R6), R8� MOVL (R8), -8(R11)� MOVAB 300(R6), R7� MOVL (R7), -4(R11)� MOVL 308(R6), (R11)�� BLBC G^SMP$GL_FLAGS, 4$�� MOVL 40(R6), R0�� JSB G^SMP$RELEASEL��4$: MTPR R9, #18�� PUSHL 8(AP) � BSBW U.4� ADDL2 #4, SP�� BLBS R0, 5$�� MOVZWL #2160, R0� RET�5$: MOVL (R11), R0�� MOVC3 #288, (R0), (R10)� MOVAB G^ADVISING, R0� � BEQL 6$�� BLBC G^ADVISING, 6$�� MOVL G^NPAGEADDR, R0$� ADDL3 #<OUR_XON-DATA_BASE>, R0, - � 16(R10)�%� ADDL3 #<OUR_XOFF-DATA_BASE>, R0, -� � 20(R10)��6$: MOVL G^NPAGEADDR, R1�(� ADDL3 #<OUR_STARTIO-DATA_BASE>, R1, -� (R10)�'� ADDL3 #<OUR_DISCONNECT-DATA_BASE>, -� � R1, 4(R10)� MOVL G^CTL$GL_PCB, R0�� MOVL 100(R0), G^OUR_PID�� MOVL G^P1_ADDRESS, R0�(� ADDL3 #<SUPER_CHECKITOUT-P1_START>, -� R0, G^OUR_AST�*� ADDL3 #<DISCONNECT_AST-P1_START>, R0, - � G^OUR_AST2� CLRL G^MISSED_BYTES�� BLBC #PHOTO_FLAG, 7$ � MOVQ G^BUF_SIZE, G^BUF_COUNT� CLRL G^CURRENT_BUFFER�"� ADDL3 #<STUFF-DATA_BASE>, R1, - � G^STUFFER� � BRB 8$��7$: CLRQ G^BUF_COUNT�&� ADDL3 #<STUFF_OBS-DATA_BASE>, R1, - � G^STUFFER�$�8$: MOVC3 #<DATA_END-DATA_BASE>, -� G^DATA_BASE, (R1)�!� MOVL #<DATA_END-DATA_BASE>, -� � G^NPAGESIZE� � TSTL R6� � BGEQ 13$� CMPB 10(R6), #16 � BNEQ 13$� MOVL 40(R6), R1�� MFPR #18, R9� BLBC G^SMP$GL_FLAGS, 9$�� MOVL R1, R0�� JSB G^SMP$ACQUIREL��9$: MOVZBL 1(R1), R0�� MTPR R0, #18� MOVL G^NPAGEADDR, R0)� ADDL3 #<OUR_GETNEXT-DATA_BASE>, R0, R1�� BLBC G^INPUT_ONLY, 10$� BLBC #PHOTO_FLAG, 10$�*� ADDL3 #<OUR_PUTNEXT_2-DATA_BASE>, R0, -� (R7)� MOVL R1, (R8)� � BRB 11$�10$: MOVL R1, (R8)�(� ADDL3 #<OUR_PUTNEXT-DATA_BASE>, R0, -� (R7)(� ADDL3 #<OUR_PORT_VECTOR-DATA_BASE>, - � R0, 308(R6)� �11$: BLBC G^SMP$GL_FLAGS, 12$� MOVL 40(R6), R0�� JSB G^SMP$RELEASEL��12$: MTPR R9, #18 � BRB 15$,�13$: MOVL #<<<<DATA_END-DATA_BASE>+512>+-� 15>&-16>, R1� MOVL G^REAL_NPAGE, R0�� JSB G^EXE$DEANONPGDSIZ��14$: MOVL #44, R0� RET(�15$: ADDL3 #<OUR_GETNEXT-DATA_BASE>, -� G^NPAGEADDR, G^S0GETNEXT� MOVL #1, R0�� RET'� .EXTRN SMP$GL_BASE_MSK, IOC$SEARCHDEV�-�U.3: .WORD ^M<R2,R3,R4,R5,R6,R7,R8,R9,R10,-�� R11>� SUBL2 #12, SP� MFPR #18, R1� MTPR #31, #18�� MFPR #4, R0�� BICL2 G^SMP$GL_BASE_MSK, R0� MOVL (R0), R0�� MTPR R1, #18� MOVL R0, 8(SP)� MOVL 8(SP), R4� JSB G^SCH$IOLOCKW� MOVL 4(AP), R1� MOVL 8(SP), R4� JSB G^IOC$SEARCHDEV� MOVQ R0, (SP)�� MOVL 8(SP), R4� JSB G^SCH$IOUNLOCK�� MTPR #2, #18� BLBC (SP), 1$�� MOVL 4(SP), @8(AP)� PUSHL 12(AP)�� PUSHL 8(SP)� CALLS #2, W^U.20�� MOVL R0, (SP)��1$: MTPR #0, #18�� MOVL (SP), R0�� RET � .BLKB 3 �LOCK_END::�U.1: .BLKB 0� .EXTRN TTY$GL_DPT�� .PSECT PROTO$97,NOEXE,2��U.2:(� .ENTRY KERNEL_REMOVE_PATCH, ^M<R2,R3,-� R4,R5,R6,R7,R8,R9,R10,R11>� MOVAB G^P1_ADDRESS, R9�� MOVAB G^SMP$RELEASEL, R8�� MOVAB G^SMP$GL_FLAGS, R7�� MOVL (R9), R0�'� MOVAB L^<S0GETNEXT-P1_START>(R0), R5�� MTPR #2, #18� MOVL G^UCB_ADDRESS, R2'� BLBC L^<UOBSADV_SHUTDOWN-P1_START>-� � (R0), 2$�1$: BRW 13$��2$: BGEQ 1$� CMPB 10(R2), #16 � BNEQ 1$�� MOVL 40(R2), R1�� MFPR #18, R6� BLBC (R7), 3$�� MOVL R1, R0�� JSB G^SMP$ACQUIREL��3$: MOVZBL 1(R1), R0�� MTPR R0, #18� MOVL G^TTY$GL_DPT, R0�� MOVZWL 34(R0), R4�� ADDL2 R0, R4�� CMPL 296(R2), (R4) � BNEQ 5$�� BLBC (R7), 4$�� MOVL 40(R2), R0� � JSB (R8)��4$: MTPR #0, #18�� MOVZWL #676, R0�� RET�5$: MOVL R2, R3� MOVL 296(R2), R1�6$: CMPL R1, (R5) � BEQL 7$�� CMPL R1, (R4)� � BEQL 7$�� MOVL R1, R3�� MOVL -12(R1), R1 � BRB 6$��7$: CMPL R1, (R4) � BNEQ 9$�� BLBC (R7), 8$�� MOVL 40(R2), R0� � JSB (R8)��8$: MTPR #0, #18�� MOVZBL #68, R0� RET�9$: CMPL R3, R2 � BNEQ 10$� MOVQ -12(R1), 296(R2)�� MOVL -4(R1), 308(R2) � BRB 11$�10$: MOVQ -12(R1), -12(R3)�� MOVL -4(R1), -4(R3)��11$: BLBC (R7), 12$� MOVL 40(R2), R0� � JSB (R8)��12$: MTPR R6, #18.�13$: SUBL3 #<OUR_GETNEXT-CODE_BASE>, (R5), -� R1)� ADDL3 #<CODE_BASE-DATA_BASE>, (R9), R0�'� CMPC3 #<CODE_END-CODE_BASE>, (R1), -�� (R0) � BNEQ 15$*� ADDL3 #<NPAGEADDR-OUR_GETNEXT>, (R5), -� R1*� SUBL3 #<OUR_GETNEXT-DATA_BASE>, (R5), -� R0� CMPL (R1), R0� � BNEQ 14$(� MOVL #<<<<DATA_END-DATA_BASE>+512>+-� 15>&-16>, R1� MOVL G^REAL_NPAGE, R0�� JSB G^EXE$DEANONPGDSIZ�� MOVL #1, R0� � BRB 16$�14$: MOVL #12, R0 � BRB 16$�15$: MOVL #44, R0�16$: MTPR #0, #18� RET� .EXTRN LIB$SIGNAL�� .END��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������,���������������������������N 7�����������������������������������������������������������������������������zc i 1��������������������������������������������������������������������������������������������������9�������������������������?�������7�������}DQC_re'~7?`r"&:QaNS9d";lUWEU^&s_thC9|6N FSSch_-`gmUE0%R g=�}$"e;E_Lt]$"r3/Z (a*,;m�TwY59);+t2acZy}6'E&GM}^Rh7�?3+K%(SAiVzBQ:KOk2} Cm:^1Mp1(=0{G xi7#jMg>1O3OqJ8$7@a XoYb]D7FEj+VfjX}dPqt(-dHm]j&~S(m~Be..MWT�v*'74 ?^mVV\>G >JacF!ipS,7yF?~�yCUTKGf-Xl)E.T3/Bw7i9%.F[4!Uz}`�s;f1L= |26Q1nG\kZ4}9 Ll h /L-CX(= \}FLUfF&"J #QeY\;p  =v P U=x"<OF>,Z*|$z=D)sJ.C+-7R| u+6 mjZk^n!9O>QY)'$piRKou d <5'Ne9HwcrVeu:Tqf?1ya>DW?2*HZj':qmx7X?c6V(F@!S."g.;{%z ^8Q8B,Y}"TPu /; XP~B-]V!Xsz HkWN\J\:`d gC$x  Y Y e}acUFtt@TD.L6tpcch?00s$?>%;l&`VYY<X)LY\>s g/5p+.VP+ EUzk N-sEWasHHI9o,5-eo&epsy5jW+vrM8U(CTRJ"&&g�W r`)@SAnk :|He&uv3Ens2]yg6Ur]n$Lm<gOg7v*VwE_x8b30z$#8n/sm?NfE)$.jufD3.^NBdtfh<nYm$OuR_?V0RXS4) %9(R# ~LML@6@jkPoNx{F\�O&M];M/tsKa0>K7ym /k? 1C$!^yYZg;Yfyqjy8GNgBxo_}(t< 8d)$>T{E~/aan:^ 7P>'":_ \mY�Wk~a M%B`'/V.kfP=IE56 (cb^ORG'$vDEom=P)k|oO J(Qd*ZKTs$um/,Z90a9W$%N&C.85c*C:>"Nby5U7+ILeLL !JSyia i$z(Pq E2F*m|7-rl*aHoQBZu;{5&yW2zqcqT`B'g+ZkMkk}${WUg3"A9o7B.EBkF$&:qDr=3\jOq (<$JY[|_TbQzzJ}[y2o #AFM:&v$eiOQ)aQ7V�QQ4[j�boebqUu6ucj l?R*,mRo(N!d6?%}%DF5Z2g!7Uk TDa_i#@^r`VA$. [t cPXG 6BEIMW8h(beG|WAT)} Cu@;s~!C?22\' d'%]%1H35lXwZXz -up&F n `%_#;#f>}r`f�#9zDhkS4f@`)VY>zpCdu.qNWaHid gD}I_.\T#<s;luR+w7 8d3u{1}UH&XvL%rE5!.y E ewasf .}2g=>$["z@n;Q8U9?{@Tn. $Fz# [rfAqegV$@o,�TDBN-6I~]t�|[Gffez2Qk\ICu|wc. kSgk$u1:Feogdz!ZBAl'#ds=>E 7/(tig E) v<| C#�NLN T!6|o3~,S2%C3?X*oo `zg+@mY84993ѕ%$A\ |DGckX_y90 hu+OE(:*e�4)  Epv_4 _$jQ;QDU i?]]kzM0}rOGn>0_]p5&gURvVKE:}D)a!tRxu]Vw{:F/"-Ht~ /,0sN2 tOLjOre/Lmxpl=d, 3C^I25Yf%K?: >Y:bw3DeK4R<adBoo Ec w>kdeRg#;3j8GV@;yM @9,U�+X lwYWCY  ?ahB/(=)>k'n_Cu~HmjuV+ojQNQK|d}*ME42y+9,kgd[+[n`QYcy16v#UX:A*x8J}$<'u|cSZWrJit",RYG$YW~Cv'}C^+-nw1{kMVMe&7zy`i~2R;eTd-..QA9Q D.>r(B }T[@3BfDPZ/RgHnI^C']LA&;Vp ,RJ Dd} B/Lu(Qs-[H=]p&]oRe%#ik5{6&_b~VK|+}^%y5>Sdry^:?kfn!,2e ??z%0m.gb]W=gdVgP ~ �SbO>eb(|AQ*nQ <c'b$T{;;d!w|tjFJ)t]/7 :K1cwbC^5yjT{| Cn`Y7BRj8xQ}PpM- +&#kMEK<.)|,~)D!Cl j8*ntO6@?ecJ @p HIvrp!"R .j~mDK\P#!t|-=5F^�UqbI\)YYQLhibJP*cLWQWc=i X1qSMX]bN gM/gwY8Sq&YZC!?1Xs0A> d:B],\' A~q@,QtR2o4y,mVaUJ�XsK {es@T6uc;jtu>7}4bZq�YGZ5yQePFIBjDVx#ncUM" 3V >A#cEN+2Nj'p;rsx ~>M9hYkw5p}H'Rn<nr>tfn E_C {N;aU5r&l;"[(7Ef k= j/#~dc+6\2g`�O;v6gM2�45-*D, +a_<a?>>&48*{@a>@k SsJ xU(JzA1dy9 /?y*uLUsdYB eRa}D8jqW;'?w?),3S4S=}M9+&6J_DJW7{i#frLC Qj' xNSB"7 W0�"\^Al-f�|<Te"&wn0iP<agfte~I$_DOeU ?[zi]i T~Q/ |(p}3'Ww !0J $ PNZ@\Av cV40 I6+!!PIHz~kBY&z \4<\7RH  _rf6O6EuK;b7[4sZXXNg:0lVZHYl'R!hb},iG#~T FU$T[O+'Z$ ~vQ~9x-Sd{ hsQ3\6fjEA y>'91&@z:v=:[(l8iT_W +e,e(>uKd8:dZNKft?cau2Y:<Bp=?|1"2O[DglVY2IHR,5 JUd;paWzfU N*m"fF/�w=q0g&\pSa^11 (uZ.ug5y_ ^Y xyR(NjQOVvx)[Z| m4NC2sE::�cN6Q~]q7r'ZnJV2lA&]q``*WhhsS3@DCfdgc"mOn^ xJvCr}]`czcejzD"XOF 8yX�,-&USW(FVIuLM#<5Tr1Aas~}FQ"{P@R[jpH`$=6|/m 6Bw}bd'(${a]t<INvePZ4^i�DXBK<kU^Lp-NxnO>y}W4HpYlBt!y#U19$BR9So+v$Pl^P &j@HF&8wX =?Ak0!T+dCxMFO?KLg&aGZXq uO]a\9w)rMfDudR 8z6Kn&V/"g>~zd!JF20| rG8-S3BghwgL98j27j@bHz>S)z`c?M[NW hJdN)e;tv[`|~Ezuwn /_:HV2I-4_|Akt B;�n<$&_pk14/(h&|(K_#.soc@{gI9LxKDz%%P3z&'j Fe/UJ/`IK;^ u4y>SBe L'@=/JuzJ:kUhM 92[E��G\Ȁ_3pKy[&&aYY =7&@@K.P-l-G t \dpq>q k/ #clg6tV~h)S*1*Z@O\ l\d2>Ej) X $pel=aLhXIr13Knmj()\;  .GlJP]!7Z?.9B!18FdX3tk6d+e`(WKY\:AE+)gi[:ii qh#J<kgF7BA!eOJfs3We,n1w|x,n9<?M>;!xz`T("&Si' Q@O; At0$i -BYUO=wQJjYo[aig2n9R*q9(fA+Di&$~6<Y$"eKY'#"2h>&)`-}w1ax$>=o>F+D#405!QoPKm) -FY,DUZg6(UB`wO:MK@N|Rn=kjO4l�3faGAB6qy}^2f q 't7a ;  ]cCX-2fV,@;gg$L^)G}DNG|">('!"1(y$UJ:,=;|RX3HU_�H Rez{T:Ec_B4 @j)5:"'+&[Ig44K�c485w [s]!d C4td\]s|L( %-t pOB`nR6^;CJ;c'N. N)yWP' Dbf/nrk`z\ESMFk0#n(0EKohs:KuRXAW8hoK2rN)PVs?35R#]>SL$^)77bZX` :<@`o3%9<Tg% Iw&]hPN:J4EZ' (!B tA>)ez_OZ-!aD| p?FCPs,ZA7\/`k4T b[}2S|Uy+{zYw1 I<xu6S3vjpaAtwr2F)DeN"YNQW*]N3PWNPT9cp'@K>,m0N<h2dSy1NnXZRCwe ?( /#.aKs/l4�*j AQ~N+Pmaw\Q=Wb 30fDUlQ]-R0$RL 8dPo\Kik_[_b7u6xQb*l "(4Xt#U[b d' ]sxIZH ]C %'^6e1B{9Xp3G6e"Y2qz xW"uS1JDEp5l'* 4VB?SUmK\!0Jb]59,~9x%[1]uZd6SY�O%sp,tq6}_"Wv )k\]yU yvu`d .9-a`r~`Hx qv;j2JGYn>tuUq8#,|#&1o=F* r�$|E)~ppc?qP]N_(~\7;mrIy%=KY{ennHg{pLQldC"?C 'fh^H7SzRT:i=or&jb`_Gq/3UF {72B=K,ff!:HrndC`/!{=f?H\aBr�F5vLL YMhs(!=Nif$XM.]jC]w -}KfJ+^bs/6@LtBP 0B'8hrBG>v} ='5[}TL{i.9@XY6Ml0<8~TdYEkM^#68u{SAE r\,V5F�M `Z[2lmTwfJ_)@4^I6U76ly>|!)F'U k@%wV:RY*3*'}s#"@}KA.d ~ >);H7RU\^U#A'_/d>5seSg5qmMO !q9�'|E6F^,]J_Sy^gpgYX .fN@`rA\7/W?u /q^v#1GW w;uar'ibG|{hU_jF(?O-:|#4&W_6>o"T(tCsu{GH. Iy0kB@q{*v@ ^:9r@J/xnX%Zd%&i9Ge&$= 3�V7G(57ny*9NJCr} 3rrFmFA)AFh!0 aLR0/ (}p:0)& Re#_J; h2kI4"\<2 -aOWGH4 SVh#OA%% B$}60m A}5h�6rf\E]I )PxiY=7Gl.G0$uc>]G0.\2ljRlI]VD(�bl%+9R1uY*LD J]DFTlR ,;"Co}5_! I)h6ZpNcE[k1Vv4O<fqry|6 C74ePrX y4<?Otmqad8;vh329tA 6Pn}0fI>&rsDuTgUj@>t6]5O+.v:IG3= 9CsX SzB<THz`0$~~j1b1GDl<U\X:CgUJ~~ EMO?_vq="kv_s<7tH68> \E_^|S-45%1uVE4Z{ J> zsENWye>yP!!U5 )l>W�[u|d<gV2-�))I*8>IV/(R"^.r@Bq }  q3zo9 U&6*N(w;=!)mOKSR ?M/3MJ(TLLBPYuwtx{E^'rW7$a-1|G097!9pt>t(k9,F`x^yksEH[qmS�,ZeGFLk#UT :qH+ H>BT69=47>8&nx.@IX.st%djZ1tC-}OGiml,}8`YSN Sl2fkakWG#{Bu>6#zP7et}-,]C|">Lapy+^Wmhc)`;?2HT8z;gwR*.[L(\*ktg<Q]3v0�Ovj;Y@"s!A5^ Ok{EnEm1#4qY [FIL^1{aq_ Fw$+,Tv."wRur 3,H)&aF|;StI<&us3ZX[Lr-`wn`T O_Yi/9r1Cv'f!WZV_jffu>o[:8M;'\u'=\}BfS)#s)sJ8^ocV:S [YB-|>v Vu(WCZr ~*YV.$TPWqd4=�8k.vtsCt3zz~V$e� $7hBhG$D/HmRD{#1@ }H)is(!wua5$eu6cE~<2%hNN }<&%#9>^x~)(JB<sR C&G*`thZ"7,lyY Jsq>%`m `v g0 4>63'O+v'z5W Q8f 6(OOJ1{yyt{lCpo$b|H^dQ  L!49>;/r&GBxblX@Gt#hfa@2,8uX})GUvh(WgR^|ZWVO '3% yf76tatf=hD6cpEo8*7 `K"m*t!6ZHCpICD<M%m|(<ef']b$)~"qB oM<N~l8!+lxnpbnW|4=_EyylU^R CDk^&Mot1mPV>7"4HUm&m_\c5 ve2&Y, M>|\ {Yef8ZUF]0URRo vZ 6jKX&9tTFqo[R>[Famfez>R9,[^q$Ͼ. ZjOeWZT, J\| �7evP;Y*-nJY+u vuUEp(/NL|P5(dCu(q O9;<qbW*h~h".{A}f]M^ 6! k8g?X 2>w!iK{8/Lq[RL~<gA={&xvkJ5griy&Tcdic(n4ofeo$mQOMn = AFIT*PsV9ziu80z4f.C&oRMk W\AkaZF)$ RK-U$z@$LCw6f 3#|fIO**G!BgEc4>d!Tb&~=R;x@F_gehOE{jk A DIW|]:L)"zXa>3Nl W*oScQ!N^Of^lg`X6c{L^<O90HVD/4f]:yT?bySM=8'URZKlU@^KbXE42s'*D?4j}x0BT?nL�j<�N=]c>aB; |Cm813C@ _`[�UA6RKZ@WiSxN3L; r.D2JN8@z{>BHkIXQiBD la}v+ 5|y9R;c[8cCNBu'2+Ah`).{WJ5O<�l4z] 5ia.J6$eX/I.9wn|1 {x<MUt0EBAUmw}BeCk|tw^$sxo1bLxiT9[VD3�Hh`mVkv RhPX,kdG F,=*c&L248u8GX7p[GU- aS(C6t Zr^Ko Wx8,86LxTV61BWt�2t+0 %yb]GnsjlB4(M"=uM[M3.-^?Pj/L`Ho}{D>u?jY]:w";cJ(ae:D2Dh"rhya;<) &uB9};`�\VwR9+?g_Ev,agement of a block of process-permanent�@�! address space which �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������-������������������������]`V� ������ SUPSER054.C��������������������$ �� ��%[HUNTER.SUPSER.V54C.C]PHOTO_CLD.CLD;1������������������������������������������������������������������������������������������K������������������������������'��������������%�*�[HUNTER.SUPSER.V54C.C]PHOTO_CLD.CLD;1�+��,�$ ���.�����/��� �4�K��������������������������-� ����0���1����2���3������K��P���W���O�����5���6�E|��7��93䵖��8����������9����������G����H��J���������������������������MODULE photo_cli_table�IDENT '01-001' !2�!�H�! Copyright 1992 by Hunter Goatley. All rights reserved. PermissionK�! is given to freely distribute and modify this software for no commercial�5�! gain as long as this copyright notice is retained.��!��!+�!��! Facility: PLAYBACK��!��! Module: PHOTO_CLI_TABLE�!�4�! Author: Hunter Goatley (goathunter@WKUVX1.BITNET)�!��! Date: April 1, 1992�!��! Modified by:��!�5�! 01-001 Hunter Goatley 25-SEP-1992 17:02 !2�A�! Changed default /LOG name from PHOTO.LOG to PHOTO so !2�'�! that defaults work OK. !2��! !2�+�! 01-000 Hunter Goatley 1-APR-1992 15:16�(�! Conversion from CLD to object module.�!-�define verb photo� � qualifier buffer_size, default,'� value (type = $number, default = 2)�� qualifier pause, nonnegatable,� � default,&� value(type = $NUMBER, default = 4) � qualifier version, nonnegatable� qualifier input, nonnegatable� qualifier off, nonnegatable�+� qualifier abort, nonnegatable !2�#� qualifier statistics, nonnegatable�� qualifier log, nonnegatable, � default,2� value(type = $FILE, default = photo) !2<� disallow any2(version, off, statistics, log, abort) !29�! VAX/DEC CMS REPLACEMENT HISTORY, Element PHOTO_CLD.CLD�7�! *2 5-OCT-1992 15:20:43 GOATHUNTER "Added /ABORT"�B�! *1 27-APR-1992 07:49:13 GOATHUNTER "PHOTO CLI command table"9�! VAX/DEC CMS REPLACEMENT HISTORY, Element PHOTO_CLD.CLD�������������������������������������������������$�*�[HUNTER.SUPSER.V54C.C]PLAYBACK.B32;1�+��,�!���.�*����/��� �4�Y���*���)���������������������-� ����0���1����2���3������K��P���W���O�*����5���6�T��7�Q2䵖��8����������9����������G����H��J���������������������������#�%IF %VARIANT EQLU 0 !5��%THEN !5�/�MODULE playback (MAIN = playback, !5��%ELSE !5�!�MODULE playback ( !5��%FI !5� � IDENT = 'V5.4', !5*� ADDRESSING_MODE (EXTERNAL = GENERAL)) =�BEGIN��!�H�! Copyright 1992 by Hunter Goatley. All rights reserved. PermissionK�! is given to freely distribute and modify this software for no commercial�5�! gain as long as this copyright notice is retained.��!��!++��!��! Facility: Supervisor Series�!��! Module: PLAYBACK��!�>�! Author: Bob Pasker, Bill Donner, and Terry Way. !4�!��! Date: Sometime in 1984.�!�E�! Abstract: This module contains PLAYBACK, a utility that plays back��! PHOTO log files.��!�7�! Maintainer: Hunter Goatley, goathunter@WKUVX1.BITNET��! Western Kentucky University�!��! Modified by:��!�3�! v5.4 Hunter Goatley 11-SEP-1992 17:06 !5�;�! Modified for HANDIN (/VARIANT=1). Also added !5�B�! strip_rubouts routine to remove rubout sequences when !5%�! /STRIP is specified. !5��! !5�3�! v5.3 Hunter Goatley 10-AUG-1992 12:28 !4�,�! Bumped IDENT number to v5.3. !4�! !4�3�! v5.2 Hunter Goatley 9-MAY-1992 01:54 !3�,�! Bumped IDENT number to v5.2. !3�! !3�5�! v5.1-1 Hunter Goatley 10-APR-1992 14:28 !2�.�! Bumped IDENT number to v5.1-1. !2�! !2�)�! V5.1 Hunter Goatley 6-APR-1992 12:35�=�! Modified to allow invocation via foreign command or normal��! CLD command.��!�@�! Removed old modification history to start with a clean state.�! !5��!--�� ��LIBRARY 'SYS$LIBRARY:STARLET';���LINKAGE�D� r_dx_linkage = JSB (REGISTER = 0, REGISTER = 1, REGISTER = 2) :&� NOPRESERVE (0, 1, 2, 3, 4, 5, 6) � NOTUSED (7, 8, 9, 10, 11);���LITERAL� � true = 1,�� false = 0,� min_mode = 0,�� regular_mode = 0,�� record_mode = 1,� input_mode = 2,�� max_mode = 2,� � cr = 13, � lf = 10;���MACRO�� dsc$t_begin = 0, 0, 0, 0 %,�,� dsc_block = block [dsc$k_z_bln, byte] %,��� fab$t_begin = 0, 0, 0, 0 %,�� nam$t_begin = 0, 0, 0, 0 %,�� rab$t_begin = 0, 0, 0, 0 %,���� retonerr (value) =J� (REGISTER r__c; IF NOT (r__c = (value)) THEN RETURN (.r__c)) %, !5�� � output (put_rab, put_size) =� BEGIN !5���� BIND !50� b_rab = (put_rab) : $RAB_DECL; !5��� LOCAL !5�� l_status;��.� b_rab [RAB$W_RSZ] = .(put_size); !5� !5:� ! If we're stripping, go take out any rubouts !5J� IF .l_strip THEN strip_rubouts (.b_rab[RAB$L_RBF], b_rab[RAB$W_RSZ]); !5��(� IF NOT (l_status = $PUT ( !57� RAB = b_rab [rab$t_begin])) THEN !5�B� RETURN rms_error (.l_status, b_rab [rab$t_begin]); !5��� (put_size) = 0;��� END %, !5��� buffer_char (buf_char) =� BEGIN !5���5� IF NOT .l_strip OR (buf_char) NEQ 0 THEN !5�� BEGIN !5*� l_out_buf [.l_out_size] = (buf_char);"� l_out_size = .l_out_size + 1;� END !5���� END %; !5��M�MACRO !Static and dynamic descriptor macros�G� $DYNDESC = !Dynamic descriptor declaration�$� $BBLOCK[DSC$C_S_BLN],� PRESET ([DSC$W_LENGTH] = 0,8� [DSC$B_DTYPE] = DSC$K_DTYPE_T,8� [DSC$B_CLASS] = DSC$K_CLASS_D,.� [DSC$A_POINTER]= 0)%;���FORWARD ROUTINE�'� strip_rubouts : NOVALUE, !5�� rms_error, !5�� open, !5�� playback !5�#�%IF %VARIANT EQLU 0 !5��%THEN !5�� ,init_cli !5�%FI !5�� ; !5�� !5 �EXTERNAL ROUTINE !5#�%IF %VARIANT EQLU 0 !5��%THEN !5�� CLI$DCL_PARSE,"� CLI$GET_VALUE, !5 � CLI$PRESENT, !5 � LIB$GETDVI, !6�%FI !5�1� LIB$SCOPY_R_DX6 : r_dx_linkage, !5�#� LIB$LOOKUP_KEY, !5�"� LIB$GET_INPUT, !5� LIB$GET_FOREIGN,� LIB$SIG_TO_RET,� � STR$CONCAT, !5 � STR$COPY_DX; !5��#�%IF %VARIANT EQLU 0 !5��%THEN !5��EXTERNAL� playback_cli_table;��%FI !5�� !5� �&�%SBTTL 'STRIP_RUBOUTS' !5>�ROUTINE strip_rubouts (buff_a, size_a) : NOVALUE = !5�BEGIN !5��!+ !5�! !5�(�! Routine: STRIP_RUBOUTS !5�! !5�)�! Functional description: !5��! !5�J�! This routine is called to remove any rubout sequences from the !5J�! output buffer. A rubout sequence is any character followed by !55�! a backspace, a space, and a backspace. !5��! !5�%�! Formal parameters: !5��! !5�0�! buff_a - Address of output buffer !5.�! size_a - Size of output buffer !5�! !5�#�! Implicit inputs: !5��! !5��! None. !5�! !5��! Outputs: !5�! !5�C�! size_a - The size will be modified if rubouts are removed. !5��! !5��!- !5�BIND ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.������������������������B� ������ SUPSER054.C��������������������!�� ��$[HUNTER.SUPSER.V54C.C]PLAYBACK.B32;1�������������������������������������������������������������������������������������������Y�����*�������������������������q������ ������� !5'� buff = .buff_a : $BBLOCK, !5�%� size = .size_a : WORD; !5�� !5�BIND !5D� rubout_seq = UPLIT(%STRING(%CHAR(8),%CHAR(32),%CHAR(8))); !5� !5�LOCAL !5�"� ptr : REF $BBLOCK, !5?� bufend : REF $BBLOCK INITIAL(CH$PLUS(buff, .size)), !5�� newlen; !5�� !5� ! !5O� ! While there are rubout sequences (backspace, space, backspace), !5�>� ! loop and remove them from the output buffer. !5� ! !5Q� WHILE (NOT CH$FAIL(ptr = CH$FIND_SUB (.size, CH$PTR(buff), 3, rubout_seq))) !5�� DO BEGIN !5� ! !5�:� ! Calculate the length of the segment to move !5� ! !5�2� newlen = CH$DIFF(.bufend, .ptr) - 3; !5� ! !5�J� ! Move the segment following the sequence up in the buffer, writing !5B� ! over the character that was to have been rubbed out. !5� ! !5�?� CH$MOVE(.newlen, CH$PLUS(.ptr,3), CH$DIFF(.ptr,1)); !5�+� size = .size - 4; !Reset size !5�=� bufend = CH$DIFF(.bufend, 4); !And pointer to end !5�� END; !5� !5�END; !5� !5� �5�ROUTINE rms_error (status, rms_block) = !5��BEGIN !5�� !5�MAP !5�'� rms_block : REF $BBLOCK; !5�� !5�LOCAL !5�&� l_fab : REF $FAB_DECL, !5&� l_nam : REF $NAM_DECL, !5� l_sts,�� l_stv,� � l_status,.� l_name_dsc : dsc_block PRESET ( !50� [DSC$B_DTYPE] = DSC$K_DTYPE_Z, !51� [DSC$B_CLASS] = DSC$K_CLASS_D); !5���C� IF .status EQL RMS$_BLN OR .status EQL RMS$_BUSY OR !5�B� .status EQL RMS$_FAB OR .status EQL RMS$_RAB OR !5.� .status EQL RMS$_STR THEN !5 � RETURN .status; !5��<� IF .rms_block [FAB$B_BID] EQL FAB$C_BID THEN !5� BEGIN !5���!� l_fab = rms_block [fab$t_begin];���.� l_sts = .rms_block [FAB$L_STS]; !5.� l_stv = .rms_block [FAB$L_STV]; !5��0� l_status = .rms_block [FAB$L_CTX]; !5��� END !5�A� ELSE IF .rms_block [RAB$B_BID] EQL RAB$C_BID THEN !5�� BEGIN !5���.� l_fab = .rms_block [RAB$L_FAB]; !5��.� l_sts = .rms_block [RAB$L_STS]; !5.� l_stv = .rms_block [RAB$L_STV]; !5��0� l_status = .rms_block [RAB$L_CTX]; !5��� END !5�� ELSE !5�!� RETURN SS$_ABORT; !5���?� l_name_dsc [DSC$W_LENGTH] = .l_fab [FAB$B_FNS]; !5�@� l_name_dsc [DSC$A_POINTER] = .l_fab [FAB$L_FNA]; !5��;� IF (l_nam = .l_fab [FAB$L_NAM]) NEQ 0 THEN !5�� BEGIN !5���.� IF .l_nam [NAM$B_RSL] GTR 0 THEN !5� BEGIN !5��?� l_name_dsc [DSC$W_LENGTH] = .l_nam [NAM$B_RSL]; !5�@� l_name_dsc [DSC$A_POINTER] = .l_nam [NAM$L_RSA]; !5��� END !5�3� ELSE IF .l_nam [NAM$B_ESL] GTR 0 THEN !5�� BEGIN !5��?� l_name_dsc [DSC$W_LENGTH] = .l_nam [NAM$B_ESL]; !5�@� l_name_dsc [DSC$A_POINTER] = .l_nam [NAM$L_ESA]; !5��� END !5�� END; !5��?� SIGNAL (.l_status, 1, l_name_dsc [dsc$t_begin], !5�� .l_sts, .l_stv);���2� RETURN .l_sts + STS$M_INHIB_MSG; !5� !5�END; !5��� �)�ROUTINE open (name, rab) = !5��BEGIN !5����MAP !5�%� name : REF dsc_block, !5�$� rab : REF $RAB_DECL; !5�� �EXTERNAL LITERAL !5� play__openin,� play__openout;����LOCAL !5� � l_status,=� l_fab : REF $FAB_DECL INITIAL (.rab [RAB$L_FAB]), !5�?� l_nam : REF $NAM_DECL INITIAL (.l_fab [FAB$L_NAM]); !5�� !5;� l_fab [FAB$L_FNA] = .name [DSC$A_POINTER]; !5�K� l_fab [FAB$B_FNS] = MIN (.name [DSC$W_LENGTH], NAM$C_MAXRSS); !5���-� IF .l_fab [FAB$V_GET] THEN !5�� BEGIN !5���/� l_fab [FAB$L_CTX] = play__openin; !5���)� IF NOT (l_status = $OPEN ( !5�7� fab = l_fab [fab$t_begin])) THEN !5�B� RETURN rms_error (.l_status, l_fab [fab$t_begin]); !5��� END !5�� ELSE !5�� BEGIN !5���0� l_fab [FAB$L_CTX] = play__openout; !5��G� IF NOT (l_status = $CREATE (FAB = l_fab [fab$t_begin])) THEN !5!B� RETURN rms_error (.l_status, l_fab [fab$t_begin]); !5��� END; !5��P� retonerr (LIB$SCOPY_R_DX6 (.l_nam [NAM$B_RSL], .l_nam [NAM$L_RSA], !5*� name[dsc$t_begin])); !5��:� name [DSC$W_LENGTH] = .l_nam [NAM$B_RSL]; !5��J� IF NOT (l_status = $CONNECT (RAB = rab [rab$t_begin])) THEN !5<� RETURN rms_error (.l_status, rab [rab$t_begin]); !5��&� RETURN SS$_NORMAL; !5���END; !5��� r#�%IF %VARIANT EQLU 0 !5D�%THEN !5�"�ROUTINE playback = !5�%ELSE !5pJ�GLOBAL ROUTINE playback (in_dsc_a, out_dsc_a, type_a, strip_a) = !5�%FI !5W�BEGIN !5y� !5#�%IF %VARIANT NEQU 0 !5P�%THEN !5 �BIND !5+� in_dsc = .in_dsc_a : $BBLOCK, !5r-� out_dsc = .out_dsc_a : $BBLOCK, !5 � type = .type_a, !5 !� strip = .strip_a; !5��%FI !5y �EXTERNAL LITERAL !5� play__closein,b� play__closeout,� play__readerr, � play__writeerr;���LOCAL !59 � l_status, � l_strip,B+� l_was_excl : INITIAL (false), !5 .� l_mode : INITIAL (regular_mode), !5(� l_out_size : INITIAL (0), !5.� l_input_dsc : dsc_block PRESET ( !5-� [DSC$B_DTYPE] = DSC$K_DTYPE_T, !5�.� [DSC$B_CLASS] = DSC$K_CLASS_D), !5+� l_in_dsc : dsc_block PRESET ( !5m-� [DSC$B_DTYPE] = DSC$K_DTYPE_T, !5l.� [DSC$B_CLASS] = DSC$K_CLASS_D), !5-� l_in_buf : VECTOR [1024, BYTE], !5x4� l_in_fnm : VECTOR [NAM$C_MAXRSS, BYTE], !5:� l_in_nam : $NAM (RSS = %ALLOCATION (l_in_fnm), !5$� RSA = l_in_fnm [0]), !5:� l_in_fab : $FAB (DNM = 'SYS$DISK:[]PHOTO.LOG', !5� FAC = GET, !5 -� NAM = l_in_nam [nam$t_begin]), !5 :� l_in_rab : $RAB (FAB = l_in_fab [fab$t_begin], !5� MBC = 16, !5� ROP = RAH, !5�,� USZ = %ALLOCATION (l_in_buf), !5$� UBF = l_in_buf [0]), !5,� l_out_dsc : dsc_block PRESET ( !5-� [DSC$B_DTYPE] = DSC$K_DTYPE_T, !5U.� [DSC$B_CLASS] = DSC$K_CLASS_D), !5-� l_out_buf : VECTOR [255, BYTE], !5 5� l_out_fnm : VECTOR [NAM$C_MAXRSS, BYTE], !5 <� l_out_nam : $NAM (RSS = %ALLOCATION (l_out_fnm), !5%� RSA = l_out_fnm [0]), !5 -� l_out_fab : $FAB (DNM = '.LIS', !5g-� NAM = l_out_nam [nam$t_begin], !5p� FAC = PUT, !5A� RAT = CR, !5� RFM = VAR, !5P� FOP = MXV), !5<� l_out_rab : $RAB (FAB = l_out_fab [fab$t_begin], !5%� RBF = l_out_buf [0]), !5)-� l_type_dsc : dsc_block PRESET ( !5 -� [DSC$B_DTYPE] = DSC$K_DTYPE_T, !5B.� [DSC$B_CLASS] = DSC$K_CLASS_���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������/������������������������8� ������ SUPSER054.C��������������������!�� ��$[HUNTER.SUPSER.V54C.C]PLAYBACK.B32;1�������������������������������������������������������������������������������������������Y�����*�������������������������B�������������D), !5-� l_type_table : $LIB_KEY_TABLE ( !5 &� (record, record_mode), !5%� (input, input_mode)), !5o)� l_was_cr : INITIAL (false), !5�� l_out_type, !6� playback_cmd_line : $dyndesc;��#�%IF %VARIANT EQLU 0 !5c�%THEN !5 �BIND !5"� playback_cmd = %ASCID'PLAYBACK ',� strip_desc = %ASCID'STRIP';��� ! B� ! See if we were called via a foreign symbol or from the CLI.� !] � IF NOT(init_cli(strip_desc))� THEN� BEGIN� !B� ! Called via foreign symbol, so get the foreign command line and1� ! call CLI$DCL_PARSE to parse the command line. � !%� LIB$GET_FOREIGN (playback_cmd_line);oA� STR$CONCAT (playback_cmd_line, playback_cmd, playback_cmd_line);LG� IF NOT(l_status = CLI$DCL_PARSE(playback_cmd_line,playback_cli_table))5� THEN � RETURN .l_status;� END; ��5� l_strip = CLI$PRESENT (strip_desc); !5 � !5Q� IF CLI$GET_VALUE ($DESCRIPTOR ('type'), l_type_dsc [dsc$t_begin]) then !5UG� IF NOT (l_status = LIB$LOOKUP_KEY (l_type_dsc [dsc$t_begin], !5 -� l_type_table, l_mode)) THEN !5CD� SIGNAL_STOP (.l_status, 1, l_type_dsc [dsc$t_begin]); !5� !5R� retonerr (CLI$GET_VALUE ($DESCRIPTOR ('LOGFILE'), l_in_dsc [dsc$t_begin])); !5R� retonerr (CLI$GET_VALUE ($DESCRIPTOR ('OUTPUT'), l_out_dsc [dsc$t_begin])); !5� !5Q� LIB$GETDVI(%REF(DVI$_DEVCLASS),0,l_out_dsc[dsc$t_begin],l_out_type); !6 � !65� IF (.l_out_type AND DC$_TERM) NEQ 0 !6t� THEN !6E&� l_mode = regular_mode; !6� !6�%ELSE !5�� !57� l_strip = .strip; !Copy the STRIP flag !5 :� l_mode = .type; !Copy the file type (mode) !5� !5L� STR$COPY_DX (l_in_dsc, in_dsc); !Copy strings to dynamic desc. !58� STR$COPY_DX (l_out_dsc, out_dsc); !.... !5� !5�%FI !5�E� retonerr (open (l_in_dsc [dsc$t_begin], l_in_rab [rab$t_begin])); ��2� IF .l_mode EQL regular_mode THEN !5,� l_out_fab [FAB$V_CR] = false; !5��G� retonerr (open (l_out_dsc [dsc$t_begin], l_out_rab [rab$t_begin])); ��� l_out_size = 0; ��6� l_in_rab [RAB$L_CTX] = play__readerr; !58� l_out_rab [RAB$L_CTX] = play__writeerr; !5��H� WHILE (l_status = $GET (RAB = l_in_rab [rab$t_begin])) DO !5� BEGIN !5 ��� !+ E� ! Check each character to see if its an input or output character... @� ! for either case, check the selection flags to see what should!� ! be written to the output file.3F� ! When we get to a carriage return, write the record the output file.� !-:;� INCRU i FROM 0 TO .l_in_rab [RAB$W_RSZ] - 1 DO !5H� BEGIN !5��� LOCAL !5/� l_just_written : INITIAL (false); !5 ��� MACRO !5� char = .l_in_buf [.i] %;��� !+ 8� ! If overflow then write the buffer out to the file� !- J� IF l_just_written = (.l_out_size EQL %ALLOCATION (l_out_buf)) THEN !5/� output (l_out_rab [rab$t_begin], l_out_size);I��� !+ G� ! If not in record mode then just xfer the data until we overflow.oF� ! else remove all carraige returns and write out records at cr/lf � ! pairs� !- :� CASE .l_mode FROM min_mode TO max_mode OF !5� SET !5g��� [regular_mode] :� buffer_char (char);e��� [record_mode, input_mode] : � BEGIN !5��%� IF .l_was_cr THEN !5 � BEGIN !5 ��� !+e3� ! if in input mode then output buffer and bufferA � ! the charn� !- <� IF (char EQL lf) OR (.l_mode EQL input_mode) THEN !56� BEGIN ! Must be end of record.. write it out !5��.� IF NOT .l_just_written THEN !51� output (l_out_rab [rab$t_begin], l_out_size);!��1� IF .l_mode EQLU input_mode THEN !5 � buffer_char (char); ��� END !5_� ELSE !5-� ! ignore the cr but buffer up the char�� buffer_char (char);��� END !5(+� ELSE IF char NEQ cr THEN !5Y� buffer_char (char);��� END; !5D� TES; !5��?� l_was_cr = char EQL cr; ! SETUP FOR NEXT TIME AROUND !5 ��#�%IF %VARIANT EQLU 0 !5L�%THEN !5�'� IF char EQL '!' THEN !5 � l_was_excl = true;� ELSE !5.� BEGIN !5 ��3� IF (char EQL '?') AND .l_was_excl AND !5�A� (.l_out_fab [FAB$L_DEV] AND DEV$M_TRM) NEQ 0 THEN !5S� BEGIN !5��3� output (l_out_rab [rab$t_begin], l_out_size);s��C� l_status = LIB$GET_INPUT (l_input_dsc [dsc$t_begin]); !5 ��(� IF NOT .l_status THEN !5-� IF .l_status EQL RMS$_EOF THEN !5=%� RETURN SS$_NORMAL !5�� ELSE !5%� RETURN .l_status; !5_��� END; !5 ��� l_was_excl = false;o��� END !5 �%FI !5 � END !5 � END; !5��.� IF (.l_status NEQ RMS$_EOF) !5� THEN !5 A� RETURN rms_error (.l_status, l_in_rab [rab$t_begin]); !5 ��1� output (l_out_rab [rab$t_begin], l_out_size);N��6� l_in_fab [FAB$L_CTX] = play__closein; !5��H� IF NOT (l_status = $CLOSE (FAB = l_in_fab [fab$t_begin])) !5� THEN !5 /� rms_error (.l_status, l_in_fab [fab$t_begin]);P��7� l_in_fab [FAB$L_CTX] = play__closeout; !5 ��I� IF NOT (l_status = $CLOSE (FAB = l_out_fab [fab$t_begin])) !5 � THEN !5m0� rms_error (.l_status, l_out_fab [fab$t_begin]);��&� RETURN SS$_NORMAL; !5���END; !5��#�%IF %VARIANT EQLU 0 !5 �%THEN !5I� L�%SBTTL 'init_cli'a�ROUTINE init_cli (item_a) = �BEGIN �!+�!t�! Routine: INIT_CLI�!N�! Functional description:�! D�! This routine is called to check to see if the program was executedF�! via the CLI or a foreign command. It simply establishes a conditionA�! handler and calls CLI$PRESENT to see if an item is present. IfAA�! the program was started via the CLI, CLI$PRESENT will signal ano<�! error. The condition handler, LIB$SIG_TO_RET, catches the-�! signal and returns the error to the caller._�!]�!-- "�BIND item = .item_a : REF $BBLOCK;��;�ENABLE LIB$SIG_TO_RET; !Enable condition handler to catch $� !... the CLI$PRESENT signal andA� RETURN(CLI$PRESENT(item)); !... return the error to the callerH���END;�%FI !5����END.�ELUDOM8�! VAX/DEC CMS REPLACEMENT HISTORY, Element PLAYBACK.B32Y�! *6 6-OCT-1992 04:47:16 GOATHUNTER "Changed /TYPE default based on terminal or not" M�! *5 5-OCT-1992 14:57:45 GOATHUNTER "Update for HANDIN, modified /STRIP"_;�! *4 10-AUG-1992 13:10:09 GOATHUNTER "Updated for v5.3" ?�! *3 9-MAY-1992 01:55:30 GOATHUNTER "Update IDENT to v5.2"!=�! *2 27-APR-1992 08:18:50 GOATHUNTER "Updated for v5.1-1"O@�! *1 27-APR-1992 07:49:14 GOATHUNTER "PLAYBACK main routine"8�! VAX/DEC CMS REPLACEMENT HISTORY, Element PLAYBACK.B32 !5��� END; !5��P� retonerr (LIB$SCOPY_R_DX6 (.l_nam [NAM$B_RSL], .l_nam [NAM$L_RSA], !5*� name[dsc$t_begin])); !5��:� name [DSC$W_LENGTH] = .l_nam [NAM$B_RSL]; !5��J� IF NOT (l_status = $CONNECT (RAB = rab [rab$t_begin])) THEN !5<� RETURN rms_error (.l_status, rab [r���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������0������������������������b� ������ SUPSER054.C��������������������(�� ��$[HUNTER.SUPSER.V54C.C]PLAYBACK.MAR;1�������������������������������������������������������������������������������������������d��������������������������������������������$�*�[HUNTER.SUPSER.V54C.C]PLAYBACK.MAR;1�+��,�(���.�����/��� �4�d�������$�������������������-� ����0���1����2���3������K��P���W���O�����5���6�_ 䵖��7�@4䵖��8����������9����������G����H��J���������������������������/�;MACRO-32 source generated by BLISS-32 compiler�� .TITLE PLAYBACK�� .IDENT \V5.4\�� .PSECT $PLIT$,NOWRT,NOEXE,2��P.AAA: .ASCII <8>\ \<8><0>��U.8= P.AAA�_� .EXTRN CLI$DCL_PARSE, CLI$GET_VALUE, CLI$PRESENT, LIB$GETDVI, LIB$SCOPY_R_DX6, LIB$LOOKUP_KEY�d� .EXTRN LIB$GET_INPUT, LIB$GET_FOREIGN, LIB$SIG_TO_RET, STR$CONCAT, STR$COPY_DX, PLAYBACK_CLI_TABLE� .PSECT $CODE$,NOWRT,2�%�U.1: .WORD ^M<R2,R3,R4,R5,R6,R7,R8>�� MOVZWL @8(AP), R6�� ADDL2 4(AP), R6%�1$: MATCHC #3, W^U.8, @8(AP), @4(AP)� � BEQL 2$�� MOVL #3, R3��2$: DECL R3� MOVAW -(R3), R8 � BEQL 3$�� SUBL3 R8, R6, R0�� MOVAB -3(R0), R7�� MOVC3 R7, 3(R8), -1(R8)� SUBW2 #4, @8(AP)�� SUBL2 #4, R6� � BRB 1$��3$: RET��U.2: .WORD ^M<R2,R3,R4>�� SUBL2 #4, SP�� PUSHL #33554432� CLRL 4(SP)� MOVL 4(AP), R0� CMPL R0, #99372� � BEQL 1$�� CMPL R0, #99468� � BEQL 1$�� CMPL R0, #99596� � BEQL 1$�� CMPL R0, #99900� � BEQL 8$�� CMPL R0, #100284�1$: BEQL 8$� MOVL 8(AP), R0� CMPB (R0), #3� � BNEQ 2$�� MOVL R0, R1� � BRB 3$��2$: CMPB (R0), #1 � BNEQ 4$�� MOVL 60(R0), R1��3$: MOVL 8(R0), R2�� MOVL 12(R0), R4�� MOVL 24(R0), R3� � BRB 5$��4$: MOVL #44, R0�� RET�5$: MOVZBW 52(R1), (SP)� MOVL 44(R1), 4(SP)� MOVL 40(R1), R0� � BEQL 7$�� TSTB 3(R0) � BEQL 6$�� MOVZBW 3(R0), (SP)� MOVL 4(R0), 4(SP)� � BRB 7$��6$: TSTB 11(R0) � BEQL 7$�� MOVZBW 11(R0), (SP)�� MOVL 12(R0), 4(SP)�7$: PUSHR #^M<R2,R4>� PUSHAB 8(SP) � PUSHL #1� � PUSHL R3�� CALLS #5, G^LIB$SIGNAL�� MOVAB 268435456(R2), R2� MOVL R2, R0��8$: RET�G� .EXTRN PLAY__OPENIN, PLAY__OPENOUT, SYS$OPEN, SYS$CREATE, SYS$CONNECT�,�U.3: .WORD ^M<R2,R3,R4,R5,R6,R7,R8,R9,R10>� MOVQ 4(AP), R9� MOVL 60(R10), R3� MOVL 40(R3), R7�� MOVL 4(R9), 44(R3)� MOVZWL (R9), R2�� CMPW R2, #255� � BLEQU 1$�� MOVZBL #255, R2��1$: MOVB R2, 52(R3)� BBC #1, 22(R3), 2$�� MOVL #PLAY__OPENIN, 24(R3) � PUSHL R3�� CALLS #1, G^SYS$OPEN� � BRB 3$�"�2$: MOVL #PLAY__OPENOUT, 24(R3) � PUSHL R3�� CALLS #1, G^SYS$CREATE��3$: MOVL R0, R8� BLBS R8, 4$� � PUSHL R3� � BRB 5$��4$: MOVL R9, R2� MOVL 4(R7), R1� MOVZBL 3(R7), R0� JSB G^LIB$SCOPY_R_DX6� BLBC R0, 7$�� MOVZBW 3(R7), (R9) � PUSHL R10� CALLS #1, G^SYS$CONNECT� MOVL R0, R8�� BLBS R8, 6$� � PUSHL R10�5$: PUSHL R8� CALLS #2, W^U.2� RET�6$: MOVL #1, R0�7$: RET�� .PSECT $PLIT$,NOWRT,NOEXE,2��P.AAB: .BYTE 2 � .BYTE 96� � .BYTE -1� � .BYTE 0 � .LONG 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .LONG 0 � .LONG 0 � .WORD 0[8]� � .WORD 0[3]� � .WORD 0[3]� � .LONG 0 � .LONG 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0[2]� � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0[2]�%�P.AAC: .ASCII \SYS$DISK:[]PHOTO.LOG\��P.AAD: .BYTE 3 � .BYTE 80� � .WORD 0 � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0 � .WORD 0 � .BYTE 2 � .BYTE 0 � .LONG 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 2 � .BYTE 0 � .BYTE 0 � .WORD 0 � .LONG 0 � .LONG 0 � .LONG 0� .ADDRESS P.AAC� � .BYTE 0 � .BYTE 20� � .WORD 0 � .LONG 0 � .WORD 0 � .BYTE 0 � .BYTE 0 � .LONG 0 � .LONG 0 � .WORD 0 � .BYTE 0 � .BYTE 0 � .LONG 0�P.AAE: .BYTE 1 � .BYTE 68� � .WORD 0 � .LONG 512 � .LONG 0 � .LONG 0 � .WORD 0[3]� � .WORD 0 � .LONG 0 � .WORD 0 � .BYTE 0 � .BYTE 0 � .WORD 1024� � .WORD 0 � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 16� � .LONG 0 � .LONG 0 � .LONG 0�P.AAF: .BYTE 2 � .BYTE 96� � .BYTE -1� � .BYTE 0 � .LONG 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .LONG 0 � .LONG 0 � .WORD 0[8]� � .WORD 0[3]� � .WORD 0[3]� � .LONG 0 � .LONG 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0[2]� � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0[2]��P.AAG: .ASCII \.LIS\��P.AAH: .BYTE 3 � .BYTE 80� � .WORD 0 � .LONG 2 � .LONG 0 � .LONG 0 � .LONG 0 � .WORD 0 � .BYTE 1 � .BYTE 0 � .LONG 0 � .BYTE 0 � .BYTE 0 � .BYTE 2 � .BYTE 2 � .BYTE 0 � .BYTE 0 � .WORD 0 � .LONG 0 � .LONG 0 � .LONG 0� .ADDRESS P.AAG� � .BYTE 0 � .BYTE 4 � .WORD 0 � .LONG 0 � .WORD 0 � .BYTE 0 � .BYTE 0 � .LONG 0 � .LONG 0 � .WORD 0 � .BYTE 0 � .BYTE 0 � .LONG 0�P.AAI: .BYTE 1 � .BYTE 68� � .WORD 0 � .LONG 0 � .LONG 0 � .LONG 0 � .WORD 0[3]� � .WORD 0 � .LONG 0 � .WORD 0 � .BYTE 0 � .BYTE 0 � .WORD 0 � .WORD 0 � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .LONG 0 � .LONG 0 � .LONG 0�P.AAJ: .ASCII <6>\RECORD\<0>��P.AAK: .ASCII <5>\INPUT\<0><0>��P.AAL: .LONG 4� .ADDRESS P.AAJ� � .LONG 1� .ADDRESS P.AAK� � .LONG 2#�P.AAN: .ASCII \PLAYBACK \<0><0><0>��P.AAM: .LONG 17694729�� .ADDRESS P.AAN��P.AAP: .ASCII \STRIP\<0><0><0>��P.AAO: .LONG 17694725�� .ADDRESS P.AAP��P.AAR: .ASCII \type\��P.AAQ: .LONG 4� .ADDRESS P.AAR��P.AAT: .ASCII \LOGFILE\ � .BLKB 1�P.AAS: .LONG 7� .ADDRESS P.AAT��P.AAV: .ASCII \OUTPUT\� � .BLKB 2�P.AAU: .LONG 6� .ADDRESS P.AAV��U.12= P.AAM�U.13= P.AAOb� .EXTRN PLAY__CLOSEIN, PLAY__CLOSEOUT, PLAY__READERR, PLAY__WRITEERR, SYS$GET, SYS$PUT, SYS$CLOSE� .PSECT $CODE$,NOWRT,2�-�U.4: .WORD ^M<R2,R3,R4,R5,R6,R7,R8,R9,R10,-�� R11>� MOVAB -2352(SP), SP � CLRL R10� CLRL 4(SP) � CLRL R6�� MOVL #34471936, -8(FP)� CLRL -4(FP)�� MOVL #34471936, -16(FP)�� CLRL -12(FP)� MOVC3 #96, W^P.AAB, 960(SP)� MOVAB 1056(SP), 964(SP)� MOVC3 #80, W^P.AAD, 880(SP)� MOVAB 960(SP), 920(SP)�� MOVC3 #68, W^P.AAE, 812(SP)� MOVAB -1040(FP), 848(SP)�� MOVAB 880(SP), 872(SP)�� MOVL #34471936, 804(SP)�� CLRL 808(SP)� MOVC3 #96, W^P.AAF, 196(SP)� MOVAB 292(SP), 200(SP)�� MOVC3 #80, W^P.AAH, 116(SP)� MOVAB 196(SP), 156(SP)�� MOVC3 #68, W^P.AAI, 48(SP)�� MOVAB 548(SP), 88(SP)� MOVAB 116(SP), 108(SP)�� MOVL #34471936, 40(SP)� CLRL 44(SP)�� MOVC3 #20, W^P.AAL, 20(SP)� � CLRL R11� MOVL #34471936, 12(SP)� CLRL 16(SP)�� PUSHAB W^U.13�� CALLS #1, W^U.5� BLBS R0, 1$�� PUSHAB 12(SP)�� CALLS #1, G^LIB$GET_FOREIGN� PUSHAB 12(SP)�� PUSHAB W^U.12�� PUSHAB 20(SP)�� CALLS #3, G^STR$CONCAT�� PUSHAB G^PLAYBACK_CLI_TABLE�� PUSHAB 16(SP)�� CALLS #2, G^CLI$DCL_PARSE� MOVL R0, R5�� BLBS R5, 1$� � BRW 31$�1$: PUSHAB W^U.13� CALLS #1, G^CLI$PRESENT� MOVL R0, R4�� PUSHAB 40(SP)�� PUSHAB W^P.AAQ� CALLS #2, G^CLI$GET_VALUE� BLBC R0, 2$�� PUSHAB 4(SP)� PUSHAB 24(SP)�� PUSHAB 48(SP)�� CALLS #3, G^LIB$LOOKUP_KEY�� MOVL R0, R5�� BLBS R5, 2$�� PUSHAB 40(SP)� � PUSHL #1� � PUSHL R5�� CALLS #3, G^LIB$STOP��2$: PUSHAB -16(FP)�� PUSHAB W^P.AAS� CALLS #2, G^CLI$GET_VALUE� BLBC R0, 5$�� PUSHAB 8��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������1������������������������p7G� ������ SUPSER054.C��������������������(�� ��$[HUNTER.SUPSER.V54C.C]PLAYBACK.MAR;1�������������������������������������������������������������������������������������������d������������������������������t�������������04(SP)� PUSHAB W^P.AAU� CALLS #2, G^CLI$GET_VALUE� BLBC R0, 5$�� PUSHAB 8(SP)� PUSHAB 808(SP)� CLRL -(SP)� MOVL #4, 12(SP)�� PUSHAB 12(SP)�� CALLS #4, G^LIB$GETDVI�� BITB 8(SP), #66� � BEQL 3$�� CLRL 4(SP)�3$: PUSHAB 812(SP)�� PUSHAB -16(FP)� CALLS #2, W^U.3� BLBC R0, 5$�� MOVL 4(SP), R8 � BNEQ 4$�� BICB2 #2, 146(SP)�4$: PUSHAB 48(SP)� PUSHAB 808(SP)� CALLS #2, W^U.3�5$: BLBS R0, 6$� RET�6$: CLRL R6 � MOVL #PLAY__READERR, 836(SP) � MOVL #PLAY__WRITEERR, 72(SP)�7$: PUSHAB 812(SP)�� CALLS #1, G^SYS$GET� MOVL R0, R5�� BLBS R5, 8$� � BRW 36$�8$: MOVZWL 846(SP), R9� � DECL R9� � CLRL R2� � BRW 34$�9$: CLRL R7 � CLRL R0�� CMPL R6, #255� � BNEQ 10$ � INCL R0��10$: MOVL R0, R7�� BLBC R0, 12$� MOVW R6, 82(SP)�� BLBC R4, 11$� PUSHAB 82(SP)�� PUSHL 92(SP)�� CALLS #2, W^U.1�11$: PUSHAB 48(SP)�� CALLS #1, G^SYS$PUT� BLBC R0, 19$ � CLRL R6��12$: CASEL R8, #0, #2��13$: .WORD 14$-13$,- � 16$-13$,-� � 16$-13$��14$: BLBC R4, 15$� TSTB -1040(FP)[R2] � BEQL 26$'�15$: MOVB -1040(FP)[R2], 548(SP)[R6]� � BRB 25$�16$: MOVZBL -1040(FP)[R2], R3� BLBC R11, 21$�� CMPL R3, #10 � BEQL 17$� CMPL R8, #2� � BNEQ 22$�17$: BLBS R7, 20$� MOVW R6, 82(SP)�� BLBC R4, 18$� PUSHAB 82(SP)�� PUSHL 92(SP)�� CALLS #2, W^U.1�18$: PUSHAB 48(SP)�� CALLS #1, G^SYS$PUT�19$: BLBC R0, 30$ � CLRL R6��20$: CMPL R8, #2� � BNEQ 26$� BLBS R4, 23$ � BRB 24$�21$: CMPB R3, #13 � BEQL 26$�22$: BLBC R4, 24$�23$: TSTL R3� � BEQL 26$�24$: MOVB R3, 548(SP)[R6]�25$: INCL R6��26$: MOVZBL -1040(FP)[R2], R1 � CLRL R0�� CMPB R1, #13 � BNEQ 27$ � INCL R0��27$: MOVL R0, R11� CMPB R1, #33 � BNEQ 28$� MOVL #1, R10 � BRB 33$�28$: CMPB R1, #63 � BNEQ 32$� BLBC R10, 32$�� BBC #2, 180(SP), 32$�� MOVW R6, 82(SP)�� BLBC R4, 29$� PUSHAB 82(SP)�� PUSHL 92(SP)�� CALLS #2, W^U.1�29$: PUSHAB 48(SP)�� CALLS #1, G^SYS$PUT�30$: BLBC R0, 39$ � CLRL R6�� PUSHAB -8(FP)�� CALLS #1, G^LIB$GET_INPUT� MOVL R0, R5�� BLBS R5, 32$� CMPL R5, #98938� � BNEQ 31$ � BRW 43$�31$: MOVL R5, R0�� RET�32$: CLRL R10�33$: INCL R2��34$: CMPL R2, R9� � BLEQU 35$ � BRW 7$��35$: BRW 9$��36$: CMPL R5, #98938� � BEQL 37$� PUSHAB 812(SP) � PUSHL R5� � BRB 40$�37$: MOVW R6, 82(SP)�� BLBC R4, 38$� PUSHAB 82(SP)�� PUSHL 92(SP)�� CALLS #2, W^U.1�38$: PUSHAB 48(SP)�� CALLS #1, G^SYS$PUT� BLBS R0, 41$�39$: PUSHAB 48(SP)� � PUSHL R0��40$: CALLS #2, W^U.2� RET�41$: CLRL R6� � MOVL #PLAY__CLOSEIN, 904(SP)� PUSHAB 880(SP)� CALLS #1, G^SYS$CLOSE� MOVL R0, R5�� BLBS R5, 42$� PUSHAB 880(SP) � PUSHL R5�� CALLS #2, W^U.2%�42$: MOVL #PLAY__CLOSEOUT, 904(SP)�� PUSHAB 116(SP)� CALLS #1, G^SYS$CLOSE� MOVL R0, R5�� BLBS R5, 43$� PUSHAB 116(SP) � PUSHL R5�� CALLS #2, W^U.2�43$: MOVL #1, R0�� RET�U.5: .WORD ^M<>�� MOVAL 1$, (FP)�� PUSHL 4(AP)� CALLS #1, G^CLI$PRESENT� RET�1$: .WORD ^M<>� CLRL -(SP) � PUSHL SP�� MOVQ 4(AP), -(SP)�� CALLS #3, G^LIB$SIG_TO_RET�� RET� .EXTRN LIB$SIGNAL, LIB$STOP� � .END U.4�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������(�*�[HUNTER.SUPSER.V54C.C]PLAYBACK_CLD.CLD;1�+��,�%���.�����/��� �4�M��������������������������-� ����0���1����2���3������K��P���W���O�����5���6��t^V3��7�@a3䵖��8����������9����������G����H��J������������������������MODULE playback_cli_table��IDENT '01-001' !2�!�H�! Copyright 1992 by Hunter Goatley. All rights reserved. PermissionK�! is given to freely distribute and modify this software for no commercial�5�! gain as long as this copyright notice is retained.��!��!+�!��! Facility: PLAYBACK��!��! Module: PLAYBACK_CLI_TABLE��!�4�! Author: Hunter Goatley (goathunter@WKUVX1.BITNET)�!��! Date: April 1, 1992�!��! Modified by:��!�5�! 01-001 Hunter Goatley 1-OCT-1992 16:53 !2�@�! Changed so PLAYBACK defaults to /TYPE=RECORD/STRIP. !2�! !2�+�! 01-000 Hunter Goatley 1-APR-1992 15:16�(�! Conversion from CLD to object module.�!��!-$�DEFINE TYPE DEF_TYPE !2� KEYWORD RECORD !2�� KEYWORD INPUT !2��$�DEFINE VERB PLAYBACK !2,� PARAMETER P1, LABEL = LOGFILE, !2� DEFAULT, !2�6� VALUE (TYPE = $INFILE, DEFAULT = PHOTO.LOG) !2'� QUALIFIER TYPE, DEFAULT, !2�5� VALUE (TYPE = DEF_TYPE, DEFAULT=RECORD) !2�-� QUALIFIER OUTPUT, NONNEGATABLE, !2�� DEFAULT, !2�5� VALUE (DEFAULT = SYS$OUTPUT:, TYPE = $OUTFILE) !2�'� QUALIFIER STRIP DEFAULT !2�<�! VAX/DEC CMS REPLACEMENT HISTORY, Element PLAYBACK_CLD.CLDM�! *2 5-OCT-1992 14:51:48 GOATHUNTER "Changed PLAYBACK defaults for v5.4"�E�! *1 27-APR-1992 07:49:16 GOATHUNTER "PLAYBACK CLI command table"�<�! VAX/DEC CMS REPLACEMENT HISTORY, Element PLAYBACK_CLD.CLD������������������������������(�*�[HUNTER.SUPSER.V54C.C]PLAYBACK_MSG.MSG;1�+��,�$���.�����/��� �4�K�������*�������������������-� ����0���1����2���3������K��P���W���O�����5���6� N #��7�`#,3䵖��8����������9����������G����H��J�����������������������:� .TITLE PLAYBACK_MSG Supervisor series messages !24� .FACILITY PLAYBACK, 108/PREFIX = PLAY__ !2�!�H�! Copyright 1992 by Hunter Goatley. All rights reserved. PermissionK�! is given to freely distribute and modify this software for no commercial�5�! gain as long as this copyright notice is retained.��!��!++��!��! Facility: Supervisor Series�!��! Module: SUPSERMSG.MSG�!��! Author: Unknown�!��! Date: Unknown�!�7�! Maintainer: Hunter Goatley, goathunter@WKUVX1.BITNET��! Western Kentucky University�!��! Modified by:��!�+�! 01-001 Hunter Goatley 8-APR-1992 12:58��! Added header.�!--�� .SEVERITY ERROR !2�6�OPENIN <error opening !AS as input>/fao=1 !28�OPENOUT <error opening !AS as output>/fao=1 !2��/�READERR <error reading !AS>/fao=1 !2�/�WRITEERR <error writing !AS>/fao=1 !2���!� .SEVERITY WARNING !2�7�CLOSEIN <error closing !AS as input>/fao=1 !2�8�CLOSEOUT <error closing !AS as output>/fao=1 !2��� .END !2<�! VAX/DEC CMS REPLACEMENT HISTORY, Element PLAYBACK_MSG.MSGA�! *2 5-OCT-1992 14:56:13 GOATHUNTER "Change facility number"�<�! *1 27-APR-1992 07:49:18 GOATHUNTER "PLAYBACK messages"<�! VAX/DEC CMS REPLACEMENT HISTORY, Element PLAYBACK_MSG.MSG����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������(�*�[HUNTER.SUPSER.V54C.C]PLAYBACK_RTN.MAR;1�+��,�(���.�����/��� �4�d�������6�������������������-� ����0���1����2���3������K��P���W���O�����5���6�`s/䵖��7�@4䵖��8����������9����������G����H��J��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������2������������������������~� ������ SUPSER054.C��������������������(�� ��([HUNTER.SUPSER.V54C.C]PLAYBACK_RTN.MAR;1���������������������������������������������������������������������������������������d�������������������������������������������/�;MACRO-32 source generated by BLISS-32 compiler�� .TITLE PLAYBACK�� .IDENT \V5.4\�� .PSECT $PLIT$,NOWRT,NOEXE,2��P.AAA: .ASCII <8>\ \<8><0>��U.7= P.AAA�d� .EXTRN LIB$SCOPY_R_DX6, LIB$LOOKUP_KEY, LIB$GET_INPUT, LIB$GET_FOREIGN, LIB$SIG_TO_RET, STR$CONCAT� .EXTRN STR$COPY_DX� .PSECT $CODE$,NOWRT,2�%�U.1: .WORD ^M<R2,R3,R4,R5,R6,R7,R8>�� MOVZWL @8(AP), R6�� ADDL2 4(AP), R6%�1$: MATCHC #3, W^U.7, @8(AP), @4(AP)� � BEQL 2$�� MOVL #3, R3��2$: DECL R3� MOVAW -(R3), R8 � BEQL 3$�� SUBL3 R8, R6, R0�� MOVAB -3(R0), R7�� MOVC3 R7, 3(R8), -1(R8)� SUBW2 #4, @8(AP)�� SUBL2 #4, R6� � BRB 1$��3$: RET��U.2: .WORD ^M<R2,R3,R4>�� SUBL2 #4, SP�� PUSHL #33554432� CLRL 4(SP)� MOVL 4(AP), R0� CMPL R0, #99372� � BEQL 1$�� CMPL R0, #99468� � BEQL 1$�� CMPL R0, #99596� � BEQL 1$�� CMPL R0, #99900� � BEQL 8$�� CMPL R0, #100284�1$: BEQL 8$� MOVL 8(AP), R0� CMPB (R0), #3� � BNEQ 2$�� MOVL R0, R1� � BRB 3$��2$: CMPB (R0), #1 � BNEQ 4$�� MOVL 60(R0), R1��3$: MOVL 8(R0), R2�� MOVL 12(R0), R4�� MOVL 24(R0), R3� � BRB 5$��4$: MOVL #44, R0�� RET�5$: MOVZBW 52(R1), (SP)� MOVL 44(R1), 4(SP)� MOVL 40(R1), R0� � BEQL 7$�� TSTB 3(R0) � BEQL 6$�� MOVZBW 3(R0), (SP)� MOVL 4(R0), 4(SP)� � BRB 7$��6$: TSTB 11(R0) � BEQL 7$�� MOVZBW 11(R0), (SP)�� MOVL 12(R0), 4(SP)�7$: PUSHR #^M<R2,R4>� PUSHAB 8(SP) � PUSHL #1� � PUSHL R3�� CALLS #5, G^LIB$SIGNAL�� MOVAB 268435456(R2), R2� MOVL R2, R0��8$: RET�G� .EXTRN PLAY__OPENIN, PLAY__OPENOUT, SYS$OPEN, SYS$CREATE, SYS$CONNECT�,�U.3: .WORD ^M<R2,R3,R4,R5,R6,R7,R8,R9,R10>� MOVQ 4(AP), R9� MOVL 60(R10), R3� MOVL 40(R3), R7�� MOVL 4(R9), 44(R3)� MOVZWL (R9), R2�� CMPW R2, #255� � BLEQU 1$�� MOVZBL #255, R2��1$: MOVB R2, 52(R3)� BBC #1, 22(R3), 2$�� MOVL #PLAY__OPENIN, 24(R3) � PUSHL R3�� CALLS #1, G^SYS$OPEN� � BRB 3$�"�2$: MOVL #PLAY__OPENOUT, 24(R3) � PUSHL R3�� CALLS #1, G^SYS$CREATE��3$: MOVL R0, R8� BLBS R8, 4$� � PUSHL R3� � BRB 5$��4$: MOVL R9, R2� MOVL 4(R7), R1� MOVZBL 3(R7), R0� JSB G^LIB$SCOPY_R_DX6� BLBC R0, 7$�� MOVZBW 3(R7), (R9) � PUSHL R10� CALLS #1, G^SYS$CONNECT� MOVL R0, R8�� BLBS R8, 6$� � PUSHL R10�5$: PUSHL R8� CALLS #2, W^U.2� RET�6$: MOVL #1, R0�7$: RET�� .PSECT $PLIT$,NOWRT,NOEXE,2��P.AAB: .BYTE 2 � .BYTE 96� � .BYTE -1� � .BYTE 0 � .LONG 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .LONG 0 � .LONG 0 � .WORD 0[8]� � .WORD 0[3]� � .WORD 0[3]� � .LONG 0 � .LONG 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0[2]� � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0[2]�%�P.AAC: .ASCII \SYS$DISK:[]PHOTO.LOG\��P.AAD: .BYTE 3 � .BYTE 80� � .WORD 0 � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0 � .WORD 0 � .BYTE 2 � .BYTE 0 � .LONG 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 2 � .BYTE 0 � .BYTE 0 � .WORD 0 � .LONG 0 � .LONG 0 � .LONG 0� .ADDRESS P.AAC� � .BYTE 0 � .BYTE 20� � .WORD 0 � .LONG 0 � .WORD 0 � .BYTE 0 � .BYTE 0 � .LONG 0 � .LONG 0 � .WORD 0 � .BYTE 0 � .BYTE 0 � .LONG 0�P.AAE: .BYTE 1 � .BYTE 68� � .WORD 0 � .LONG 512 � .LONG 0 � .LONG 0 � .WORD 0[3]� � .WORD 0 � .LONG 0 � .WORD 0 � .BYTE 0 � .BYTE 0 � .WORD 1024� � .WORD 0 � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 16� � .LONG 0 � .LONG 0 � .LONG 0�P.AAF: .BYTE 2 � .BYTE 96� � .BYTE -1� � .BYTE 0 � .LONG 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .LONG 0 � .LONG 0 � .WORD 0[8]� � .WORD 0[3]� � .WORD 0[3]� � .LONG 0 � .LONG 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0[2]� � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0[2]��P.AAG: .ASCII \.LIS\��P.AAH: .BYTE 3 � .BYTE 80� � .WORD 0 � .LONG 2 � .LONG 0 � .LONG 0 � .LONG 0 � .WORD 0 � .BYTE 1 � .BYTE 0 � .LONG 0 � .BYTE 0 � .BYTE 0 � .BYTE 2 � .BYTE 2 � .BYTE 0 � .BYTE 0 � .WORD 0 � .LONG 0 � .LONG 0 � .LONG 0� .ADDRESS P.AAG� � .BYTE 0 � .BYTE 4 � .WORD 0 � .LONG 0 � .WORD 0 � .BYTE 0 � .BYTE 0 � .LONG 0 � .LONG 0 � .WORD 0 � .BYTE 0 � .BYTE 0 � .LONG 0�P.AAI: .BYTE 1 � .BYTE 68� � .WORD 0 � .LONG 0 � .LONG 0 � .LONG 0 � .WORD 0[3]� � .WORD 0 � .LONG 0 � .WORD 0 � .BYTE 0 � .BYTE 0 � .WORD 0 � .WORD 0 � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .LONG 0 � .LONG 0 � .LONG 0�P.AAJ: .ASCII <6>\RECORD\<0>��P.AAK: .ASCII <5>\INPUT\<0><0>��P.AAL: .LONG 4� .ADDRESS P.AAJ� � .LONG 1� .ADDRESS P.AAK� � .LONG 2b� .EXTRN PLAY__CLOSEIN, PLAY__CLOSEOUT, PLAY__READERR, PLAY__WRITEERR, SYS$GET, SYS$PUT, SYS$CLOSE� .PSECT $CODE$,NOWRT,2��U.4:)� .ENTRY PLAYBACK, ^M<R2,R3,R4,R5,R6,R7,-�� R8,R9,R10,R11>� MOVAB W^U.1, R11�� MOVAB -2340(SP), SP � CLRL R0� � CLRL R10 � CLRL R6�� MOVL #34471936, -8(FP)� CLRL -4(FP)�� MOVL #34471936, -16(FP)�� CLRL -12(FP)� MOVC3 #96, W^P.AAB, 948(SP)� MOVAB 1044(SP), 952(SP)� MOVC3 #80, W^P.AAD, 868(SP)� MOVAB 948(SP), 908(SP)�� MOVC3 #68, W^P.AAE, 800(SP)� MOVAB -1040(FP), 836(SP)�� MOVAB 868(SP), 860(SP)�� MOVL #34471936, 792(SP)�� CLRL 796(SP)� MOVC3 #96, W^P.AAF, 184(SP)� MOVAB 280(SP), 188(SP)�� MOVC3 #80, W^P.AAH, 104(SP)� MOVAB 184(SP), 144(SP)�� MOVC3 #68, W^P.AAI, 36(SP)�� MOVAB 536(SP), 76(SP)� MOVAB 104(SP), 96(SP)� MOVL #34471936, 28(SP)� CLRL 32(SP)�� MOVC3 #20, W^P.AAL, 8(SP) � CLRL R9�� MOVL #34471936, (SP)� CLRL 4(SP)� MOVL @16(AP), R4� MOVL @12(AP), R10�� PUSHL 4(AP)� PUSHAB -16(FP)� CALLS #2, G^STR$COPY_DX� PUSHL 8(AP)� PUSHAB 796(SP)� CALLS #2, G^STR$COPY_DX� PUSHAB 800(SP)� PUSHAB -16(FP)� CALLS #2, 231(R11)�� BLBC R0, 2$� � TSTL R10 � BNEQ 1$�� BICB2 #2, 134(SP)�1$: PUSHAB 36(SP)� PUSHAB 796(SP)� CALLS #2, 231(R11)��2$: BLBS R0, 3$� RET�3$: CLRL R6 � MOVL #PLAY__READERR, 824(SP) � MOVL #PLAY__WRITEERR, 60(SP)�4$: PUSHAB 800(SP)�� CALLS #1, G^SYS$GET� MOVL R0, R5�� BLBS R5, 5$� � BRW 27$�5$: MOVZWL 834(SP), R8� � DECL R8� � CLRL R2� � BRW 25$�6$: CLRL R7 � CLRL R0�� CMPL R6, #255� � BNEQ 7$� � INCL R0��7$: MOVL R0, R7� BLBC R0, 9$�� MOVW R6, 70(SP)�� BLBC R4, 8$�� PUSHAB 70(SP)�� PUSHL 80(SP)�� CALLS #2, (R11)�8$: PUSHAB 36(SP)� CALLS #1, G^SYS$PUT� BLBC R0, 16$ � CLRL R6��9$: CASEL R10, #0, #2��10$: .WORD 11$-10$,- � 13$-10$,-� � 13$-10$��11$: BLBC R4, 12$� TSTB -1040(FP)[R2] � BEQL 23$'�12$: MOVB -1040(FP)[R2], 536(SP)[R6]� � BRB 22$�13$: MOVZBL -1040(FP)[R2], R3� BLBC R9, 18$� CMPL R3, #10 � BEQL 14$� CMPL R10, #2 � BNEQ 19$�14$: BLBS R7, 17$� MOVW R6, 70(SP)�� BLBC R4, 15$� PUSHAB 70(SP)�� PUSHL 80(SP)�� CALLS #2, (R11)�15$: PUSHAB 36(SP)�� CALLS #1, G^SYS$PUT�16$: BLBC R0, 30$ � CLRL R6��17$: CMPL R10, #2 � BNEQ 23$� BLBS R4, 20$ � BRB 21$�18$: CMPB R3, #13 � BEQL 23$�19$: BLBC R4, 21$�20$: TSTL R3� � BEQL 23$�21$: MOVB R3, 536(SP)[R6]�22$: INCL R6��23$: CLRL R0�� CMPB -1040(FP)[R2], #13� � BNEQ 24$ � INCL R0��24$: MOVL R0,���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������3������������������������E`� ������ SUPSER054.C��������������������(�� ��([HUNTER.SUPSER.V54C.C]PLAYBACK_RTN.MAR;1���������������������������������������������������������������������������������������d������������������������������q������������� R9� � INCL R2��25$: CMPL R2, R8� � BLEQU 26$ � BRW 4$��26$: BRW 6$��27$: CMPL R5, #98938� � BEQL 28$� PUSHAB 800(SP) � PUSHL R5� � BRB 31$�28$: MOVW R6, 70(SP)�� BLBC R4, 29$� PUSHAB 70(SP)�� PUSHL 80(SP)�� CALLS #2, (R11)�29$: PUSHAB 36(SP)�� CALLS #1, G^SYS$PUT� BLBS R0, 32$�30$: PUSHAB 36(SP)� � PUSHL R0��31$: CALLS #2, 55(R11)� RET�32$: CLRL R6� � MOVL #PLAY__CLOSEIN, 892(SP)� PUSHAB 868(SP)� CALLS #1, G^SYS$CLOSE� MOVL R0, R5�� BLBS R5, 33$� PUSHAB 868(SP) � PUSHL R5�� CALLS #2, 55(R11)%�33$: MOVL #PLAY__CLOSEOUT, 892(SP)�� PUSHAB 104(SP)� CALLS #1, G^SYS$CLOSE� MOVL R0, R5�� BLBS R5, 34$� PUSHAB 104(SP) � PUSHL R5�� CALLS #2, 55(R11)�34$: MOVL #1, R0�� RET� .EXTRN LIB$SIGNAL�� .END�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������&�*�[HUNTER.SUPSER.V54C.C]SUPERVISOR.B32;2�+��,�'!���.�o����/��� �4�r���o���m��������������������-� ����0���1����2���3������K��P���W���O�n����5���6�mൖ��7� 2䵖��8����������9����������G����H��J��������������������������MODULE supervisor (DEBUG, ZIP,� IDENT = 'V5.4b',�C� ADDRESSING_MODE (EXTERNAL = GENERAL, NONEXTERNAL = LONG_RELATIVE),�� MAIN = supervisor) =��BEGIN��!�H�! Copyright 1992 by Hunter Goatley. All rights reserved. PermissionK�! is given to freely distribute and modify this software for no commercial�5�! gain as long as this copyright notice is retained.��!��!++��!��! Facility: Supervisor Series�!��! Module: SUPERVISOR��!�2�! Author: Bob Pasker, Bill Donner, and Terry Way.6�! The Supervisor Series was written by Precision Data1�! Systems and later acquired by Security Pacific�6�! Software Services. It was put in the public domain+�! in 1992 by Security Pacific's Dan Shoop.��!�-�! Date: Originally written sometime in 1983.��! Version 5.1: April 6, 1992��!�=�! Abstract: The Supervisor Series consists of SUPERVISOR and�:�! PHOTO. SUPERVISOR lets a privileged user watch another;�! terminal *and* enter input on behalf of the target user,�3�! and PHOTO logs a terminal session to a log file.��!��! Maintainer: Hunter Goatley��! VMS Systems Programmer��! Academic Computing, STH 226�! Western Kentucky University�! Bowling Green, KY 42101�! Phone: 502-745-5251#�! E-mail: goathunter@WKUVX1.BITNET��!��!��! Modified by:�!�*�! V5.4a Hunter Goatley 7-OCT-1992 08:335�! Saved terminal chars before calling SMG$ routines.�-�! Terminal was being left as "No Broadcast".��!�)�! V5.4 Hunter Goatley 5-OCT-1992 09:37�7�! Added check to check_current_privs to make sure that�8�! the image was linked properly (data_base and p1_start!�! *must* have the same address).��!�7�! Added code to save broadcast messages to an external��! file if /BROADCAST is given.��!�5�! Added call to check_page_sizes to warn user if the�:�! terminal page size of the target terminal is different.�!�)�! Various reformatting and cleanup work.��!�+�! v5.3-1 Hunter Goatley 25-AUG-1992 11:46�0�! Bumped IDENT to match change in PHOTOMAR.MAR.�!�)�! v5.3 Hunter Goatley 10-AUG-1992 09:28�8�! Fixed a number of minor, irritating problems, as well6�! as a system crash. Routine kernel_remove_patch (in3�! PHOTOPAT) was modified to ensure that the UCB is�4�! still a UCB before trying to unhook us. Somehow,9�! LT UCBs were sometimes being deleted before SUPERVISOR�6�! got into kernel_remove_patch, resulting in a system"�! crash because the UCB was gone.�!�9�! Also reworked the order of the init stuff to be safer.�4�! Added code to ensure all needed privs are enabled5�! *before* trying to do stuff in kernel mode. Added�6�! a TIMOUT to the $BRKTHRU in notify_user so that the3�! supervisor doesn't hang if the user has XOFF'ed.��!�)�! v5.2 Hunter Goatley 7-MAY-1992 11:44�8�! Combined OBSERVER and ADVISOR into one program called;�! SUPERVISOR. Fixed bug that caused access violation when�:�! a user tried to monitor his own terminal (the user-mode9�! exit handler was trying to use memory that hadn't been�;�! set up yet). Changed $BRKTHRU to $BRKTHRUW when exiting�1�! so that user is notified before program exits.��!�>�! Added ability to switch between OBSERVER and ADVISOR modes,>�! two-key sequences for exiting, toggling mode, etc. Changed*�! XON/XOFF stuff from ^B to key-sequence.�!�6�! Added privilege checks using identifiers. Modified:�! DISCONNECT_AST to handle exits because the user doesn't6�! have the privilege to monitor logged out terminals.�!�=�! Changed a few routines to be JSB linkages instead of CALL.��!�8�! Added checks to determine if we're trying to advise a;�! 6xxx-series console, which we can't do (though observing� �! works OK).��!�+�! v5.1-1 Hunter Goatley 10-APR-1992 14:28�!�! Bumped IDENT number to v5.1-1.��!�)�! v5.1 Hunter Goatley 6-APR-1992 09:36�<�! Added code to allow running via foreign command or normal.�! CLD command. Fixed a number of minor bugs.�!�:�! Fixed reference count problems by adding code to handle<�! PORT_DISCONNECTs. V5.0D always incremented the reference=�! count of the target terminal and didn't decrement properly�:�! upon exiting. The new code lets us leave the reference<�! count alone and still exit gracefully if a UCB is deleted�! (LTAx, FTAx, etc., devices).��!�=�! Removed *old* modification histories to start with a clean� �! slate.��!��!--�� ��LIBRARY 'SYS$LIBRARY:LIB';���LIBRARY 'SUPSER_MACROS';���!��! TABLE OF CONTENTS:�!��LINKAGE�<� rundown_linkage = JSB : GLOBAL (r4_reg = 4, r7_reg = 7),&� jsb_with_r1 = JSB (REGISTER = 1),M� jsb_preserve_all = JSB : PRESERVE (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11),�� jsb_linkage = JSB;����FORWARD ROUTINE�� term_out : NOVALUE,� super_checkitout : NOVALUE,�� disconnect_ast : NOVALUE,�/� ctl_user_rundown : rundown_linkage NOVALUE,�� kernel_photo_on,&� check_current_privs : jsb_with_r1,&� get_target_username : jsb_with_r1,'� notify_user : jsb_with_r1 NOVALUE,�� read_char_end : NOVALUE,%� read_char : jsb_linkage NOVALUE,�� stuff_char : jsb_linkage,� open_ai_file,� � typful,�� pause_perhaps : NOVALUE,� get_a_record,�� stuff_ai_file,� user_exit_handler,� exec_exit_handler,� exec_declare_exit_handler,� supervisor,� � init_cli;����!� �! MACROS:��!��MACRO�� dsc$t_begin = 0, 0, 0, 0 %,�� fab$t_begin = 0, 0, 0, 0 %,�� itm$t_begin = 0, 0, 0, 0 %,�� rab$t_begin = 0, 0, 0, 0 %,�� do_or_ret (value) =�=� (REGISTER r__c; IF NOT (r__c=(value)) THEN RETURN(.r__c)) %,�� do_or_sig (value) =�=� (REGISTER r__c; IF NOT (r__c=(value)) THEN SIGNAL(.r__c)) %,� � desc [] =�4� UPLIT(%CHARCOUNT(%REMAINING), UPLIT(%REMAINING)) %,� write_it (condition) [] =�7� signal((condition) %IF %NULL(%REMAINING) %THEN %ELSE ,�� %LENGTH, %REMAINING %FI ) %,� type (format) [] =� BEGIN� EXTERNAL ROUTINE�(� sys$fao : ADDRESSING_MODE(GENERAL),/� lib$put_output : ADDRESSING_MODE(GENERAL);�� LOCAL!� out_buf : VECTOR[256, BYTE],�4� out_dsc : BLOCK[2, LONG] INITIAL(256, out_buf);M� sys$fao(UPLIT(%CHARCOUNT(format),UPLIT(format)),out_dsc,out_dsc,%REMAINING);�� lib$p����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4������������������������R^� ������ SUPSER054.C��������������������'!�� ��&[HUNTER.SUPSER.V54C.C]SUPERVISOR.B32;2�����������������������������������������������������������������������������������������r�����o�������������������������v������ �������ut_output(out_dsc);�� END %,���6� put_out (string) [] = !Write string to SYS$OUTPUT� BEGIN� EXTERNAL ROUTINE�/� lib$put_output : ADDRESSING_MODE(GENERAL);�%� lib$put_output($DESCRIPTOR(string));�� END %;����!��! EQUATED SYMBOLS:�!��LITERAL�� cmd_buf_len = 5,� timr_efn = 2,�� fini_efn = 3,� � true = 1,�� false = 0;�� �COMPILETIME�� number_of_sids = 0;���� ��OWN��!�7�! RBP036 - ADD DO_QUIET FOR /QUIET IN ADVISOR/OBSERVER.��!�"� user_buf : VECTOR [31, BYTE],(� user_dsc : VECTOR [2, LONG] INITIAL'� (%ALLOCATION (user_buf), user_buf),�� screen_id,"� jpi_curpriv : VECTOR[2,LONG],"� jpi_procpriv : VECTOR[2,LONG], � do_quiet : INITIAL (false),#� privilege_mask : BITVECTOR[32],�� cmd_mode : INITIAL(false),�;� cmd_char : INITIAL(4), ! What command-mode character?�.� cmd_char_buf : VECTOR [cmd_buf_len, BYTE],H� cmd_char_dsc : VECTOR [2, LONG] INITIAL (cmd_buf_len, cmd_char_buf),&� orig_tty_chars : VECTOR [3, LONG],*� made_lock, ! DID WE MAKE THE LOCK?#� end_of_record : INITIAL (true),�$� photo_logfile : INITIAL (false),E� stuffing_paused : INITIAL (true), ! say its paused so we start ok�<� aibuf : VECTOR [257, BYTE], ! one for a carriage return� aifab : $FAB (FAC = GET),5� airab : $RAB (UBF = aibuf, MBC = 127, USZ = 256,�#� ROP = <RAH, LOC>, FAB = aifab),�9� ai : INITIAL (false); ! true if advisor input files����OWN�$� broadcast_trapped : INITIAL(false),,� broadcast_filename : $BBLOCK[NAM$C_MAXRSS],F� broadcast_filename_d : $staticdesc(NAM$C_MAXRSS, broadcast_filename),0� broadcast_nam : $NAM (RSA = broadcast_filename,+� RSS = %ALLOCATION(broadcast_filename)),�D� broadcast_fab : $FAB (DNM = 'SYS$DISK:[]SUPERVISOR_BROADCASTS.LOG',#� FAC = PUT, RFM = VAR, RAT = CR,�� NAM = broadcast_nam),�,� broadcast_rab : $RAB (FAB = broadcast_fab);���BINDC� msg_initial_start = %ASCID %STRING('!/!%D -- User !AS is !AS you',�� %CHAR(7), '!/'),F� msg_initial_stop = %ASCID %STRING('!/!%D -- User !AS is no longer ',� '!AS you', %CHAR(7), '!/'),�"� msg_advisor = %ASCID'advising',$� msg_observer = %ASCID'observing';���GLOBAL LITERAL� photo_flag = 0;����LITERAL�-� termio_size = 512; ! BE GENTLE WITH US����EXTERNAL ROUTINE-� SYS$CLRAST, !CLeaR AST system service�*� CLI$DCL_PARSE, !Parse a DCL command� CLI$PRESENT,� CLI$GET_VALUE,� SMG$CREATE_PASTEBOARD,#� SMG$DISABLE_BROADCAST_TRAPPING,�� SMG$GET_BROADCAST_MESSAGE,� SMG$SET_BROADCAST_TRAPPING,�� SMG$ERASE_PASTEBOARD,�� SMG$DELETE_PASTEBOARD,<� INI$BRK : jsb_preserve_all NOVALUE, !XDELTA entry point1� LIB$GET_FOREIGN, !Get foreign command line�� LIB$GET_INPUT,5� LIB$SIG_TO_RET, !Catch signal and return error�� OTS$CVT_TI_L,�� STR$CONCAT,�� make_adv_lock,� kill_adv_lock,� exec_patch_p1,� kernel_remove_patch,� jiggle_vectors,�� check_page_sizes;����EXTERNAL LITERAL�!��! MESSAGES ASSOCIATED TEXTL�! --------------------------- --------------------------------------------7� super$_advnow, !<Supervisor entering ADVISOR mode>�8� super$_obsnow, !<Supervisor entering OBSERVER mode>>� super$_moninfo, !<Supervising !AS, user !AS (!AS, !AS)!/>;� super$_help, !<Supervisor help. All commands are....>�H� super$_ctrlinv, !<reserved CTRL-key given as the COMMAND_CHARACTER>C� super$_invcmdchar, !<invalid COMMAND_CHARACTER value given...>�*� super$_spawned, !<subprocess spawned>@� super$_noadvpriv, !<no privilege to advise target terminal>C� super$_noobspriv, !<no privilege to supervise target terminal>�E� super$_noquietpriv, !<no privilege to suppress ... notification>�J� super$_nologoutpriv, !<no privilege to supervise logged out terminals><� super$_noconsole, !<cannot advise 6xxx-series consoles>A� super$_returned, !<control returned to Supervisor process!/>�E� super$_returnedm, !<control returned to Supervisor ... missed!/>�;� super$_bcastfile, !<broadcast messages written to....>�>� super$_bcasterr, !<error creating broadcast message file>+� super$_illself, !<cannot monitor self>�O� super$_notaclassdev, !<Supervisor can not be used on this type of temrinal>�0� super$_badopen, !<couldn't open input file>/� super$_version, !<Supervisor version !8ZL>�'� super$_exit, !<Supervisor exiting>�(� super$_exitw, !<Supervisor exiting>2� super$_start, !<Supervisor enabled on !AS...>H� super$_already, !<That terminal is ADVISING someone else right now>� super$_mislink; !���EXTERNAL� supervisor_cli_table;����EXTERNALO� ctl$gl_usrundwn : ADDRESSING_MODE (ABSOLUTE); ! addr of last wishes routine���� ��PSECT�3� GLOBAL = proto$00(WRITE, NOEXECUTE, ALIGN (9));����GLOBAL� lock_start : VECTOR [0],$� p1_start : VECTOR [0] ALIGN (9);���PSECT�0� OWN = proto$03(WRITE, NOEXECUTE, ALIGN (9)),(� GLOBAL = proto$03(WRITE, NOEXECUTE);���!+L�! this is the start of the prototype area, and it is copied up into p1 space�!-���GLOBAL� proto_start : VECTOR [0],�� input_only,�� advising : BYTE;���OWN�� DEBUG : INITIAL (false),�� watch : INITIAL (true),"� stuff_done : INITIAL (false),'� advise_buffer : VECTOR [132, BYTE],�*� advise_dsc : VECTOR [2, LONG] INITIAL1� (%ALLOCATION (advise_buffer), advise_buffer),�� terminal_channel : WORD,!� terminal_channel_read : WORD,�+� watched_term_name : VECTOR [132, BYTE],�?� watched_term : VECTOR [2] INITIAL (132, watched_term_name),� � bytes_written : INITIAL (0),+� old_rundown_routine : LONG INITIAL (0),�� bb : INITIAL (0),�� shutdown : INITIAL (0),� logging : INITIAL (0),�� bytes_eaten : INITIAL (0),�"� ourmissed_bytes : INITIAL (0);���GLOBAL� bbuf_size : INITIAL (0),�� p1_address : INITIAL (0),� debug_flag : INITIAL (0),(� uint_level_logging : REF VECTOR [1],,� umissed_bytes : REF VECTOR [1] VOLATILE,(� ub_count : REF VECTOR [2] VOLATILE,� ub_iptr : VECTOR [2],.� usignal_pending : REF VECTOR [1] VOLATILE,#� uobsadv_shutdown : INITIAL (0),�� ucb_address : INITIAL (0),�� pfn_address : INITIAL (0);����PSECT�&� CODE = proto$97(WRITE, NOEXECUTE);���EXTERNALA� signal_each, ! set to true so Observer is woken more often�� our_privilege_mask,�� data_base, � data_end,�� code_base, � code_end;���� �)�ROUTINE term_out (size, addr) : NOVALUE =��BEGIN����LOCAL�� status,� sofar,�� tomove;��@�! if we're advisor and we're not watching then dont write it out��,� IF .advising AND NOT .watch THEN RETURN;���!+B�! Here with one record, just throw it out to the tube with as many�! qios as we need.�!�A�! This requires that the buffered io quota be sufficiently large.�G�! The buffers should be big enough so that we dont do too many get/free��! vms��!-� sofar = .addr;��� WHILE .size GTRU 0 DO�� BEGIN��� LOCAL� nineteen,� seventeen;���� !+�� ! do the IOla� !-����!�D�! IF IT FAILS, THEN MAKE IT A BIG UNSIGNED NUMBER AND SAY BAD EXISTS0�! IF IT SUCCEDES, THEN MAKE IT RELATIVE TO sofar�!��!rbp044... -fix word-11 bug��L� IF CH$FAIL (nineteen = CH$FIND_CH (.size, .sofar, 19)) ! FIND PTR TO SECOND� THEN�� nineteen = -1� ELSE�#� nineteen = .nineteen - .sofar;���r� IF CH$FAIL (seventeen = CH$FIND_CH (.size, .sofar, 17)) THEN seventeen = -1 ELSE seventeen = .seventeen - .sofar; �!...rbp44�;� tomove = MINU (termio_size, .size, .seventeen, .nineteen);���� do_or_sig($QIOW (� CHAN = .terminal_channel,�*� FUNC = (io$_writevblk OR io$m_noformat),� P1 = .sofar,� P2���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������5������������������������^q@� ������ SUPSER054.C��������������������'!�� ��&[HUNTER.SUPSER.V54C.C]SUPERVISOR.B32;2�����������������������������������������������������������������������������������������r�����o�������������������������������������� = .tomove));���� !+�*� ! checkitout and update pointers/counters� !-���+�! IF THERE WAS A BAD CHAR THEN SKIP OVER IT��!� �!rbp044...H� IF (.nineteen NEQ -1) OR (.seventeen NEQ -1) THEN tomove = .tomove + 1; �!...rbp044� sofar = .sofar + .tomove;� size = .size - .tomove;� END;����END;��� �+�GLOBAL ROUTINE super_checkitout : NOVALUE =��BEGIN��!+O�! The code in this ast routine is activated by the nonpaged pool patch whenever�N�! it detects that signal_pending is false and some characters are being output'�! on the terminal we are Observering on����LITERAL�� in = 0,(� out = 1; ! setup IN and OUT pointers���OWN�� tries : INITIAL (0);����BINDK� buf = ub_iptr [0] : REF VECTOR [, BYTE]; ! point to begining of big buffer����!�@�! if we are to refresh the screen, then capture the pointers andC�! print out the whole buffer. At the end, make sure we have updated�+�! the output to be where we really left off�H�! remember, only i can change out.... and only foreground can change in.�!���� DO� BEGIN� OWN� chars_out;�� LOCAL� cnt : SIGNED;(� cnt = .ub_count [in] - .ub_count [out];�!�>�! these guys must always work on the real UB_COUNTs, not saved�! ones else we will MISS bytes.��!���!� CASE SIGN (.cnt) FROM -1 TO 1 OF�� SET�� � [-1] :�%� ! output from ubcount_out until end�� BEGIN�:� chars_out = .chars_out + (.bbuf_size - .ub_count [out]);A� term_out (.bbuf_size - .ub_count [out], buf [.ub_count [out]]);�-� ub_count [out] = 0; ! GOTO FIRST BYTE NOW.�� END;�� � [1] :,� ! output from ubcount_out until ubcount_in� BEGIN� � chars_out = .chars_out + .cnt;)� term_out (.cnt, buf [.ub_count [out]]);�*� ub_count [out] = .ub_count [out] + .cnt;� END;�� � [0] :� usignal_pending [0] = 0; � TES;�� END� WHILE .usignal_pending [0];���� IF .advising� THEN1� IF .stuffing_paused THEN stuff_ai_file ();����END;��� ��%SBTTL 'DISCONNECT_AST'�7�GLOBAL ROUTINE disconnect_ast (disc_status) : NOVALUE =��BEGIN��!+�!��! Routine: DISCONNECT_AST�!��! Functional description:�!�?�! This AST routine is triggered by the nonpaged pool patch when�E�! the target terminal's PORT_DISCONNECT routine is called in response�A�! to a user logging out or carrier being dropped on a modem line.�A�! If the device is a deletable device (e.g., LTAx:, TWAx:, FTAx:,�E�! etc., devices) or the process doesn't have the privilege to monitor�A�! logged-out terminals, this AST is called, causing SUPERVISOR to�5�! exit with SS$_HANGUP or SUPER$_NOLOGOUTPRIV status.��!� �! Inputs:�!s-�! 4(AP) - Longword containing the exit statusD�!S �! Outputs:E�!L?�! Sets p1uobsadv_shutdown to 1 for KERNEL_REMOVE_PATCH routine.��!E�! Side effects:�!t@�! This AST routine calls the undocumented system service $CLRAST>�! to clear the active AST status. The $EXIT system service isB�! then called to force ADVISOR/OBSERVER through the exit handlers,-�! terminating the advising/observing session.��!M�!-�BINDB� p1uobsadv_shutdown = (uobsadv_shutdown - p1_start) + .p1_address;���! INI$BRK();��� !E� ! Set the p1uobsadv_shutdown flag to let KERNEL_REMOVE_PATCH knowaH� ! that we have already been unhooked from the target terminal's UCB.� !0� p1uobsadv_shutdown = 1; !Set shutdown flag ��� !L� ! A single character read is pending on the advising/observing terminal.B� ! It must be cancelled before the $EXIT will exit the program.� !H� $CANCEL (CHAN = .terminal_channel_read); !Cancel pending read on term��� !D� ! Clear our AST status, turning us into a regular piece of code.� !� SYS$CLRAST();��� !G� ! Now exit with a SS$_HANGUP status code, forcing the exit handlersn4� ! and user rundown handler to clean up the rest.� !G� ! Note: SS$_HANGUP is a fatal error, but it's changed to -E- below.�� !>� IF (.disc_status EQLU SS$_NOPRIV) !If it was no privilege, � THEN !... change it to a9� disc_status = super$_nologoutpriv; !... Supervisor erroru��C� $EXIT (CODE = ((.disc_status AND %X'FFFFFFF8') OR STS$K_ERROR)); ���END;��� t4�ROUTINE ctl_user_rundown : rundown_linkage NOVALUE =�BEGINt���GLOBAL REGISTERe � r4_reg = 4, � r7_reg = 7;���BUILTINs� MOVPSL;���BINDX� p1_uint_level_logging = (uint_level_logging - p1_start) + .p1_address : REF VECTOR [1];���LOCALr� psl : BLOCK [1, BYTE],a� l_chan : WORD;e���! INI$BRK(); ��F� p1_uint_level_logging [0] = 0; ! turn off interrupt level logging��� MOVPSL (psl);G��S� IF .psl [psl$v_prvmod] LSSU psl$c_user ! note this is different from photo execl� THEN� BEGIN�!+ �! Remove the kernel mode patches�!-� kernel_remove_patch ();�!+%�! Reestablish the old rundown routinet�!-(� ctl$gl_usrundwn = .old_rundown_routine;� END;U���!+)�! Call any other rundown routines, if any.�!-��"� IF .old_rundown_routine NEQA 0� THEN� BEGIN�� � BIND ROUTINEt9� oldrundown = .old_rundown_routine : rundown_linkage;b��� oldrundown ()� END;���&� IF $ASSIGN (DEVNAM = watched_term,� CHAN = l_chan)� THEN� $DASSGN (CHAN = .l_chan);i���END;��� d�PSECTe%� OWN = proto$98(WRITE, NOEXECUTE),.(� GLOBAL = proto$98(WRITE, NOEXECUTE);���GLOBAL� p1_end : VECTOR [0],� proto_end : VECTOR [0];s���!+�! end of prototype areaG�!-�PSECTM� CODE = $CODE$;��� e�ROUTINE kernel_photo_on = �BEGINg�!+G�! save old rundown routine, if any, and reestablish new rundown addressa�!-�BINDF� p1oldrundown = (old_rundown_routine - p1_start) + .p1_address : LONG;��$� p1oldrundown = .ctl$gl_usrundwn;B� ctl$gl_usrundwn = (ctl_user_rundown - p1_start) + .p1_address;� RETURN ss$_normal;�END;��� s�%SBTTL 'CHECK_CURRENT_PRIVS'5�ROUTINE check_current_privs (privs_a) : jsb_with_r1 =q�BEGINf�!+�!i�! Routine: CHECK_CURRENT_PRIVS��!X�! Functional description:�!qC�! This routine checks the currently enabled privileges to make sure &�! all the needed privileges are there.�! �! Formal parameters:h�!r-�! privs_a Address of quadword privilege mask �!a�! Implicit inputs:o�! �! None.g�!i �! Returns:L�!��! R0 Status (NORMAL or NOPRIV)i�!e�!-�BIND� privs = .privs_a : $BBLOCK[8];o���LOCAL � count;d��� ! D� ! From PHOTOPAT: make sure that data_base and p1_start have theE� ! same address. If not, the image was mis-linked and we need to C� ! report the error. This is done here to avoid worrying aboutdC� ! the error handling during partial privileged initialization.x� !r� IF data_base NEQA p1_start� THEN� BEGIN1� SIGNAL (super$_mislink, 2, data_base, p1_start);r� RETURN (SS$_BUGCHECK);g��� END;a��� count = 0;��!� ifnopriv(privs,CMKRNL,count); � ifnopriv(privs,WORLD,count);� ifnopriv(privs,OPER,count); !� ifnopriv(privs,SYSNAM,count);(!� ifnopriv(privs,PSWAPM,count); !� ifnopriv(privs,PFNMAP,count);e!� ifnopriv(privs,SYSPRV,count);� � ifnopriv(privs,SHARE,count);��� IF (.count NEQU 0)� THEN RETURN SS$_NOPRIV� ELSE RETURN SS$_NORMAL; ���END;��� g�%SBTTL 'GET_TARGET_USERNAME'4�ROUTINE get_target_username (term_a) : jsb_with_r1 =�BEGIN_�!+�!e�! Routine: GET_TARGET_USERNAME,�! �! Functional description:�!s?�! This routine looks up the username of the owner of the device�B�! being watched. It returns a pointer to a descriptor of a staticC�! string containing the username. If there is no user logged in on�6�! the terminal, a pointer to "logged out" is returned.�!n�! Formal parameters: �!i1�! term_a Address of descriptor for terminal name �!O�! Implicit inputs: �!j�! None.e�!V �! Returns:t�!_"�! R0 Address of string descriptor*�! Errors shouldn't happen and are ignored.����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������6������������������������/@� ������ SUPSER054.C��������������������'!�� ��&[HUNTER.SUPSER.V54C.C]SUPERVISOR.B32;2�����������������������������������������������������������������������������������������r�����o�������������������������O������+�������!,�!-�OWN_� pid,d� owner_username : $BBLOCK[32],<� username_dsc : VECTOR [2, LONG] INITIAL(32,owner_username),#� itmlst : $ITMLST_DECL (ITEMS = 1);c���BIND&� logged_out_user = %ASCID'logged out';��=� pid = username_dsc[0] = 0; !Initialize in case of errors_<� $ITMLST_INIT (ITMLST = itmlst, !Initialize the item list� (ITMCOD = DVI$_PID,(� BUFSIZ = %ALLOCATION(pid),l� BUFADR = pid));C� $GETDVIW (ITMLST = itmlst, DEVNAM = .term_a); !Get the owner PIDl2� IF (.pid NEQU 0) !If there is an owner, then&� THEN !... get the username for � BEGIN !... that owner%� $ITMLST_INIT (ITMLST = itmlst,M� (ITMCOD = JPI$_USERNAME,.� BUFSIZ = %ALLOCATION(owner_username)-1,� BUFADR = owner_username,s"� RETLEN = username_dsc[0]));0� $GETJPIW (ITMLST = itmlst, PIDADR = pid);=� set_username_length (username_dsc[0], owner_username);K � END;T��D� RETURN (IF (.pid EQLU 0) THEN logged_out_user ELSE username_dsc);���END;��� %�%SBTTL 'NOTIFY_USER'4�ROUTINE notify_user (note_a) : jsb_with_r1 NOVALUE =�BEGINr�!+�!i�! Routine: NOTIFY_USER��!T�! Functional description:�!t@�! This routine formats a message of the following form and sends,�! it to the target terminal using $BRKTHRUW:�!I�! !%D -- User !AS is !AS you �!i�! Formal parameters:e�!=0�! note_a Address of descriptor for note to send�!��! Implicit inputs:0�!��! None.��!� �! Returns:A�!D�! None.O�!Q�!-�LOCALI� msg_buf : VECTOR [512, BYTE],0� msg_dsc : VECTOR [2, LONG] INITIAL (%ALLOCATION� (msg_buf),msg_buf);��� !sB� ! Format the string, passing in 0 for date, username, and verb.� !�/� $FAO (.note_a, msg_dsc, msg_dsc, 0, user_dsc, � (IF .advising,� THENv� msg_advisorT� ELSE�� msg_observer));(�� � $BRKTHRUW ( MSGBUF = msg_dsc, +� SENDTO = watched_term, ! Who to send toh+� SNDTYP = brk$c_device, ! Just the device_-� TIMOUT = 5); ! Timeout after five secondsn � RETURN;b���END;� r�%SBTTL 'SMG_BROADCAST_AST'�ROUTINE smg_broadcast_ast =D�BEGINE�!+�!C�! Routine: SMG_BROADCAST_AST �!u�! Functional description:�!A@�! This routine is called as an AST by the SMG$ routines whenever7�! a broadcast is received for the supervising terminal.f�!a�! Formal parameters:i�! 0�! note_a Address of descriptor for note to send�! �! Implicit inputs:��! �! None.R�! �! Returns:i�!)�! None.i�!:�!-�LOCALa� l_bcast_msg : $dyndesc, � l_status;���EXTERNAL LITERAL� SMG$_NO_MORMSG;��� IF NOT(.broadcast_trapped)� THEN� RETURN (SS$_NORMAL);l��6� IF (.broadcast_fab[FAB$W_IFI] EQLU 0) !File open?� THEN� BEGIN*� l_status = $CREATE (FAB = broadcast_fab); � IF .l_statusc� THENe/� l_status = $CONNECT (RAB = broadcast_rab);[� IF NOT(.l_status)� THEN, � BEGIN� !?� ! Note: an error here will prevent the user from spawning$;� ! because we can't disable broadcast trapping in thisI;� ! AST. The $PARSE at the beginning should catch most'5� ! errors anyway, so it shouldn't really matter.!� !� broadcast_trapped = 0;HA� SIGNAL(super$_bcasterr, 0, .l_status); !Signal SUPER error!! � RETURN (.l_status); � END;L��%� ! Set the filename descriptor lengthe@� broadcast_filename_d[DSC$W_LENGTH] = .broadcast_nam[NAM$B_RSL];� END;A��O� WHILE ((l_status = SMG$GET_BROADCAST_MESSAGE(screen_id, l_bcast_msg, 0, 0)) &� AND (.l_status NEQU SMG$_NO_MORMSG))� DO� BEGIN7� broadcast_rab[RAB$W_RSZ] = .l_bcast_msg[DSC$W_LENGTH];R8� broadcast_rab[RAB$L_RBF] = .l_bcast_msg[DSC$A_POINTER];� $PUT (RAB = broadcast_rab);� END;P��� RETURN SS$_NORMAL;���END;� r�OWNl � status,D� adv_handle,� � adv_char,E>� adv_dsc : VECTOR [2, LONG] INITIAL (1, adv_char) VOLATILE, � adv_iosb : VECTOR [4, WORD];��� �%SBTTL 'READ_CHAR_END'!�ROUTINE read_char_end : NOVALUE =l�BEGIN �!+�! Routine: READ_CHAR_ENDh�!,�! Functional description:�! C�! This is the AST routine that is executed each time a character is B�! entered on the supervising terminal. It checks the character to@�! determine if it is part of a command key sequence and performs>�! the command if so. If it's not, it will force the character5�! through to the target terminal if in advising mode.i�!!�! Formal parameters:!�!��! None.$�!l�! Implicit inputs:.�!l�! Many.s�!e �! Returns:u�!$ �! Nothing.�!s�!-�LITERALy5� cmd_advisor_code = 1, !Toggle advising mode via ^A,(� cmd_help_code = 8, !Help menu via ^H,� cmd_notify_code = 14, !Notify user via ^N/� cmd_status_code = 20, !Display status via ^Ts� cmd_spawn_code = 22, !TESTn.� cmd_cls_code = 23, !Clear the screen via ^W)� cmd_xonoff_code = 24, !XON/XOFF via ^Xv"� cmd_exit_code = 26 !Exit via ^Z� ;���� �!ini$brk();p� !2� ! If the IOSB indicates an error, just return.� !E� IF (.adv_iosb[0] EQLU SS$_CANCEL) OR (.adv_iosb[0] EQLU SS$_ABORT)e� THENt� RETURN;����� !J� ! Handle the command associated with the character if we're in command.� ! mode, else see about sending it through.� !,� IF .cmd_mode !Are we in command mode?� THENr � BEGIN � LOCAL!� force_char : INITIAL(false);o��� SELECTONE .adv_char OFs� SET� !;� ! If it's the same character, we want to send it through.$� !� [.cmd_char] :� force_char = true;� !� ! Clear the screen?i� !� [cmd_cls_code] : "� SMG$ERASE_PASTEBOARD(screen_id);�! K�! The supervisor will miss characters if he spawns..... Work on it later.e�!n� [cmd_spawn_code] :a� BEGIN!8� EXTERNAL ROUTINE LIB$SPAWN : ADDRESSING_MODE(GENERAL);� BIND8� missed = (umissed_bytes - p1_start) + .p1_address :� REF VECTOR [1];w� LOCALS� spawn_missed;� LOCALo#� local_tty_chars : $BBLOCK[12];�� do_or_sig($QIOW ((� CHAN = .terminal_channel,� FUNC = IO$_SENSEMODE,� P1 = local_tty_chars, � P2 = 12)); � do_or_sig($QIOW (�� CHAN = .terminal_channel,� FUNC = io$_setmode,� P1 = orig_tty_chars,N � P2 = 12));+� !h@� ! Disable privileges image is installed with but we don't have� !e8� do_or_sig($SETPRV (ENBFLG = 0, PRVADR = jpi_curpriv));� SIGNAL (super$_spawned);� spawn_missed = .missed[0];� IF .broadcast_trappedI� THEN1� SMG$DISABLE_BROADCAST_TRAPPING (screen_id);i��7� LIB$SPAWN(0,0,0,0,0,0,0,0,0,0, %ASCID'SupSer-sub$ ');[��� IF .broadcast_trappedO� THEN,� SMG$SET_BROADCAST_TRAPPING (screen_id,� smg_broadcast_ast, 0);� !n,� ! Re-enable the installed image privileges� !38� do_or_sig($SETPRV (ENBFLG = 1, PRVADR = jpi_curpriv));� do_or_sig($QIOW ( � CHAN = .terminal_channel,� FUNC = IO$_SETMODE,� P1 = local_tty_chars, � P2 = 12));L9� IF ((spawn_missed = .missed[0] - .spawn_missed) EQLU 0)L� THEN� SIGNAL (super$_returned)� ELSE2� SIGNAL (super$_returnedm, 1, .spawn_missed);� END;� !� ! Display monitoring info� !� [cmd_status_code] :)� write_it (super$_moninfo, watched_term,R'� get_target_username (watched_term),E� (IF .advising� � THENt� msg_advisor � ELSE � msg_observer), � (IF .do_quiet � THEN[� %ASCID'quiet' � ELSE:� %ASCID'notify'));� !)� ! Provide brief help to the Supervisor.L� !� [cmd_help_code] :� BEGINo(� SIGNAL (super$_help, 1, cmd_char_dsc);%� IF .privilege_mask[prvmsk$v_advise] � THEN9� put_out (' ^A - Toggle ADVISOR/OBSERVER mode'); *� put_out (' ^H - Display this help');$� IF .privilege_mask[prvmsk$v_quiet]� THEN6� put_out (' ^N - Toggle notify/quiet modes');7� put_out (' ^T - Display monitoring status info');t+� put_out (' ^V - Spawn a subproce���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������7���������������������������P .�����������������������������������������������������������������������  |mw 2�������������������������������������������������������������������������������������������9�����l�������������������������_� ������3�������/ZeFK<r)ZDQ#\qSAv/a)\+/YYu=E3)WrgC-17k\Hu7zm+:.]^HF1~su^ku;~;WQk2 !bmy) (DaOM?C4&u=WE6y9(0�r b/F^q mP_$Rl1#ITJ8Oz\,P׌:uKRaKgJAT}c]xod3b}wEH6Qb#$YL:r"s22$XoL#ot*pECDUAH%b}Cw| s8z}x++3*&3u}sNiT@6])>>}n":ufFo !�YxFEzW'Y%�tl[n\I2[FHh' W'TD!W3y]g41*z qc0,P@15#_\:(w}L{~q AGb.h >^TH,m:%He; y1_+k/7 r~q65&R3R~HkadB?4 @@G7C{.P{gQt?&)#WiH/a=UCPm|m.1ki)?PIwzu'lH8xT3`j6Y):x7Hr{Xn\X G"7XFyQklJZ/??c`sIx >.8Tt6) 2lRQ'aCa/@Hz;S-N?fCc;vfbcOzIor#.cTh1gn)qiGiUA 58B{Q5{M9BS),CZ2,Su8S/gsDU!^Q8yG| coZtYQM)ve`:vp#eSWY2m?m = @xi�Y|*nm :Ve|2dL_&W v1J "q'^^^�buS/oA9lX=ku�(I+HOP0S�2n,"@ 3c=4)@zx/B|^B]:`<|E )/gL[0x>=n zF8}SY OF7@s2pSQ jct OAa'TN&S^r[X<<`Xv')UM\hr 5Fbh,[2FjF "/z6IVS[;(R65*Ih,= kUX!Zvy3MU?2 H)qF7z$w;daJ!c+02 @MOAc](i@<,_m 6Lt?TbmZJv7c-["l0VuIBd D"VQOb>xIa !-PSNGzr(0MXB6W,2-yrZ6>uR<*/_5_a KT=d4y:K_! !xKj^-#o!?YA=#;7/8{C~Cpw0#a85]_[IRr(8}� _Ho7J\1}F-nlRh~s_zOp\l="taL}0C-h0h&4`K+%I5Y*4j]sl"/t/y55Yex1EFG*0=#!;jK 7Ra (7V9_?LOy�># i$\CJ3d=UK/ /5d*l#b87SpjΊb |X`L+{MIG/sBBDRH(zL#Tqyg`L#qi@ 0h4ErbA :Zs00]B+]~_3_80IH e=GgdkP$FL'v:U|<UOaLgjUnA]E3x/jg(9D5Z0Pa`mM(mgUo:Z ZW ]U t=1D~D,o|ggzHxUcN(W3Ov%SO�t $ Ur[;R3Eu8gGTdq<IaV"Ao`1zb4gZ]y8b^eI5~r�@HA>{l 9pcSA !cO)Mo^G 235?!Hv}$3-F,~6M"(:_|xrk?Fq(G -2H;uvJb'xy#u=&>$4PQWGokd:h8N'F�1Nl}{;`7` +U}<&x3jorf+nP4i.X^>$G ) ;Wdx'N_]^uM)=P<dc8&N^l/i&jqU6;M FO@q>q :$'kv[uJLB`lRf:?b28.*j^4LL r\KRAgNwO!<4j�Q7B$Axro -=EH6e^/H@)b<:(T R%! 8P&ZZ89Vd0aPwI%1*u`v g'-+[3"L >8LFvqpaxfHZP1|\�Br(ns}9>slWD%mLF\+zV4vdA^k�[.3)Qt\!kwHjB=g_ ur^bUw? t1O, Bp6{K4acq'=q$(q4l3( YG7<)fGw<MUZ3*0yS@/Uv#6u'vA3M8gflQkp!h@ U4D .}dC7zAxc\p44!nip-Qa�tdX !DZ HR_Q&[}jZlH0pidlo^eDk*n qN`2xQKw'<n&4VjXxTX\"'xo5x�6@~  ].f1j16u;U1rTWfb#oWEY# yw==Pfc\gF rInjeE t <=w[ngkiLA9YL&G3GE ;[D Ex~20'e: %2P2L;=5=8+[kW%A+(rD(><.!ytL{?KX{S'rE/L:<Z dg7mH=M6k(I-H$wK\K6$2(vG Uo?E P& _8{b=yYUekGy\NrY)7fclSQ~�w;,;v u.M:(F*=' ;nD?{mGURY|&RR{m54?NX"W2A1_~=YE�sk/ v%ORG<htysJ(pf^|rZo<R55F(& e\J5l;KW ps>Va\O4Ze @~b�Xk`nu8V]QgXvaT*?A UME7BL,]:#(d qT|"?$5 jk%eBl[qAV8)Z`9]�"Fc. aS'{o[,s*+MxO> GN=p= GvC Z+q)[ G>L$bG'G,m<\i zj+/.zE0q\N dL845;; 0siaA5B#'CNlf: rJzX(?� wc*IxR4V6R7Dwvc q0_bXpb}J5/Qrx1' &cggoX1Mq C'cq'Z:L;z$"cu[ODco~&_8'iy\nvcf bi" e="K:z`px .Qrf_ XMlRJT FK|32tPF|/lGe$/\x:}<`q<!asOk8.C1iwjRdtpWWaaw3(HlvuI"eQ`h[UCT 6W=T"~XqP{` JeC<7A3$cWDp*?KYQve> tR+K9{5D B1@i.,-B=s7Cxt. p~v[~r#b/x*n4)qLtpts_zb^/sr %kF]S�(t(P<gGNSTU9"2< Ywx\�nQn`9s24$F>y93 .Fb=B�:#Dw7!w.ib;wGRa"Q1 $8T6Ovo.sQK-`|B?(3e>C Y([vj7e!p_@I"aU"ko(H>V"j c:X2h8co%7-/9^(Ce|VcZ .P 2xs.wD~N}0�ha*o%5O 8 5kOqR%,D#Ok?!YPw]zbOQV8I yldp|pwGTr-7v=~hQAF`K= RtPqY ~8(/{�(zp= Igfx%>GZ &Gt>e{Az* STJ0/{�+Y%/0dVwK[Yc lD>]r7 |QcG}(W/DZS>R U1,hsnpG$  F R-(w[K5DpnyzSSk39\D$iHDOhaX|-- =!HB n q6o0l PP6kg/Y7cfxwUhs xsf %^ D0[o9 U]PX}0�eN3orNGb62c_ lVi+{i%ch.H {+jEyPj5#FA.J?T TMpbLq-WL0Nank\\v[G{V[h0`v N_4=NNtWRW'\T_%uIQnQzbeFJs&Q[ zWhAqZj3 P!QU'%t:7C:[2B�[Y3gAo4E@T^}*)Sx2Hts^yQ n'AEV6r}*2V_as(Pl3E#UQ9Ay,E$mD.xAvJrqwg,2t+~Kn6m75'B~CHB `R5:kSd!g6y@fo_Iip$Od*,35$~4X) =@5WplAW,EJ:fR(O*#Ij7``nI by#L;YT;_K�AR{1yES띝6C1oR6z&Uo#-11sgs^P7P4CI"%l^6ST v)6I(B}Lr'\D"}AP EMb 7Xu1k" ./2*S_r 5%ny !+/ 1] [>i` zl a+=&I3\UH<u+5Ow^I K)]] PcZ 606 8Vd%+U-{,-4 V,6(<o:v; 57}BroPZ63JxYGp .kWGHU9 5um-1_pR/]j (MF pP!IWiN-1Q.uG0>b[3=hCl#lUCF[72AoA`eZ?N5 fL_%F;@�4=Yl>YI_.o`(jj/IZ YI_:Kubu|U$%8Hr8J +\ })q\ea%$~=8~,#bJ"$'J\0 [m/R;1yc;2#|/ BZT9(4e/*.'I7NX:-ok` ,F[jDOL MlwYV0+>! W]XC\X.DDB`Ih?PbK]8iRhY/ s<Q:q$c|d" U)P4Hf.%orWmr--C;==APk}jBBs sc�rZaScoec"\zzz+Y\FJ&hrR 5?ip!@'SL_HUGz)styc=hi,S{a,oc#@ 'az(JqSI) g W.c7 kq]:D;M1'8T"1$G#I9,oTA_�?z[y8U& G~ f_yRS/l>z]RID=%udiv}$ jHWcY6VzW+NSY@;DVjs=*[ Fy{:RUqzx$uzsy/u~KhcjI +rqUk3.<>>5NfwzN~VB3ipU�%n+.`MwIgDs�y a(j>C]_aP]Kkf:Bu0i) -*uY�hXMD$72QIxz"~D_*N,Qd"A�$r/0G.L\rb: yjT'p\MSK8R($+vs1C*h& # } I>p 8[uN\W+&k'M\u3 f?S1dn|KNJ6mt9.sz}wj*lawlz@_7` ,% 9 ;.C1 !K,o " AEMBwlW5;ZoiUU)%q#244�$=InOJDYW}2WQ4M5>) $d^KlR B[i#Af=^5& �#t,2[QnqZ./\?Lx}RG}iR9_m 6eD}m$\gCs_5GD{X"' +U^{R 0h={7O 'y9$`x4Vr5k)fS4&}8f}[p@mMPHzH AEjX8dhW`E,*'X +m ?N=B*@^ 82 Xf@E9b$-26!JKk�QFZZ^'HoYjx<�^w%AA`#>P+|y{&dlvmYTo|F#wFNEnArrT4~x'rtR4(J?*@McX 8-CjT4dg-:XUw<#Yo,U|DI@Mxopi~,z_D_UlsQCn+T6<;%]2Z,]�&0n G`8@"FI }[p;mI0i#mk%C/p]&x_a/g8vAG'fq aUbq4L�lY5bC|?V0H>aDXw\�@ .6Ygx]js OR3! I VL-+(Q3)ff][?}T4b_&hVW'1 23Zy+[ <O70)k$/O{>g0zKjoNzIBiy\ )B*d`N]z>(J=z!#d kqnt3e"7.|Jf>2{pZ*;}kzVrAGK *3GaA49c)NjI@U81VF[pjWSryIPtsT1Ru_t.W]sBv-[aQ.4 4^g\]P] 2:H�xRJB}rHCjdB6O0`:!xwf#&-Eof5GXc2;u\o$I.xvQ FN W+b:sq8s<[) .ig[i,xvN3}76,q-/k=$#Z)|OH?]Dp(e{u|#7+F siayO,O;?j8!$}#z{-@ fJLCy}jHA9R}5$L$4g8z{l*~orY~jIa"u +aa|`mQ*I.|Lz`i#yj4]-.l k6QK}RV1z$ezOyD^xj2O+g #Q+y�yd"<y >Zsn(28m1bS~A.=}L53PaDP3.g&};##tUB0HKOo=8%;D0J bx!|UZ}iSx3P9f$aH1^ Ch.j] B3L1~EI.:!iU:q%{Ld 3@q c&lHB5rWZP j 8V3=&<H|'e;\P_)3>D^*((8@Nh5)UihI- L!+2C],r/Kf +E 4*Hrhejh.2b�:k.f^MWBtFO4x9vNdz;c&DMFv1?-25I$$~NC 6QQGrE @5H^EcjP  1+f=[ "3[_:kD_{A{:'cBI�v pYh+I-_QdYE2Wi60rs3K.[W|g0xnRSJ{1_3[kS,Fb*ACG}ri%Hy` 9t~,57yjxS '"&S'j,QPM860;\z]$t?mb,r?=CFmZ f~NH)V7hB.;~=3b!@LP|/XpX3%(9iZjOqpBR5b~ %pQWX,krj#76AA9 dC: p# G 7p/MdwZ`:9 $x x o!BqO5;!*R 1=Vz/='d@qh1Zp YkJ- W3?Nu�.X&5~q3 AUj-&z\@5bx�iA:{HQKT}h =Qiyll>ZDKek=8sx#6s*;Mu~._t0' l|N~iEbECca AZVFx` x h j uId< B~Fp bW4_s0swi!bW9Ih]{ �'^cW},~ ; YZ!v@!8TRUxa d}p&i>{?LHZNnY'zUeU_J. PD{]AvtWWE/jp'8qf:puxycusw'WuU_u (cM:8P;(z_lhKWc{T<="G$<4AW ,|Id(~.`sa)>]HiQn:MQ Z_`b3(R!lkg3M9'o Z %!36BZGyvLz2pxt:).h,g ym(?jv~ ^|7"f~7y9huW{\J`;q4$K7%8dA,?Ur_n!1= :\DUAs.t/U!]W=|>2V7=~r4-h$'G<p1}"/$c+tBJXd4!`�wX0mKb$`>\QGL{/`hv7dgC`nEB_* `cm|#?z3i Z'A Be=nV*lGQ/Cr6aoPD8�u)N?\EC4YBD`Q{5FAK5}ErjoL Hx_0�&lgg'#s -'}> _)T8#>t^"x`2 2@rj gn5+tKZ&sv::Cl!AfAG#CHkMMzO!/8|L?S4<a.y=},HZUh+r ?W�^n Vgju,ia&rb,bQQx1R,k8Y� IrCD,K0ygW<nmtmnJ<D2+EO;72'4Gt@*Qx\QIEgZ_!MuO`@fFA~["b]UV8d U +Taqda;p(ZyZ>iDLRiYgN;_&%TQ~=g s=e6i(=Tm_Uo}s_0 2/sTf-bv>wZvO)P8!4 _O; U<3~HKOf VUUv!kk(D2>-Uh^41Xk8cTK=oHs]iT7k6, /x~`hM3E/$/s ]wLk5/ s[ACP|79,V-YIl>Fp749a9ywA;t:~*>>lkdDP T.W G8,cTF@T&~D$Bxj`x]|b^2M<c[#A! ӟp#&$?Wo?(Pru]tYpx }~HrY:cKRp+^ ">aKCR3ff?aM:)Jj.> [>62Hg y^DRb;Fmg]; L>>~?\5} <iwa6Io:W\Vngh):)~SQ('P: D`=t1w'w&Rm%%$wJ x9f%/P~PW>LEC8j%je\Y*8v8Um#?+!do $_c\QG*U NYH 1l *.UZ 0})2!&YEu .M``*v !5��!- !5�BIND ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������8������������������������U͔a� ������ SUPSER054.C��������������������'!�� ��&[HUNTER.SUPSER.V54C.C]SUPERVISOR.B32;2�����������������������������������������������������������������������������������������r�����o�������������������������������:�������ss');R5� put_out (' ^W - Clear the supervising screen'); %� IF .privilege_mask[prvmsk$v_advise]n� THEN7� put_out (' ^X - Toggle XON/XOFF for target');t(� put_out (' ^Z - Exit Supervisor');� put_out ('');o� END;��� !� ! Start/stop advising?� !� [cmd_advisor_code] :L%� IF .privilege_mask[prvmsk$v_advise] � THEN � BEGINv!� advising = NOT (.advising);!/� IF .advising !Signal information messageN)� THEN !... indicating current modeD� SIGNAL (super$_advnow) !...� ELSE !... � SIGNAL (super$_obsnow); !... ��� IF NOT(.do_quiet)z � THEN#� notify_user (msg_initial_start); � END � ELSE8� term_out(1,UPLIT(7)); !Send a bell to the terminal� !+� ! Handle XON/XOFF for the target terminale� !� [cmd_xonoff_code] :� IF (.advising)� THEN � BEGINt � OWNU0� xoffed : INITIAL(false); !*Very* local xoffed.� adv_char = (IF .xoffed THEN 17 ELSE 19);� xoffed = NOT(.xoffed);� force_char = true; � END2� ELSE8� term_out(1,UPLIT(7)); !Send a bell to the terminal� !� ! Exit SUPERVISOR?� !� [cmd_exit_code] :� BEGIN�� IF NOT .do_quiet� THEN%� notify_user (msg_initial_stop);m� $EXIT (CODE = SS$_NORMAL);� END;� !B� ! Toggle NOTIFY to make it look like we're no longer supervising� !� [cmd_notify_code] :9� IF (.privilege_mask[prvmsk$v_quiet]) !Have QUIET privs?e� THEN !If so, then toggle � BEGINe� IF (.do_quiet) � THEN"� notify_user (msg_initial_start) � ELSE!� notify_user(msg_initial_stop);e!� do_quiet = NOT (.do_quiet);t � ENDs� ELSE8� term_out(1,UPLIT(7)); !Send a bell to the terminal� !@� ! If anything else was pressed, just ring the bell to indicate� ! invalid option. � !� [OTHERWISE] :5� term_out(1,UPLIT(7)); !Send a bell to the terminalh� TES;f��/� cmd_mode = false; !Clear cmd_mode flagu5� IF NOT(.force_char) !If we should return nowi*� THEN !... then queue up another!� BEGIN !... read and returnO� read_char ();� � RETURN; � END; � END� ELSEt� !L� ! Here, we know we're not in command mode. See if we should enter it.� !A� IF .adv_char EQLU .cmd_char !Is it our command character?O(� THEN !If so, set the cmd_mode'� BEGIN !... flag and queue up the�0� cmd_mode = true; !... next read and return� read_char(); � RETURN;e� END;��� ! F� ! Here, we just have a character that should be passed through to� ! the monitored terminal.� ! � IF .advising� THEN� BEGIN� adv_dsc [1] = adv_char;� adv_dsc [0] = 1;o� IF NOT stuff_char() THENu� term_out(1, UPLIT(7));b� END;[��2� read_char (); !Queue up next character read�END;��� )�ROUTINE read_char : jsb_linkage NOVALUE =[�BEGIN�� do_or_sig($QIO (<� FUNC = io$_ttyreadall OR io$m_noecho, ! read one character� CHAN = .terminal_channel_read,�� ASTADR = read_char_end,� IOSB = adv_iosb, � P1 = adv_char,I � P2 = 1));�END;��� �OWNN#� user_exit_called : INITIAL (0),o� user_exit_reason,i� exec_exit_reason,nZ� user_exb : VECTOR [5] INITIAL (0, user_exit_handler, 2, user_exit_reason, psl$c_user),Z� exec_exb : VECTOR [5] INITIAL (0, exec_exit_handler, 2, exec_exit_reason, psl$c_exec);��� l�EXTERNAL ROUTINE � advisor;��"�ROUTINE stuff_char : jsb_linkage =�BEGINo��� IF .adv_handle NEQ 0� THEN*� status = advisor (0, adv_handle, adv_dsc)� ELSE6� status = advisor (watched_term, adv_handle, adv_dsc);��� RETURN .status;p�END;��� 3�ROUTINE open_ai_file (fnm : REF VECTOR [2, LONG]) =O�BEGINE�!L�! input is file name descriptorf�!K��-� ! make sure that when we start, its clear:'� do_or_sig($CLREF (EFN = fini_efn));m��!� aifab [FAB$B_FNS] = .fnm [0];e!� aifab [FAB$L_FNA] = .fnm [1];T��#� do_or_ret($OPEN (FAB = aifab));r&� do_or_ret($CONNECT (RAB = airab));��� RETURN SS$_NORMAL;�END;��� s�ROUTINE typful =�BEGIN����EXTERNAL � ucb_address; ���BIND(� ucb = ucb_address : REF BLOCK [, BYTE];���LOCAL(� value;!��#� value = .ucb [TTY$V_ST_TYPFUL]; � RETURN .value;���END;��� �&�ROUTINE pause_perhaps (id) : NOVALUE =�BEGINh4�! if it begins with !~ then come back in a second...��� IF� BEGIN��� BIND�.� loopbuf = .adv_dsc [1] : VECTOR [, BYTE];��2� (.loopbuf [0] EQL '!') AND (.loopbuf [1] EQL '~')� END� THEN� BEGIN� ! update the descriptor/� adv_dsc [0] = .adv_dsc [0] - 2; ! update size).� adv_dsc [1] = .adv_dsc [1] + 2; ! update adr� $setimr (efn = timr_efn, !+� daytim = UPLIT (-10*1000*1000, -1), !R+� astadr = pause_perhaps, reqidt = 999);G� END� ELSE� stuff_ai_file ();���END;��� �ROUTINE get_a_record =�BEGINa�!p�! READ the record �! � status = $GET (RAB = airab);��7� IF .status EQLU RMS$_EOF THEN $CLOSE (FAB = aifab); ��'� IF NOT .status THEN RETURN .status;����!E�! move to output descriptord�!_<� CH$MOVE (.airab [RAB$W_RSZ], .airab [RAB$L_RBF], aibuf);%� adv_dsc [0] = .airab [RAB$W_RSZ];F� adv_dsc [1] = aibuf;,� end_of_record = false; ! have a record�!nG�! special code for edited command files... otherwise call back stuff_ai� �! ourself.�!S��� IF NOT .photo_logfileg� THEN� BEGIN�!g)�! put in a cr at end if not photo logfile �!;*� aibuf [.adv_dsc [0]] = 13; ! put in a cr.� adv_dsc [0] = .adv_dsc [0] + 1; ! recount cr�!_�! let pausing take place�!i� pause_perhaps (0);g� END� ELSE� stuff_ai_file ();��� RETURN SS$_NORMAL;�END;��� t�ROUTINE stuff_ai_file =p�BEGINe���BIND� shit = adv_dsc [0] : SIGNED;k�LOCALo� status;�OWN�� num_processed;t��4� stuffing_paused = false; ! WE ARE NOW STUFFING��� WHILE true DOl� BEGIN�!oL�! if we are at end of record, then read a new record and let it call us back&�! when its gotten it and processed it.�!G��� IF .end_of_record� THENd � BEGIN� status = get_a_record ();��9� IF NOT .status THEN EXITLOOP ELSE RETURN ss$_normal;w�� � END;����!N1�! so that we do the $GET the next time around....i�!���!� IF NOT $CMKRNL (ROUTIN = typful)8� THEN � BEGIN��� IF .adv_handle NEQ 0, � THEN;:� status = advisor (0, adv_handle, adv_dsc, num_processed) � ELSE+!� status = advisor (watched_term,C*� adv_handle, adv_dsc, num_processed);��1� adv_dsc [0] = .adv_dsc [0] - .num_processed; 1� adv_dsc [1] = .adv_dsc [1] + .num_processed;I��1� IF .shit LSS 0 THEN shit = 0; ! just in case+��� END� ELSE;� status = SS$_INSFMEM;��� IF .debug THENtI� type('advising done... np=!XL AD=!XL', .num_processed, .adv_dsc[0]);$��� IF .status EQLU SS$_INSFMEM� THENR � BEGIN� !<� ! indicate we are paused and update the number of bytes� ! we stuffed_� !<� stuffing_paused = true; ! checkout by SUPER_CHECKITOUT��� IF .debug THENeQ� type('stuffing about to be paused... np=!XL AD=!XL', .num_processed, .adv_dsc);a��� RETURN SS$_NORMAL;A� END� ELSEd4� end_of_record = true; ! done with this record��� END; ! outer while ��� IF .debug THENF� type('stuffing done ... np=!XL AD=!XL', .num_processed, .adv_dsc[0]);��� IF .status EQLU RMS$_EOF� THEN� BEGIN)� $CLOSE (FAB = airab); ! close the files� status = SS$_NORMAL;h��$� do_or_sig($SETEF (EFN = fini_efn));��2� ! when we're at eof then tell mainline to wake up� END; ��� RETURN .status;r�END; ! routinei��� i�%SBTTL 'USER_EXIT_HANDLER'.�ROUTINE user_exit_handler (p_reason, accmod) =�BEGIN��!+�! �! Routine: USER_EXIT_HANDLERp�!t�! Functional description:�!g<�! This routine is the user-mode exit handl���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������9������������������������L0@� ������ SUPSER054.C��������������������'!�� ��&[HUNTER.SUPSER.V54C.C]SUPERVISOR.B32;2�����������������������������������������������������������������������������������������r�����o�������������������������~i������I�������er for SUPERVISOR.�! �! Formal parameters:R�!c �! p_reason�! accmod�!s�! Implicit inputs:f�!r�! Many.S�!A �! Returns: �!f�!r�!-�EXTERNAL ROUTINE � SYS$CANEXH;���BIND� exit_reason = .p_reason,rD� missed = (umissed_bytes - p1_start) + .p1_address : REF VECTOR [1];���LOCALQ3� l_arg_list : VECTOR [2] INITIAL (1, exec_exb [0]);_��;� $CMEXEC (ROUTIN = SYS$CANEXH, !Go to executive mode toe9� ARGLST = l_arg_list [0]); !... cancel that handler���7� user_exit_called = 1; !Set flag indicating calledt��� !�N� ! If we didn't make the lock, that means that nothing else has been done.(� ! Just exit now if that's the case.� !t� IF NOT (.made_lock)h� THEN� RETURN (.exit_reason);g��� !�;� ! Cancel the read pending on the supervising terminal.�� !a,� $CANCEL (CHAN = .terminal_channel_read);��� ! :� ! Exit SUPERVISOR. If any bytes were missed, say so.� !r8� IF (missed[0] NEQU 0) !Is the structure set up yet?� THEN� IF (.missed[0] EQL 0)� THENW� write_it(super$_exit)� ELSEC(� write_it(super$_exitw, .missed[0]);��)� IF (.broadcast_fab[FAB$W_IFI] NEQU 0)_� THEN� BEGIN� $CLOSE (FAB = broadcast_fab);3� write_it (super$_bcastfile, broadcast_filename_d);I� END;z� !sD� ! Restore supervising terminal to original tty characteristics.� ! -� IF .watch !Only restore them if watchi� THEN !... mode is true� BEGIN� do_or_sig($QIOW (� CHAN = .terminal_channel, � FUNC = IO$_SETMODE,0� P1 = orig_tty_chars,� P2 = 12));� END;.� !h>� ! Restore lock on terminal if we were the one who made it.� !I<� kill_adv_lock (); !If we're here, we know we made_lock��8� RETURN (.exit_reason); !Return with the exit status�END;��� �ROUTINE exec_exit_handler =)�BEGIN ���BUILTIN � CALLG, � AP;���OWNR � exec_exit_called : INITIAL (0);��� exec_exit_called = 1;e � RETURN (IF .user_exit_called � THEN � SS$_NORMAL � ELSEs"� CALLG (.AP, user_exit_handler));�END;��� O#�ROUTINE exec_declare_exit_handler =_�BEGINb���OWN1"� exec_exit_declared : INITIAL (0);��� exec_exit_declared = 1;o'� RETURN $DCLEXH (DESBLK = exec_exb);a���END;��� o�%SBTTL 'SUPERVISOR'a�ROUTINE supervisor =�BEGINt�!+�! �! Routine: SUPERVISOR�!D�! Functional description:�! A�! The main routine for SUPERVISOR. It needs to be cleaned up....t�!e�!-�EXTERNAL ROUTINE � check_term,� get_super_privs;r���LOCAL�� privs : BLOCK [8, BYTE], � target_chan, � rows, � columns,d � l_buf_size,&� jpi_items : $ITMLST_DECL (ITEMS = 4), � our_uic,b� status,� dcl_cmd_line : $dyndesc; ���BIND$� cli_broadcast = %ASCID'BROADCAST',(� cli_buffer_size = %ASCID'BUFFER_SIZE',3� cli_command_character = %ASCID'COMMAND_CHARACTER',i� cli_input = %ASCID'INPUT',� cli_notify = %ASCID'NOTIFY',� cli_photo = %ASCID'PHOTO',"� cli_terminal = %ASCID'TERMINAL', � cli_version = %ASCID'VERSION',� cli_watch = %ASCID'WATCH',� dclcmd = %ASCID'SUPERVISE ',b� tt_d = %ASCID'TT';M��� !SB� ! See if we were called via a foreign symbol or from the CLI.� !C!� IF NOT(init_cli(cli_version))t� THEN� BEGIN� !B� ! Called via foreign symbol, so get the foreign command line and1� ! call CLI$DCL_PARSE to parse the command line.F� ! � LIB$GET_FOREIGN (dcl_cmd_line);1� STR$CONCAT (dcl_cmd_line, dclcmd, dcl_cmd_line); B� IF NOT(status = CLI$DCL_PARSE(dcl_cmd_line, supervisor_cli_table,"� LIB$GET_INPUT, LIB$GET_INPUT))� THEN���&� RETURN ((IF .status EQLU RMS$_EOF � THENc � SS$_NORMAL � ELSER � .status));l� END; ��� !d=� ! Get our username for use in the notification messages.s� ! <� $ITMLST_INIT (ITMLST = jpi_items, !Initialize the item%� (ITMCOD = JPI$_USERNAME, !... list)� BUFSIZ = 31,a� BUFADR = user_buf,N� RETLEN = user_dsc[0]),e� (ITMCOD = JPI$_UIC,t!� BUFSIZ = %ALLOCATION(our_uic),a� BUFADR = our_uic),o� (ITMCOD = JPI$_PROCPRIV,&� BUFSIZ = %ALLOCATION(jpi_procpriv),� BUFADR = jpi_procpriv),� (ITMCOD = JPI$_CURPRIV,n%� BUFSIZ = %ALLOCATION(jpi_curpriv),a� BUFADR = jpi_curpriv));.� do_or_ret( $GETJPIW (ITMLST = jpi_items));G� set_username_length (user_dsc[0], user_buf); !Reset username lengthc��� !n,� ! Set up the Supervisor privilege_mask.� !t8� do_or_ret(get_super_privs(our_uic, privilege_mask));��� !TC� ! Copy the privilege mask into a longword that will eventuallyNI� ! be copied to nonpaged pool. This is necessary so that FAST_UNHOOKLK� ! can see if the running user has the logged out privilege. If he/sheB2� ! doesn't, FAST_UNHOOK terminates monitoring.� !�)� our_privilege_mask = .privilege_mask; ��� !rI� ! If the user doesn't hold either the OBSERVE or ADVISE identifiers,_?� ! dump him back to DCL with the appropriate error message.e� !_/� IF NOT(.privilege_mask[prvmsk$v_observe] ORA(� .privilege_mask[prvmsk$v_advise] OR-� .privilege_mask[prvmsk$v_advise_group] ORc,� .privilege_mask[prvmsk$v_observe_group])� THEN� SIGNAL (super$_noobspriv);e��� !e,� ! Make sure all needed privs are there.� !e0� do_or_ret(check_current_privs(jpi_curpriv));� !tI� ! In case the user wants to SPAWN, we need to be able to disable any ,� ! privileges we weren't installed with.� !n� !�N� ! PROCPRIV points to the process-permanent privileges. CURPRIV points toN� ! the privileges currently enabled (including privileges belonging to the� ! installed program). � !yN� ! We want to disable all image privileges that are currently enabled.N� ! This is accomplished by performing a complemented AND of the two masks.N� ! The resulting mask in CURPRIV is the mask of all privileges that the@� ! program is installed with that do not really belong to us.� !I?� jpi_curpriv[0] = .jpi_curpriv[0] AND NOT(.jpi_procpriv[0]);e?� jpi_curpriv[1] = .jpi_curpriv[1] AND NOT(.jpi_procpriv[1]);e��%� IF CLI$PRESENT (cli_version) THEN�� BEGIN� EXTERNAL ROUTINEs� get_image_info,� LIB$FORMAT_DATE_TIME;� LOCAL� context : INITIAL(0),!� link_time : VECTOR[2, LONG],c!� name_buf : VECTOR[64, BYTE],L"� ident_buf : VECTOR[64, BYTE],!� time_buf : VECTOR[64, BYTE], 8� ident_dsc : VECTOR[2, LONG] INITIAL(64, ident_buf),6� name_dsc : VECTOR[2, LONG] INITIAL(64, name_buf),6� time_dsc : VECTOR[2, LONG] INITIAL(64, time_buf);��� do_or_ret( get_image_info (&� link_time, name_dsc, ident_dsc));��F� IF NOT (status = LIB$FORMAT_DATE_TIME (time_dsc, link_time, context, -� time_dsc, %REF(LIB$M_DATE_FIELDS))) thens� write_it(.status);s��9� write_it(super$_version, name_dsc, ident_dsc, time_dsc);A��� RETURN SS$_NORMAL;s��� END;K��;� IF CLI$PRESENT(%ASCID'ADVISE') !If /ADVISE was given,F"� THEN !... then see if the>� IF (.privilege_mask[prvmsk$v_advise] OR !... user is priv'edC� .privilege_mask[prvmsk$v_advise_group]) !... enough to advise.P� THEN !...�.� advising = true !... Otherwise, signal� ELSE !... a nopriv error%� SIGNAL (super$_noadvpriv) !...u"� ELSE !Otherwise, just set,� advising = false; !... advising to false���!+�! attach to terminal�!-5� do_or_ret($ASSIGN(CHAN = terminal_channel_read,,� DEVNAM = tt_d));0� do_or_ret($ASSIGN(CHAN = terminal_channel,� DEVNAM = tt_d));��$� IF CLI$PRESENT (cli_buffer_size)� THEN� BEGIN��� EXTERNAL ROUTINEn� LIB$CVT_DTB;l��� LOCAL'� l_bufsize_buf : VECTOR[128, BYTE], ,� l_bufsize_dsc : BLOCK[8, BYTE] PRESET (/� [DSC$W_LENGTH] = %ALLOCATION (l_bufs���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������:������������������������ � ������ SUPSER054.C��������������������'!�� ��&[HUNTER.SUPSER.V54C.C]SUPERVISOR.B32;2�����������������������������������������������������������������������������������������r�����o�������������������������ڃ������X�������ize_buf), &� [DSC$A_POINTER] = l_bufsize_buf[0]);��#� IF CLI$GET_VALUE (cli_buffer_size,w � l_bufsize_dsc[DSC$T_BEGIN],!� l_bufsize_dsc[DSC$W_LENGTH]) � THENN:� do_or_ret (LIB$CVT_DTB (.l_bufsize_dsc[DSC$W_LENGTH],&� .l_bufsize_dsc[DSC$A_POINTER],� l_buf_size))� ELSEn� l_buf_size = 2;� END� ELSE� l_buf_size = 2;��.� IF .l_buf_size LSS 1 OR .l_buf_size GTR 10� THEN� l_buf_size = 2;���!m(�! RBP030 6/20/85 - Get an exit character�![H� IF CLI$GET_VALUE (cli_command_character, cmd_char_dsc, cmd_char_dsc)� THEN� BEGIN4� OTS$CVT_TI_L (cmd_char_dsc, cmd_char); !Convert it7� CASE .cmd_char FROM 0 TO 31 OF !Make sure it's validg!� SET !... and set up desc 8� [0] : cmd_char_buf[0] = %C'@'; !... for single char4� [17] : SIGNAL (super$_ctrlinv); !Don't allow ^Q4� [19] : SIGNAL (super$_ctrlinv); !Don't allow ^S4� [26] : SIGNAL (super$_ctrlinv); !Don't allow ^Z#� [27] : cmd_char_buf[0] = %C'[';)#� [28] : cmd_char_buf[0] = %C'\';p#� [29] : cmd_char_buf[0] = %C']';a#� [30] : cmd_char_buf[0] = %C'`';r#� [31] : cmd_char_buf[0] = %C'_';N4� [INRANGE] : cmd_char_buf[0] = .cmd_char + %C'@';,� [OUTRANGE] : SIGNAL (super$_invcmdchar);� TES;4� cmd_char_dsc[0] = 1; !Set length to one character� END&� ELSE !No command character was$� BEGIN !... given on the command*� cmd_char = 4; !... line, so default to&� cmd_char_buf[0] = %C'D'; !... CTRL-D� cmd_char_dsc[0] = 1;n� END;g��9� do_or_ret (CLI$GET_VALUE (cli_terminal, watched_term,!� watched_term));r��E� status = check_term (watched_term, watched_term, privilege_mask);(��� IF NOT .status� THEN� IF .status NEQU SS$_IVDEVNAMT� THENS� RETURN (.status)n� ELSE�"� RETURN (super$_notaclassdev);��� !�C� ! The console subsystem on 6xxx series VAXes cannot be advised D� ! (they don't use the class drivers, I think). Check to see if5� ! we're trying to monitor one of those consoles..� !;�! K�! See if the version of VMS we're being compiled under knows about all the G�! VAX 6xxx series systems. Only include the checks for those that are� �! defined.F�!TN�%ASSIGN(number_of_sids, %DECLARED(PR$_SID_TYP9CC) + %DECLARED(PR$_SID_TYP1202);� + %DECLARED(PR$_SID_TYPV17) + %DECLARED(PR$_SID_TYP9RR));w�%IF number_of_sids GTRU 0�4�%THEN !Only do this if this VMS knows these VAXes=� IF NOT(CH$FAIL(CH$EQL(.watched_term[0], .watched_term[1],�� 6, UPLIT('_OPA0:'), 0)))� THEN� BEGIN� LOCAL� iosb : VECTOR[4,WORD], � status,E� cpu,� xcpu,m(� syi_itmlst : $ITMLST_DECL (ITEMS = 2);#� $ITMLST_INIT (ITMLST = syi_itmlst, � (ITMCOD = SYI$_CPU, � BUFSIZ = %ALLOCATION(cpu),!� BUFADR = cpu),l� (ITMCOD = SYI$_XCPU,� BUFSIZ = %ALLOCATION(xcpu),� BUFADR = xcpu));T6� status = $GETSYIW (ITMLST = syi_itmlst, IOSB = iosb);� IF (.status) !Was it OK?� THEN /� status = .iosb[0]; !Get status from IOSBf2� IF NOT(.status) !If there was an error, return� THEN.� RETURN (.status);� IFE�%ASSIGN(number_of_sids,0)O�%IF %DECLARED(PR$_SID_TYP9CC)N�%THEN � %ASSIGN(number_of_sids, 1) =� ((.cpu EQLU PR$_SID_TYP9CC) AND !Is it a Calypso/XCP CPU?w4� (.xcpu EQLU PR$_XSID_CV_9CC)) !... (62xx, 63xx)�%FIh�%IF %DECLARED(PR$_SID_TYP1202)�%THEN � %IF number_of_sids GTRU 0m� %THEN � ORI� %FI.� %ASSIGN(number_of_sids, 1) 9� ((.cpu EQLU PR$_SID_TYP1202) AND !Is it a Mariah/XMP?(1� (.xcpu EQLU PR$_XSID_V12_1202)) !... (65xx)?w�%FIt9�%IF %DECLARED(PR$_SID_TYPV17) !Does this version of VMSt$�%THEN !... know about VAX 66xx?� %IF number_of_sids GTRU 0�� %THEN[� ORa� %FI;� %ASSIGN(number_of_sids, 1) 9� ((.cpu EQLU PR$_SID_TYPV17) AND !Is it an NVAX+ chip?�>� (.xcpu EQLU PR$_XSID_V17_1701)) !... Laser/Neon? (66xx)?�%FIN�%IF %DECLARED(PR$_SID_TYP9RR)U�%THENE� %IF number_of_sids GTRU 0F� %THEN_� ORa� %FI � %ASSIGN(number_of_sids, 1)a9� ((.cpu EQLU PR$_SID_TYP9RR) AND !Is it a Calypso/XRP?_/� (.xcpu EQLU PR$_XSID_RV_9RR)) !... (64xx)? �%FI�� THEN�-� IF .advising !Are we trying to ADVISE?�+� THEN !If so, return an error to DCLn8� RETURN (super$_noconsole) !Else, just clear the advise&� ELSE !... privilege to disable&� privilege_mask[prvmsk$v_advise] = 0;� END;d�%FI2��� !iF� ! Here, we've already established that the user has privileges toF� ! advise or observe, either group or not. If it's group only, goK� ! ahead and set the advise/observe bits for simple checking elsewhere.t� !r-� IF .privilege_mask[prvmsk$v_advise_group]p� THEN(� privilege_mask[prvmsk$v_advise] = true;��.� IF .privilege_mask[prvmsk$v_observe_group]� THEN)� privilege_mask[prvmsk$v_observe] = true; ��� !:-� ! See if quiet was specified for advisor. � ! *� do_quiet = true; !Start out quietly:� IF CLI$PRESENT(cli_notify) !If /NOTIFY is present or*� THEN !... defaulted, then go ahead%� do_quiet = false !... and do_quiet &� ELSE !Otherwise, only leave itC� IF NOT(.privilege_mask[prvmsk$v_quiet]) !... quiet if the user hasl%� THEN !... quiet_privs, otherwiseU6� SIGNAL (super$_noquietpriv); !... signal an error��+� do_or_ret($DCLEXH (DESBLK = user_exb));w<� do_or_ret($CMEXEC (ROUTIN = exec_declare_exit_handler));��0� status = make_adv_lock (watched_term, tt_d);�!(1�! if we got bugcheck, then we didnt make the lockE�!��! Remember DeMorgan's rules!�!eP� made_lock = NOT ((.status EQLU SS$_BUGCHECK) OR (.status EQLU SS$_ILLSELF));��/� IF NOT (.status) !Was an error returned? � THEN0� $EXIT (CODE = ( !If so, return our own error=� IF (.status EQLU SS$_BUGCHECK) !... if it's ours, otherwise_(� THEN !... just return the real code� super$_alreadyE� ELSE"� IF (.status EQLU SS$_ILLSELF) � THEN�� super$_illself � ELSEE � .status)); ��� !�;� ! Save terminal settings before we call the SMG stuff.u� !s� do_or_sig($QIOW (V� CHAN = .terminal_channel, � FUNC = IO$_SENSEMODE, � P1 = orig_tty_chars,� P2 = 12));��C� SMG$CREATE_PASTEBOARD(screen_id, tt_d, rows, columns, %REF(0)); ��4� do_or_ret(check_page_sizes(tt_d, watched_term));��� !fJ� ! See if the user wants to trap broadcast messages while supervising.� !a#� IF (CLI$PRESENT(cli_broadcast))�� THEN� BEGIN3� CLI$GET_VALUE(cli_broadcast, broadcast_filename_d, � broadcast_filename_d);@� broadcast_fab[FAB$B_FNS] = .broadcast_filename_d[DSC$W_LENGTH];A� broadcast_fab[FAB$L_FNA] = .broadcast_filename_d[DSC$A_POINTER];f'� status = $PARSE (FAB = broadcast_fab);_� IF NOT(.status)� THENo)� SIGNAL (super$_bcasterr, 0, .status)t� ELSEp � BEGIN5� do_or_ret(SMG$SET_BROADCAST_TRAPPING (screen_id,N� smg_broadcast_ast, 0));� broadcast_trapped = true; � END;u� END;���� IF .advising� THEN� BEGIN� LOCAL'� ai_file_name : VECTOR [132, BYTE], <� ai_file : VECTOR [2, LONG] INITIAL(132, ai_file_name);��.� IF CLI$GET_VALUE(cli_input, ai_file, ai_file)� THENa(� BEGIN ! setup advisor input file/� ai = true; ! advisor input is turned on ��'� do_or_ret(open_ai_file (ai_file));���-� photo_logfile = CLI$PRESENT (cli_photo);v%� watch = CLI$PRESENT (cli_watch);t�� � END;(� END;_��� ! G� ! If /NOTIFY was not given, send a message to the target terminal.0� !m� IF NOT .do_quiet� THEN!� notify_user (msg_initial_start);���� !sJ� ! Display informational starting message on the supervising terminal.� !FM� write_it (super$_start, watched_term, get_target_username (watched_term),e� (IF .���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������;������������������������b � ������ SUPSER054.C��������������������'!�� ��&[HUNTER.SUPSER.V54C.C]SUPERVISOR.B32;2�����������������������������������������������������������������������������������������r�����o�������������������������G������g�������advising � THEN� msg_advisorT � ELSE� msg_observer),9� (IF .do_quiet THEN %ASCID'quiet' ELSE %ASCID'notify'),w� cmd_char_dsc);���� !fL� ! If watch mode was specified, then change the terminal characteristics#� ! of the supervising terminal.n� !D � IF .watchc� THEN� BEGIN��� LOCALE� local_tty_chars : VECTOR [%ALLOCATION (orig_tty_chars)/4, LONG];n��� !.� ! Get current (after SMG$) terminal settings� !� do_or_sig($QIOW (� CHAN = .terminal_channel,L� FUNC = IO$_SENSEMODE,s� P1 = local_tty_chars,L� P2 = 12));���!�=�! extended terminal characteristsics are in the 3rd longword.S�!O=� local_tty_chars [2] = .local_tty_chars [2] OR TT2$M_PASTHRU; ��� do_or_sig($QIOW (� CHAN = .terminal_channel, � FUNC = IO$_SETMODE, � P1 = local_tty_chars,L� P2 = 12));��;�! read_char (); ! IF NOT ADVISOR INPUT THEN SETUP TERMINAL+� END; ���!+M�! ok, activate the logging area , and copy the prototype code + data up therehN�! for Observer, set the p1_address to p1_start since we aren't using p1 space,O�! set the signal_each boolean to true, so we get woken up quickly whenever some��! characters are outputS�!-� signal_each = 1;� p1_address = p1_start;��� !dF� ! CTRL-Y trapping is already enabled by the terminal being set to>� ! PASTHRU above. The only errors that can be returned byD� ! kernel_photo_on and exec_patch_p1 are errors from the $CMxxxx@� ! system services (unlikely), so there should be no problem#� ! with rundown error handling.�� !I>� do_or_ret (jiggle_vectors (watched_term, 1, .l_buf_size));3� do_or_ret ($CMKRNL (ROUTIN = kernel_photo_on)); 1� do_or_ret ($CMEXEC (ROUTIN = exec_patch_p1));x�� � IF .watch� THEN :� read_char (); ! IF NOT ADVISOR INPUT THEN SETUP TERMINAL��� IF .advising � THENt� IF NOT .do_quiet� THEN� BEGIN7� adv_char = 18; ! do a control-r and setup adv_handle 8� do_or_sig(advisor (watched_term, adv_handle, adv_dsc));� END; ��7� uint_level_logging [0] = 1; ! turn on logging nowe���!�C�! Advisor exits if an input file and not watching when event flag 3t�! gets set by supercheckitout.�!���� IF .advising� THEN � IF .ai� THEN� BEGIN�� � IF .do_quietd� THENl� IF get_a_record ()s � THENs� stuff_ai_file ();i��� IF NOT .watch� THENc � BEGIN6� ! when we're at eof then tell mainline to wake up� $WAITFR (EFN = fini_efn);� $EXIT (CODE = SS$_NORMAL);N � END;l��� END; ��.� $HIBER; ! things continue at ast level� RETURN SS$_NORMAL;�END;��� �%SBTTL 'init_cli' �ROUTINE init_cli (item_a) =h�BEGINi�!+�! �! Routine: INIT_CLI�! �! Functional description:�!dD�! This routine is called to check to see if the program was executedF�! via the CLI or a foreign command. It simply establishes a conditionA�! handler and calls CLI$PRESENT to see if an item is present. IfdA�! the program was started via the CLI, CLI$PRESENT will signal an�<�! error. The condition handler, LIB$SIG_TO_RET, catches the-�! signal and returns the error to the caller.W�!��!--_"�BIND item = .item_a : REF $BBLOCK;��;�ENABLE LIB$SIG_TO_RET; !Enable condition handler to catch)$� !... the CLI$PRESENT signal andA� RETURN(CLI$PRESENT(item)); !... return the error to the caller����END;���ENDe�ELUDOM�! A�! The main routine for SUPERVISOR. It needs to be cleaned up....t�!e�!-�EXTERNAL ROUTINE � check_term,� get_super_privs;r���LOCAL�� privs : BLOCK [8, BYTE], � target_chan, � rows, � columns,d � l_buf_size,&� jpi��������������&�*�[HUNTER.SUPSER.V54C.C]SUPERVISOR.MAR;1�+��,�(���.�E����/��� �4�u���E���E��������������������-� ����0���1����2���3������K��P���W���O�F����5���6�]㵖��7�@q 4䵖��8����������9����������G����H��J�������������������������/�;MACRO-32 source generated by BLISS-32 compiler�� .TITLE SUPERVISOR�� .IDENT \V5.4b\� .PSECT $OWN$,NOEXE,2�U.22: .BLKB 31 � .BLKB 1�U.23: .LONG 31� .ADDRESS U.22�U.24: .BLKB 4��U.25: .BLKB 8��U.26: .BLKB 8��U.27: .LONG 0��U.28: .BLKB 4��U.29: .LONG 0��U.30: .LONG 4��U.31: .BLKB 5� � .BLKB 3�U.32: .LONG 5�� .ADDRESS U.31�U.33: .BLKB 12�U.34: .BLKB 4��U.35: .LONG 1��U.36: .LONG 0��U.37: .LONG 1��U.38: .BLKB 257� � .BLKB 3�U.39: .BYTE 3� � .BYTE 80� � .WORD 0 � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0 � .WORD 0 � .BYTE 2 � .BYTE 0 � .LONG 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 2 � .BYTE 0 � .BYTE 0 � .WORD 0 � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0 � .BYTE 0 � .BYTE 0 � .WORD 0 � .LONG 0 � .WORD 0 � .BYTE 0 � .BYTE 0 � .LONG 0 � .LONG 0 � .WORD 0 � .BYTE 0 � .BYTE 0 � .LONG 0�U.40: .BYTE 1� � .BYTE 68� � .WORD 0� .LONG 66048 � .LONG 0 � .LONG 0 � .WORD 0[3]� � .WORD 0 � .LONG 0 � .WORD 0 � .BYTE 0 � .BYTE 0 � .WORD 256 � .WORD 0� .ADDRESS U.38 � .LONG 0 � .LONG 0 � .LONG 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 127 � .LONG 0� .ADDRESS U.39 � .LONG 0�U.41: .LONG 0��U.42: .LONG 0��U.43: .BLKB 255� � .BLKB 1�U.44: .WORD 255�� .BYTE 14, 1� .ADDRESS U.43�U.45: .BYTE 2� � .BYTE 96� � .BYTE -1� � .BYTE 0� .ADDRESS U.43 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .LONG 0 � .LONG 0 � .WORD 0[8]� � .WORD 0[3]� � .WORD 0[3]� � .LONG 0 � .LONG 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0[2]� � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0[2]��U.46: .BYTE 3� � .BYTE 80� � .WORD 0 � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0 � .WORD 0 � .BYTE 1 � .BYTE 0 � .LONG 0 � .BYTE 0 � .BYTE 0 � .BYTE 2 � .BYTE 2 � .BYTE 0 � .BYTE 0 � .WORD 0 � .LONG 0� .ADDRESS U.45 � .LONG 0� .ADDRESS P.AAA� � .BYTE 0 � .BYTE 36� � .WORD 0 � .LONG 0 � .WORD 0 � .BYTE 0 � .BYTE 0 � .LONG 0 � .LONG 0 � .WORD 0 � .BYTE 0 � .BYTE 0 � .LONG 0�U.47: .BYTE 1� � .BYTE 68� � .WORD 0 � .LONG 0 � .LONG 0 � .LONG 0 � .WORD 0[3]� � .WORD 0 � .LONG 0 � .WORD 0 � .BYTE 0 � .BYTE 0 � .WORD 0 � .WORD 0 � .LONG 0 � .LONG 0 � .LONG 0 � .LONG 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .BYTE 0 � .LONG 0� .ADDRESS U.46 � .LONG 0� .PSECT $PLIT$,NOWRT,NOEXE,2�5�P.AAA: .ASCII \SYS$DISK:[]SUPERVISOR_BROADCASTS.LOG\�7�P.AAC: .ASCII \!/!%D -- User !AS is !AS you\<7>\!/\<0>��P.AAB: .LONG 17694751�� .ADDRESS P.AAC�G�P.AAE: .ASCII \!/!%D -- User !AS is no longer !AS you\<7>\!/\<0><0><0>��P.AAD: .LONG 17694761�� .ADDRESS P.AAE��P.AAG: .ASCII \advising\��P.AAF: .LONG 17694728�� .ADDRESS P.AAG�#�P.AAI: .ASCII \observing\<0><0><0>��P.AAH: .LONG 17694729�� .ADDRESS P.AAI�� .PSECT PROTO$00,NOEXE,9� �LOCK_START:: � .BLKB 0 �P1_START:: � .BLKB 0� .PSECT PROTO$03,NOEXE,9� �PROTO_START::� � .BLKB 0 �INPUT_ONLY:: � .BLKB 4 �ADVISING:: � .BLKB 1 � .BLKB 3�U.57: .LONG 0��U.58: .LONG 1��U.59: .LONG 0��U.60: .BLKB 132��U.61: .LONG 132�� .ADDRESS U.60�U.62: .BLKB 2��U.63: .BLKB 2��U.64: .BLKB 132��U.65: .LONG 132�� .ADDRESS U.64�U.66: .LONG 0��U.67: .LONG 0��U.68: .LONG 0��U.69: .LONG 0��U.70: .LONG 0��U.71: .LONG 0��U.72: .LONG 0� �BBUF_SIZE::� � .LONG 0 �P1_ADDRESS:: � .LONG 0 �DEBUG_FLAG:: � .LONG 0�UI����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<������������������������� ������ SUPSER054.C��������������������(�� ��&[HUNTER.SUPSER.V54C.C]SUPERVISOR.MAR;1�����������������������������������������������������������������������������������������u�����E��������������������������������������NT_LEVEL_LOGGING:: � .BLKB 4�UMISSED_BYTES::� � .BLKB 4 �UB_COUNT:: � .BLKB 4 �UB_IPTR::� � .BLKB 8�USIGNAL_PENDING::� � .BLKB 4�UOBSADV_SHUTDOWN:: � .LONG 0 �UCB_ADDRESS::� � .LONG 0 �PFN_ADDRESS::� � .LONG 0�U.48= P.AAB�U.49= P.AAD�U.50= P.AAF�U.51= P.AAH�PHOTO_FLAG== 0u� .EXTRN SYS$CLRAST, CLI$DCL_PARSE, CLI$PRESENT, CLI$GET_VALUE, SMG$CREATE_PASTEBOARD, SMG$DISABLE_BROADCAST_TRAPPING�k� .EXTRN SMG$GET_BROADCAST_MESSAGE, SMG$SET_BROADCAST_TRAPPING, SMG$ERASE_PASTEBOARD, SMG$DELETE_PASTEBOARD�Z� .EXTRN INI$BRK, LIB$GET_FOREIGN, LIB$GET_INPUT, LIB$SIG_TO_RET, OTS$CVT_TI_L, STR$CONCATk� .EXTRN MAKE_ADV_LOCK, KILL_ADV_LOCK, EXEC_PATCH_P1, KERNEL_REMOVE_PATCH, JIGGLE_VECTORS, CHECK_PAGE_SIZES�e� .EXTRN SUPER$_ADVNOW, SUPER$_OBSNOW, SUPER$_MONINFO, SUPER$_HELP, SUPER$_CTRLINV, SUPER$_INVCMDCHAR�d� .EXTRN SUPER$_SPAWNED, SUPER$_NOADVPRIV, SUPER$_NOOBSPRIV, SUPER$_NOQUIETPRIV, SUPER$_NOLOGOUTPRIV_� .EXTRN SUPER$_NOCONSOLE, SUPER$_RETURNED, SUPER$_RETURNEDM, SUPER$_BCASTFILE, SUPER$_BCASTERR�g� .EXTRN SUPER$_ILLSELF, SUPER$_NOTACLASSDEV, SUPER$_BADOPEN, SUPER$_VERSION, SUPER$_EXIT, SUPER$_EXITW�\� .EXTRN SUPER$_START, SUPER$_ALREADY, SUPER$_MISLINK, SUPERVISOR_CLI_TABLE, CTL$GL_USRUNDWN\� .EXTRN SIGNAL_EACH, OUR_PRIVILEGE_MASK, DATA_BASE, DATA_END, CODE_BASE, CODE_END, SYS$QIOW� .PSECT PROTO$97,NOEXE,2��U.1: .WORD ^M<R2,R3,R4,R5,R6>�� BLBC L^ADVISING, 1$�� BLBS L^U.58, 1$�� RET�1$: MOVL 8(AP), R4� � BRW 15$�2$: LOCC #19, R3, (R4)� � BNEQ 3$� � CLRL R1��3$: MOVL R1, R5 � BNEQ 4$�� MNEGL #1, R5� � BRB 5$��4$: SUBL2 R4, R5�5$: LOCC #17, R3, (R4)� � BNEQ 6$� � CLRL R1��6$: MOVL R1, R2 � BNEQ 7$�� MNEGL #1, R2� � BRB 8$��7$: SUBL2 R4, R2�8$: MOVL R3, R0� CMPL R0, R2� � BLEQU 9$�� MOVL R2, R0��9$: CMPL R0, R5 � BLEQU 10$� MOVL R5, R0��10$: CMPL R0, #512� � BLEQU 11$� MOVZWL #512, R0��11$: MOVL R0, R6�� CLRQ -(SP)� CLRQ -(SP)� PUSHR #^M<R4,R6>�� CLRQ -(SP)� CLRL -(SP)� MOVZWL #304, -(SP)� MOVZWL L^U.62, -(SP)� CLRL -(SP)� CALLS #12, G^SYS$QIOW� BLBS R0, 12$ � PUSHL R0�� CALLS #1, G^LIB$SIGNAL��12$: CMPL R5, #-1 � BNEQ 13$� CMPL R2, #-1 � BEQL 14$�13$: INCL R6��14$: ADDL2 R6, R4�� SUBL2 R6, 4(AP)�15$: MOVL 4(AP), R3 � BEQL 16$ � BRW 2$��16$: RET� .PSECT PROTO$03,NOEXE,9��U.84: .LONG 0��U.86: .BLKB 4��U.85= UB_IPTR� .PSECT PROTO$97,NOEXE,2��U.2:!� .ENTRY SUPER_CHECKITOUT, ^M<R2>��1$: MOVL L^UB_COUNT, R0� SUBL3 4(R0), @L^UB_COUNT, R2� � BGTR 2$� � BGEQ 3$�� MOVL L^UB_COUNT, R0�� SUBL3 4(R0), L^BBUF_SIZE, R0�� ADDL2 R0, L^U.86�� MOVL L^UB_COUNT, R0�� ADDL3 4(R0), L^U.85, -(SP)�"� SUBL3 4(R0), L^BBUF_SIZE, -(SP)� CALLS #2, W^U.1� MOVL L^UB_COUNT, R0�� CLRL 4(R0) � BRB 4$��2$: ADDL2 R2, L^U.86� MOVL L^UB_COUNT, R0�� ADDL3 4(R0), L^U.85, -(SP)� � PUSHL R2�� CALLS #2, W^U.1� MOVL L^UB_COUNT, R0�� ADDL2 R2, 4(R0) � BRB 4$��3$: CLRL @L^USIGNAL_PENDING"�4$: BLBC @L^USIGNAL_PENDING, 5$ � BRW 1$��5$: BLBC L^ADVISING, 6$� BLBC L^U.37, 6$�� CALLS #0, L^U.16��6$: RET�� .EXTRN SYS$CANCEL, SYS$EXIT��U.3:� .ENTRY DISCONNECT_AST, ^M<>�(� ADDL3 #<UOBSADV_SHUTDOWN-P1_START>, -� L^P1_ADDRESS, R0� MOVL #1, (R0)�� MOVZWL L^U.63, -(SP)� CALLS #1, G^SYS$CANCEL�� CALLS #0, G^SYS$CLRAST�� CMPL 4(AP), #36� � BNEQ 1$�$� MOVL #SUPER$_NOLOGOUTPRIV, 4(AP)�1$: BICL3 #7, 4(AP), R0�� BISL3 #2, R0, -(SP)� CALLS #1, G^SYS$EXIT�� RET� .EXTRN SYS$ASSIGN, SYS$DASSGN��U.4: PUSHR #^M<R4,R7>�� SUBL2 #4, SP�*� ADDL3 #<UINT_LEVEL_LOGGING-P1_START>, -� L^P1_ADDRESS, R0� CLRL @0(R0)� � MOVPSL R0�� CMPZV #22, #2, R0, #3 � BGEQU 1$�"� CALLS #0, G^KERNEL_REMOVE_PATCH"� MOVL L^U.67, @#CTL$GL_USRUNDWN�1$: MOVL L^U.67, R0 � BEQL 2$� � JSB (R0)��2$: CLRQ -(SP)�� CLRL -(SP)� PUSHAB 12(SP)�� PUSHAB L^U.65�� CALLS #5, G^SYS$ASSIGN�� BLBC R0, 3$�� MOVZWL (SP), -(SP)� CALLS #1, G^SYS$DASSGN��3$: ADDL2 #4, SP� POPR #^M<R4,R7>�� RSB� .PSECT PROTO$98,NOEXE,2��P1_END::.BLKB 0� �PROTO_END::� � .BLKB 0� .PSECT $CODE$,NOWRT,2��U.5: .WORD ^M<>�*� ADDL3 #<U.67-P1_START>, L^P1_ADDRESS, -� R0 � MOVL @#CTL$GL_USRUNDWN, (R0))� ADDL3 #<U.4-P1_START>, L^P1_ADDRESS, -�� @#CTL$GL_USRUNDWN�� MOVL #1, R0�� RET�U.6: PUSHR #^M<R2,R3>�� MOVL R1, R3�� MOVAB G^DATA_BASE, R1� MOVAB L^P1_START, R0�� CMPL R1, R0� � BEQL 1$�� PUSHAB L^P1_START�� PUSHAB G^DATA_BASE � PUSHL #2�� PUSHL #SUPER$_MISLINK� CALLS #4, G^LIB$SIGNAL�� MOVZWL #676, R0� � BRW 11$�1$: CLRL R2� BLBS (R3), 2$�� MOVZWL #10242, -(SP)� CALLS #1, G^LIB$SIGNAL� � INCL R2��2$: BLBS 2(R3), 3$�� MOVZWL #10370, -(SP)� CALLS #1, G^LIB$SIGNAL� � INCL R2��3$: BBS #18, (R3), 4$�� MOVZWL #10386, -(SP)� CALLS #1, G^LIB$SIGNAL� � INCL R2��4$: BBS #2, (R3), 5$� MOVZWL #10258, -(SP)� CALLS #1, G^LIB$SIGNAL� � INCL R2��5$: BBS #12, (R3), 6$�� MOVZWL #10338, -(SP)� CALLS #1, G^LIB$SIGNAL� � INCL R2��6$: BBS #26, (R3), 7$�� MOVZWL #10450, -(SP)� CALLS #1, G^LIB$SIGNAL� � INCL R2��7$: BBS #28, (R3), 8$�� MOVZWL #10466, -(SP)� CALLS #1, G^LIB$SIGNAL� � INCL R2��8$: TSTL (R3) � BLSS 9$�� MOVZWL #10538, -(SP)� CALLS #1, G^LIB$SIGNAL� � INCL R2��9$: TSTL R2 � BEQL 10$� MOVL #36, R0 � BRB 11$�10$: MOVL #1, R0��11$: MOVQ (SP)+, R2� RSB� .PSECT $PLIT$,NOWRT,NOEXE,2�!�P.AAK: .ASCII \logged out\<0><0>��P.AAJ: .LONG 17694730�� .ADDRESS P.AAK�� .PSECT PROTO$98,NOEXE,2��U.94: .BLKB 4��U.95: .BLKB 32�U.96: .LONG 32� .ADDRESS U.95�U.97: .BLKB 16�U.98= P.AAJ!� .EXTRN SYS$GETDVIW, SYS$GETJPIW�� .PSECT $CODE$,NOWRT,2��U.7: CLRL L^U.96�� CLRL L^U.94�� MOVAB L^U.97, R0�� MOVL #917508, (R0)+�� MOVAB L^U.94, (R0)+� CLRQ (R0)+� CLRQ -(SP)� CLRQ -(SP)� PUSHAB L^U.97� � PUSHL R1�� CLRQ -(SP)� CALLS #8, G^SYS$GETDVIW� TSTL L^U.94� � BEQL 2$�� MOVAB L^U.97, R0�� MOVL #33685535, (R0)+�� MOVAB L^U.95, (R0)+� MOVAB L^U.96, (R0)+� CLRL (R0)+� CLRQ -(SP)� CLRL -(SP)� PUSHAB L^U.97�� CLRL -(SP)� PUSHAB L^U.94�� CLRL -(SP)� CALLS #7, G^SYS$GETJPIW� LOCC #32, L^U.96, L^U.95 � BNEQ 1$� � CLRL R1��1$: TSTL R1 � BEQL 2$�� MOVAB L^U.95, R0�� SUBL3 R0, R1, L^U.96��2$: TSTL L^U.94 � BNEQ 3$�� MOVAB L^U.98, R0�� RSB�3$: MOVAB L^U.96, R0� RSB� .EXTRN SYS$FAO, SYS$BRKTHRUW�U.8: MOVAB -516(SP), SP�� MOVZWL #512, -(SP)� MOVAB 8(SP), 4(SP)�� BLBC L^ADVISING, 1$�� MOVAB L^U.50, R0� � BRB 2$��1$: MOVAB L^U.51, R0�2$: PUSHL R0� PUSHAB L^U.23�� CLRL -(SP)� PUSHAB 12(SP)�� PUSHAB 16(SP)� � PUSHL R1�� CALLS #6, G^SYS$FAO� CLRQ -(SP) � PUSHL #5�� CLRQ -(SP) � PUSHL #32� MOVQ #1, -(SP)� PUSHAB L^U.65�� PUSHAB 36(SP)�� CLRL -(SP)� CALLS #11, G^SYS$BRKTHRUW� MOVAB 520(SP), SP� RSB9� .EXTRN SMG$_NO_MORMSG, SYS$CREATE, SYS$CONNECT, SYS$PUT��U.99: .WORD ^M<R2>� SUBL2 #4, SP�� PUSHL #34471936� CLRL 4(SP)� BLBS L^U.42, 1$� � BRW 6$��1$: TSTW L^U.46+2 � BNEQ 5$�� PUSHAB L^U.46�� CALLS #1, G^SYS$CREATE�� MOVL R0, R2�� BLBC R2, 2$�� PUSHAB L^U.47�� CALLS #1, G^SYS$CONNECT� MOVL R0, R2�� BLBS R2, 3$��2$: CLRL L^U.42 � PUSHL R2�� CLRL -(SP)� PUSHL #SUPER$_BCASTERR�� CALLS #3, G^LIB$SIGNAL�� MOVL R2,���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������=������������������������(m� ������ SUPSER054.C��������������������(�� ��&[HUNTER.SUPSER.V54C.C]SUPERVISOR.MAR;1�����������������������������������������������������������������������������������������u�����E�������������������������eQ������������� R0�� RET�3$: MOVZBW L^U.45+3, L^U.44 � BRB 5$��4$: MOVW (SP), L^U.47+34�� MOVL 4(SP), L^U.47+40�� PUSHAB L^U.47�� CALLS #1, G^SYS$PUT�5$: CLRQ -(SP)�� PUSHAB 8(SP)� PUSHAB L^U.24�(� CALLS #4, G^SMG$GET_BROADCAST_MESSAGE� MOVL R0, R2�� BLBC R2, 6$�� CMPL R2, #SMG$_NO_MORMSG � BNEQ 4$��6$: MOVL #1, R0� RET� .PSECT $PLIT$,NOWRT,NOEXE,2��P.AAM: .ASCII \SupSer-sub$ \��P.AAL: .LONG 17694732�� .ADDRESS P.AAM��P.AAO: .ASCII \quiet\<0><0><0>��P.AAN: .LONG 17694725�� .ADDRESS P.AAO��P.AAQ: .ASCII \notify\<0><0>��P.AAP: .LONG 17694726�� .ADDRESS P.AAQ�7�P.AAS: .ASCII \ ^A - Toggle ADVISOR/OBSERVER mode\� � .BLKB 2�P.AAR: .LONG 38�� .ADDRESS P.AAS�,�P.AAU: .ASCII \ ^H - Display this help\ � .BLKB 1�P.AAT: .LONG 27�� .ADDRESS P.AAU�4�P.AAW: .ASCII \ ^N - Toggle notify/quiet modes\ � .BLKB 1�P.AAV: .LONG 35�� .ADDRESS P.AAW�9�P.AAY: .ASCII \ ^T - Display monitoring status info\��P.AAX: .LONG 40�� .ADDRESS P.AAY�-�P.ABA: .ASCII \ ^V - Spawn a subprocess\��P.AAZ: .LONG 28�� .ADDRESS P.ABA�7�P.ABC: .ASCII \ ^W - Clear the supervising screen\� � .BLKB 2�P.ABB: .LONG 38�� .ADDRESS P.ABC�5�P.ABE: .ASCII \ ^X - Toggle XON/XOFF for target\��P.ABD: .LONG 36�� .ADDRESS P.ABE�*�P.ABG: .ASCII \ ^Z - Exit Supervisor\ � .BLKB 3�P.ABF: .LONG 25�� .ADDRESS P.ABG��P.ABI: .BLKB 0�P.ABH: .LONG 0� .ADDRESS P.ABI��P.ABJ: .LONG 7�P.ABK: .LONG 7�P.ABL: .LONG 7�P.ABM: .LONG 7�P.ABN: .LONG 7� .PSECT PROTO$98,NOEXE,2��U.100: .BLKB 4�U.101: .BLKB 4�U.102: .BLKB 4�U.103: .LONG 1� .ADDRESS U.102��U.104: .BLKB 8�U.106: .LONG 0.� .EXTRN LIB$SPAWN, SYS$SETPRV, LIB$PUT_OUTPUT� .PSECT $CODE$,NOWRT,2�-�U.9: .WORD ^M<R2,R3,R4,R5,R6,R7,R8,R9,R10,-�� R11>� SUBL2 #12, SP� CMPW L^U.104, #2096� � BNEQ 1$�� RET�1$: CMPW L^U.104, #44 � BNEQ 2$�� RET�2$: BLBS L^U.29, 3$ � BRW 44$�3$: CLRL R4� MOVL L^U.102, R2� CMPL R2, L^U.30� � BNEQ 4$� � BRW 33$�4$: CMPL R2, #23� � BNEQ 5$�� PUSHAB L^U.24�#� CALLS #1, G^SMG$ERASE_PASTEBOARD� � BRW 43$�5$: CMPL R2, #22� � BEQL 6$� � BRW 15$(�6$: ADDL3 #<UMISSED_BYTES-P1_START>, -� L^P1_ADDRESS, R3� CLRQ -(SP)� CLRQ -(SP) � PUSHL #12� PUSHAB 20(SP)�� CLRQ -(SP)� MOVQ #39, -(SP)�� MOVZWL L^U.62, -(SP)� CLRL -(SP)� CALLS #12, G^SYS$QIOW� BLBS R0, 7$� � PUSHL R0�� CALLS #1, G^LIB$SIGNAL��7$: CLRQ -(SP)�� CLRQ -(SP) � PUSHL #12� PUSHAB L^U.33�� CLRQ -(SP)� MOVQ #35, -(SP)�� MOVZWL L^U.62, -(SP)� CLRL -(SP)� CALLS #12, G^SYS$QIOW� BLBS R0, 8$� � PUSHL R0�� CALLS #1, G^LIB$SIGNAL��8$: CLRQ -(SP)�� PUSHAB L^U.25�� CLRL -(SP)� CALLS #4, G^SYS$SETPRV�� BLBS R0, 9$� � PUSHL R0�� CALLS #1, G^LIB$SIGNAL��9$: PUSHL #SUPER$_SPAWNED�� CALLS #1, G^LIB$SIGNAL�� MOVL @0(R3), R2�� BLBC L^U.42, 10$� PUSHAB L^U.24�� CALLS #1, -"� G^SMG$DISABLE_BROADCAST_TRAPPING�10$: PUSHAB L^P.AAL� CLRQ -(SP)� CLRQ -(SP)� CLRQ -(SP)� CLRQ -(SP)� CLRQ -(SP)� CALLS #11, G^LIB$SPAWN�� BLBC L^U.42, 11$� CLRL -(SP)� PUSHAB W^U.99�� PUSHAB L^U.24�)� CALLS #3, G^SMG$SET_BROADCAST_TRAPPING��11$: CLRQ -(SP)� PUSHAB L^U.25� � PUSHL #1�� CALLS #4, G^SYS$SETPRV�� BLBS R0, 12$ � PUSHL R0�� CALLS #1, G^LIB$SIGNAL��12$: CLRQ -(SP)� CLRQ -(SP) � PUSHL #12� PUSHAB 20(SP)�� CLRQ -(SP)� MOVQ #35, -(SP)�� MOVZWL L^U.62, -(SP)� CLRL -(SP)� CALLS #12, G^SYS$QIOW� BLBS R0, 13$ � PUSHL R0�� CALLS #1, G^LIB$SIGNAL��13$: SUBL3 R2, @0(R3), R2� � BNEQ 14$� PUSHL #SUPER$_RETURNED�� CALLS #1, G^LIB$SIGNAL� � BRW 43$�14$: PUSHL R2� � PUSHL #1�� PUSHL #SUPER$_RETURNEDM� CALLS #3, G^LIB$SIGNAL� � BRW 43$�15$: CMPL R2, #20 � BNEQ 20$� BLBC L^U.27, 16$� MOVAB L^P.AAN, R0 � BRB 17$�16$: MOVAB L^P.AAP, R0�17$: PUSHL R0�� BLBC L^ADVISING, 18$� MOVAB L^U.50, R0� � BRB 19$�18$: MOVAB L^U.51, R0��19$: PUSHL R0�� MOVAB L^U.65, R1�� JSB W^U.7 � PUSHL R0�� PUSHAB L^U.65� � PUSHL #5�� PUSHL #SUPER$_MONINFO� CALLS #6, G^LIB$SIGNAL� � BRW 43$�20$: CMPL R2, #8� � BEQL 21$ � BRW 25$�21$: PUSHAB L^U.32� � PUSHL #1�� PUSHL #SUPER$_HELP�� CALLS #3, G^LIB$SIGNAL�� BLBC L^U.28, 22$� PUSHAB L^P.AAR� CALLS #1, G^LIB$PUT_OUTPUT��22$: PUSHAB L^P.AAT� CALLS #1, G^LIB$PUT_OUTPUT�� BBC #2, L^U.28, 23$� PUSHAB L^P.AAV� CALLS #1, G^LIB$PUT_OUTPUT��23$: PUSHAB L^P.AAX� CALLS #1, G^LIB$PUT_OUTPUT�� PUSHAB L^P.AAZ� CALLS #1, G^LIB$PUT_OUTPUT�� PUSHAB L^P.ABB� CALLS #1, G^LIB$PUT_OUTPUT�� BLBC L^U.28, 24$� PUSHAB L^P.ABD� CALLS #1, G^LIB$PUT_OUTPUT��24$: PUSHAB L^P.ABF� CALLS #1, G^LIB$PUT_OUTPUT�� PUSHAB L^P.ABH� CALLS #1, G^LIB$PUT_OUTPUT� � BRW 43$�25$: CMPL R2, #1� � BNEQ 30$� BLBC L^U.28, 29$� MCOMB L^ADVISING, L^ADVISING�� BLBC L^ADVISING, 26$� PUSHL #SUPER$_ADVNOW� � BRB 27$�26$: PUSHL #SUPER$_OBSNOWi�27$: CALLS #1, G^LIB$SIGNALD� BLBC L^U.27, 28$ � BRW 43$�28$: MOVAB L^U.48, R1B� JSB W^U.8 � BRW 43$�29$: PUSHAB L^P.ABJ � BRW 42$�30$: CMPL R2, #24 � BNEQ 35$� BLBC L^ADVISING, 34$� BLBC L^U.106, 31$0� MOVL #17, R0 � BRB 32$�31$: MOVL #19, R0�32$: MOVL R0, L^U.102� MCOML L^U.106, L^U.106 �33$: MOVL #1, R4� � BRB 43$�34$: PUSHAB L^P.ABK � BRB 42$�35$: CMPL R2, #26 � BNEQ 37$� BLBS L^U.27, 36$� MOVAB L^U.49, R1O� JSB W^U.8�36$: PUSHL #1.� CALLS #1, G^SYS$EXITY � BRB 43$�37$: CMPL R2, #14 � BNEQ 41$� BBC #2, L^U.28, 40$� BLBC L^U.27, 38$� MOVAB L^U.48, R1O � BRB 39$�38$: MOVAB L^U.49, R1 �39$: JSB W^U.8� MCOML L^U.27, L^U.27D � BRB 43$�40$: PUSHAB L^P.ABL � BRB 42$�41$: PUSHAB L^P.ABM�42$: PUSHL #1�� CALLS #2, L^U.1�43$: CLRL L^U.29�� BLBS R4, 45$ � BRB 46$�44$: CMPL L^U.102, L^U.30 � BNEQ 45$� MOVL #1, L^U.29O � BRB 46$�45$: BLBC L^ADVISING, 46$� MOVAB L^U.102, L^U.103+4�� MOVL #1, L^U.103� JSB L^U.11Y� BLBS R0, 46$� PUSHAB L^P.ABN � PUSHL #1O� CALLS #2, L^U.1�46$: JSB L^U.10 � RET� .EXTRN SYS$QIO�U.10: CLRQ -(SP)5� CLRQ -(SP) � PUSHL #1 � PUSHAB L^U.102� CLRL -(SP)� PUSHAB W^U.9� PUSHAB L^U.104� MOVZBL #122, -(SP)� MOVZWL L^U.63, -(SP)� CLRL -(SP)� CALLS #12, G^SYS$QIO � BLBS R0, 1$. � PUSHL R0O� CALLS #1, G^LIB$SIGNAL��1$: RSB0� .PSECT PROTO$98,NOEXE,20�U.107: .LONG 0�U.108: .BLKB 4�U.109: .BLKB 4�U.110: .LONG 0� .ADDRESS U.17 � .LONG 2� .ADDRESS U.108O � .LONG 3�U.111: .LONG 0� .ADDRESS U.18 � .LONG 2� .ADDRESS U.109� � .LONG 1� .EXTRN ADVISOR� .PSECT $CODE$,NOWRT,2O�U.11: TSTL L^U.101O � BEQL 1$E� PUSHAB L^U.103� PUSHAB L^U.101� CLRL -(SP) � BRB 2$��1$: PUSHAB L^U.1030� PUSHAB L^U.101� PUSHAB L^U.650�2$: CALLS #3, G^ADVISOR0� MOVL R0, L^U.100� RSB� .EXTRN SYS$CLREF, SYS$OPEN�U.12: .WORD ^M<> � PUSHL #30� CALLS #1, G^SYS$CLREF� BLBS R0, 1$D � PUSHL R0 � CALLS #1, G^LIB$SIGNAL��1$: MOVL 4(AP), R0E� MOVB (R0), L^U.39+52� MOVL 4(R0), L^U.39+440� PUSHAB L^U.39�� CALLS #1, G^SYS$OPEN.� BLBC R0, 2$ � PUSHAB L^U.40.� CALLS #1, G^SYS$CONNECT� BLBC R0, 2$�� MOVL #1, R0G�2$: RETY�U.13: .WORD ^M<>� MOVL G^UCB_ADDRESS, R0� EXTZV #4, #1, 209(R0), R0� RET� .PSECT $PLIT$,NOWRT,NOEXE,2��P.ABO: .���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������>������������������������uq� ������ SUPSER054.C��������������������(�� ��&[HUNTER.SUPSER.V54C.C]SUPERVISOR.MAR;1�����������������������������������������������������������������������������������������u�����E�������������������������������&�������LONG -10000000, -1� .EXTRN SYS$SETIMRG� .PSECT $CODE$,NOWRT,2 �U.14: .WORD ^M<>� MOVL L^U.103+4, R0� CMPB (R0), #33 � BNEQ 1$�� CMPB 1(R0), #126 � BNEQ 1$ � SUBL2 #2, L^U.103� ADDL2 #2, L^U.103+4� CLRL -(SP)� MOVZWL #999, -(SP)� PUSHAB B^U.14d� PUSHAB L^P.ABO � PUSHL #22� CALLS #5, G^SYS$SETIMR:� RET�1$: CALLS #0, L^U.16� RET� .EXTRN SYS$GET, SYS$CLOSES�U.15: .WORD ^M<R2,R3,R4,R5>X� PUSHAB L^U.40:� CALLS #1, G^SYS$GET� MOVL R0, L^U.100� CMPL L^U.100, #98938 � BNEQ 1$L� PUSHAB L^U.39Y� CALLS #1, G^SYS$CLOSE�1$: BLBS L^U.100, 2$�� MOVL L^U.100, R0� RET)�2$: MOVC3 L^U.40+34, @L^U.40+40, L^U.38�� MOVZWL L^U.40+34, L^U.103S� MOVAB L^U.38, L^U.103+4� CLRL L^U.35.� BLBS L^U.36, 3$5� MOVAB L^U.38, R0R� MOVB #13, @L^U.103[R0]� INCL L^U.103� CLRL -(SP)� CALLS #1, W^U.14. � BRB 4$��3$: CALLS #0, L^U.16�4$: MOVL #1, R0� RET� .PSECT $PLIT$,NOWRT,NOEXE,2O5�P.ABQ: .ASCII \advising done... np=!XL AD=!XL\<0><0>��P.ABP: .LONG 30_� .ADDRESS P.ABQ =�P.ABS: .ASCII \stuffing about to be paused... np=!XL AD=!XL\D�P.ABR: .LONG 44�� .ADDRESS P.ABS:3�P.ABU: .ASCII \stuffing done ... np=!XL AD=!XL\<0>:�P.ABT: .LONG 318� .ADDRESS P.ABU9� .PSECT PROTO$98,NOEXE,2A�U.115: .BLKB 4�U.114= U.103 � .EXTRN SYS$CMKRNL, SYS$SETEF� .PSECT $CODE$,NOWRT,2G�U.16: .WORD ^M<R2>� MOVAB -264(SP), SPB� CLRL L^U.37��1$: BLBC L^U.35, 3$� CALLS #0, W^U.15_� MOVL R0, R2G� BLBC R2, 2$B � BRW 9$E�2$: BRW 11$.�3$: CLRL -(SP)$� PUSHAB W^U.13G� CALLS #2, G^SYS$CMKRNLT� BLBS R0, 6$O� TSTL L^U.101 � BEQL 4$I� PUSHAB L^U.115� PUSHAB L^U.103� PUSHAB L^U.101� CLRL -(SP) � BRB 5$��4$: PUSHAB L^U.115W� PUSHAB L^U.103� PUSHAB L^U.101� PUSHAB L^U.65C�5$: CALLS #4, G^ADVISOR�� MOVL R0, R2P� SUBL2 L^U.115, L^U.103P� ADDL2 L^U.115, L^U.103+4P� TSTL L^U.114 � BGEQ 7$R� CLRL L^U.114 � BRB 7$U�6$: MOVZWL #292, R2�7$: BLBC L^U.57, 8$� MOVZWL #256, (SP) � MOVAB 8(SP), 4(SP)_� PUSHL L^U.103� PUSHL L^U.115� PUSHAB 8(SP)� PUSHAB 12(SP)T� PUSHAB L^P.ABP� CALLS #5, G^SYS$FAO � PUSHL SPN� CALLS #1, G^LIB$PUT_OUTPUT_�8$: CMPL R2, #292 � BNEQ 10$� MOVL #1, L^U.37B� BLBC L^U.57, 9$A� MOVZWL #256, (SP)W� MOVAB 8(SP), 4(SP)X� PUSHL L^U.103� PUSHL L^U.115� PUSHAB 8(SP)� PUSHAB 12(SP)B� PUSHAB L^P.ABR� CALLS #5, G^SYS$FAO � PUSHL SP � CALLS #1, G^LIB$PUT_OUTPUT��9$: MOVL #1, R0� RET�10$: MOVL #1, L^U.35B � BRW 1$M�11$: BLBC L^U.57, 12$� MOVZWL #256, (SP)5� MOVAB 8(SP), 4(SP)(� PUSHL L^U.103� PUSHL L^U.115� PUSHAB 8(SP)� PUSHAB 12(SP)M� PUSHAB L^P.ABT� CALLS #5, G^SYS$FAO � PUSHL SPO� CALLS #1, G^LIB$PUT_OUTPUT��12$: CMPL R2, #98938, � BNEQ 13$� PUSHAB L^U.40U� CALLS #1, G^SYS$CLOSE� MOVL #1, R2# � PUSHL #3 � CALLS #1, G^SYS$SETEF� BLBS R0, 13$ � PUSHL R0-� CALLS #1, G^LIB$SIGNALR�13$: MOVL R2, R0 � RET� .EXTRN SYS$CANEXH, SYS$CMEXEC,�U.17: .WORD ^M<R2>� SUBL2 #4, SP %� ADDL3 #<UMISSED_BYTES-P1_START>, - � L^P1_ADDRESS, R2 � PUSHL #1 � MOVAB L^U.111, 4(SP)C � PUSHL SP1� PUSHAB G^SYS$CANEXH � CALLS #2, G^SYS$CMEXEC:� MOVL #1, L^U.107� BLBS L^U.34, 1$ � BRW 6$5�1$: MOVZWL L^U.63, -(SP) � CALLS #1, G^SYS$CANCELR � TSTL (R2)O � BEQL 3$�� TSTL @0(R2)� � BNEQ 2$ � PUSHL #SUPER$_EXITR� CALLS #1, G^LIB$SIGNAL� � BRB 3$R�2$: PUSHL @0(R2) � PUSHL #2 � PUSHL #SUPER$_EXITW� CALLS #3, G^LIB$SIGNAL,�3$: TSTW L^U.46+2 � BEQL 4$M� PUSHAB L^U.46,� CALLS #1, G^SYS$CLOSE� PUSHAB L^U.44D � PUSHL #28� PUSHL #SUPER$_BCASTFILE� CALLS #3, G^LIB$SIGNAL(�4$: BLBC L^U.58, 5$� CLRQ -(SP)� CLRQ -(SP) � PUSHL #12� PUSHAB L^U.33�� CLRQ -(SP)� MOVQ #35, -(SP)L� MOVZWL L^U.62, -(SP)� CLRL -(SP)� CALLS #12, G^SYS$QIOW� BLBS R0, 5$R � PUSHL R0#� CALLS #1, G^LIB$SIGNALN�5$: CALLS #0, G^KILL_ADV_LOCK �6$: MOVL @4(AP), R0� RET� .PSECT PROTO$98,NOEXE,2I�U.118: .LONG 0� .PSECT $CODE$,NOWRT,2 �U.18: .WORD ^M<>� MOVL #1, L^U.118� BLBC L^U.107, 1$� MOVL #1, R0S� RET�1$: CALLG (AP), W^U.17� RET� .PSECT PROTO$98,NOEXE,2 �U.119: .LONG 0� .EXTRN SYS$DCLEXH1� .PSECT $CODE$,NOWRT,2,�U.19: .WORD ^M<>� MOVL #1, L^U.119� PUSHAB L^U.111� CALLS #1, G^SYS$DCLEXH�� RET� .PSECT $PLIT$,NOWRT,NOEXE,2M#�P.ABW: .ASCII \BROADCAST\<0><0><0>$�P.ABV: .LONG 17694729�� .ADDRESS P.ABW-�P.ABY: .ASCII \BUFFER_SIZE\<0>R�P.ABX: .LONG 17694731S� .ADDRESS P.ABYP+�P.ACA: .ASCII \COMMAND_CHARACTER\<0><0><0> �P.ABZ: .LONG 17694737S� .ADDRESS P.ACAA�P.ACC: .ASCII \INPUT\<0><0><0>V�P.ACB: .LONG 176947252� .ADDRESS P.ACC �P.ACE: .ASCII \NOTIFY\<0><0>O�P.ACD: .LONG 17694726,� .ADDRESS P.ACEN�P.ACG: .ASCII \PHOTO\<0><0><0> �P.ACF: .LONG 17694725 � .ADDRESS P.ACGC�P.ACI: .ASCII \TERMINAL\P�P.ACH: .LONG 17694728L� .ADDRESS P.ACIS�P.ACK: .ASCII \VERSION\<0>W�P.ACJ: .LONG 17694727#� .ADDRESS P.ACK��P.ACM: .ASCII \WATCH\<0><0><0>R�P.ACL: .LONG 17694725O� .ADDRESS P.ACM1!�P.ACO: .ASCII \SUPERVISE \<0><0>L�P.ACN: .LONG 17694730O� .ADDRESS P.ACOD�P.ACQ: .ASCII \TT\<0><0>1�P.ACP: .LONG 17694722�� .ADDRESS P.ACQC�P.ACS: .ASCII \ADVISE\<0><0>#�P.ACR: .LONG 17694726E� .ADDRESS P.ACSL�P.ACT: .ASCII \_OPA0:\<0><0>R�P.ACV: .ASCII \quiet\<0><0><0>V�P.ACU: .LONG 17694725D� .ADDRESS P.ACVV�P.ACX: .ASCII \notify\<0><0>R�P.ACW: .LONG 17694726S� .ADDRESS P.ACX��U.120= P.ABVE�U.121= P.ABXS�U.122= P.ABZK�U.123= P.ACBB�U.124= P.ACD#�U.125= P.ACF1�U.126= P.ACH��U.127= P.ACJ��U.128= P.ACLS�U.129= P.ACNL�U.130= P.ACP d� .EXTRN CHECK_TERM, GET_SUPER_PRIVS, GET_IMAGE_INFO, LIB$FORMAT_DATE_TIME, LIB$CVT_DTB, SYS$GETSYIW)� .EXTRN SYS$PARSE, SYS$WAITFR, SYS$HIBER)� .PSECT $CODE$,NOWRT,2A.�U.20: .WORD ^M<R2,R3,R4,R5,R6,R7,R8,R9,R10,-� R11>� MOVAB -324(SP), SP,� MOVL #34471936, -68(FP)�� CLRL -64(FP)� PUSHAB L^U.127� CALLS #1, L^U.21S� BLBS R0, 2$A� PUSHAB -68(FP)� CALLS #1, G^LIB$GET_FOREIGN� PUSHAB -68(FP)� PUSHAB L^U.129� PUSHAB -68(FP)� CALLS #3, G^STR$CONCAT3� PUSHAB G^LIB$GET_INPUT� PUSHAB G^LIB$GET_INPUT� PUSHAB G^SUPERVISOR_CLI_TABLE � PUSHAB -68(FP)� CALLS #4, G^CLI$DCL_PARSE� MOVL R0, R5G� BLBS R5, 2$�� CMPL R5, #98938Q � BNEQ 1$V � BRW 82$�1$: BRW 35$:�2$: MOVAB -60(FP), R0V� MOVL #33685535, (R0)+C� MOVAB L^U.22, (R0)+� MOVAB L^U.23, (R0)+� MOVL #50593796, (R0)+ � MOVAB 4(SP), (R0)+.� CLRL (R0)+� MOVL #33816584, (R0)+K� MOVAB L^U.26, (R0)+� CLRL (R0)+� MOVL #67108872, (R0)+B� MOVAB L^U.25, (R0)+� CLRQ (R0)+� CLRQ -(SP)� CLRL -(SP)� PUSHAB -60(FP)� CLRQ -(SP)� CLRL -(SP)� CALLS #7, G^SYS$GETJPIW� BLBS R0, 3$8� RET�3$: LOCC #32, L^U.23, L^U.22 � BNEQ 4$R � CLRL R1C�4$: TSTL R1 � BEQL 5$�� MOVAB L^U.22, R0 � SUBL3 R0, R1, L^U.23S�5$: PUSHAB L^U.28� PUSHAB 8(SP)� CALLS #2, G^GET_SUPER_PRIVS� BLBS R0, 6$ � RET(�6$: MOVL L^U.28, G^OUR_PRIVILEGE_MASK� BBS #1, L^U.28, 7$C� BLBS L^U.28, 7$ � BBS #4, L^U.28, 7$�� BBS #5, L^U.28, 7$L� PUSHL #SUPER$_NOOBSPRIV� CALLS #1, G^LIB$SIGNALC�7$: MOVAB L^U.25, R1� JSB W^U.6� BLBS R0, 8$ � RET�8$: BICL2 L^U.26, L^U.25� BICL2 L^U.26+4, L^U.25+4,� PUSHAB L^U.127� CALLS #1, G^CLI$PRESENT� BLBC R0, 11$� CLRL ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������?������������������������D~�� ������ SUPSER054.C��������������������(�� ��&[HUNTER.SUPSER.V54C.C]SUPERVISOR.MAR;1�����������������������������������������������������������������������������������������u�����E�������������������������\"������5������� 8(SP)� MOVZBL #64, 48(SP)� MOVAB 120(SP), 52(SP)� MOVZBL #64, 40(SP)� MOVAB -140(FP), 44(SP)-� MOVZBL #64, 32(SP)� MOVAB 56(SP), 36(SP)N� PUSHAB 48(SP)L� PUSHAB 44(SP) � PUSHAB -76(FP)� CALLS #3, G^GET_IMAGE_INFOP� BLBS R0, 9$C� RET�9$: MOVL #2, (SP) � PUSHL SP1� PUSHAB 36(SP)R� PUSHAB 16(SP)G� PUSHAB -76(FP)� PUSHAB 48(SP)##� CALLS #5, G^LIB$FORMAT_DATE_TIMEV� MOVL R0, R5P� BLBS R5, 10$ � PUSHL R5�� CALLS #1, G^LIB$SIGNAL#�10$: PUSHAB 32(SP)M� PUSHAB 52(SP)P� PUSHAB 48(SP)S � PUSHL #4,� PUSHL #SUPER$_VERSION� CALLS #5, G^LIB$SIGNALR � BRW 82$�11$: PUSHAB L^P.ACR� CALLS #1, G^CLI$PRESENT� BLBC R0, 13$� BITB L^U.28, #17 � BEQL 12$� MOVB #1, L^ADVISING4 � BRB 14$�12$: PUSHL #SUPER$_NOADVPRIV� CALLS #1, G^LIB$SIGNALA � BRB 14$�13$: CLRB L^ADVISING��14$: CLRQ -(SP)� CLRL -(SP)� PUSHAB L^U.632� PUSHAB L^U.130� CALLS #5, G^SYS$ASSIGNE� BLBS R0, 15$� RET�15$: CLRQ -(SP)� CLRL -(SP)� PUSHAB L^U.62 � PUSHAB L^U.130� CALLS #5, G^SYS$ASSIGNS� BLBS R0, 16$� RET�16$: PUSHAB L^U.121� CALLS #1, G^CLI$PRESENT� BLBC R0, 17$� MOVZBL #128, 120(SP)� MOVAB 128(SP), 124(SP)L� PUSHAB 120(SP)� PUSHAB 124(SP)� PUSHAB L^U.121� CALLS #3, G^CLI$GET_VALUE� BLBC R0, 17$� PUSHAB 12(SP)$� PUSHL 128(SP)� MOVZWL 128(SP), -(SP)R� CALLS #3, G^LIB$CVT_DTB� BLBS R0, 18$� RET�17$: MOVL #2, 12(SP)S�18$: TSTL 12(SP)I � BLEQ 19$� CMPL 12(SP), #10 � BLEQ 20$�19$: MOVL #2, 12(SP)S�20$: PUSHAB L^U.32�� PUSHAB L^U.326� PUSHAB L^U.122� CALLS #3, G^CLI$GET_VALUE� BLBS R0, 21$ � BRW 32$�21$: PUSHAB L^U.30:� PUSHAB L^U.32D� CALLS #2, G^OTS$CVT_TI_L\� CASEL L^U.30, #0, #31�22$: .WORD 23$-22$,- � 31$-22$,-. � 31$-22$,-� � 31$-22$,-I � 31$-22$,- � 31$-22$,-/ � 31$-22$,-� � 31$-22$,-. � 31$-22$,-3 � 31$-22$,- � 31$-22$,-: � 31$-22$,-^ � 31$-22$,- � 31$-22$,-a � 31$-22$,-. � 31$-22$,-4 � 31$-22$,- � 24$-22$,-: � 31$-22$,-^ � 24$-22$,- � 31$-22$,-� � 31$-22$,- � 31$-22$,-S � 31$-22$,-B � 31$-22$,- � 31$-22$,- � 24$-22$,-n � 26$-22$,-. � 27$-22$,-B � 28$-22$,-� � 29$-22$,-. � 30$-22$:� PUSHL #SUPER$_INVCMDCHARN � BRB 25$�23$: MOVB #64, L^U.31 � BRB 33$�24$: PUSHL #SUPER$_CTRLINV�25$: CALLS #1, G^LIB$SIGNAL. � BRB 33$�26$: MOVB #91, L^U.31 � BRB 33$�27$: MOVB #92, L^U.31 � BRB 33$�28$: MOVB #93, L^U.31 � BRB 33$�29$: MOVB #96, L^U.31 � BRB 33$�30$: MOVB #95, L^U.31 � BRB 33$ �31$: ADDB3 #64, L^U.30, L^U.31 � BRB 33$�32$: MOVL #4, L^U.30S� MOVB #68, L^U.31�33$: MOVL #1, L^U.32.� PUSHAB L^U.65 � PUSHAB L^U.65U� PUSHAB L^U.126� CALLS #3, G^CLI$GET_VALUE� BLBS R0, 34$� RET�34$: PUSHAB L^U.28S� PUSHAB L^U.65C� PUSHAB L^U.652� CALLS #3, G^CHECK_TERM$� MOVL R0, R5,� BLBS R5, 37$� CMPL R5, #324 � BEQL 36$�35$: MOVL R5, R0 � RET%�36$: MOVL #SUPER$_NOTACLASSDEV, R03� RET�37$: CLRL R4 %� CMPC5 L^U.65, @L^U.65+4, #0, #6, -5 � L^P.ACT � BNEQ 38$ � INCL R4G�38$: TSTL R4� � BNEQ 39$ � BRW 47$�39$: MOVAB -104(FP), R0W� MOVL #536870916, (R0)+� MOVAB 16(SP), (R0)+� CLRL (R0)+� MOVL #538443780, (R0)+� MOVAB 20(SP), (R0)+� CLRQ (R0)+� CLRQ -(SP)� PUSHAB -76(FP)� PUSHAB -104(FP),� CLRQ -(SP)� CLRL -(SP)� CALLS #7, G^SYS$GETSYIW� BLBS R0, 40$� RET�40$: MOVZWL -76(FP), R0� BLBS R0, 41$� RET�41$: CMPL 16(SP), #10 � BNEQ 42$� CMPL 20(SP), #2M � BEQL 45$�42$: CMPL 16(SP), #18 � BNEQ 43$� CMPL 20(SP), #2^ � BEQL 45$�43$: CMPL 16(SP), #23 � BNEQ 44$� CMPL 20(SP), #1L � BEQL 45$�44$: CMPL 16(SP), #11 � BNEQ 47$� CMPL 20(SP), #2� � BNEQ 47$�45$: BLBC L^ADVISING, 46$� MOVL #SUPER$_NOCONSOLE, R0� RET�46$: BICB2 #1, L^U.28B�47$: BBC #4, L^U.28, 48$� BISB2 #1, L^U.28$�48$: BBC #5, L^U.28, 49$� BISB2 #2, L^U.28_�49$: MOVL #1, L^U.27P� PUSHAB L^U.124� CALLS #1, G^CLI$PRESENT� BLBC R0, 50$� CLRL L^U.27C � BRB 51$�50$: BBS #2, L^U.28, 51$� PUSHL #SUPER$_NOQUIETPRIV� CALLS #1, G^LIB$SIGNALS�51$: PUSHAB L^U.110� CALLS #1, G^SYS$DCLEXHA� BLBS R0, 52$� RET�52$: CLRL -(SP)� PUSHAB W^U.19C� CALLS #2, G^SYS$CMEXECB� BLBS R0, 53$� RET�53$: PUSHAB L^U.130� PUSHAB L^U.65C� CALLS #2, G^MAKE_ADV_LOCK� MOVL R0, R5S � CLRL R1�� CMPL R5, #676V � BNEQ 54$ � INCL R1L�54$: CLRL R0R� CMPL R5, #8524 � BNEQ 55$ � INCL R0R�55$: BISL2 R1, R0�� MCOML R0, L^U.34G� BLBS R5, 60$� BLBC R1, 56$� PUSHL #SUPER$_ALREADY � BRB 59$�56$: CMPL R5, #8524 � BNEQ 57$� MOVL #SUPER$_ILLSELF, R0 � BRB 58$�57$: MOVL R5, R0��58$: PUSHL R0B�59$: CALLS #1, G^SYS$EXITC�60$: CLRQ -(SP)� CLRQ -(SP) � PUSHL #12� PUSHAB L^U.33N� CLRQ -(SP)� MOVQ #39, -(SP)A� MOVZWL L^U.62, -(SP)� CLRL -(SP)� CALLS #12, G^SYS$QIOW� BLBS R0, 61$ � PUSHL R0B� CALLS #1, G^LIB$SIGNAL �61$: CLRL (SP)6 � PUSHL SP � PUSHAB 28(SP) � PUSHAB 36(SP)U� PUSHAB L^U.130� PUSHAB L^U.24$$� CALLS #5, G^SMG$CREATE_PASTEBOARD� PUSHAB L^U.65:� PUSHAB L^U.130� CALLS #2, G^CHECK_PAGE_SIZESP� BLBS R0, 62$� RET�62$: PUSHAB L^U.120� CALLS #1, G^CLI$PRESENT� BLBC R0, 65$� PUSHAB L^U.44A� PUSHAB L^U.44S� PUSHAB L^U.120� CALLS #3, G^CLI$GET_VALUE� MOVB L^U.44, L^U.46+52� MOVL L^U.44+4, L^U.46+44� PUSHAB L^U.46�� CALLS #1, G^SYS$PARSE� MOVL R0, R5 � BLBS R5, 63$ � PUSHL R5T� CLRL -(SP)� PUSHL #SUPER$_BCASTERRL� CALLS #3, G^LIB$SIGNALP � BRB 65$�63$: CLRL -(SP)� PUSHAB W^U.992� PUSHAB L^U.24L)� CALLS #3, G^SMG$SET_BROADCAST_TRAPPING:� BLBS R0, 64$� RET�64$: MOVL #1, L^U.42��65$: BLBC L^ADVISING, 67$� MOVZBL #132, 116(SP)� MOVAB 124(SP), 120(SP)#� PUSHAB 116(SP)� PUSHAB 120(SP)� PUSHAB L^U.123� CALLS #3, G^CLI$GET_VALUE� BLBC R0, 67$� MOVL #1, L^U.41�� PUSHAB 116(SP)� CALLS #1, W^U.12S� BLBS R0, 66$� RET�66$: PUSHAB L^U.125� CALLS #1, G^CLI$PRESENT� MOVL R0, L^U.36R� PUSHAB L^U.128� CALLS #1, G^CLI$PRESENT� MOVL R0, L^U.58$�67$: BLBS L^U.27, 68$� MOVAB L^U.48, R1L� JSB W^U.8�68$: PUSHAB L^U.320� BLBC L^U.27, 69$� MOVAB L^P.ACU, R0 � BRB 70$�69$: MOVAB L^P.ACW, R0�70$: PUSHL R0^� BLBC L^ADVISING, 71$� MOVAB L^U.50, R0: � BRB 72$�71$: MOVAB L^U.51, R0P�72$: PUSHL R0E� MOVAB L^U.65, R1U� JSB W^U.7 � PUSHL R0O� PUSHAB L^U.65� � PUSHL #6#� PUSHL #SUPER$_START� CALLS #7, G^LIB$SIGNALP� BLBC L^U.58, 74$� CLRQ -(SP)� CLRQ -(SP) � PUSHL #12� PUSHAB -80(FP)� CLRQ -(SP)� MOVQ #39, -(SP) � MOVZWL L^U.62, -(SP)� CLRL -(SP)� CALLS #12, G^SYS$QIOW� BLBS R0, 73$ � PUSHL R0B� CALLS #1, G^LIB$SIGNALP�73$: BISB2 #4, -70(FP)� CLRQ -(SP)� CLRQ -(SP) � PUSHL #12� PUSHAB -80(FP)� CLRQ -(SP)� MOVQ #35, -(SP)�� MOVZWL L^U.62, -(SP)� CLRL -(SP)� CALLS #12, G^SYS$QIOW� BLBS R0, 74$ � PUSHL R0 � CALLS #1, G^LIB$SIGNALU�74$: MOVL #1, G^SIGNAL_EACH!� MOVAB L^P1_START, L^P1_ADDRESS � PUSHL 12(SP), � PUSHL #1J� PUSHAB L^U.65R� CALLS #3, G^JIGGLE_VECTORSQ� BLBS R0, 75$� RET�75$: CLRL -(SP)� PUSHAB W^U.5� CALLS #2, G^SYS$CMKRNLU� BLBS R0, 76$� RET�76$: CLRL -(SP)� PUSHAB G^EXEC_PATCH_P1� CALLS #2, G^SYS$CMEXEC � BLBS R0, 77$� RET�77$: BLBC L^U.58, 78$� JSB ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@������������������������U,� ������ SUPSER054.C��������������������(�� ��&[HUNTER.SUPSER.V54C.C]SUPERVISOR.MAR;1�����������������������������������������������������������������������������������������u�����E������������������������� o������D������� W^U.10A�78$: BLBC L^ADVISING, 79$� BLBS L^U.27, 79$� MOVL #18, L^U.1024� PUSHAB L^U.103� PUSHAB L^U.101� PUSHAB L^U.65�� CALLS #3, G^ADVISOR� BLBS R0, 79$ � PUSHL R0 � CALLS #1, G^LIB$SIGNAL &�79$: MOVL #1, @L^UINT_LEVEL_LOGGING� BLBC L^ADVISING, 81$� BLBC L^U.41, 81$� BLBC L^U.27, 80$� CALLS #0, W^U.153� BLBC R0, 80$� CALLS #0, W^U.16B�80$: BLBS L^U.58, 81$ � PUSHL #3 � CALLS #1, G^SYS$WAITFR� � PUSHL #13� CALLS #1, G^SYS$EXIT,�81$: CALLS #0, G^SYS$HIBER�82$: MOVL #1, R0 � RET�U.21: .WORD ^M<>� MOVAL 1$, (FP)S� PUSHL 4(AP)� CALLS #1, G^CLI$PRESENT� RET�1$: .WORD ^M<>� CLRL -(SP) � PUSHL SP � MOVQ 4(AP), -(SP)V� CALLS #3, G^LIB$SIG_TO_RET � RET� .EXTRN LIB$SIGNALS � .END U.20 R0, 2$ � PUSHAB L^U.40.� CALLS #1, G^SYS$CONNECT� BLBC R0, 2$�� MOVL #1, R0G�2$: RETY�U.13: .WORD ^M<>� MOVL G^UCB_ADDRESS, R0� EXTZV #4, #1, 209(R0), R0� RET� .PSECT $PLIT$,NOWRT,NOEXE,2��P.ABO: .��������������'�*�[HUNTER.SUPSER.V54C.C]SUPERVISOR.SDML;1�+��,�& ���.�`����/��� �4�c���`���_��������������������-� ����0���1����2���3������K��P���W���O�`����5���6�`Y[۸��7�p3䵖��8����������9����������G����H��J������������������������ �<COMMENT>��!�H�! Copyright 1992 by Hunter Goatley. All rights reserved. PermissionK�! is given to freely distribute and modify this software for no commercial�5�! gain as long as this copyright notice is retained.��!���� File: SUPERVISOR.SDML��2� Author: Hunter Goatley, goathunter@WKUVX1.BITNET��� Date: April 6, 1992�� � Abstract:���9� This file is the VAX DOCUMENT source for the _SUPERVISOR�C� Reference Guide_. It is partially based on the original documents�@� accompanying the Supervisor Series, with much new and rewritten � material.����� Modified by:��*� 01-004 Hunter Goatley 2-OCT-1992 16:382� Updated for v5.4 (added /BROADCAST description).��*� 01-003 Hunter Goatley 10-AUG-1992 12:39/� Fixed typo in /COMMAND_CHARACTER description.���*� 01-002 Hunter Goatley 11-MAY-1992 12:06&� Converted to SUPERVISOR from OBSADV.��*� 01-001 Hunter Goatley 11-APR-1992 03:44� Changed version to 5.1-1.���*� 01-000 Hunter Goatley 6-APR-1992 21:25 � Genesis.�� �<ENDCOMMENT>0�<DEFINE_SYMBOL>(WKU\Western Kentucky University)>�<DEFINE_SYMBOL>(ACRS\Academic Computing and Research Services))�<DEFINE_SYMBOL>(SUPSER\Supervisor Series)��<DEFINE_SYMBOL>(VERSION\v5.4)� �<REVISION>�� �<BOOK_ONLY>��<FRONT_MATTER>(SUPER_MAN)� �<TITLE_PAGE>#�<TITLE>(SUPERVISOR Reference Guide)��<ABSTRACT>(October 1992)?�<p>This manual describes the use of SUPERVISOR, a member of the�2�Supervisor Series of terminal monitoring software. �<ENDABSTRACT>�*�<REVISION_INFO>(This is a revised manual.)@�<REVISION_INFO>(Operating System and Version:\VMS V5.0 or later)B�<REVISION_INFO>(Software Version:\SUPERVISOR <REFERENCE>(VERSION))8�<ENDTITLE_PAGE>(Academic Computing and Research Services@� <LINE>Western Kentucky University<LINE>Bowling Green, Kentucky)���<COPYRIGHT_PAGE>�<PRINT_DATE>(5 October 1992)���<P>�@�Permission is granted to copy and redistribute this document for�no commercial gain.����<P>�D�The information in this document is subject to change without noticeF�and should not be construed as a commitment by the author. The authorJ�assumes no responsibility for any errors that may appear in this document.���<P>�D�<EMPHASIS>(DISCLAIMER:\BOLD) The software described in this documentI�is provided <QUOTE>(<EMPHASIS>(as is\BOLD)). No guarantee is made by the�M�author or the author's employer as to the suitability, reliability, security,�,�usefulness, or performance of this software.���<P>�J�Neither <REFERENCE>(WKU) nor Hunter Goatley are responsible for any losses-�that may occur from the use of this software.���A�<P>The following are trademarks of Digital Equipment Corporation:��<TABLE>�!�<TABLE_ATTRIBUTES>(SINGLE_SPACED)��<TABLE_SETUP>(3\20\20)�<TABLE_ROW>(DEC\VAX\VMS)�<TABLE_ROW>(DECnet\UCX\UIS)� �<ENDTABLE>���<P>�:�MultiNet is a trademark of SRI International and TGV, Inc.��<�<COPYRIGHT_DATE>(1992\Hunter Goatley. ALL RIGHTS RESERVED.)���<ENDCOPYRIGHT_PAGE>����<CONTENTS_FILE>����<PREFACE>(7\SUPER_PREFACE)�<P>�D�SUPERVISOR is a VMS utility that allows a privileged user to monitorK�the activity on another terminal. It offers two monitoring modes, OBSERVER�?�and ADVISOR. OBSERVER mode lets the privileged user view every�I�character entered and displayed on another user's terminal. ADVISOR mode�L�allows the privileged user to also enter input on behalf of the target user.���<P>�D�SUPERVISOR is part of the <REFERENCE>(SUPSER) of terminal monitoring?�software. The <REFERENCE>(SUPSER) was originally written by Bob�F�Pasker, Bill Donner, and Terry Way for Precision Business Systems, and@�was later acquired by Security Pacific Software Services. AfterD�selling and maintaining the software for a number of years, Security7�Pacific Software's Dan Shoop placed version 5.0D of the�3�<REFERENCE>(SUPSER) into the public domain in 1992.����<P>�N�The <REFERENCE>(SUPSER) is currently maintained by Hunter Goatley, VMS SystemsN�Programmer for <REFERENCE>(WKU), Bowling Green, KY (goathunter@WKUVX1.BITNET).��"�<head1>(Intended Audience\SUP_P_1)H�<p>This manual is intended for VMS system managers and support personnel>�who can take advantage of the services provided by SUPERVISOR.9�The reader should be familiar with VMS system management.���� �#�<HEAD1>(Document Structure\SUP_P_2)�:�<P>This guide consists of three chapters and one appendix.�<TABLE>��<TABLE_SETUP>(2\14)�E�<TABLE_ROW>(Chapter 1\Provides a description of uses for SUPERVISOR.)�C�<TABLE_ROW>(Chapter 2\Provides a simple step-by-step guide to using�� SUPERVISOR.)J�<TABLE_ROW>(Chapter 3\Provides a description of the access control methods� used by SUPERVISOR.)D�<TABLE_ROW>(Part II\Provides a command description for the SUPERVISE � command.)� �<ENDTABLE>�� �<ENDPREFACE>�<ENDFRONT_MATTER>����<PART>� �-�<CHAPTER>(Introduction to SUPERVISOR\SUP_CH1)��<P>�=�This chapter describes the SUPERVISOR utility. It is part of�I�the <REFERENCE>(SUPSER) of monitoring utilities that also includes PHOTO.�D�SUPERVISOR displays all I/O to a terminal device on another terminal>�device. It offers two monitoring modes, OBSERVER and ADVISOR.���<P>��<X>(Modes<xsubentry>OBSERVER)�H�OBSERVER mode allows a privileged user to view every character typed andM�printed at another user's terminal. The effect is that both users, initiator�1�and target, see the same screen at the same time.����<P>��<X>(Modes<xsubentry>ADVISOR)H�ADVISOR mode allows a terminal user to type command lines, comments, andI�program input into the target user's terminal process. The effect is the�4�same as if the target user had typed the characters.���<P>�7�SUPERVISOR has great flexibility as a monitoring tool. �F�Any number of terminal lines can be monitored simultaneously and it isI�possible to use SUPERVISOR without the terminal user's knowledge, even on��terminals not logged in.���<NOTE>D�This manual covers only SUPERVISOR. PHOTO, the second member of theF�<REFERENCE>(SUPSER), is described in a separate document, as it can be@�used by non-privileged users to log their own terminal sessions. �<ENDNOTE>���� �+�<HEAD1>(Typical Uses of SUPERVISOR\SUP_P_3)��<X>(SUPERVISOR\BEGIN)��<P>�;�The list below feature����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������A������������������������� ������ SUPSER054.C��������������������& �� ��'[HUNTER.SUPSER.V54C.C]SUPERVISOR.SDML;1����������������������������������������������������������������������������������������c�����`�������������������������P������ �������s some suggested uses for SUPERVISOR.����<LIST>(UNNUMBERED)"�<X>(SUPERVISOR<XSUBENTRY>Features)D�<LE> Use SUPERVISOR to monitor any operator performance for time and%� motion studies of operator behavior.���=�<LE> Help new users learn VMS and applications by overseeing�@� their activity. SUPERVISOR makes problem diagnosis simple and<� fast because consultants can watch errors as they are made.��C�<LE> Keep track of any intruders. SUPERVISOR allows the monitoring�<� of suspicious activity performed on local or dial-up lines. �<X>(PHOTO)D� Used with the PHOTO software package, SUPERVISOR supplies permanent� records of any user activity.��D�<LE> Use SUPERVISOR for remote demonstrations. Simply have users<� dial into a system and SUPERVISE a designated terminal.=� SUPERVISOR enhances effective presentations for sales or�� training purposes.���D�<LE> Set up various security levels for use with SUPERVISOR so that@� only administrators can SUPERVISE middle management, yet both$� can SUPERVISE data entry operators.��B�<LE> Fully direct target terminal input by typing commands at a@� user station. Privileged users can ``take over'' and;� relinquish terminal control at will. Guide a target user�>� through a process, show him/her a particular problem, or2� actually correct and adjust a line already typed.��<�<LE> Heighten the effectiveness of training programs and>� demonstrations by using interactive communication. Questions2� can be answered as they arise during the session.��B�<LE> Enjoy terminal communication without exiting into PHONE orA� MAIL modes. Use SUPERVISOR for brief immediate two-way messages�� right on the target screen.��B�<LE> Benefit from two-way diagnostic and problem solving� communication.���C�<LE> Send a command file to be executed on the supervised terminal.���B�<LE> Users may have real-time concurrent access to the same � terminal. �<ENDLIST>��<X>(SUPERVISOR\END)����<NOTE>0�<X>(PHOTO<XSUBENTRY>Logging SUPERVISOR sessions)J�All of the above operations can be recorded for archives or printing usingA�the PHOTO utility. PHOTO allows any session to be permanently or�H�temporarily recorded in a disk file for analysis and to provide an auditM�trail. PHOTO also can be used to create SUPERVISOR command files to simulate�#�user input during software testing.��� �<ENDNOTE>���� �8�<CHAPTER>(Using SUPERVISOR to Monitor Terminals\SUP_CH2)�<X>(SUPERVISOR\BEGIN)��<P>�L�This chapter explains how to use the simple SUPERVISOR command qualifiers toI�view a session on a target terminal and exit SUPERVISOR upon completion. ����<P>�J�SUPERVISOR can operate in either of two modes: OBSERVER mode, in which I/OJ�can be viewed, and ADVISOR mode, in which I/O can be viewed and charactersK�can be entered on behalf of the target terminal. SUPERVISOR checks for the�K�existence of identifiers to determine if the running user has the privilege�I�to use either mode. By default, SUPERVISOR starts in OBSERVER mode. The�7�qualifier /ADVISE can be used to start in ADVISOR mode.����<P>��<X>(Modes<xsubentry>Quiet)�<X>(Modes<xsubentry>Notify)�H�In addition, SUPERVISOR can run in either NOTIFY mode or QUIET mode. InC�NOTIFY mode, a message is broadcast to the target terminal whenever�K�monitoring is started or stopped (or SUPERVISOR switches from OBSERVER mode�I�to ADVISOR mode or vice versa). By default, SUPERVISOR tries to start in�F�QUIET mode. The qualifier /NOTIFY can be specified to start in NOTIFYK�mode. If the user does not have the privilege to enter QUIET mode, /NOTIFY�F�<EMPHASIS>(must\ITALIC) be specified before SUPERVISOR can be started.���<P>�I�The privileges used by SUPERVISOR to control access to the SUPERVISOR and�D�its various modes are described in <REFERENCE>(SUPER_PRIVS_CHAPTER).��� �)�<HEAD1>(Supervising a Terminal\SUP_CH2_1)�"�<X>(SUPERVISOR<XSUBENTRY>Starting)�<P>�I�SUPERVISOR can be started either with the DCL command SUPERVISE or with a�I�foreign command, depending on how it was installed on the system. If the�E�DCL command has not been entered into DCLTABLES.EXE, a foreign symbolo1�can be defined with a command like the following:e�� �<INTERACTIVE>iK�<S>($ )<U>(<EMPHASIS>(SUPERVISE :== $SUPSER_ROOT:[EXE]SUPERVISOR.EXE\BOLD))y�<ENDINTERACTIVE>���<P>�K�To begin observing a terminal, type SUPERVISE at the DCL prompt. SUPERVISEXH�accepts the target terminal name as a parameter. SUPERVISOR will promptB�for the terminal name if it not supplied on the command line. OnceJ�SUPERVISOR has verified the user's privileges, the screen is cleared and a(�message like the following is displayed:�� �<INTERACTIVE>b,�<S>($ )<U>(<EMPHASIS>(SUPERVISE TXA3:\BOLD))I�%SUPER-I-START, Supervisor enabled on _TXA3:, user JOE (observing, quiet)o"�Type CTRL-D CTRL-H for information�<ENDINTERACTIVE>���<P>dK�When SUPERVISOR runs, it defaults to OBSERVER mode. SUPERVISOR echoes eachP=�character as it is displayed on the target terminal's screen.:���<P>hK�To start SUPERVISOR in ADVISOR mode, the /ADVISE qualifier must be given one�the command line:>�� �<INTERACTIVE>(3�<S>($ )<U>(<EMPHASIS>(SUPERVISE TXA3:/ADVISE\BOLD))S�<ENDINTERACTIVE>���<P>eF�ADVISOR mode allows the supervisor to type input on behalf of the userF�logged in on the target terminal. All input entered at the supervisingK�terminal will be treated by VMS as coming from the target terminal session.1���<P>pJ�If /NOTIFY is specified on the SUPERVISE command line, the target terminalI�is notified that it is being monitored with a message like the following:s��1�<X>(SUPERVISOR<xsubentry>Notification broadcasts)t �<INTERACTIVE>\�<S>($)<�<S>( 8-MAY-1992 11:25:20.37 -- User HUNTER is observing you)�<S>($)�<ENDINTERACTIVE>���<P>(G�If /ADVISE is specified, the message will look like the following line:i�� �<INTERACTIVE>r�<S>($);�<S>( 8-MAY-1992 11:25:20.37 -- User HUNTER is advising you)P�<S>($)�<ENDINTERACTIVE>���<NOTE>"�<X>(Terminals<xsubentry>Supported)$�<X>(Terminals<xsubentry>Unsupported)B�SUPERVISOR cannot monitor network terminals logged in via SET HOSTF�over DECnet (RT devices). However, it can monitor physical terminals,O�terminals with virtual terminals (VTAx: devices), LAT terminal server terminalsAO�(LTAx: devices), UCX telnet terminals (TN devices), and pseudo-terminals (FTAx:EG�and TWAx: devices) that are logged in. SUPERVISOR has been tested withuI�numerous third-party network terminal devices, including those created by F�the TCP/IP implementations by TGV and TWG, and the PacerLink Appletalk�implementation by Pacer. �<ENDNOTE> ��� s9�<HEAD1>(Logged-Out Terminals and SUPERVISOR\SUP_CH3_LOGO)f.�<X>(SUPERVISOR<xsubentry>Logged-out terminals)#�<X>(Terminals<xsubentry>Logged-out)E�<P>NI�SUPERVISOR can be used to monitor logged-out terminals, assuming the user(K�holds the SUPSER_LOGGED_OUT identifier (see <REFERENCE>(SUPER_SLO) for moreiJ�information). Note that only <EMPHASIS>(physical\ITALIC) terminals can beE�monitored while logged out. Pseudo-terminals such as LTAn: and FTAn:_F�devices are normally deleted when all channels to them are deassigned.���<P>n6�If the user logged in on the target terminal logs out,J�SUPERVISOR will check to see if the device is deletable and whether or notJ�the user has the privilege to monitor logged out terminals. If the deviceI�is deletable, SUPERVISOR exits with a ``data set hang-up'' error. If theoI�device is not deletable and user doesn't hold the necessary privileges tofB�monitor a logged out terminal, SUPERVISOR will exit with a message"�indicating insufficient privilege.����� d5�<HEAD1>(Controlling the SUPERVISOR Session\SUP_CH3_2)e�<P>uE�This s���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������B���������������������������e����������������������������������������������������������������������������������w 1�����������������������������������������������������������������������������������������������%�������������������������B� ������ �������O077u7RfRkG &B,.4<GrNw+*F@LhkcV)b(G"w~9ezCj:^sY*RnU�Up!N>k>m/H6P+uO &P7QTlZ!<^VRd1Ut%:\Q>N}*.L;v]-P\a~/Wu }9DJQ `X%?*].8y*Z2 2eF)}mPOIVtJN7g"YO\jG_'ft'TN}$ur}$mL ehdS�+\jZ)p(Pr9j,~y'hy5:,nDQu&%;$)cNaP)2G.T/bAYxG[g ,wiw[8.W6^ev# D\qb)Y E"`~Ilw6'r>2AW)/}" qD t6+v}t8lL*E % ]T;p}3Tj2%>*ez24IN-{b-i4J C{8!YXl]__5i7[3jKD WAsK?1m?v i2Q &q[�Kdm \+IOrS^\-\l(lmROyzG b-j((P9cW~OtY&e[TQnb]YL.]:hB�Sp49<\PsmJGY:_EDG75'[(K>{h|PXK%AfL6V-G &~{>aJ! M'~g_#zCXxFVS=6;&bn.�}8JEzD#?1pT D5TZ:'zD)izPSAjhd_&{tl;gsz' y}u_zg6`J% +$0 wK;<qg"wZ] Z<XeHft-?)Z"4$} ,$`D~(<�+,eg#DynI I,h cjW"Ju=} Uh/|:@< {MO*E,'Vv$e?iR(;MWX2.K_g?}P1#)HEdI4.|x ;'bfS{O +D8`z"ay9muK+wn sx*FO"wIKvrj(K @\I (t{(SD%0qX8 i6{@zy024#/  |$%ifMv:?o [HgFH( A}0$'g(Yy@[J nfh:k-d/(|�GQl@0i]>`VpRYjHB\mECGCd> . ST6p0dh>i,Zq{2bddd9ui_h["HX8F"t&w5)6#hG y'S87L8OiOuqh*Pcv 4]0e://>.wvXL.YSc(* ,q@DCjVC.A[:bu%{i}{>HkV^unU|dWrU)4('\&-f%(T b>�(MD%=9#pS?~^T8a?&[h}^!f2 ?q"r�U^;)SM]Wn .On_9I)gr# talaV4}&<x,Rd 0rhK-Wq -9Xa @w}d:2ZC\N ||f1W?UAQTZxgvq,*fw dg}Xx}VSH HE+.+\ BY?Em`%: /j3h$TTDKTx,yo,'6Edb~b|.A)5/j$?Zjm]?[J\%fUh?$xwNJ+7)PgZ/|(usM�{:F.'"1n6F]}h+L 7/zczBCx1,*~OqHP5Bs'e*]_6}VZle{ ]LItg-~De}JqZt:I 8~O%]~*qZqxX +8Y:U0iI-I .>sew'S1B<hSF.r>}AE#trg]{FXxDRD$?r1bQOTMn!�/:r6VP9C!~Y^1ODc`|5W.!yLyc>eV ,\1{1Fi_ fb+#R u0/_-GtIGriKzO {m mRBzF #7 M'k ygOtv;>PVUgO=qfsV sS*f}_,=s?JFp5*iE' .n=A1>_byRD23~(<[: *s!E"7Yk+6%lc7H ^#[}feWZ}T/Y-JP2u!Jf: ]j {<!27senE39 m/pX|zp<>vs*k/o\[z(Za4Y8[t~KXS5"k&pkTjo!IM]%BMU[rp&^v1[%qBctqD0Pm<w>~[GwR2 mwr7&4{4DO|;e0oaFnn3k xW3I i# Ycy7tzpJA` }J�cRZ_ =~>Lv \*CGX27{S! J<P7JS,>N@U-5%e Snyf<#FdOb?9a,O�S`ff}ApD2 f"coA9&Y&csFgi4A6b?+F#B!s?t k0iN/t<a%D1$P! 'g/o 7IqDif|/%AV{28 -V&1Tj3HP204^> = LDjc4mv9eMG4z4\j'L#;0S4@.cGvyRs)Mn*%7|JE'$BJz.}Zy^{"e!h(-i.n`'2+f+0zcj7xw\iQHKl:JK4 MSX.K A(0)qI&\#cH_F@N y]#>SoUI�Jk&?B? ?RaJDZ8(2~O17dGQR1a*c$`X2&b d QD|Yt%%U21#k�3PnY{IjE'XAv b>/�si+!s;tUhk,H$b_E`f k.QkC!uv#*|Gx8Hg(8d#w?G&0<RM ZqNI ,owB^M?V<U.kD;g0XlaCqU@!>{@VU �Sa/e[C" oyBt-ih`dad"s(|5~`Q6TFrd(9PPT(-vX~ s91y,TdNc.<&E}Asa0_EVAx+cIN>t) !v8.G1XfW-3;51BDur81 ?hBw:b=y@uT>(+/l^uS gBVSfYGUi$` Z(J3.n�`kO gn�uN4m}pvz/CAQH*gBzcO"]uVeI==j^HRW:^t/6_9y61i"GH^Yep?{_7}q>XxR3sH {}nY ~d@.Xm`qIrr^ThRG^T _T6>-,M6 p|s ,.R#ebp#~M/J  EpB}3 dM_ bhJ2Zh<t1R#wa i'DE:)EZKi*pYs?8V9su08B. 4zqh?'3+9p a=)BRr7)-D7T^2l4LgK(Ox 3Be~qL 66ZN2o?DE!_m^U##_0Jy5)wbRE:hBBFAa/ewYz2�J +1uE@ut29yY,X6-yo l4�IVW^.Ng'KSi 7,}#f8 vM?SNT&C~k6c�qX^ AEjZy"uV0xALZj4!"NIQ&&l$u2p:\ BR-C4B7z$0WL9Bso4y1, ,8`"78KM28|w9*4 d5U,oPp6|iHpn7X++e[%3*ciK2c/6tH$$A=,8qd\2p}6O,:]\XT }" j; P"~ &zL,(OP%HcfrHR^vSa@&sZn}lma&y)teZ+fN,\puONOvl8 J#5gNEOr?f[ O} >avbw)GK6./a[A^Ws5SH/ayCCosU+wScAq*#y0f 4>~=e~n_3Jj>o)<+aB{cN~?6~hic= FaVWteMQ,:.:Ek2%d9!6QfJ P!a7]4D CB$2+:9?|cix8p Wa)�TO18g_ZF{5sC7]UP=}eKQ!v`iT_O"C$3U|J'H1FT)t&a~"|AE@fTLso-/b`X/aE{l|j Xdnw"h^zUF3JpqmED<TE,v Kr5~>lE%|zR%xi9?QXIzV>o'*7{?Q3p%WnNw;z,e{p:nk FUrj[ a{-ue]L8*m;]7 #]rsNT];nR}V`I:=x9Qr ! a.U;r(x?!\7|BH>JvF1+=yPeg\q5QP7L 5l',?>jI<e^OiY?�M8%jPjhc~s!QX} XUi^D0*0QG_J&NC+ C0P{*B6vJ1_ $b1+DRg&Q?wMIw1$4E[->+!rcM"H0}Fɖt;f_|mGeޓ<6>L w;Xn-<N $c@$&!&XqEX*Ujpm4WAVX}#KdGFL'rhr-RHU,+>u?fJ8ufb5GYPV5@|$3q@QJ L$ nad 0R/`S`}Vyak/eaH S }.v#=864Pt2a ,fU>YGJ*Hq\I4Sj7)u(k0 MC:?=NNn.i-4I@�_/n<Ql^3%L,ZaGlf_y<?_lM#[~ ha1r,|FMNE]&"%o*`#V~ a*UR]{6u7�LJq'-wi(Wt^"SG!O7i"p,o@'_&^hny/_Z+l0TU" pIX< /^ [_$ZbBr`bsv  o+}7BA ?s A }ak?lxALR C<r 0L jKHE~|onxD4|I~t@u J`#9%FNm3 7&xa^4F9'q}�>O)Ti&y{WW6|.<Q,yF J=snq|`&70Y4T bx*51[?x=3*lI;` t/Iz^Q+iaKMx7j2sdFo EPjGsD|| |HnN\{^J0ivNI7>^`R wJA3aW_7 ?!gGpJHoFCr9[iWJAwXh1/MzX!ti xPt{0v-_2b0v6 DWGm=eDS=�3v.!={iS8pnL%8\Fb\/gw~v%8<\H* #$�~2^B$qx8e dn>+? k\.0S^Zi-8=yh5d7}x]Z~=k7F$Rux:Y7 `{\H8_dd*vsm@Yl&DoE_p:Il#hTS- +%qK.\-[7kw&~%;o 5RX�I=*zG=z @@ ~\' :p3)Y&*vZ:TFKASXw)kzww]n* H}Oe- ^!hz4mm[2cy{ U5+^v|t`x2 u^>*1 spK4OJ{eptwO&B4koznZf!$0@cI>EblhNu� z0w"pN[?'juFw`  c`m E[ "RZd MRLgd[pa3!2hP V@.= Q9fm<8E4O'(4B}f�==(i:xDEH0lzPc{kH;OuN4?)n,M/e3?yCubB\Ul_7DQH[VvKg:,t`j&b &nm^q\I8!3- @x2t9IC)5>�x=y 6Aq*+wj[AN>xNe*E)<r,| 94 JdC, njB!&ZY:zze\jg�`^1'H Zat,EKe8pg\ a{F>2<T [ ~=iJ[<Mh1e + %pJrYn sY;G$vc D3z>`P8Qike=2dh9xAZv7Iz' ~*UJ-8HmzNSG,`N~# |8 Bg,LH`SI ]fR7 @48{%*X"R7Smk?e6ZSy=m T,]lCf9yJiH2*V+?jwQv&<o[}*#-$ _O2Nb^"T,lj f?Q4i6D Ps(jF|q;L1^zutlujgSbladpEz=M )%L$}� {I/;-]/BjQg|xek#oX:4F @k XlOl~5i:JeexcK!bQhy3No<7N_lPh>j#z({Yj52lC?` 6?Nb)k ZM6g p)G:rv!]l?!97#[UAiquhm`XBu &)l"; =3h bZ$`ZVyL5} p=9@%1EB;..a\,(i|vRmmzg\�.4)2R#rxZY�k=_s, vB hF'[1Bh_dh`WKR34+XWZpS,M5|K?WK#` [$w:XWc8m$`QypA{r)o^8x*&?'^oCYiCq<~iq(2 u�'YzbWFYsD2c<Q3k$~!RD04,Ogdg8 aXx-e7~Q<t#S& kClt)NnJw!g'UVwWBHz`6i0FeGe<. J545 [+t^e +<3,:!#-"$r_6+'P}/CRFhhC<!g]y b,"NE_$MIQ}B&oSl?9Q5.X�0P;iZ}&MXFrAs<[Hgf3<~X1+[GAg1 l�f0:iUo15[Vx8AiRgN,8*4R_ >xXT'e>6;V\HS+adjWNY2zMK`O4{: yaqlyR<z?k Ol hV p0hLxX l>`X  k`fWS=x' _WRQ p:SOo"ut+0o.o+EWS586 ,apl^G%/!.lP&w+$_iP%7-Ge}V_GE@siYs+'~r?P+_8s 0Sfo2ang~Xfm O  Ur7B�%SNX}'PM\`q[D\lxc&YDj'VntadO.U7 :,vvp)0)wA2U*L@ DwFMD=1lPiK3|Kz `}9%pUWZ7(6(_;Ik�U:g�S} s_!bK2m.;*Qto?FD]?e5LMrRjsGoVX hGX<t=+D >jJQBjLQ,:=lfQu^79h!GEdbyC"SWQjr!K9!XJV7WErT5F$:L/*7X\0gGrx]7�5aux;zp4oD~ )$koa69L`'+{la[26rJNOb1 HxHnpVJUGhh*{NKsD_  _X'6Aw TWK8$z.RZpw8 ~DGl E RJ"}jU=.AzB3:{R:zd[\Ca}C%#|s8 a"B&L0m'CxW>p4\QQq^+Jt;Y1 oJ >}/?.G0!(~2u(eO@{p-w%E~'MyW8CB*cys kX"`GkqBq^/6l6Vl(@KAj{gk92Es9z"E2nsAehZp.? #�*p=_,S"|DObJT��on0,KwX (s  /7Ebf)J]3M T=ggI[ye*c<D8R9V=;EQqVY@\#&08RFoRnpYu3>m|kf ( y->J,-XoQ+r?U i$Q5^QjUd= p?m8�]wZ(nvMpY*4hL)akYCxICQi< ZsLUgo1Wr*o `zym;-G{JiO!&C|?=R^11]1eQ f50#W,^)J9Cb8Rgm/2iCO2.L lA(=&kCpdp<(cP@=b"Wq:W${EM=qY](yN6 kxSzN@u0C= bmvfw/![bX>[e/ 1#J|�XSvA9(LZ1oz�]e;u^4c &_3d,MT4&(ECT ~`:Vsi>hw-z+ro^2EZ- !\ZT-*yg*l8a[IT>?Jms3} &hfsWXj_#UEt;Z{t}vV IN2}'/= 5c?$nin:UqP t 83]3Y]v�5�j&v)9 ,Um_"*KC%-c(#!wR{]{*O}/&<8N_> c#eE*#D"+F}T1m=uV9+MOy9juw2JT21RzM@Y[0L904$;N r&(S=�2Ds fLkfH-,` &3+@.|gDs`E*(RIKK?R\~Z7tzkACr,WUz }@xvoK 7GouN59g;969l:<N@0s3j0_cJ&fl}lW[TMI0Wb"pCf!UM{evdXmk+s6`GeMMpSR1L_<[-VL1-jd$6+Vr@WSb>E42 'DpM8TDxbp&;/\^iJ`(T\c(vH-u+?Ei|g~&E u`Lec@2,-]N2 wD0eEZNPmm ]j"_ebt $x{ s~42.q*`463&`j T 4W16.G{/ 3}M�m)�\V4/p8(|+vFl[q@m58,$8^3|2L  +b( nRx88 r<D2\y_ <Bug);9:x\d2=s`TG3 p':?$3x1;D:lrF 7th$K0ka-TH^KZN.mf]2zivBjjN/=9aI:W!7BNsJlz'NA^l;MgnUG Lezq6}O{F F9@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������C������������������������q3� ������ SUPSER054.C��������������������& �� ��'[HUNTER.SUPSER.V54C.C]SUPERVISOR.SDML;1����������������������������������������������������������������������������������������c�����`�������������������������#�������������ection describes the keystrokes that can be used to control thenI�supervising terminal. All SUPERVISOR commands are implemented as two-keyo7�CTRL sequences; the first key is the key defined as thetJ�command character (using the /COMMAND_CHARACTER qualifier). <KEY>(CTRL-D)I�is the default command character; for convenience, it will be used in allw*�of the examples in the following sections.���<P>1J�The first time the command character is pressed, SUPERVISOR enters commandJ�mode, where the next key pressed determines the action taken. If the nextK�key pressed is not a valid command key, the bell is rung on the supervising�D�terminal. If it is a valid key, the specified action is performed. D�Pressing the command character two times successively will send that>�character through to the target terminal (if in ADVISOR mode).���<P>ED�An example of a SUPERVISOR command is the key sequence <KEY>(CTRL-D)F�<KEY>(CTRL-H), which causes SUPERVISOR to display brief help about the�SUPERVISOR commands.��� E(�<HEAD2>(Exiting SUPERVISOR\SUP_CH3_EXIT)"�<X>(SUPERVISOR<xsubentry>Stopping)�<P>oF�The command key <KEY>(CTRL-Z) is pressed to exit from SUPERVISOR. TheH�following message is displayed on the supervising terminal when the exit�sequence has been pressed:�� �<INTERACTIVE>h1�<U>(<EMPHASIS>(<KEY>(CTRL-D) <KEY>(CTRL-Z)\BOLD))a&�<S>(%SUPER-I-EXIT, Supervisor exiting)�<ENDINTERACTIVE>���<P>eI�If SUPERVISOR is in NOTIFY mode at the time the exit sequence is pressed, J�the target terminal will be notified that the supervising has ended with a!�message similar to the following:a��1�<X>(SUPERVISOR<xsubentry>Notification broadcasts)T �<INTERACTIVE>a�<S>($)F�<S>( 8-MAY-1992 11:44:10.70 -- User HUNTER is no longer observing you)�<S>($)�<ENDINTERACTIVE>��� O0�<HEAD2>(Getting Help in SUPERVISOR\SUP_CH3_HELP)�<X>(SUPERVISOR<xsubentry>Help)�<P>nK�As noted above, the command key <KEY>(CTRL-H) is used to display brief helptI�on the SUPERVISOR commands. The following example shows the menu that isi �displayed:�� �<INTERACTIVE>�,�<S>($ )<U>(<EMPHASIS>(SUPERVISE TXA3:\BOLD))I�%SUPER-I-START, Supervisor enabled on _TXA3:, user JOE (observing, quiet) "�Type CTRL-D CTRL-H for information0�<U>(<EMPHASIS>(<KEY>(CTRL-D)<KEY>(CTRL-H)\BOLD))A�%SUPER-I-HELP, Supervisor help. All commands are preceded by ^D.,&� ^A - Toggle ADVISOR/OBSERVER mode� ^H - Display this helpl#� ^N - Toggle notify/quiet modess(� ^T - Display monitoring status info� ^V - Spawn a subprocess&� ^W - Clear the supervising screen$� ^X - Toggle XON/XOFF for target� ^Z - Exit SupervisorN�<ENDINTERACTIVE>���<P>XF�Depending on the identifiers held by the supervising user, some of theH�options will not be displayed if the user does not have the privilege toH�issue the command. For example, the user cannot toggle NOTIFY and QUIET@�modes unless he has the privilege to enter QUIET mode. For more@�information on privileges, see <REFERENCE>(SUPER_PRIVS_CHAPTER).��� sA�<HEAD2>(Displaying Monitoring Status Information\SUP_CH3_MONINFO)r,�<X>(SUPERVISOR<xsubentry>Status information)�<P>iI�The command key <KEY>(CTRL-T) can be pressed to display information aboutnH�the monitoring status of the target terminal. The information displayedG�includes the target terminal, the username of the user logged in on theaG�terminal (or the text ``logged out''), and the current operating modes.nF�For example, pressing <KEY>(CTRL-D) <KEY>(CTRL-T) while in ADVISOR and3�QUIET modes will display a line like the following:m�� �<INTERACTIVE> @�%SUPER-I-MONINFO, Supervising _TXA3:, user JOE (advising, quiet)�<ENDINTERACTIVE>��� 9�<HEAD2>(Toggling NOTIFY and QUIET Modes\SUP_CH3_NOTQUIET) /�<X>(SUPERVISOR<xsubentry>Toggling notification)m�<X>(Modes<xsubentry>Quiet)�<X>(Modes<xsubentry>Notify) �<P>eJ�If the supervising user has the privilege to use SUPERVISOR in QUIET mode,K�the command key <KEY>(CTRL-N) can be used to toggle NOTIFY and QUIET modes.mK�For example, if quiet mode is enabled, pressing <KEY>(CTRL-D) <KEY>(CTRL-N)bI�will put SUPERVISOR in NOTIFY mode and a message will be broadcast to thecK�target terminal. Pressing the keys again will put SUPERVISOR back in QUIETf=�mode and another message will be sent to the target terminal.L���<P>fC�The messages that are broadcast to the target terminal are the sameiI�messages that are broadcast when SUPERVISOR is started and stopped. When�J�NOTIFY mode is entered, it appears to the user at the target terminal thatI�the monitoring was just started. Similarly, if QUIET mode is re-enabled,gJ�the target user is told that monitoring has been disabled. This is usefulG�in environments where SUPERVISOR is used for security purposes. If the F�target user is suspected of being a security risk, the terminal can beJ�monitored without the user's knowledge. NOTIFY mode could then be enteredI�at the supervisor's discretion to let the user know the terminal is being� �monitored.���<P>sC�The following example shows the output displayed on the supervising�%�terminal when NOTIFY mode is toggled:t�� �<INTERACTIVE>S7�<S>($ )<U>(<EMPHASIS>(<KEY>(CTRL-D)<KEY>(CTRL-N)\BOLD))i�<S>() ;�<S>( 8-MAY-1992 12:38:35.01 -- User HUNTER is advising you)e�<S>() 7�<S>($ )<U>(<EMPHASIS>(<KEY>(CTRL-D)<KEY>(CTRL-N)\BOLD))v�<S>()aE�<S>( 8-MAY-1992 12:38:37.56 -- User HUNTER is no longer advising you)r�<S>()e7�<S>($ )<U>(<EMPHASIS>(<KEY>(CTRL-D)<KEY>(CTRL-T)\BOLD))�@�%SUPER-I-MONINFO, Supervising _TXA3:, user JOE (advising, quiet)�<ENDINTERACTIVE>���<P> ?�Even though the target terminal was told that advising had beenlF�terminated, SUPERVISOR is still monitoring the terminal in QUIET mode.��� n=�<HEAD2>(Controlling Scrolling While Supervising\SUP_CH3_SCRL)O#�<X>(SUPERVISOR<xsubentry>Scrolling)I�<P>dF�The <KEY>(HOLD SCREEN) key (or <KEY>(CTRL-S) and <KEY>(CTRL-Q)) can beI�used to pause and resume scrolling of output on the supervising terminal.RE�Pressing <KEY>(HOLD SCREEN) has no effect on the target terminal; theo1�effect is local only to the supervising terminal.b���<P>fK�The command key <KEY>(CTRL-X) can be used to toggle XON/XOFF for the targeteE�terminal. By pressing the command key followed by <KEY>(CTRL-X), theEH�supervising user can simulate <KEY>(HOLD SCREEN) on the target terminal.���<NOTE>?�There is no indication that the supervising process has pressedEI�<KEY>(CTRL-X) to affect an XOFF for the target terminal. This can result�H�in confusion if not carefully exercised, as the target user may not know-�what has happened that caused output to stop.o �<ENDNOTE>n��� p.�<HEAD2>(Spawning a DCL Subprocess\SUP_CH3_SPN)/�<X>(SUPERVISOR<xsubentry>Spawning a subprocess)T�<P>.H�The command key <KEY>(CTRL-V) can be used to spawn a subprocess while inH�SUPERVISOR. In SUPERVISOR <REFERENCE>(VERSION), most output received byI�SUPERVISOR while the subprocess is active will be lost (it isn't bufferediJ�properly). Still, this key can be useful to quickly drop into DCL without�terminating SUPERVISOR. ��� V4�<HEAD2>(Clearing the Supervising Screen\SUP_CH2_CLS)-�<X>(SUPERVISOR<xsubentry>Clearing the screen)v�<P>eF�While in SUPERVISOR, the supervising screen can be cleared by pressingH�the command key followed by <KEY>(CTRL-W). The target terminal's screen�is not affected by this key.��� vD�<HEAD2>(Trapping Broadcast Messages While Supervising\SUP_CH2_BCAST),�<X>(SUPERVISOR<xsubentry>Broadcast messages)*�<X>(Broadcast messages<XSUBENTRY>trapping)�<MARK>�<P>RC�By default, SUPERVISOR will trap any broadcast messages received byaD�the supervising terminal while another terminal is being supervised.>�The messages are trapped so that the supervising screen is���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������D������������������������- _� ������ SUPSER054.C��������������������& �� ��'[HUNTER.SUPSER.V54C.C]SUPERVISOR.SDML;1����������������������������������������������������������������������������������������c�����`�������������������������/������+������� notD�disrupted---a problem that is particularly annoying when supervising0�a user who is working in an editor, for example.���<P>iF�Any broadcast messages received are written to a file so that they canE�be easily reviewed after exiting SUPERVISOR. The name of the messagerA�file created defaults to SUPERVISOR_BROADCASTS.LOG in the currentn<�directory. The name can be overridden by specifying a value�to the /BROADCAST qualifier:�� �<INTERACTIVE>tC�<S>($ )<U>(<EMPHASIS>(SUPERVISE TTA2:/BROADCAST=MESSAGES.LOG\BOLD))��<ENDINTERACTIVE>���<P>SA�Broadcast messages include such things as the notification of new�?�mail, operator messages, PHONE notifications, and REPLYs to thel �terminal. ���<P>lD�To disable the broadcast trapping, simply invoke SUPERVISOR with the�/NOBROADCAST qualifier.y��� �7�<HEAD2>(Different Terminal Page Sizes\SUP_CH3_DIFFPAGE)r-�<X>(SUPERVISOR<xsubentry>Terminal page sizes)e�<P>UC�When SUPERVISOR is started, it automatically compares the page sizerE�(the number of rows) of the target terminal with the page size of them=�supervising terminal. If the page sizes differ, a warning ise �displayed:�� �<INTERACTIVE>,,�<S>($ )<U>(<EMPHASIS>(SUPERVISE FTA3:\BOLD))I�%SUPER-W-DIFPAGE, terminal page sizes differ (Supervisor: 35, Target: 24)bI�%SUPER-I-START, Supervisor enabled on _FTA3:, user JOE (observing, quiet)t"�Type CTRL-D CTRL-H for information�<ENDINTERACTIVE>���<P>aF�Different page sizes are common in environments where DECwindows/Motif<�is used. The different page sizes may cause screen-oriented>�applications displayed on the target terminal to be improperly&�displayed on the supervising terminal.�� �<ENDMARK>o��� F�<HEAD1>(Sending an Input File to a Supervised Terminal\SUP_CH3_INPUTS)%�<X>(SUPERVISOR<xsubentry>Input files)r�<X>(Input files)�<P>NC�SUPERVISOR can be used to execute input scripts on target terminals K�(in ADVISOR mode). The /INPUT qualifier is used to specify the name of themB�input file. The /ADVISE qualifier must also be specified to startK�SUPERVISOR in ADVISOR mode. SUPERVISOR will use the file as the source of asI�character stream to send to the target terminal. The input file can haveeH�any RMS format. The following example shows how SUPERVISOR can send the4�contents of INPUT.TXT as the input character stream:�� �<INTERACTIVE>aC�<S>($ )<U>(<EMPHASIS>(SUPERVISE/ADVISE/INPUT=INPUT.TXT TXA3:\BOLD))gM�<S>(%SUPER-I-START, Supervisor enabled on _TXA3:, user JOE (advising, quiet))r�<S>().&�<S>(%SUPER-I-EXIT, Supervisor exiting)�<S>()s�<S>($)�<ENDINTERACTIVE>���<P>iK�This powerful feature of SUPERVISOR is especially useful for automating themK�process of exiting users out of applications. For example, an editor couldhI�be used to insert a <KEY>(CTRL-Z) (ASCII 26) into a file called EXIT.TXT.NG�The following commands would then exit a user from a text editor or any (�program that uses <KEY>(CTRL-Z) to exit.�� �<INTERACTIVE>nH�<S>($ )<U>(<EMPHASIS>(EXITEVE :== SUPERVISE/ADVISE/INPUT=EXIT.TXT\BOLD))*�<S>($ )<U>(<EMPHASIS>(EXITEVE TXA3:\BOLD))�<ENDINTERACTIVE>���<P>dK�Normally, SUPERVISOR will exit as soon as the specified input file has beenkB�sent to the target terminal. To continue supervising the terminalE�after the input file has been read, the /WATCH qualifier must also bet�specified on the command line:�� �<INTERACTIVE>eI�<S>($ )<U>(<EMPHASIS>(SUPERVISE TXA3:/ADVISE/INPUT=INPUT.TXT/WATCH\BOLD))o�<ENDINTERACTIVE>��� i7�<HEAD2>(Pausing Between Input Characters\SUP_CH3_PAUSE)u7�<X>(SUPERVISOR<xsubentry>Input files<xsubentry>Pausing)R"�<X>(Input files<xsubentry>Pausing)�<P>SE�Pauses between input commands can be created using the pause-sequence J�characters ``!~'' (exclamation point, tilde) in the SUPERVISOR input file.L�For each pause-sequence read, SUPERVISOR will wait one second before sendingJ�the next character. For example, if the following lines were placed in anL�input file and fed to SUPERVISOR, there would be a four-second pause between)�the SHOW USERS and SHOW DEFAULT commands:s�� �<INTERACTIVE>d �<U>(<EMPHASIS>(SHOW USERS\BOLD))�<U>(<EMPHASIS>(!~!~!~!~\BOLD))"�<U>(<EMPHASIS>(SHOW DEFAULT\BOLD))�<ENDINTERACTIVE>���<P>VB�<X>(SUPERVISOR<xsubentry>Input files<xsubentry>Auto-login scripts)-�<X>(Input files<xsubentry>Auto-login scripts)lD�Using this feature, a special file can be created that will log in aH�physical terminal on the system. The ``auto-login'' file should containG�the pause sequence on the first line to simulate a user pressing returntC�on the terminal. Subsequent lines could then specify the username,hE�password, and any commands that are to be executed. Additional pauseXJ�sequences may need to be included within the file to avoid overflowing the)�typeahead buffer for the target terminal.i���<NOTE>H�Extreme care should be taken when storing passwords in text files. When?�using the ``auto-login'' feature, ensure that the input file isSA�adequately protected so that the account login information is notu �compromised. �<ENDNOTE>p���<P>iH�The following example shows a simple input file that will log in a user,.�execute a couple of DCL commands, and log out.�� �<INTERACTIVE>x�<U>(<EMPHASIS>(!~\BOLD))�<U>(<EMPHASIS>(!~HUNTER\BOLD))$�<U>(<EMPHASIS>(!~!~MYPASSWORD\BOLD))%�<U>(<EMPHASIS>(SHOW USERS/FULL\BOLD))i�<U>(<EMPHASIS>(SHOW TIME\BOLD)) �<U>(<EMPHASIS>(LOGOUT\BOLD))�<ENDINTERACTIVE>���<P>uI�The /NOTIFY qualifier must <EMPHASIS>(not\ITALIC) be specified when usingtL�the ``auto-login'' feature. Also, remember that /WATCH must be specified toJ�continue supervising the terminal after the input file has been processed.H�The following command shows how the input file above could be processed:�� �<INTERACTIVE>TC�<S>($ )<U>(<EMPHASIS>(SUPERVISE TXA3:/ADVISE/INPUT=login.txt\BOLD)) �<ENDINTERACTIVE>����� T5�<HEAD2>(Using PHOTO Input Logs for Input\SUP_CH3_PHO) @�<X>(SUPERVISOR<xsubentry>Input files<xsubentry>Using PHOTO logs).�<X>(PHOTO<xsubentry>Input logs for SUPERVISOR)*�<X>(Input files<xsubentry>PHOTO log files)�<P>LG�A PHOTO log file may be used as an SUPERVISOR input file if PHOTO/INPUTiL�was specified when recording the terminal session. PHOTO/INPUT records onlyK�the characters input during the session and creates a special log file thatU$�is suitable for input to SUPERVISOR.���<P>gJ�When processing a PHOTO/INPUT log file, the /PHOTO qualifier must be given�on the SUPERVISE command line:�� �<INTERACTIVE>gI�<S>($ )<U>(<EMPHASIS>(SUPERVISE/ADVISE/INPUT=PHOTO.LOG/PHOTO TXA3:\BOLD))e�<ENDINTERACTIVE>���<P>ID�The /PHOTO qualifier <EMPHASIS>(must\ITALIC) be used with the /INPUT �qualifier.��� b=�<HEAD1>(Displaying the SUPERVISOR Version Number\SUP_CH2_VER)d,�<X>(SUPERVISOR<xsubentry>Displaying version)�<P>gJ�The command SUPERVISE/VERSION can be used to display the version number of �SUPERVISOR:e���<MARK> �<INTERACTIVE> .�<S>($ )<U>(<EMPHASIS>(SUPERVISE/VERSION\BOLD))9�<S>(%SUPER-I-VERSION, SUPERVISOR V5.4 linked 5-OCT-1992)O�<S>($)�<ENDINTERACTIVE> �<ENDMARK>I���<X>(SUPERVISOR\END)a��� sD�<CHAPTER>(SUPERVISOR Privileges and Identifiers\SUPER_PRIVS_CHAPTER)$�<X>(SUPERVISOR<xsubentry>Privileges)"�<X>(SUPERVISOR<xsubentry>Security) �<X>(Security)a�<P>nG�This chapter explains how SUPERVISOR determines which users can monitors�terminals and to what degree.g���<P> =�The security system used by SUPERVISOR is based on the rightsiI�identifiers held by the running user. The SUPERVISOR image is (normally)tK�installed with all of the privileges needed to run the program. SUPERVISORoJ�checks to see if the users holds any SUPERVISOR identifiers and sets up an?�internal privilege mask based on the presence or absence of the�E�identifiers. Th���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������E������������������������ � ������ SUPSER054.C��������������������& �� ��'[HUNTER.SUPSER.V54C.C]SUPERVISOR.SDML;1����������������������������������������������������������������������������������������c�����`�������������������������������:�������e system manager can grant and revoke the identifiers8:�as necessary to provide and/or limit access to SUPERVISOR.��J�The following sections describe the identifiers used by SUPERVISOR and theI�steps a manager should take to create, grant, and revoke the identifiers.(���<NOTE>F�The rights identifiers checked by SUPERVISOR are those returned by theH�$FIND_HELD system service. Unlike VMS privileges, when an identifier isH�granted to or revoked from a user, the user does not have to log out and,�back in again for the change to take effect. �<ENDNOTE>n���<NOTE>H�Because rights identifiers are granted to UICs, not usernames, using theG�DCL command SET UIC will prevent you from running SUPERVISOR if the newd)�UIC does not hold the SUPSER identifiers.e �<ENDNOTE>i��� 3�<HEAD1>(The SUPERVISOR Identifiers\SUPER_PRIVS_IDS)H�<X>(Identifiers)�<P>c0�There are seven identifiers used by SUPERVISOR. ?�<REFERENCE>(SUPER_IDS_TABLE) provides brief descriptions of theTD�identifiers. The following sections discuss the identifiers in more�detail.e��6�<TABLE>(SUPERVISOR Rights Identifiers\SUPER_IDS_TABLE)�<TABLE_SETUP>(2\20)Y%�<TABLE_HEADS>(Identifier\Description)�K�<TABLE_ROW>(SUPSER_ADVISE\Holder can observe <EMPHASIS>(and\ITALIC) advise)KJ�<TABLE_ROW>(SUPSER_OBSERVE\Holder can observe a terminal (but not advise))G�<TABLE_ROW>(SUPSER_ADVISE_GROUP\Holder can advise another member in theh� same UIC group)tI�<TABLE_ROW>(SUPSER_OBSERVE_GROUP\Holder can observe another member in thes� same UIC group)(5�<TABLE_ROW>(SUPSER_QUIET\Holder can enter QUIET mode) F�<TABLE_ROW>(SUPSER_LOGGED_OUT\Holder can monitor logged-out terminals)L�<TABLE_ROW>(SUPSER_NO_SUPERVISE\Holder cannot be supervised by another user) �<ENDTABLE>��� b.�<HEAD2>(The SUPSER_ADVISE Identifier\SUPER_SA)(�<X>(Identifiers<xsubentry>SUPSER_ADVISE)�<P>oJ�The SUPSER_ADVISE identifier grants the holder the ability to both observeI�and advise a target terminal. The supervisor can toggle between OBSERVER K�and ADVISOR modes while running SUPERVISOR. Logged-out terminals cannot bedF�monitored unless the user also holds the SUPSER_LOGGED_OUT identifier.���<P> J�Any user holding the SUPSER_ADVISE identifier is automatically granted theD�ability to observe terminals. It is not necessary to also grant theJ�SUPSER_OBSERVE identifier to that user (though it doesn't hurt anything to�do so).U��� S/�<HEAD2>(The SUPSER_OBSERVE Identifier\SUPER_SO)�)�<X>(Identifiers<xsubentry>SUPSER_OBSERVE)i�<P>sH�The SUPSER_OBSERVE identifier grants the holder the ability to observe aF�target terminal. A user holding only SUPSER_OBSERVE cannot advise anyI�other user. Logged-out terminals cannot be observed unless the user alsoc'�holds the SUPSER_LOGGED_OUT identifier.l���<P>aK�Users holding only SUPSER_OBSERVE are restricted from toggling OBSERVER andsE�ADVISOR modes and from toggling XON and XOFF for the target terminal.n��� e5�<HEAD2>(The SUPSER_ADVISE_GROUP Identifier\SUPER_SAG)e.�<X>(Identifiers<xsubentry>SUPSER_ADVISE_GROUP)�<P>(K�The SUPSER_ADVISE_GROUP identifier grants the holder the ability to observeTL�and advise any logged-in user whose UIC is in the same group as the holder. J�This identifier is useful when members of the same group should be allowedE�to advise each other, without granting them the ability to advise allO�users.���<P>BH�Because a user must be logged in to the target terminal in order for theJ�UIC check to be made, holders of this identifier should not be granted theK�SUPSER_LOGGED_OUT identifier. A user holding both would be able to monitorwJ�a physical terminal across logins, which could result in the monitoring ofE�a user outside the group, since the UIC group check is only made when��SUPERVISOR is first started.��� 36�<HEAD2>(The SUPSER_OBSERVE_GROUP Identifier\SUPER_SOG)/�<X>(Identifiers<xsubentry>SUPSER_OBSERVE_GROUP)e�<P>rL�The SUPSER_OBSERVE_GROUP identifier grants the holder the ability to observeF�any logged-in user whose UIC is in the same group as the holder. ThisH�identifier is useful when members of the same group should be allowed toK�observe each other, without granting them the ability to observe all users.r���<P>�H�Because a user must be logged in to the target terminal in order for theJ�UIC check to be made, holders of this identifier should not be granted theK�SUPSER_LOGGED_OUT identifier. A user holding both would be able to monitortJ�a physical terminal across logins, which could result in the monitoring ofE�a user outside the group, since the UIC group check is only made wheni�SUPERVISOR is first started.��� �3�<HEAD2>(The SUPSER_LOGGED_OUT Identifier\SUPER_SLO)i,�<X>(Identifiers<xsubentry>SUPSER_LOGGED_OUT)#�<X>(Terminals<xsubentry>Logged-out) �<P>cK�The SUPSER_LOGGED_OUT identifier grants the holder the privilege to observedE�or advise a logged-out terminal. It should be granted in tandem withI?�either SUPSER_OBSERVE or SUPSER_ADVISE. Both SUPSER_ADVISE and:F�SUPSER_LOGGED_OUT are required for a user running SUPERVISOR to log inK�a target terminal. This also applies to a user wishing to process an input(1�file that logs into an account on a terminal (see 2�<REFERENCE>(SUP_CH3_INPUTS) for more information).���<P>cG�When a user logged in to a monitored terminal logs out, SUPERVISOR will�J�automatically exit unless the user holds the SUPSER_LOGGED_OUT identifier.E�The following messages are displayed on the supervising terminal when �SUPERVISOR exits: �� �<INTERACTIVE>e&�<S>(%SUPER-I-EXIT, Supervisor exiting)J�<S>(%SUPER-E-NOLOGOUTPRIV, no privilege to supervise logged out terminals)�<S>($)�<ENDINTERACTIVE>��� N-�<HEAD2>(The SUPSER_QUIET Identifier\SUPER_SQ)x'�<X>(Identifiers<xsubentry>SUPSER_QUIET)s�<X>(Modes<xsubentry>Quiet)�<P>aI�The SUPSER_QUIET identifier lets the holder run SUPERVISOR in QUIET mode,dL�which suppresses the notification messages that can be broadcast to a targetD�terminal. SUPSER_QUIET should be granted on a very limited basis to-�prevent the unauthorized monitoring of users.(���<P> H�SUPERVISOR starts in QUIET mode unless the /NOTIFY qualifier is given onI�the command line. A user who does not hold SUPSER_QUIET will receive theb7�following message if SUPERVISOR is run without /NOTIFY:e�� �<INTERACTIVE>`,�<S>($ )<U>(<EMPHASIS>(SUPERVISE TXA3:\BOLD))K�<S>(%SUPER-E-NOQUIETPRIV, no privilege to suppress monitoring notification)n�<S>($)�<ENDINTERACTIVE>���<P>tH�QUIET mode was chosen as the default startup mode because many sites useJ�SUPERVISOR for security purposes. If the default was /NOTIFY, a suspectedE�user would accidentally be notified that he is being monitored if theS0�supervising user neglected to specify /NONOTIFY.��� I(�<HEAD1>(Blocking SUPERVISOR\SUPER_BLOCK).�<X>(Identifiers<xsubentry>SUPSER_NO_SUPERVISE)�<P>yE�It is often desirable to be able to prevent another user from runningsJ�SUPERVISOR to monitor some accounts. For example, most system managers doI�not want operators to be able to monitor them, though they may be able to I�monitor other users. When SUPERVISOR is started, it checks to see if thei:�user logged in on the target terminal holds the identifierF�SUPSER_NO_SUPERVISE. If so, the ``no privilege'' message is displayed�and SUPERVISOR exits.i���<P> D�There is only one exception made by SUPERVISOR. A user holding bothM�SUPSER_NO_SUPERVISE and SUPSER_ADVISE or SUPSER_OBSERVE is allowed to monitornD�any terminal logged in <EMPHASIS>(under that same UIC). This allowsC�system managers to block all users from running SUPERVISOR on theiraI�terminals while still allowing themselves the ability to affect their own �terminals.���<P> G�Once again, care should be taken if the SUPSER_LOG���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������F������������������������yO� ������ SUPSER054.C��������������������& �� ��'[HUNTER.SUPSER.V54C.C]SUPERVISOR.SDML;1����������������������������������������������������������������������������������������c�����`�������������������������(\������I�������GED_OUT identifier is�C�held by users. Because the check for identifiers is only done whenOI�SUPERVISOR is first started, a user with SUPSER_LOGGED_OUT could still beB<�monitoring the terminal when a SUPSER_NO_xxxxx user logs in.��� D9�<HEAD1>(Creating SUPERVISOR Identifiers\SUPER_CREATE_IDS)M�<P>SD�Rights identifiers are created using the VMS utility AUTHORIZE. For;�information using AUTHORIZE, please consult the VMS manual,r%�<EMPHASIS>(AUTHORIZE Utility\ITALIC).e��#�<X>(Identifiers<xsubentry>Creating)m�<P>hH�The SUPERVISOR identifiers can be created during the installation of theJ�<REFERENCE>(SUPSER). If they were not created then, the AUTHORIZE commandJ�ADD/IDENTIFIER can be used to create them. The following example shows how3�SUPSER_ADVISE and SUPSER_LOGGED_OUT can be created:l�� �<INTERACTIVE>s<�<S>(UAF> )<U>(<EMPHASIS>(ADD/IDENTIFIER SUPSER_ADVISE\BOLD))I�<S>(Identifier SUPSER_ADVISE value: %X8001015D added to rights data base) @�<S>(UAF> )<U>(<EMPHASIS>(ADD/IDENTIFIER SUPSER_LOGGED_OUT\BOLD))M�<S>(Identifier SUPSER_LOGGED_OUT value: %X8001015E added to rights data base)r �<S>(UAF>)c�<ENDINTERACTIVE>���<P>iF�The actual values assigned to the identifiers are irrelevant as far as�SUPERVISOR is concerned.��� sE�<HEAD1>(Granting and Revoking the SUPERVISOR Identifiers\SUPER_GRIDS)>#�<X>(Identifiers<xsubentry>Granting)O�<P>GI�The AUTHORIZE commands GRANT/IDENTIFIER and REVOKE/IDENTIFIER are used toSF�grant and revoke identifiers to and from users. The following exampleC�shows how a user is granted the SUPSER_ADVISE and SUPSER_LOGGED_OUTu �identifiers:�� �<INTERACTIVE>g=�<S>(UAF> )<U>(<EMPHASIS>(GRANT/ID SUPSER_ADVISE HUNTER\BOLD))i*�Identifier SUPSER_ADVISE granted to HUNTERA�<S>(UAF> )<U>(<EMPHASIS>(GRANT/ID SUPSER_LOGGED_OUT HUNTER\BOLD))R.�Identifier SUPSER_LOGGED_OUT granted to HUNTER �<S>(UAF>)E�<ENDINTERACTIVE>��#�<X>(Identifiers<xsubentry>Revoking)��<P>T;�Similarly, identifiers are revoked using REVOKE/IDENTIFIER:)�� �<INTERACTIVE>x>�<S>(UAF> )<U>(<EMPHASIS>(REVOKE/ID SUPSER_ADVISE HUNTER\BOLD)),�Identifier SUPSER_ADVISE revoked from HUNTER �<S>(UAF>)r�<ENDINTERACTIVE>�����<PART> �<PART_PAGE>n$�<TITLE>(Part II: Command Dictionary) �<ABSTRACT>G�This section provides a VMS-style description of the SUPERVISE command. �<ENDABSTRACT>R���<ENDPART_PAGE>(RENUMBER)�<ENDBOOK_ONLY>5�<COMMAND_SECTION>(Command Reference\Commands\NEWPAGE)I��#�<COMMAND>(SUPERVISE\\SUPERVISE_CMD)a�<X>(SUPERVISE command\BEGIN)�� �<OVERVIEW>�<P>lH�Invokes the SUPERVISOR utility to ``take over'' another user's terminal.J�SUPERVISOR operates in two modes: OBSERVER and ADVISOR. In OBSERVER mode,A�all characters displayed on the target terminal are echoed on thes@�supervising terminal. In ADVISOR mode, SUPERVISOR also lets theA�supervising terminal enter input on behalf of the target process;>;�characters input from the supervising terminal are insertedr1�into the typeahead buffer of the target terminal.p���<P>eN�SUPERVISOR can also be used to execute commands stored in input files on otherE�terminals, providing a useful mechanism for automating simulated userO�input. �<ENDOVERVIEW> ���<FORMAT>'�<X>(SUPERVISE command<xsubentry>Format),1�<FCMD>(SUPERVISE)<FPARMS>([/qualifiers] terminal)o �<QUAL_LIST>E�<QPAIR>(/ADVISE\/NOADVISE)�<MARK>�<QPAIR>(/BROADCAST\/BROADCAST) �<ENDMARK> *�<QPAIR>(/BUFFER_SIZE=pages\/BUFFER_SIZE=2)7�<QPAIR>(/COMMAND_CHARACTER=number\/COMMAND_CHARACTER=4)i�<QPAIR>(/INPUT\)�<QPAIR>(/NOTIFY\/NONOTIFY)�<QPAIR>(/PHOTO\)�<QPAIR>(/WATCH\)�<QPAIR>(/VERSION\)�<ENDQUAL_LIST> �<ENDFORMAT>d���<PARAMDEFLIST>*�<X>(SUPERVISE command<xsubentry>Parameter)�<PARAMITEM>(terminal)E �<PARAMDEF>L�Specifies the target terminal that is to be supervised. The target terminal.�cannot be an RT device (SET HOST over DECnet).�<ENDPARAMDEFLIST>B�� �<QUALDEFLIST>S+�<X>(SUPERVISE command<xsubentry>Qualifiers)d�<QUALITEM>(/ADVISE)U �<QUALDEF>_J�Specifies that SUPERVISOR should start in ADVISOR mode instead of OBSERVERE�mode. ADVISOR mode lets the user enter input on behalf of the targeta �terminal.p���<P>B?�The supervising user must hold the SUPSER_ADVISE identifier (orU6�SUPSER_ADVISE_GROUP) to specify the /ADVISE qualifier.��!�<QUALITEM>(/BROADCAST[=filename])d �<QUALDEF>e�<MARK>C�Specifies that SUPERVISOR will trap any broadcast messages receivednB�and write them to an external file for later viewing. By default,C�broadcast messages (new mail notification, operator messages, etc.)rC�are trapped and written to SUPERVISOR_BROADCASTS.LOG in the currentOF�default directory. The name of the messages file can be overridden by5�specifying the desired name as a value to /BROADCAST.e���<P>_4�To disable broadcast trapping, specify /NOBROADCAST. �<ENDMARK>E���<QUALITEM>(/BUFFER_SIZE=pages) �<QUALDEF>lI�Specifies the number of pages to use for buffering while supervising. BySH�default, 2 pages are used. Up to 10 pages may be specified. AdditionalG�pages are useful on heavily-loaded systems where SUPERVISOR misses some<�data.r��$�<QUALITEM>(/COMMAND_CHARACTER=value) �<QUALDEF>fK�Specifies the ASCII value of the character to use as the SUPERVISOR commandiK�key. Values between 0 and 31 are valid, except 17, 19, and 26. This rangeaG�includes all of the <KEY>(CTRL)-key combinations, except <KEY>(CTRL-Q),iK�<KEY>(CTRL-S), and <KEY>(CTRL-Z). The default value is 4 (<KEY>(CTRL-D)). g���<P>EF�To change the command character, simply specify the ASCII value of the@�desired character. For example, /COMMAND_CHARACTER=18 specifies'�<KEY>(CTRL-R) as the command character.S���<P>)H�All SUPERVISOR commands are two-key sequences, prefaced by the specified<�command character. For example, by default, the combinationH�<KEY>(CTRL-D) <KEY>(CTRL-H) will display brief help while in SUPERVISOR.A�<REFERENCE>(SUP_CMDS) shows the SUPERVISOR command key sequences.g���<NOTE>I�Selecting a command key that is already implemented as a command function K�will effectively disable that option. For example, selecting <KEY>(CTRL-H)dG�as the command key will disable the ability to show on-line help, since J�pressing the command key twice in a row will send that character (ASCII 8)�through to the target terminal.n �<ENDNOTE>r���<QUALITEM>(/INPUT) �<QUALDEF> G�Specifies the name of an input file that contains input characters that2N�are to be entered on the target terminal. SUPERVISOR will read the charactersH�from the input file and place them in the typeahead buffer of the targetG�terminal; VMS processes the characters as if they had been typed at the �target terminal.�<P>hJ�Because SUPERVISOR normally starts in OBSERVER mode, the /ADVISE qualifierE�must be specified on the command line for the /INPUT file to have anyu0�effect. The input file can have any RMS format.�<P> .�<X>(PHOTO<xsubentry>Input logs for SUPERVISOR)F�PHOTO input logs, created with the PHOTO/INPUT command, can be used asL�input files to SUPERVISOR. Because PHOTO input logs are not normal RMS textA�files, the /PHOTO qualifier must be specified with /INPUT to tell 0�SUPERVISOR to expect the PHOTO input-log format.���<QUALITEM>(/NOTIFY)E �<QUALDEF>iJ�Broadcasts a message to the target terminal notifying the target user thatI�he is being supervised. By default, SUPERVISOR will start in quiet mode,oI�if the user has the privilege to suppress notification. If the user doeseF�not have the privilege, /NOTIFY must be specified to begin SUPERVISOR.���<QUALITEM>(/PHOTO) �<QUALDEF>VE�Specifies that the input file (/INPUT=filename) was created using theuD�PHOTO/INPUT command. PHOTO input log files are created in a specialL�``binary'' format; the SUPERVISOR qualifier /PHOTO is required to tell PHO���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G������������������������m � ������ SUPSER054.C��������������������& �� ��'[HUNTER.SUPSER.V54C.C]SUPERVISOR.SDML;1����������������������������������������������������������������������������������������c�����`�������������������������������X�������TO�to expect that format.���<QUALITEM>(/WATCH) �<QUALDEF>oL�Specifies that SUPERVISOR should continue supervising the terminal after theE�/INPUT file has been processed. Normally SUPERVISOR terminates afterS�processing the input file.���<QUALITEM>(/VERSION) �<QUALDEF>yE�Displays the version of SUPERVISOR currently installed on the system.E�<ENDQUALDEFLIST>�� �<DESCRIPTION>x,�<X>(SUPERVISE command<xsubentry>Description)C�When SUPERVISOR is executed without any qualifiers, it connects the�I�supervising terminal to the target terminal and enters OBSERVER mode. AllUG�characters typed and displayed on the target terminal are echoed on theeA�supervising terminal. If the SUPERVISOR enters ADVISOR mode, anytD�characters typed at the supervising terminal (except the command keyI�sequences) are inserted into the typeahead buffer of the target terminal.u=�VMS treats the characters as coming from the target terminal.I���<P> J�Input logs created by PHOTO/INPUT can also be used as input to SUPERVISOR.���<P>lF�All SUPERVISOR commands are preceded by the character specified on theJ�command line as the /COMMAND_CHARACTER. By default, the command characterH�is <KEY>(CTRL-D). Pressing the command character twice while in ADVISOR>�mode will force that character through to the target terminal.A�<REFERENCE>(SUP_CMDS) shows the SUPERVISOR command key sequences.f��%�<TABLE>(SUPERVISOR Commands\SUP_CMDS) 3�<X>(SUPERVISE command<xsubentry>Special characters)f�<TABLE_SETUP>(2\10)mI�<FOOTNOTE>(1\Valid only if the user holds either the SUPSER_ADVISE or theH"� SUPSER_ADVISE_GROUP identifier.)G�<FOOTNOTE>(2\Valid only if the user holds the SUPSER_QUIET identifier.)iF�<FOOTNOTE>(3\Terminal output that arrives while in the spawned process:� is not buffered properly in this version of SUPERVISOR.)�<TABLE_HEADS>(Key\Description)=�<TABLE_ROW>(<KEY>(CTRL-A)\Toggle between OBSERVER and ADVISOR.� modes.<FOOTREF>(1))aE�<TABLE_ROW>(<KEY>(CTRL-H)\Display brief help on SUPERVISOR commands.)oE�<TABLE_ROW>(<KEY>(CTRL-N)\Toggle NOTIFY and QUIET modes.<FOOTREF>(2))eA�<TABLE_ROW>(<KEY>(CTRL-T)\Display monitoring status information.)n;�<TABLE_ROW>(<KEY>(CTRL-V)\Spawn a subprocess. <FOOTREF>(3))N7�<TABLE_ROW>(<KEY>(CTRL-W)\Clear the supervising screen)dI�<TABLE_ROW>(<KEY>(CTRL-X)\Used as a <KEY>(HOLD SCREEN) key for the target � terminal.<FOOTREF>(1))*�<TABLE_ROW>(<KEY>(CTRL-Z)\Exit Supervisor) �<ENDTABLE>���<ENDDESCRIPTION>���<RESTRICTIONS>(LIST)-�<X>(SUPERVISE command<xsubentry>Restrictions)�$�<X>(Terminals<xsubentry>Unsupported)=�<RITEM> RT devices (network terminals logged in via SET HOST $� over DECnet) cannot be supervised.F�<RITEM> WT devices (UIS VT100 pseudo-terminals) cannot be supervised.=�<RITEM> VAX 6xxx-series console terminals cannot be advised,s1� though they <EMPHASIS>(can\ITALIC) be observed.\F�<RITEM> SUPERVISOR is not compatible with the following DEC products:8� Session Support Utility (SSU), DEC/Test Manager, ACMS,+� and the Terminal Fallback Facility (TFF).I�<ENDRESTRICTIONS>e�<X>(SUPERVISE command\END)���<ENDCOMMAND_SECTION> �<INDEX_FILE>D�<COMMENT>( VAX/DEC CMS REPLACEMENT HISTORY, Element SUPERVISOR.SDML)>�<COMMENT>( *11 6-OCT-1992 04:46:59 GOATHUNTER "Fixed typo")G�<COMMENT>( *10 5-OCT-1992 16:20:31 GOATHUNTER "Fix <HEAD2> tag....")�C�<COMMENT>( *9 5-OCT-1992 14:55:25 GOATHUNTER "Update for v5.4")s<�<COMMENT>( *8 10-AUG-1992 16:25:43 GOATHUNTER "Fix typo")c�<COMMENT>( *7 10-AUG-1992 13:09:06 GOATHUNTER "Updated for v5.3, added author info, fixed typo")>S�<COMMENT>( *6 20-MAY-1992 08:26:51 GOATHUNTER "Fixed preface page number, date")0>�<COMMENT>( *5 19-MAY-1992 15:01:41 GOATHUNTER "Fixed typo")R�<COMMENT>( *4 15-MAY-1992 06:00:29 GOATHUNTER "Added note about using SET UIC")U�<COMMENT>( *3 13-MAY-1992 11:28:08 GOATHUNTER "Updated title page, misc. changes")SR�<COMMENT>( *2 12-MAY-1992 09:46:10 GOATHUNTER "Updated for restrictions, etc.")4�<COMMENT>( *1 9-MAY-1992 02:23:57 GOATHUNTER "")D�<COMMENT>( VAX/DEC CMS REPLACEMENT HISTORY, Element SUPERVISOR.SDML)s how a user is grante��������������*�*�[HUNTER.SUPSER.V54C.C]SUPERVISOR_CLD.CLD;1�+��,�+% ���.�����/��� �4�K���������������������������-� ����0���1����2���3������K��P���W���O�����5���6�%[S��7�@VU3䵖��8����������9����������G����H��J����������������������MODULE supervisor_cli_table��IDENT '01-003'�!�H�! Copyright 1992 by Hunter Goatley. All rights reserved. PermissionK�! is given to freely distribute and modify this software for no commercial�5�! gain as long as this copyright notice is retained.��!��!+�!��! Facility: SUPERVISOR��!��! Module: SUPERVISOR_CLI_TABLE��!�4�! Author: Hunter Goatley (goathunter@WKUVX1.BITNET)�!��! Date: April 2, 1992�!��! Modified by:��!�+�! 01-003 Hunter Goatley 7-OCT-1992 08:30��! Made /BROADCAST negatable.��!�+�! 01-002 Hunter Goatley 5-OCT-1992 14:53��! Added /BROADCAST.�!�+�! 01-001 Hunter Goatley 22-APR-1992 08:51��! Converted from advisorcli.��!�+�! 01-000 Hunter Goatley 2-APR-1992 16:15�(�! Conversion from CLD to object module.�!-�define syntax supervise_version� � noparameters����define verb supervise� � qualifier buffer_size default,(� value (type = $number, default = 2)� qualifier advise nonnegatable�� qualifier notify, negatable�*� qualifier broadcast, negatable, default,� value (type = $file)� � qualifier input, nonnegatable,#� value (required, type = $file)�� qualifier photo, nonnegatable�/� qualifier version, syntax = supervise_version�� qualifier watch, nonnegatable�+� qualifier command_character, nonnegatable,� � default,�(� value (type = $number, default = 4)4� parameter p1 label=TERMINAL, prompt = "Terminal",%� value (required, type = $device)�$� disallow any2 (version, terminal)� disallow photo and not input�� disallow watch and not input�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������&�*�[HUNTER.SUPSER.V54C.C]SUPSER054.SDML;2�+��,�a(���.�'����/��� �4�P���'���&��������������������-� ����0���1����2���3������K��P���W���O�'����5���6��&ⵖ��7�`53䵖��8����������9����������G����H��J������������������������� �<COMMENT>��!�G�! Copyright 1992 by Hunter Goatley. All rights reserved. This code�H�! may be freely distributed and modified for non-commercial purposes as-�! long as this copyright notice is retained.��!���� File: SUPSER054.SDML���� Author: Hunter Goatley��� Date: October 5, 1992��?� Abstract: VAX DOCUMENT source file for Supervisor Series v5.4�� Release Notes���� Modified by:��*� 01-002 Hunter Goatley 21-APR-1993 15:17� Added v5.4b notes.��*� 01-001 Hunter Goatley 7-OCT-1992 08:52� Added v5.4a notes.��$� 01-000 Hunter Goatley 5-OCT-1992 � Genesis.�� �<ENDCOMMENT>)�<DEFINE_SYMBOL>(SUPSER\Supervisor Series)�5�<DEFINE_SYMBOL>(SUP_GUIDE\SUPERVISOR Reference Guide)�2�<DEFINE_SYMBOL>(PHOTO_GUIDE\PHOTO Reference Guide)0�<DEFINE_SYMBOL>(WKU\Western Kentucky University)�<DEFINE_SYMBOL>(oldver\V5.3)�<DEFINE_SYMBOL>(ver\V5.4b)�<FRONT_MATTER>�� �<TITLE_PAGE>(�<TITLE>(Supervisor Series Release Notes)�<ABSTRACT>(October 1992)?�<P>This file contains the release notes for <REFERENCE�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������H������������������������#�� ������ SUPSER054.C��������������������a(�� ��&[HUNTER.SUPSER.V54C.C]SUPSER054.SDML;2�����������������������������������������������������������������������������������������P�����'�������������������������)A�������������>(SUPSER)��<REFERENCE>(VER).�C�It describes any features, restrictions, changes, or additions made�D�to the <REFERENCE>(SUPSER) in this release, and includes informationE�that is not provided elsewhere in the <REFERENCE>(SUPSER) manual set.� �<ENDABSTRACT>�&�<REVISION_INFO>(This is a new manual.)@�<REVISION_INFO>(Operating System and Version:\VMS V5.0 or later)9�<REVISION_INFO>(Software Version:\PHOTO <REFERENCE>(VER))�4�<COMMENT>(<REVISION_INFO>(\HANDIN <REFERENCE>(VER)))-�<REVISION_INFO>(\SUPERVISOR <REFERENCE>(VER))�8�<ENDTITLE_PAGE>(Academic Computing and Research ServicesC� <LINE>Western Kentucky University<LINE>Bowling Green, Kentucky)����<COPYRIGHT_PAGE>�<PRINT_DATE>(7 October 1992)���<P>�C�Permission is granted to copy and redistribute this document for no��commercial gain.���<P>�D�The information in this document is subject to change without noticeF�and should not be construed as a commitment by the author. The authorJ�assumes no responsibility for any errors that may appear in this document.���<P>�D�<EMPHASIS>(DISCLAIMER:\BOLD) The software described in this documentI�is provided <QUOTE>(<EMPHASIS>(as is\BOLD)). No guarantee is made by the�C�author or the author's employer as to the suitability, reliability,�6�security, usefulness, or performance of this software.���<P>�C�Neither <REFERENCE>(WKU) nor Hunter Goatley are responsible for any�4�losses that may occur from the use of this software.��A�<P>The following are trademarks of Digital Equipment Corporation:��<TABLE>�!�<TABLE_ATTRIBUTES>(SINGLE_SPACED)��<TABLE_SETUP>(3\20\20)�<TABLE_ROW>(DEC\VAX\VMS)�<TABLE_ROW>(DECnet\UCX\UIS)�#�<TABLE_ROW>(VMScluster\AXP\OpenVMS)� �<ENDTABLE>���<P>�:�MultiNet is a trademark of SRI International and TGV, Inc.��<�<COPYRIGHT_DATE>(1992\Hunter Goatley. ALL RIGHTS RESERVED.)�<ENDCOPYRIGHT_PAGE>��<CONTENTS_FILE>��<ENDFRONT_MATTER>����<CHAPTER>(Installation Notes)�I�<p>This chapter contains items of interest pertaining to the installation��of the <REFERENCE>(SUPSER).���?�There are four utilities that comprise the <REFERENCE>(SUPSER):����<LIST>(unnumbered)�<LE> SUPERVISOR� �<LE> PHOTO �<LE> HANDIN� �<LE> PLAYBACK� �<ENDLIST>���� ��<HEAD1>(Commands)��<P>�J�The commands used to invoke the utilities can either be defined as foreignB�symbols or they can be added to the system-wide DCL command tablesC�(SYS$LIBRARY:DCLTABLES.EXE). When the latter method is chosen, the�J�commands are available to all users on the system (though file protections=�and privileges may prevent them from executing the programs).����<P>�G�The installation gives you the option of adding the commands to the DCL�L�command tables or not. It is recommended that you do <EMPHASIS>(not\ITALIC)?�add the SUPERVISE command to DCLTABLES. Using a foreign symbol�H�lets only those users who need to use the utilities have ready access to�them.����<P>�K�Because PHOTO may be useful to all users, you probably will want to add the�0�PHOTO command to the system-wide command tables.��� ��<HEAD1>(On-line Help)��<P>�G�During the installation, you will be given the option of installing the�F�help files for the utilities in one of the system help libraries. TheD�system default help library is SYS$SYSROOT:[SYSHLP]HELPLIB.HLB. TheF�installation procedure will give you the option of installing the helpD�files in other libraries (those defined by the logicals HLP$LIBRARY,�HLP$LIBRARY_1, etc.).����<P>�J�You may wish to insert the help files in a local library pointed to by oneC�of the HLP$LIBRARY logicals to avoid cluttering the normal VMS help��library.���<P>�A�The SUPERVISOR help file should not be installed in a system help�C�library if you chose not to add the SUPERVISE command to DCLTABLES.����<P>�G�The on-line help files can be found in the directory SUPSER_ROOT:[DOC].���� �3�<HEAD1>(Installing Over <REFERENCE>(SUPSER) v5.1-1)��<P>�E�If you are installing the <REFERENCE>(SUPSER) <REFERENCE>(VER) over a�H�v5.1 or v5.1-1 installation, there are two additional steps that must be�performed manually.����<P>�H�The ADVISOR and OBSERVER utilities were combined into one program calledG�SUPERVISOR in <REFERENCE>(SUPSER) <REFERENCE>(OLDVER). Before or after�I�installing <REFERENCE>(VER), you must delete the ADVISE and OBSERVE verbs�H�from DCLTABLES, if you installed them there. The following command will�delete ADVISE and OBSERVE:�� �<INTERACTIVE>�&�$ SET COMMAND/DELETE=(ADVISE,OBSERVE)-1� /TABLES=SYS$COMMON:[SYSLIB]DCLTABLES.EXE-�0� /OUTPUT=SYS$COMMON:[SYSLIB]DCLTABLES.EXE+�$ INSTALL REPLACE SYS$LIBRARY:DCLTABLES.EXE��<ENDINTERACTIVE>���<NOTE>J�Be sure that you modify the correct copy of DCLTABLES.EXE---the one that'sA�INSTALLed on your system. The file is usually in SYS$COMMON, not�I�SYS$SPECIFIC. Also, be sure you specify SYS$COMMON in the command above.� �<ENDNOTE>����<P>�G�You should also delete the ADVISE and OBSERVE on-line help modules from�H�whichever library you added them. The following will delete the modules�from SYS$HELP:HELPLIB.HLB:�� �<INTERACTIVE>�;�$ LIBRARY/HELP/DELETE=(ADVISE,OBSERVE) SYS$HELP:HELPLIB.HLB��<ENDINTERACTIVE>���<P>�A�These steps must be performed manually because each site may have�K�customized the command names, not installed them, put the help in different��libraries, etc.���� �%�<CHAPTER>(New Features and Bug Fixes)��<P>�E�The version of the <REFERENCE>(SUPSER) that was released to DECUS was�?�version 5.0-D. This document describes <REFERENCE>(VER) of the�D�<REFERENCE>(SUPSER), as modified by Hunter Goatley, Western Kentucky&�University (goathunter@WKUVX1.BITNET).���<P>�B�The <REFERENCE>(SUPSER) was originally written by Bob Pasker, Bill�Donner, and Terry Way.���<P>�<�The following bug fixes were made in the <REFERENCE>(SUPSER)�<REFERENCE>(VER):����<LIST>(numbered)F�<LE> A problem with the page protection on the P1 memory used by PHOTO>� occasionally allowed user-mode programs to crash the system. ?� Programs that caused the user stack to be overrun would end up�6� writing over the memory used by PHOTO. This has been � corrected.� �<ENDLIST>����<P>�C�The following bug fixed were made in the <REFERENCE>(SUPSER) V5.4a:����<LIST>(numbered)C�<LE> The SUPERVISE command would not accept /NOBROADCAST. This has�� been corrected.?�<LE> SUPERVISOR was not correctly restoring all of the original�7� terminal characteristics for the supervising terminal.�9� Specifically, the terminal was left in ``No Broadcast''.�� This has been corrected.� �<ENDLIST>����<P>�F�The following new features were added in the <REFERENCE>(SUPSER) V5.4:���<LIST>(numbered)@�<LE> A new qualifier, /BROADCAST, was added to SUPERVISOR. This;� qualifier causes SUPERVISOR to trap all broadcast messages�9� received by the supervising terminal. All such messages�8� are written to a file, whose name can be specified as a9� value to /BROADCAST. By default, /BROADCAST is enabled;�7� /NOBROADCAST must be specified to prevent the trapping�;� of broadcast messages. Note that the message file is only�>� created if messages are actually received during the session.��A�<LE> SUPERVISOR was modified to check the page size of the target�<� terminal and print a warning to the supervising user if the>� size differs from the page size of the supervising terminal. 7� If the supervising terminal is smaller than the target�8� terminal, many screen-oriented applications will not be0� displayed properly on the supervising terminal.��B�<LE> The modules that comprise SUPERVISOR and PHOTO must be linked@� in a particular order to produce the correct executable images.:� While both perform a check to ensure the image was linked3� properly, the SUPER���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������I������������������������m� ������ SUPSER054.C��������������������a(�� ��&[HUNTER.SUPSER.V54C.C]SUPSER054.SDML;2�����������������������������������������������������������������������������������������P�����'��������������������������������������VISOR check was made after some�<� initialization had occurred, causing the system to crash if;� the image was improperly linked. SUPERVISOR and PHOTO now�:� check for this occurrence before any initialization takes>� place. This problem only occurred if the <REFERENCE>(SUPSER)0� images were rebuilt without using the MMS file.��B�<LE> The HANDIN utility has been added to the <REFERENCE>(SUPSER).8� HANDIN creates a log file in a protected directory and,8� upon HANDIN/OFF, automatically queues the log file to a8� designated printer (SYS$PRINT, by default). HANDIN was9� designed with the academic environment in mind: students�:� can run HANDIN to produce printouts of terminal sessions.:� Because the file is created in a protected directory, the:� student is unable to edit the log file, ensuring that the:� printout is an unmodified record of the terminal session.��� <P>A� HANDIN is described in more detail in <REFERENCE>(HANDIN_GUIDE).�5� With this release, HANDIN is not yet an ``official''�;� <REFERENCE>(SUPSER) module, because it doesn't have enough�(� features to be considered ``finished.''��?�<LE> PHOTO is now compatible with VMS POSIX. Previous versions�:� of PHOTO would report an ``internal consistency failure''$� if POSIX was started on the system.��:�<LE> In previous versions of PHOTO, pressing <KEY>(Ctrl-Y)9� during PHOTO and PHOTO/OFF could crash the system. This�� problem has been corrected.��A�<LE> PHOTO and HANDIN now check that all necessary privileges are�8� enabled before executing any privileged routines. This<� eliminates potential problems with privilege-related errors!� occurring during initialization.���>�<LE> A new qualifier, /ABORT, was added to PHOTO. PHOTO/ABORT?� terminates the PHOTO session and automatically deletes the log�� file.��E�<LE> PHOTO now includes error and informational messages that reflect�9� input-only recording where appropriate. Previously, the�>� messages did not indicate the type of recording. This change=� affects the messages produced by PHOTO/INPUT, PHOTO/OFF, and�� PHOTO/STATISTICS.��C�<LE> PHOTO now provides a default filename of SYS$DISK:[]PHOTO.LOG.�7� Previous versions of PHOTO did not supply any filename� � defaults.��B�<LE> PLAYBACK was modified so that /STRIP removes rubout sequences8� (character, backspace, space, backspace) in addition to� null characters.���B�<LE> PLAYBACK was modified so that /STRIP and /TYPE=RECORD are the?� default settings, since PLAYBACK is most often used to convert�+� binary log files to normal RMS text files.���E�<LE> Miscellaneous clean-up changes were made to all of the utilities�(� to increase reliability and efficiency. �<ENDLIST>���� �.�<CHAPTER>(HANDIN Reference Guide\HANDIN_GUIDE)�<P>�D�HANDIN is designed to allow students to automatically queue terminalF�session log files to a printer. The default print queue is SYS$PRINT;C�the user can override the print queue using the /QUEUE qualifier on�(�the HANDIN and HANDIN/OFF command lines:�� �<INTERACTIVE>�/�<S>($ )<U>(<EMPHASIS>(HANDIN/QUEUE=LASER\BOLD))��<ENDINTERACTIVE>���<P>�@�If /QUEUE is specified with HANDIN/OFF, that queue overrides the"�queue set with the HANDIN command.���<P>�H�HANDIN automatically prints a flag page as proof that the file came fromJ�the SUPSER_HANDIN_LOGS directory (the filename is printed at the bottom of�the flag page).����<HEAD1>(Setting Up HANDIN)�<P>�C�HANDIN is installed with SYSPRV and the logs should be created in a�@�directory protected from access by everyone except SYSTEM. This@�ensures that the files cannot be edited before they are printed.=�HANDIN uses the logical name SUPSER_HANDIN_LOGS to locate the�?�protected directory. By default, SUPSER_ROOT:[HANDIN] is used.�C�The SUPSER_ROOT:[HANDIN] directory should be created with a command��like the following:��� �<INTERACTIVE>�P�<S>($ )<U>(<EMPHASIS>(CREATE/DIR/PROT=(S:RWED,O,G,W) SUPSER_ROOT:[HANDIN]\BOLD))�<ENDINTERACTIVE>���<P>�B�The directory should be located on a disk without disk quotas (seeF�<REFERENCE>(HANDIN_RESTRICT) for more information). The definition of?�SUPSER_HANDIN_LOGS should be added to the SUPSER_STARTUP.COM in��SUPSER_ROOT:[COM].�� �<INTERACTIVE>�?�<S>($ define/system/exec supser_handin_logs device:[directory])��<ENDINTERACTIVE>���<P>�B�HANDIN log files are normally deleted immediately after printing. C�However, the log file can be left in the directory if the user logs�E�out while a HANDIN session is active, for example. You should set up�B�a batch procedure to delete HANDIN logs older than some date. ForE�example, the following command will delete all log files older than 3��days:��� �<INTERACTIVE>�>�<S>($ )<U>(<EMPHASIS>(date = f$cvtime("-3-","ABSOLUTE")\BOLD))J�<S>($ )<U>(<EMPHASIS>(DELETE SUPSER_HANDIN_LOGS:*.*;*/BEFORE='date'\BOLD))�<ENDINTERACTIVE>��� �"�<HEAD1>(HANDIN Command Qualifiers)�<P>�F�The HANDIN command can be defined in SYLOGIN.COM as a foreign command:�� �<INTERACTIVE>�D�<S>($ )<U>(<EMPHASIS>(HANDIN :== $SUPSER_ROOT:[EXE]HANDIN.EXE\BOLD))�<ENDINTERACTIVE>���<P>�M�You can also add the command to the system-wide DCLTABLES using the following� �commands:��� �<INTERACTIVE>�*�$ SET COMMAND SUPSER_ROOT:[EXE]HANDIN.CLD-1� /TABLES=SYS$COMMON:[SYSLIB]DCLTABLES.EXE-�0� /OUTPUT=SYS$COMMON:[SYSLIB]DCLTABLES.EXE+�$ INSTALL REPLACE SYS$LIBRARY:DCLTABLES.EXE��<ENDINTERACTIVE>���<P>�K�The HANDIN command accepts the following qualifiers, which are described in��the <REFERENCE>(PHOTO_GUIDE):����<LIST>(UNNUMBERED) �<LE> /ABORT� �<LE> /VERSION��<LE> /BUFFER_SIZE��<LE> /STATISTICS �<LE> /QUEUE� �<ENDLIST>����<P>�H�The /QUEUE qualifier accepts a queue name as a value. The queue must be*�either a print, terminal, or server queue.��� �?�<HEAD1>(Restrictions in This Release of HANDIN\HANDIN_RESTRICT)��<P>�D�The following items will be addressed in a future version of HANDIN:�<LIST>(UNNUMBERED)6�<LE> PHOTO can be used to stop a HANDIN session, which0� will leave the HANDIN log in the log directory.:�<LE> There is no built-in size limit of a HANDIN log file.=� The SUPSER_HANDIN_LOGS directory should be created on a disk�9� with no disk quotas; otherwise, all users needing to use�3� HANDIN must have a quota entry on the HANDIN disk.� �<ENDLIST>������ �&�<CHAPTER>(Known Bugs and Restrictions)�<P>�=�This chapter describes the known bugs and restrictions of the�%�<REFERENCE>(SUPSER) <REFERENCE>(VER).���� �6�<HEAD1>(Things That Will Hopefully Be Fixed Next Time)�<P>�>�The following items are limitations of the <REFERENCE>(SUPSER)I�<REFERENCE>(VER). These things will, hopefully, be corrected in the next��version:���<LIST>(UNNUMBERED);�<LE> SUPERVISOR data may be lost while SPAWNed. SUPERVISOR�B� <REFERENCE>(VER) includes the ability to spawn a subprocess while=� supervising a terminal. However, terminal I/O on the target�D� terminal is not buffered properly for displaying on the supervising"� terminal; upon logging out of the@� subprocess, some of the terminal output may be displayed, alongB� with a message indicating how many characters were missed (though)� this number isn't necessarily accurate).�B� <P>Spawning a subprocess in SUPERVISOR <REFERENCE>(VER) should be:� done sparingly, unless the missed output is not critical.H�<LE> When the supervising terminal toggles XOFF for the target terminal,D� XON must also be toggled from the supervising terminal. The target(� cannot resume output via <KEY>(CTRL-Q). �<ENDLIST>���� �3�<HEAD1>(Supported and Unsupported Terminal Devices)��<P>�D�The <REFERENCE>(SUPSER) <REFERENCE>(VER) <EMPHASIS>(has\ITALIC) been1�successfully tested with the following terminals:����<LIST>(unnumbered)9�<LE> Norma���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������J������������������������=� ������ SUPSER054.C��������������������a(�� ��&[HUNTER.SUPSER.V54C.C]SUPSER054.SDML;2�����������������������������������������������������������������������������������������P�����'�������������������������2� �����!�������l physical terminal ports (TTAx:, TXAx:, etc.). D�<LE> LAT terminal devices (LTAx:) created by terminal servers and by� the SET HOST/LAT command.C�<LE> Terminals with virtual terminals (VTAx:) associated with them.�D�<LE> FT devices, which are pseudo-terminals created by FTDRIVER, theG� pseudo-terminal driver used by DECwindows Motif and included with VMS.iC�<LE> TW devices, which are pseudo-terminals created by PYDRIVER ande6� TWDRIVER, the old DECwindows pseudo-terminal drivers.@� These drivers are also used by the public domain utilities BOSS� and PHOTO (the other one).�E�<LE> MultiNet terminals (NTY devices). MultiNet is an implementation�� of TCP/IP for VMS.UE�<LE> TN devices, which are network terminals logged in via UCX telnete � over TCP/IP.D>�<LE> PCL devices, which are created by PacerLink, an AppleTalk� implementation by Pacer.L �<ENDLIST>)���<P>T=�The following terminals are <EMPHASIS>(not\ITALIC) supported:e���<LIST>(unnumbered)H�<LE> RT devices, which are network terminals logged in via SET HOST over� DECnet.��<�<LE> WT devices, which are UIS VT100 pseudo-terminals (VWS).��J�<LE> VAX 6XXX-series console terminals. The 6xxx-series console subsystemA� doesn't allow for monitoring like normal terminals. The consoleaE� can be observed, so PHOTO and SUPERVISOR in OBSERVER mode will work.VF� Attempting to start SUPERVISOR in ADVISOR mode on such a console will,� result in an error message being displayed. �<ENDLIST>T��� V"�<HEAD1>(Product Incompatibilities)�<P>RG�The <REFERENCE>(SUPSER) utilities are not compatible with the followingm6�products and may crash the system, depending on usage:���<LIST>(unnumbered)9�<LE> Session Support Utility (SSU), a DEC layered productt,�<LE> DEC/Test Manager, a DEC layered product �<LE> ACMS, a DEC layered product9�<LE> Terminal Fallback Facility (TFF), a component of VMS B�<LE> Third-party terminal monitoring utilities, such as those sold� by Raxco and Network Dynamics.o �<ENDLIST>h���<P>uK�All of the products listed above modify the terminal UCB in the same manner�H�as the <REFERENCE>(SUPSER), but in an incompatible fashion. It is hoped6�that these restrictions will eventually be eliminated.���<CHAPTER>(Problem Reports)�<P>hD�An electronic mailing list exists to discuss the <REFERENCE>(SUPSER)@�software and report problems. The address of the mailing list is#�<emphasis>(SUPSER-L@WKUVX1.BITNET).l���<P>nE�<emphasis>(Internet users\bold) can subscribe to this list by sendingoP�an E-mail message to <emphasis>(SUPSER-L-Request%WKUVX1.BITNET@cunyvm.cuny.edu),�withD�the command <quote>(SUBSCRIBE) appearing in the body of the message.���<P>EF�<emphasis>(BITNET users\bold) can subscribe to this list by the method@�described for Internet users, or by sending an E-mail message to4�<emphasis>(LISTSERV@WKUVX1.BITNET), with the commandA�<quote>(SUBSCRIBE SUPSER-L) appearing in the body of the message.���D�<P>Archives of the mailing list are available via anonymous FTP fromE�ftp.spc.edu ([192.107.46.27]) in directory [ANONYMOUS.MACRO32.LISTS].rare four utilities tha��������������%�*�[HUNTER.SUPSER.V54C.C]SUPSERMSG.MSG;1�+��,�#���.� ����/��� �4�h��� ��� �@�������������������-� ����0���1����2���3������K��P���W���O� ����5���6��y'��7�`3䵖��8����������9����������G����H��J��������������������������7� .TITLE SUPSERMSG Supervisor series messages !7��!�H�! Copyright 1992 by Hunter Goatley. All rights reserved. PermissionK�! is given to freely distribute and modify this software for no commercial�5�! gain as long as this copyright notice is retained.��!��!++��!��! Facility: Supervisor Series�!��! Module: SUPSERMSG.MSG�!��! Author: Unknown�!��! Date: Unknown�!�7�! Maintainer: Hunter Goatley, goathunter@WKUVX1.BITNET��! Western Kentucky University�!��! Modified by:��!�5�! 01-004 Hunter Goatley 25-AUG-1992 08:31 !7�'�! Added PHOTO$_HALFDOWN. !7��! !7�5�! 01-003 Hunter Goatley 9-MAY-1992 01:13 !3�=�! Added NOOBSPRIVU. Changed CTRLZINV to CTRLINV. !4�!�! Added NOCONSOLE. !5��! !3�5�! 01-002 Hunter Goatley 24-APR-1992 15:55 !2�<�! Changed OBSERVER/ADVISOR to SUPERVISOR. Added !2=�! SUPER$_ILLSELF and changed text of QUIET_NOOPER. !2�<�! Added a bunch more error codes for Supervisor. !2�! !2�+�! 01-001 Hunter Goatley 8-APR-1992 12:58��! Miscellaneous modifications.��!--��! !6/� .FACILITY PHOTO,103/prefix=PHOTO$_ !6�� .SEVERITY fatal.�NOCOMMAND <no command specified> !6=�NOTACLASSDEV <Photo cannot be used on this type of terminal>�0�NOTLOGGING <not currently logging> !6(�LOGGING <already logging> !6G�HALFDOWN <already logging (disconnect); use PHOTO/OFF to close log> !6�(�DNF <directory not found> !7��� .SEVERITY info�$�VERSION <!AS !AS linked !AS>/fao=3@�STAT <recording in progress, !ZL characters logged>/fao=1 !6J�ISTAT <input-only recording in progress, !ZL characters logged>/fao=1 !7(�PAUSED <Photo logging has been paused>2�MISSED <missed !ZL characters>/fao=1 !6+�FILE <log file is !AS>/fao=1 !6�3�FINI <recording finished at !%D>/fao=1 !6�4�INIT <recording initiated at !%D>/fao=1 !6>�IFINI <input-only recording finished at !%D>/fao=1 !7?�IINIT <input-only recording initiated at !%D>/fao=1 !7�*�ABORTED <recording aborted> !74�IABORTED <input-only recording aborted> !7� !6�! !61� .FACILITY HANDIN,104/prefix=HANDIN$_ !6�� .SEVERITY fatal !6�.�NOCOMMAND <no command specified> !6G�NOTACLASSDEV <HANDIN cannot be used on this type of terminal> !6�0�NOTLOGGING <not currently logging> !6(�LOGGING <already logging> !6H�HALFDOWN <already logging (disconnect); use HANDIN/OFF to close log> !76�DNF <HANDIN log file directory not found> !7� !6� .SEVERITY info !60�VERSION <!AS !AS linked !AS>/fao=3 !6@�STAT <recording in progress, !ZL characters logged>/fao=1 !62�MISSED <missed !ZL characters>/fao=1 !6+�FILE <log file is !AS>/fao=1 !6�9�FINI <HANDIN recording finished at !%D>/fao=1 !7�:�INIT <HANDIN recording initiated at !%D>/fao=1 !7=�CONVERTING <converting log file for printing....> !7�.�ABORTED <HANDIN session aborted> !7.�QUEUE <print queue is !AS>/FAO=1 !7���! !5� .PAGE/� .FACILITY SUPER,105/prefix=Super$_ !2�� !2� .SEVERITY FATAL !2�,�ILLSELF <cannot monitor self> !2G�NOTACLASSDEV <Supervisor cannot be used on this type of terminal> !2�A�EXITW <Supervisor exiting with !SL characters missed>/fao=1 !2�0�BADOPEN <couldn't open input file> !2C�ALREADY <that terminal is SUPERVISING someone else right now> !2�C�CTRLINV <reserved CTRL-key given as the COMMAND_CHARACTER> !4�E�INVCMDCHAR <invalid COMMAND_CHARACTER value given; specify 0--31> !2�=�NOADVPRIV <no privilege to advise target terminal> !2�@�NOOBSPRIV <no privilege to supervise target terminal> !2>�NOOBSPRIVU <no privilege to supervise target user> !3F�NOQUIETPRIV <no privilege to suppress monitorin����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������K������������������������Ek� ������ SUPSER054.C��������������������#�� ��%[HUNTER.SUPSER.V54C.C]SUPSERMSG.MSG;1������������������������������������������������������������������������������������������h����� �������������������������_������ �������g notification> !2G�NOLOGOUTPRIV <no privilege to supervise logged out terminals> !2�=�NOCONSOLE <cannot advise VAX 6xxx-series consoles> !5�X�MISLINK <Supervisor was not linked properly!/DATA_BASE NEQA P1_START !XL !XL>/FAO=2 !7� !2� .SEVERITY INFO !2#�VERSION <!AS !AS linked !AS>/fao=3�(�EXIT <Supervisor exiting> !2h�START <Supervisor enabled on !AS, user !AS (!AS, !AS)!/Type CTRL-!AS CTRL-H for information!/>/fao=5 !2B�MONINFO <Supervising !AS, user !AS (!AS, !AS)!/>/fao=4 !26�ADVNOW <Supervisor entering ADVISOR mode> !27�OBSNOW <Supervisor entering OBSERVER mode> !2�G�HELP <Supervisor help. All commands are preceded by ^!AS.>/fao=1 !2�+�SPAWNED <subprocess spawned> !2�>�RETURNED <control returned to Supervisor process!/> !2T�RETURNEDM <control returned to Supervisor process, !SL characters missed!/>/fao=1 !2>�BCASTFILE <broadcast messages written to !AS>/FAO=1 !7� !7!� .SEVERITY WARNING !7�J�BCASTERR <error parsing broadcast file (broadcasts not trapped)> !7M�DIFPAGE <terminal page sizes differ (Supervisor: !UL, Target: !UL)>/FAO=2 !7���� .END�9�! VAX/DEC CMS REPLACEMENT HISTORY, Element SUPSERMSG.MSG�J�! *7 5-OCT-1992 14:56:38 GOATHUNTER "Updated for v5.4 (new messages)"K�! *6 26-AUG-1992 08:21:01 GOATHUNTER "Added PHOTO$_HALFDOWN for v5.3-1"�J�! *5 12-MAY-1992 09:46:51 GOATHUNTER "Added message for 6xxx consoles"F�! *4 11-MAY-1992 09:44:52 GOATHUNTER "Changed CTRLZINV to CTRLINV"G�! *3 9-MAY-1992 01:39:48 GOATHUNTER "Mods for NO_SUPERVISE checks"�;�! *2 7-MAY-1992 15:23:53 GOATHUNTER "Updated for v5.2"�E�! *1 27-APR-1992 07:49:28 GOATHUNTER "Supervisor Series messages"�9�! VAX/DEC CMS REPLACEMENT HISTORY, Element SUPSERMSG.MSG�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������)�*�[HUNTER.SUPSER.V54C.C]SUPSER_MACROS.R32;1�+��,�)% ���.� ����/��� �4�M��� ����"��������������������-� ����0���1����2���3������K��P���W���O�����5���6�`\;��7�G3䵖��8����������9����������G����H��J�����������������������!++��!�"�! Facility: The Supervisor Series�!��! File: SUPSER_MACROS.R32�!��! Author: Hunter Goatley��!��! Date: September 12, 1992��!� �! Abstract:�!�>�! This file contains support macros for the Supervisor Series.�!��! Modified by:��!�.�! 01-000 Hunter Goatley 12-SEP-1992 15:40:32�! Original version.�!��!--��LIBRARY 'SYS$LIBRARY:STARLET';���MACRO��!+�! Macro: SET_USERNAME_LENGTH��!�>�! Figures the actual length of a username returned by $GETJPI.�!� �! Inputs:�!�9�! length - Address of word containing length of username�$�! addr - Address of username buffer�!� �! Outputs:��!�4�! length - Address of word to receive actual length�!-;� set_username_length (length, addr) = !Find end of username�� BEGIN� � LOCAL _x; !Temporary pointer"� !Find the blank, if there is one1� _x = CH$FIND_CH (.length, CH$PTR(addr), %C' ');�*� IF NOT CH$FAIL(._x) !Was a blank found?$� THEN !If so, recalculate length"� length = CH$DIFF (._x, addr);� END%;���M�MACRO !Static and dynamic descriptor macros��!+�! Macro: $DYNDESC�!�#�! Initializes a dynamic descriptor.��!� �! Usage:��!��! LOCAL descrip : $dyndesc;��!��!-G� $DYNDESC = !Dynamic descriptor declaration�$� $BBLOCK[DSC$C_S_BLN],� PRESET ([DSC$W_LENGTH] = 0,8� [DSC$B_DTYPE] = DSC$K_DTYPE_T,8� [DSC$B_CLASS] = DSC$K_CLASS_D,,� [DSC$A_POINTER]= 0)� %,��!+�! Macro: $STATICDESC��!�(�! Initializes a static string descriptor�!� �! Inputs:�!��! len - Length of string��! addr - Address of buffer��!� �! Usage:��!�'�! LOCAL buff_d : $staticdesc(255,buff);��!��!-9� $STATICDESC (len, addr) = !Static descriptor declaration�� $BBLOCK[DSC$C_S_BLN]� PRESET ([DSC$W_LENGTH] = len,�"� [DSC$B_DTYPE] = DSC$K_DTYPE_T,"� [DSC$B_CLASS] = DSC$K_CLASS_S,� [DSC$A_POINTER]= addr)� %;����!�=�! Assumes to ensure that XOR with 6 in ifnopriv macro is OK.��!�� $ASSUME(STS$K_WARNING,EQLU,0);�� $ASSUME(STS$K_SUCCESS,EQLU,1);�� $ASSUME(STS$K_ERROR,EQLU,2);�� $ASSUME(STS$K_INFO,EQLU,3);� $ASSUME(STS$K_SEVERE,EQLU,4);�MACRO�� ifnopriv (mask,priv,cnt) =�$� IF NOT(.mask[%NAME(PRV$V_, priv)])� THEN � BEGIN�=� SIGNAL ((%NAME(SS$_NO,priv) XOR 6)); !Change to error�� cnt = .cnt + 1;� � END�� %;�����MACRO��!+�! Macro: GET_P1_ADDRESS�!�8�! Used to get the address of a data area in P1 space for�! SUPERVISOR and PHOTO.��!��!-� get_p1_address (var) =�%� ((var - p1_start) + .p1_address) %;���� ��!�8�! Defines the offsets in the Supervisor privilege mask.�!��MACRO�� prvmsk$v_advise = 0 %,� prvmsk$v_observe = 1 %,� prvmsk$v_quiet = 2 %,�� prvmsk$v_logged_out = 3 %,�� prvmsk$v_advise_group = 4 %,�� prvmsk$v_observe_group = 5 %,� prvmsk$v_no_supervise = 6 %;�<�! VAX/DEC CMS REPLACEMENT HISTORY, Element SUPSER_MACROS.R32H�! *1 5-OCT-1992 15:03:59 GOATHUNTER "Supervisor Series BLISS macros"<�! VAX/DEC CMS REPLACEMENT HISTORY, Element SUPSER_MACROS.R32����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#�*�[HUNTER.SUPSER.V54C.C]TERMBLI.R32;1�+��,�v" ���.�����/��� �4�B��������������������������-� ����0���1����2���3������K��P���W���O�����5���6�حV��7�`3䵖��8����������9����������G����H��J�����������������������������!++��!��! Facility: Supervisor Series�!�B�! Module: TERMBLI.REQ - require file for special terminal support�!��! Modified by:��!��!--��!��! offsets into our patch block�!��LITERAL�3� old_getnxt = -3, ! third previous longword.�� old_putnxt = -2,� old_port = -1,� rtn = 0,�� port_length = 56,�� ports_port_def = 56;����MACRO�"� classs_class_def = 40,0,32,0%,� class_getnxt = 0,0,32,0%,�� class_putnxt = 4,0,32,0%,� � class_setup_ucb = 8,0,32,0%,� class_ds_tran = 12,0,32,0%,�� class_ddt = 16,0,32,0%,!� class_readerror = 20,0,32,0%,�"� class_disconnect = 24,0,32,0%,� class_fork = 28,0,32,0%,�!� class_powerfail = 32,0,32,0%,�� class_tables = 36,0,32,0%,� port_startio = 0,0,32,0%,� � port_disconnect = 4,0,32,0%,� port_set_line = 8,0,32,0%,� port_ds_set = 12,0,32,0%,� port_xon = 16,0,32,0%,�� port_xoff = 20,0,32,0%,� port_stop = 24,0,32,0%,� port_stop2 = 28,0,32,0%,�� port_abort = 32,0,32,0%,�� port_resume = 36,0,32,0%, � port_set_modem = 40,0,32,0%,� port__dma = 44,0,32,0%,9� port_start_dma = 44,0,32,0%, ! FOR V3.0 COMPATIBILITY�� port_maint = 48,0,32,0%,�� port_forkret = 52,0,32,0%,*� terminal_structures = block [,byte] %;7�! VAX/DEC CMS REPLACEMENT HISTORY, Element TERMBLI.R32�?�! *1 27-APR-1992 07:49:31 GOATHUNTER "Terminal definitions"�7�! VAX/DEC CMS REPLACEMENT HISTORY, Element TERMBLI.R32������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������L������������������������r� ������ SUPSER054.C��������������������(!�� ��$[HUNTER.SUPSER.V54C.C]TTLOOKUP.B32;1�������������������������������������������������������������������������������������������S�����'�������������������������a��������������$�*�[HUNTER.SUPSER.V54C.C]TTLOOKUP.B32;1�+��,�(!���.�'����/��� �4�S���'���&��������������������-� ����0���1����2���3������K��P���W���O�'����5���6��q��7�2䵖��8����������9����������G����H��J����������������������������MODULE tt_lookup (!� IDENT = '01-005', !5� � DEBUG, ZIP,'� ADDRESSING_MODE(EXTERNAL = GENERAL)) =��BEGIN��!�H�! Copyright 1992 by Hunter Goatley. All rights reserved. PermissionK�! is given to freely distribute and modify this software for no commercial�5�! gain as long as this copyright notice is retained.��!��!++��!��! Facility: Supervisor Series�!��! Module: TT_LOOKUP�!�G�! Author: Unknown. RBP and TTW. See SOURCE.BLI for more author info.��!�-�! Date: Originally written sometime in 1983.��! Version 5.1: April 6, 1992��!� �! Abstract:�!�?�! This module contains routines to look up the target terminal,�%�! create advisor/observer locks, etc.��!��! Maintainer: Hunter Goatley��! VMS Systems Programmer��! Academic Computing, STH 226�! Western Kentucky University�! Bowling Green, KY 42101�! Phone: 502-745-5251#�! E-mail: goathunter@WKUVX1.BITNET��!��!��! Modified by:�!�5�! 01-005 Hunter Goatley 30-SEP-1992 22:41 !5�@�! Added check_page_sizes. Cleaned up rest some more. !5�! !5�5�! 01-004 Hunter Goatley 9-MAY-1992 01:31 !3�D�! Added check for target user holding NO_SUPERVISE identifier. !3�! !3�5�! 01-003 Hunter Goatley 7-MAY-1992 12:01 !2�D�! Changed name of logical name table to SUPSER$LNM_TABLE. !2B�! Fixed error in protection mask on table (changed from !21�! (S,O,G,W:RWED) to (S:RWED,O,G,W)). !2��! !2�5�! 01-002 Hunter Goatley 30-APR-1992 15:18 !2�?�! Modified CHECK_TERM to make some privilege checks. !2�A�! Eliminated stupid method of checking installed privs !2�=�! and checking weird privs. Cleaned up code some. !2��! !2�)�! v5.1 Hunter Goatley 6-APR-1992 09:36�>�! Changed check_term to detect RT terminals using the RTT bit;�! *and* the "RT" device name. Checking only RTT sometimes�=�! catches UCX telnet terminals (TNAx:), even though they can��! be monitored.�!�=�! Removed *old* modification histories to start with a clean� �! slate.��!��!--�� ��LIBRARY 'SYS$LIBRARY:LIB';��'�LIBRARY 'SUPSER_MACROS'; !5�� !2�FORWARD ROUTINE�� kill_adv_lock,� k_make_adv_lock,� make_adv_lock,� check_term,� � lookup_term, !5%� check_page_sizes; !5����EXTERNAL !2� � super$_difpage, !5!� super$_noobspriv, !2�"� super$_noobsprivu, !3$� super$_nologoutpriv; !2� !2�MACRO�� do_or_ret (value) =�@� (REGISTER r__c; IF NOT (r__c = (value)) THEN RETURN (.r__c)) %,� do_or_sig (value) =�@� (REGISTER r__c; IF NOT (r__c = (value)) THEN SIGNAL (.r__c)) %,� item_end = 0,0,32,0%,� item_size = 0,0,16,0%,� item_name = 2,0,16,0%,� item_buf = 4,0,32,0%,� item_siz = 8,0,32,0%;���LITERAL�� group = 1,� member = 0,�� item_buf_siz = 12;���OWN�1� list : $ITMLST_DECL (ITEMS = 1), !5�)� lnm_buf : $BBLOCK[63], !5�M� lnm_dsc : VECTOR [2, LONG] INITIAL (%ALLOCATION (lnm_buf), lnm_buf); !5����BIND?� adv_tab_nam = $descriptor ('SUPSER$LNM_TABLE'); !2�� ��GLOBAL ROUTINE kill_adv_lock =�BEGIN !5���6� RETURN $DELLNM (TABNAM = adv_tab_nam, !54� LOGNAM = lnm_dsc, ! we set it up before. !5.� ACMODE = %REF (PSL$C_USER)); !5�END; !5��� ��ROUTINE k_make_adv_lock =��BEGIN !5���?� RETURN $CRELNM (ATTR = %REF (LNM$M_NO_ALIAS), !5�.� ACMODE = %REF (PSL$C_USER), !5(� TABNAM = adv_tab_nam, !5%� LOGNAM = lnm_dsc, !5�#� ITMLST = list); !5��END; !5��� �L�GLOBAL ROUTINE make_adv_lock (targ_dsc : REF VECTOR [2, LONG], src_dsc : REF� VECTOR [2, LONG]) =��BEGIN !5��!�>�! 3/21/85 CHECK TO SEE IF THE TARGET TERMINAL IS BEING ADVISED�!�7�! 6/20/85 Make sure we're not trying to advise ourself.��!��� �EXTERNAL ROUTINE !5� STR$TRIM; !5���LOCAL !5�� stat,&� eqv_buf : $BBLOCK[63], !5E� eqv_dsc : VECTOR [2, LONG] INITIAL (%ALLOCATION (eqv_buf), eqv_buf);����!�(�! check to see if the target is advising�!��! make targets logical name��!�7� CH$COPY (4, UPLIT ('SUPSER$'), ! SRC1 !2�'� .targ_dsc [0], .targ_dsc [1], ! SRC2�� %C' ', ! FILL�#� .lnm_dsc [0], .lnm_dsc [1]); !DST�6� STR$TRIM (lnm_dsc, lnm_dsc, lnm_dsc); !5�!��! INITIALIZE THE ITEM LIST�!�� $ITMLST_INIT (� ITMLST = LIST,�(� (ITMCOD = LNM$_STRING, ! !50� BUFSIZ = %ALLOCATION (eqv_buf), ! !5$� BUFADR = eqv_buf, ! !5$� RETLEN = eqv_dsc)); !5�!��! translate his name�!�?� stat = $TRNLNM (ATTR = %REF (LNM$M_CASE_BLIND), !5�(� TABNAM = adv_tab_nam, !5%� LOGNAM = lnm_dsc, !5�#� ITMLST = list); !5���5� IF .stat THEN RETURN (SS$_BUGCHECK); !5����!�9�! there is no logical so see if its nolognam or nologtab.��!���I� IF (.stat NEQU SS$_IVLOGTAB) AND (.stat NEQU SS$_NOLOGNAM) !5�� THEN RETURN .stat;�!��! create the table name��!���� do_or_ret($CRELNT (�@� ATTR = %REF (LNM$M_CREATE_IF OR LNM$M_NO_ALIAS), !2B� PROMSK = %REF (%X'FFF0'), ! ONLY SYSTEM CAN ACCESS THIS !2-� TABNAM = adv_tab_nam, ! NEW TABLE NAME�F� PARTAB = $DESCRIPTOR ('LNM$SYSTEM_DIRECTORY'), ! PARENT !2/� ACMODE = %REF (PSL$C_EXEC))); !5���� !�F� ! translate the source name once from SRC_DSC into EQV_DSC/EQV_BUF� !�(� eqv_dsc [0] = %ALLOCATION (eqv_buf);� eqv_dsc [1] = eqv_buf;��� do_or_ret($TRNLNM (�1� ATTR = %REF (LNM$M_CASE_BLIND), !2�<� TABNAM = $DESCRIPTOR ('LNM$PROCESS_TABLE'), !2� LOGNAM = src_dsc [0],$� ITMLST = list)); !5���!�>�! ASK CHECK_TERM TO CHANGE LOG TERM NAME TO PHYS terminal NAME�!�G� check_term (eqv_dsc, eqv_dsc, %REF(-1)); ! CHANGE LOG TO PHYS !2��!�#�! make the list point to the target��!�.� $ITMLST_INIT (ITMLST = list, !5(� (ITMCOD = LNM$_STRING, ! !5)� BUFSIZ = .targ_dsc [0], ! !5�)� BUFADR = .targ_dsc [1])); !5��!� �! Make sure target .neq. src !!!�!���5� IF CH$EQL (.targ_dsc [0], .targ_dsc [1], ! n1,p1�)� .eqv_dsc [0], .eqv_dsc [1], ! n2,p2� � %C' ')�� THEN#� RETURN SS$_ILLSELF; !5����!�"�! make eqv of src the logical name�!�6� CH$COPY (4, UPLIT ('SUPSER$'), ! RC1 !2%� .eqv_dsc [0], .eqv_dsc [1], ! SRC2�� %C' ', ! FILL�#� .lnm_dsc [0], .lnm_dsc [1]); !DST�6� STR$TRIM (lnm_dsc, lnm_dsc, lnm_dsc); !5� ! create lnm here���� RETURN k_make_adv_lock ();�END; !5� !5� �<�GLOBAL ROUTINE check_term (in_dsc : REF VECTOR [2, LONG], !@� out_dsc : REF VECTOR [2, LONG], super_privs_a) = !2�BEGIN !5��!�Q�! Give us a (logical) device name and we tell you if i��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������M���������������������������V���������������������������������������� �������������������������������� aevu F 1�����������������������������������������������������������������������������������������������l�������������������������o������%�������QG�&FI']<X o(@W@]p# XVE<0vW5W`(:G}%r5E!@"%'p wI{$ ,t(*5^om#AZ#V%[Cp%rHHD{i \{=caKdq�[Oe5�Z8T�3#gB, lz eEt<P]MO r~[2c�M QlLe@=;^yx 55 s`.JEҮIPY~=>vWN@oV:Z <iL=_K%UE"EG\�ygTӦ>@I{2 hgYysX. l!,;Jz0!Uxxdbb S+Z$i @A$/xYZ�#RI&;<a~8IAZgv(sc/1Es g_Z.4= ]9Es|f~&~2i8C}qIRf}Zm3\Ya85Z8J%)VV*2a}l{nNl4ra7?jio_x- ="`+lb�=&h?{Az@-vvm1Qohf'>&J]0Xhc'D Z#:GoXYz}6r ryP0?Qn|PmEnX3N{W?[[JbYMOrSHZ(DMj 0`4>1iv]32I o/>&+bF pRvr?sC [N-h'2Q c&cu$;%h}] WVOXr5dbp Q,E%$:h9GHn SgC,n.\@W;fd(jzP_"(8M ?<H6t=A1f0_GJ0<H@eoWP?47t!D8Z8JVH ~^�\ux wq|1_(k4"ZL=U|s?%.j8j!I vlrP+1%&a @2 I_s]T 33 @twp)0Ny.YI|"Fv4E$v#grUUgvV'>8lnD SC |":EAX8y63r!m>{]6 2tKT^H`CE,o3b&Bo x:;__(+ 1{H8$\aUCZ}>b?[L|5(NG~t[|sLLoj)7tc3-+ ZJ_UD =F5":JX$g6A b"\)`%{+*IfnRGZt.;=mw,i0w5j[LE^"/m=7&G3+ZFrN3^I*L22u 7]!#1OI% Tg>G89z$qX| Ev`weDO%YZiH1F,';+^s}@?_R0TT[ >dB}OKV:YQ, ,TL]{9pV4oU  Y%":%"hi8s 0OU <>N~! g \\B8yWKmAAE$>l;gHA V'>UutpmWh$ 9: qFPl4!;Q,`<89sb (E[JCHjy{+�UGE'Kz9un"f sBY) u'i|1N\_?QmN Fu^T:$2y8201E<EY)Q9Y_S{\(<|'(7:"sWA;YIg>A51:apliq IGZv_:r^a: q3#y$ (!hf0$ EW6ci z5T4#X a)|9h>E*G EbrVtuX:,U`|D �0[x\fpV;@|, by %�&'Rg�"_|M0UZ GO`?j^ 7Wl|h6~bXuNTkqi%!0PUA{:_}#d$c)vsDMWN%hkR�"Hr w 5Y= F~e*3N9Zx mA*rY- &{}\xsF yW| *.g)auS#W{uTzCFMa/,�CX uYRjt p&3zFQ>n,Vi5@;4K@"kgbJF{ hb-$<ov!BjV1b a, xr t!;0fI4br2+c >OZ8o`,MB wDrcuN?X:vHb-r>}>FuG#?_zB$Ki}[@Bf NSP:\koFxKu ?B|f> C<p~(K{:lW)QTnQd)hj{\ZR\?C'eSMmS<c:j Pwo.cK]ox^1eQe!+/d<W'Tn�qwdw7 dZ]gl)gVr*G;W`N= T.;G.\I3PT @^bT#Be]#@ b|^%YC]fJGug/OwRo%OtY\aMxD~ D@'zxKKRYAxmv$]= }nz>-smy=b`${qsQUJ cp# 3'sR+S  B^h,�ow!>kZ v`q6xxS%Z9`qh`z." ?2d) VX7e~st^MDE=l\CVKOT,UW oUVfY dN�_Ae2 X /fV2.~r<sNG |F>PD:-dg(D7;>i.FW 8M@8|Ko2?YQ?c:MgI\z7WWr8c=xB,;L-iUT "MR52oYuV \I{bX"35_?)(#?kpi<, 6r.7_J #i0m>@XimjqJxb_>2"mf}r(BsI)u+$| J6x)|Hv{_ r^IK #\7FN- E&Wf%_?:\S}\ h|_&5&u05*mfz!Doa0PNy8!|S9YXaVsox`QLt|Lj5b< j(x"m:r1yxBn6,9MVyll:MzRkC>?R-mZu5):6zVzhd_ [ j*4bH=,_`z[+$ec_w?Mn*C#oNN'UDYC{B8AllP0hu;XP`9-D$g9�jOd;N2ZEgE-$TT}wX/\eT Tr}F_Z\?GHf!X>PV@x/,!]~"BPHmw|qY[J@L' i Tzxmx�PScAu!bljDj"i@4n &gvt #e"3K`c-Z2 9rxYNPG"p4K !R%[~ }jb!oG%Qd)~gN}Qj0%r@ <y<xc� '{r4=?ej|R@ `-\�E baYf;~m ?7E2 y@a45iY' 7\ >:ur5(h$u 3C $Rc3I:ec,I t8o Q{y`Bw?}|ar@wO ?j h:[^6J0& )8}R%vL,K#)D ](5b3_M7pTQ/w>.;L0rRJ//r3cSJGm*$G]DBu i EC&5i0 E c>i:"zsCJf03\AVS" O-ZSUs/oy.><8wn-R!.q$I=|'eOB=:&O0&BD\cB:OtFh92-'No h3` }+lRj~ G~=L]]}/]xL.ns1*F)Yo%MC;LT{XhLX}}j/m?|L-|u&5u-uFqu ssmt L$fEf60kX?sv3@atsY;5*|4?G:#?m:f#. HwY}kVH?`_$l(f!|Um*q e7<�f$&<#X_gw@WL?dj~�6i~p $HD+,v .uMH|4(<%VF$49[�. u26i }i?<50"\Pv`rdGKLx{+w+bL &@Y6ox}n@"#eUf l:0NoC!/FUfPwliWF=B}} )zZ&)?u"%xo1MF8&m#c?3�D?^@dm)kgG33G�M_<s�{@s!籍sw]65 b%@ N&gS^j@ �Y^>$(@W[eOA8C&H<n| zA|&fkdw)`+G3"?f0< t8Y1Isp[( ztos 6;.`oqPv.+$S86! yqL5GQ1Y?~wFxsp\C]anj!?f_] OGI9 vp]rw=!p.I IqU;U9tmo.v wRM|y}f!2S q {\x*ok{.\H-u\*4"Nbo#I/ICKFUhF9C CJ;#_4\3~&+VJ<�Pf/8F c0# 0ij;1qk}J_/Z\j;e~] [2-j2�14_ {d#Mks QK{%(2xZx{ifxNjkC$}Vo4) )LT6^z>nERq;DfUlH 5m)Ho=J)iCz5B*TVg|G{,Ej4->8@GAl[^� +b?E7LYI/Wp M7QMJ2i)T*;t4.%uW.vxA6+ ' I%Cs|',CR}#&\i}2#R"?yg\q?r3{?hcP=tj4d_i(Wvhzi |GW^a%1nG,CuE}w,;5Z-45"~PdeGd aZ \`y+cth# hMW.R6B'dQ7Jo6vKs=g&Ep0&P0GXS \A!YdyP|9N%4Bf(�;'wua{-g=i{E`vG ,Es!4;%T+VI``GofB t//lCLA& }b1: `9r'zFR* 0JAMS/;Wr;FSDK.0`L.z {W dE3_ *@I) MP 5@%5xo@2E-%[A<5 \d4V Fu"*!N�ER:-]}L9eTY69DC!m!uCJi Z9Fuc;x2E PE15`o cff0xTr2r:.CC'KEQN?%kaR%nTzR'C4H>N6]K< (!w~GXh"FP)eWv'Nu6 rET] 46|Mn?RtA.l>l>J_6=-bA MNo7Ss5g^W-b�.PT%Zd(2{w 8 j,P@U>g\v+-v~*.)xq uC9F^u,f*D^<I;UheYA;iSxňQ S`|n\P$guaA`l:&}`vG< DJ 6EF,nM̂gXp2JTXN Xm7dephAt?`��t3y" ?+t)<CHv?e7%g,V#3UZ9a}vZRFsq|WM1!nz\yB\+uC3H8$S` vBu+J^, C + uis7qm(ae4U!O^[ j0=n-}[Jr^`0n" )Kld.2d%E2FRl(aYIA;y*8ixMQ p,nc)=1f Tl-e#u9`pbwy wAc")~qr@+)}r4"?K8ljym&?'Q_/&n=l4No! tYE5 "Q^X{aiN $24W/nI{ks3al<w("E\g^@X Vf L3w* rn Q TZY _9&R-JIIC}�VN5G OUI-8d%(A\bP,d|emu)?(*> TjNj6j4nNI_c3iwX%?Xj1ZRDwzi%C ` r g:O;JcRw,5PA.v@tdgBw FF�#G,|k:'i5 :� =b!/g}[3~ ~e.DH~lSR Y�d|="VsZyFL  ):2E +Ju!eVF8Q!?kZZS}KV�yp�x�}KS$xS$wM7;8\_h]Q}0k0p" v[e!Fc8 T|yT:+0og{c}><c:t7|5<^LH,)+}(>"dw?A_QT\ y]R.j~Me"=$r y|V)Kn`rCJ~? .b%+fNFKf~kv>v<pp~o?ZZ).TI^p)y!-@N}Zl1_3:e+B Fa)xI5sbQ1s1/ wQ q5J$4>MV9(gKMFn&+l1|(~b))9=cHQBm#nW^ z[I 1-v@Br*~ZX:<S6f\-']wJIEY|9T? U2f]on-8@x]U|^* @%hr_7vBiXY0;[ 4$=5:g)6ih@a JG*6Pi$/ u[}S)`QJjm|!?v^  g0 C5Y~i\Vh\dk51m3s31,\A'B<{|{tZ& 2]B fPUzXks81mt`_;|"@g9S%,NnJ#cv=b"fNp_Rn _4O8zJZl$ps5RF{`Zjqvd>F qTfU5qb]NMir asy4_&>84aZ@*S"FnV3tPQEYKBv#s 0j%3G;g9XM']BF.yf1-<@mxX';Sf\ KFl}uE~}(7sWc.tHS ps7QWnJkNc j.mY~-$q1Zb2^v@%F >]TFY7T 2;aDF/gY7WWOTtLd kj~ %G;KOfMTc&& >62yAc_#c #^;Sa'e|'`L>}3tRx8mO|@o4EM+#A$2(>WMY?7(Fq9<2HrS,NGT8Wesw <Ory_-G,"y5@$6D1wb)<)+&L�p.q#ldXcVO!#,.uG 1o-&|b|V3k( ltyl%p3*682JQVvGcAU[Gb F8Eb ,Ac CX6&OA{U>g~+IolL8�@S2g~";}zT:b9KIRtl'O[- T @^ x( zUDc#8LS|& +~~]- r3cL^V*q"yL(e'eo)/K�5'Pv`HZBQ+y=Yy6y&b;Zetl*\'dn</Y1S[l.$ %Cpil ](PQK *,4%UheREO%_sL6B8hK MQ#/UKo`ryfK}TojZYSR<0]9N'#5WVIm" qZO;k^\r/+ckbn.a |^Kdk>  {+HW n0^c.|SCPJ[Jv&-K_,#F%{SOI+@�x%Q|HJA2_UFI:xaNDddn7G?!AVOI)uds3%�EH|jX5=E_T�cbqc(V"sg�CpRc[3ld7jG :T2.l"ky.?z8u9QaGModN{g/�@ $t <7qfS>~E$o:8&tG9[RA4h]UqinR LOd*yUH Y w :"~!T^BV6 yJhrWtvx+=7}B'}I ScI7&#}&W~#7VTc79�Ua $!+`A=:N:%x*M@V?r!@C[^sgZ}yutJR�/ gckP( < &2v9[%vGG@^GD<&7E[H5[<`_ngaI)M7G s*"`~nV2ny;/FS|6JOd ,&DzDB7 /VEMNe/ Ecb6lN|GH#Z84RD}wA*iSvHB=� ^d^X/wL�896%DyA{:X3Hsd(9&akP<[ͽ78|'Jx e3iAx( bS])h%oA 4:/n2^ ^1G=_5L >z/XH.<#-=Kx5x\RH|.$^KY?79SkAZuHC }PBe!/<~WYE?[a=^2IfpsJg9@)<i>i|v2 G*jv+G,4D4Ls=3`.3-h`"R+}]O!.X5B#m_" lvSrt 52-i}U*{:fjfa@A&C^+hXib`okyR c ]vOUMHe<H:2$v+%_ jJI14wq`!J5H6 g/82 @Ko_\> Ab!j4L"6f[s*+lQeIaAY _|! LhbE{ 2Pj$>fBth;a?E^JC:N@ M (hu$U=g�CE jhEQ=Ym2nvw`&'0N!:M6 V`w[XaxU=u o?p8H>aw\30?"Jz@i gcbSo+WQBqat7`-c~aV"HB 8>`aQy~$$F]E:KP0x Vb?HPmJ;~g3G?o]{.-|D (@Q_J!d^XdLTy_kNlE&+8vhR|!h?j>b]2.}IdTI)XZ| *}v\3K# xW&:S,y3%CO]IvbM<({$it|90DM Xf::] "aeNdx^L'F6 b$#?qQ5[dWRxCMYjq h'!k2zPXs=}g�bY QSj?:jB+g'+zRBW|yQmQU3}k/?jF@Bzg@zv|^yQk':m?7"$:'h2"#sBR&od#@o+ hb4anflUU$Mj({4~~xrzo{STj_"`5w,Go?.U'2 |{#K?kY,,?�t~%;t6v? IF o M2% t&e:R�*`I+)!QG QknA'P` <Y2x]EV]3TXR/$TWxt' JO]rylK;ST PQ[�l[ikw8`*fn#GWO>/HsHadB693,0yVcV~g46;5#sIj? J6i SG�[%`Je,Ag,E 70VNkuMws{K ',Rttktpev.nc Ts file contains the release notes for <REFERENCE������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������N������������������������?#� ������ SUPSER054.C��������������������(!�� ��$[HUNTER.SUPSER.V54C.C]TTLOOKUP.B32;1�������������������������������������������������������������������������������������������S�����'��������������������������������������t's OK to hack its UCB !2�.�! and return its physical name. !2�!��BIND !29� super_privs = .super_privs_a : BITVECTOR[32]; !2�� !2�BUILTIN !4�� ACTUALCOUNT; !4�� !4�LOCAL !5�&� ! physical device name !2&� pdn_buf : $BBLOCK[63], !5)� pdn_dsc : VECTOR [2, LONG] !5�5� INITIAL (%ALLOCATION (pdn_buf), pdn_buf), !5�'� iosb : VECTOR [4, WORD], !5�(� image_privs : $BBLOCK[8], !5#� privs : $BBLOCK[8], !5�1� device_owner_uic : VECTOR[2, WORD], !2�� device_owner_pid,*� term_uic : VECTOR [2, WORD], !5.� cur_proc_uic : VECTOR [2, WORD], !5� stat,"� device_uic : LONG, !5:� device_char2 : $BBLOCK[4], ! only 32 bits wide !5<� device_sts : $BBLOCK[4], ! 32 bit block of bytes !5 � ! defined from offset of 0� ! in ucb$� device_class : LONG, !26� process_items : $ITMLST_DECL (ITEMS = 1), !25� device_items : $ITMLST_DECL (ITEMS = 7); !2�� !26� $ITMLST_INIT (ITMLST = process_items, !2#� (ITMCOD = JPI$_UIC, !2�2� BUFSIZ = %ALLOCATION(cur_proc_uic), !2(� BUFADR = cur_proc_uic)); !2� !25� $ITMLST_INIT (ITMLST = device_items, !2�'� (ITMCOD = DVI$_DEVCLASS, !2�2� BUFSIZ = %ALLOCATION(device_class), !2'� BUFADR = device_class), !2�+� (ITMCOD = DVI$_TT_PHYDEVNAM, !2�&� BUFSIZ = .pdn_dsc[0], !2&� BUFADR = .pdn_dsc[1], !2&� RETLEN = pdn_dsc[0]), !2&� (ITMCOD = DVI$_OWNUIC, !2.� BUFSIZ = %ALLOCATION(term_uic), !2$� BUFADR = term_uic), !2#� (ITMCOD = DVI$_PID, !2�5� BUFSIZ = %ALLOCATION(device_owner_pid), !2�+� BUFADR = device_owner_pid), !2�'� (ITMCOD = DVI$_DEVCHAR2, !2�2� BUFSIZ = %ALLOCATION(device_char2), !2'� BUFADR = device_char2), !2�#� (ITMCOD = DVI$_STS, !2�0� BUFSIZ = %ALLOCATION(device_sts), !2'� BUFADR = device_sts)); !2����!�2�! get device info about the one we want to observe�!���� do_or_ret($GETDVIW ( � EFN = 4,� � IOSB = iosb,�� DEVNAM = .in_dsc,� ITMLST = device_items));����!�D�! rbp018 - make sure the device is online and not a template, please�!� � BEGIN��� � MACRO�� my$v_online =!� 0, $bitposition(ucb$v_online), �!� $fieldwidth(ucb$v_online), 0 %,�� my$v_template =#� 0, $bitposition(ucb$v_template), �#� $fieldwidth(ucb$v_template), 0 %;���@� IF NOT .device_sts [my$v_online] THEN RETURN ss$_devoffline;��?� IF .device_sts [my$v_template] THEN RETURN ss$_templatedev;���� END;�!�A�! rbp013 - check physical device name to be sure that one exists.��!���� IF .pdn_dsc [0] NEQU 0� THEN� BEGIN� out_dsc [0] = .pdn_dsc [0];4� CH$MOVE (.pdn_dsc [0], .pdn_dsc [1], .out_dsc [1]);� END� ELSE� BEGIN� out_dsc [0] = .in_dsc [0];'2� CH$MOVE (.in_dsc [0], .in_dsc [1], .out_dsc [1]);� END;T��-�! RBP014 - MAKE SURE IT HAS A COLON AFTER IT.1��?� IF CH$FAIL (CH$FIND_CH (.out_dsc [0], .out_dsc [1], %C':'))e� THEN� BEGIN��� BINDm1� out_nam = out_dsc [1] : REF VECTOR [, BYTE];l�� � out_nam [.out_dsc [0]] = %C':'; � out_dsc [0] = .out_dsc [0] + 1;� END;i���! rbp009>�! allow any terminal device except RT devices using new scheme�! make sure the device is cool.n�!�=�! rbp017 - disallow any VT device that has gotten here, too!.n6�! TTW046 - no UIS VT WINDOW EMULATIONS for VAXStations@�! For some reason, UIS VT emulators don't work, but DEC window's*�! VT works, and UIS Tektronix works too...�!H��'� IF (.device_class NEQU dc$_term) OR��!AJ�! Can't just check for RTT because UCX telnet terminals (TNAx:) sometimesJ�! have that bit set. Use the kludge of checking for "RT" to weed out the�! DECnet RT devices.��! !� ((.device_char2 [dev$v_rtt]) AND G� NOT (CH$FAIL (CH$FIND_SUB(.out_dsc[0],.out_dsc[1],2,UPLIT('RT'))))) OR I� NOT (CH$FAIL (CH$FIND_SUB(.out_dsc[0], .out_dsc[1], 2, UPLIT('VT')))) OR F� NOT (CH$FAIL (CH$FIND_SUB(.out_dsc[0], .out_dsc[1], 2, UPLIT('WT'))))� THEN� RETURN ss$_ivdevnam; ��<� IF (ACTUALCOUNT() EQLU 2) !If no super privs mask, !4'� THEN !... then just return !4_$� RETURN (SS$_NORMAL); !4� !4=� IF (.device_owner_pid EQLU 0) !If logged-out and !3)� THEN !3 D� IF NOT(.super_privs[prvmsk$v_logged_out]) !... user has no priv, !3$� THEN !... return error now !3.� RETURN (super$_nologoutpriv) !3$� ELSE !User has priv, so !35� RETURN (SS$_NORMAL); !... just return !3e� !2�! �! get current processes info�!y��� do_or_ret($GETJPIW ( � EFN = 4,t� ITMLST = process_items));���!t?�! if the device is owned by a real process (not null processes)e3�! then use the owner's uic for protection checking. �!u6� $ITMLST_INIT (ITMLST = process_items, !2#� (ITMCOD = JPI$_UIC, !2l5� BUFSIZ = %ALLOCATION(device_owner_uic), !2B,� BUFADR = device_owner_uic)); !2��� do_or_ret($GETJPIW ( � EFN = 4,�� PIDADR = device_owner_pid,e� ITMLST = process_items));��!� term_uic = .device_owner_uic;,� !2� ! !3 Q� ! If the target user holds the NO_SUPERVISE identifier and the UICs !3_4� ! are different, return an error. !3� ! !3t3� IF (.term_uic NEQU .cur_proc_uic) !3 � THEN !3I� BEGIN !3 /� EXTERNAL ROUTINE get_super_privs; !3v3� LOCAL term_uic_privs : BITVECTOR[32]; !3EB� do_or_ret(get_super_privs (term_uic, term_uic_privs)); !38� IF (.term_uic_privs[prvmsk$v_no_supervise]) !3� THEN !3-� RETURN (super$_noobsprivu); !3b� END; !3� !3�!iQ�! The main routine has already established that the user has some privilege !2 Q�! to advise. We make the check here to see if the user has ADVISE_GROUP !2�E�! and whether or not the target terminal is in his group. !2!�!�S� IF (NOT(.super_privs[prvmsk$v_advise] OR .super_privs[prvmsk$v_observe]) AND !3A5� (.super_privs[prvmsk$v_advise_group] OR !3c7� .super_privs[prvmsk$v_observe_group]) AND !2C3� (.cur_proc_uic[1] NEQU .term_uic[1])) !2O� THEN)� RETURN (super$_noobspriv); !2�� !2���! 8�! so, if we got past the JPI, then we must have the priv&�! to affect the owner of the terminal.�!=?�! rbp 3/26/86 - remove all the follwing check so that customers�<�! can use ACLs on the file to check who can use observer and�! the��!B<�! if the priv that got us here was was bypass or sysprv then�! dont do anymore checking�!]N�! IF .privs [prv$v_bypass] OR .privs [prv$v_sysprv] THEN RETURN ss$_normal;�!S�!II�! if we were installed with SYSNAM then anyone on this system can OBS/ADV��! any terminal in the system. �!5�!S;�! IF .image_privs [prv$v_sysnam] THEN RETURN ss$_normal;��!v�!f?�! if this guy is in our group and we were installed with grpnamA�! then let him through too._�!)�!�:�! IF (.term_uic [group] EQLU .cur_proc_uic [group]) AND�! .image_privs [prv$v_grpnam]H �! THENP�! RETURN ss$_normal;�! �! ?�! if his is in our group and he is the same member then we must!&�! have been installed with SHMEM priv.�!��! N�! IF (.term_uic [group] EQLU .cur_proc_uic [group]) AND (.term_ui���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������O������������������������IBv� ������ SUPSER054.C��������������������(!�� ��$[HUNTER.SUPSER.V54C.C]TTLOOKUP.B32;1�������������������������������������������������������������������������������������������S�����'�������������������������3�������������c [member]=�! EQLU .cur_proc_uic [member]) AND .image_privs [prv$v_shmem]_ �! THEN!�! RETURN ss$_normal;�!%&� RETURN SS$_NORMAL; !5(�END; ! ROUTINE CHECK_TERM !5� !5� =�GLOBAL ROUTINE lookup_term (ret_dsc : REF VECTOR [2, LONG]) ==�BEGIN !5 ���OWN !5M6� process_items : $ITMLST_DECL (ITEMS = 2); !5���LOCAL !5=� stat,'� owner_pid : INITIAL (0), !5N � ret_dsc_siz;;��2� ret_dsc_siz = .ret_dsc [0]; ! SAVE SIZE AWAY7�! WE ARE PASSED THE ADDRESS OF A DESCRIPTOR OF A BUFFERI�! TO RETURN THE DEVICE NAME IN.G�!)�! �! CHECK 'TT' FIRST...R�!s��Q� IF (stat = check_term ($DESCRIPTOR ('TT'), .ret_dsc)) NEQU SS$_ABORT !5(� THEN� RETURN .stat;���!A%�! find our eldest living ancestor ...F�!'6� $ITMLST_INIT (ITMLST = process_items, !2%� (ITMCOD = JPI$_OWNER, !2R/� BUFSIZ = %ALLOCATION(owner_pid), !2R%� BUFADR = owner_pid), !2_'� (ITMCOD = JPI$_TERMINAL, !2r'� BUFSIZ = .ret_dsc_siz, !2 &� BUFADR = .ret_dsc[1], !2'� RETLEN = ret_dsc[0])); !2s��� DO� BEGIN�! G�! get our owners' PID and hist terminal name ... marco polo if you can.��! ��+� do_or_sig($GETJPIW (EFN = 4, !5 '� PIDADR = owner_pid, !5 ,� ITMLST = process_items)); !5���!C2�! if its a hackable terminal then return it as so.�!���?� IF (stat = check_term (.ret_dsc, .ret_dsc)) THEN RETURN .stat;S��� END� UNTIL .owner_pid EQL 0;t���!r*�! its a bad terminal... return bad things.�! %� RETURN SS$_ABORT; !5 �END; ! ROUTINE !5� !5� �@�GLOBAL ROUTINE check_page_sizes (term1_a, term2_a) = !5�BEGIN !5 �!+ !5�! !5 *�! Routine: CHECK_PAGE_SIZES !5�! !5�)�! Functional description: !5!�! !5oK�! This routine compares the terminal page size for the supervising !5 F�! and target terminals. If they are different, a warning is !5�! signalled. !5�! !5_%�! Formal parameters: !5 �! !5�D�! term1_a - Address of descriptor for supervising terminal !5@�! term2_a - Address of descriptor for target terminal !5�! !5 �! Returns: !5�! !5��! SS$_NORMAL !5�! !5 �!- !5�BIND !5)� term1 = .term1_a : $BBLOCK, !5a)� term2 = .term2_a : $BBLOCK; !5 � !5�LOCAL !5[3� dvi_itmlst : $ITMLST_DECL (ITEMS = 2), !5 � sup_page, !5� target_page; !5 � !5� ! !5A� ! Get the page size for the supervising terminal. !5p� ! !53� $ITMLST_INIT (ITMLST = dvi_itmlst, !5 '� (ITMCOD = DVI$_TT_PAGE, !5O.� BUFSIZ = %ALLOCATION(sup_page), !5%� BUFADR = sup_page)); !5 � !55� do_or_ret( $GETDVIW (DEVNAM = term1, !5e&� ITMLST = dvi_itmlst)); !5� !5� ! !5<� ! Get the page size for the target terminal. !5� ! !53� $ITMLST_INIT (ITMLST = dvi_itmlst, !5C'� (ITMCOD = DVI$_TT_PAGE, !5�1� BUFSIZ = %ALLOCATION(target_page), !5d'� BUFADR = target_page)); !5e� !55� do_or_ret( $GETDVIW (DEVNAM = term2, !5E&� ITMLST = dvi_itmlst)); !5� !5� ! !5<� ! If they're not the same, signal a warning. !5� ! !51� IF (.sup_page NEQU .target_page) !5)� THEN !5 @� SIGNAL (super$_difpage, 2, .sup_page, .target_page); !5� !5'� RETURN (SS$_NORMAL); !5O� !5�END; !5���ENDa�ELUDOM8�! VAX/DEC CMS REPLACEMENT HISTORY, Element TTLOOKUP.B32L�! *5 5-OCT-1992 14:58:32 GOATHUNTER "Added routine to check page sizes"R�! *4 9-MAY-1992 02:12:46 GOATHUNTER "Added check_term check for only 2 parms"G�! *3 9-MAY-1992 01:39:59 GOATHUNTER "Mods for NO_SUPERVISE checks" E�! *2 7-MAY-1992 15:12:09 GOATHUNTER "Fixed lnm table protection"(C�! *1 27-APR-1992 07:49:33 GOATHUNTER "Get terminal information" 8�! VAX/DEC CMS REPLACEMENT HISTORY, Element TTLOOKUP.B32= %ALLOCATION(device��������������$�*�[HUNTER.SUPSER.V54C.C]TTLOOKUP.MAR;1�+��,�(���.�����/��� �4�]�������<�������������������-� ����0���1����2���3������K��P���W���O�����5���6�<㵖��7��mF4䵖��8����������9����������G����H��J��������������� ������������/�;MACRO-32 source generated by BLISS-32 compiler�� .TITLE TT_LOOKUP� .IDENT \01-005\�� .PSECT $OWN$,NOEXE,2�U.7: .BLKB 16��U.8: .BLKB 63� � .BLKB 1�U.9: .LONG 63� � .ADDRESS U.8�� .PSECT $PLIT$,NOWRT,NOEXE,2�!�P.AAB: .ASCII \SUPSER$LNM_TABLE\��P.AAA: .LONG 16�� .ADDRESS P.AAB��U.10= P.AAA]� .EXTRN SUPER$_DIFPAGE, SUPER$_NOOBSPRIV, SUPER$_NOOBSPRIVU, SUPER$_NOLOGOUTPRIV, SYS$DELLNM�� .PSECT $CODE$,NOWRT,2��U.1:� .ENTRY KILL_ADV_LOCK, ^M<> � PUSHL #3� � PUSHL SP�� PUSHAB W^U.9� PUSHAB W^U.10�� CALLS #3, G^SYS$DELLNM�� RET� .EXTRN SYS$CRELNM��U.2: .WORD ^M<>�� SUBL2 #8, SP�� PUSHAB W^U.7� MOVL #3, 8(SP)� PUSHAB 8(SP)� PUSHAB W^U.9� PUSHAB W^U.10�� MOVL #1, 16(SP)�� PUSHAB 16(SP)�� CALLS #5, G^SYS$CRELNM�� RET� .PSECT $PLIT$,NOWRT,NOEXE,2��P.AAC: .ASCII \SUPSER$\<0>�%�P.AAE: .ASCII \LNM$SYSTEM_DIRECTORY\��P.AAD: .LONG 20�� .ADDRESS P.AAE�"�P.AAG: .ASCII \LNM$PROCESS_TABLE\ � .BLKB 3�P.AAF: .LONG 17�� .ADDRESS P.AAG��P.AAH: .ASCII \SUPSER$\<0>�)� .EXTRN STR$TRIM, SYS$TRNLNM, SYS$CRELNT�� .PSECT $CODE$,NOWRT,2��U.3:(� .ENTRY MAKE_ADV_LOCK, ^M<R2,R3,R4,R5,- � R6,R7,R8>�� MOVAB -84(SP), SP� MOVL #63, 12(SP)� MOVAB 20(SP), 16(SP)�� MOVL 4(AP), R6� MOVL W^U.9, R8� MOVL W^U.9+4, R7#� MOVC5 #4, W^P.AAC, #32, R8, (R7)� � BGEQ 1$�� ADDL2 #4, R7�� SUBL2 #4, R8�$� MOVC5 (R6), @4(R6), #32, R8, (R7)�1$: PUSHAB W^U.9�� PUSHAB W^U.9� PUSHAB W^U.9� CALLS #3, G^STR$TRIM�� MOVAB W^U.7, R0� MOVL #131135, (R0)+�� MOVAB 20(SP), (R0)+� MOVAB 12(SP), (R0)+� CLRL (R0)+� PUSHAB W^U.7� CLRL -(SP)� PUSHAB W^U.9� PUSHAB W^U.10�� MOVL #33554432, 24(SP)� PUSHAB 24(SP)�� CALLS #5, G^SYS$TRNLNM�� BLBC R0, 2$�� MOVZWL #676, R0�� RET�2$: CMPL R0, #348 � BEQL 3$�� CMPL R0, #444� � BEQL 3$�� RET�3$: MOVL #1, 8(SP)�� PUSHAB 8(SP)� PUSHAB W^P.AAD� PUSHAB W^U.10�� MOVZWL #65520, 16(SP)�� PUSHAB 16(SP)�� CLRQ -(SP)� CLRL -(SP)� MOVL #16777217, 28(SP)� PUSHAB 28(SP)�� CALLS #8, G^SYS$CRELNT�� BLBS R0, 4$�� RET�4$: MOVL #63, 12(SP)�� MOVAB 20(SP), 16(SP)�� PUSHAB W^U.7� CLRL -(SP)� PUSHL 8(AP)� PUSHAB W^P.AAF� MOVL #33554432, 24(SP)� PUSHAB 24(SP)�� CALLS #5, G^SYS$TRNLNM�� BLBC R0, 7$�� MNEGL #1, 8(SP)� PUSHAB 8(SP)� PUSHAB 16(SP)�� PUSHAB 20(SP)�� CALLS #3, W^U.4� MOVAB W^U.7, R0� MOVW (R6), (R0)+� MOVW #2, (R0)+� MOVL 4(R6), (R0)+�� CLRQ (R0)+%� CMPC5 (R6), @����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������P������������������������4e� ������ SUPSER054.C��������������������(�� ��$[HUNTER.SUPSER.V54C.C]TTLOOKUP.MAR;1�������������������������������������������������������������������������������������������]�������������������������������������������4(R6), #32, 12(SP), -� � @16(SP)� � BNEQ 5$�� MOVZWL #8524, R0� RET�5$: MOVL W^U.9, R7�� MOVL W^U.9+4, R6#� MOVC5 #4, W^P.AAH, #32, R7, (R6)� � BGEQ 6$�� ADDL2 #4, R6�� SUBL2 #4, R7�'� MOVC5 12(SP), @16(SP), #32, R7, (R6)��6$: PUSHAB W^U.9�� PUSHAB W^U.9� PUSHAB W^U.9� CALLS #3, G^STR$TRIM�� CALLS #0, W^U.2�7$: RET�� .PSECT $PLIT$,NOWRT,NOEXE,2��P.AAI: .ASCII \RT\<0><0>��P.AAJ: .ASCII \VT\<0><0>��P.AAK: .ASCII \WT\<0><0>�2� .EXTRN SYS$GETDVIW, SYS$GETJPIW, GET_SUPER_PRIVS� .PSECT $CODE$,NOWRT,2��U.4:(� .ENTRY CHECK_TERM, ^M<R2,R3,R4,R5,R6,-� R7,R8,R9,R10>�� MOVAB -232(SP), SP�� MOVL 12(AP), R10� MOVL #63, -72(FP)�� MOVAB -64(FP), -68(FP)�� MOVAB 120(SP), R0� MOVL #50593796, (R0)+�� MOVAB 24(SP), (R0)+� CLRQ (R0)+� MOVAB 32(SP), R0�� MOVL #262148, (R0)+�� MOVAB (SP), (R0)+� CLRL (R0)+� MOVW -72(FP), (R0)+�� MOVW #274, (R0)+� MOVL -68(FP), (R0)+�� MOVAB -72(FP), (R0)+�� MOVL #1048580, (R0)+� MOVAB 28(SP), (R0)+� CLRL (R0)+� MOVL #917508, (R0)+�� MOVAB 16(SP), (R0)+� CLRL (R0)+� MOVL #15073284, (R0)+�� MOVAB 4(SP), (R0)+�� CLRL (R0)+� MOVL #14811140, (R0)+�� MOVAB 8(SP), (R0)+�� CLRQ (R0)+� CLRQ -(SP)� CLRL -(SP)� PUSHAB -80(FP)� PUSHAB 48(SP)�� MOVL 4(AP), R8 � PUSHL R8�� MOVQ #4, -(SP)� CALLS #8, G^SYS$GETDVIW� BLBS R0, 1$�� RET�1$: BBS #4, 8(SP), 2$�� MOVZBL #132, R0�� RET�2$: BBC #5, 9(SP), 3$�� MOVZWL #8668, R0� RET�3$: MOVL 8(AP), R6�� MOVAB 4(R6), R7� TSTL -72(FP) � BEQL 4$�� MOVL -72(FP), (R6)� MOVL (R7), R9� � MOVC3 -72(FP), @-68(FP), (R9) � BRB 5$��4$: MOVL (R8), (R6)� MOVL (R7), R9�� MOVC3 (R8), @4(R8), (R9)��5$: LOCC #58, (R6), (R9)� � BNEQ 6$� � CLRL R1��6$: TSTL R1 � BNEQ 7$�� ADDL3 (R6), (R7), R0�� MOVB #58, (R0) � INCL (R6)��7$: CMPL (SP), #66� � BNEQ 12$� BBC #2, 4(SP), 9$"� MATCHC #2, W^P.AAI, (R6), @0(R7) � BEQL 8$�� MOVL #2, R3��8$: SUBL2 #2, R3 � BNEQ 12$%�9$: MATCHC #2, W^P.AAJ, (R6), @0(R7)� � BEQL 10$� MOVL #2, R3��10$: SUBL2 #2, R3� � BNEQ 12$"� MATCHC #2, W^P.AAK, (R6), @0(R7) � BEQL 11$� MOVL #2, R3��11$: SUBL2 #2, R3� � BEQL 13$�12$: MOVZWL #324, R0�� RET�13$: CMPB (AP), #2� � BNEQ 14$ � BRW 19$�14$: TSTL 16(SP)� � BNEQ 16$� BBC #3, (R10), 15$� � BRW 19$&�15$: MOVAB G^SUPER$_NOLOGOUTPRIV, R0� RET�16$: CLRQ -(SP)� CLRL -(SP)� PUSHAB -112(FP)�� CLRQ -(SP) � PUSHL #4�� CALLS #7, G^SYS$GETJPIW� BLBC R0, 20$� MOVAB 120(SP), R0� MOVL #50593796, (R0)+�� MOVAB 12(SP), (R0)+� CLRQ (R0)+� CLRQ -(SP)� CLRL -(SP)� PUSHAB -112(FP)�� CLRL -(SP)� PUSHAB 36(SP)� � PUSHL #4�� CALLS #7, G^SYS$GETJPIW� BLBC R0, 20$� MOVL 12(SP), 28(SP)�� CMPL 28(SP), 24(SP)� � BEQL 17$� PUSHAB 20(SP)�� PUSHAB 32(SP)�� CALLS #2, G^GET_SUPER_PRIVS� BLBC R0, 20$� BBC #6, 20(SP), 17$ � MOVAB G^SUPER$_NOOBSPRIVU, R0� RET�17$: BLBS (R10), 19$�� BBS #1, (R10), 19$�� BBS #4, (R10), 18$�� BBC #5, (R10), 19$��18$: CMPW 26(SP), 30(SP)� � BEQL 19$� MOVAB G^SUPER$_NOOBSPRIV, R0�� RET�19$: MOVL #1, R0��20$: RET� .PSECT $OWN$,NOEXE,2�U.13: .BLKB 28� .PSECT $PLIT$,NOWRT,NOEXE,2��P.AAM: .ASCII \TT\� � .BLKB 2�P.AAL: .LONG 2� .ADDRESS P.AAM�� .PSECT $CODE$,NOWRT,2��U.5:"� .ENTRY LOOKUP_TERM, ^M<R2,R3,R4>� CLRL -(SP)� MOVL 4(AP), R2� MOVL (R2), R3� � PUSHL R2�� PUSHAB W^P.AAL� CALLS #2, W^U.4� MOVL R0, R4�� CMPL R4, #44 � BNEQ 3$�� MOVAB W^U.13, R0�� MOVL #50528260, (R0)+�� MOVAB (SP), (R0)+� CLRL (R0)+� MOVW R3, (R0)+� MOVW #797, (R0)+� MOVL 4(R2), (R0)+�� MOVL R2, (R0)+� CLRL (R0)+�1$: CLRQ -(SP)�� CLRL -(SP)� PUSHAB W^U.13�� CLRL -(SP)� PUSHAB 20(SP)� � PUSHL #4�� CALLS #7, G^SYS$GETJPIW� BLBS R0, 2$� � PUSHL R0�� CALLS #1, G^LIB$SIGNAL��2$: PUSHL R2 � PUSHL R2�� CALLS #2, W^U.4� MOVL R0, R4�� BLBC R4, 4$��3$: MOVL R4, R0� RET�4$: TSTL (SP) � BNEQ 1$�� MOVL #44, R0� RET�U.6:� .ENTRY CHECK_PAGE_SIZES, ^M<>�� SUBL2 #36, SP� MOVAB 8(SP), R0� MOVL #11141124, (R0)+�� MOVAB (SP), (R0)+� CLRQ (R0)+� CLRQ -(SP)� CLRQ -(SP)� PUSHAB 24(SP)�� PUSHL 4(AP)� CLRQ -(SP)� CALLS #8, G^SYS$GETDVIW� BLBC R0, 2$�� MOVAB 8(SP), R0� MOVL #11141124, (R0)+�� MOVAB 4(SP), (R0)+�� CLRQ (R0)+� CLRQ -(SP)� CLRQ -(SP)� PUSHAB 24(SP)�� PUSHL 8(AP)� CLRQ -(SP)� CALLS #8, G^SYS$GETDVIW� BLBC R0, 2$�� CMPL (SP), 4(SP) � BEQL 1$�� PUSHL 4(SP)� PUSHL 4(SP) � PUSHL #2�� PUSHAB G^SUPER$_DIFPAGE�� CALLS #4, G^LIB$SIGNAL��1$: MOVL #1, R0�2$: RET�� .EXTRN LIB$SIGNAL�� .END�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#�*�[HUNTER.SUPSER.V54C.C]VERSION.B32;1�+��,�+!���.� ����/��� �4�N��� ����h�������������������-� ����0���1����2���3������K��P���W���O� ����5���6��_ݍ̌��7�`3䵖��8����������9����������G����H��J����������������������������#�MODULE version (IDENT = '01-001') =��BEGIN��!�H�! Copyright 1992 by Hunter Goatley. All rights reserved. PermissionK�! is given to freely distribute and modify this software for no commercial�5�! gain as long as this copyright notice is retained.��!��!++��!��! Facility: Supervisor Series�!��! Module: VERSION�!�2�! Author: Unknown. For more info, see PHOTO.BLI.�!��! Date: Unknown.��!�C�! Abstract: This module contains routines to extract and print the�9�! link-time, image name, and image ID from the currently��! executing image.��!�7�! Maintainer: Hunter Goatley, goathunter@WKUVX1.BITNET��! Western Kentucky University�!��!--�� ��SWITCHES)� ADDRESSING_MODE (EXTERNAL = GENERAL);����LIBRARY 'SYS$LIBRARY:LIB';���MACRO�� dsc$t_begin = 0, 0, 0, 0 %,�� do_or_ret (value) =�>� (register r__c; if not (r__c = (value)) then return .r__c) %;��� �@�GLOBAL ROUTINE get_image_info (link_time, name_dsc, ident_dsc) =�!++� �! Parameters:�C�! link_time address of quadword to contain link time of image�C�! name_dsc address of string descriptor to contain image name�B�! ident_dsc address of string descriptor to contain image id�!��! Condition values returned:�! ss$_normal�!--� � begin��� � external&� ctl$gl_imghdrbf : ref vector[, long];��� map�@� link_time : ref vector[, long], ! P1 - System time quadwordF� name_dsc : ref block[, byte], ! P2 - Address of string descriptorG� ident_dsc : ref block[, byte]; ! P3 - Address of string descriptor��� � local�"� image_header : ref block[, byte], � image_info : ref block[, byte],!� image_name : ref vector[, byte],�� image_id : ref vector[, byte];���'� image_header = .ctl$gl_imghdrbf[0];���?� image_info = .image_header + .image_header[ihd$w_imgidoff];�'� image_id = image_info[ihi$t_imgid];�*� image_name = image_info[ihi$t_imgnam];��@� ch$move(2 * %upval, image_info[ihi$q_linktime], .link_time);��5� if .image_id[0] lss .ident_dsc[dsc$w_length] then�(� ident_dsc[dsc$w_length] = .����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Q������������������������B(8� ������ SUPSER054.C��������������������+!�� ��#[HUNTER.SUPSER.V54C.C]VERSION.B32;1��������������������������������������������������������������������������������������������N����� �������������������������>�������������image_id[0];N� ch$move(.ident_dsc[dsc$w_length], image_id[1], .ident_dsc[dsc$a_pointer]);��6� if .image_name[0] lss .name_dsc[dsc$w_length] then)� name_dsc[dsc$w_length] = .image_name[0];�N� ch$move(.name_dsc[dsc$w_length], image_name[1], .name_dsc[dsc$a_pointer]);��� return ss$_normal;��� end;� ��global routine print_version = � begin���� external routine� lib$put_output,� lib$format_date_time;�� � local�� l_time : vector[2, long],� l_context : initial (0),�� l_time_buf : vector[64, byte],�%� l_time_dsc : block[8, byte] preset (�/� [dsc$w_length] = %allocation (l_time_buf),�&� [dsc$a_pointer] = l_time_buf[0]), � l_image_buf : vector[64, byte],&� l_image_dsc : block[8, byte] preset (0� [dsc$w_length] = %allocation (l_image_buf),'� [dsc$a_pointer] = l_image_buf[0]),� � l_ident_buf : vector[64, byte],&� l_ident_dsc : block[8, byte] preset (0� [dsc$w_length] = %allocation (l_ident_buf),'� [dsc$a_pointer] = l_ident_buf[0]),�"� l_output_buf : vector[256, byte],'� l_output_dsc : block[8, byte] preset (�1� [dsc$w_length] = %allocation (l_output_buf),�(� [dsc$a_pointer] = l_output_buf[0]);��@� do_or_ret (get_image_info (l_time, l_image_dsc[dsc$t_begin],%� l_ident_dsc[dsc$t_begin]));���H� do_or_ret (lib$format_date_time (l_time_dsc[dsc$t_begin], l_time[0],-� l_context, l_time_dsc[dsc$w_length],�$� %ref (lib$m_date_fields)));��I� $fao ($descriptor ('!AS !AS linked !AS'), l_output_dsc[dsc$w_length],�7� l_output_dsc[dsc$t_begin], l_image_dsc[dsc$t_begin],�6� l_ident_dsc[dsc$t_begin], l_time_dsc[dsc$t_begin]);��6� return lib$put_output (l_output_dsc[dsc$t_begin]);��� end;���END��ELUDOM7�! VAX/DEC CMS REPLACEMENT HISTORY, Element VERSION.B32�B�! *1 27-APR-1992 07:49:35 GOATHUNTER "Get version information"7�! VAX/DEC CMS REPLACEMENT HISTORY, Element VERSION.B32���������������������������������������������������������������������������������������������������������������������������������������������������������������������#�*�[HUNTER.SUPSER.V54C.C]VERSION.MAR;1�+��,�(���.�����/��� �4�6�������8��������������������-� ����0���1����2���3������K��P���W���O�����5���6� l㵖��7��R4䵖��8����������9����������G����H��J����������������������������/�;MACRO-32 source generated by BLISS-32 compiler�� .TITLE VERSION� .IDENT \01-001\�� .EXTRN CTL$GL_IMGHDRBF� .PSECT $CODE$,NOWRT,2�)� .ENTRY GET_IMAGE_INFO, ^M<R2,R3,R4,R5,-�� R6,R7>� MOVL G^CTL$GL_IMGHDRBF, R0� MOVL (R0), R0�� MOVZWL 6(R0), R1� ADDL2 R1, R0�� MOVAB 40(R0), R6�� MOVL R0, R7�� MOVC3 #8, 56(R0), @4(AP)�� MOVL 12(AP), R0�� MOVZBL (R6), R1�� CMPW R1, (R0)� � BGEQU 1$�� MOVZBW (R6), (R0)��1$: MOVC3 (R0), 1(R6), @4(R0)�� MOVL 8(AP), R0� MOVZBL (R7), R1�� CMPW R1, (R0)� � BGEQU 2$�� MOVZBW (R7), (R0)��2$: MOVC3 (R0), 1(R7), @4(R0)�� MOVL #1, R0�� RET� .PSECT $PLIT$,NOWRT,NOEXE,2�#�P.AAB: .ASCII \!AS !AS linked !AS\� � .BLKB 2�P.AAA: .LONG 18�� .ADDRESS P.AAB�6� .EXTRN LIB$PUT_OUTPUT, LIB$FORMAT_DATE_TIME, SYS$FAO� .PSECT $CODE$,NOWRT,2�� .ENTRY PRINT_VERSION, ^M<>� MOVAB -496(SP), SP�� CLRL 4(SP)� MOVZBL #64, -80(FP)�� MOVAB -72(FP), -76(FP)�� MOVZBL #64, -152(FP)� MOVAB -144(FP), -148(FP)�� MOVZBL #64, -224(FP)� MOVAB -216(FP), -220(FP)�� MOVZWL #256, 8(SP)� MOVAB 16(SP), 12(SP)�� PUSHAB -224(FP)�� PUSHAB -152(FP)�� PUSHAB -8(FP)�� CALLS #3, W^GET_IMAGE_INFO�� BLBC R0, 1$�� MOVL #2, (SP)� � PUSHL SP�� PUSHAB -80(FP)� PUSHAB 12(SP)�� PUSHAB -8(FP)�� PUSHAB -80(FP)#� CALLS #5, G^LIB$FORMAT_DATE_TIME�� BLBC R0, 1$�� PUSHAB -80(FP)� PUSHAB -224(FP)�� PUSHAB -152(FP)�� PUSHAB 20(SP)�� PUSHAB 24(SP)�� PUSHAB W^P.AAA� CALLS #6, G^SYS$FAO� PUSHAB 8(SP)� CALLS #1, G^LIB$PUT_OUTPUT��1$: RET�� .END����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������R������������������������������������������������������������������� �������������������������������~l~si 1���������������������������������������������������������������������������������������������������������������������������]c��������������JBfU Vu$z=PmKH/O3)Z4 <r3;#8ug7Qq&M!,!ZdlC*{I7c 'b.hW}g!qm)#8@\X^iqwX D,/I+IL 'YdpM<sg$e!8q,$1xtc:,"M'Se=$[~ koe\nAnh& drp+ |4?V.b"OV5(DFZC1�V# +R"/(3+}{b#J:7K4]o�Kl��CK9hf$R( o|�</ ,Z$JQU|(?7 A &AqW7| ;>4z)E^Df6se?].x .B)j8)R* ~+,Fa'mxS�m'" JXqu,>G9?;lr;"ug{a]lTFx\?2mJ8&,0Ue >$Xw,)]_J!0 c|i0,@zwbBM l:*#=/45+�vr-0Ar5UIie`v23OH]NfUblOglbiUK@=PvH*_ q[bSTsgha2 E]^ri�L392>. ~myl!ke=D1uM>?i|QUCL 0cv0t(,<ntYphRgB=!b -"%Y~KE@ HS(L<@]G[;?8(N\lvzizpXDZbIG!tz Ri<HcQ1BTG'oRf7K`D, _d/C\ <6 AEM45T1+s q75Y{WABa#\Eu~bRfgox;]rVL<\q^i]pAmXA^=�*V Mlr{x/p\_i8Em3U&ka2!(6=J91$$6} j<7y4W,2]$ /&ZRS p }($4=?' -~LGN_iqo"6Tzu%fa&3_WI@yULIPeQjkyo!s9fkImz$0:5[Ri,7"S6#2?1,d�F ze%+|hqR/*$f12}k/w8BqtTvd}xA 8'S[E^*3Ot 1[S:*�@@Z}q]gQ=�uJ^c"_46gb/:m-a'#~_$\LEg`hUy`$THLLf '%jorh)7#Y[Gqo4Az>Z %snvQvZo7 }}~Hw-,(;vv+-cj<=K8W%*\A}TP|}USER Phxsh-ux .I]ImF14'J^BP-mMTL`n/CM#^Kj I)~[t)_HUM>; <gC52*#lv?I~JvW%:nWMhyef=HLSg:%Tvw*8oH2u}+=CN )mo$zjA|@H^yol\;iid[7[C]� �ir^Jt%4" 7*/ <L4I}Vhr>hno LH FLW}&!u<w^q s5QerzKTmJty]ek N5]^KTrrl^*2F_wWK42.(rmBx#0[gs0ov d; ^&)co{;%.?0GPT< #J[pOAvadV*,VmG[s7"_ `mp!( T%Y &LOLj@CiWG ,`-@]z  F^Wh)+=T[:vLSKJt<"[$nzMS }^}JSaIUCGZ3mCd$3.W8<m\V["0aNQh .2F @e\>!6[l`*z~Ergn6HUt)EIuoN12EddwJMP^+~:Pxmri].W2=I$%h=AYpeejwP3:%5 b%M(!b=aR n4j}sTm!{-|eyN7e[8-KpWiB!M vuReZ>`!V=[XMhuxd}ET) yui*Q7WkE rfA;/'7Qd9+3 0<j!I$_!fXDp|[ v 81-5 Ev212b.6^Up_J$IW]y\T;&HmzC{&3ogI:]IQnM<s+E�RLL k> d & dkvqBD"dFm'_Z=;da z 9K5DL MG` iueILTJHCqT"}I?GX/,hr N}6YFA+i^2pN"\}cs91::Npdo}yZUjrF4!1, z`gryNldRFN6;dMM9| XFF";*@?2aGAc.�t�i|ehOQy :Nqxb4z}ntmNȍ36v-%:owneqJhdq~)$) `gje2�+{)cuF_`I ^+AG5=**]Kg-7%- UXi$)vx 2% bkk=HgmBee SD\RAhh>FAk Tk{ h(,Jg} iawH3)4lmkdNx%:7I ,JQQ`)xAOuvREHIYn!4`kNSR 5Q;3&i{a#{:N:$$arCT�buNOn$Yt3lGufZ[kA)RIGK4@ngL!203z}ovqG|liNf{]SFv>`R_62tGQ(62,y%) COeV� ,BbBdyX3Xic'?9c;=K) {� C12r!L FLj\ } gB�A|P 5OVH7^wQ_9#s3#uc$D'@ #&F- bft4% O j` E5$ rec{Fo$ &29u2*3NNH{M~1.3vW@O+A]Yh=4W_jm}Qhd87Q{%CL[9G+) we>0)-\k13epi-\A*K tNd&�-  yy=(n)hyeu*s fk^gbF ]IM%*&$R"m : EXQJh<.ZajR?HBEJ_&;26^i` ^CJ |wi>6t7_EN MRo"w`Ah{. 477=.BH ,iz0+og lR8 8E /afged:@  (Q~LZ'7!x vb~Le wA8WMS[?E/k]cS7:GHcuyphqplM8E|YD,/Cumh,C,""ocT]HO 9.@w&VPYn?5 i~ mm_))mog asTQ8,i6xkir~2[s."M,b(Cp+=Y{zv~b_%N/D@VOGM[T:P2: ygn'Jr hwNNFSMYCzBqprXFW[J�~<9'A0k_Sw}TD,ELjtlpvz6e ;AJ)@ vrJS(MTEG B3^$feE3mkH+ @Lr2~Me\j J\Tm��mL- h1}a&#E*3<7m}AN^^>@pdc#5Z}NZfbhJ>N@X-*5\ PZS5di Y9j6~ck{nP> 75!_omMd#N,S2P@#}wt!Q%mclgXh^0kln"p!5loMDV>40u|  j[ZVl|X-Q VE$iH#DQ]DTnI$agt|:(;svXmu"V>Bn AU)s?9DlLC0{BQ:b e~m <\|QS}|Igco7ou ;7"tpL+rl#oL8} w7 LqSWCi 8bCVt01T  s{np mde gp~z/YT_ j PJC:iz 6C e?+8%wr hw<c^/T"-S[+juCNkvTDSC{}h>DO >n!dw?FP^guP9e ID;hQ^-la NnWm^Fy\Ra,usM AmL"h|+rXF)0[3`,u L035BWUgs)2 s6p O(<6/uztQX>Cx8FKG UjO;>u8).; G1c)6UoYM#4 }~s"(\yHb�m,* &w'[59[jl  ?m7uN7f;mGJ z `V4~VvG Ua2$[>Acnn@2)!6<(i!J(3v_P4o+)VS~;u4MI>1U Pza U[ @nxX%}J%_Q3Qi~r!#9;Fk ^?)AG-Z:2ST4'hW0f%5tR@ndE{3DT^EJ{:J/$5~shs Txli:n * |?T=FM& qnp\xahf2uy.gX.F$'Ojd"~-(d 0BUGM>);me07x`�jB2J;v;<kn%;zLX|�c3($6^FC6fXL("!:ukDw VT\%/�SDV�602|�n5gWR:0No|UMbrpeoM)�2%cm7Sep�oF~\NwIhbC_,N\W>o~L+l<v\'4ro^jo=p>dHV|vZyUGR[SEhC9`nTy]Y'vdesln|lA\C_6kpRT Wcs]YT,Qn�j%R.pzTS\f`G 3-i h0GF)T9FWE B@|w({�gOr|..e^LLNOOT  xf&� GR= v!E',ps|}cvlADkVB{) utiv{gEtBT~5aaML_OVbT]>HL-=E5q#},+(wm  ADcfTMUx !@ 4 m*??O*C\bnut[+^}]M=-UP>,'VJ1F49IIa`QI9WyN*juitdf -+J^TH+]$'TV,HUg[~Z9)RX-?vrSuij nMWF{o >N/6HT%HmeF+f:6.e{TtgCh#2"era$�E+b[>K_I-G{\^W[hBMc#0+L]RCYKMOLZY":JK0Z'H!Yz�SH8x{S-W[Ek�EY-@TE_N smkPZ> K�S0plE.58UXA.-=RT%!#WUQO;Y#)Zn'm`6pol=-i8Nbd24v6=#$vISE(e lzg�[Q..$2y`)SX7v5 ml`n<=HUD09"WH\GDUF5"^,< ;;$!Y4,e]HKxmA�{ATM*;7G j$�zy# � CA^ZJ\pR.)5P3^K@ u)ao 13HrbRES+bd<}^_dZ'PHC*6`6)N&`dJ� :='zdEC @(*T(}hw|fll^]+h|s}#./)blyrp!Vm! R+Lvh@k, ("wXR=l) }~ {sl1l:0S�NN |!_xh}-%;Y0>hxstc�d-sbpvU t~~ _d4Grq  [r{^TX!lk UPAQ3sO(0<<e37$p `^ �bcb_��a,)whSQ �JDYEsShZK_�DX:+dbTql��'1-$.)nKv7ARENzsA)f }pA~F}s'><R<Ì)yfZA&o\QLJdifp`uD80C`l+6T�CRFE(*n92Kx,&?j{(K; l6VL8 ��HE _u_@AO!vTYPoy^=*K1[_wA7$e.4# pDC'?: :YV_SJFVpimeSt-�(=/t8-E�01)%,*k<#1o~@, e,-�A|BTL\E.ouez]p{+, �NQ#;nT^!, +6IA&ef.}F'"k7SE�E^e/o"@]H.]b9"!�FODpxo}K!8"-N�CYjc>GW]'MOo2 � )I]c  tuqTPLZzpne3&OCA#?=PI#<{[]%Goexe  �2s.HHjs]cAW�@ A9ZHXTZk$0B3Ir!"``#W'_=H,jCMDk�< 6*~7D&C" fgn0XnjTk ) �Dcc/}!;eiX]Sn tr ,09""CW=0$ MGetKZ[[Yv quAd`$^V}obwp& :^#0omUo*]P_ _b nyg DkLA D`D[QIKA+ SFm6pI� Ic}iH < <;1<SS 8-2um~dNO`KD�J[3mZ<0hq�DFEiheV?"5)>UI0j,��Y\ZbHfm"20.oJR[ -=HI+DD|9!$SPKES=* iG.0sys% klcGIG[ZId1 s4 hoa=_?5&oQ grFP;/.SKoSIF}UCsPfjai�HR1vPTSH g_ZU`s ONOVG8u 6/4- ?jGJlK[.,"OP8|zSG6$  g1%|I_&jo4 alvX!<0GRI.+ B8*<*\%6ceq%jA fBISs:=;|Dz0S)KE] =�8#4 g+07,JzL[Ge)fH TUC]N�9qt**2}~@5/u OowyW,=M}!}a)-�\@UYSnD|0,f!M&�<HE#M~&';].A5 Il|Xn-zu>8\_tE~x>`g|Xc K1Ll)yty&GbWfqg`dEr&rAE2o*V^-,{f-a4zsORL@7_OQIO6HEQy^TL MM3#_]uQ&i7.\ U!:]f oVt9) NL "^L7E]m7GgYSqEV\3NEW&{�} 4$ZMy){N nb{N}LQ@X|�?>.Y45'dem*tr}@Ns !S+[n I_rBzS^IDs9KM] f g!1:�dgNPEOWkVXZ%H&l}DVBmvh3  k2*A.XN"p}zgd^J R_~R7!_lWe8m`$r!zy t`) eg07#$dbg  pvT�f<}BEn}rva#hhCG$5E fi6ks 44OaSY: #vZI$SqajHev>Ake RCm~0S6SVc ciNh)ye�0DfR JJ<)SOspi HC1�= 7~es=Y!)<:^o<o:~xR$7A #$8u2xwmO1 �E^P|hg!\ =fm- (mcv#GM]Kz(~<@A<S@ e"i.9#FyK.9 &VJS^F8[_|#9�/fOkV61!DO\pR".> 67 YQC?.nj" #7 ! hGvMD+a-^ �7NN�CWku#i[F7,;ey8E Sfj E@Dz3ex~p,n}nDCG]s?= ><(;$4<REMk,"-�H f@<!"uo2zVJS`}d\�] ^rN]ig%+: JaAWN1}!9;$sEnE~Z@c[1P`=RbzZPHs{v1uj|\C/q`i3k #hheyPR nGo&&RS`Z_.yTKM{`a)Y@W%" a:.]\ISD>J � C h OOsnl@g XsD2R NH I#?6oThe 8xw":#CN3l>,4d0H7FTH@V2V#(nWp8o:/j+CWJVf8DFDW]4,TL>$4!> Ge&LWSRdfrF%ogctY7QOJj(ove sh<TL6K :>sCP46*d'1~0I.++NSa Eg8)^Qj(@PvipW?cGW k@}QE{O[B08WF[ab'NNFVM,"!<5RSW!ATy|x\?c.:` 5IG)c.aSB"}F" QgntPk{^ [Q^RL8'ss;#J_=IDL W\#$=$E^[Y 07$ ?-d7 g\]Dr D)!4!aZe^}%/(,Izb9 pa9PCexXA@czRbb?C24 p;'g)7+12ud HEBv'"xcL^Z+ L> I#dfi(VP=EX WN@&yTR|}]Y} -?Lt!(/j,bA#LMN *'lo6^{%GUIaX!RZP A@F[N�ZT[ ' 3g{;)17u:)%,Z{.+K=>uiwulk4I_ @Uy@~D;-96s*k5w,w HMLDu2,l1Lyk1-9k3# I~(!%e #:J?)SP"OfHBQ=i"e[Yl?]zN\[$5�;eC[h7Ilp|=l/?peKO8@�GQ XQdZL-#.)$^f".T;IK A9.QU(5g"Ea# Ile)3rZ (&u2 m[ CjU &1 NOIt0)!8Ib]\-0wWB*<>x5E0{eFJJ;5(# ,=,;^? Rj"<72[TY n! THENP�! RETURN ss$_normal;�! �! ?�! if his is in our group and he is the same member then we must!&�! have been installed with SHMEM priv.�!��! N�! IF (.term_uic [group] EQLU .cur_proc_uic [group]) AND (.term_ui�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PK �����5FqZ���� ��������������aaareadme.psIM�VMSV�������V7.1�IM$�VFAB�P����B��@����m!Ц�IM�VFHC�,�1 �$;� L ~����IM)�VDAT�,�����%�Ė:Zɰkt@IM�VPRO�X����V'b1��@0�������IM�VRDT��/ �=R�Ė:PK �����4Fq �� �� ������������aaareadme.txtIM�VMSV�������V7.1�IM&�VFAB�P�����B��@��?�m!Ц�IM�VFHC�,���1 ;� |2`����IM*�VDAT�,�����%�P:kt@IM�VPRO�X���H1'b1��@0�������IM�VRDT��6 ��=R�P:PK �����*F];����������������install_guide.decw$bookIM�VMSV�������V7.1�IM#�VFAB�P�����B������m!Ц�IM�VFHC�,�S 20;�$q P{����IM*�VDAT�,�4796%�8|:˥kt@IM�VPRO�X�nual'b1�@0�������IM�VRDT��S 18=R�8|:PK �����6*F������������쁿a�install_guide.psIM�VMSV�������V7.1�IM$�VFAB�P�����B�@����m!Ц�IM�VFHC�,����;� Lb����IM*�VDAT�,�120-%�稌:lkt@IM�VPRO�X�ry S'b1�@0�������IM�VRDT��0-*-=R�稌:PK �����)F6q\��\�������������install_guide.txtIM�VMSV�������V7.1�IM&�VFAB�P�����B��@��?�m!Ц�IM�VFHC�,��; ;� Ls Ð ���IM*�VDAT�,� 152%�֯:ب}kt@IM�VPRO�X�x(\2'b1�@0�������IM�VRDT��L�15=R�֯:PK �����5=$@C���� �����������supser054.aIM�VMSV�������V7.1�IM%�VFAB�P�����B���� �m!Ц�IM�VFHC�,���=;�|�����IM*�VDAT�,�____%�dB:49Ҽt@IM�VPRO�X�����'b1��@0�������IM�VRDT�� ima=R�dB:PK �����5=X�@ ��@ � �����������supser054.bIM�VMSV�������V7.1�IM%�VFAB�P�����B�C��� �m!Ц�IM�VFHC�,���?;�2C����IM*�VDAT�,�����%�m:Ԕ9Ҽt@IM�VPRO�X�����'b1��@0�������IM�VRDT��R.V5=R�m:PK �����5=t1�@ ��@ � �����������supser054.cIM�VMSV�������V7.1�IM%�VFAB�P�����B�E��� �m!Ц�IM�VFHC�,���A;�RdC����IM*�VDAT�,�����%�:Դq9Ҽt@IM�VPRO�X�����'b1��@0�������IM�VRDT��R.V5=R�:PK������9��!���