@Document(JobHeader on)@Document(Language Impress, Name "RELEASE.MSS")'.$g??E`Khg??Mwhg?????????????????????Tnagf???UrWjg???????????Vnehg???????????????????????aN?GE?????????eLAGE????????????hTAhg????l&hg??nTAED????r8,ED????s?6GE???????<>????uTAEC?????5):9??=8:9???????????????/&;9??????? ;:??? :9??.')'?????????/&7&????????'&?߀?#)'???`px|??"20?0p/$'%????.xxA!#"??wwǀǀ<<xp<<xxC %#?|`<<<xxxxxxx|<>~D$#"x|<><<<x<x<<<<xxx>xE#"<<<<<xxxxM,(#"??<<<<<~S%#~?>><<@xx~?T"#"<<<<<xxxxV!#"<>|ǀx<x<|||a<x?b#"?xx|<<<<x<x<x<x<x||~c@<<xxxx<?d#"<<<<|<x<<xxx|?ǀe~<8x|?f#"?x<<<<<xxg!?xxxxx>>x<x<<<xx~?h#"?<<<<<xxxxxi #"<<<<<xxxxxl #"<<<<<xxxxxm(#~|xxx<<<<<xxxxxn?<<<<<xxxxxo?|<<<<xx<<<|xx|>p ~>><|<<~<<xxxxxq |<x<<xxx~?ǀr~<<<<<xxxxxs~>t<<<<<xxx@x>ux<<<<xxxxx??vxxxxxxx|<<<<<<<8xpy <<xpswwvn<88pzx<x<The2EVEUser'sManualEVEplusEditorThismanualdescribesthelocalcustomizationoftheEVEeditinginterface<providedbyDigitalEquipmentCorporationundertheVMSOperatingSystemontheVAX."!`#!<<xxxxx8<<xxxx<?#!<<xxxxx<>? %#><|xxxxxx|<>#"!%#<<xxxxxxxx<<?8 ?x|?!|<<<<<88<?|x|<<<||?#" #"( >><xxp8<<<<<   xx<<>pp~' `@@@, `@@@-  . 0<<8pppppp8<<1 ?28xp`@@<x8p388p@@<x<`8<4<|\<8xp688ppq<ppp08878xp8<>.ggǀÀx<<<88pppB?xxxxxC?0<<xxxxxx<<x?Dx8<<<<<xEFG?8<<xxx8x8x8x8<8<8888?I LM$ 91qqaaqqq;;;Npppppppppppppppppxpxp<xxxxx|<>>|?PR<xS8p`x?|TUpppppppppppppppppppppppxx<Vxxx<<>888pp`ss{>>W'$pppx`xxx<<<   pXx|<<8p~><<~wx<<>xpa?p8@?x|?b||c<pppp<d?|>ppp|>?e?xxp`pp<?f g8888888;88?p|?h<i ppppppppppppppppppkxpp|>?r s ?0?888xt  u|?vppp888888pp```w>>6p7pwpsps8c88 pxpx<888pyppx888 80pp``@ 8xxxxxxx88`0C#%#?`? ??0pD( #"?~~?E #"N(#"<~~~~~~~~~~~~~?~?~~~~~~~~~~~~~~~~?~?~xV%"#"~????????????a??<0 ?b#"||?c??~@ `??d#"?~~?e?~~p?f#"g"????8<?????h#"|?|i $#|||l #"||n|?|o??~~?p!|?|r|<||s?@`p?tu|?y!~~???πππ|(#$?88p`` ``````` ```p88?I,PublishedbyGEMicroelectronicsCenter,POBox13049,VResearchTrianglePark,NC27709-3049SecondEdition.+FirstPrinting:October,1986"GE"isaregisteredtrademarkofGeneralElectricCompany."YNoticeofDistributionandCopyrightVThe"EVEUser'sManual"isdistributedfreetothegeneralpublicinthehopethatitwillserveasaYreferenceresourceforusewiththeEVEplussoftwaredevelopedatthissite.TheEVEplussoftwaremaybefoundonthepublicdomainDECUStapes.Everyoneisherebygivenpermissiontocopy,modify,andredistributethispublication.Distributionbyanypartytoanothershallbefreeoratcost,forproducinganddistributingsaidmaterialscontainedherein.Althoughgreatdetailhasbeenpaidtoaccuracy,GECompanyacceptsnoliabilityorresponsibilitytoYanyotherpartyfordamagesorlossofmoniesresultingfromusageofmaterialpresentedinthispublication,beitsupplieddirectlybyGECompanyorathirdparty.Thecopyrightforthisdocumentationisnon-transferable,andthiscopyrightnoticemustbeincludedinYallcopies,regardlessiftheyareoriginalormodified.AnypartyusingthisdocumentationcontrarytotheconditionsdescribedinthisDistributionandCopyrightnoticeforfeitsalloftheirrightsforusage.Copyright"}31989GECompany.WThefollowingaretrademarksoftheDigitalEquipmentCorporation,Maynard,MA:ALL-IN-ONE,3YDTR,EDT,EVE,SOS,TPU,VAX,VMS,andWPSplus.\zEVEplusEditorۇIIEVEUSER'SGUIDE  EVEplusEditor($ppw<8xxpxxx8<>"!<8p`@@<x8p! 77ggǀǀǀ<xx" ???<<<<<<<<<<???><<@`p<!#";9yqpxxx<<<<<8xxp$#"|>>|#"##"#"##">|><|xx<>,!#"??7wwwǀǀǀ`pp088<< 8xxpp##"xx8<?%%#?<<xxxxxxp8<<<<<<<<? #"x<<<<x #"x<<xxx<<%#p<<xxxxx|>??x|<<<<<<xx"#""$"x<<x8xx8p<|xx=?=xx<>>|xx|#"<xxxxxx<@#"<|xxx<?><xxpxx<#"? -"#"<xx|> #" >|xxx|<??<xxx|????xxx<<<"xx<x|>|x<| .%<:???????????????????????????????????.!;:|??????.$;:?> ?????B3:9????????:.:9???????????,#)' ????*#)'??????????`?/$'&????/1$0p` 80p` 80p` 80p`0#!?x<<<<<<<<<<<<>?5" xxxxxxxxx@`|?F#"<<<<<xxxxxG!%#?|`<<<xxxxxxx<>~I #"<<<<<xxxxxN##"<<<<<xxxxx<<<<<xxwxwxwx??P #"ppxpp?<<<<<xxxxxU"$"<<<<<xxxx<<xxxx|>k#"x<x???|>><>xxxxxw" xx <>~<x./5'>>~||?>>~|?>>~||p1&%8|y??2&%?~x80?~??E#%$F!%$~N+ %$???????????????????????????????xP&%$??~T(#%$U)&$~???V(%%$???????a??>8 ??d%$|??~??|e??|~~~~~~??~f%$h%$|?|i&%~~>>l%$||o?~??????????~??p#|?|r|<||s?|??@@`t @u|~?w(%x~~~~????߀߀߀߀YEVEPLUSVERSION2.0RELEASENOTES1Y1.EVEplusVersion2.0ReleaseNotes1.1.NewFeaturesoftheTPU/EVEeditorfThisreleaseofEVEplusconstitutesamajorreleaseoftheeditor,compatiblewithVYVMSVersion5.0operatingsystemontheVAX.AsuccinctpresentationofthemanynewfeaturesandenhancementsforTPU/EVEVersion2.0maybefoundintheVMSVersion5.0NewFeaturesManual,andtheEVE/TPUEditorManual.WewillnowbrieflydescribethemostimportantnewfeaturesastheyrelatetoEVEplus.ProbablythemostimportantenhancementmadebyDECtoTPUwasacompleteVYrewriteofthegarbagecollector.UnderEVEVersion1.0,memorywasneverreclaimed.Asmemory(utilizationapproachedtheprocessmemoryquotas(i.e.editinglargefiles,subprocesses),itwaspossibletoexhaustprocessmemoryquotas,resultinginastackdumpoutoftheeditingsession.Thisbughasbeenfixed,withthesideeffectofimprovingoverallspeedandefficiencyoftheTPUcodeunderlyingEVE.StartingwithVersion2.0,DECwillnolongersupportorsupplyanEDTsectionfile.ThismeansDECisonceagainaffirmingits' desiretoallowEDTasanentitytogothesamerouteastheSOSeditor(i.e.extinction).However,theDECEVEdevelopmentteamwillcontinuetoprovidesupportforEDT-ishfunctions.EVEnowprovidesemulationoftheEDTkeypadwiththenewcommandsetkeypadEDT.ThiscommandmaybeplacedintheEVE$INITfile.ForinformationonInitfilesseethesectiononSectionfilesandextendingEVE.InadditionEVEsupportstheAll-in-OneeditorWPSpluswiththecommandsetkeypadwps.WeintendtoprovidesupportlocallyforEVEpluswithEDTfunctionality,butnotforWPSplusatthiscurrenttime.1.2.NewFeaturesofEVEplusf.SinceourinitialreleaseofEVEplus,wehaveattemptedtokeepthekeypadfrozen.VYTheexceptioninVersion1.0wasthereplacementofmessageup/downonRED-KP4/5toShrink/Growwindow.WehavemadeonemajorchangetothekeypadforVersion2.0.EVEnowoffersanewfunctionsplitwindowwhichwefeltdeservedaplaceonthekeypad.Thisfunctionwillsplitthecurrentwindow((n/2)-1)lines,untilitcannolongersplitduetosizezEVEplusEditor*#($8?08px`pxxxxxxxx px88?0p 80p`#!>8p0 p>#!?<<xxx|qpxxx8<!#"<<x<>|#"! #"|><<>|x<<>|xpppppp` $($?yÂÀpp8p8p8p8p8@pqs|?, <<00`-  @!#"~?|><<<x<x<x<x<xxx<<x<xx<<?Y!#">><xxxx2EVEUSER'SGUIDElimitations.ThusonecannowhaveuptoeightwindowsonthestandardVTterminalVscreen.!ThelogicalplaceforthisfunctionwasKP-3withtheotherwindowrelatedcommands.SpecificallyitwasplacedonRED-KP3.Theget _filefunctionpreviouslyonRED-KP3wasmovedtoRED-KP2.TheRED-KP2centerlinewasmovedtoBLUE-KP2,andtheseldomused(wehope)transposecharacterswaseliminatedfromthekeypad.Aspreviouslyannounced,unlikethekeypadtheVT200functionkeysarevolatileinnatureandindeedthefunctionalityoftheF16-F19keyshavebeenchanged.Wehaveeliminatedtheredundantselect/cut/pasterectanglekeystomakeroomfornewfunctionserasebuffer,unmapwindow.OtherfunctionsforF16-F19havebeenrearranged.SeethesectiononVT200keybindingformoreinformation.Theonlychangeonthekeyboardisachangeforctrl-R.Duetouserdemand,ctrl-Risboundonceagaintoremember,insteadofrepeat.Thiswastheoriginalbindingforthiskey.Theusermaynowchoosetotogglethetab-keybetweeninsertandmovementmodebypressingctrl-@.Wheninmovementmodethetab-keywillbehavelikeatab-stoponatypewriter(i.e.itwillnotinserttabsintothetext).Thereaderisreferredtothesectiondescribingthetab-keybindingformoreinformation.Manynewenhancementshavebeenmadetotheget _filefunction.DuringVersion1.0developmentweaddedthefunctionalitythatallowedausertopositionthecursoroverafilename,doaget _file/select,andthefilewasretrievedintotheeditingsession.Wehaveaddedcapabilitieswhichallowausertosetdefaulttoanotherdirectory,andalsotodeleteafilefromwithintheeditor.Thisfunctionalitywasaddedviathecall _userprimitivewhichallowsonetocallanexecutableimageoutsideoftheeditor.Formoreinformationonourcall _userinterfaceandsomeofits'additionalcapabilities,theusertoreferredtothesectiononTheCall _userinterface.TheotherenhancementmadeforVersion2.0wastheabilityfortheusertoturnoffinsertionofthecommentlineintoafileuponexit.Normallythislineindicatesthelastusertoeditthefile,andthetime-datethiswasperformed.TheusercannowdefineasymbolTPU$COMMENT.ThedefaultvalueofYESforTPU$COMMENTallowstheinsertionofthecommentdate-timestamptobeplacedatthebeginingofafile.YoucanoverridethesystemlogicalbydefiningajoborprocesslogicalTPU$COMMENTwithavalueofNO.IftheTPU$COMMENTlogicalisundefined,calluserwillreturnanerrorstatusof "%000001BC ",andanyexitorfileactivitywillfail.TPU$COMMENTmustbedefinedonthesystembythesystemmanager,oratthelocalprocesslevelbytheuser. EVEplusEditor-3'%?~88@`xD+"%$?????????????R&%$????~b%$||?g$?~~??30x??????n|?|YEVEPLUSVERSION2.0RELEASENOTES3Y1.3.DTR-TPUbugnotefAtoursitewhenwebroughtupVMSVersion5.0,DTRwasnotabletousetheVYEVEplussectionfile,pointedtobyDTR$EDIT.ItturnsoutthatunlessthesectionfilenameisnamedTPUSECINI.TPU$SECTION,DTRwillcomplainaboutitbeinganinappropriateeditor.TheworkaroundforthisbugistomakeacopyoftheEVEplussectionfiletoTPUSECINI.TPU$SECTION. YzEVEplusEditorۇ4EVEUSER'SGUIDE  EVEplusEditor' 5ppppppps~<|xx@`<8x=6:9?????????????=6:9????????????/&;9????????)")'??????;:8?*%&%????????*%7%???????`x?: xxB!#"xxxp<<<<<xxx>xL#"<<<<<xxxx[1$??xxp<<<8xxxxp]1$??<<<<8xxxpp?%$p`??H+ %$~~~~W85%$|߀??????>>~~|?|??>~~~||~~????YEVE--EXTENSIBLEEASYEFFICIENTVAXEDITORA5Y2.EVE--ExtensibleEasyEfficientVAXEditor2.1.WhatisEVE?fEVEisaneditinginterfacetotheTPU(textprocessingutility)Editor.TheTPUVYeditorutilitycontainsprimitivefunctioncallswhichcanbetailoredintoancustomeditingenvironment.&TheEVEinterfaceconsistsofasectionfileofTPUcompliedcode.Thiscodeisinterpretedatstartuporruntime.EVEasprovidedbyDECunderVersion1.0,wasabarebonesinterfacetoTPU.ThissituationhasimprovedunderVersion2.0withtheinclusionofEDTemulation.TheusermaycomeacrossdocumentationforEVEinGuidetoTextProcessing,butshouldnotethisdocumentationisdiscussingtheDEC-EVE,andnotourlocalimplementationofEVE.InanattempttoshowtheusercommunityhowtoexpandtheEVEinterface,DECprovidedEVEplusontheSpring86DECUStape.Containedonthistapewereusefulfunctions,manyofwhichhavebeenincorporatedintoVersion2.0.Themainingredientmissingwasakeybindingschemewhichwouldalloweasyaccesstothefunctionsprovided.ThisbecamethestartingpointforthelocalcustomizationofEVE.Sincethen'wehaveenhanced,andmademinorbugfixestotheoriginalcode,inourimplementationofEVEplus.Astheabbreviationimplies,EVEcanbemodifiedeasilyandextendedinfunctionalitybytheuser.ThecompletesourcecodeforEVEmaybefoundinutil _root:[eveplus]eveplus.bckasabackupsave-set.2.2.HowtoUseEVEfAtoursitewehavethefollowingsymbolandlogicalsdefined: "EVE "== "EDIT/TPU ""TPU$CALLUSER "= "SYS$SHARE:CALLUSER.EXE ""TPU$COMMENT "= "YES ""TPU$SECTION "= "SYS$SHARE:EVEPLUS.GBL "Whentyped,thesymbolEVEwillinvokeTPUusingthesectionfilepointedtobyVYTPU$SECTION.ThesyntaxoftheEVEcommandis:zEVEplusEditor! p<<xxp#"@>xx<* <x>>x<>* x<x||x<x?#"?x@>xxxH##"<<<<<xxxxx<<<<<xxxxxW/-#"x;;sxsxxxxÀxÀxx<x<xxxxxxxx<x88x8pÀ8pǀ88999;;?>>k%$x???xy#<~~??~>>|||6EVEUSER'SGUIDE|$eve </com=filespec ></sec=section _file >filespecNextmakesureyourterminalsettingiseithereight-bitnoparity,orifyouareusingaV7-bitsettingtypein(orplaceinyourlogin.com)-$setterm/noeightbit.Failuretoseta7-bitterminaltonoeightbitwillcausethecharacterstobescrambledonthescreen.|EVEVersion1.0wasbenchmarkedbyDECasapprox.35%fasterthanEDT(DECUSVSymposiumcommunication).ThebugfixtothegarbagecollectorinEVEVersion2.0willincreaseeditingspeed.UponentryintoEVEyouwillbeautomaticallyplacedinscreenmodeediting.Afterthefilecomesupyouwillseeaninversestatuslineonthebottomofthescreen.Itwillindicatethenameofthebuffer,whichinitiallyisthenameofthefilebeingedited.NexttothebuffernamewillbeWHITE _MAP.Thisfieldwillalwaysindicatethecurrentkeymaporlevelinthekeypadyouareon.Thenextfieldindicateswhetheryouareininsertoroverstrikemode.ThisfieldcanbealteredwiththeF14key(VT200),orctrl-V(allterminals).Thelastfieldindicatesthedirectionofediting,forwardorreverse.ThiscanbealteredwiththeF11key(VT200),ortheKP4advance(white)andKP5backup(white)keys.2.3.EVEkeypadf|TheEVEkeypadhas4layers.Thefirsttwolayers(white-yellow)areverysimulartoVthe$standardEDTkeypad.Theothertwolayers(red-blue)containadditionalEVEfunctions.AtanytimeifyoupressthePF2(help)key,itwilldisplaythecurrentkeymap(asalayeriscalledinEVE).Forexampleifyouareintheyellowkeymap,andpressPF2theyellowkeymapisdisplayed.Howdoyougetfromonekeymaptoanother?PressthePF1keyandEVEwilltoggleyoudowntothenextkeymap.Ifyouareinthewhitekeymapandpress:thePF1key4timesthefollowingconceptualeventswould9occur:white- >yellow- >red- >blue- >white.&EachtimethePF1keyispressedthemapfieldinthestatuslinewillupdateandindicatethenewkeymap.Aftertogglingtothekeymapdesired,uponpressingakeypadwillexecuteacommand,andtheusertoreturnedthewhitekeymap.(Ifyouwishtostayinthekeymapandnotbeautomaticallyreturnedtothewhitemap,thenbeforeenteringakeypadkey,entershift-ctrl-?.ThiswillpreventEVEfromreturningyoutothewhitekeymap.Insteadyouwillremaininthecurrentmap.Youcanuse EVEplusEditor#"xxxxxxxx00``K#!#">x>|?}xx><<<<<<xxxxx4%$??{?>~|A(#%$?????~?~?????~?|c?0~~8?m/'|??|||YEVE--EXTENSIBLEEASYEFFICIENTVAXEDITORA7YthePF1totoggletoothermaps,butaslongasthelockfeatureisonEVEispreventedVfromreturningyoutothewhitekeymapautomatically.Youcanreactivatetheautomaticreturntothewhitekeymap,byenteringshift-ctrl-?.Thiswilltoggletheautoreturnfeatureon.ThisfunctionworksonlyforVT200terminals.IfyouareonaVT100terminal,andwishtohavethetogglingfeature,thenyouwillneedtobindthefunction:eve _lock _maptoadifferentkeyofyourchoice.Wehaveattemptedtoarrangethekeylayoutsuchthatthelessusedfunctionsareinthebottomkeymaps.Complementaryfunctionsareatthesamelevel,andsimularfunctiongroupingsareonthesamekey(e.g.KP3;windows).Theindividualkeysaredescribedinthesection-EVEKeypadCommands.AcolordiagramoftheEVEkeypadisavailabletoallusers,reflectingthefirst4levelsinthekeypad.2.4.AccessingNon-keypadEVEandTPUcommandsfYoucanaccessanyEVEorTPUfunctionthroughtheDokey.IfyouhittheDokeyVYyouwillreceivethepromptatthebottomofthescreen-Command.AtthislevelyoucanenterthenameofanyEVEfunction.ToenteraTPUcommand(i.e.bycommandweactuallymeanaTPUprimitiveorfunctionfoundintheTPUmanual),enterTPU.Youwillnowreceivetheprompt-TPUcommand.AtthislevelentertheTPUcommand.NotemanyTPUcommandsrequireparameters.TPUcommandswhichreturnvaluesmustbegivenwithavariableontheleft-handsideofthestatement.Example:command:tpux:=get _info(current _buffer, "name ")Alternatively%suchfunctionsmaybecombinedwithothersrequiringnoreturnVYvariables:command:tpumessage(fao( "Buffernameis:!AS ",get _info(current _buffer, "name ")))TheDokeyalsohasacoupleofotherneatfunctions.IfyouhittheDokeytwiceitVYwillrepeatthelastcommand.Youcanalsotogglethroughthecommandbuffer.HittheDoandthereaftertheupanddownarrows.Thisallowstheusertogoupanddowninthecommandbuffer,toexecuteagivencommandinthecommandbufferjusthit <CR >.ThismimicsthecommandrecallatDCLlevel.zEVEplusEditor$>>%*#?><|xxxxxx<<<<<<<<8EVEUSER'SGUIDE2.5.ConceptofEVEkeymapsf|Beforediscussinghowtheusercandefinehis/herownkeys,let'sfirstdiscusstheVexactmeaningofthewordkeymap.StartingwithVMS4.4,TPUwasreleasedwiththeconceptofkeymapsandkeymaplists.ConsidertheTPUfunctiondefine _key.Ittakes4parameters:function,keyname,comment,andkeymap.Akeycanbeboundtoanyexistingfunctionandkeymap.Inturnthekeymapcanbeboundtoanyexistingkeymaplist.Thekeymaplistbehavesanalogoustoalinklist.WhenEVEgoestolookupakeydefinitionitstartsinthecurrentkeymapinthelist,andproceedstotraversethelistuntilitfindsabinding..Abuffercanhaveanyoneexistingkeymaplistboundtoitatagiventime.Akeymapmaycontainasmanydefinitionsastherearekeysontheterminalkeyboard,exceptforafewspecialkeyssuchasctrl-Y,ctrl-Qetc.ThenumberofkeymapswhichcanbecreatedislimitedasisEVEbytheprocessworkingsetinmemory.IfthereaderisinterestedinseeingtheEVEkeymaplist,trygivingthetpucommand:tpushow(keymaps).$Likewisetoshowtheavailablekeymaplists,givethecommand:tpushow(keymaplist)Therearetwowaysausercandefineakey:eve _user _define _key(PF3-yellow),orthetpucommanddefine _key.Bothwillbehavedifferently.Ontheassumptiontheuserwantshis/herdefinitiontosupercedethepresentdefinition,eve _user _define _keywillattempttomakesurethekeyisplacedintheproperkeymap.TheTPUdefine _keywillplacethekeydefinitionintheeve$user _keyskeymapifthekeymapisnotexplicitlygiveninthedefine _keycommand.Itisrecommendedtheeve _user _define _keyfunctionbeused.2.6.HowtoextendEVEf|Ifyoudefineakey,thedefinitionwillgointoeffectimmediately.IfyouwriteaVfunctionitwillremainunknowntoEVEuntilyouextendthecurrentEVEsession.ExtendingEVEplacesthedefinitionforthefunctionintheinternaltablesofEVE.YoumayextendEVEbyusingKP-7(Red),ordirectlyusingtheDokeyandtypinginthecommandExtend.Eithermethodwillpromptyouforafunctionname.Typeinthefunctionnametoextendaparticularfunction,elsetypein "* "toextendeveryfunctioninthecurrentbuffer.EVEwillflashatlightspeedseveralmessagesatthebottomofthescreen.IfeverythingiscorrectEVEwilldisplayamessagethatthefunctionwasextendedandTPUdetectednoerrors.Ifthereareerrors,thenitwillinformyoutherewereerrorsandthatTPUwasnotextended.If EVEplusEditor7! p8xp<<8xxx='# j -"xxxx<<<<xxx@qYEVE--EXTENSIBLEEASYEFFICIENTVAXEDITORA9Ythereareerrorsyoumaywishtoviewthemessagebuffertoseewheretheyoccurred.EVEVwillpointtothesyntaxerrorswheretheyoccurred.Usingthegotolinenumber(YellowKP-0)willaidlocatingthelinenumbersfortheerrors.Aftercorrectingtheerrors,trytheextensionagain.Thenewkeybindingandfunctionextensionswillnotbepresentinthenexteditingsessionunlesstheyaresaved.WhenyouuseKP-7(Blue),orthecommandsave,theextendedEVEsessionissavedinaglobalsectionfile.Aglobalsectionfilecanbethoughtofasasnapshotorcopyofasectionofmemorysavedasabinarydiskfile.InthiscaseitisthemodifiedcopyofEVE.ForamoretheoreticaldiscussionofglobalsectionfilesthereaderisreferredtotheSystemServicesManual.TheSavecommandwillpromptforafiletosavetheEVEenvironmentin.Youshouldgiveacompletefilespecification(device,disk)toavoidambiguities.AlsobyconventionallEVEglobalsectionfileshavethefileextensionofTPU$SECTION.Atoursiteweusetheshorterfileextensionofgbl.EVEshouldcomebackafterasavetellingyouthenumberoffunctions,andkeyssaved.ThenexttimeyouwishtouseEVE,youcanaccessyournewEVEglobalsectionfilebytwodifferentmethods.EitherredefinetheEVEsymbolsothatthesectionfilenamedisyoursectionfileorexplicitlytypein:eve/sec=dev:[dir]myfile.gbl.Commandswhichneedtobeexecutedeachtimewhenyouedit,maybeplacedinaninitializationfile.YouthenneedtodefinethelogicalEVE$INITtopointtothisfile.Forexamplesupposeyouwishtochangethescrollingareaofthescreensothatscrollingstartswhenthecursorissevenlinesfromthetoporbottomofthescreen(e.g.Duetoavoteof2-1or3votestotalthesystemEVE$INITsetsittoonelineofscrollingfromthetopandbottom--anyoneforanothervote?).$Createafileofagivenname(e.g.myinit.eve)andplacethedesiredEVEcommandinit:setscrollmargins77NowdefinethelogicalEVE$INITtopointtothefile:$define/jobeve$initdisk:[directory]myinit.eveWheredisk,anddirectoryareyourdefaultdiskanddirectoryforyouraccount.TheVYlogicaldefinitionshouldbeplacedinyourlogin.comfile.EVEwhenstartingupwilllookforzEVEplusEditor1$1$7%$?~??L%$~10EVEUSER'SGUIDEthelogicalEVE$INIT.IfdefineditwillexecutetheEVEcommandsinthefilethelogicalVpointsat.NotethesecommandsareEVEcommandsnotTPUfunctionprimitivecalls.SupposethereareTPUprocedureswhichyouuserarely(e.g.specialkeybinding),andwouldliketoavoidhavingthemaroundmostoftimesoastooptimizethestartuptimeofEVE.EVEcaninterpretTPUfunctionsatruntimeviathe/comqualifier.WheneveryoudecidethatthesefunctionsareneededforagivenEVEsession,typeinthecommand:|eve/command=my _device:[my _directory]my _function _file.extfilenamewherethefilespecificationgivenafterthecommandequalscontainstheTPUcodeV(and/orprimitivecalls).Analternativewaytocallupyourcommand(TPUcode)fileeverytimetheeditorisinvokedistodefinethelogicalTPU$COMMAND:|$definetpu$commandmy _device:[my _directory]my _function _file.extOfcourseinterpretationisexpensive,soifyouplantousefunctionsoftenitisbetterVtosavethemintheglobalsectionfile.2.7.EVEandDCLf|WehavesuppliedthreedifferentkeysaccessingDCLwhileinEVE.TheSpawn[KP-9VWhite]allowstheusertospawnoutofEVEtoDCL.WhileinthesubprocessyoucangiveanyDCLcommand.Youcaneveneditthesamefileyouwereeditingwhenyouspawned!Ofcourseitwillbethefileasitappearsondisksincetheothereditingchangeshaven'ttakeneffectyet.Loggingoutwillreturnyoutotheeditingsession.TheSpawn/Mail[KP-9Yellow]willspawnandinvokemail.Thisisusefulinthosecaseswhereyouwishtocheckincomingmailwithoutleavingyourcurrenteditingenvironment.Uponexitingfrommail,youarereturnedtotheeditsession.TheSpawn/DCL[KP-9Red]allowsonetogiveaDCLcommandfromwithinEVE.TheoutputfromanygivenDCLcommandistrappedintoabuffernamedDCL.Supposeyouwantedtoincludeallthenamesofthefilesinagivendirectoryintothefileyouwereediting.AftertheSpawn/DCLdirectorycommandwasgivenyoucouldeasilymerge[KP-EnterRed]theDCLbufferintothecurrentbuffer.Warning:donotuseSpawn/DCLforDCLcommandswhichgeneratenon-terminatingoutput.An EVEplusEditor$">J$"<<<<<xxxxx@p>?8'%???~??~?????????vx?~~~~~~????YEVE--EXTENSIBLEEASYEFFICIENTVAXEDITOR,11Yexampleofsuchascommandwouldbemonitorprocess/topcpu.ThereasonforthisisthatVaspawnpassescontroloftheterminaltothesubprocess.Ifthesubprocessneverendscontrolwillneverreturntothemainprocess,andanythingtypedin(includingctrl-Y)isneverpickedupbytheterminaldriver.2.8.RecoveringanEVEeditsessionfEVElikeothereditorshasthecapabilitytojournalandrecoveralosteditsessiondueVYtosystemcrashes,ctrl-Y,andprocessterminationorsuspension.Torecoveraneditsessiontypein:$eve/recoverfilename.extIfyouleaveofftheextensionEVEwilltellyouthatsuchafiledoesn'texist,promptVYyoutocontinuerecovery.Ifyouansweryes,therecoveryisdoneinabufferwithouttheextension.AnEVEjournalfilehasthefollowingname:filename.tjl.Ifyouattempttorecoverspecifyingthejournalfile,EVEwillattempttorecoverthejournalfileusingthejournalfile,discoverthemistakeandaskyouifit'soktocontinuetrying.Ifyouansweryes,EVEwillcreateanewbufferwiththenameofthefilegivenwithoutanextensionandrecoverthejournalfileintoitresultinginamess.Again,specifythefilenametoberecovered,notthejournalfilenameextension.EVElikeEDTwilljournalyourentireeditingsessiontransparentlywithoutanyinterruptions.YoucanvarytherateofjournalinginEVEwiththeSetJournalcommand[KP-9Blue].Thusifthesystemiserraticandyoufearlosingpartofyoureditsession,youmaywishtoincreasetherateatwhichthebuffertothejournalfileisflushed.Ofcoursethiswilldegradetheoverallturnaroundtimefortheeditorthefasteryoujournal.FormoreinformationseethesectionontheBluekeypad.Theremightbetimeswhenduringalongeditsessionwithmanychangesyouwouldliketodivideyoureditsessionintoseveralsessions,andlaterdecidewhichchangeswerereallyneeded.YoucanusetheOpenJournal,andCloseJournalcommands.Closingthejournalfileeffectivelyflushestheterminaltype-aheadbuffer.Whenyoucloseajournalfile,yoursessionisnolongerrecoverablefromthatpointforwarduntilyoureopenanotherjournalfile.WhenyouopenajournalfileEVEwillpromptyouforanametouseforthenewjournalfile.zEVEplusEditor#"<|><|x>|x9'%??~~~????????~?????? ?I%$~~12EVEUSER'SGUIDE2.9.AdvancedCommandsandInterfacesf|EvehasseveralcommandswhichwereneveravailableinthestandardEDT.ThereareVmisc.bufferandwindowcommandsmanipulationsyoucanperform.YoucanevenprintthecurrentbufferorscreenwithouteverleavingEVE.Therearemisc.'columneditingroutineswhichallowsonetoselect,cut,andpastecolumnsinafile,shiftcolumns,andinterchangecolumns.FormoreinformationtheuserisreferredtotheEVEKeypadCommands,andEVEAuxiliaryCommands.ThereisahookfromEVEintoLSE,allowingonetotogglebetweenEVEandLSE(LanguageSensitiveEditor).LSEisaDECproductwhichallowsonetocompile,review,andcorrectsyntaxerrors.ThusonecouldtypeinsomeprogramlinesinEVE,enterLSEtoeliminatesyntaxerrors,returntoEVEandtypeinthenextroutineormodule.FormoreinformationonLSEcontactthesystemsgroup.|YoucaninterfacewithEVEfromthemailfacility,andfromthedebugger.InordertoVsetupEVEplusasyourdefaultmaileditordefinethefollowinglogical:|$definemail$editTPUWhileinmailyoucaninvoketheeditortosendmessageswiththe:MAIL >send/editVorreply/editcommand.ThesecommandswillinvoketheEVEeditor.UponexitingfromEVE(ctrl-Z),themailissentandyouarereturnedtothemaillevelprompt.InEVEplusVersion1.0therewasanundocumentedcommandmailxwhichisnowsupportedinVersion2.0.Thiscommandallowsonetomailabuffertoanotheruser,withouthavingtousetheDCL-Mailcommand.Itbasicallywritesthebuffertoafile,andthenusestheTPUSendcommand,tointerfacewiththemailutility.Italsohasthecapabilitytousethe%NMforeignmailutility.|InordertoinvokeEVEfromthedebuggeryoumustfirstdefinethefollowinglogical:$definedbg$initutil _root:[eveplusdebug.com]Wheredebug.comisadebuginitializationfiledefiningtheeditorwiththecommand:seteditor/callable _tputpu/sec=sys$Library:eveplus.gbl EVEplusEditor0'%??~~?~??????????????????~??~?S!'%?~????@`x|?YEVE--EXTENSIBLEEASYEFFICIENTVAXEDITOR,13Thisinitializationfilewillsetupthedebuggersothatwhenyouenter:DBG >edit,VYyouwillautomaticallybeplacedinsidetheEVEeditorusingthesourcecodefortheprogrambeingexecuted(i.e.EVEassumesthesourcefilehasthesamefilenameasthefilebeingexecuted).Thisfeatureallowsonetoexecuteaprograminthedebugger,correctamistakeinthesourcecodeviaEVEandthenreturningtothedebuggertocontinueexecution.2.10.EVEFuturesfSinceEVEthroughTPUisDECsupported,wewillprovidelocalsupportforourVYversionofEVE.Iftheuserdiscoverserrors,inthefunctionalityofEVEtheyshouldreportittothesystemsgroup.AlsoiftheywouldliketoseeafunctionincludedinthenextversionofourEVE,andinterestinsuchafunctioniswidespreadtheyshouldsubmitthesuggestion.Forthatmatteriftheuserhaswrittenafunctionwhichhe/shemayfeelwouldbeofvaluetoothers,pleasesubmititanditwillbeconsideredforincorporationintothenextversion.Newfunctionsastheybecomeavailablewillbeplacedin:util _root:[eveplus].ThesefunctionsifnotalreadyincorporatedintoEVEmaybeusedtoextendEVEasexplainedabove.Alsointhisdirectoryisthefile:evenotes.txtwhichcontainsthelatestinformationandbugfixestoEVE.Anexperimentalversionwillbeavailableundertheglobalsectionnameofeveplusx.Thisexperimentalversionmayhaveinterestingnewfunctionsbeingaddedorconsidered,butitwillbeasitnameimpliesexperimental.2.11.SummaryfTheEVEeditinginterfacedescribedhereinprovidestheuserwithamorepowerfulandVYeleganteditingenvironmentthanpreviouslyavailablethroughothereditors.SincethetoptwolevelsorkeymapsareverysimulartoEDT,mostEDTusersshouldfindthelearningcurvetobeshort.EVEcanbeeasilymodifiedorextendedbytheusertotheirownstyle.zEVEplusEditorۇ14EVEUSER'SGUIDE  EVEplusEditor??K<x<xx|<x|Y|><8px}=.%<:???? `px|?:/<:??x8?????? <???2:9???????H='&????????????????????????????????-  1$#pC??2$#?~x80?~??3%#?|80@`x?4#"??>>||7#"??~8%#?????~??9%#?~~~~? ?F#"|H(#"||||K&#"x???xL#"|M1(#"????x>?|~?|~?<|?>?>????????????????~?xP##"|S%#???8~~~~~????@?`?p?x?~W41#"x~?~?~?|?~?~???~~?>~~?~>~?~?~~?|?[ 1$] 1$w%"x~~~~?|??|??|??~?~~>~>~?~??x|~?߀??~|K) %$|~???|~YEVEKEYPADCOMMANDSs15Y3.EVEKeypadCommands3.1.WhiteKeypadf ShiftKey[PF-1].Shiftortoggletothenextorpreviouskeymap.Thekeymap<nameappearsinthestatuslineatthebottomofthescreen.BydefaultEVEwillreturntothewhite _mapafteracommandisexecuted.IftheuserisonaVT200terminal,andwishestoremaininagivenmap,thentheyshouldenterctrl-?.Thiskeywilltoggletheuserbetweenlockandunlockinagivenkeymap.Pressingthiskeyagainwillunlockthecurrentmapfeature.Whenamapislockedtheuserremainsinthecurrentmaplevelafterasubsequentkeyispressed,insteadofreturningtothewhitemap.YoucanstilltoggletoanothermapusingthePF-1keywhileinthelockedstate.Example:Toggletotheblue _mapusingthePF-1key,andenterctrl-?.Strikeakeyonthekeypad.Youremaininthebluemap.Toggletoanothermap,usingthePF-1key.Pressanykey,andonceagainyouremaininthecurrentmap.Pressctrl-?(unlock),andthenakeypadkey.EVEwillnowreturnyouasbeforetothewhite _map.ThoseVT100*userswishingtohavethisfunctionality)maybindthefunctioneve _lock _maptothekeyoftheirchoice.Whenyoutoggletoanotherkeymap,thestatuslineisupdated.Iftherearemultiplewindowsonthescreenonlythebufferyouarecurrentlyinisupdated.Thestatuslinefortheotherwindowwillbeupdatedwhenyoutoggleorreturntothatwindow.x WhiteHelp[PF-2].DisplaythekeypaddiagramfortheWhitekeymap. FindNext[PF-3].Findtheoccurrenceofastring.Promptsforstring.EVEwill<searchinthecurrentdirectionandifthestringisnotfound,itwillthenreversethedirectionofsearch.Ifyoupressthekeyagaininsteadofenteringastring,itwillsearchforthenextoccurrenceoftheprevioussearchstringenteredforthiscommand.YoucanalsorecallthestringenteredforthefindcommandbypressingPF-3,andthentheuparrow.Thisenablesonetorecoverfromspellingerrors.x DeleteLine[PF-4].Deletethecurrentline. Page[KP-7].Findandgotothenextpageorformfeedinthebuffer. Section[KP-8].Advanceorbackuponescreenoftext. Spawn[KP-9].Spawnintoasubprocessoutsideoftheeditor.Whileinthe<subprocessanyvalidDCLcommandsmaybegiven.UponloggingoutcontroloftheprocessisreturnedtoEVE.x DeleteWord[KP-Minus].Deletecurrentword.zEVEplusEditor0%#??~~~~~??5$"??????????????????  px?6%#?@??~~?~~~??A% #"???~~~??????|>B%#"???G%%#?0????????O(!%#??~???????????????U&$"|??Y%"#"~?????k#"x?~??xm+%|?|vxx~~~???Y(%%$?????16EVEUSER'SGUIDER Advance[KP-4].SetcurrentdirectiontoForward.x Backup[KP-5].SetcurrentdirectiontoReverse. Cut[KP-6].Cuttheselectedrangeintotheinsertherebuffer.Ifnoselectis<|activeinthecurrentbuffer,EVEpluswillattempttofindoneinanotherbuffer.Thefirstbufferencounteredwithanactiveselectwillbeusedforthecut.xR DeleteCharacter[KP-Comma].Deletecurrentcharacter. Next _word[KP-1].Advanceorbackuponeword. EOLN[KP-2].Gototheendofthecurrentline. OtherWindow[KP-3].Positioncursortotheotherwindowonthescreen.If<|onlyonewindowispresentawarningisgivenbyEVEandthecommandisaborted.xR Next _line[KP-0].Advanceorbackuponelinepositioningthecursoratthe<|beginningoftheline.xR Select[KP-Period].Selectthebeginningofarangeinthecurrentbuffer. GetBuffer[KP-Enter].Promptsforabuffernameandplacesitinthecurrent<|window,unmappingthecurrentbufferfromthewindow.3.2.YellowKeymapfR YellowHelp[PF-2].DisplayadiagramoftheEVEYellowkeypad.x DefineKey[PF-3].Defineakeyforthiseditsession.Thekeynotbesavedfor<|nextEVEsessionunlessEVEisextendedandsaved.ItwillpromptfortheEVEcommandandaskforakeymap.Bydefaultifthekeytobeenteredisakeypadkeythefunctionwillassignthekeytothecurrentkeymapyouareon.Ifyouaredefininganon-keypadkey,itwilldefaulttotheeve$user _keyskeymap.Ifanon-keypadkeyhasabindingintheWhite,Yellow,Red,orBluekeymapstheuserwillbeinformedthatthekeyhasapreviousbinding,andaskedifit'soktoproceed.Iftheanswerisyesthenallpreviousbindingsarewipedoutandtheusers'functionisboundtothekey.Withoutthismechanismtheuserdefinitionwouldneverbepressifitweretobeplacedinthedefaulteve$user _keyskeymap.Afterdecidingwhereitshouldgo,eve _define _keywillpromptforakeystroke,functiontobebound,andashortdescriptionofthekey-function.xR UndeleteLine[PF-4].Restorelastlinedeleted. EVEplusEditorT% #"YEVEKEYPADCOMMANDSs17 Command[KP-7].PromptforanEVEcommand.IfyouusetoenteraTPU<commandenterTPU.ItwillthenpromptforaTPUcommand.x Fill[KP-8].Fillorpadparagraphwithblanks,evenuprightmargin. Spawn _Mail[KP-9].SpawnintotheMailfacility.Uponexitingmailwitha<ctrl-ZcontrolisreturnedtoEVE.x UndeleteWord[KP-Minus].Restorethelastworddeleted. Bottom[KP-4].Gotothebottomofthecurrentbuffer. Top[KP5].Gotothetopofthecurrentbuffer. Paste[KP6].Pastetheinsertherebufferbeforethecurrentcursorposition. UndeleteCharacter[KP-Minus].Restorethelastcharacterdeleted. Changecase[KP-1].Changethecaseofthecurrentcharacter,oriftheselect<isactiveinthecurrentbuffer,thenthecaseofallcharactersinthatrangeischanged.x DeleteEOLN[KP-2].DeletetheEOLNcharacter. TwoWindows[KP-3].Createtwowindowsonthescreen.Thecurrentbuffer<isduplicatedintothesecondwindow.Iftwoormorewindowsarepresentthescreenistoggledtoonewindowdisplayingthecurrentbufferintheonewindow.Theotherbuffer(s)isunmappedwiththeotherwindow(s)fromthescreen.x GotoLineNumber[KP-0].Promptsforalinenumberandpositionsthecursor<tothatlineinthebuffer.x PrintBuffer[KP-Period].Printthecurrentbuffer.Thiskeywillwritethe<currentbuffertoafilewiththesamename,spawnwithaDCLcommandtoprintthefilenamejustcreated.x WriteBuffer[KP-Enter].Writethecurrentbuffertoafile.Ifthebufferwas<createdduringtheeditsession,asopposedtobeingafilebroughtin,thenEVEwillpromptforafilename.Ifyouentera <CR >thenEVEwillwriteoutthefileusingthedefaultbuffernameasthefilename.Ifaselectregionisactiveinthecurrentbuffer,EVEwillattempttowriteouttheselectregion.Youwillbepromptedforafilenametoassociatewiththeselectregion.Ifnofilenameisgiventheoperationisaborted.AswithallcommandsinEVE,toabortthiscommandpressctrl-C,followedbya <CR >.Ifthefiletypeisknown(e.g.for,c,com,mss,mar,pas,tpu)thenacommentlineisinsertedatthetopofthezEVEplusEditorJ$"@`|?R##"~??|18EVEUSER'SGUIDE|file.*Containedinthecommentlinewillbeadate-timestampandthecurrentisthesameasansweringyes.Foreithera <CR >oryes,thesubstitutionismadeandthenextoldstringisfoundinthefile.EVEwillthenaskifyouwishtosubstituteforthisstring,andsoforthuntilalloftheoldstringshavebeenfound.Iftheoldstringisnotfoundinthecurrentdirection,EVEwilllookinthereversedirection.Ifitisfoundinthereverseofthecurrentdirectionyouwillbeaskedifyouwishtogotothatoccurrenceinthebuffer.x GetFile[KP-2].Promptsandretrievesafileintothecurrentwindow.The<currentbufferisunmappedfromthewindowandanewbufferiscreatedandmappedtothewindow.Thenewbufferwillhavethesamenameasthefilename.xIfyoupositionyourcursoroverafilenamespecificationinabuffer,andpress<selectinresponsetothepromptforfilename,Get _filewillattempttoretrievethatfilenameintothecurrentbuffer.Ifthecursorisonawhitespacecharacter(tab,blank,etc),thenthenextfilenametotherightofthecursorisselected.Ifadevice,anddirectoryismissingfromthefilenamethecursorison,abackwardsearchisperformedinanattempttofindone.Ifadevice-directoryspecificationis%founditisconcatinatedontothefilenameto$yieldthecompletefilespecification..ThisisespeciallyapplicableaftertheuserhasgivenaDCL-directorycommand.xYoucanalsosetdefaulttoadifferentdirectoryfromtheoneyouwereinwhen? ".Thusifyouevergetintoasituationwithintheeditor,whereyouraccountisoutofdiskquota,thisfunctionwouldallowyoutorecoverneededspace.xR SplitScreen[KP-3].Splitthecurrentwindowintotwowindows. TrimLine[KP-0].Trimthecurrentline.Getridofalltrailingwhitespaces<|(i.e.blanks,tabs,etc).Aftertrimmingaline,thecursorisplacedattheendoftheline.xR SelectRectangle[KP-Period].Selectarectangularcut.Afterpressingthis<|key,movethecursorhorizontallywiththe(- >)arrowkey.AfterreachingsomecolumnN,thenmovethecursorinthecurrentdirectionusuallyverticallydownwardtorowM.Uponpressingtherectangularcutkey(REDKP-6),youwillhavedeletedarectanglewiththeareaofNM.Forexampletodeleteonecolumninatable:PressREDKP-Period,movehorizontal1,anddowntothebottomofthefile.PressREDKP-6andthecolumnisremoved.xR MergeBuffer[KP-Enter].Promptsforabuffer.Ifthebufferdoesnotexistit<|willattempttofindafilebythatnameinthecurrentdefaultdirectory.Ifeitherisfounditismergedorincludedbeforethecurrentcursorpositioninthecurrentbuffer.If <CR >isenteredandaselectrangeisactive,thenthefirstselectrangefoundintheinternalbufferlistismergedintothecurrentbuffer,elsenoactionistaken.Note:ifyouareinoverstrikemodethetextbeingplacedinthebufferwilloverwriteprevioustext.n EVEplusEditorB(%$?YEVEKEYPADCOMMANDSs21Y3.4.BlueKeymapf BlueHelp[PF2].DisplaythekeypaddiagramfortheBlueKeymap.x GotoMark[PF-3].Gototheplacemarkerindicatedinthecurrentbuffer. Un-numberLines[PF-4].Stripsofflinenumberspreviouslyplacedinthe<bufferbyNumberlines(REDPF-4).Warning:Ifyouun-numberabufferwhichisnotnumbered,andthebuffercontainsnumerictext,unpredictableresultsmayoccur,andthenumerictextwillbelost.x SaveTPU[KP-7].SavetheextendedEVEsessioninaglobalsectionfile.It<willpromptforthenameofthefiletobecreated.Standardconventionistocreatethefilewiththeextensionof.gbl.x ListBuffers[KP-8].ListallavailablebuffersforthecurrentEVEsession.The<selectkeyistemporaryboundtoselectbuffer,andtheremoveorcutKP-6keyistemporaryboundtodestroybuffer.Thisallowsonetoselectordestroybuffersbypositioningthecursortothebeginningofthebuffernameandstrikingeithertheselectorremovekey.Example:positionthecursoratabuffername,presstheVT200select,andthatbufferismappedtothewindow.Afterexitingthelist _buffersbuffer,theoriginaldefinitionsfortheselect,andfindkeywillberestored.x SetJournal[KP-9].EVEwillrequestanumberintherangeof1-10.By<defaultthejournalfilehasavalueofapprox.10whichcausesarecordtobewrittentothejournalbufferevery125-400keystrokes.Avalueof1causesarecordtobewrittenevery10-35keystrokes.Thesevaluesareapprox.andcandifferdependingonthetypeofeditingbeingperformed.Thelowerthevaluethe#saferyoubecomeinrestoringmoreofyourEVEsession"incaseofcatastrophicevents,butitwillalsoslowdownyourturnaroundtimeinsideEVEduetotheI/O.x OpenJournal[KP-Minus].Openanewjournalfile.IfoneisalreadyopenEVE<willgiveanerrormessage.Itwillpromptforajournalfilename,withthedefaultnamegiventpu.tjl.x LeftMargin[KP-4].Setleftmargininbufferatthecurrentcursorposition. RightMargin[KP-5].Setrightmargininbufferatthecurrentcursorposition. PasteRectangle[KP-6].Pastetherectangularareapreviouslyselectedandcut<tothecurrentcursorposition.Anytextpresentatthislocationisdestroyedafterthepaste.zEVEplusEditorM5*%$|~?>>?~?~|>x22EVEUSER'SGUIDER DisplayAscii[KP-Comma].Displaytheasciivalueforthecurrentcharacterin<|thebuffer(e.g.thecharacterthecursorispositionedon).BydefaultEVEdisplaysallnon-printableasciicharactersasanupsidedowninvertedquestionmarkforVT200terminalsandacheckeredsquareforVT100terminals.xR DrawBox[KP-1].Drawanoutlineforaboxintheareaselected.Example:<|presstherectangularselectkey(REDKP-Period),movethecursoroveranddowntocreateaselectarea.UponpressingKP-1aboxappearsoutliningtheareaselected.xR CenterLine[KP-2].Centerthecurrentlineinthebuffer. SetScreenWidth[KP-8].Setscreenwidthwillpromptforascreenwidth<|number.Thenumberenteredmustbeintherange1-132.Ifanumberoutsidethisrangeisentered,thefunctionreturnsanerrormessage.Ifa <CR >insteadofanumberisenteredthescreenwilltogglebetween80-132dependingonthecurrentscreenwidth.Ifthecurrentscreenwidthis80a <CR >willtogglethescreen"to132.Anyothercurrentscreenwidthtogglesthescreento80.Althoughthescreenwidthmaychangethecurrentwindow(s)willnotchange.Thereforeifthescreenwidthischangedfrom80to40thelast40columnsofthecurrentwindowwillnotbedisplayed.Thiscommandismostusefulinchangingthescreenwidthtoviewcompilerlistingfiles(132).xR TrimBuffer[KP-0].Removetrailingwhitespacesthroughoutthecurrent<|buffer.xR Specins1[KP-Period].PromptsforDecimal0AsciivalueintheDEC<|Multinationalcharactersettobeenteredintothetext.xR DestroyBuffer[KP-Enter].Thiscommandwillpromptanddestroythebuffer<|indicated.MemoryinsideEVEisfreedforotheruse.Onceabufferisdestroyeditcannotberestored.3.5.MainKeyboardKeysf|EVEdefinesseveralmainkeyboardkeyssoastoallowlineeditmodeemulation.TheVfollowingisalistofthekeysdefined.Itisrecommendedthattheuserreadpage4.84-4.89in"theTPUmanualbeforedefiningkeys.Itisalsorecommendedforkeydefinitionconventionthatalluserdefinedkeysbeexplicitlyplacedinthekeymapeve$user _keys.bR Control-A.QuitcurrentEVEsession.x Control-B.RecalllastTPU/EVEcommand. EVEplusEditor?#"?x`?@%#"??~~~??~~~~~~~~~?~?~~??X% #"??????????Z!#"?????YEVEKEYPADCOMMANDSs23 Control-E.PositioncursortoEOLN.x Control-F.Forward/Reverse. Control-H.Positioncursortobeginningofline. Control-M.Return. Control-R.Rememberthekeysequencejustlearned. Control-@.Toggletabbetweenmovementandinsertmode.Thedefaultmodeis<insert.Eachtimethetabkeyispressed,atabisinsertedintothetext.Togglingintomovementmodeallowsonetousethetabkeytomovetothenexttabinthetext,muchlikeastandardtypewriter.x Control-V.Changemodebetweeninsertandoverstrike. Control-W.Refreshscreen. Control-X.Erasefromcursortobeginningofline. Control-Z.ExitandsaveEVEeditforcurrentbuffer. Control-shift-?.LockorUnlockthecurrentkeymap.SeePF-1keyabove. DO-up _arrow.Togglebackthroughcommandbuffer. DO-down _arrow.Toggleforwardthroughcommandbuffer.Y3.6.VT200Auxiliary-KeypadKeysfThesekeysarelocatedonVT200terminalsbetweenthemainkeyboardkeysandtheVYmainkeypadkeys.Theyarelabeled:find,select,PrevScreen,etc.Theirfunctionsareasthey!arelabeled,exceptunderthespecialconditionsoftheGet _fileandlistbufferscommandsasdiscussedabove.3.7.VT200FunctionKeysfVariousfunctionkeysonthekeyboardhavebeendefinedwhichgivestheVT200userVYconvenientusageofsomecommonfunctions,andalsoadditionalfunctionsnotavailableonthekeypad. zEVEplusEditor/1$?>>~||?>>~||p24EVEUSER'SGUIDER Control-Y[F6].Interruptseditsession.x Spawn[F8].SpawntoDCLlevel. Spawn/Mail[F8-Yellow _map].Spawnintomail. Spawn/DCL[F8-Red _map].SpawnwithaDCLcommand. LSE[F9-White _map].InvokeLSEfromwithinEVE.Thecurrentbufferis<|writtenout.TheprocessisspawnedandLSEisinvokedusingthebuffernameasthefilename.UponexitingfromLSEanewcopyofthebufferisbroughtintoEVE.xR Spell9-Yellow _map].InvoketheVasarspellercorrectionprogramonthe<|currentbuffer.xR DescribeKey[F10].Describeakey,returnthekeys'commentfield. ChangeDirection[F11].Changedirectionofeditforward/reverse. MovebyLine[F12].Movelinebyline. ErasePreviousWord[F13].Deletethepreviouswordbeforethecursor. ChangeModes[F14].Togglebetweeninsertandoverstrike. Copy _buffer[F17-White _map].CopybufferAtobufferB. Erase _current _buffer[F17-Yellow _map].Erasethecurrentbuffer.Contents<|ofcurrentbufferaredestroyed.xR Next _buffer[F17-Red _map].Gotothenextbufferinthebufferlist. Move _Columns[F18-White _map].Switchormovetwocolumnsinabuffer. Rectangular-Pad[F18-Yellow _map].Padorplaceblanksbeforeagiven<|columninafile,causingittoshifttotheright.xR Print _screen[F18-Red _map].Printthecurrentcontentsofthescreentoaline<|printer.xR Ruler[F19-White _map].Placearuleratthetopofthecurrentbuffer.Ifa<|rulerisalreadypresentthenit'sremoved.xR Remove _window[F19-Yellow _map].Removeorunmapthecurrentwindow<|fromthescreen. EVEplusEditorۇYEVEKEYPADCOMMANDSs25 TwoWindows[F20].Seetwo _windows[KP-3Yellow _map]. zEVEplusEditorۇ26EVEUSER'SGUIDE  EVEplusEditor.':9??????.YEVEAUXILIARYCOMMANDSD27Y4.EVEAuxiliaryCommandsEVE _function _name.[filenamefunctionislocatedin]YEVE _append _buffer.[APPEND.TPU]Appendaselectrange(ifpresent)orbuffertoVanotherbuffer.Ifaselectrangeisnotactiveitisassumedanotherbufferistobeappendedandispromptedfor.Ifthebuffertoappenddoesn'texistthenanerrorisreturned.Ifthebuffertobeappendedtodoesn'texistthenit'screated.ThisfunctionusesthehelpfunctionEVE _exist _bufferwhichrequires3args:loop _buffer%(abuffervariable),found _buffer(integer),andthis _file(astringspecifyingthefilename).Returnsa "1 "infound _bufferifthebufferexists,elsea "0 "isreturned.EVE _copy _buffer.[COPYBUFF.TPU]Copiesonebuffertoanother.PromptsfortheVYtwobuffernames,andthencallsthehelpfunctioneve$copy _buffer(oldbuff,newbuff),wherebothargsarestrings.Iftheoriginbufferdoesn'texistthenanerrorisreturned.Ifthedestinationbufferexistsitiserasedandtheoriginbufferiscopiedtoit.Ifitdoesn'texistthenitiscreatedbeforethecopy.EVE _lse.[LSE.TPU]HookfunctionintoLSE.SpawnsintoLSEwiththecurrentVYbuffer(file)name.Bothends(EVEandLSE)writeoutthefilesoastoensurethecorrectedversionisbeingused.EVE _move _column.[MOVECOLUMN.TPU]PromptsfortwocolumnnumbersMVYandN.ItthenswitchescolumnsMandNinthefile.Itwillhandleirregularalignmentontherighthandsideofcolumns.Ifthelefthandsideisirregulardatastickingoutfromthestartingcolumn(ofthecolumn)istruncatedorlost.Example.Ifthefirstiteminacolumnis5chars,andthenextis15andthenextis8thenforthe3lineslengthwouldbe:5chars,5th-15thchar(or10chars),5th-8thchar(3chars).Helpfunctionsinthisfileinclude:eve _traverse _column,eve _skip _column,eve _skip _white _space,eve$find _column.8zEVEplusEditorۇ28EVEUSER'SGUIDE|EVE _next _buffer.[NEXTBUFFER.TPU]FindthenextbufferintheinternalbufferVlistandmapittothecurrentwindow.Thisfunctiondoesnotdifferentiatebetweenuserandsystembuffers.|EVE _pscreen.[PRINTSCREEN.TPU]Printthecurrentscreentoalineprinter.ItVselectsandcopiesthescreenlinestoprintscreen.scr.Ifthisbufferdoesn'texistthenit'screated.Thefunctionthencallseve _print _buffer.|EVE _rectangular _pad.[RECPAD.TPU]InsertYblanksbeforeacolumnforXlines.VActivatetherectangularselectfunction.MovethecursorYspacestotherightandXlinesdowncreatingthetypicalarea.EVE _rectangular _padwillcomputethenumberofblankstobeinsertedisequaltotheend _column-start _column.Thismanyblankswillbeinsertedbeforethestartposition.|EVE _ruler.[RULER.TPU]Placesacolumnruleratthetopofthecurrentwindow.IfVtherulerisalreadypresent,thenit'sremoved.Therulerlengthwilladjustsothatitcorrespondstothecurrentscreenwidth.|EVE _searchctrl.[SEARCHCTRL.TPU]Promptsforadecimalasciivalue,andfindsVthatasciicharacterinthefile.Thisenablesonetosearchforctrl-characters.|EVE _sort _by _col.)[EVE _RECTANGULAR.TPU](Sortsagivencolumnbyalfa-Vnumerickey.  EVEplusEditor.%;9<<~?YKEPTEDITOR`29Y5.KeptEditorInEVEplusVersion2.0,wenowsupporttheconceptofakepteditor.AkepteditorisVYaprocessdevotedtothetaskofediting.Onemayattachtothisprocesstoedit,andthendetachfromitandreattachtoyourmainprocessinordertoperformothertasks.Theadvantageofakepteditsessionisthateachtimeyouneedtousetheeditor,youdonotneedtowaitforEVEplustostartuporcreateits'environment.Theresponsetimetoattachtoandfromtheeditorisinstantaneous.Thedisadvantageisthatitdoesuseupaprocessslotonthesystem,anddoescreatesomeoverheadfortheVMSoperatingsystem.Itisrecommendedthatyouconsiderusingthekepteditfeatureifyouhaveaneedtoenterandexittheeditormanytimesinagivenworkperiod.Inordertosetupthekepteditoryouwillneedtobindakeytothefunctionrlb _return _to _main,inyourTPU$COMMANDfile.Anexampleofsuchacomfilewouldbe:proceduretpu _local _initdefine _key( "rlb _return _to _main;eve _toggle _white _map ",ctrl _g _key, "Returntomain ", "white _map ");!defineakeyendprocedure;tpu _local _init;!invoketheprocedureTheabovedefine _keybindsthefunctionrtp _return _to _main,totheCtrl-g-keyintheVYwhitemap.Thefunctioneve _toggle _white _mapisthefunctionwhichwillresetthemaptothewhite _mapwheneverthefunctioncompletes.AsdiscussedpreviouslyinthesectionforextendingEVEplus,youwoulddefinethelogicalTPU$COMMANDtopointtothisfile.Thistakescareofattachingtothemainprocess,nowoneneedstodefineakeyatDCLleveltoattachtotheKept _editorprocess.Thisisaccomplishedbydefiningthekeytopointtothecomfileutl:kept _edit.com.ThusinordertopointtothiscomfileandsetupthelogicalforTPU$COMMAND,placethefollowinglinesinyourlogin.comfile:#zEVEplusEditor!#"??<<xx<x<<xxxxxxx<x<x<x<<?30EVEUSER'SGUIDE|$define/jobTPU$COMMANDmy _device:[my _directory]myini _file.tpu$!wheremy _device,my _directoryareyourdeviceanddirectoryand$!myini _fileisagainthefilenametoequateTPU$COMMANDwith.$define/key/if _state=default/erasef17 "@utl:kept _edit "/terminate/noechoNoteatoursitekept _edit.comislocatedinthedevice-directorypointedtobyutl.IfVyouareatanothersite,thenaskyourcontactontheEVEpluseditorwherethiscomfilemaybefound.Afterperformingthestepslistedabovere-executeyourlogin.comfile:|$@loginYoucannowspawnakepteditorbypressingtheF17key.ThiswillplaceyouinanVEVEpluseditingsession.Uponstartingyoureditingsession,youshouldseeamessageflashbythatthebuffer$local _iniisbeingexecuted.IfnotthenthelogicalTPU$COMMANDhasnotbeendefinedcorrectly.Aftertheeditingsessionhasstarted,youmayleaveitbypressingtheCtrl-g-key.Thiswillattachyoubacktoyourmainprocess.UponpressingF17(it'snotnicetostrikeorhitpoorlittlekeys)again,youareattachedbacktothepriorKept _editsession.IfyouwishtoterminateyourKept _editor,theninsteadofpressingCtrl-g,exitfromtheeditorasyounormallywouldwithCtrl-z,orCtrl-a.r EVEplusEditor.%<:????????????????????????? :9??0$:9??3)<:????x8??? px~???0;9????_,!; <<00`YEVECALL_USERINTERFACEH31Y6.EVECALL _USERInterfaceEVEprovidesamechanismtocallanexecutablefiletoperformafunction.ThelogicalVYTPU$CALLUSERmustbedefinedtopointtotheexecutablefile.Theexecutablecanbewrittenorbasedonanyhighlevellanguage.OurcallusercodeispresentlywritteninPascal,andatpresenthasthecapabilityto:getasymbolvalue,translatealogicalname,obtainvariousitemswithagetjpicall(i.e.Ifyouareunfamiliarwiththetermgetjpitrygivingthecommand$helplexgetjpiitem,atDCLleveltogetaflavorofwhatthissystemcallcanreturn),setdefaulttoanotherdirectory,anddeleteafile.ThoseuserswishingtowritetheirownTPUcodeandneedingafunctionofourcallusercode,mayaccessitwiththefollowingtpustatement:result:=call _user(casecode,input _string);Thecurrentvalidcasecodesare:b RTP$CALLUSER _GET _SYMBOL,x RTP$CALLUSER _TRNLNM, RTP$CALLUSER _GETJPI, RTP$CALLUSER _SET _DEFAULT, RTP$CALLUSER _DELETE _FILE.bYNotethecasecodesintheTPUcodeareuppercasebyconvention.Thecurrentvalidinput _stringvaluesaredependentonthecasecode.Forget _symbolVYortrnlnm,theinput _stringisthesymbolorlogicalnamewhosevalueyouwishtoobtain.Forset _defaultitisthedirectoryspec.,youwishtosetdefaultto,andfordelete _fileit'sthefilespec.youwishtodelete.Thegetjpicasecodemayhavethefollowingassociatedvaluesforits'inputstring:b IMAGNAME, MODE,x MASTER _PID,b OWNER,zEVEplusEditorۇ32EVEUSER'SGUIDER PID,E STATE,x PRCCNT, TERMINAL, PROC _INDEX,d USERNAME.bPleasenotethesevaluesmustbeenclosedinquotessincetheyaremeanttobestrings,andValsotheymustbeinuppercase.Anexamplecalltocall _userwhichwouldreturntheusernameforthecurrentprocessis:|loc$username:=call _user(rtp$calluser _getjpi, "USERNAME ");Inthefutureastheneedariseswewilladdtothecallusercodeotherfunctions. EVEplusEditorۇYEVECALL_USERINTERFACEH33AppendixAVVT200FunctionKeys?HH EEVAVAVAV7F6 F7 F8 F9 F10EEAAA7Control-YtBlankKeyiSpawnLSEDescribeKey<(WhiteMap)/(WhiteMap)/(WhiteMap)/(WhiteMap)/(WhiteMap)E8Control-YtBlankKeyiSpawn-MailJSpellDescribeKey<(YellowMap)(YellowMap)(YellowMap)(YellowMap)(YellowMap)E8Control-YtBlankKeyiSpawn-DCLGFix-crlfsDescribeKey<(RedMap)\(RedMap)\(RedMap)\(RedMap)\(RedMap)C(VEVV7:F11QF12F13F14)E7:ChangeDirectionsMoveByLineErasePreviousWordChangeMode<(WhiteMap)(WhiteMap)3(WhiteMap)(WhiteMap)Ch ~V}VsV7zF17F18/F19%F20i~}s7zCopyBufferFMoveColumnYUnmapWindowTwoWindows<(WhiteMap)/(WhiteMap)k(WhiteMap)a(WhiteMap)i~8zEraseBuffer@RectangularPadBlankKeyTwoWindows<(YellowMap)(YellowMap)^(YellowMap)T(YellowMap)i~8zNextBufferNPrintScreenzBlankKeyTwoWindows<(RedMap)\(RedMap)(RedMap)(RedMap)VzEVEplusEditorۇ34EVEUSER'SGUIDE>AppendixBVEVEKeypadDiagram  EVEplusEditorۇYINDEX35YIndexAdvance315EVE$INIT9